MIMO システム
ジェット機の状態空間モデル
この例は、ジェット輸送機の MIMO モデルの構築法を示します。ジェット機の物理モデルへの展開の説明は長くなりますので、ここでは、状態空間方程式のみ説明します。飛行機の巡航に関する物理的な背景の詳細に関しては、航空に関する参考文献を参照してください。
マッハ 0.8、高度 40,000 フィートで飛行中のジェット モデルは、次のように表せます。
A = [-0.0558 -0.9968 0.0802 0.0415
0.5980 -0.1150 -0.0318 0
-3.0500 0.3880 -0.4650 0
0 0.0805 1.0000 0];
B = [ 0.0073 0
-0.4750 0.0077
0.1530 0.1430
0 0];
C = [0 1 0 0
0 0 0 1];
D = [0 0
0 0];
次のコマンドを使用して、LTI オブジェクトとして、状態空間モデルを作成し、状態、入力、および出力に名前を付けます。
states = {'beta' 'yaw' 'roll' 'phi'};
inputs = {'rudder' 'aileron'};
outputs = {'yaw rate' 'bank angle'};
sys_mimo = ss(A,B,C,D,'statename',states,...
'inputname',inputs,...
'outputname',outputs);
「sys_mimo」と入力すると、LTI モデルを表示できます。
sys_mimo
a =
beta yaw roll phi
beta -0.0558 -0.9968 0.0802 0.0415
yaw 0.598 -0.115 -0.0318 0
roll -3.05 0.388 -0.465 0
phi 0 0.0805 1 0
b =
rudder aileron
beta 0.0073 0
yaw -0.475 0.0077
roll 0.153 0.143
phi 0 0
c =
beta yaw roll phi
yaw rate 0 1 0 0
bank angle 0 0 0 1
d =
rudder aileron
yaw rate 0 0
bank angle 0 0
Continuous-time model.
モデルには、2 つの入力と 2 つの出力があります。単位は、beta (横すべり角) と phi (バンク角) に対してはラジアン、yaw (ヨー レート) と roll (ロール レート) に対してはラジアン/秒です。方向舵と補助翼の偏向角の単位も度です。
SISO の場合は、関数 tf を使用して、伝達関数表現を導出できます。
tf(sys_mimo)
Transfer function from input "rudder" to output...
-0.475 s^3 - 0.2479 s^2 - 0.1187 s - 0.05633
yaw rate: ---------------------------------------------------
s^4 + 0.6358 s^3 + 0.9389 s^2 + 0.5116 s + 0.003674
0.1148 s^2 - 0.2004 s - 1.373
bank angle: ---------------------------------------------------
s^4 + 0.6358 s^3 + 0.9389 s^2 + 0.5116 s + 0.003674
Transfer function from input "aileron" to output...
0.0077 s^3 - 0.0005372 s^2 + 0.008688 s + 0.004523
yaw rate: ---------------------------------------------------
s^4 + 0.6358 s^3 + 0.9389 s^2 + 0.5116 s + 0.003674
0.1436 s^2 + 0.02737 s + 0.1104
bank angle: ---------------------------------------------------
s^4 + 0.6358 s^3 + 0.9389 s^2 + 0.5116 s + 0.003674
MIMO モデル伝達関数の作成
MIMO 伝達関数は、基本的な SISO 伝達関数の 2 次元の配列です。MIMO 伝達関数モデルを設定するには、2 つの方法があります。
SISO 伝達関数モデルの連結
cell 配列を引数とする
tfの使用
SISO モデルの連結
次の単入力、2 出力の伝達関数について考えます。
SISO 要素の連結で、H(s) を指定できます。次に例を示します。
h11 = tf([1 -1],[1 1]); h21 = tf([1 2],[1 4 5]);
または、次も等価です。
s = tf('s')
h11 = (s-1)/(s+1);
h21 = (s+2)/(s^2+4*s+5);
は連結されることによって H(s) を形成できます。
H = [h11; h21]
この構文は標準的な行列の連結と似ていますが、多入力多出力を含む MIMO システムに対して、簡単で読みやすくなります。
cell 配列を引数とする関数 tf の使用方法
一方、tf を使用して MIMO の伝達関数を定義するには、分子多項式と分母多項式を表す 2 つの cell 配列 (たとえば N と D) が必要です。cell 配列の詳細については、cell 配列を参照してください。
たとえば、有理伝達行列 H(s) では、2 つの cell 配列 N と D に、次の多項式の要素を含む行ベクトルを含めなければなりません。
次のように入力して、MIMO 伝達行列 H(s) を指定できます。
N = {[1 -1];[1 2]}; % Cell array for N(s)
D = {[1 1];[1 4 5]}; % Cell array for D(s)
H = tf(N,D)
このコマンドでは、以下の結果が出力されます。
Transfer function from input to output...
s - 1
#1: -----
s + 1
s + 2
#2: -------------
s^2 + 4 s + 5
N と D は、H と同じ次元であることに注意してください。一般的な MIMO 伝達行列 H(s) に対して、cell 配列要素の N{i,j} と D{i,j} は、伝達行列 H(s) の ij 番目の要素、Hij(s) の分子と分母の行ベクトル表現でなければなりません。
MIMO システムの I/O の組み合わせへのアクセス
MIMO システムの定義後に、システムの入力/出力の組み合わせを指定することにより、I/O の組み合わせへのアクセスや操作ができます。たとえば、sys_mimo が 2 入力 3 出力を含む MIMO システムとすると、
sys_mimo(3,1)
は、最初の入力を 3 番目の出力にマッピングしたサブシステムを抽出します。行のインデックスは出力を、列のインデックスは入力を選択します。同様に、
sys_mimo(3,1) = tf(1,[1 0])
は、積分器のように最初の入力と 3 番目の出力の間の伝達関数を再定義します。