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 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117
|
.TH rtitr G "April 1993" "Scilab Group" "Scilab Function"
.so ../sci.an
.SH NAME
rtitr - discrete time response (transfer matrix)
.SH CALLING SEQUENCE
.nf
[y]=rtitr(Num,Den,u [,up,yp])
.fi
.SH PARAMETERS
.TP 10
Num,Den
: polynomial matrices (resp. dimensions : \fVn\fRx\fVm\fR and \fVn\fRx\fVn\fR)
.TP
u
: real matrix (dimension \fVm\fRx\fV(t+1)\fR
.TP
up,yp
: real matrices (\fVup\fR dimension \fVm\fRx\fV (maxi(degree(Den)))\fR (default values=\fV0\fR) , \fVyp\fR dimension \fVn\fRx\fV (maxi(degree(Den)))\fR)
.TP
y
: real matrix
.SH DESCRIPTION
\fVy=rtitr(Num,Den,u [,up,yp])\fR returns the time response of
the discrete time linear system with transfer matrix \fVDen^-1 Num\fR
for the input \fVu\fR, i.e \fVy\fR and \fVu\fR are such that \fVDen y = Num u\fR at t=0,1,...
.LP
If \fVd1=maxi(degree(Den))\fR, and \fVd2=maxi(degree(Num))\fR the polynomial
matrices \fVDen(z)\fR and \fVNum(z)\fR may be written respectively as:
.nf
D(z)= D_0 + D_1 z + ... + D_d1 z^d1
N(z)= N_0 + N_1 z + ... + N_d2 z^d2
.fi
and \fVDen y = Num u\fR is interpreted as the recursion:
.nf
D(0)y(t)+D(1)y(t+1)+...+ D(d1)y(t+d1)= N(0) u(t) +....+ N(d2) u(t+d2)
.fi
It is assumed that \fVD(d1)\fR is non singular.
.LP
The columns of u are the inputs of the system at t=0,1,...,T:
.nf
u=[u(0) , u(1),...,u(T)]
.fi
The outputs at \fVt=0,1,...,T+d1-d2\fR are the columns of the matrix \fVy\fR:
.nf
y=[y(0), y(1), .... y(T+d1-d2)]
.fi
\fVup\fR and \fVyp\fR define the initial conditions for t < 0 i.e
.nf
up=[u(-d1), ..., u(-1) ]
yp=[y(-d1), ... y(-1) ]
.fi
Depending on the relative values of \fVd1\fR and \fVd2\fR, some of the
leftmost components of \fVup\fR, \fVyp\fR are ignored.
The default values of \fVup\fR and \fVyp\fR are zero:
\fVup = 0*ones(m,d1), yp=0*ones(n,d1)\fR
.SH EXAMPLE
.nf
z=poly(0,'z');
Num=1+z;Den=1+z;u=[1,2,3,4,5];
rtitr(Num,Den,u)-u
//Other examples
//siso
//causal
n1=1;d1=poly([1 1],'z','coeff'); // y(j)=-y(j-1)+u(j-1)
r1=[0 1 0 1 0 1 0 1 0 1 0];
r=rtitr(n1,d1,ones(1,10));norm(r1-r,1)
//hot restart
r=rtitr(n1,d1,ones(1,9),1,0);norm(r1(2:11)-r)
//non causal
n2=poly([1 1 1],'z','coeff');d2=d1; // y(j)=-y(j-1)+u(j-1)+u(j)+u(j+1)
r2=[2 1 2 1 2 1 2 1 2];
r=rtitr(n2,d2,ones(1,10));norm(r-r2,1)
//hot restart
r=rtitr(n2,d2,ones(1,9),1,2);norm(r2(2:9)-r,1)
//
//MIMO example
//causal
d1=d1*diag([1 0.5]);n1=[1 3 1;2 4 1];r1=[5;14]*r1;
r=rtitr(n1,d1,ones(3,10));norm(r1-r,1)
//
r=rtitr(n1,d1,ones(3,9),[1;1;1],[0;0]);
norm(r1(:,2:11)-r,1)
//polynomial n1 (same ex.)
n1(1,1)=poly(1,'z','c');r=rtitr(n1,d1,ones(3,10));norm(r1-r,1)
//
r=rtitr(n1,d1,ones(3,9),[1;1;1],[0;0]);
norm(r1(:,2:11)-r,1)
//non causal
d2=d1;n2=n2*n1;r2=[5;14]*r2;
r=rtitr(n2,d2,ones(3,10));norm(r2-r)
//
r=rtitr(n2,d2,ones(3,9),[1;1;1],[10;28]);
norm(r2(:,2:9)-r,1)
//
// State-space or transfer
a = [0.21 , 0.63 , 0.56 , 0.23 , 0.31
0.76 , 0.85 , 0.66 , 0.23 , 0.93
0 , 0.69 , 0.73 , 0.22 , 0.21
0.33 , 0.88 , 0.2 , 0.88 , 0.31
0.67 , 0.07 , 0.54 , 0.65 , 0.36];
b = [0.29 , 0.5 , 0.92
0.57 , 0.44 , 0.04
0.48 , 0.27 , 0.48
0.33 , 0.63 , 0.26
0.59 , 0.41 , 0.41];
c = [0.28 , 0.78 , 0.11 , 0.15 , 0.84
0.13 , 0.21 , 0.69 , 0.7 , 0.41];
d = [0.41 , 0.11 , 0.56
0.88 , 0.2 , 0.59];
s=syslin('d',a,b,c,d);
h=ss2tf(s);num=h('num');den=h('den');den=den(1,1)*eye(2,2);
u=1;u(3,10)=0;r3=flts(u,s);
r=rtitr(num,den,u);norm(r3-r,1)
.fi
.SH SEE ALSO
ltitr, exp, flts
|