カスケード(s)
シュート%
カスケード(s)
単ループ(s)
シュート%
単ループ(s)
内側ループ $G_i(s) = \frac{K_i}{\tau_i s+1}$ と外側ループを組み合わせた2重PID制御のステップ応答を可視化。単ループとの差を体感しよう。
このシミュレーターでは、内側と外側のプロセスをそれぞれ一次遅れ系でモデル化しています。一次遅れ系は、多くの工業プロセス(温度、レベル、流量など)の動特性をシンプルに表現する基本的なモデルです。
$$G_i(s) = \frac{K_i}{\tau_i s + 1}$$$G_i(s)$: 内側プロセスの伝達関数、$K_i$: 内側プロセスのゲイン(定常ゲイン)、$\tau_i$: 内側プロセスの時定数(応答の速さを決める)
外側プロセスも同様に一次遅れ系で、通常は内側プロセスよりも応答が遅い(時定数$\tau_o$が大きい)設定になります。
$$G_o(s) = \frac{K_o}{\tau_o s + 1}$$$G_o(s)$: 外側プロセスの伝達関数、$K_o$: 外側プロセスのゲイン、$\tau_o$: 外側プロセスの時定数。カスケード制御が有効なのは、$\tau_i$が$\tau_o$に比べて十分に小さい(例えば1/3〜1/5以下)場合です。
化学プラントの反応器温度制御:外ループが反応器全体の温度を目標値に保ち、内ループがその指令に基づいてジャケットを流れる冷却水の流量を高速で制御します。反応熱の急激な変動といった内乱を、冷却水流で素早く打ち消すことができます。
ボイラーの蒸気圧力制御:外ループがボイラー出口の蒸気圧力を管理し、内ループが燃料(重油やガス)の供給量を微調整します。燃料側の圧力変動などの外乱を内ループが即座に吸収し、蒸気圧力を安定させます。
紙の厚み(ベーシックウェイト)制御:外ループが最終製品の紙の厚みを計測・制御し、内ループが紙パルプの供給流量を制御します。パルプ濃度のむらなどのプロセス外乱を、厚みに影響が出る前に内ループで抑制します。
航空機のオートパイロット(姿勢制御):外ループが機体の目標姿勢(ピッチ角)を設定し、内ループがエレベータなどの操縦翼面を素早く動かして姿勢を実現します。気流の乱れなどの外乱を、機体の挙動に大きな影響を与える前に内ループで補正します。
カスケード制御を始めて触るとき、いくつかハマりやすい落とし穴があるんだ。まず大きな誤解が「外ループさえしっかりチューニングすれば内ループは適当でいい」という考え。これは絶対にダメ。内ループが鈍いと、外ループから見れば「指令を出してもなかなか応答しない、挙動が予測できない部下」を抱えているようなもの。例えば、内ループの時定数 $\tau_i$ が1秒、外ループの時定数 $\tau_o$ が10秒の理想的な組み合わせならうまくいく。でも、もし内ループの応答が遅くて $\tau_i$ が5秒もあれば、外ループ(10秒)との差が小さすぎて、カスケード制御のメリットがほとんど消えてしまう。シミュレーターで内ループゲインを極端に下げて、外ループゲインを上げてみると、すぐに発振するのが確認できるはずだよ。
次に、外乱の注入ポイントを見誤ること。カスケード制御が威力を発揮するのは、外乱が内ループで検知・補正できるポイントに入る時だ。逆に、外乱が外ループのプロセスに直接入ってくる場合は、単一ループと大差ない結果になることもある。実務では、どの経路からどんな外乱が入るのか、プロセスフローをよく見極めることが超重要。
最後に、内ループと外ループのサンプリング周期を同じに設定してしまうという実装上のミス。内ループは速い応答が求められるので、制御周期は短く(例えば100ms)、外ループは遅いプロセスを制御するので、もう少し長い周期(例えば1秒)で十分なことが多い。両方を同じ速い周期で動かすと、無駄な計算負荷がかかるだけだし、場合によっては外ループの制御が不安定になる原因にもなるから注意してね。
このシミュレーターで扱っているカスケード制御の考え方は、実は制御工学の枠を超えて、いろんな工学分野に応用されているんだ。まず挙げるのはロボット工学。マニピュレータの関節制御では、外ループが「位置」を制御し、内ループが「トルク」や「電流」を高速に制御するカスケード構造が一般的。これにより、負荷変動があっても正確な位置決めが実現できる。
もう一つは電力システムの制御だ。例えば、電力系統の周波数安定化制御では、外側のループで広域の周波数偏差を検出し、内側のループで個々の発電機の出力を素早く調整する。これも立派なカスケード制御の応用例と言える。
さらに自動車の運動制御も深く関わっている。車両の横滑り防止制御(ESC)では、外ループが「目標ヨーレート」を計算し、内ループが各車輪のブレーキ油圧を個別に、ミリ秒単位で制御する。内ループの高速な応答がなければ、外ループで計算した理想的な車両挙動を実現することはできない。このように、階層化された制御構造は、複雑で高速応答が要求される現代のシステム工学の基本形になっているんだ。
このシミュレーターでカスケード制御の「感覚」をつかんだら、次は理論的なバックボーンを固めるのがおすすめだ。まずステップとして、「ブロック線図の等価変換」をマスターしよう。カスケード制御系の全体伝達関数を、内ループをまとめる形で導出できるようになると、なぜ内ループが外乱を抑制できるのかが数式的にもはっきり理解できる。具体的には、内ループ(PI制御器 $C_i(s)$ とプロセス $G_i(s)$)を一つのブロック $G_{eq}(s)$ にまとめるんだ。
次に挑戦したいのは、モデルベース制御への拡張。このシミュレーターではPIDを使っているけど、内ループのプロセスモデル $G_i(s)$ が正確にわかっているなら、より積極的な制御が可能になる。例えば、フィードフォワード制御を内ループに組み込めば、予測できる外乱に対してはほぼ完全に打ち消すことも理論上可能だ。
数学的には、「特異摂動法」という考え方が深く関連している。時定数が大きく異なる2つの動的システムが結合している時、速い系(内ループ)の応答を瞬時に終わったものとみなして、遅い系(外ループ)の動きを解析する手法だ。カスケード制御が成立する条件「$\tau_i \ll \tau_o$」は、まさにこの特異摂動法が適用できる条件そのものなんだ。この先は、状態空間表現や多変数制御へ進むと、現代の制御理論の広大な世界が見えてくるよ。