システムとモデリング

SysML, Matlab/Simulink,他モデリング全般について。たまにプロジェクトマネジメント。

Open Modelicaで流量のPIDコントロール その2 失敗編

本日も昨日に引き続きOpen ModelicaでPIDコントロールをしてみたいと思います。
前回の記事はこちらです。

otepipi.hatenablog.com

前回下図の状態まで実施しましたので、あとはステップ入力の部分をPID動作に変更します。 f:id:Otepipi:20180729203531p:plain

PID操作器

Blocks -> Continuous -> LimPID でPID操作器を設定します。今回、バルブが受け付ける信号が0~1までの数値になりますので、出力の最大最小を設定できるLimPIDを使用します。
f:id:Otepipi:20180730210611p:plain

PIDの設定は適当に次のように入れます。最小(yMin)、最大(yMax)の値を0と1に設定するようにしてください。

f:id:Otepipi:20180730210924p:plain

目標値設定

流量の目標値を設定しなくてはいけませんので、前回同様にステップ入力で目標値を設定してやります。流量の目標値を300kg/sとしました。

f:id:Otepipi:20180730211138p:plain

結線

下図のように結線を行います。今回結ぶコネクタは流体ではなく信号なので、前回のようにredeclare~を書き込む必要はありません。

f:id:Otepipi:20180730211410p:plain

シミュレーションの実行

シミュレーションした結果の流量の経時変化は下図のようになりました
f:id:Otepipi:20180730211559p:plain

なんと一瞬で目標の300kg/sに到達しています。これは、バルブの流量挙動が0~1の開度司令に対して完全に線形なため、PID調節がとてもとても簡単なタメだと思われます。完全に問題設定を間違えてしまいました。 次はこのモデルに一工夫加えてPIDらしさを表現できればと思います。

今日はここらで終わりにします。