~ubuntu-branches/ubuntu/hoary/scilab/hoary

« back to all changes in this revision

Viewing changes to man/fr/identification/findBD.xml

  • Committer: Bazaar Package Importer
  • Author(s): Torsten Werner
  • Date: 2005-01-09 22:58:21 UTC
  • mfrom: (1.1.1 upstream)
  • Revision ID: james.westby@ubuntu.com-20050109225821-473xr8vhgugxxx5j
Tags: 3.0-12
changed configure.in to build scilab's own malloc.o, closes: #255869

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
 
2
<!DOCTYPE MAN SYSTEM "../../manrev.dtd">
 
3
<MAN>
 
4
  <LANGUAGE>eng</LANGUAGE>
 
5
  <TITLE>findBD</TITLE>
 
6
  <TYPE>Scilab Function</TYPE>
 
7
  <DATE>April 1999</DATE>
 
8
  <SHORT_DESCRIPTION name="findBD"> initial state and system matrices B and D of a discrete-time system</SHORT_DESCRIPTION>
 
9
  <CALLING_SEQUENCE>
 
10
    <CALLING_SEQUENCE_ITEM>[(x0) (,B (,D)) (,V) (,rcnd)] = findBD(jobx0,comuse (,job),A (,B),C (,D),Y</CALLING_SEQUENCE_ITEM>
 
11
    <CALLING_SEQUENCE_ITEM>                                      (,U,tol,printw,ldwork))  </CALLING_SEQUENCE_ITEM>
 
12
  </CALLING_SEQUENCE>
 
13
  <PARAM>
 
14
    <PARAM_INDENT>
 
15
      <PARAM_ITEM>
 
16
        <PARAM_NAME>jobx0</PARAM_NAME>
 
17
        <PARAM_DESCRIPTION>
 
18
          <SP>: integer option to specify whether or not the initial state  should be computed:</SP>
 
19
          <PARAM_INDENT>
 
20
            <PARAM_ITEM>
 
21
              <PARAM_NAME>=  </PARAM_NAME>
 
22
              <PARAM_DESCRIPTION>
 
23
                <SP>1 : compute the initial state x0;</SP>
 
24
              </PARAM_DESCRIPTION>
 
25
            </PARAM_ITEM>
 
26
            <PARAM_ITEM>
 
27
              <PARAM_NAME>=  </PARAM_NAME>
 
28
              <PARAM_DESCRIPTION>
 
29
                <SP>2 : do not compute the initial state (possibly, because x0 is known to be zero).</SP>
 
30
              </PARAM_DESCRIPTION>
 
31
            </PARAM_ITEM>
 
32
          </PARAM_INDENT>
 
33
        </PARAM_DESCRIPTION>
 
34
      </PARAM_ITEM>
 
35
      <PARAM_ITEM>
 
36
        <PARAM_NAME>comuse</PARAM_NAME>
 
37
        <PARAM_DESCRIPTION>
 
38
          <SP>: integer option to specify whether the system matrices B and D should be computed or used:</SP>
 
39
          <PARAM_INDENT>
 
40
            <PARAM_ITEM>
 
41
              <PARAM_NAME>=  </PARAM_NAME>
 
42
              <PARAM_DESCRIPTION>
 
43
                <SP>1 : compute the matrices B and D, as specified by job;</SP>
 
44
              </PARAM_DESCRIPTION>
 
45
            </PARAM_ITEM>
 
46
            <PARAM_ITEM>
 
47
              <PARAM_NAME>=  </PARAM_NAME>
 
48
              <PARAM_DESCRIPTION>
 
49
                <SP>2 : use the matrices B and D, as specified by job;</SP>
 
50
              </PARAM_DESCRIPTION>
 
51
            </PARAM_ITEM>
 
52
            <PARAM_ITEM>
 
53
              <PARAM_NAME>=  </PARAM_NAME>
 
54
              <PARAM_DESCRIPTION>
 
55
                <SP>3 : do not compute/use the matrices B and D.</SP>
 
56
              </PARAM_DESCRIPTION>
 
57
            </PARAM_ITEM>
 
58
          </PARAM_INDENT>
 
59
        </PARAM_DESCRIPTION>
 
60
      </PARAM_ITEM>
 
61
      <PARAM_ITEM>
 
62
        <PARAM_NAME>job</PARAM_NAME>
 
63
        <PARAM_DESCRIPTION>
 
64
          <SP>: integer option to determine which of the system matrices B and D should be computed or used:</SP>
 
65
          <PARAM_INDENT>
 
66
            <PARAM_ITEM>
 
67
              <PARAM_NAME>=  </PARAM_NAME>
 
68
              <PARAM_DESCRIPTION>
 
69
                <SP>1 : compute/use the matrix B only (D is known to be zero);</SP>
 
70
              </PARAM_DESCRIPTION>
 
71
            </PARAM_ITEM>
 
72
            <PARAM_ITEM>
 
73
              <PARAM_NAME>=  </PARAM_NAME>
 
74
              <PARAM_DESCRIPTION>
 
75
                <SP>2 : compute/use the matrices B and D.</SP>
 
76
              </PARAM_DESCRIPTION>
 
77
            </PARAM_ITEM>
 
78
          </PARAM_INDENT>
 
79
          <P>
 
80
    job must not be specified if jobx0 = 2 and comuse = 2, or if comuse = 3.
 
81
  </P>
 
82
        </PARAM_DESCRIPTION>
 
83
      </PARAM_ITEM>
 
84
      <PARAM_ITEM>
 
85
        <PARAM_NAME>A</PARAM_NAME>
 
86
        <PARAM_DESCRIPTION>
 
87
          <SP>: state matrix of the given system</SP>
 
88
        </PARAM_DESCRIPTION>
 
89
      </PARAM_ITEM>
 
90
      <PARAM_ITEM>
 
91
        <PARAM_NAME>B</PARAM_NAME>
 
92
        <PARAM_DESCRIPTION>
 
93
          <SP>: optionnal, input matrix of the given system</SP>
 
94
        </PARAM_DESCRIPTION>
 
95
      </PARAM_ITEM>
 
96
      <PARAM_ITEM>
 
97
        <PARAM_NAME>C</PARAM_NAME>
 
98
        <PARAM_DESCRIPTION>
 
99
          <SP>: output matrix of the given system</SP>
 
100
        </PARAM_DESCRIPTION>
 
101
      </PARAM_ITEM>
 
102
      <PARAM_ITEM>
 
103
        <PARAM_NAME>D</PARAM_NAME>
 
104
        <PARAM_DESCRIPTION>
 
105
          <SP>: optionnal, direct feedthrough of the given system</SP>
 
106
        </PARAM_DESCRIPTION>
 
107
      </PARAM_ITEM>
 
108
      <PARAM_ITEM>
 
109
        <PARAM_NAME>Y</PARAM_NAME>
 
110
        <PARAM_DESCRIPTION>
 
111
          <SP>: the t-by-l output-data sequence matrix.  Column  j  of  Y  contains the  t  values of the j-th output component for consecutive time increments.</SP>
 
112
        </PARAM_DESCRIPTION>
 
113
      </PARAM_ITEM>
 
114
      <PARAM_ITEM>
 
115
        <PARAM_NAME>U</PARAM_NAME>
 
116
        <PARAM_DESCRIPTION>
 
117
          <SP>: the t-by-m input-data sequence matrix (input when jobx0 = 1  and comuse = 2, or comuse = 1).  Column  j  of  U  contains the  t  values of the j-th input component for consecutive time increments.</SP>
 
118
        </PARAM_DESCRIPTION>
 
119
      </PARAM_ITEM>
 
120
      <PARAM_ITEM>
 
121
        <PARAM_NAME>tol</PARAM_NAME>
 
122
        <PARAM_DESCRIPTION>
 
123
          <SP>: optionnal, tolerance used for estimating the rank of
 
124
  matrices. If  tol &gt; 0,  then the given value of  tol  is used as
 
125
  a lower bound for the reciprocal condition number; an m-by-n matrix
 
126
  whose estimated condition number is less than  1/tol  is considered
 
127
  to be of full rank. Default:    m*n*epsilon_machine where
 
128
  epsilon_machine is the relative machine precision.</SP>
 
129
        </PARAM_DESCRIPTION>
 
130
      </PARAM_ITEM>
 
131
      <PARAM_ITEM>
 
132
        <PARAM_NAME>printw</PARAM_NAME>
 
133
        <PARAM_DESCRIPTION>
 
134
          <SP>:optionnal, switch for printing the warning messages.</SP>
 
135
          <PARAM_INDENT>
 
136
            <PARAM_ITEM>
 
137
              <PARAM_NAME>=  </PARAM_NAME>
 
138
              <PARAM_DESCRIPTION>
 
139
                <SP>1:  print warning messages;</SP>
 
140
              </PARAM_DESCRIPTION>
 
141
            </PARAM_ITEM>
 
142
            <PARAM_ITEM>
 
143
              <PARAM_NAME>=  </PARAM_NAME>
 
144
              <PARAM_DESCRIPTION>
 
145
                <SP>0:  do not print warning messages.</SP>
 
146
              </PARAM_DESCRIPTION>
 
147
            </PARAM_ITEM>
 
148
          </PARAM_INDENT>
 
149
          <P>
 
150
    Default:    printw = 0.
 
151
  </P>
 
152
        </PARAM_DESCRIPTION>
 
153
      </PARAM_ITEM>
 
154
      <PARAM_ITEM>
 
155
        <PARAM_NAME>ldwork</PARAM_NAME>
 
156
        <PARAM_DESCRIPTION>
 
157
          <SP>: (optional) the workspace size. Default :   computed by the formula LDWORK = MAX( minimum workspace size needed, 2*CSIZE/3, CSIZE - ( m + l )*t - 2*n*( n + m + l ) - l*m ) where CSIZE is the cache size in double precision words.</SP>
 
158
        </PARAM_DESCRIPTION>
 
159
      </PARAM_ITEM>
 
160
      <PARAM_ITEM>
 
161
        <PARAM_NAME>x0</PARAM_NAME>
 
162
        <PARAM_DESCRIPTION>
 
163
          <SP>: initial state vector</SP>
 
164
        </PARAM_DESCRIPTION>
 
165
      </PARAM_ITEM>
 
166
      <PARAM_ITEM>
 
167
        <PARAM_NAME>Br</PARAM_NAME>
 
168
        <PARAM_DESCRIPTION>
 
169
          <SP>: system input matrix</SP>
 
170
        </PARAM_DESCRIPTION>
 
171
      </PARAM_ITEM>
 
172
      <PARAM_ITEM>
 
173
        <PARAM_NAME>Dr</PARAM_NAME>
 
174
        <PARAM_DESCRIPTION>
 
175
          <SP>: system direct feedthrough matrix</SP>
 
176
        </PARAM_DESCRIPTION>
 
177
      </PARAM_ITEM>
 
178
      <PARAM_ITEM>
 
179
        <PARAM_NAME>V</PARAM_NAME>
 
180
        <PARAM_DESCRIPTION>
 
181
          <SP>: the n-by-n orthogonal matrix which reduces A to a real Schur form (output when jobx0 = 1 or comuse = 1).</SP>
 
182
        </PARAM_DESCRIPTION>
 
183
      </PARAM_ITEM>
 
184
      <PARAM_ITEM>
 
185
        <PARAM_NAME>rcnd</PARAM_NAME>
 
186
        <PARAM_DESCRIPTION>
 
187
          <SP>: (optional) the reciprocal condition numbers of the matrices involved in rank decisions.</SP>
 
188
        </PARAM_DESCRIPTION>
 
189
      </PARAM_ITEM>
 
190
    </PARAM_INDENT>
 
191
  </PARAM>
 
192
  <DESCRIPTION>
 
193
    <P>
 
194
    findBD  function for estimating the initial state and the system
 
195
    matrices B and D of a discrete-time system, using SLICOT routine 
 
196
    IB01CD.
 
197
  </P>
 
198
    <VERBATIM>
 
199
<![CDATA[
 
200
 
 
201
     [x0,Br,V,rcnd] = findBD(1,1,1,A,C,Y,U)
 
202
   [x0,Br,Dr,V,rcnd] = findBD(1,1,2,A,C,Y,U)
 
203
        [Br,V,rcnd] = findBD(2,1,1,A,C,Y,U)
 
204
      [B,Dr,V,rcnd] = findBD(2,1,2,A,C,Y,U)
 
205
       [x0,V,rcnd] = findBD(1,2,1,A,B,C,Y,U)
 
206
       [x0,V,rcnd] = findBD(1,2,2,A,B,C,D,Y,U)
 
207
         [x0,rcnd] = findBD(2,2)      // (Set x0 = 0, rcnd = 1)
 
208
       [x0,V,rcnd] = findBD(1,3,A,C,Y)
 
209
   ]]>
 
210
    </VERBATIM>
 
211
    <P>
 
212
    Note: the example lines above may contain at the end the parameters
 
213
    tol, printw, ldwork.
 
214
  </P>
 
215
    <P>
 
216
    FINDBD estimates the initial state and/or the system matrices Br and Dr
 
217
    of a discrete-time system, given the system matrices A, C, and possibly
 
218
    B, D, and the input and output trajectories of the system.
 
219
  </P>
 
220
    <P>
 
221
    The model structure is :
 
222
  </P>
 
223
    <VERBATIM>
 
224
<![CDATA[
 
225
         x(k+1) = Ax(k) + Bu(k),   k >= 1,
 
226
         y(k)   = Cx(k) + Du(k),
 
227
   ]]>
 
228
    </VERBATIM>
 
229
    <P>
 
230
       where 
 
231
     
 
232
    x(k)  is the  n-dimensional state vector (at time k),
 
233
  </P>
 
234
    <P>
 
235
    u(k)  is the  m-dimensional input vector,
 
236
  </P>
 
237
    <P>
 
238
    y(k)  is the  l-dimensional output vector,
 
239
  </P>
 
240
    <P>
 
241
    and  A, B, C, and D  are real matrices of appropriate dimensions.
 
242
  </P>
 
243
  </DESCRIPTION>
 
244
  <SECTION label="Comments">
 
245
    <ITEMIZE>
 
246
      <ITEM label="1.">
 
247
        <SP>The n-by-m system input matrix B is an input parameter when jobx0 = 1  and comuse = 2, and it is an output parameter when comuse = 1.</SP>
 
248
      </ITEM>
 
249
      <ITEM label="2.">
 
250
        <SP>The l-by-m system matrix D is an input parameter when jobx0 = 1,  comuse = 2 and job = 2, and it is an output parameter when comuse = 1  and job = 2.</SP>
 
251
      </ITEM>
 
252
      <ITEM label="3.">
 
253
        <SP>The n-vector of estimated initial state x(0) is an output parameter when jobx0 = 1, but also when jobx0 = 2 and comuse &lt;= 2, in which case it is set to 0.</SP>
 
254
      </ITEM>
 
255
      <ITEM label="4.">
 
256
        <SP>If ldwork is specified, but it is less than the minimum workspace size  needed, that minimum value is used instead.</SP>
 
257
      </ITEM>
 
258
    </ITEMIZE>
 
259
  </SECTION>
 
260
  <EXAMPLE>
 
261
<![CDATA[
 
262
//generate data from a given linear system
 
263
A = [ 0.5, 0.1,-0.1, 0.2;
 
264
      0.1, 0,  -0.1,-0.1;      
 
265
     -0.4,-0.6,-0.7,-0.1;  
 
266
      0.8, 0,  -0.6,-0.6];      
 
267
B = [0.8;0.1;1;-1];
 
268
C = [1 2 -1 0];
 
269
SYS=syslin(0.1,A,B,C);
 
270
nsmp=100;
 
271
U=prbs_a(nsmp,nsmp/5);
 
272
Y=(flts(U,SYS)+0.3*rand(1,nsmp,'normal'));
 
273
 
 
274
// Compute R
 
275
S=15;L=1;
 
276
[R,N,SVAL] = findR(S,Y',U');
 
277
 
 
278
N=3;
 
279
METH=3;TOL=-1;
 
280
[A,C] = findAC(S,N,L,R,METH,TOL);
 
281
[X0,B,D] = findBD(1,1,2,A,C,Y',U')
 
282
SYS1=syslin(1,A,B,C,D,X0);
 
283
 
 
284
Y1=flts(U,SYS1);
 
285
xbasc();plot2d((1:nsmp)',[Y',Y1'])
 
286
 ]]>
 
287
  </EXAMPLE>
 
288
  <SEE_ALSO>
 
289
    <SEE_ALSO_ITEM>
 
290
      <LINK>inistate</LINK>
 
291
    </SEE_ALSO_ITEM>
 
292
    <SEE_ALSO_ITEM>
 
293
      <LINK>findx0BD</LINK>
 
294
    </SEE_ALSO_ITEM>
 
295
    <SEE_ALSO_ITEM>
 
296
      <LINK>findABCD</LINK>
 
297
    </SEE_ALSO_ITEM>
 
298
    <SEE_ALSO_ITEM>
 
299
      <LINK>findAC</LINK>
 
300
    </SEE_ALSO_ITEM>
 
301
    <SEE_ALSO_ITEM>
 
302
      <LINK>findBD</LINK>
 
303
    </SEE_ALSO_ITEM>
 
304
  </SEE_ALSO>
 
305
  <AUTHOR>V. Sima, Katholieke Univ. Leuven, Belgium, May 2000.  
 
306
  (Revisions: V. Sima, July 2000)</AUTHOR>
 
307
</MAN>