プラントモデル
1次遅れ系 Kp/(τs+1)
1次遅れ+むだ時間
2次系 ωn²/(s²+2ζωns+ωn²)
積分過程 Kp/s
PIDゲイン
ZN自動整定
外乱注入
プリセット
P制御のみ
PI制御
PID制御
過積分
タンク液位
モーター速度
パフォーマンス指標
プロセス変数 y(t) とセットポイント
コントローラー出力 u(t)
U
プロセス変数 y(t)
目標値 SP
制御出力 u(t)
理論・主要公式
$$u(t)=K_p\!\left[e(t)+\frac{1}{T_i}\!\int_0^t\!e\,d\tau+T_d\frac{de}{dt}\right]$$
ZN整定式(ステップ応答法):
$K_p=1.2\,\tau/(K\cdot L),\quad T_i=2L,\quad T_d=0.5L$
PID制御とは
🙋
PID制御って何ですか?P、I、Dってそれぞれ何をしているんですか?
🎓
大まかに言うと、目標値と現在値の「偏差」を元に、最適な制御力を計算する方法だよ。Pは今の偏差に比例して動く基本の力。Iは過去の偏差の蓄積を解消して、定常状態でのズレをゼロにする。Dは偏差の変化率を見て「このまま行き過ぎそうだ」と先読みしてブレーキをかける役割だ。このシミュレーターで上のKp, Ti, Tdのスライダーを動かすと、それぞれの効果が一目でわかるよ。
🙋
え、そうなんですか!じゃあ、Kpを大きくしすぎるとダメなんですか?
🎓
その通り!実務でよくある失敗だね。Kp(比例ゲイン)を大きくしすぎると、応答は速くなるけど、目標値を大きく超える「オーバーシュート」が発生して振動が収まらなくなる。例えば、オーブンの温度制御でこれが起きると、設定温度を大幅に超えて焦がしてしまう。シミュレーターでKpを最大まで上げてみると、グラフが激しく振動するのが確認できるはずだ。
🙋
最適なパラメータの決め方が難しそう…。自動で決めてくれる方法はあるんですか?
🎓
あるよ!このツールに実装されている「Ziegler-Nichols整定法」が代表的だ。プロセスのステップ応答から時定数や無駄時間を読み取って、経験則でKp, Ti, Tdを計算する方法さ。シミュレーターの「ZN整定」ボタンを押すと、自動で一組のパラメータが設定されるから確認してみて。現場ではこれをもとに微調整することが多いね。
よくある質問
スライダーを動かしても応答グラフが変わらないのですが、なぜですか?
シミュレーションが一時停止または停止状態になっている可能性があります。画面上の「実行」または「再生」ボタンをクリックしてシミュレーションを開始してください。また、ブラウザのタブがバックグラウンドにあると更新が遅れる場合があります。
オーバーシュートをゼロにしたいのですが、どのようにゲインを調整すればよいですか?
まず比例ゲインKpを小さくして応答を緩やかにし、次に微分時間Tdを徐々に大きくして先読み効果を強めるとオーバーシュートが抑制されます。積分時間Tiは大きめに設定し、積分効果を弱めておくと安定しやすいです。
IAE(積分絶対誤差)の値が小さければ良い制御と言えますか?
はい、IAEは偏差の累積を表すため、小さいほど目標値への追従性が高いと言えます。ただし、IAEだけを最小化すると過度な操作量変動や発振を招くことがあるため、オーバーシュートや整定時間も合わせて確認しながら調整することを推奨します。
Ziegler-Nicholsのステップ応答法はこのツールで試せますか?
はい、試せます。まずKpを小さく、TiとTdを最大にしてシミュレーションを実行し、ステップ応答の傾きと無駄時間を読み取ります。その値からZiegler-Nicholsの公式で初期ゲインを計算し、スライダーに入力して微調整してください。
実世界での応用
化学・プラントプロセス制御: 反応器の温度、蒸留塔の圧力、タンクの液面レベルなど、安定性が求められる連続プロセスで広く使用されます。PIDパラメータのチューニング不良は、製品品質のばらつきやエネルギー損失に直結します。
モーションコントロール: CNC工作機械や産業用ロボットの位置・速度制御に用いられます。ここでは微分動作(D)が重要で、位置決めのオーバーシュートを抑えつつ、高速で正確に目標位置に到達させるために調整されます。
自動車制御: クルーズコントロール(定速走行装置)は代表例です。設定速度と現在速度の偏差をPID制御で計算し、スロットル開度を調整します。坂道でも速度を一定に保つためには積分動作(I)が不可欠です。
家電・ビル設備: エアコンの室温制御、給湯器の湯温制御、ビルの空調システムなど身近なところにも応用されています。省エネと快適性の両立のために、外気温変化に対する応答性がチューニングのポイントになります。
よくある誤解と注意点
まず、「積分時間(Ti)は短いほど良い」という誤解 があります。確かにTiを短く(積分ゲインを強く)すると定常偏差は速く解消されますが、過度に短くするとシステムが不安定になり、持続的な振動(積分ワインドアップのリスクも含む)を引き起こします 。例えば、Tiを0.1秒など極端に小さく設定すると、グラフは目標値を行ったり来たりして落ち着かなくなるはずです。実務では、まず比例ゲイン(Kp)で基本的な応答を整え、その後、振動を起こさない範囲でTiを調整するのがコツです。
次に、微分動作(D)は「万能の先読み機能」ではない という点。微分は確かに変化率を予測しますが、ノイズに対して極めて敏感 です。実際のセンサ信号には必ずノイズが含まれており、これを微分するとノイズが巨大な制御信号に増幅されてしまいます。そのため、実機では微分ゲインを控えめに設定したり、微分動作にローパスフィルタを併用することがほとんどです。シミュレーターでは理想的な信号を使っているので、この危険性を実感しにくい点に注意が必要です。
最後に、Ziegler-Nichols法は「最適解」ではなく「出発点」 です。この方法で得られたパラメータは、やや攻撃的(オーバーシュートが大きめ)で、ロバスト性(外乱への強さ)が必ずしも高くありません。例えば、ZN法で設定したパラメータでシミュレーションを実行し、その後、オーバーシュートを抑えたい場合はKpを少し下げ、Tiを少し上げるといった微調整が不可欠です。「一度設定したら終わり」ではなく、実際の応答を見ながら、トレードオフ(応答速度 vs 安定性)を考慮して手を加える のが実践の現場です。