- Ajuda Scilab
 - CACSD
 - black
 - bode
 - chart
 - evans
 - gainplot
 - m_circle
 - nyquist
 - routh_t
 - sgrid
 - zgrid
 - abcd
 - abinv
 - arhnk
 - arl2
 - arma
 - arma2p
 - armac
 - armax
 - armax1
 - arsimul
 - augment
 - balreal
 - bilin
 - bstap
 - cainv
 - calfrq
 - canon
 - ccontrg
 - cls2dls
 - colinout
 - colregul
 - cont_frm
 - cont_mat
 - contr
 - contrss
 - copfac
 - csim
 - ctr_gram
 - dbphi
 - dcf
 - ddp
 - des2ss
 - des2tf
 - dhinf
 - dhnorm
 - dscr
 - dsimul
 - dt_ility
 - dtsi
 - equil
 - equil1
 - feedback
 - findABCD
 - findAC
 - findBD
 - findBDK
 - findR
 - findx0BD
 - flts
 - fourplan
 - frep2tf
 - freq
 - freson
 - fspecg
 - fstabst
 - g_margin
 - gamitg
 - gcare
 - gfare
 - gfrancis
 - gtild
 - h2norm
 - h_cl
 - h_inf
 - h_inf_st
 - h_norm
 - hallchart
 - hankelsv
 - hinf
 - imrep2ss
 - inistate
 - invsyslin
 - kpure
 - krac2
 - lcf
 - leqr
 - lft
 - lin
 - linf
 - linfn
 - linmeq
 - lqe
 - lqg
 - lqg2stan
 - lqg_ltr
 - lqr
 - ltitr
 - macglov
 - markp2ss
 - minreal
 - minss
 - mucomp
 - narsimul
 - nehari
 - nicholschart
 - noisegen
 - nyquistfrequencybounds
 - obs_gram
 - obscont
 - observer
 - obsv_mat
 - obsvss
 - p_margin
 - parrot
 - pfss
 - phasemag
 - ppol
 - prbs_a
 - projsl
 - reglin
 - repfreq
 - ric_desc
 - ricc
 - riccati
 - rowinout
 - rowregul
 - rtitr
 - sensi
 - show_margins
 - sident
 - sm2des
 - sm2ss
 - sorder
 - specfact
 - ss2des
 - ss2ss
 - ss2tf
 - st_ility
 - stabil
 - svplot
 - sysfact
 - syssize
 - tf2des
 - tf2ss
 - time_id
 - trzeros
 - ui_observer
 - unobs
 - zeropen
 
Please note that the recommended version of Scilab is 2026.0.0. This page might be outdated.
See the recommended documentation of this function
ricc
Riccati equation
Calling Sequence
[X,RCOND,FERR]=ricc(A,B,C,"cont""method") [X,RCOND,FERR]=ricc(F,G,H,"disc","method")
Arguments
- A,B,C
 real matrices of appropriate dimensions
- F,G,H
 real matrices of appropriate dimensions
- X
 real matrix
- "cont","disc"'
 imposed string (flag for continuous or discrete)
- method
 'schr' or 'sign' for continuous-time systems and 'schr' or 'invf' for discrete-tyme systems
Description
Riccati solver.
Continuous time:
X=ricc(A,B,C,'cont')
gives a solution to the continuous time ARE
A'*X+X*A-X*B*X+C=0 .
B and C are assumed to be nonnegative definite.
    (A,G) is assumed to be stabilizable with G*G' a full rank
    factorization of B.
(A,H) is assumed to be detectable with H*H' a full rank
    factorization of C.
Discrete time:
X=ricc(F,G,H,'disc')
gives a solution to the discrete time ARE
X=F'*X*F-F'*X*G1*((G2+G1'*X*G1)^-1)*G1'*X*F+H
F is assumed invertible and   G = G1*inv(G2)*G1'.
One  assumes  (F,G1) stabilizable and (C,F) detectable
    with C'*C full rank factorization of H. Use preferably
    ric_desc.
C, D are symmetric .It is assumed that the matrices A, C and D are such that the corresponding matrix pencil has N eigenvalues with moduli less than one.
Error bound on the solution and a condition estimate are also provided. It is assumed that the matrices A, C and D are such that the corresponding Hamiltonian matrix has N eigenvalues with negative real parts.
Examples
//Standard formulas to compute Riccati solutions A=rand(3,3);B=rand(3,2);C=rand(3,3);C=C*C';R=rand(2,2);R=R*R'+eye(); B=B*inv(R)*B'; X=ricc(A,B,C,'cont'); norm(A'*X+X*A-X*B*X+C,1) H=[A -B;-C -A']; [T,d]=schur(eye(H),H,'cont');T=T(:,1:d); X1=T(4:6,:)/T(1:3,:); norm(X1-X,1) [T,d]=schur(H,'cont');T=T(:,1:d); X2=T(4:6,:)/T(1:3,:); norm(X2-X,1) // Discrete time case F=A;B=rand(3,2);G1=B;G2=R;G=G1/G2*G1';H=C; X=ricc(F,G,H,'disc'); norm(F'*X*F-(F'*X*G1/(G2+G1'*X*G1))*(G1'*X*F)+H-X) H1=[eye(3,3) G;zeros(3,3) F']; H2=[F zeros(3,3);-H eye(3,3)]; [T,d]=schur(H2,H1,'disc');T=T(:,1:d);X1=T(4:6,:)/T(1:3,:); norm(X1-X,1) Fi=inv(F); Hami=[Fi Fi*G;H*Fi F'+H*Fi*G]; [T,d]=schur(Hami,'d');T=T(:,1:d); Fit=inv(F'); Ham=[F+G*Fit*H -G*Fit;-Fit*H Fit]; [T,d]=schur(Ham,'d');T=T(:,1:d);X2=T(4:6,:)/T(1:3,:); norm(X2-X,1)
See Also
Authors
P. Petkov
Used Functions
See SCI/modules/cacsd/src/slicot/riccpack.f
| << ric_desc | CACSD | riccati >> |