File: trzeros.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 (60 lines) | stat: -rw-r--r-- 1,949 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
54
55
56
57
58
59
60
trzeros           Scilab Group           Scilab Function            trzeros
NAME
   trzeros - transmission zeros and normal rank
  
CALLING SEQUENCE
 [tr]=trzeros(Sl)
 [nt,dt,rk]=trzeros(Sl)
PARAMETERS
 Sl   : linear system (syslin list)
      
 nt   : complex vectors
      
 dt   : real vector
      
 rk   : integer (normal rank of Sl)
      
DESCRIPTION
   Called with one output argument, trzeros(Sl) returns the  transmission
  zeros of the linear system Sl.
  
   Sl may have a polynomial (but square) D matrix.
  
   Called with 2 output arguments, trzeros returns the  transmission zeros
  of the linear system Sl as tr=nt./dt;
  
   (Note that some components of dt may be zeros)
  
   Called with 3 output arguments, rk  is the normal rank of Sl
  
   Transfer matrices are converted to state-space.
  
   If Sl is a (square) polynomial matrix trzeros returns the  roots of its
  determinant.
  
   For usual state-space system trzeros uses the state-space  algorithm of
  Emami-Naeni & Van Dooren.
  
   If D is invertible the transmission zeros are the eigenvalues of the "A
  matrix" of the inverse system : A - B*inv(D)*C;
  
   If C*B is invertible the transmission zeros are the eigenvalues of N*A*M
  where M*N is a full rank factorization of  eye(A)-B*inv(C*B)*C;
  
   For systems with a polynomial D matrix zeros are  calculated as the roots
  of the determinant of the system matrix.
  
   Caution: the computed zeros are not always reliable, in particular in
  case of repeated zeros.
  
EXAMPLE
 W1=ssrand(2,2,5);trzeros(W1)    //call trzeros
 roots(det(systmat(W1)))         //roots of det(system matrix)
 s=poly(0,'s');W=[1/(s+1);1/(s-2)];W2=(s-3)*W*W';[nt,dt,rk]=trzeros(W2);
 St=systmat(tf2ss(W2));[Q,Z,Qd,Zd,numbeps,numbeta]=kroneck(St);
 St1=Q*St*Z;rowf=(Qd(1)+Qd(2)+1):(Qd(1)+Qd(2)+Qd(3));
 colf=(Zd(1)+Zd(2)+1):(Zd(1)+Zd(2)+Zd(3));
 roots(St1(rowf,colf)), nt./dt     //By Kronecker form
SEE ALSO
   gspec, kroneck