syslin - linear system definition
syslin defines a linear system as a list and checks consistency of data.
dom specifies the time domain of the system and can have the following values:
dom='c' for a continuous time system, dom='d' for a discrete time system, n for a sampled system with sampling period n (in seconds).
dom=[] if the time domain is undefined
State-space representation:
sl=syslin(dom,A,B,C [,D [,x0] ])
represents the system :
s x = A*x + B*u y = C*x + D*u x(0) = x0
The output of syslin is a list of the following form: sl=tlist(['lss','A','B','C','D','X0','dt'],A,B,C,D,x0,dom) Note that D is allowed to be a polynomial matrix (improper systems).
Transfer matrix representation:
sl=syslin(dom,N,D) sl=syslin(dom,H)
The output of syslin is a list of the following form : sl=tlist(['r','num','den','dt'],N,D,dom) or sl=tlist(['r','num','den','dt'],H(2),H(3),dom).
Linear systems defined as syslin can be manipulated as usual matrices (concatenation, extraction, transpose, multiplication, etc) both in state-space or transfer representation.
Most of state-space control functions receive a syslin list as input instead of the four matrices defining the system.
A=[0,1;0,0];B=[1;1];C=[1,1]; S1=syslin('c',A,B,C) //Linear system definition S1("A") //Display of A-matrix S1("X0"), S1("dt") // Display of X0 and time domain s=poly(0,'s'); D=s; S2=syslin('c',A,B,C,D) H1=(1+2*s)/s^2, S1bis=syslin('c',H1) H2=(1+2*s+s^3)/s^2, S2bis=syslin('c',H2) S1+S2 [S1,S2] ss2tf(S1)-S1bis S1bis+S2bis S1*S2bis size(S1)