シミュレーション スナップショットでの空気圧システムの線形化
この例では、時間ベースの操作点スナップショットで Simulink® モデルを線形化する方法を示します。この例では、シリンダーに圧縮空気を充填するダイナミクスのモデルを使用します。
空気圧システム モデル
Simulink モデルを開きます。
mdl = 'scdpneumaticlin';
open_system(mdl)
モデルのシミュレーションを実行します。
[t,x,y] = sim(mdl);
この例では、供給圧は閉じられており、システムの初期圧力は 0.2 MPa です。供給圧は 0.7 MPa です。シミュレーションでは、サーボ弁は 0.5e-4 m に開かれています。シミュレーション中、圧力は 0.2 MPa の初期圧力から上昇し、最終的に供給圧で整定します。
plot(t,y)
シミュレーションのスナップショットの取得
0 秒から 60 秒までの範囲に、10 秒間隔で複数のシミュレーション時間を指定し、その操作点を計算します。関数 findop
はモデルをシミュレートし、各シミュレーション時間にモデル条件のスナップショットを取得して、各スナップショットの操作点を計算します。
op = findop(mdl,[0 10 20 30 40 50 60]);
2 番目のスナップショット時間の操作点を表示します。
op(2)
ans = Operating point for the Model scdpneumaticlin. (Time-Varying Components Evaluated at time t=10.7245) States: ---------- x ___________ (1.) scdpneumaticlin/Cylinder Pressure Model/dPc//dt 312046.3941 (2.) scdpneumaticlin/Pipe Model/dPp//dt 312509.866 Inputs: None ----------
モデルの線形化
モデルを線形化するには、最初に線形化の入力ポイントと出力ポイントを指定します。この例では、サーボ弁を開いた x
から出力圧力までのモデルを線形化します。
io(1) = linio('scdpneumaticlin/x',1,'input'); io(2) = linio('scdpneumaticlin/Cylinder Pressure Model',1,'output');
計算されたすべてのスナップショットについてモデルを線形化します。sys
は状態空間モデルの配列です。
sys = linearize(mdl,op,io);
線形化の変動性を確認するには、結果の線形システムの周波数応答をプロットします。
bode(sys)
モデルを閉じます。
bdclose(mdl)
参考
operspec
| findop
| linio
| linearize