パラメータ設定
T_p = T_d = 5 s、T_i = 5 s、dt = 0.05 s、T_sim = 30 s 固定。t = 5 s で外乱ステップ印加。FF はゲインのみ補償 G_ff = -K_d / K_p。
ステップ外乱応答 y(t) と制御入力 u(t)
上段:出力 y(t)(赤=FB単独、青=FF+FB、灰色破線=目標 r=0)/下段:制御入力 u(t)(橙=u_fb、紫=u_ff、緑=合計)/縦線:外乱印加 t=5 s
理論・主要公式
1次プロセスへ外乱経路から進入するステップ外乱に対し、フィードバック単独とフィードフォワード補償併用のステップ応答を比較します。
プロセス(制御経路)と外乱経路の伝達関数:
$$G_p(s) = \frac{K_p}{T_p s + 1},\qquad G_d(s) = \frac{K_d}{T_d s + 1}$$
出力は両経路の重ね合わせ:
$$y(s) = G_p(s)\,u(s) + G_d(s)\,d(s)$$
PI フィードバック(偏差 e = r - y):
$$u_{fb}(t) = K_c\,e(t) + \frac{K_c}{T_i}\int_0^t e(\tau)\,d\tau$$
理想フィードフォワード補償器と本ツールの簡略版(ゲインのみ):
$$G_{ff}(s) = -\frac{G_d(s)}{G_p(s)},\qquad G_{ff} \approx -\frac{K_d}{K_p}$$
u = u_fb + u_ff。T_p = T_d のときゲインのみ補償でも完全相殺が成立し、ピーク偏差を大幅に低減できます。
フィードフォワード補償シミュレーターとは
🙋
フィードバック制御はわかるんですけど、フィードフォワードって何がどう違うんですか?
🎓
ざっくり言うと、フィードバックは「結果を見てから動く」、フィードフォワードは「原因が分かった瞬間に先回りして動く」だ。例えば室温制御を考えてみよう。窓を開けたら冷気が入る——これが外乱だ。フィードバックだけだと、室温が下がってから「あ、寒くなった」と気づいてヒーターを強める。でも窓センサーがあれば、窓を開けた瞬間にヒーターを先回りで強めることができる。これがフィードフォワードだ。
🙋
上のシミュレーターで赤と青の線がありますね。デフォルト値だと青がほとんど平らで、赤は大きく揺れる…
🎓
そう、それが効果の決定的な違いだ。t=5sで外乱がかかると、赤(FB単独)は一旦大きく振れてからPIで戻す。青(FF+FB)は外乱経路ゲイン K_d をモデルとして知っているから、外乱が入った瞬間に -K_d/K_p の操作量を加えて先回りでキャンセルする。下のグラフで紫線が u_ff、外乱と同時にステップ状に動いているのがわかるはずだ。削減率カードを見ると、ピーク偏差が大幅に減っているのが定量的に確認できる。
🙋
完璧に消せちゃうんですか?じゃあフィードバック要らないのでは?
🎓
そこが現実の難しいところで、完璧に消せるのはモデルが正確で、かつ T_p = T_d のような特殊条件のときだけだ。実機では K_d や時定数を完全には知らない。K_d スライダーを実際の値から±50%ずらしてみて——青の偏差がぐっと増えるだろう?残った誤差を拾うのがフィードバックの役目だ。だから「FF が粗く先回り、FB が残りを精密補正」というセットで使う。これが2自由度制御の基本思想だよ。
🙋
PIゲイン K_c を上げれば、フィードバックだけでも追いつけそうですけど?
🎓
確かに K_c を上げれば赤も改善する。スライダーで K_c を3〜4にしてみるといい。でもピークは確かに下がるけど、振動的になって整定時間が伸びることがある。さらに実機ではノイズで操作量が暴れたり、不安定化するリスクがある。同じ偏差低減を、安全な低ゲインのまま達成できるのがFFの強みなんだ。フィードバックを無理に上げるか、モデル知識を活用してFFで楽にやるか——制御設計の選択肢として両方の引き出しを持っておくといいよ。
よくある質問
ゲイン誤差±20%程度では依然として50%以上の偏差低減が得られ、実用上は十分な性能を保ちます。時定数の食い違い(T_p ≠ T_d)はピーク値より整定時間に影響します。残留偏差はフィードバックが拾うため、モデル誤差があってもFFを無効化するほどの実害はめったに出ません。ただし符号が逆の補償器を入れてしまうと逆効果になるため、ゲインの極性チェックは必須です。
本ツールが扱うのは「外乱フィードフォワード」で、測定した外乱信号を打ち消す目的で操作量に加えます。一方「目標値フィードフォワード」は、目標値 r(t) から定常制御量を逆算して加える手法で、PIDの応答遅れを跳ばして高速追従を実現します。両者を組み合わせたのが2自由度制御で、追従性能と外乱抑圧性能を独立に設計できます。
この手法はあくまで「外乱が測定可能」または「予測可能」という前提です。測定できない外乱には適用できず、フィードバックに頼るほかありません。代替案として、外乱オブザーバ(DOB)でモデル出力との差から外乱を推定し、その推定値を打ち消す方法があります。これは内部的にフィードフォワード補償器を構成しているとも見なせます。
2自由度制御は「目標値追従」と「外乱抑圧」を独立に最適化する枠組みです。フィードバック制御単独では、両性能のトレードオフが避けられません(速い応答を求めるとオーバーシュートが増える等)。フィードフォワード(目標値FF・外乱FF)を加えることで、フィードバックは外乱抑圧と安定化に専念し、追従はFFが担当する分業が可能になります。プロセス制御・サーボ制御・自動車のクルーズコントロール等、幅広く使われている現代の標準的設計法です。
実世界での応用
プロセス制御(化学プラント):蒸留塔やリアクタの温度制御では、原料供給流量や供給温度の変化が大きな外乱になります。これらは流量計・温度計で測定できるため、外乱フィードフォワードを組み込むことで、PIDフィードバック単独より遥かに少ない温度変動で運転できます。特に応答遅れが大きいプロセスでは、FFがあるかないかで品質歩留まりが大きく変わります。
サーボ制御(工作機械・ロボット):位置サーボでは、目標軌道の加速度・速度から必要なトルクを逆算して指令する目標値フィードフォワードが標準です。これにより追従誤差が大幅に低減し、PIDフィードバックは振動や負荷変動の抑圧に専念できます。高精度切削や産業ロボットの高速軌道追従の根幹技術です。
電力系統と自動車:発電機の負荷周波数制御では、需要予測値を外乱FFとして用いることで周波数変動を抑えます。自動車のクルーズコントロールでは、路面勾配センサで先読みして駆動力を調整する勾配補償が、外乱FFそのものです。坂を登り始めてから速度低下を検知して加速するより、坂が見えた時点で加速する方が滑らかで燃費も良くなります。
HVAC(空調制御):外気温や日射量を外乱FFとして取り込むことで、室温フィードバックだけでは追いつかない速い変化に対応できます。商業ビルや精密温度管理が必要な工場・データセンターで、室温安定性と省エネを両立する重要な技術です。
よくある誤解と注意点
最も多い誤解は、「フィードフォワードを入れればフィードバックは要らない」と考えてしまうことです。FFはモデル既知の外乱しか打ち消せず、モデル誤差・未知外乱・センサーノイズ・初期偏差には無力です。実機にはこれらが必ず存在するため、フィードバックが安定化と最終的な偏差ゼロを保証する役割を担う必要があります。シミュレーターで K_d スライダーを実値からずらしてみると、青の応答に残留誤差が出るのがわかります。それを拾っているのがフィードバック(PIの積分項)です。
次に多いのが、FFの符号を間違えて逆効果にしてしまうことです。理想式 G_ff = -G_d/G_p のマイナス符号は、外乱の影響を「打ち消す」方向への補償を意味します。実装ミスで符号を逆にすると、外乱を増幅してしまいFFなしより遥かに悪化します。デバッグの第一歩は、d_step スライダーを正負どちらに動かしても青の偏差が小さいまま保たれているかの確認です。負側で偏差が爆発するようなら符号バグです。
最後に、理想式 G_ff = -G_d/G_p が必ず物理実装可能と思い込む点に注意が必要です。プロセス G_p の極よりも外乱経路 G_d の極が遅い(外乱の方が応答が遅い)場合、理想補償器の分子の次数が分母より高くなり、微分操作が必要になります。微分はノイズを増幅するため実装が困難です。また G_p に右半面零点(非最小位相)があると、その逆数は不安定な極を生み出し、補償器自体が発散します。ゲインのみの簡略版で済ますことが多いのは、こうした実装上の制約への現実的対応です。