ループシェイピング設計シミュレーター 戻る
制御工学シミュレーター

ループシェイピング設計シミュレーター — Bode 線図と安定余裕

プロセス G_p と PI 補償 C の開ループ周波数応答 L=C·G_p をリアルタイム描画。ゲイン交差周波数・位相余裕・ゲイン余裕・帯域幅を変化させて、古典制御の設計感覚を体得できます。

パラメータ設定
プロセスゲイン K_p
第 1 時定数 T_1
s
PI 比例ゲイン K_c
PI 積分時定数 T_i
s

第 2 時定数 T_2 = 0.5 s 固定。周波数範囲 ω ∈ [0.01, 100] rad/s 対数。

計算結果
ゲイン交差 ω_c
位相余裕 PM
ゲイン余裕 GM
帯域幅 ω_BW
開ループ Bode 線図 L(jω)

上=ゲイン |L| (dB)、下=位相 ∠L (°)、横軸=ω (rad/s) 対数/黄縦線=ω_c、赤縦線=ω_180

理論・主要公式

プロセス $G_p(s) = K_p/((T_1 s+1)(T_2 s+1))$ に PI 補償 $C(s) = K_c(1+1/(T_i s))$ を直列接続した開ループ伝達関数:

$$L(s) = C(s)\,G_p(s) = K_c\!\left(1+\frac{1}{T_i s}\right)\!\frac{K_p}{(T_1 s+1)(T_2 s+1)}$$

ゲイン交差周波数 ω_c は $|L(j\omega_c)|=1$ を満たし、位相余裕 PM は:

$$\mathrm{PM} = \angle L(j\omega_c) + 180^\circ$$

位相が −180° を切る周波数 ω_180 におけるゲイン余裕:

$$\mathrm{GM} = -20\log_{10}|L(j\omega_{180})|\ [\mathrm{dB}]$$

既定値 (K_p=1, T_1=1, T_2=0.5, K_c=5, T_i=2) では PM・GM が共に正の安定設計となります。帯域幅は経験式で ω_BW ≈ 1.5 ω_c と見積もります。

ループシェイピング設計シミュレーターとは

🙋
制御の授業で「ループシェイピング」って言葉が出てきたんですけど、何を「整える」んですか?
🎓
ざっくり言うと、開ループ伝達関数 $L(s) = C(s)\,G_p(s)$ のボード線図(ゲインと位相のカーブ)を、望ましい形に「整形」する設計手法だ。低周波ではゲインを高くして追従性を上げ、ゲイン交差周波数 ω_c のあたりで位相余裕を 40〜60° 確保し、高周波では十分減衰させて雑音を抑える。この上の Bode 線図を見ると、青いゲイン線が 0 dB を切るところが ω_c、そのとき緑の位相線がどれだけ −180° から離れているかが位相余裕 PM だ。
🙋
PI 比例ゲイン K_c を上げると ω_c が右に動くんですね。じゃあ高速応答にしたければ K_c を上げればいいですか?
🎓
気持ちは正しいけど、限界がある。K_c を上げると ω_c が高周波側に動き、応答は速くなる。でも実機では位相が周波数とともに遅れていくから、ω_c が高くなりすぎると位相余裕 PM が小さくなり、最終的には負になって発振する。シミュレーターで K_c を 20、30、50 と上げてみて——PM のカードがどんどん減って、いずれ「no crossover」やマイナスの値になるはずだ。経験的には PM 40〜60°、GM 6〜12 dB を目安にする。
🙋
積分時定数 T_i は何のためにありますか?
🎓
PI 制御の積分項は低周波ゲインを無限大に持ち上げて、定常偏差をゼロにするためのものだ。T_i を小さくすると積分作用が強くなって低周波ゲインがさらに上がる代わりに、ω_c 付近で位相が遅れる方向に効くから PM が削られる。シミュレーターで T_i を 2 から 0.5 へ下げてみると、低周波の |L| はぐっと上がるけど位相も低周波で −90° に強く張り付く。実務では「プロセス時定数 T_1 と同じくらい」が無難な出発点だ。
🙋
プロセスの T_1 が大きいと応答が遅いんですよね?
🎓
そう。T_1 が大きいと低周波からゲインが落ち始め、結果として閉ループの帯域幅 ω_BW が狭まる。シミュレーターで T_1 を 1 から 5 に上げてみると、ω_c が下がって応答が遅くなるのが分かる。古典制御では帯域幅 ω_BW を ω_c の 1.3〜1.7 倍くらいと見積もる近似がよく使われる——ここでは 1.5 倍で表示している。本格設計には閉ループの周波数応答も別途見る必要があるけど、Bode 線図 1 枚で「速さ・安定性・誤差」の三立てを論じられるのがループシェイピングの強みだよ。

よくある質問

プロセス時定数 T_1=1 s, T_2=0.5 s の 2 次系では、ω_c が概ね 2〜4 rad/s 程度になる K_c が PM 40〜60° の安定領域に入ります。T_i=2 s は T_1 と同じスケールに合わせており、低周波での積分作用と ω_c 付近での位相遅れ増加のバランスが取れた値です。スライダーで K_c や T_i を変えると、PM・GM カードがどう動くか直感的に確認できます。
|L(jω)| が表示範囲 [0.01, 100] rad/s 内で 0 dB を切らない場合、ゲイン交差周波数 ω_c が存在しないと判定し警告を出します。典型的には K_c や K_p が極端に大きく低周波ゲインが下がりきらない場合、または逆に K_c が極端に小さくゲインが終始 0 dB 未満の場合に起こります。ゲインを物理的に妥当な範囲(PI ゲイン 0.1〜30 程度)に戻してください。
あります。本ツールの開ループは PI(−90°)+2 次プロセス(合計 −180°)で、最大位相遅れがちょうど −180° に漸近しますが、有限の ω では −180° に達しません。したがって ω_180 が範囲内に存在せず、GM は理論上無限大となり「∞」と表示します。実機では計測遅延や高周波極があり実際の GM は有限です。
ループシェイピングは感度関数 S=1/(1+L) と相補感度 T=L/(1+L) を間接的に整形しています。低周波 |L|≫1 では S≈1/|L|(外乱抑制)、高周波 |L|≪1 では T≈|L|(雑音抑制)が成り立ちます。H∞ 設計では重み関数 W_S(s), W_T(s) を指定して ‖[W_S S; W_T T]‖∞ を直接最小化します。本ツールで掴んだ「望ましい L の形」が、H∞ における重み W_S, W_T の良い初期推測になります。

実世界での応用

プロセス制御の PID 設計:化学プラントの温度制御・流量制御・液面制御では、プロセス同定で得た FOPDT(一次遅れ+むだ時間)モデルに PI/PID を適用します。Ziegler-Nichols などの整定法を出発点に、現場ではボード線図で位相余裕・ゲイン余裕を確認しながら微調整するのが定番です。本ツールの開ループ可視化は、この「整定→確認→微調整」サイクルの直感を養うのに最適です。

サーボ系・モータ制御:サーボモータの速度制御・位置制御では、機械系の共振や慣性比により位相余裕が削られがちです。電流ループ→速度ループ→位置ループのカスケード設計でも、各ループに対してループシェイピングの考え方が使われ、内側ほど ω_c を高く(典型的に 1 桁差)配置して安定なカスケード階層を構成します。

電源回路・スイッチング電源:DC-DC コンバータの電圧制御ループでは、補償器(タイプ II/III)で出力 LC フィルタの 2 重極を補償し、十分な位相余裕を確保します。本ツールと同様にボード線図で ω_c と PM を見ながら設計するのが標準的で、教科書(Erickson "Fundamentals of Power Electronics" 等)でも中心的なテーマです。

ロボット・自動車の運動制御:マニピュレータの関節制御、車両のステア・ブレーキ制御、ドローンの姿勢制御など、運動制御系の多くは内側にループシェイピングで設計した PI/PID を持ちます。モデル予測制御 (MPC) や強化学習が外側を担っても、内側の安定性確保には依然として古典のループシェイピングが頼られます。

よくある誤解と注意点

最も多い誤解は、「ゲイン K_c を上げれば必ず応答が速くなる」と考えることです。確かに ω_c は K_c に概ね比例して上がりますが、ω_c が高周波側に進むほどプロセスの位相遅れが累積し、ある点を超えると PM が急減します。さらに上げると PM が負になり閉ループが不安定化します。本ツールで K_c を 5→10→30→100 と段階的に上げてみてください。PM カードが 60°→30°→10°→「負」と崩れていくのが確認できます。「速さ」と「安定性」はトレードオフで、PM 40〜60° という経験則がその折衷点です。

次に多いのが、「位相余裕さえ取れていれば閉ループは振動しない」と思い込むことです。PM はゲイン交差周波数 1 点での余裕しか見ておらず、複数の交差や複雑な共振がある系では、PM が正でもナイキスト線図が −1 点を「危ない通り方」で回ることがあります。実務ではナイキスト線図、感度関数 |S(jω)| のピーク値 M_S(典型的に M_S ≤ 2、すなわち 6 dB 以下)も併せて確認します。本ツールのように極が実軸上にある単純系では PM が良い指標ですが、共振モードを持つ系では注意が必要です。

最後に、「ボード線図で帯域幅 ω_BW ≈ 1.5 ω_c は厳密な公式」だと誤解する点に注意してください。これは PM 60° 前後の標準的な設計で経験的に成り立つ近似に過ぎず、PM が小さい(共振気味の)設計では ω_BW/ω_c 比が 2 を超えることもあり、PM が大きい過減衰設計では 1 を割ることもあります。本ツールではあくまで目安として 1.5 倍を表示しています。厳密な閉ループ帯域が必要なときは、閉ループ伝達関数 T(jω) = L(jω)/(1+L(jω)) の振幅が −3 dB になる周波数を別途求める必要があります。