gtild — tilde operation
Gt=gtild(G) Gt=gtild(G,flag)
either a polynomial or a linear system (syslin
list) or a rational matrix
same as G
character string: either 'c'
or 'd'
(optional parameter).
If G
is a polynomial matrix (or a polynomial), Gt=gtild(G,'c')
returns the polynomial matrix Gt(s)=G(-s)'
.
If G
is a polynomial matrix (or a polynomial), Gt=gtild(G,'d')
returns the polynomial matrix Gt=G(1/z)*z^n
where n is the maximum
degree of G
.
For continuous-time systems represented in state-space by a syslin
list,
Gt = gtild(G,'c')
returns a state-space representation
of G(-s)'
i.e the ABCD
matrices of Gt
are
A',-C', B', D'
. If G
is improper ( D= D(s)
)
the D
matrix of Gt
is D(-s)'
.
For discrete-time systems represented in state-space by a syslin
list,
Gt = gtild(G,'d')
returns a state-space representation
of G(-1/z)'
i.e the (possibly improper) state-space
representation of -z*C*inv(z*A-B)*C + D(1/z)
.
For rational matrices, Gt = gtild(G,'c')
returns the rational
matrix Gt(s)=G(-s)
and Gt = gtild(G,'d')
returns the
rational matrix Gt(z)= G(1/z)'
.
The parameter flag
is necessary when gtild
is called with
a polynomial argument.
//Continuous time s=poly(0,'s');G=[s,s^3;2+s^3,s^2-5] Gt=gtild(G,'c') Gt-horner(G,-s)' //continuous-time interpretation Gt=gtild(G,'d'); Gt-horner(G,1/s)'*s^3 //discrete-time interpretation G=ssrand(2,2,3);Gt=gtild(G); //State-space (G is cont. time by default) clean((horner(ss2tf(G),-s))'-ss2tf(Gt)) //Check // Discrete-time z=poly(0,'z'); Gss=ssrand(2,2,3);Gss('dt')='d'; //discrete-time Gss(5)=[1,2;0,1]; //With a constant D matrix G=ss2tf(Gss);Gt1=horner(G,1/z)'; Gt=gtild(Gss); Gt2=clean(ss2tf(Gt)); clean(Gt1-Gt2) //Check //Improper systems z=poly(0,'z'); Gss=ssrand(2,2,3);Gss(7)='d'; //discrete-time Gss(5)=[z,z^2;1+z,3]; //D(z) is polynomial G=ss2tf(Gss);Gt1=horner(G,1/z)'; //Calculation in transfer form Gt=gtild(Gss); //..in state-space Gt2=clean(ss2tf(Gt));clean(Gt1-Gt2) //Check