License Header change: Removed the LICENSE_END before beta
[scilab.git] / scilab / modules / cacsd / help / ja_JP / observer.xml
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!--
3  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
4  * Copyright (C) INRIA - F. Delebecque
5  * 
6  * Copyright (C) 2012 - 2016 - Scilab Enterprises
7  *
8  * This file is hereby licensed under the terms of the GNU GPL v2.0,
9  * pursuant to article 5.3.4 of the CeCILL v.2.1.
10  * This file was originally licensed under the terms of the CeCILL v2.1,
11  * and continues to be available under such terms.
12  * For more information, see the COPYING file which you should have received
13  * along with this program.
14  *
15  -->
16 <refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="ja" xml:id="observer">
17     <refnamediv>
18         <refname>observer</refname>
19         <refpurpose>オブザーバの設計</refpurpose>
20     </refnamediv>
21     <refsynopsisdiv>
22         <title>呼び出し手順</title>
23         <synopsis>Obs=observer(Sys,J)
24             [Obs,U,m]=observer(Sys [,flag,alfa])
25         </synopsis>
26     </refsynopsisdiv>
27     <refsection>
28         <title>パラメータ</title>
29         <variablelist>
30             <varlistentry>
31                 <term>Sys</term>
32                 <listitem>
33                     <para>
34                         <literal>syslin</literal> リスト (線形システム)
35                     </para>
36                 </listitem>
37             </varlistentry>
38             <varlistentry>
39                 <term>J</term>
40                 <listitem>
41                     <para>nx x ny 定数行列 (出力注入行列)</para>
42                 </listitem>
43             </varlistentry>
44             <varlistentry>
45                 <term>flag</term>
46                 <listitem>
47                     <para>
48                         文字列 (<literal>'pp'</literal> または <literal>'st'</literal> (デフォルト))
49                     </para>
50                 </listitem>
51             </varlistentry>
52             <varlistentry>
53                 <term>alfa</term>
54                 <listitem>
55                     <para>閉ループ極の位置 (オプションのパラメータ, デフォルト=-1)</para>
56                 </listitem>
57             </varlistentry>
58             <varlistentry>
59                 <term>Obs</term>
60                 <listitem>
61                     <para>
62                         線形システム (<literal>syslin</literal> リスト), オブザーバ
63                     </para>
64                 </listitem>
65             </varlistentry>
66             <varlistentry>
67                 <term>U</term>
68                 <listitem>
69                     <para>
70                         直交行列 ( <literal>dt_ility</literal>参照)
71                     </para>
72                 </listitem>
73             </varlistentry>
74             <varlistentry>
75                 <term>m</term>
76                 <listitem>
77                     <para>
78                         整数 (不安定/不可観測(<literal>st</literal>)または
79                         不可観測(<literal>pp</literal>)部分空間の次元)
80                     </para>
81                 </listitem>
82             </varlistentry>
83         </variablelist>
84     </refsection>
85     <refsection>
86         <title>説明</title>
87         <para>
88             <literal>Obs=observer(Sys,J)</literal> は,
89             <literal>J</literal>出力注入により<literal>Sys</literal>から得られた
90             オブザーバ
91             <literal>Obs=syslin(td,A+J*C,[B+J*D,-J],eye(A))</literal> を返します
92             (td は<literal>Sys</literal>の時間領域).
93             より一般的に,<literal>observer</literal>は,
94             線形システム<literal>Sys</literal>,つまり,
95             <literal>syslin</literal>リストにより表された 
96             <literal>dotx=A x + Bu, y=Cx + Du</literal>,
97             の可観測な部分に関するオブザーバ
98             <literal>Obs</literal> を返します.
99             <literal>Sys</literal> は <literal>nx</literal> 個の状態変数, 
100             <literal>nu</literal> 個の入力および <literal>ny</literal> 個の出力を有します.
101             <literal>Obs</literal> は,
102             行列 <literal>[Ao,Bo,Identity]</literal>を有する線形システムです.
103             ただし, 
104             <literal>Ao</literal> は <literal>no x no</literal>, <literal>Bo</literal> は
105             <literal>no x (nu+ny)</literal>, <literal> Co</literal> は
106             <literal>no x no</literal> および <literal>no=nx-m</literal>です.
107         </para>
108         <para>
109             <literal>Obs</literal>への入力は
110             <literal>[u,y]</literal> そして <literal>Obs</literal> の出力は以下のようになります:
111         </para>
112         <para>
113             xhat=不可観測な部分空間の x modulo の推定値 (<literal>flag='pp'</literal>の場合)
114         </para>
115         <para>
116             または,
117             xhat=不安定で不可観測な部分空間のx modulo の推定値 (<literal>flag='st'</literal>の場合)
118         </para>
119         <para>
120             <literal>flag='st'</literal>の場合:
121             <literal>H*U(:,1:m)=0</literal>の場合に限り
122             z=H*x は安定なオブザーバにより推定することができ,
123             オブザーバで配置可能な極は<literal>alfa(1),alfa(2),...</literal>に
124             設定されます.
125         </para>
126         <para>
127             <literal>flag='pp'</literal>の場合:
128             <literal>H*U(:,1:m)=0</literal>の場合に限り
129             z=H*x は指定した誤差スペクトルで推定することができ,
130             全てのオブザーバの極は配置され,<literal>alfa(1),alfa(2),...</literal>に
131             設定されます.
132         </para>
133         <para>
134             H が以下の拘束条件を満たす場合: <literal>H*U(:,1:m)=0</literal>  (ker(H) は
135             Sysの不可観測な部分空間を含みます) 
136             H*U=[0,H2]となり, z=H*x のオブザーバはH2*Obs (ただし,H2=H*U(:,m+1:nx)) となります.
137             すなわち,
138             H*x のオブザーバの C行列である Co は Co=H2となります.
139         </para>
140         <para>
141             <literal>Sys</literal>の対<literal>(A,C)</literal>が可観測となる
142             場合,<literal>m=0</literal>となり,
143             線形システム <literal>U*Obs</literal> (または<literal>H*U*Obs</literal>)
144             は<literal>x</literal>(または <literal>Hx</literal>)のオブザーバとなります. 
145             誤差スペクトルは,
146             <literal>alpha(1),alpha(2),...,alpha(nx)</literal>です.
147         </para>
148     </refsection>
149     <refsection>
150         <title>例</title>
151         <programlisting role="example"><![CDATA[ 
152 nx=5;nu=1;ny=1;un=3;us=2;Sys=ssrand(ny,nu,nx,list('dt',us,us,un));
153 //nx=5 states, nu=1 input, ny=1 output, 
154 //un=3 unobservable states, us=2 of them unstable.
155 [Obs,U,m]=observer(Sys);  //Stable observer (default)
156 W=U';H=W(m+1:nx,:);[A,B,C,D]=abcd(Sys);  //H*U=[0,eye(no,no)];
157 Sys2=ss2tf(syslin('c',A,B,H))  //Transfer u-->z
158 Idu=eye(nu,nu);Sys3=ss2tf(H*U(:,m+1:$)*Obs*[Idu;Sys])  
159 //Transfer u-->[u;y=Sys*u]-->Obs-->xhat-->HUxhat=zhat  i.e. u-->output of Obs
160 //this transfer must equal Sys2, the u-->z transfer  (H2=eye).
161 //Assume a Kalman model
162 //dotx = A x + B u + G w
163 // y   = C x + D u + H w + v
164 //with Eww' = QN, Evv' = RN, Ewv' = NN
165 //To build a Kalman observer:
166 //1-Form BigR = [G*QN*G'         G*QN*H'+G*NN;
167 //               H*QN*G'+NN*G'   H*QN*H'+RN];
168 //the covariance matrix of the noise vector [Gw;Hw+v]
169 //2-Build the plant P21 : dotx = A x + B1 e ; y = C2 x + D21 e 
170 //with e a unit white noise.
171 // [W,Wt]=fullrf(BigR);
172 //B1=W(1:size(G,1),:);D21=W(($+1-size(C,1)):$,:);
173 //C2=C;
174 //P21=syslin('c',A,B1,C2,D21);
175 //3-Compute the Kalman gain
176 //L = lqe(P21);
177 //4- Build an observer for the plant [A,B,C,D];
178 //Plant = syslin('c',A,B,C,D);
179 //Obs = observer(Plant,L);
180 //Test example:
181 A=-diag(1:4);
182 B=ones(4,1);
183 C=B'; D= 0; G=2*B; H=-3; QN=2;
184 RN=5; NN=0;
185 BigR = [G*QN*G'         G*QN*H'+G*NN;
186         H*QN*G'+NN*G'   H*QN*H'+RN];
187 [W,Wt]=fullrf(BigR);
188 B1=W(1:size(G,1),:);D21=W(($+1-size(C,1)):$,:);
189 C2=C;
190 P21=syslin('c',A,B1,C2,D21);
191 L = lqe(P21);
192 Plant = syslin('c',A,B,C,D);
193 Obs = observer(Plant,L);
194 spec(Obs.A)
195  ]]></programlisting>
196     </refsection>
197     <refsection role="see also">
198         <title>参照</title>
199         <simplelist type="inline">
200             <member>
201                 <link linkend="dt_ility">dt_ility</link>
202             </member>
203             <member>
204                 <link linkend="unobs">unobs</link>
205             </member>
206             <member>
207                 <link linkend="stabil">stabil</link>
208             </member>
209         </simplelist>
210     </refsection>
211 </refentry>