Simulink Control Design

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

機体の平衡化と線形化

この例では、機体の平衡化と線形化の方法を説明します。まず、昇降舵の偏差と結果的に平衡化された本体比 (q) を検出する必要があります。これにより、設定速度で機体が飛行する際に指定の入射角が生成されます。平衡化条件を見つけると、その平衡化条件状態の周辺にあるダイナミクスについて線形モデルを得ることができます。

        Fixed parameters  :
                            Incidence (Theta)
                            Body attitude (U)
                            Position
        Trimmed steady state parameters :
                            Elevator deflection (w)
                            Body rate (q)

操作点の生成

モデルを開きます。

scdairframe

操作点の仕様オブジェクトを取得するには、operspec コマンドを使用します。

opspec = operspec('scdairframe')
 Operating Specification for the Model scdairframe.
 (Time-Varying Components Evaluated at time t=0)

States: 
----------
(1.) scdairframe/EOM/ Equations of Motion (Body Axes)/Position
	 spec:  dx = 0,  initial guess:             0
	 spec:  dx = 0,  initial guess:     -3.05e+03
(2.) scdairframe/EOM/ Equations of Motion (Body Axes)/Theta
	 spec:  dx = 0,  initial guess:             0
(3.) scdairframe/EOM/ Equations of Motion (Body Axes)/U,w
	 spec:  dx = 0,  initial guess:           984
	 spec:  dx = 0,  initial guess:             0
(4.) scdairframe/EOM/ Equations of Motion (Body Axes)/q
	 spec:  dx = 0,  initial guess:             0

Inputs: 
----------
(1.) scdairframe/Fin Deflection
	 initial guess: 0            

Outputs: 
----------
(1.) scdairframe/q
	 spec:  none
(2.) scdairframe/az
	 spec:  none

最初に、Position の状態仕様を設定します。これは既知ですが、定常状態ではありません。

opspec.States(1).Known = [1;1];
opspec.States(1).SteadyState = [0;0];

2 番目の状態仕様は Theta です。これは既知ですが、定常状態ではありません。

opspec.States(2).Known = 1;
opspec.States(2).SteadyState = 0;

3 番目の状態仕様には、機体軸の角度比が含まれ、変数 w は定常状態にあります。

opspec.States(3).Known = [1 1];
opspec.States(3).SteadyState = [0 1];

次に、この仕様を満たす操作点を求めます。

op = findop('scdairframe',opspec);
 Operating Point Search Report:
---------------------------------

 Operating Report for the Model scdairframe.
 (Time-Varying Components Evaluated at time t=0)

Operating point specifications were successfully met.
States: 
----------
(1.) scdairframe/EOM/ Equations of Motion (Body Axes)/Position
      x:             0      dx:           984
      x:     -3.05e+03      dx:             0
(2.) scdairframe/EOM/ Equations of Motion (Body Axes)/Theta
      x:             0      dx:      -0.00972
(3.) scdairframe/EOM/ Equations of Motion (Body Axes)/U,w
      x:           984      dx:          22.7
      x:             0      dx:     -1.44e-11 (0)
(4.) scdairframe/EOM/ Equations of Motion (Body Axes)/q
      x:      -0.00972      dx:      6.31e-16 (0)

Inputs: 
----------
(1.) scdairframe/Fin Deflection
      u:       0.00142    [-Inf Inf]

Outputs: 
----------
(1.) scdairframe/q
      y:      -0.00972    [-Inf Inf]
(2.) scdairframe/az
      y:        -0.242    [-Inf Inf]

モデルの線形化

操作点は、線形化を行う準備ができました。最初に、次のコマンドを使用して、入力ポイントと出力ポイントを指定します。

io(1) = linio('scdairframe/Fin Deflection',1,'input');
io(2) = linio('scdairframe/EOM',3,'output');
io(3) = linio('scdairframe/Selector',1,'output');

モデルを線形化して、条件ごとにボード線図の振幅応答をプロットします。

sys = linearize('scdairframe',op,io);
bodemag(sys)

bdclose('scdairframe')