Please note that the recommended version of Scilab is 2025.0.0. This page might be outdated.
See the recommended documentation of this function
augment
拡張プラント
呼び出し手順
[P,r]=augment(G) [P,r]=augment(G,flag1) [P,r]=augment(G,flag1,flag2)
パラメータ
- G
線形システム (
syslin
リスト), ノミナルプラント- flag1
以下の文字(大文字)の一つ:
'S'
,'R'
,'T'
'SR'
,'ST'
,'RT'
'SRT'
- flag2
以下の文字の一つ:
'o'
(出力'output'を意味する, これがデフォルト値) または'i'
(入力'input'を意味する).- P
線形システム (
syslin
リスト), ``拡張''プラント- r
1x2 行ベクトル,
P22 = G
の次元
説明
flag1='SRT'
(デフォルト値)の場合,以下の"完全な" 拡張プラントを返します:
[ I | -G] -->'S' [ 0 | I] -->'R' P = [ 0 | G] -->'T' [-------] [ I | -G
'S'
, 'R'
, 'T'
は,それぞれ,P
の最初の3つの(ブロック)行を指します.
flag1
の中にこれらの3文字のどれかが欠けた場合,
P
の対応する行がなくなります.
G
が状態空間形式で指定された場合,
戻り値 P
は最小実現になります.
P
は以下のように計算されます: [I,0,0;0,I,0;-I,0,I;I,0,0]*[I,-G;0,I;I,0]
.
入力感度関数に関連した拡張プラント,つまり, The augmented plant associated with input sensitivity functions, namely
[ I | -I] -->'S' (input sensitivity) [ G | -G] -->'R' (G*input sensitivity) P = [ 0 | I] -->'T' (K*G*input sensitivity) [-------] [ G | -G]
は,コマンド[P,r]=augment(G,flag,'i')
により得られます.
状態空間をG
とすると,
この P
は以下のように計算されます:
[I,-I;0,0;0,I;0,0]+[0;I;0;I]*G*[I,-I]
,
よって,一般に最小実現となります.
重み関数は,
P = blockdiag(W1,W2,W3,eye(G))*P
のように
P
に適当な次元の対角システムを
左から乗じることにより得られます.
感度関数はlft
により計算することができます.
出力感度関数 [P,r]=augment(P,'SRT') の場合: lft(P,r,K)=[inv(eye()+G*K);K*inv(eye()+G*K);G*K*inv(eye()+G*K)];
入力感度関数の場合 [P,r]=augment(P,'SRT','i'): lft(P,r,K)=[inv(eye()+K*G);G*inv(eye()+K*G);K*G*inv(eye()+G*K)];
例
G=ssrand(2,3,2); //プラント K=ssrand(3,2,2); //補償器 [P,r]=augment(G,'T'); T=lft(P,r,K); //相補感度関数 Ktf=ss2tf(K);Gtf=ss2tf(G); Ttf=ss2tf(T);T11=Ttf(1,1); Oloop=Gtf*Ktf; Tn=Oloop*inv(eye(Oloop)+Oloop); clean(T11-Tn(1,1)); // [Pi,r]=augment(G,'T','i'); T1=lft(Pi,r,K);T1tf=ss2tf(T1); //入力相補感度関数 Oloop=Ktf*Gtf; T1n=Oloop*inv(eye(Oloop)+Oloop); clean(T1tf(1,1)-T1n(1,1))
Report an issue | ||
<< Control Loop | Control Loop | feedback >> |