Scilab Website | Contribute with GitLab | Mailing list archives | ATOMS toolboxes
Scilab Online Help
6.1.1 - 日本語

Change language to:
English - Français - Português - Русский

Please note that the recommended version of Scilab is 2025.0.0. This page might be outdated.
See the recommended documentation of this function

Scilabヘルプ >> CACSD > Control Design > Control Loop > augment

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'  (K*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))

参照

  • lft — 線形分数変換
  • sensi — 感度関数
Report an issue
<< Control Loop Control Loop feedback >>

Copyright (c) 2022-2024 (Dassault Systèmes)
Copyright (c) 2017-2022 (ESI Group)
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Mon Jan 03 14:37:48 CET 2022