File: time_id.cat

package info (click to toggle)
scilab 2.6-4
  • links: PTS
  • area: non-free
  • in suites: woody
  • size: 54,632 kB
  • ctags: 40,267
  • sloc: ansic: 267,851; fortran: 166,549; sh: 10,005; makefile: 4,119; tcl: 1,070; cpp: 233; csh: 143; asm: 135; perl: 130; java: 39
file content (53 lines) | stat: -rw-r--r-- 1,749 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
time_id           Scilab Group           Scilab Function            time_id
NAME
   time_id - SISO least square identification
  
CALLING SEQUENCE
 [H [,err]]=time_id(n,u,y)
PARAMETERS
 n          : order of transfer
            
 u          : one of the following
            
           u1           : a vector of inputs to the system
                        
           "impuls"     : if y is an impulse response
                        
           "step"       : if y is a step response.
                        
 y          : vector of response. 
            
 H          : rational function with degree n denominator and  degree n-1
            numerator if y(1)==0 or rational function with degree n
            denominator and  numerator if y(1)<>0.
            
 err        : ||y - impuls(H,npt)||^2, where impuls(H,npt) are the npt
            first coefficients of impulse response of H
            
DESCRIPTION
   Identification of discrete time response. If y is strictly proper
  (y(1)=0) then time_id computes the least square solution of the linear
  equation:  Den*y-Num*u=0 with the constraint  coeff(Den,n):=1. if y(1)~=0
  then the algorithm first computes the proper part solution and then add 
  y(1) to the solution
  
EXAMPLE
 z=poly(0,'z');
 h=(1-2*z)/(z^2-0.5*z+5)
 rep=[0;ldiv(h('num'),h('den'),20)]; //impulse response
 H=time_id(2,'impuls',rep)
 //  Same example with flts and u
 u=zeros(1,20);u(1)=1;
 rep=flts(u,tf2ss(h));        //impulse response
 H=time_id(2,u,rep)
 //  step response
 u=ones(1,20);
 rep=flts(u,tf2ss(h));     //step response.
 H=time_id(2,'step',rep)
 H=time_id(3,u,rep)    //with u as input and too high order required
AUTHOR
   Serge Steer INRIA
  
SEE ALSO
   imrep2ss, arl2, armax, frep2tf