Using Simulink | ![]() ![]() |
平衡点の決定
Simulinkの関数 trim
は、定常状態の平衡点を決定します。たとえば、lmod
というモデルを検討します。
関数 trim
は、両方の出力を1に設定する入力と状態の値を見つけるために使用することができます。まず、状態変数(x
) と入力値 (u
) に対して初期推定を行い、出力 (y
) に対する希望値を設定します。
x = [0; 0; 0]; u = 0; y = [1; 1];
どの変数が固定で、どの変数が可変であるかを示すために、インデックス変数を使用します。
ix = []; % どの状態も固定しません。 iu = []; % 入力を固定しません。 iy = [1;2]; % 出力1と出力2をいずれも固定します。
trim
を呼び出すと解が出力されます。丸め誤差のため結果は異なる場合があります。
[x,u,y,dx] = trim('lmod',x,u,y,ix,iu,iy) x = 0.0000 1.0000 1.0000 u = 2 y = 1.0000 1.0000 dx = 1.0e-015 * -0.2220 -0.0227 0.3331
平衡点の問題には解が存在しない場合があることに注意してください。その場合には、trim
はまず導関数をゼロに設定するよう試みた後で、希望する結果からの最大偏差が最小となるような解を出力します。trim
の構文の説明については、trim
を参照してください。
![]() | 線形化 | linfun | ![]() |