1
<?xml version="1.0" encoding="UTF-8"?>
3
* Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
4
* Copyright (C) INRIA -
6
* This file must be used under the terms of the CeCILL.
7
* This source file is licensed as described in the file COPYING, which
8
* you should have received as part of this distribution. The terms
9
* are also available at
10
* http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
13
<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns5="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" version="5.0-subset Scilab" xml:id="ss2ss" xml:lang="ja">
15
<refname>ss2ss</refname>
16
<refpurpose>状態空間から状態空間への変換, フィードバック, 注入</refpurpose>
20
<synopsis>[Sl1,right,left]=ss2ss(Sl,T, [F, [G , [flag]]])</synopsis>
29
状態空間形式の線形システム (<literal>syslin</literal> リスト)
36
<para>正方 (正則) 行列</para>
40
<term>Sl1, 右, 左</term>
42
<para>状態空間形式の線形システム (syslin リスト) </para>
48
<para>実数行列 (状態フィードバックゲイン)</para>
54
<para>実数行列 (出力注入ゲイン)</para>
62
線形システム <literal>Sl1=[A1,B1,C1,D1]</literal> を返します.
63
ただし, <literal>A1=inv(T)*A*T, B1=inv(T)*B, C1=C*T, D1=D</literal>.
66
オプションのパラメータ <literal>F</literal> および <literal>G</literal>
67
は,それぞれ状態フィードバックおよび出力注入です.
70
例えば, <literal>Sl1=ss2ss(Sl,T,F)</literal> は,以下のような
71
<literal>Sl1</literal> を返します:
75
<imagedata align="center" fileref="../mml/ss2ss_equation1.mml"/>
79
<literal>right</literal> は,<literal>Sl1=Sl*right</literal>となる
83
<literal>Sl1*inv(right)</literal> は
84
<literal>Sl</literal>の分解です.
87
<literal>Sl1=ss2ss(Sl,T,0*F,G)</literal> は以下のような
88
<literal>Sl1</literal> を返します:
92
<imagedata align="center" fileref="../mml/ss2ss_equation2.mml"/>
96
<literal>left</literal> は,
97
<literal>Sl1=left*Sl</literal> (<literal>right=Id</literal>となる
99
(<literal>F=0</literal>の場合に<literal>right=Id</literal>)
102
<literal>F</literal> および <literal>G</literal> の両方と指定した場合,
103
<literal>Sl1=left*Sl*right</literal>となります.
108
<literal>flag</literal> を使用し,<literal>flag=1</literal>の場合,
113
<imagedata fileref="../mml/ss2ss_equation3.mml"/>
117
この後,フィードバックが行われ,<literal>F</literal>の
118
大きさは<literal>(m+p,n)</literal>となります.
122
<imagedata align="left" fileref="../mml/ss2ss_equation4.mml"/>
126
<literal>right</literal> および <literal>left</literal> は
129
<programlisting role=""><![CDATA[
130
Sl1 = left*sysdiag(sys,eye(p,p))*right
135
<literal>flag</literal> を使用し, <literal>flag=2</literal> とした場合,
137
(<literal>F</literal> の大きさは
138
<literal>(m,n)</literal>である必要があります)が行われ,その後,
140
<literal>right</literal> および
141
<literal>left</literal>は以下の特徴を有します:
143
<programlisting role=""><![CDATA[
144
Sl1 = left*sysdiag(sys*right,eye(p,p)))
151
<programlisting role="example"><![CDATA[
152
Sl=ssrand(2,2,5); trzeros(Sl) // zeros are invariant:
153
Sl1=ss2ss(Sl,rand(5,5),rand(2,5),rand(5,2));
154
trzeros(Sl1), trzeros(rand(2,2)*Sl1*rand(2,2))
155
// output injection [ A + GC, (B+GD,-G)]
157
p=1,m=2,n=2; sys=ssrand(p,m,n);
159
// feedback (m,n) first and then output injection.
163
[sys1,right,left]=ss2ss(sys,rand(n,n),F1,G,2);
165
// Sl1 equiv left*sysdiag(sys*right,eye(p,p)))
167
res=clean(ss2tf(sys1) - ss2tf(left*sysdiag(sys*right,eye(p,p))))
169
// output injection then feedback (m+p,n)
170
F2=rand(p,n); F=[F1;F2];
171
[sys2,right,left]=ss2ss(sys,rand(n,n),F,G,1);
173
// Sl1 equiv left*sysdiag(sys,eye(p,p))*right
175
res=clean(ss2tf(sys2)-ss2tf(left*sysdiag(sys,eye(p,p))*right))
177
// when F2= 0; sys1 and sys2 are the same
178
F2=0*rand(p,n);F=[F1;F2];
179
[sys2,right,left]=ss2ss(sys,rand(n,n),F,G,1);
181
res=clean(ss2tf(sys2)-ss2tf(sys1))
184
<refsection role="see also">
186
<simplelist type="inline">
188
<link linkend="projsl">projsl</link>
191
<link linkend="feedback">feedback</link>