- Справка Scilab
- CACSD
- formal_representation
- Plot and display
- plzr
- syslin
- abinv
- arhnk
- arl2
- arma
- arma2p
- arma2ss
- armac
- armax
- armax1
- arsimul
- augment
- balreal
- bilin
- bstap
- cainv
- calfrq
- canon
- ccontrg
- cls2dls
- colinout
- colregul
- cont_mat
- contr
- contrss
- copfac
- csim
- ctr_gram
- damp
- dcf
- ddp
- dhinf
- dhnorm
- dscr
- dsimul
- dt_ility
- dtsi
- equil
- equil1
- feedback
- findABCD
- findAC
- findBD
- findBDK
- findR
- findx0BD
- flts
- fourplan
- freq
- freson
- fspec
- fspecg
- fstabst
- g_margin
- gamitg
- gcare
- gfare
- gfrancis
- gtild
- h2norm
- h_cl
- h_inf
- h_inf_st
- h_norm
- hankelsv
- hinf
- imrep2ss
- inistate
- invsyslin
- kpure
- krac2
- lcf
- leqr
- lft
- lin
- linf
- linfn
- linmeq
- lqe
- lqg
- lqg2stan
- lqg_ltr
- lqr
- ltitr
- macglov
- minreal
- minss
- mucomp
- narsimul
- nehari
- noisegen
- nyquistfrequencybounds
- obs_gram
- obscont
- observer
- obsv_mat
- obsvss
- p_margin
- parrot
- pfss
- phasemag
- pol2des
- ppol
- prbs_a
- projsl
- repfreq
- ric_desc
- ricc
- riccati
- routh_t
- rowinout
- rowregul
- rtitr
- sensi
- sident
- sorder
- specfact
- ssprint
- st_ility
- stabil
- sysfact
- syssize
- time_id
- trzeros
- ui_observer
- unobs
- zeropen
Please note that the recommended version of Scilab is 2025.0.0. This page might be outdated.
See the recommended documentation of this function
rtitr
discrete time response (transfer matrix)
Calling Sequence
[y]=rtitr(Num,Den,u [,up,yp])
Arguments
- Num,Den
polynomial matrices (resp. dimensions :
n
xm
andn
xn
)- u
real matrix (dimension
m
x(t+1)
- up,yp
real matrices (
up
dimensionm
x(max(degree(Den)))
(default values=0
) ,yp
dimensionn
x(max(degree(Den)))
)- y
real matrix
Description
y=rtitr(Num,Den,u [,up,yp])
returns the time response of
the discrete time linear system with transfer matrix Den^-1 Num
for the input u
, i.e y
and u
are such that Den y = Num u
at t=0,1,...
If d1=max(degree(Den))
, and d2=max(degree(Num))
the polynomial
matrices Den(z)
and Num(z)
may be written respectively as:
D(z) = D_0 + D_1 z + ... + D_d1 z^d1 N(z) = N_0 + N_1 z + ... + N_d2 z^d2
and Den y = Num u
is interpreted as the recursion:
D(0)y(t)+D(1)y(t+1)+...+ D(d1)y(t+d1)= N(0) u(t) +....+ N(d2) u(t+d2)
It is assumed that D(d1)
is non singular.
The columns of u are the inputs of the system at t=0,1,...,T:
u=[u(0) , u(1),...,u(T)]
The outputs at t=0,1,...,T+d1-d2
are the columns of the matrix y
:
y = [y(0), y(1), .... y(T+d1-d2)]
up
and yp
define the initial conditions for t < 0 i.e
up = [u(-d1), ..., u(-1) ] yp = [y(-d1), ... y(-1) ]
Depending on the relative values of d1
and d2
, some of the
leftmost components of up
, yp
are ignored.
The default values of up
and yp
are zero:
up = 0*ones(m,d1), yp=0*ones(n,d1)
Examples
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)
See Also
Report an issue | ||
<< rowregul | CACSD | sensi >> |