フィードバック制御は、機械システムが外部環境の変化や内部の擾乱に直面した際、自らの出力結果を絶えず監視し、その情報を入力側へと還流させることで、システム全体を事前に設定された目標状態へと自律的に収束させる制御メカニズムです。
室温を一定に保つエアコンから、時速数百キロメートルで姿勢を安定させる新幹線のサスペンション、超音速で飛翔するミサイルの軌道計算、さらには化学プラントにおける反応炉の温度管理に至るまで、現代の高度に自動化されたあらゆる機械システムは、このフィードバック制御なしには成立しません。
閉ループ制御の基礎
いかなる機械システムを制御する際、最も原始的なアプローチは目標値に対して決められた入力だけを与えるオープンループ制御すなわち開ループ制御です。例えばヒーターのスイッチを特定の時間だけオンにして部屋を暖めるような方式です。この方式は構造が極めて単純ですが、部屋の窓が開いて冷気が入り込んだり、外の気温が急激に下がったりといった想定外の擾乱が発生した場合、システムはそれを認識できず目標温度から大きく逸脱してしまいます。
この弱点を克服するのがフィードバック制御です。 フィードバック制御システムは、制御対象であるプラント、プラントの状態を物理的な値として読み取る検出部、目標値と検出部からの測定値を比較する比較器、そして偏差に基づいて修正指令を計算し操作量を決定する制御装置の四つの要素で構成されます。

検出部が現在の部屋の温度を測定し、その値が目標温度よりも低い場合、比較器はマイナスの偏差を算出します。制御装置はこの偏差を受け取り、ヒーターの出力を上げる指令を出します。部屋の温度が上がり目標温度に到達すれば偏差はゼロとなり、制御装置は出力を停止あるいは一定に保ちます。
このように出力された結果を入力側へ戻し、目標値と現在の状態との間にある「誤差」を駆動力として、その誤差を限りなくゼロに近づけるように自らを修正し続けるのがフィードバック制御の基本構造です。外部からの擾乱や、システム内部の部品の経年劣化による特性変化が存在しても、最終的な出力結果のみを監視して辻褄を合わせるため、堅牢で信頼性の高い自律システムを構築することができます。
PID制御
フィードバック制御において算出された偏差をどのように処理して操作量を決定するかというアルゴリズムの中で、産業界で広く普及しているのがPID制御です。PIDは、比例、積分、微分の三つの操作の頭文字を表しており、現在の誤差、過去の誤差の蓄積、そして未来の誤差の予測という三つの視点からシステムを制御します。
操作量 u(t) は、時間 t における偏差 e(t) を用いて以下の数式で記述されます。

ここで、Kp は比例ゲイン、Ki は積分ゲイン、Kd は微分ゲインと呼ばれる調整パラメータです。
比例制御(P制御)
制御式の第一項は比例制御であり、現在の偏差 e(t) に定数 Kp を掛けた値を操作量とします。誤差が大きければヒーターを強く点け、誤差が小さければ弱くするという基本的な動作です。 Kp を大きくすれば目標値へ向かう応答速度は速くなりますが、大きすぎると目標値を勢いよく通り越してしまうオーバーシュートが発生し、システムが激しく振動する原因となります。
逆に小さすぎると、いつまで経っても目標値に到達しません。またP制御だけでは、システムに摩擦や熱損失などの抵抗が存在する場合、偏差がゼロになる前に操作量と抵抗が釣り合ってしまい、目標値に永遠に届かない定常偏差が発生するという制御の限界があります。
積分制御(I制御)
この定常偏差を消滅させるために導入されるのが第二項の積分制御です。 過去から現在までの偏差の積分値を計算し、それに定数 Ki を掛けます。もし微小な定常偏差が長時間残っていた場合、その微小な誤差は時間とともに積分されて巨大な値へと成長します。コントローラはこの蓄積された誤差の重みに反応し、操作量をじわじわと押し上げてシステムを強制的に目標値へと押し込みます。
I制御は系の定常偏差をゼロにするという効果を持ちますが、過去の誤差を引きずって操作を行うため、急激な状態変化に対するシステムの反応を遅くし、またオーバーシュートを助長するという副作用があります。
微分制御(D制御)
第三項の微分制御は偏差の変化する速度すなわち傾きを計算し、それに定数 Kd を掛けます。 システムが目標値に向かって高スピードで近づいている時、偏差そのものはまだ大きくても偏差の減少する速度は非常に大きくなります。このとき微分項は大きなマイナスの値を返し、システムに対して強力なブレーキをかけます。
すなわち現在の変化の勢いから「このままでは目標値を通り過ぎてしまう」という未来の誤差を予測し、オーバーシュートが起きる前に先回りして減衰力を作用させるのです。D制御はシステムの安定性を高め、振動を抑え込む働きをしますが、センサーが拾ったノイズなどの微細で急激な変動に対しても過敏に反応してしまい、操作量が暴れる原因となるため、実際の運用ではノイズフィルターとの併用が必要になります。
設計者は、対象となるシステムの質量や熱容量といった物理特性を見極め、これら三つのゲイン Kp、Ki、Kd のバランスをチューニングすることで、オーバーシュートが少なく、かつ最速で目標値にピタリと収束する理想的な制御を行うことができます。
ラプラス変換と伝達関数
フィードバック制御のアルゴリズムを設計し、システムの挙動を数学的に予測するためには時間領域で記述された複雑な微分方程式をより扱いやすい形式へと変換する必要があります。ここで重要なのがラプラス変換です。
ラプラス変換は、時間 t を変数とする関数 f(t) を、複素数 s を変数とする関数 F(s) へと写像する積分変換です。 この変換の利点は、時間領域における微分や積分といった複雑な演算が、複素平面上においては単なる代数的な掛け算や割り算に置き換わるという特性にあります。
システムに入力される信号のラプラス変換を X(s)、出力される信号のラプラス変換を Y(s) としたとき、入力を出力に変換するシステムの特性を表現する関数 G(s) を定義できます。

あるいは

この G(s) を伝達関数と呼びます。 伝達関数は、モーターのイナーシャと摩擦による回転の遅れ、RC回路におけるコンデンサの充電の遅れ、あるいはバネとダンパーによる振動系の特性など、現実世界のあらゆる線形な物理システムの動的挙動を、一つの分数式として抽象化し表現することが可能です。
フィードバック制御系全体を設計する際、コントローラの伝達関数、アクチュエータの伝達関数、そして制御対象の伝達関数をそれぞれブロック線図として記述し、それらを代数的に掛け合わせることで、閉ループシステム全体の伝達関数を容易に導出することができます。
この伝達関数という強力な抽象化により、エンジニアは物理現象の複雑な微分方程式を解く作業から解放され、純粋に代数的な計算によってシステム全体の安定性や応答性を設計することが可能となります。
周波数応答とシステムの安定性
フィードバック制御において絶対に回避しなければならない事態は、システムが発振し出力が無限大に向かって暴走することです。 出力結果を入力に戻すというフィードバックの性質上、特定の条件が重なると、戻された信号が元の誤差を打ち消すどころか逆に増幅してしまい、システムが制御不能な振動状態に陥る危険性を常に孕んでいます。
この安定性を判別するための重要な概念が周波数応答です。 システムに対して様々な周波数の正弦波を入力したとき、出力される正弦波の振幅がどれだけ変化するか(ゲイン)、そして位相がどれだけズレるか(位相遅れ)を解析します。これを視覚的に表現したものがボード線図です。
物理的なシステムには質量や熱容量といった慣性が存在するため、入力される波の周波数すなわち変化のスピードが速くなればなるほど、システムは追従しきれなくなり出力の波は入力の波に対して時間的に遅れて発生します。 もし、ある特定の周波数において、システムの一巡伝達関数の位相遅れが180度に達したとします。これは、入力された波の山と谷が完全に逆転して出力されることを意味します。 さらに、この位相が180度遅れた周波数において、システムのゲインが1を超えていた(入力よりも出力の方が大きい)場合、フィードバックされた信号は元の信号と同位相でかつ強大な力として加算され続けることになります。これが正のフィードバックとなり、システムは瞬時に発振して破壊へと至ります。
したがって、システムを安定に保つためには、位相遅れが180度に達する周波数において、ゲインが必ず1より小さくなければならないという数学的条件が存在します。 設計者はボード線図を解析し、位相が180度遅れる点におけるゲインの余裕(ゲイン余裕)と、ゲインが1になる点における位相の余裕(位相余裕)が十分に確保されるように、PIDパラメータの調整や補償器の追加といった調整を行いシステムの発振を封じ込める必要があります。
現代制御理論
PID制御やボード線図に基づく古典制御理論は、一つの入力に対して一つの出力が存在するSISOシステムにおいては絶大な威力を発揮しますが、複数の入力と複数の出力が複雑に絡み合うMIMOシステム、例えば多関節ロボットの姿勢制御や、化学プラントにおける温度・圧力・流量の同時制御などにおいては、その数学的限界が影響してきます。
この限界を突破し、より複雑なダイナミクスを制御するために発展したのが状態空間表現に基づく現代制御理論です。
現代制御理論では、システムを伝達関数のような入出力の関係だけでブラックボックスとして扱うのではなく、システム内部に存在するエネルギーを蓄積する要素、すなわちコンデンサの電荷やモーターの角速度といった物理量を「状態変数」として定義します。 複数の状態変数ベクトル xt、入力ベクトル ut、出力ベクトル ytを用いて、システム全体を微分方程式の行列表現として記述します。

ここで、A はシステム行列、B は入力行列、C は出力行列と呼ばれます。 この状態空間モデルを用いることで、すべての状態変数をセンサーで測定できなくても、出力値から内部の状態を数学的に推定する「オブザーバ(状態観測器)」を構築することが可能になります。 さらに推定された状態変数にそれぞれ適切なゲインを掛けてフィードバックする「状態フィードバック制御」を行うことで、システムの動特性を任意の位置に配置し、高速かつ安定した応答を実現します。
また、システムを制御するために消費するエネルギーや時間を最小化する「最適制御理論」や、モデルに含まれる不確実性や強力な外部擾乱に対しても安定性を担保する「ロバスト制御理論」など、高度な数学的最適化アルゴリズムが組み込まれており、自動運転車両や宇宙機の姿勢制御といった複雑な制御に使用されています。
非線形要素の力学
現実の物理システムには、数学的モデルからは逸脱する厄介な非線形要素が存在します。これらの制約をいかにしてシステム設計に組み込み、アルゴリズムで補正するかがエンジニアの重要な設計要素になっています。
アクチュエータの飽和
どんなに強力なヒーターやモーターであっても、出力できる物理的なエネルギーには必ず上限が存在します。これをアクチュエータの飽和と呼びます。 目標値が現在の状態から極端に離れている場合、PIDコントローラのP制御とI制御は全力で出力を上げようと計算しますが、現実のヒーターは100パーセントの出力で頭打ちになります。この飽和状態が長時間続くと、I制御の積分器には「出力が足りない」という誤差が過剰に蓄積され続けます。 やがて温度が目標値に到達しても、この蓄積された巨大な積分値が残っているため、ヒーターの出力を即座に下げることができず、システムは激しいオーバーシュートを起こします。これを積分ワインドアップ現象と呼びます。
この深刻な暴走を防ぐため、コントローラには操作量が上限に達した瞬間に積分器の計算を意図的に停止させる、アンチワインドアップ機構というソフトウェアロジックが実装されている場合があります。
むだ時間と摩擦
配管内を流体が移動する時間や、センサーが温度変化を感知するまでの物理的な時間的遅れを「むだ時間」と呼びます。むだ時間が大きいシステムでは、コントローラが操作を行った結果がすぐには反映されないため、コントローラが「まだ足りない」と過剰な操作を行ってしまい、システムが激しく振動する原因となります。これにはスミス予測器と呼ばれる、むだ時間を相殺する特殊な数学的補償器が用いられます。
また機械システムにつきものの静止摩擦は、速度がゼロの近傍で不連続に力が変化するため、目標値の直前でシステムが小刻みに振動し続けるリミットサイクル現象を引き起こします。これに対応するため摩擦の物理モデルをフィードフォワードとして加算したり、ディザ信号と呼ばれる微小な高周波振動を意図的に重畳させて静止摩擦を動摩擦へと遷移させるといったアプローチが取られます。


コメント