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

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 manual >> Elementary Functions > bloc2ss

bloc2ss

ブロックを状態空間表現に変換b

呼び出し手順

[sl]=bloc2ss(blocd)

パラメータ

blocd

リスト

sl

リスト

説明

線形システムのブロック図表現を指定すると, bloc2ssはこの形式を状態空間線形システムに変換します. リスト blocdの最初の要素は, 文字列 'blocd'である必要があります. このリストのその他の各要素はそれ自体,以下の型のリストとなります:

list('transfer','name_of_linear_system')
list('link','name_of_link',
             [number_of_upstream_box,upstream_box_port],
             [downstream_box_1,downstream_box_1_portnumber],
             [downstream_box_2,downstream_box_2_portnumber],
             ...)

文字列 'transfer' および 'links' はブロック図の中での要素の型を示す キーワードです.

ケース1 : リストの2番目のパラメータは, 状態空間表現(syslin リスト)または伝達関数形式(有理数の行列) で指定される 線形システムのScilab名を指す(またはそのように評価される)文字列 です.

各伝達関数ブロックには1つの整数値がふられます. 伝達関数ブロックの各入力および出力にも整数値の番号がふられます. (例を参照)

ケース2 : ブロック図表現の2種類目の要素はリンクです. リンクは, 対[number_of_upstream_box,upstream_box_port]で 表されるブロックの出力と 他のブロックの入力を結合します. この際,各入力は,対 [downstream_box_i,downstream_box_i_portnumber] のように表されます.

ブロックの異なる要素を任意の順序で 定義できます.

例えば,

[1] ゲイン1のフィードバックを有するS1*S2.

3つの伝達関数, S1 (番号 n_s1=2) , S2 (番号 n_s2=3) および伝達関す記号が['1','1'] となる加算器 (番号 n_add=4) があります.

リンクは 4 つあります. 最初のリンク (名前は 'U') 入力 を加算器のポート1に結合します. 2番目と3番目のリンクはそれぞれ, 加算器の(出力)ポート1をシステムS1の(入力)ポート1, S1の(出力)ポート1をS2の(入力)ポート1 に結合します. ('Y'という名前の)4番目のリンクは, S2の出力ポート1を出力 (仮想的なブロック -1 のポート0, 省略されている) および加算器の(入力)ポート2に結合します.

//Initialization
syst=list('blocd'); l=1;

//Systems
l=l+1;n_s1=l;syst(l)=list('transfer','S1');  //System 1
l=l+1;n_s2=l;syst(l)=list('transfer','S2');  //System 2
l=l+1;n_adder=l;syst(l)=list('transfer',['1','1']);  //adder

//Links
// Inputs  -1 --> input 1
l=l+1;syst(l)=list('link','U1',[-1],[n_adder,1]);

// Internal 
l=l+1;syst(l)=list('link',' ',[n_adder,1],[n_s1,1]);
l=l+1;syst(l)=list('link',' ',[n_s1,1],[n_s2,1]);

// Outputs // -1 -> output 1
l=l+1;syst(l)=list('link','Y',[n_s2,1],[-1],[n_adder,2]);

With s=poly(0,'s');S1=1/(s+1);S2=1/s; the result of the evaluation call sl=bloc2ss(syst); is a state-space representation for 1/(s^2+s-1).

[2] LFT の例

//Initialization
syst=list('blocd'); l=1;

//System (2x2 blocks plant)
l=l+1;n_s=l;syst(l)=list('transfer',['P11','P12';'P21','P22']); 
 
//Controller
l=l+1;n_k=l;syst(l)=list('transfer','k');
 
//Links
l=l+1;syst(l)=list('link','w',[-1],[n_s,1]);
l=l+1;syst(l)=list('link','z',[n_s,1],[-1]);
l=l+1;syst(l)=list('link','u',[n_k,1],[n_s,2]);
l=l+1;syst(l)=list('link','y',[n_s,2],[n_k,1]);

With

P=syslin('c',A,B,C,D);
P11=P(1,1); 
P12=P(1,2);
P21=P(2,1); 
P22=P(2,2);
K=syslin('c',Ak,Bk,Ck,Dk);

bloc2exp(syst) は, P および KのLFT表現を返します.

参照

作者

S. S., F. D. (INRIA)

<< bloc2exp Elementary Functions cat >>

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:
Wed Jan 26 16:25:03 CET 2011