# 制御ループの安定性とタイムラグ補償
## 定義
制御ループの安定性とタイムラグ補償とは、フィードバック制御システムにおいて、アクチュエータ(本ソースでは Apollo LM の降下エンジンのスロットル)の応答遅延(time lag)を制御アルゴリズムがどの程度正確に補償するかによって、系全体の安定性が左右されるという設計課題である。Apollo の throttle-control プログラムは、加速度計が測定した速度増分の実測値と誘導方程式が要求する加速度との差からスロットル補正量を計算する際、直前のスロットル変更指令がまだ完全にエンジン推力に反映されていない(タイムラグ分の遅れがある)ことを補償する必要があった。過小補償は振動(underdamped)を、過大補償は不安定化(instability、最小・最大スラスト間の発散)を招く。(Source: [[@2004__AAS__Tales from the Lunar Module Guidance Computer|Tales from the Lunar Module Guidance Computer]] §Throttle castellation)
## 横断的知見
- **「仕様書の数値を信じて実装した」ことが不安定化の潜在的原因になり得た**: ICD に記載されたエンジンタイムラグは0.3秒だったが、実際のエンジンは性能改善によりタイムラグが約0.075秒に短縮されており、ICD は更新されていなかった。[[Don Eyles]] は自身の観察に基づき経験的に0.2秒分のみ補償するコードを実装しており、これが結果的に「仕様書通りの0.3秒補償」よりも実際の遅延に近い値となり、Apollo 11/12 のスロットルはぎりぎり安定な状態で飛行できた。もし ICD の記載値をそのまま信じて0.3秒分を補償していたら、スロットルは不安定化しアボートに至っていた可能性が高いと [[Allan Klumpp]] の事後解析(独立に Bellcomm の Sorensen も同結論)が示している。仕様書の数値を鵜呑みにせず経験的観察を優先した現場判断が、皮肉にも致命的な仕様書の陳腐化を偶然打ち消していた。(Source: [[@2004__AAS__Tales from the Lunar Module Guidance Computer|Tales from the Lunar Module Guidance Computer]])
- **単一の観測される症状(振動)が複数の独立した原因の重ね合わせだった**: throttle castellation は当初「IMU bob」(IMU が機体重心から離れた位置に搭載されていたことによる見かけ上の垂直速度)だけで説明が試みられたが、それだけでは実測データを説明しきれず、タイムラグ補償の誤りという第二の要因が重なっていたことが後から判明した。単一原因仮説での説明を急がず、複数要因の重ね合わせを疑う姿勢が最終的な正しい理解に至った点は、[[インターフェース仕様の齟齬による障害]]における「表層的帰属で調査を止めない」という教訓と同型である。(Source: [[@2004__AAS__Tales from the Lunar Module Guidance Computer|Tales from the Lunar Module Guidance Computer]])
- **[[Mark Burgess]] のタイムスケール分離原則は、Apollo throttle castellation 事例を「ICD 記載値の陳腐化」という個別事象から「制御ループのタイムラグ補償は問題自身のタイムスケールに一致していなければならない」という一般原則へ引き上げる**: Burgess は「是正の実行時間は問題自身のタイムスケールと一致していなければならない(Maintenance Theorem)」と定式化し、タイムスケールの不一致(分離不良)は系の強結合・不安定化を招くと述べる([[タイムスケール分離と監視粒度]])。Apollo LM の throttle castellation 事例——ICD の 0.3 秒という記載値と実機の約 0.075 秒という実測値の乖離、および [[Don Eyles]] の経験的補償(0.2秒)が結果的に安定飛行を実現した経緯——は、この一般原則の具体的なインスタンスと解釈できる。両ソースとも「意味論的に正しい(仕様通り/機能的に正しい)実装」が「力学的なタイムスケールの不一致」によって不安定化しうるという点で一致するが、Burgess の原則はソフトウェア・インフラ全般に及ぶ一般論であるのに対し、Apollo 事例は単一の制御ループにおける経験的観察が偶然この原則の充足に至った特殊ケースである。(Source: [[@2014__markburgess.org__Infrastructure Management Timescales]], [[@2004__AAS__Tales from the Lunar Module Guidance Computer|Tales from the Lunar Module Guidance Computer]])
- **Apollo LM・Burgess の「経験に基づく直感的判断」に対し、Hellerstein らは同じ「安定性はタイムラグ・遅延の扱い方で決まる」というテーマを、極 $a$ の絶対値から整定時間 $k_s \approx -4/\log|a|$ が定量的に導ける形式的基準として与える**: 一次系 $y(k+1)=ay(k)+bu(k)$ では、系が安定かどうか($|a|<1$)、振動するかどうか($a<0$)、どれだけ速く定常状態に収束するか($k_s \approx -4/\log|a|$)のすべてが極 $a$ の値だけから閉形式で決まる([[過渡応答解析]])。さらに閉ループでは、コントローラゲイン $K$ を上げるほど閉ループ極が単位円の外へ押し出されて不安定化する具体例(IBM Lotus Domino Server で $K=1$ は安定、$K=3.5$ は不安定)が示される。これは Apollo 事例における「ICD の記載値が実機と 4 倍ずれていたが、経験的な補正(0.2秒)がたまたま安定域に収まっていた」という**測定できない偶然の安全域**とは対照的である。Hellerstein らのモデルでは、極とゲインの関係(閉ループ極 $=0.43-0.47K$)さえ分かれば安定域の境界(この式から閉ループ極が $-1$ に達するのは $K \approx 3.04$)を計算で特定でき、経験的観察に頼る必要がない。両者は「タイムラグ・遅延の扱いが制御ループの安定性を左右する」という結論では一致するが、Apollo 事例が事後解析でしか安全域を特定できなかったのに対し、一次系モデルは事前に安定域を計算できる点で対照的である。(Source: [[@2004__Wiley__Feedback Control of Computing Systems - Chapter 5 First-Order Systems]] §5.3, §5.9.3, [[@2004__AAS__Tales from the Lunar Module Guidance Computer|Tales from the Lunar Module Guidance Computer]])
- **第6章は、複素極を持つ高次系において振動の周波数と減衰の両方が定量化できることを示し、Apollo 事例の「過小補償で振動(underdamped)、過大補償で不安定化」という定性的な観察に対応する数式を与える**: Apollo の throttle castellation は補償量の過不足によって振動と不安定化のどちらにも転びうる現象として記述されるが、その振動の周波数・減衰率を定量化する式は与えられない。第6章の複素極の枠組みでは、極 $p_{1,2}=re^{\pm j\theta}$ の偏角 $\theta$ が振動の周波数(式6.12の $\sin k\theta$ 項)を、絶対値 $r$ が減衰の速さ($k_s\approx-4/\log(r)$)を決め、両者からオーバーシュート $M_P\approx r^{\pi/|\theta|}$(式6.16)まで計算できる。Apollo 事例のような「経験的補償量がたまたま安定域に収まっていた」という定性的な安全域の話を、もし離散時間線形モデルとして定式化できたなら、この $(r,\theta)$ の2パラメータで振動の性質を事前に特定できたはずである、という対比が成り立つ(Source: [[@2004__AAS__Tales from the Lunar Module Guidance Computer|Tales from the Lunar Module Guidance Computer]] §Throttle castellation, [[@2004__Wiley__Feedback Control of Computing Systems - Chapter 6 Higher-Order Systems]] §6.3.1〜§6.3.3)。
- **第5章の「単一ゲイン $K$ が閉ループ極を単位円外に押し出す」という一次元の安定性判断は、第6章の高次閉ループでは複数の極が同時に単位円へ近づく・複素化するという多次元の判断に拡張される**: 第5章では IBM Lotus Domino Server の単純な比例制御(ゲイン $K$ 一つ)で閉ループ極が $0.43-0.47K$ という一次式で決まり、安定域の境界を一つの不等式で特定できた。第6章の同じ Domino Server にフィルタと比例–積分制御を加えた3次系の例では、ゲイン $K_P,K_I$ が3つの閉ループ極(複素対1つ+実極1つ)の位置を同時に決め、$K_P=1,\,K_I=0.1$ で支配複素極対の絶対値が単位円にきわめて近い $0.95$ となり整定時間78という長い値になる。単一ゲインの一次元判断から、複数ゲイン・複数極の組が同時に安定性と応答速度を決める多次元の設計問題へと複雑化する様子が、同じ実システムの拡張として直接比較できる(Source: [[@2004__Wiley__Feedback Control of Computing Systems - Chapter 5 First-Order Systems]] §5.9.3, [[@2004__Wiley__Feedback Control of Computing Systems - Chapter 6 Higher-Order Systems]] §6.5.3)。
- **ウィーナー(1948/1961)は、純遅延そのものが帰還強度の上限を1に固定することを、Apollo・Hellerstein の56年前にすでに複素解析で示していた**。ウィーナーは第4章で、演算子AがT単位時間の純遅延 A(z)=e^{-Tz} である場合、境界曲線(Eq.4.17)が原点を中心とする単位円になり、「帰還強度の限界は1になる」("the limit of feedback intensity will be 1")と結論する。これは Apollo LM の throttle castellation でタイムラグそのものが不安定化の直接原因になったこと、および Hellerstein らの一次系モデルで極 $a$ の絶対値が1未満でなければ不安定になること([[過渡応答解析]])と、数学的には同一の主張——「遅延(または遅延に対応する演算子)が単位円という具体的な境界を作り、それを超える利得は許されない」——の異なる時代・異なる形式(連続時間の複素平面 対 離散時間のZ平面)による表現である。ウィーナーはさらに、単純な一次遅れ 1/(1+kz) は単一のフィードバックで任意の精度に補償できるが、これを3つ直列合成した 1/(1+kz)^3 は単一のフィードバックでは補償しきれないことを示しており(MacCollのジャイロコンパス操舵の例では二重フィードバックが必要)、この「単純な要素の合成が単一ループでは手に負えなくなる」という論点は、Hellerstein第6章の高次系(複数の極が同時に安定性を左右する)の問題設定を先取りしている。(Source: [[@1961__MITPress__Cybernetics - Chapter 4 Feedback and Oscillation]] pp.105-107, [[@2004__Wiley__Feedback Control of Computing Systems - Chapter 5 First-Order Systems]] §5.3, [[@2004__Wiley__Feedback Control of Computing Systems - Chapter 6 Higher-Order Systems]])
- **Apollo LM の throttle castellation で「過小補償は振動、過大補償は不安定化」という定性的な観察は、ウィーナーが第4章で与える「利得が小さすぎれば効果がなく、大きすぎれば点−1/λが内点に入り破局的発振に陥る」という一般論の具体的な一事例として読める**。ウィーナー自身は Apollo のような実装事例を持たないが、その安定性理論の骨格(演算子の複素平面上の像に対する利得の臨界値)は、タイムラグ補償という具体的な設計問題がなぜ「補償のしすぎ」と「補償の足りなさ」という対称的な2つの失敗モードを持つのかを説明する一般原理を、Apollo事例より56年早く与えている。(Source: [[@1961__MITPress__Cybernetics - Chapter 4 Feedback and Oscillation]] pp.98-103, [[@2004__AAS__Tales from the Lunar Module Guidance Computer|Tales from the Lunar Module Guidance Computer]] §Throttle castellation)
- **カオスエンジニアリング17章(Nathan Aschbacher著)が述べる「分散システムのエンジニアは職業柄、壁掛け時計を信用しない」という一般化された態度は、Apollo LM のthrottle castellation事例が個別のICD陳腐化として経験した問題を、CPS(サイバーフィジカルシステム)全般の設計原則へ引き上げる**: 本ページはこれまで、Apollo LMの事例(ICDが記載する0.3秒のタイムラグが実機では約0.075秒に短縮されていたが、Don Eylesの経験的補償(0.2秒)が偶然安定域に収まった、既出)を単一の歴史的事例として扱い、[[Mark Burgess]]のタイムスケール分離原則がこれを一般原則へ引き上げることを記録してきた。17章は、この種の問題——仕様・想定と実機のタイミングのずれが不安定化を招く——が分散システム工学では既知の職業病であり、「私たちはもはや自己完結するようなローカルの機能を構築していればよいコンポーネントのエンジニアでない」という認識が組み込み系・安全性が強く求められるシステムのエンジニアにも波及しつつあると述べる。さらに17章は、CPSにおいてタイミングのエラーが「監視タイマーが本来作動するべきでないときに作動する」「コンポーネントやシステム全体の電源をON/OFFする緊急のフェイルセーフ反応」「サブシステムが自身を落とし、復帰し、また自身を落とす」という具体的な故障連鎖を引き起こすと記す。これはApollo LMのthrottle castellation(過小補償で振動、過大補償で不安定化)と同型の「タイミングの小さなずれが連鎖的な問題を引き起こす」現象を、監視タイマー・フェイルセーフというCPS一般の機構で再確認するものであり、Apollo事例が「たまたま安定域に収まった特殊ケース」だったのに対し、17章は「CPSでは日常的に起こりうる一般的なリスク」として位置づけ直す。(Source: [[@2022__OReillyJapan__カオスエンジニアリング - Chapter 17 サイバーフィジカルで行こう]] §17.4, [[@2004__AAS__Tales from the Lunar Module Guidance Computer|Tales from the Lunar Module Guidance Computer]] §Throttle castellation)
- **17章がCPSにおける最初のカオス実験対象として「タイミングの制約」を明示的に推奨することは、本ページが集約する制御理論の形式的知見(極の絶対値・整定時間)と、実務上の実験デザインとの間を橋渡しする**: 本ページは[[過渡応答解析]]・Hellersteinらの一次系モデルにより、極の絶対値から整定時間・安定性が閉形式で計算できることを記録しているが(既出)、これは事前解析の道具であり実験デザインの指針ではない。17章は「今これを読んでいる読者の方で、ソフトウェアが多用された重要なシステムを取り扱っており、カオスエンジニアリングをどこから始めようか検討中の場合は、迷わずタイミングの問題から取り組んでみてください」と述べ、データ破損・ビットの反転・メッセージの欠損への対処は比較的よく整備されている一方、タイミングの問題は軽微でも連鎖しCPSでは生死を分ける差異になりうると理由づける。これはApollo事例のような事後解析(既出)や一次系モデルによる事前計算(既出)とは異なる第三の実践——「タイミングをカオス実験の対象として能動的に壊してみる」という経験的検証——を、本ページの制御理論的知見に付け加えるものである。(Source: [[@2022__OReillyJapan__カオスエンジニアリング - Chapter 17 サイバーフィジカルで行こう]] §17.4)
- **測定遅延は精度を改善する一方で、許容できる制御ゲインを狭める**: Lotus Notes 論文では、ログ上で待機中 RPC を数えられない誤差を遅延で補うとセンサの R2 が 75.5% から 91.2% へ改善するが、遅延 2 では `K_i=1` でも振動し、`K_i=5` では根が単位円の外側へ出る。Apollo のタイムラグ補償事例が仕様値と実機値のずれを扱うのに対し、Lotus Notes の事例は測定精度と閉ループ応答性の交換関係をモデルと実験で示す。(Source: [[@2002__Real-Time Systems__Using Control Theory to Achieve Service Level Objectives In Performance Management]], [[@2004__AAS__Tales from the Lunar Module Guidance Computer|Tales from the Lunar Module Guidance Computer]])
## 未解決の問い
- ログやテレメトリの測定遅延を含む現代の分散サービスで、SLO 達成率の改善と制御ループの安定性を同時に評価する指標は何か。
- 17章が推奨する「タイミングを最初のカオス実験対象にする」というアプローチは、本ページが集約する極の絶対値・整定時間という形式的な安定性解析(Hellersteinらの一次系・高次系モデル)とどう組み合わせられるか。実験で発見された不安定なタイミング挙動を、事前に極の位置として予測できていたかを事後的に検証する手順は、17章にも制御理論側のソースにも示されていない。(Source: [[@2022__OReillyJapan__カオスエンジニアリング - Chapter 17 サイバーフィジカルで行こう]] §17.4)
- ICD に記載された制御パラメータ(タイムラグ等)がハードウェア改良によって陳腐化するリスクに対し、現代のシステムでは「仕様書とハードウェアの同期」をどう保証しているか(自動キャリブレーション、実測値へのフォールバック等)。
- 「経験的観察に基づく現場判断」が「仕様書通りの実装」より結果的に安全だったという本事例は、どこまで一般化できるか。逆に経験的判断が致命的に誤る典型例(例: 別のインシデント事例)と比較した知見は未蓄積。
- 一次系モデルが与える「極の絶対値から整定時間を計算できる」という形式的基準は、Apollo LM のようにタイムラグの実測値自体に不確実性がある(仕様と実機が乖離しうる)実システムにどこまで適用できるか。極 $a$ の推定誤差が整定時間の予測にどの程度の誤差として伝播するかは、本 wiki のソースからは分からない。
- Hellerstein らのモデルは離散時間の線形系を前提とするが、Apollo LM のアクチュエータ(エンジンスロットル)の遅延のような連続時間・非線形な要素を含む実際の制御ループに、一次系・複素極を含む高次系の極による安定性判定はどの程度そのまま持ち込めるか。
- 第6章の複素極モデル($r,\theta$ の2パラメータ)を Apollo LM のような連続時間・非線形なアクチュエータ遅延の振動データに逆算して当てはめる(実測の振動周波数・減衰率から $(r,\theta)$ を推定する)手順があれば、throttle castellation の振動を定量的に裏づけられるはずだが、本 wiki のどちらのソースにもそのような手順は無い。
## 関連
- ソース: [[@2004__AAS__Tales from the Lunar Module Guidance Computer|Tales from the Lunar Module Guidance Computer]] / [[@2004__Wiley__Feedback Control of Computing Systems - Chapter 5 First-Order Systems]] / [[@2004__Wiley__Feedback Control of Computing Systems - Chapter 6 Higher-Order Systems]] / [[@1961__MITPress__Cybernetics - Chapter 4 Feedback and Oscillation]] / [[@2022__OReillyJapan__カオスエンジニアリング - Chapter 17 サイバーフィジカルで行こう]]
- エンティティ: [[Don Eyles]] / [[Allan Klumpp]] / [[Apollo Guidance Computer]] / [[IBM Lotus Domino Server]] / [[ノーバート・ウィーナー]] / [[Nathan Aschbacher]]
- 概念: [[インターフェース仕様の齟齬による障害]] / [[過渡応答解析]] / [[支配極と高次系の近似]] / [[フィードバックループ]] / [[機能安全]]
## 出典
- [[@2004__AAS__Tales from the Lunar Module Guidance Computer|Tales from the Lunar Module Guidance Computer]](§Throttle castellation)
- Hellerstein, Diao, Parekh, Tilbury, *Feedback Control of Computing Systems*, IEEE Press / John Wiley & Sons, 2004, Chapter 5, §5.3, §5.9.3; Chapter 6, §6.3.1〜§6.3.3, §6.5.3.
- Norbert Wiener, *Cybernetics*, 2nd ed., The MIT Press, 1961, Chapter IV(印字 pp.95-115)。
- Nathan Aschbacher, 「サイバーフィジカルで行こう」, Casey Rosenthal・Nora Jones 編『カオスエンジニアリング ― 回復力のあるシステムの実践』, オライリー・ジャパン, 2022, 17章 §17.4。