Reorganization
Allan Cornet [Thu, 17 Aug 2006 07:13:11 +0000 (07:13 +0000)]
CACSD Module

move man, macros (robust,control,auto) --> modules/cacsd

396 files changed:
scilab/macros/auto/buildmacros.sce [deleted file]
scilab/macros/buildmacros.sce
scilab/macros/robust/buildmacros.sce [deleted file]
scilab/modules/cacsd/changelog.txt [new file with mode: 0644]
scilab/modules/cacsd/etc/cacsd.quit [new file with mode: 0644]
scilab/modules/cacsd/etc/cacsd.start [new file with mode: 0644]
scilab/modules/cacsd/help/eng/abcd.xml [new file with mode: 0644]
scilab/modules/cacsd/help/eng/abinv.xml [new file with mode: 0644]
scilab/modules/cacsd/help/eng/arhnk.xml [new file with mode: 0644]
scilab/modules/cacsd/help/eng/arl2.xml [new file with mode: 0644]
scilab/modules/cacsd/help/eng/arma.xml [new file with mode: 0644]
scilab/modules/cacsd/help/eng/arma2p.xml [new file with mode: 0644]
scilab/modules/cacsd/help/eng/armac.xml [new file with mode: 0644]
scilab/modules/cacsd/help/eng/armax.xml [new file with mode: 0644]
scilab/modules/cacsd/help/eng/armax1.xml [new file with mode: 0644]
scilab/modules/cacsd/help/eng/arsimul.xml [new file with mode: 0644]
scilab/modules/cacsd/help/eng/augment.xml [new file with mode: 0644]
scilab/modules/cacsd/help/eng/balreal.xml [new file with mode: 0644]
scilab/modules/cacsd/help/eng/bilin.xml [new file with mode: 0644]
scilab/modules/cacsd/help/eng/bstap.xml [new file with mode: 0644]
scilab/modules/cacsd/help/eng/cainv.xml [new file with mode: 0644]
scilab/modules/cacsd/help/eng/calfrq.xml [new file with mode: 0644]
scilab/modules/cacsd/help/eng/canon.xml [new file with mode: 0644]
scilab/modules/cacsd/help/eng/ccontrg.xml [new file with mode: 0644]
scilab/modules/cacsd/help/eng/cls2dls.xml [new file with mode: 0644]
scilab/modules/cacsd/help/eng/colinout.xml [new file with mode: 0644]
scilab/modules/cacsd/help/eng/colregul.xml [new file with mode: 0644]
scilab/modules/cacsd/help/eng/cont_frm.xml [new file with mode: 0644]
scilab/modules/cacsd/help/eng/cont_mat.xml [new file with mode: 0644]
scilab/modules/cacsd/help/eng/contr.xml [new file with mode: 0644]
scilab/modules/cacsd/help/eng/contrss.xml [new file with mode: 0644]
scilab/modules/cacsd/help/eng/copfac.xml [new file with mode: 0644]
scilab/modules/cacsd/help/eng/csim.xml [new file with mode: 0644]
scilab/modules/cacsd/help/eng/ctr_gram.xml [new file with mode: 0644]
scilab/modules/cacsd/help/eng/dbphi.xml [new file with mode: 0644]
scilab/modules/cacsd/help/eng/dcf.xml [new file with mode: 0644]
scilab/modules/cacsd/help/eng/ddp.xml [new file with mode: 0644]
scilab/modules/cacsd/help/eng/des2ss.xml [new file with mode: 0644]
scilab/modules/cacsd/help/eng/des2tf.xml [new file with mode: 0644]
scilab/modules/cacsd/help/eng/dhinf.xml [new file with mode: 0644]
scilab/modules/cacsd/help/eng/dhnorm.xml [new file with mode: 0644]
scilab/modules/cacsd/help/eng/dscr.xml [new file with mode: 0644]
scilab/modules/cacsd/help/eng/dsimul.xml [new file with mode: 0644]
scilab/modules/cacsd/help/eng/dt_ility.xml [new file with mode: 0644]
scilab/modules/cacsd/help/eng/dtsi.xml [new file with mode: 0644]
scilab/modules/cacsd/help/eng/equil.xml [new file with mode: 0644]
scilab/modules/cacsd/help/eng/equil1.xml [new file with mode: 0644]
scilab/modules/cacsd/help/eng/feedback.xml [new file with mode: 0644]
scilab/modules/cacsd/help/eng/flts.xml [new file with mode: 0644]
scilab/modules/cacsd/help/eng/fourplan.xml [new file with mode: 0644]
scilab/modules/cacsd/help/eng/frep2tf.xml [new file with mode: 0644]
scilab/modules/cacsd/help/eng/freq.xml [new file with mode: 0644]
scilab/modules/cacsd/help/eng/freson.xml [new file with mode: 0644]
scilab/modules/cacsd/help/eng/fspecg.xml [new file with mode: 0644]
scilab/modules/cacsd/help/eng/fstabst.xml [new file with mode: 0644]
scilab/modules/cacsd/help/eng/g_margin.xml [new file with mode: 0644]
scilab/modules/cacsd/help/eng/gamitg.xml [new file with mode: 0644]
scilab/modules/cacsd/help/eng/gcare.xml [new file with mode: 0644]
scilab/modules/cacsd/help/eng/gfare.xml [new file with mode: 0644]
scilab/modules/cacsd/help/eng/gfrancis.xml [new file with mode: 0644]
scilab/modules/cacsd/help/eng/gtild.xml [new file with mode: 0644]
scilab/modules/cacsd/help/eng/h2norm.xml [new file with mode: 0644]
scilab/modules/cacsd/help/eng/h_cl.xml [new file with mode: 0644]
scilab/modules/cacsd/help/eng/h_inf.xml [new file with mode: 0644]
scilab/modules/cacsd/help/eng/h_inf_st.xml [new file with mode: 0644]
scilab/modules/cacsd/help/eng/h_norm.xml [new file with mode: 0644]
scilab/modules/cacsd/help/eng/hankelsv.xml [new file with mode: 0644]
scilab/modules/cacsd/help/eng/helpbuildereng.sce [new file with mode: 0644]
scilab/modules/cacsd/help/eng/hinf.xml [new file with mode: 0644]
scilab/modules/cacsd/help/eng/imrep2ss.xml [new file with mode: 0644]
scilab/modules/cacsd/help/eng/invsyslin.xml [new file with mode: 0644]
scilab/modules/cacsd/help/eng/kpure.xml [new file with mode: 0644]
scilab/modules/cacsd/help/eng/krac2.xml [new file with mode: 0644]
scilab/modules/cacsd/help/eng/lcf.xml [new file with mode: 0644]
scilab/modules/cacsd/help/eng/leqr.xml [new file with mode: 0644]
scilab/modules/cacsd/help/eng/lft.xml [new file with mode: 0644]
scilab/modules/cacsd/help/eng/lin.xml [new file with mode: 0644]
scilab/modules/cacsd/help/eng/linf.xml [new file with mode: 0644]
scilab/modules/cacsd/help/eng/linfn.xml [new file with mode: 0644]
scilab/modules/cacsd/help/eng/linmeq.xml [new file with mode: 0644]
scilab/modules/cacsd/help/eng/lqe.xml [new file with mode: 0644]
scilab/modules/cacsd/help/eng/lqg.xml [new file with mode: 0644]
scilab/modules/cacsd/help/eng/lqg2stan.xml [new file with mode: 0644]
scilab/modules/cacsd/help/eng/lqg_ltr.xml [new file with mode: 0644]
scilab/modules/cacsd/help/eng/lqr.xml [new file with mode: 0644]
scilab/modules/cacsd/help/eng/ltitr.xml [new file with mode: 0644]
scilab/modules/cacsd/help/eng/macglov.xml [new file with mode: 0644]
scilab/modules/cacsd/help/eng/markp2ss.xml [new file with mode: 0644]
scilab/modules/cacsd/help/eng/minreal.xml [new file with mode: 0644]
scilab/modules/cacsd/help/eng/minss.xml [new file with mode: 0644]
scilab/modules/cacsd/help/eng/mucomp.xml [new file with mode: 0644]
scilab/modules/cacsd/help/eng/narsimul.xml [new file with mode: 0644]
scilab/modules/cacsd/help/eng/nehari.xml [new file with mode: 0644]
scilab/modules/cacsd/help/eng/noisegen.xml [new file with mode: 0644]
scilab/modules/cacsd/help/eng/obs_gram.xml [new file with mode: 0644]
scilab/modules/cacsd/help/eng/obscont.xml [new file with mode: 0644]
scilab/modules/cacsd/help/eng/observer.xml [new file with mode: 0644]
scilab/modules/cacsd/help/eng/obsv_mat.xml [new file with mode: 0644]
scilab/modules/cacsd/help/eng/obsvss.xml [new file with mode: 0644]
scilab/modules/cacsd/help/eng/p_margin.xml [new file with mode: 0644]
scilab/modules/cacsd/help/eng/parrot.xml [new file with mode: 0644]
scilab/modules/cacsd/help/eng/pfss.xml [new file with mode: 0644]
scilab/modules/cacsd/help/eng/phasemag.xml [new file with mode: 0644]
scilab/modules/cacsd/help/eng/ppol.xml [new file with mode: 0644]
scilab/modules/cacsd/help/eng/prbs_a.xml [new file with mode: 0644]
scilab/modules/cacsd/help/eng/projsl.xml [new file with mode: 0644]
scilab/modules/cacsd/help/eng/reglin.xml [new file with mode: 0644]
scilab/modules/cacsd/help/eng/repfreq.xml [new file with mode: 0644]
scilab/modules/cacsd/help/eng/ric_desc.xml [new file with mode: 0644]
scilab/modules/cacsd/help/eng/ricc.xml [new file with mode: 0644]
scilab/modules/cacsd/help/eng/riccati.xml [new file with mode: 0644]
scilab/modules/cacsd/help/eng/rowinout.xml [new file with mode: 0644]
scilab/modules/cacsd/help/eng/rowregul.xml [new file with mode: 0644]
scilab/modules/cacsd/help/eng/rtitr.xml [new file with mode: 0644]
scilab/modules/cacsd/help/eng/sensi.xml [new file with mode: 0644]
scilab/modules/cacsd/help/eng/sm2des.xml [new file with mode: 0644]
scilab/modules/cacsd/help/eng/sm2ss.xml [new file with mode: 0644]
scilab/modules/cacsd/help/eng/specfact.xml [new file with mode: 0644]
scilab/modules/cacsd/help/eng/ss2des.xml [new file with mode: 0644]
scilab/modules/cacsd/help/eng/ss2ss.xml [new file with mode: 0644]
scilab/modules/cacsd/help/eng/ss2tf.xml [new file with mode: 0644]
scilab/modules/cacsd/help/eng/st_ility.xml [new file with mode: 0644]
scilab/modules/cacsd/help/eng/stabil.xml [new file with mode: 0644]
scilab/modules/cacsd/help/eng/svplot.xml [new file with mode: 0644]
scilab/modules/cacsd/help/eng/sysfact.xml [new file with mode: 0644]
scilab/modules/cacsd/help/eng/syssize.xml [new file with mode: 0644]
scilab/modules/cacsd/help/eng/tf2des.xml [new file with mode: 0644]
scilab/modules/cacsd/help/eng/tf2ss.xml [new file with mode: 0644]
scilab/modules/cacsd/help/eng/time_id.xml [new file with mode: 0644]
scilab/modules/cacsd/help/eng/trzeros.xml [new file with mode: 0644]
scilab/modules/cacsd/help/eng/ui_observer.xml [new file with mode: 0644]
scilab/modules/cacsd/help/eng/unobs.xml [new file with mode: 0644]
scilab/modules/cacsd/help/eng/zeropen.xml [new file with mode: 0644]
scilab/modules/cacsd/help/fr/abcd.xml [new file with mode: 0644]
scilab/modules/cacsd/help/fr/abinv.xml [new file with mode: 0644]
scilab/modules/cacsd/help/fr/arhnk.xml [new file with mode: 0644]
scilab/modules/cacsd/help/fr/arl2.xml [new file with mode: 0644]
scilab/modules/cacsd/help/fr/arma.xml [new file with mode: 0644]
scilab/modules/cacsd/help/fr/arma2p.xml [new file with mode: 0644]
scilab/modules/cacsd/help/fr/armac.xml [new file with mode: 0644]
scilab/modules/cacsd/help/fr/armax.xml [new file with mode: 0644]
scilab/modules/cacsd/help/fr/armax1.xml [new file with mode: 0644]
scilab/modules/cacsd/help/fr/arsimul.xml [new file with mode: 0644]
scilab/modules/cacsd/help/fr/augment.xml [new file with mode: 0644]
scilab/modules/cacsd/help/fr/balreal.xml [new file with mode: 0644]
scilab/modules/cacsd/help/fr/bilin.xml [new file with mode: 0644]
scilab/modules/cacsd/help/fr/bstap.xml [new file with mode: 0644]
scilab/modules/cacsd/help/fr/cainv.xml [new file with mode: 0644]
scilab/modules/cacsd/help/fr/calfrq.xml [new file with mode: 0644]
scilab/modules/cacsd/help/fr/canon.xml [new file with mode: 0644]
scilab/modules/cacsd/help/fr/ccontrg.xml [new file with mode: 0644]
scilab/modules/cacsd/help/fr/cls2dls.xml [new file with mode: 0644]
scilab/modules/cacsd/help/fr/colinout.xml [new file with mode: 0644]
scilab/modules/cacsd/help/fr/colregul.xml [new file with mode: 0644]
scilab/modules/cacsd/help/fr/cont_frm.xml [new file with mode: 0644]
scilab/modules/cacsd/help/fr/cont_mat.xml [new file with mode: 0644]
scilab/modules/cacsd/help/fr/contr.xml [new file with mode: 0644]
scilab/modules/cacsd/help/fr/contrss.xml [new file with mode: 0644]
scilab/modules/cacsd/help/fr/copfac.xml [new file with mode: 0644]
scilab/modules/cacsd/help/fr/csim.xml [new file with mode: 0644]
scilab/modules/cacsd/help/fr/ctr_gram.xml [new file with mode: 0644]
scilab/modules/cacsd/help/fr/dbphi.xml [new file with mode: 0644]
scilab/modules/cacsd/help/fr/dcf.xml [new file with mode: 0644]
scilab/modules/cacsd/help/fr/ddp.xml [new file with mode: 0644]
scilab/modules/cacsd/help/fr/des2ss.xml [new file with mode: 0644]
scilab/modules/cacsd/help/fr/des2tf.xml [new file with mode: 0644]
scilab/modules/cacsd/help/fr/dhinf.xml [new file with mode: 0644]
scilab/modules/cacsd/help/fr/dhnorm.xml [new file with mode: 0644]
scilab/modules/cacsd/help/fr/dscr.xml [new file with mode: 0644]
scilab/modules/cacsd/help/fr/dsimul.xml [new file with mode: 0644]
scilab/modules/cacsd/help/fr/dt_ility.xml [new file with mode: 0644]
scilab/modules/cacsd/help/fr/dtsi.xml [new file with mode: 0644]
scilab/modules/cacsd/help/fr/equil.xml [new file with mode: 0644]
scilab/modules/cacsd/help/fr/equil1.xml [new file with mode: 0644]
scilab/modules/cacsd/help/fr/feedback.xml [new file with mode: 0644]
scilab/modules/cacsd/help/fr/flts.xml [new file with mode: 0644]
scilab/modules/cacsd/help/fr/fourplan.xml [new file with mode: 0644]
scilab/modules/cacsd/help/fr/frep2tf.xml [new file with mode: 0644]
scilab/modules/cacsd/help/fr/freq.xml [new file with mode: 0644]
scilab/modules/cacsd/help/fr/freson.xml [new file with mode: 0644]
scilab/modules/cacsd/help/fr/fspecg.xml [new file with mode: 0644]
scilab/modules/cacsd/help/fr/fstabst.xml [new file with mode: 0644]
scilab/modules/cacsd/help/fr/g_margin.xml [new file with mode: 0644]
scilab/modules/cacsd/help/fr/gamitg.xml [new file with mode: 0644]
scilab/modules/cacsd/help/fr/gcare.xml [new file with mode: 0644]
scilab/modules/cacsd/help/fr/gfare.xml [new file with mode: 0644]
scilab/modules/cacsd/help/fr/gfrancis.xml [new file with mode: 0644]
scilab/modules/cacsd/help/fr/gtild.xml [new file with mode: 0644]
scilab/modules/cacsd/help/fr/h2norm.xml [new file with mode: 0644]
scilab/modules/cacsd/help/fr/h_cl.xml [new file with mode: 0644]
scilab/modules/cacsd/help/fr/h_inf.xml [new file with mode: 0644]
scilab/modules/cacsd/help/fr/h_inf_st.xml [new file with mode: 0644]
scilab/modules/cacsd/help/fr/h_norm.xml [new file with mode: 0644]
scilab/modules/cacsd/help/fr/hankelsv.xml [new file with mode: 0644]
scilab/modules/cacsd/help/fr/helpbuilderfr.sce [new file with mode: 0644]
scilab/modules/cacsd/help/fr/hinf.xml [new file with mode: 0644]
scilab/modules/cacsd/help/fr/imrep2ss.xml [new file with mode: 0644]
scilab/modules/cacsd/help/fr/invsyslin.xml [new file with mode: 0644]
scilab/modules/cacsd/help/fr/kpure.xml [new file with mode: 0644]
scilab/modules/cacsd/help/fr/krac2.xml [new file with mode: 0644]
scilab/modules/cacsd/help/fr/lcf.xml [new file with mode: 0644]
scilab/modules/cacsd/help/fr/leqr.xml [new file with mode: 0644]
scilab/modules/cacsd/help/fr/lft.xml [new file with mode: 0644]
scilab/modules/cacsd/help/fr/lin.xml [new file with mode: 0644]
scilab/modules/cacsd/help/fr/linf.xml [new file with mode: 0644]
scilab/modules/cacsd/help/fr/linfn.xml [new file with mode: 0644]
scilab/modules/cacsd/help/fr/linmeq.xml [new file with mode: 0644]
scilab/modules/cacsd/help/fr/lqe.xml [new file with mode: 0644]
scilab/modules/cacsd/help/fr/lqg.xml [new file with mode: 0644]
scilab/modules/cacsd/help/fr/lqg2stan.xml [new file with mode: 0644]
scilab/modules/cacsd/help/fr/lqg_ltr.xml [new file with mode: 0644]
scilab/modules/cacsd/help/fr/lqr.xml [new file with mode: 0644]
scilab/modules/cacsd/help/fr/ltitr.xml [new file with mode: 0644]
scilab/modules/cacsd/help/fr/macglov.xml [new file with mode: 0644]
scilab/modules/cacsd/help/fr/markp2ss.xml [new file with mode: 0644]
scilab/modules/cacsd/help/fr/minreal.xml [new file with mode: 0644]
scilab/modules/cacsd/help/fr/minss.xml [new file with mode: 0644]
scilab/modules/cacsd/help/fr/mucomp.xml [new file with mode: 0644]
scilab/modules/cacsd/help/fr/narsimul.xml [new file with mode: 0644]
scilab/modules/cacsd/help/fr/nehari.xml [new file with mode: 0644]
scilab/modules/cacsd/help/fr/noisegen.xml [new file with mode: 0644]
scilab/modules/cacsd/help/fr/obs_gram.xml [new file with mode: 0644]
scilab/modules/cacsd/help/fr/obscont.xml [new file with mode: 0644]
scilab/modules/cacsd/help/fr/observer.xml [new file with mode: 0644]
scilab/modules/cacsd/help/fr/obsv_mat.xml [new file with mode: 0644]
scilab/modules/cacsd/help/fr/obsvss.xml [new file with mode: 0644]
scilab/modules/cacsd/help/fr/p_margin.xml [new file with mode: 0644]
scilab/modules/cacsd/help/fr/parrot.xml [new file with mode: 0644]
scilab/modules/cacsd/help/fr/pfss.xml [new file with mode: 0644]
scilab/modules/cacsd/help/fr/phasemag.xml [new file with mode: 0644]
scilab/modules/cacsd/help/fr/ppol.xml [new file with mode: 0644]
scilab/modules/cacsd/help/fr/prbs_a.xml [new file with mode: 0644]
scilab/modules/cacsd/help/fr/projsl.xml [new file with mode: 0644]
scilab/modules/cacsd/help/fr/reglin.xml [new file with mode: 0644]
scilab/modules/cacsd/help/fr/repfreq.xml [new file with mode: 0644]
scilab/modules/cacsd/help/fr/ric_desc.xml [new file with mode: 0644]
scilab/modules/cacsd/help/fr/ricc.xml [new file with mode: 0644]
scilab/modules/cacsd/help/fr/riccati.xml [new file with mode: 0644]
scilab/modules/cacsd/help/fr/rowinout.xml [new file with mode: 0644]
scilab/modules/cacsd/help/fr/rowregul.xml [new file with mode: 0644]
scilab/modules/cacsd/help/fr/rtitr.xml [new file with mode: 0644]
scilab/modules/cacsd/help/fr/sensi.xml [new file with mode: 0644]
scilab/modules/cacsd/help/fr/sm2des.xml [new file with mode: 0644]
scilab/modules/cacsd/help/fr/sm2ss.xml [new file with mode: 0644]
scilab/modules/cacsd/help/fr/specfact.xml [new file with mode: 0644]
scilab/modules/cacsd/help/fr/ss2des.xml [new file with mode: 0644]
scilab/modules/cacsd/help/fr/ss2ss.xml [new file with mode: 0644]
scilab/modules/cacsd/help/fr/ss2tf.xml [new file with mode: 0644]
scilab/modules/cacsd/help/fr/st_ility.xml [new file with mode: 0644]
scilab/modules/cacsd/help/fr/stabil.xml [new file with mode: 0644]
scilab/modules/cacsd/help/fr/svplot.xml [new file with mode: 0644]
scilab/modules/cacsd/help/fr/sysfact.xml [new file with mode: 0644]
scilab/modules/cacsd/help/fr/syssize.xml [new file with mode: 0644]
scilab/modules/cacsd/help/fr/tf2des.xml [new file with mode: 0644]
scilab/modules/cacsd/help/fr/tf2ss.xml [new file with mode: 0644]
scilab/modules/cacsd/help/fr/time_id.xml [new file with mode: 0644]
scilab/modules/cacsd/help/fr/trzeros.xml [new file with mode: 0644]
scilab/modules/cacsd/help/fr/ui_observer.xml [new file with mode: 0644]
scilab/modules/cacsd/help/fr/unobs.xml [new file with mode: 0644]
scilab/modules/cacsd/help/fr/zeropen.xml [new file with mode: 0644]
scilab/modules/cacsd/help/helpbuilder.sce [new file with mode: 0644]
scilab/modules/cacsd/licence.txt [new file with mode: 0644]
scilab/modules/cacsd/macros/abcd.sci [moved from scilab/macros/auto/abcd.sci with 100% similarity]
scilab/modules/cacsd/macros/abinv.sci [moved from scilab/macros/auto/abinv.sci with 100% similarity]
scilab/modules/cacsd/macros/acf.sci [moved from scilab/macros/arma/acf.sci with 100% similarity]
scilab/modules/cacsd/macros/arhnk.sci [moved from scilab/macros/auto/arhnk.sci with 100% similarity]
scilab/modules/cacsd/macros/arl2.sci [moved from scilab/macros/auto/arl2.sci with 100% similarity]
scilab/modules/cacsd/macros/arma2p.sci [moved from scilab/macros/arma/arma2p.sci with 100% similarity]
scilab/modules/cacsd/macros/armac.sci [moved from scilab/macros/arma/armac.sci with 100% similarity]
scilab/modules/cacsd/macros/armax.sci [moved from scilab/macros/arma/armax.sci with 100% similarity]
scilab/modules/cacsd/macros/armax1.sci [moved from scilab/macros/arma/armax1.sci with 100% similarity]
scilab/modules/cacsd/macros/arsimul.sci [moved from scilab/macros/arma/arsimul.sci with 100% similarity]
scilab/modules/cacsd/macros/augment.sci [moved from scilab/macros/robust/augment.sci with 100% similarity]
scilab/modules/cacsd/macros/balreal.sci [moved from scilab/macros/auto/balreal.sci with 100% similarity]
scilab/modules/cacsd/macros/bilin.sci [moved from scilab/macros/auto/bilin.sci with 100% similarity]
scilab/modules/cacsd/macros/bstap.sci [moved from scilab/macros/robust/bstap.sci with 100% similarity]
scilab/modules/cacsd/macros/buildmacros.sce [moved from scilab/macros/arma/buildmacros.sce with 73% similarity]
scilab/modules/cacsd/macros/cainv.sci [moved from scilab/macros/auto/cainv.sci with 100% similarity]
scilab/modules/cacsd/macros/calfrq.sci [moved from scilab/macros/auto/calfrq.sci with 100% similarity]
scilab/modules/cacsd/macros/canon.sci [moved from scilab/macros/auto/canon.sci with 100% similarity]
scilab/modules/cacsd/macros/ccontrg.sci [moved from scilab/macros/robust/ccontrg.sci with 100% similarity]
scilab/modules/cacsd/macros/cfspec.sci [moved from scilab/macros/robust/cfspec.sci with 100% similarity]
scilab/modules/cacsd/macros/cls2dls.sci [moved from scilab/macros/auto/cls2dls.sci with 100% similarity]
scilab/modules/cacsd/macros/colinout.sci [moved from scilab/macros/robust/colinout.sci with 100% similarity]
scilab/modules/cacsd/macros/colregul.sci [moved from scilab/macros/auto/colregul.sci with 100% similarity]
scilab/modules/cacsd/macros/cont_frm.sci [moved from scilab/macros/auto/cont_frm.sci with 100% similarity]
scilab/modules/cacsd/macros/cont_mat.sci [moved from scilab/macros/auto/cont_mat.sci with 100% similarity]
scilab/modules/cacsd/macros/contrss.sci [moved from scilab/macros/auto/contrss.sci with 100% similarity]
scilab/modules/cacsd/macros/copfac.sci [moved from scilab/macros/robust/copfac.sci with 100% similarity]
scilab/modules/cacsd/macros/csim.sci [moved from scilab/macros/auto/csim.sci with 100% similarity]
scilab/modules/cacsd/macros/ctr_gram.sci [moved from scilab/macros/auto/ctr_gram.sci with 100% similarity]
scilab/modules/cacsd/macros/dbphi.sci [moved from scilab/macros/auto/dbphi.sci with 100% similarity]
scilab/modules/cacsd/macros/dcf.sci [moved from scilab/macros/robust/dcf.sci with 100% similarity]
scilab/modules/cacsd/macros/ddp.sci [moved from scilab/macros/auto/ddp.sci with 100% similarity]
scilab/modules/cacsd/macros/des2ss.sci [moved from scilab/macros/robust/des2ss.sci with 100% similarity]
scilab/modules/cacsd/macros/des2tf.sci [moved from scilab/macros/auto/des2tf.sci with 100% similarity]
scilab/modules/cacsd/macros/dhnorm.sci [moved from scilab/macros/robust/dhnorm.sci with 100% similarity]
scilab/modules/cacsd/macros/dscr.sci [moved from scilab/macros/auto/dscr.sci with 100% similarity]
scilab/modules/cacsd/macros/dsimul.sci [moved from scilab/macros/auto/dsimul.sci with 100% similarity]
scilab/modules/cacsd/macros/dt_ility.sci [moved from scilab/macros/auto/dt_ility.sci with 100% similarity]
scilab/modules/cacsd/macros/dtsi.sci [moved from scilab/macros/robust/dtsi.sci with 100% similarity]
scilab/modules/cacsd/macros/entropy.sci [moved from scilab/macros/robust/entropy.sci with 100% similarity]
scilab/modules/cacsd/macros/epred.sci [moved from scilab/macros/arma/epred.sci with 100% similarity]
scilab/modules/cacsd/macros/equil.sci [moved from scilab/macros/auto/equil.sci with 100% similarity]
scilab/modules/cacsd/macros/equil1.sci [moved from scilab/macros/auto/equil1.sci with 100% similarity]
scilab/modules/cacsd/macros/findABCD.sci [moved from scilab/macros/auto/findABCD.sci with 100% similarity]
scilab/modules/cacsd/macros/findAC.sci [moved from scilab/macros/auto/findAC.sci with 100% similarity]
scilab/modules/cacsd/macros/findBDK.sci [moved from scilab/macros/auto/findBDK.sci with 100% similarity]
scilab/modules/cacsd/macros/findR.sci [moved from scilab/macros/auto/findR.sci with 100% similarity]
scilab/modules/cacsd/macros/findx0BD.sci [moved from scilab/macros/auto/findx0BD.sci with 100% similarity]
scilab/modules/cacsd/macros/flts.sci [moved from scilab/macros/auto/flts.sci with 100% similarity]
scilab/modules/cacsd/macros/fourplan.sci [moved from scilab/macros/robust/fourplan.sci with 100% similarity]
scilab/modules/cacsd/macros/frep2tf.sci [moved from scilab/macros/auto/frep2tf.sci with 100% similarity]
scilab/modules/cacsd/macros/freson.sci [moved from scilab/macros/auto/freson.sci with 100% similarity]
scilab/modules/cacsd/macros/fspec.sci [moved from scilab/macros/robust/fspec.sci with 100% similarity]
scilab/modules/cacsd/macros/fspecg.sci [moved from scilab/macros/robust/fspecg.sci with 100% similarity]
scilab/modules/cacsd/macros/fstabst.sci [moved from scilab/macros/robust/fstabst.sci with 100% similarity]
scilab/modules/cacsd/macros/g_margin.sci [moved from scilab/macros/auto/g_margin.sci with 100% similarity]
scilab/modules/cacsd/macros/gamitg.sci [moved from scilab/macros/robust/gamitg.sci with 100% similarity]
scilab/modules/cacsd/macros/gcare.sci [moved from scilab/macros/robust/gcare.sci with 100% similarity]
scilab/modules/cacsd/macros/gfare.sci [moved from scilab/macros/robust/gfare.sci with 100% similarity]
scilab/modules/cacsd/macros/gfrancis.sci [moved from scilab/macros/auto/gfrancis.sci with 100% similarity]
scilab/modules/cacsd/macros/gtild.sci [moved from scilab/macros/robust/gtild.sci with 100% similarity]
scilab/modules/cacsd/macros/h2norm.sci [moved from scilab/macros/robust/h2norm.sci with 100% similarity]
scilab/modules/cacsd/macros/h_cl.sci [moved from scilab/macros/robust/h_cl.sci with 100% similarity]
scilab/modules/cacsd/macros/h_inf.sci [moved from scilab/macros/robust/h_inf.sci with 100% similarity]
scilab/modules/cacsd/macros/h_inf_st.sci [moved from scilab/macros/robust/h_inf_st.sci with 100% similarity]
scilab/modules/cacsd/macros/h_norm.sci [moved from scilab/macros/robust/h_norm.sci with 100% similarity]
scilab/modules/cacsd/macros/hankelsv.sci [moved from scilab/macros/robust/hankelsv.sci with 100% similarity]
scilab/modules/cacsd/macros/imrep2ss.sci [moved from scilab/macros/auto/imrep2ss.sci with 100% similarity]
scilab/modules/cacsd/macros/inistate.sci [moved from scilab/macros/auto/inistate.sci with 100% similarity]
scilab/modules/cacsd/macros/invrs.sci [moved from scilab/macros/auto/invrs.sci with 100% similarity]
scilab/modules/cacsd/macros/invsyslin.sci [moved from scilab/macros/auto/invsyslin.sci with 100% similarity]
scilab/modules/cacsd/macros/kpure.sci [moved from scilab/macros/auto/kpure.sci with 100% similarity]
scilab/modules/cacsd/macros/krac2.sci [moved from scilab/macros/auto/krac2.sci with 100% similarity]
scilab/modules/cacsd/macros/lcf.sci [moved from scilab/macros/robust/lcf.sci with 100% similarity]
scilab/modules/cacsd/macros/leqe.sci [moved from scilab/macros/robust/leqe.sci with 100% similarity]
scilab/modules/cacsd/macros/leqr.sci [moved from scilab/macros/robust/leqr.sci with 100% similarity]
scilab/modules/cacsd/macros/lft.sci [moved from scilab/macros/robust/lft.sci with 100% similarity]
scilab/modules/cacsd/macros/lincos.sci [moved from scilab/macros/auto/lincos.sci with 100% similarity]
scilab/modules/cacsd/macros/linf.sci [moved from scilab/macros/robust/linf.sci with 100% similarity]
scilab/modules/cacsd/macros/linfn.sci [moved from scilab/macros/robust/linfn.sci with 100% similarity]
scilab/modules/cacsd/macros/lqe.sci [moved from scilab/macros/auto/lqe.sci with 100% similarity]
scilab/modules/cacsd/macros/lqg.sci [moved from scilab/macros/auto/lqg.sci with 100% similarity]
scilab/modules/cacsd/macros/lqg2stan.sci [moved from scilab/macros/auto/lqg2stan.sci with 100% similarity]
scilab/modules/cacsd/macros/lqg_ltr.sci [moved from scilab/macros/robust/lqg_ltr.sci with 100% similarity]
scilab/modules/cacsd/macros/lqr.sci [moved from scilab/macros/auto/lqr.sci with 100% similarity]
scilab/modules/cacsd/macros/lyap.sci [moved from scilab/macros/auto/lyap.sci with 100% similarity]
scilab/modules/cacsd/macros/macglov.sci [moved from scilab/macros/robust/macglov.sci with 100% similarity]
scilab/modules/cacsd/macros/markp2ss.sci [moved from scilab/macros/auto/markp2ss.sci with 100% similarity]
scilab/modules/cacsd/macros/minreal.sci [moved from scilab/macros/auto/minreal.sci with 100% similarity]
scilab/modules/cacsd/macros/minss.sci [moved from scilab/macros/auto/minss.sci with 100% similarity]
scilab/modules/cacsd/macros/narsimul.sci [moved from scilab/macros/arma/narsimul.sci with 100% similarity]
scilab/modules/cacsd/macros/nehari.sci [moved from scilab/macros/robust/nehari.sci with 100% similarity]
scilab/modules/cacsd/macros/noisegen.sci [moved from scilab/macros/arma/noisegen.sci with 100% similarity]
scilab/modules/cacsd/macros/obs_gram.sci [moved from scilab/macros/auto/obs_gram.sci with 100% similarity]
scilab/modules/cacsd/macros/obscont.sci [moved from scilab/macros/auto/obscont.sci with 100% similarity]
scilab/modules/cacsd/macros/observer.sci [moved from scilab/macros/auto/observer.sci with 100% similarity]
scilab/modules/cacsd/macros/obsv_mat.sci [moved from scilab/macros/auto/obsv_mat.sci with 100% similarity]
scilab/modules/cacsd/macros/obsvss.sci [moved from scilab/macros/auto/obsvss.sci with 100% similarity]
scilab/modules/cacsd/macros/p_margin.sci [moved from scilab/macros/auto/p_margin.sci with 100% similarity]
scilab/modules/cacsd/macros/parrot.sci [moved from scilab/macros/robust/parrot.sci with 100% similarity]
scilab/modules/cacsd/macros/pfss.sci [moved from scilab/macros/auto/pfss.sci with 100% similarity]
scilab/modules/cacsd/macros/phasemag.sci [moved from scilab/macros/auto/phasemag.sci with 100% similarity]
scilab/modules/cacsd/macros/prbs_a.sci [moved from scilab/macros/arma/prbs_a.sci with 100% similarity]
scilab/modules/cacsd/macros/projsl.sci [moved from scilab/macros/auto/projsl.sci with 100% similarity]
scilab/modules/cacsd/macros/reglin.sci [moved from scilab/macros/arma/reglin.sci with 100% similarity]
scilab/modules/cacsd/macros/repfreq.sci [moved from scilab/macros/auto/repfreq.sci with 100% similarity]
scilab/modules/cacsd/macros/ric_desc.sci [moved from scilab/macros/robust/ric_desc.sci with 100% similarity]
scilab/modules/cacsd/macros/riccati.sci [moved from scilab/macros/robust/riccati.sci with 100% similarity]
scilab/modules/cacsd/macros/rowinout.sci [moved from scilab/macros/robust/rowinout.sci with 100% similarity]
scilab/modules/cacsd/macros/rowregul.sci [moved from scilab/macros/auto/rowregul.sci with 100% similarity]
scilab/modules/cacsd/macros/sdiff.sci [moved from scilab/macros/arma/sdiff.sci with 100% similarity]
scilab/modules/cacsd/macros/sensi.sci [moved from scilab/macros/robust/sensi.sci with 100% similarity]
scilab/modules/cacsd/macros/sm2des.sci [moved from scilab/macros/auto/sm2des.sci with 100% similarity]
scilab/modules/cacsd/macros/sm2ss.sci [moved from scilab/macros/auto/sm2ss.sci with 100% similarity]
scilab/modules/cacsd/macros/smga.sci [moved from scilab/macros/robust/smga.sci with 100% similarity]
scilab/modules/cacsd/macros/specfact.sci [moved from scilab/macros/auto/specfact.sci with 100% similarity]
scilab/modules/cacsd/macros/ss2des.sci [moved from scilab/macros/auto/ss2des.sci with 100% similarity]
scilab/modules/cacsd/macros/ss2ss.sci [moved from scilab/macros/auto/ss2ss.sci with 100% similarity]
scilab/modules/cacsd/macros/ss2tf.sci [moved from scilab/macros/auto/ss2tf.sci with 100% similarity]
scilab/modules/cacsd/macros/st_ility.sci [moved from scilab/macros/auto/st_ility.sci with 100% similarity]
scilab/modules/cacsd/macros/stabil.sci [moved from scilab/macros/auto/stabil.sci with 100% similarity]
scilab/modules/cacsd/macros/statgain.sci [moved from scilab/macros/auto/statgain.sci with 100% similarity]
scilab/modules/cacsd/macros/svplot.sci [moved from scilab/macros/auto/svplot.sci with 100% similarity]
scilab/modules/cacsd/macros/sylv.sci [moved from scilab/macros/auto/sylv.sci with 100% similarity]
scilab/modules/cacsd/macros/sysfact.sci [moved from scilab/macros/auto/sysfact.sci with 100% similarity]
scilab/modules/cacsd/macros/tf2des.sci [moved from scilab/macros/robust/tf2des.sci with 100% similarity]
scilab/modules/cacsd/macros/tf2ss.sci [moved from scilab/macros/auto/tf2ss.sci with 100% similarity]
scilab/modules/cacsd/macros/time_id.sci [moved from scilab/macros/auto/time_id.sci with 100% similarity]
scilab/modules/cacsd/macros/trzeros.sci [moved from scilab/macros/auto/trzeros.sci with 100% similarity]
scilab/modules/cacsd/macros/ui_observer.sci [moved from scilab/macros/auto/ui_observer.sci with 100% similarity]
scilab/modules/cacsd/macros/unobs.sci [moved from scilab/macros/auto/unobs.sci with 100% similarity]
scilab/modules/cacsd/macros/zeropen.sci [moved from scilab/macros/auto/zeropen.sci with 100% similarity]
scilab/modules/cacsd/readme.txt [new file with mode: 0644]
scilab/scilab.start

diff --git a/scilab/macros/auto/buildmacros.sce b/scilab/macros/auto/buildmacros.sce
deleted file mode 100644 (file)
index 1c833a6..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-//------------------------------------
-// Allan CORNET INRIA 2005
-//------------------------------------
-SCI=getenv('SCI'); 
-TMPDIR=getenv('TMPDIR');
-//------------------------------------
-genlib('autolib','SCI/macros/auto');
-//------------------------------------
index 794bd21..168a15f 100644 (file)
@@ -5,17 +5,15 @@ CurrentDirectory=pwd();
  Directories=["util",
  "percent",
  "algebre",
- "arma",
- "auto",
  "elem",
  "int",
- "robust",
  "sci2for",
  "statistics",
  "tdcs",
  "gui",
   ];
   
+ Directories=[Directories;"SCI/modules/cacsd/macros"];    
  Directories=[Directories;"SCI/modules/signal_processing/macros"];  
  Directories=[Directories;"SCI/modules/sparse/macros"];
  Directories=[Directories;"SCI/modules/polynomials/macros"];      
diff --git a/scilab/macros/robust/buildmacros.sce b/scilab/macros/robust/buildmacros.sce
deleted file mode 100644 (file)
index a9b6de3..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-//------------------------------------
-// Allan CORNET INRIA 2005
-//------------------------------------
-SCI=getenv('SCI'); 
-TMPDIR=getenv('TMPDIR');
-//------------------------------------
-genlib('roblib','SCI/macros/robust');
-//------------------------------------
diff --git a/scilab/modules/cacsd/changelog.txt b/scilab/modules/cacsd/changelog.txt
new file mode 100644 (file)
index 0000000..8504643
--- /dev/null
@@ -0,0 +1 @@
+changelog cacsd module
\ No newline at end of file
diff --git a/scilab/modules/cacsd/etc/cacsd.quit b/scilab/modules/cacsd/etc/cacsd.quit
new file mode 100644 (file)
index 0000000..498a053
--- /dev/null
@@ -0,0 +1,16 @@
+// ====================================================================\r
+// This file contains command to be executed at the end \r
+// of a scilab session for CACSD module\r
+// Copyright INRIA 2006\r
+// ====================================================================\r
+// delete help chapter\r
+global LANGUAGE\r
+\r
+if LANGUAGE == 'fr' then\r
+       del_help_chapter("CACSD");\r
+elseif LANGUAGE == 'eng' then\r
+       del_help_chapter("CACSD");\r
+end\r
+\r
+clear del_help_chapter LANGUAGE;\r
+// ====================================================================\r
diff --git a/scilab/modules/cacsd/etc/cacsd.start b/scilab/modules/cacsd/etc/cacsd.start
new file mode 100644 (file)
index 0000000..85d570c
--- /dev/null
@@ -0,0 +1,23 @@
+// ====================================================================\r
+// cacsd module initialisation file \r
+// Copyright INRIA 2006\r
+// ====================================================================\r
+//Load  functions librarie\r
+load('SCI/modules/cacsd/macros/lib');\r
+// ====================================================================\r
+//add help chapter\r
+global LANGUAGE\r
+\r
+path = get_absolute_file_path('cacsd.start');\r
+path = getshortpathname(path);\r
+\r
+if LANGUAGE == 'fr' then\r
+       path = pathconvert(part(path,1:(length(path)-5))+'/help/fr',%f,%f);\r
+       add_help_chapter("CACSD",path);\r
+elseif LANGUAGE == 'eng' then\r
+       path = pathconvert(part(path,1:(length(path)-5))+'/help/eng',%f,%f);\r
+       add_help_chapter("CACSD",path);\r
+end\r
+\r
+clear path get_absolute_file_path add_help_chapter LANGUAGE;\r
+// ====================================================================\r
diff --git a/scilab/modules/cacsd/help/eng/abcd.xml b/scilab/modules/cacsd/help/eng/abcd.xml
new file mode 100644 (file)
index 0000000..7ebf3da
--- /dev/null
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
+<!DOCTYPE MAN SYSTEM "../../manrev.dtd">
+<MAN>
+  <LANGUAGE>eng</LANGUAGE>
+  <TITLE>abcd</TITLE>
+  <TYPE>Scilab Function</TYPE>
+  <DATE>April 1993</DATE>
+  <SHORT_DESCRIPTION name="abcd"> state-space matrices</SHORT_DESCRIPTION>
+  <CALLING_SEQUENCE>
+    <CALLING_SEQUENCE_ITEM>[A,B,C,D]=abcd(sl)  </CALLING_SEQUENCE_ITEM>
+  </CALLING_SEQUENCE>
+  <PARAM>
+    <PARAM_INDENT>
+      <PARAM_ITEM>
+        <PARAM_NAME>sl</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: linear system (<VERB>syslin</VERB> list) in state-space or transfer form</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>A,B,C,D</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: real matrices of appropriate dimensions</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+    </PARAM_INDENT>
+  </PARAM>
+  <DESCRIPTION>
+    <P>
+    returns the <VERB>A,B,C,D</VERB> matrices from a linear system <VERB>Sl</VERB>.</P>
+    <P>
+    Utility function. For transfer matrices <VERB>Sl</VERB> is converted
+    into state-space form by <VERB>tf2ss</VERB>.</P>
+    <P>
+    The matrices <VERB>A,B,C,D</VERB> are the elements <VERB>2</VERB> to <VERB>5</VERB> of
+    the <VERB>syslin</VERB> list <VERB>Sl</VERB>, i.e. <VERB>[A,B,C,D] = Sl(2:5)</VERB> .</P>
+  </DESCRIPTION>
+  <EXAMPLE>
+<![CDATA[
+A=diag([1,2,3]);B=[1;1;1];C=[2,2,2];
+sys=syslin('c',A,B,C);
+sys("A")
+sys("C")
+[A1,B1,C1,D1]=abcd(sys);
+A1
+systf=ss2tf(sys);
+[a,b,c,d]=abcd(systf)
+spec(a)
+c*b-C*B
+c*a*b-C*A*B
+ ]]>
+  </EXAMPLE>
+  <SEE_ALSO>
+    <SEE_ALSO_ITEM>
+      <LINK>syslin</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>ssrand</LINK>
+    </SEE_ALSO_ITEM>
+  </SEE_ALSO>
+</MAN>
diff --git a/scilab/modules/cacsd/help/eng/abinv.xml b/scilab/modules/cacsd/help/eng/abinv.xml
new file mode 100644 (file)
index 0000000..89b5dae
--- /dev/null
@@ -0,0 +1,240 @@
+<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
+<!DOCTYPE MAN SYSTEM "../../manrev.dtd">
+<MAN>
+  <LANGUAGE>eng</LANGUAGE>
+  <TITLE>abinv</TITLE>
+  <TYPE>Scilab Function</TYPE>
+  <DATE>April 1993</DATE>
+  <SHORT_DESCRIPTION name="abinv">  AB invariant subspace</SHORT_DESCRIPTION>
+  <CALLING_SEQUENCE>
+    <CALLING_SEQUENCE_ITEM>[X,dims,F,U,k,Z]=abinv(Sys,alfa,beta,flag)  </CALLING_SEQUENCE_ITEM>
+  </CALLING_SEQUENCE>
+  <PARAM>
+    <PARAM_INDENT>
+      <PARAM_ITEM>
+        <PARAM_NAME>Sys</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: <VERB>syslin</VERB> list containing the matrices <VERB>[A,B,C,D]</VERB>.</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>alfa</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: (optional) real number or vector (possibly complex, location of closed loop poles)</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>beta</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: (optional) real number or vector (possibly complex, location of closed loop poles)</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>flag</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: (optional) character string <VERB>'ge'</VERB> (default) or <VERB>'st'</VERB> or <VERB>'pp'</VERB></SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>X</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: orthogonal matrix of size nx (dim of state space).</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>dims</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: integer row vector <VERB>dims=[dimR,dimVg,dimV,noc,nos]</VERB> with <VERB>dimR&lt;=dimVg&lt;=dimV&lt;=noc&lt;=nos</VERB>. If <VERB>flag='st'</VERB>, (resp. <VERB>'pp'</VERB>), <VERB>dims</VERB> has 4 (resp. 3) components.</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>F</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: real matrix (state feedback)</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>k</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: integer (normal rank of <VERB>Sys</VERB>)</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>Z</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: non-singular linear system (<VERB>syslin</VERB> list)</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+    </PARAM_INDENT>
+  </PARAM>
+  <DESCRIPTION>
+    <P>
+    Output nulling subspace (maximal unobservable subspace) for
+    <VERB>Sys</VERB> = linear system defined by a syslin list containing
+    the matrices [A,B,C,D] of <VERB>Sys</VERB>.
+    The vector <VERB>dims=[dimR,dimVg,dimV,noc,nos]</VERB> gives the dimensions
+    of subspaces defined as columns of <VERB>X</VERB> according to partition given
+    below.
+    The <VERB>dimV</VERB> first columns of <VERB>X</VERB> i.e <VERB>V=X(:,1:dimV)</VERB>, 
+    span the AB-invariant subspace of <VERB>Sys</VERB> i.e the unobservable subspace of 
+    <VERB>(A+B*F,C+D*F)</VERB>. (<VERB>dimV=nx</VERB>  iff <VERB>C^(-1)(D)=X</VERB>).</P>
+    <P>
+    The <VERB>dimR</VERB> first columns of <VERB>X</VERB> i.e. <VERB>R=X(:,1:dimR)</VERB> spans  
+    the controllable part of <VERB>Sys</VERB> in <VERB>V</VERB>, <VERB>(dimR&lt;=dimV)</VERB>. (<VERB>dimR=0</VERB>
+    for a left invertible system). <VERB>R</VERB> is the maximal controllability
+    subspace of <VERB>Sys</VERB> in <VERB>kernel(C)</VERB>.</P>
+    <P>
+    The <VERB>dimVg</VERB> first columns of <VERB>X</VERB> spans 
+    <VERB>Vg</VERB>=maximal AB-stabilizable subspace of <VERB>Sys</VERB>. <VERB>(dimR&lt;=dimVg&lt;=dimV)</VERB>.</P>
+    <P><VERB>F</VERB> is a decoupling feedback: for <VERB>X=[V,X2] (X2=X(:,dimV+1:nx))</VERB> one has 
+    <VERB>X2'*(A+B*F)*V=0 and (C+D*F)*V=0</VERB>.</P>
+    <P>
+    The zeros od <VERB>Sys</VERB> are given by : <VERB>X0=X(:,dimR+1:dimV); spec(X0'*(A+B*F)*X0)</VERB>
+    i.e. there are <VERB>dimV-dimR</VERB> closed-loop fixed modes.</P>
+    <P>
+    If the optional parameter <VERB>alfa</VERB> is given as input, 
+    the <VERB>dimR</VERB> controllable modes of <VERB>(A+BF)</VERB> in <VERB>V</VERB> 
+    are set to <VERB>alfa</VERB> (or to <VERB>[alfa(1), alfa(2), ...]</VERB>.
+    (<VERB>alfa</VERB> can be a vector (real or complex pairs) or a (real) number).
+    Default value <VERB>alfa=-1</VERB>.</P>
+    <P>
+    If the optional real parameter <VERB>beta</VERB> is given as input, 
+    the <VERB>noc-dimV</VERB> controllable modes of <VERB>(A+BF)</VERB> &quot;outside&quot; <VERB>V</VERB> 
+    are set to <VERB>beta</VERB> (or <VERB>[beta(1),beta(2),...]</VERB>). Default value <VERB>beta=-1</VERB>.</P>
+    <P>
+    In the <VERB>X,U</VERB> bases, the matrices 
+    <VERB>[X'*(A+B*F)*X,X'*B*U;(C+D*F)*X,D*U]</VERB> 
+    are displayed as follows:</P>
+    <VERBATIM>
+<![CDATA[
+
+[A11,*,*,*,*,*]  [B11 * ]
+[0,A22,*,*,*,*]  [0   * ]
+[0,0,A33,*,*,*]  [0   * ]
+[0,0,0,A44,*,*]  [0  B42]
+[0,0,0,0,A55,*]  [0   0 ]
+[0,0,0,0,0,A66]  [0   0 ]
+
+[0,0,0,*,*,*]    [0  D2]
+   ]]>
+    </VERBATIM>
+    <P>
+    where the X-partitioning is defined by <VERB>dims</VERB> and 
+    the U-partitioning is defined by <VERB>k</VERB>.</P>
+    <P><VERB>A11</VERB> is <VERB>(dimR x dimR)</VERB> and has its eigenvalues set to <VERB>alfa(i)'s</VERB>.
+    The pair <VERB>(A11,B11)</VERB> is controllable and <VERB>B11</VERB> has <VERB>nu-k</VERB> columns. 
+    <VERB>A22</VERB> is a stable <VERB>(dimVg-dimR x dimVg-dimR)</VERB> matrix.
+    <VERB>A33</VERB> is an unstable <VERB>(dimV-dimVg x dimV-dimVg)</VERB> matrix (see <VERB>st_ility</VERB>).</P>
+    <P><VERB>A44</VERB> is <VERB>(noc-dimV x noc-dimV)</VERB> and has its eigenvalues set to <VERB>beta(i)'s</VERB>.
+    The pair <VERB>(A44,B42)</VERB> is controllable. 
+    <VERB>A55</VERB> is a stable <VERB>(nos-noc x nos-noc)</VERB> matrix.
+    <VERB>A66</VERB> is an unstable <VERB>(nx-nos x nx-nos)</VERB> matrix (see <VERB>st_ility</VERB>).</P>
+    <P><VERB>Z</VERB> is a column compression of <VERB>Sys</VERB> and <VERB>k</VERB> is
+    the normal rank of <VERB>Sys</VERB> i.e <VERB>Sys*Z</VERB> is a column-compressed linear
+    system. <VERB>k</VERB> is the column dimensions of <VERB>B42,B52,B62</VERB> and <VERB>D2</VERB>.
+    <VERB>[B42;B52;B62;D2]</VERB> is full column rank and has rank <VERB>k</VERB>.</P>
+    <P>
+    If <VERB>flag='st'</VERB> is given, a five blocks partition of the matrices is 
+    returned and <VERB>dims</VERB> has four components. If <VERB>flag='pp'</VERB> is 
+    given a four blocks partition is returned. In case <VERB>flag='ge'</VERB> one has
+    <VERB>dims=[dimR,dimVg,dimV,dimV+nc2,dimV+ns2]</VERB> where <VERB>nc2</VERB> 
+    (resp. <VERB>ns2</VERB>) is the dimension of the controllable (resp. 
+    stabilizable) pair <VERB>(A44,B42)</VERB> (resp. (<VERB>[A44,*;0,A55],[B42;0])</VERB>).
+    In case <VERB>flag='st'</VERB> one has <VERB>dims=[dimR,dimVg,dimVg+nc,dimVg+ns]</VERB>
+    and in case <VERB>flag='pp'</VERB> one has <VERB>dims=[dimR,dimR+nc,dimR+ns]</VERB>.
+    <VERB>nc</VERB> (resp. <VERB>ns</VERB>) is here the dimension of the controllable
+    (resp. stabilizable) subspace of the blocks 3 to 6 (resp. 2 to 6).</P>
+    <P>
+    This function can be used for the (exact) disturbance decoupling problem.</P>
+    <VERBATIM>
+<![CDATA[
+DDPS:
+   Find u=Fx+Rd=[F,R]*[x;d] which rejects Q*d and stabilizes the plant:
+
+    xdot = Ax+Bu+Qd
+       y = Cx+Du+Td
+
+DDPS has a solution if Im(Q) is included in Vg + Im(B) and stabilizability
+assumption is satisfied. 
+Let G=(X(:,dimVg+1:$))'= left annihilator of Vg i.e. G*Vg=0;
+B2=G*B; Q2=G*Q; DDPS solvable iff [B2;D]*R + [Q2;T] =0 has a solution.
+The pair F,R  is the solution  (with F=output of abinv).
+Im(Q2) is in Im(B2) means row-compression of B2=>row-compression of Q2
+Then C*[(sI-A-B*F)^(-1)+D]*(Q+B*R) =0   (<=>G*(Q+B*R)=0)
+   ]]>
+    </VERBATIM>
+  </DESCRIPTION>
+  <EXAMPLE>
+<![CDATA[
+nu=3;ny=4;nx=7;
+nrt=2;ngt=3;ng0=3;nvt=5;rk=2;
+flag=list('on',nrt,ngt,ng0,nvt,rk);
+Sys=ssrand(ny,nu,nx,flag);alfa=-1;beta=-2;
+[X,dims,F,U,k,Z]=abinv(Sys,alfa,beta);
+[A,B,C,D]=abcd(Sys);dimV=dims(3);dimR=dims(1);
+V=X(:,1:dimV);X2=X(:,dimV+1:nx);
+X2'*(A+B*F)*V
+(C+D*F)*V
+X0=X(:,dimR+1:dimV); spec(X0'*(A+B*F)*X0)
+trzeros(Sys)
+spec(A+B*F)   //nr=2 evals at -1 and noc-dimV=2 evals at -2.
+clean(ss2tf(Sys*Z))
+// 2nd Example
+nx=6;ny=3;nu=2;
+A=diag(1:6);A(2,2)=-7;A(5,5)=-9;B=[1,2;0,3;0,4;0,5;0,0;0,0];
+C=[zeros(ny,ny),eye(ny,ny)];D=[0,1;0,2;0,3];
+sl=syslin('c',A,B,C,D);//sl=ss2ss(sl,rand(6,6))*rand(2,2);
+[A,B,C,D]=abcd(sl);  //The matrices of sl.
+alfa=-1;beta=-2;
+[X,dims,F,U,k,Z]=abinv(sl,alfa,beta);dimVg=dims(2);
+clean(X'*(A+B*F)*X)
+clean(X'*B*U)
+clean((C+D*F)*X)
+clean(D*U)
+G=(X(:,dimVg+1:$))';
+B2=G*B;nd=3;
+R=rand(nu,nd);Q2T=-[B2;D]*R;
+p=size(G,1);Q2=Q2T(1:p,:);T=Q2T(p+1:$,:);
+Q=G\Q2;   //a valid [Q;T] since 
+[G*B;D]*R + [G*Q;T]  // is zero
+closed=syslin('c',A+B*F,Q+B*R,C+D*F,T+D*R); // closed loop: d-->y
+ss2tf(closed)       // Closed loop is zero
+spec(closed('A'))   //The plant is not stabilizable!
+[ns,nc,W,sl1]=st_ility(sl);
+[A,B,C,D]=abcd(sl1);A=A(1:ns,1:ns);B=B(1:ns,:);C=C(:,1:ns);
+slnew=syslin('c',A,B,C,D);  //Now stabilizable
+//Fnew=stabil(slnew('A'),slnew('B'),-11);
+//slnew('A')=slnew('A')+slnew('B')*Fnew;
+//slnew('C')=slnew('C')+slnew('D')*Fnew;
+[X,dims,F,U,k,Z]=abinv(slnew,alfa,beta);dimVg=dims(2);
+[A,B,C,D]=abcd(slnew);
+G=(X(:,dimVg+1:$))';
+B2=G*B;nd=3;
+R=rand(nu,nd);Q2T=-[B2;D]*R;
+p=size(G,1);Q2=Q2T(1:p,:);T=Q2T(p+1:$,:);
+Q=G\Q2;   //a valid [Q;T] since 
+[G*B;D]*R + [G*Q;T]  // is zero
+closed=syslin('c',A+B*F,Q+B*R,C+D*F,T+D*R); // closed loop: d-->y
+ss2tf(closed)       // Closed loop is zero
+spec(closed('A'))
+ ]]>
+  </EXAMPLE>
+  <SEE_ALSO>
+    <SEE_ALSO_ITEM>
+      <LINK>cainv</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>st_ility</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>ssrand</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>ss2ss</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>ddp</LINK>
+    </SEE_ALSO_ITEM>
+  </SEE_ALSO>
+  <AUTHOR>F.D.  </AUTHOR>
+</MAN>
diff --git a/scilab/modules/cacsd/help/eng/arhnk.xml b/scilab/modules/cacsd/help/eng/arhnk.xml
new file mode 100644 (file)
index 0000000..8740d3d
--- /dev/null
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
+<!DOCTYPE MAN SYSTEM "../../manrev.dtd">
+<MAN>
+  <LANGUAGE>eng</LANGUAGE>
+  <TITLE>arhnk</TITLE>
+  <TYPE>Scilab Function</TYPE>
+  <DATE>April 1993</DATE>
+  <SHORT_DESCRIPTION name="arhnk"> Hankel norm approximant</SHORT_DESCRIPTION>
+  <CALLING_SEQUENCE>
+    <CALLING_SEQUENCE_ITEM>[slm]=arhnk(sl,ord,[tol])     </CALLING_SEQUENCE_ITEM>
+  </CALLING_SEQUENCE>
+  <PARAM>
+    <PARAM_INDENT>
+      <PARAM_ITEM>
+        <PARAM_NAME>sl</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: linear system (<VERB>syslin</VERB> list)</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>ord</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: integer, order of the approximant</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>tol</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: threshold for rank determination in <VERB>equil1</VERB></SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+    </PARAM_INDENT>
+  </PARAM>
+  <DESCRIPTION>
+    <P>
+    computes <VERB>slm</VERB>, the optimal Hankel norm approximant of the 
+    stable continuous-time linear system <VERB>sl</VERB> with matrices <VERB>[A,B,C,D]</VERB>.</P>
+  </DESCRIPTION>
+  <EXAMPLE>
+<![CDATA[
+A=diag([-1,-2,-3,-4,-5]);B=rand(5,1);C=rand(1,5);
+sl=syslin('c',A,B,C);
+slapprox=arhnk(sl,2);
+[nk,W]=hankelsv(sl);nk
+[nkred,Wred]=hankelsv(slapprox);nkred
+ ]]>
+  </EXAMPLE>
+  <SEE_ALSO>
+    <SEE_ALSO_ITEM>
+      <LINK>equil</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>equil1</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>hankelsv</LINK>
+    </SEE_ALSO_ITEM>
+  </SEE_ALSO>
+</MAN>
diff --git a/scilab/modules/cacsd/help/eng/arl2.xml b/scilab/modules/cacsd/help/eng/arl2.xml
new file mode 100644 (file)
index 0000000..90bb798
--- /dev/null
@@ -0,0 +1,123 @@
+<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
+<!DOCTYPE MAN SYSTEM "../../manrev.dtd">
+<MAN>
+  <LANGUAGE>eng</LANGUAGE>
+  <TITLE>ARL2</TITLE>
+  <TYPE>Scilab Function</TYPE>
+  <DATE>April 1993</DATE>
+  <SHORT_DESCRIPTION name="arl2"> SISO model realization by L2 transfer approximation</SHORT_DESCRIPTION>
+  <CALLING_SEQUENCE>
+    <CALLING_SEQUENCE_ITEM>h=arl2(y,den0,n [,imp])  </CALLING_SEQUENCE_ITEM>
+    <CALLING_SEQUENCE_ITEM>h=arl2(y,den0,n [,imp],'all')  </CALLING_SEQUENCE_ITEM>
+    <CALLING_SEQUENCE_ITEM>[den,num,err]=arl2(y,den0,n [,imp])  </CALLING_SEQUENCE_ITEM>
+    <CALLING_SEQUENCE_ITEM>[den,num,err]=arl2(y,den0,n [,imp],'all')  </CALLING_SEQUENCE_ITEM>
+  </CALLING_SEQUENCE>
+  <PARAM>
+    <PARAM_INDENT>
+      <PARAM_ITEM>
+        <PARAM_NAME>y</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: real vector or polynomial in <VERB>z^-1</VERB>, it contains the coefficients of the Fourier's series of the rational system to approximate (the impulse response)</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>den0</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: a polynomial which gives an initial guess of the solution, it may be <VERB>poly(1,'z','c')</VERB></SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>n</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: integer, the degree of approximating transfer function (degree of den)</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>imp</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: integer in <VERB>(0,1,2)</VERB> (verbose mode)</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>h</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: transfer function <VERB>num/den</VERB> or transfer matrix (column vector) when flag <VERB>'all'</VERB> is given.</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>den</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: polynomial or vector of polynomials, contains the denominator(s) of the solution(s)</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>num</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: polynomial or vector of polynomials, contains the numerator(s) of the solution(s)</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>err</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: real constant or vector , the l2-error achieved for each solutions</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+    </PARAM_INDENT>
+  </PARAM>
+  <DESCRIPTION>
+    <P><VERB>[den,num,err]=arl2(y,den0,n [,imp]) </VERB> finds a pair of polynomials
+    <VERB>num</VERB> and <VERB>den</VERB> such that the transfer function <VERB>num/den</VERB>
+    is stable and its impulse response approximates (with a minimal l2
+    norm) the vector <VERB>y</VERB> assumed to be completed by an infinite number
+    of zeros.</P>
+    <P>
+    If <VERB>y(z)  =  y(1)(1/z)+y(2)(1/z^2)+ ...+ y(ny)(1/z^ny)</VERB></P>
+    <P>
+    then l2-norm of <VERB>num/den - y(z)</VERB> is <VERB>err</VERB>.</P>
+    <P><VERB>n</VERB> is the degree of the polynomial <VERB>den</VERB>.</P>
+    <P>
+    The <VERB>num/den</VERB>  transfer function is a L2 approximant of the
+    Fourier's series of the rational system.</P>
+    <P>
+    Various intermediate results are printed according to <VERB>imp</VERB>.</P>
+    <P><VERB>[den,num,err]=arl2(y,den0,n [,imp],'all') </VERB>  returns in the
+    vectors of polynomials <VERB>num</VERB> and <VERB>den</VERB>  a set of local
+    optimums for the problem. The solutions are sorted with increasing
+    errors <VERB>err</VERB>. In this case <VERB>den0</VERB> is already assumed to be 
+    <VERB>poly(1,'z','c')</VERB></P>
+  </DESCRIPTION>
+  <EXAMPLE>
+<![CDATA[
+v=ones(1,20);
+xbasc();
+plot2d1('enn',0,[v';zeros(80,1)],2,'051',' ',[1,-0.5,100,1.5])
+
+[d,n,e]=arl2(v,poly(1,'z','c'),1)
+plot2d1('enn',0,ldiv(n,d,100),2,'000')
+[d,n,e]=arl2(v,d,3)
+plot2d1('enn',0,ldiv(n,d,100),3,'000')
+[d,n,e]=arl2(v,d,8)
+plot2d1('enn',0,ldiv(n,d,100),5,'000')
+
+[d,n,e]=arl2(v,poly(1,'z','c'),4,'all')
+plot2d1('enn',0,ldiv(n(1),d(1),100),10,'000')
+ ]]>
+  </EXAMPLE>
+  <SEE_ALSO>
+    <SEE_ALSO_ITEM>
+      <LINK>ldiv</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>imrep2ss</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>time_id</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>armax</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>frep2tf</LINK>
+    </SEE_ALSO_ITEM>
+  </SEE_ALSO>
+</MAN>
diff --git a/scilab/modules/cacsd/help/eng/arma.xml b/scilab/modules/cacsd/help/eng/arma.xml
new file mode 100644 (file)
index 0000000..21f3d7c
--- /dev/null
@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
+<!DOCTYPE MAN SYSTEM "../../manrev.dtd">
+<MAN>
+  <LANGUAGE>eng</LANGUAGE>
+  <TITLE>arma</TITLE>
+  <TYPE>Scilab Function</TYPE>
+  <DATE>April 1993</DATE>
+  <SHORT_DESCRIPTION name="arma"> Scilab arma library</SHORT_DESCRIPTION>
+  <DESCRIPTION>
+    <P>
+    Armax processes can be coded with Scilab tlist of type <VERB>'ar'</VERB>. 
+    <VERB>armac</VERB> is used to build <VERB>Armax</VERB> scilab object. An <VERB>'ar'</VERB> 
+    tlist contains the fields <VERB>['a','b','d','ny','nu','sig']</VERB>. 
+  </P>
+    <DESCRIPTION_INDENT>
+      <DESCRIPTION_ITEM label="armac">
+        <SP>: this function creates a Scilab tlist which code an  Armax
+  process    <VERB> A(z^-1)y= B(z^-1)u + D(z^-1)sig*e(t)</VERB></SP>
+        <VERBATIM>
+<![CDATA[
+-->ar=armac([1,2],[3,4],1,1,1,sig);
+-->ar('a')   
+ ans  =
+!   1.    2. !
+-->ar('sig')
+ ans  =
+    1.  
+   ]]>
+        </VERBATIM>
+      </DESCRIPTION_ITEM>
+      <DESCRIPTION_ITEM label="armap(ar [,out])">
+        <SP>: Display the armax equation associated with <VERB>ar</VERB></SP>
+      </DESCRIPTION_ITEM>
+      <DESCRIPTION_ITEM label="armap_p(ar [,out])">
+        <SP>: Display the armax equation associated with <VERB>ar</VERB>  using polynomial matrix display.</SP>
+      </DESCRIPTION_ITEM>
+      <DESCRIPTION_ITEM label="[A,B,D]=armap2p(ar)">
+        <SP>: extract polynomial matrices from ar representation</SP>
+      </DESCRIPTION_ITEM>
+      <DESCRIPTION_ITEM label="armax">
+        <SP>: is used to identify the coefficients of a n-dimensional  ARX process   <VERB>A(z^-1)y= B(z^-1)u + sig*e(t)</VERB></SP>
+      </DESCRIPTION_ITEM>
+      <DESCRIPTION_ITEM label="armax1">
+        <SP>: armax1 is used to identify the coefficients of a 1-dimensional  ARX process    
+         <VERB>A(z^-1)y= B(z^-1)u + D(z^-1)sig*e(t)</VERB></SP>
+      </DESCRIPTION_ITEM>
+      <DESCRIPTION_ITEM label="arsimul">
+        <SP>: armax trajectory simulation.</SP>
+      </DESCRIPTION_ITEM>
+      <DESCRIPTION_ITEM label="arspec">
+        <SP>: Spectral power estimation of armax processes.  Test of  mese and arsimul</SP>
+      </DESCRIPTION_ITEM>
+      <DESCRIPTION_ITEM label="exar1">
+        <SP>: An  Example of ARMAX identification ( K.J. Astrom) The armax process is described by :     a=[1,-2.851,2.717,-0.865]     b=[0,1,1,1]     d=[1,0.7,0.2]</SP>
+      </DESCRIPTION_ITEM>
+      <DESCRIPTION_ITEM label="exar2">
+        <SP>: ARMAX example ( K.J. Astrom). A simulation of a bi dimensional version of the example of exar1.</SP>
+      </DESCRIPTION_ITEM>
+      <DESCRIPTION_ITEM label="exar3">
+        <SP>: Spectral power estimation of arma processes from Sawaragi et all where a value of m=18 is used. Test of  mese and arsimul</SP>
+      </DESCRIPTION_ITEM>
+      <DESCRIPTION_ITEM label="gbruit">
+        <SP>: noise generation</SP>
+      </DESCRIPTION_ITEM>
+      <DESCRIPTION_ITEM label="narsimul">
+        <SP>: armax simulation ( using rtitr)</SP>
+      </DESCRIPTION_ITEM>
+      <DESCRIPTION_ITEM label="odedi">
+        <SP>: Simple tests of ode and arsimul. Tests the option 'discret' of ode</SP>
+      </DESCRIPTION_ITEM>
+      <DESCRIPTION_ITEM label="prbs_a">
+        <SP>: pseudo random binary sequences generation</SP>
+      </DESCRIPTION_ITEM>
+      <DESCRIPTION_ITEM label="reglin">
+        <SP>: Linear regression</SP>
+      </DESCRIPTION_ITEM>
+    </DESCRIPTION_INDENT>
+  </DESCRIPTION>
+  <AUTHOR>J.P.C ; ;   </AUTHOR>
+</MAN>
diff --git a/scilab/modules/cacsd/help/eng/arma2p.xml b/scilab/modules/cacsd/help/eng/arma2p.xml
new file mode 100644 (file)
index 0000000..a0d62cc
--- /dev/null
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
+<!DOCTYPE MAN SYSTEM "../../manrev.dtd">
+<MAN>
+  <LANGUAGE>eng</LANGUAGE>
+  <TITLE>arma2p</TITLE>
+  <TYPE>Scilab Function</TYPE>
+  <DATE>April 1993</DATE>
+  <SHORT_DESCRIPTION name="arma2p"> extract polynomial matrices from ar representation</SHORT_DESCRIPTION>
+  <CALLING_SEQUENCE>
+    <CALLING_SEQUENCE_ITEM>[A,B,D]=arma2p(ar)  </CALLING_SEQUENCE_ITEM>
+  </CALLING_SEQUENCE>
+  <PARAM>
+    <PARAM_INDENT>
+      <PARAM_ITEM>
+        <PARAM_NAME>A,B,D</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: three polynomial matrices</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>ar</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: Scilab 'ar' tlist for arma storage (see <VERB>armac</VERB>).</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+    </PARAM_INDENT>
+  </PARAM>
+  <DESCRIPTION>
+    <P>
+    this function extract polynomial matrices <VERB>(A,B,D)</VERB> from an armax
+    description.</P>
+  </DESCRIPTION>
+  <EXAMPLE>
+<![CDATA[
+a=[1,-2.851,2.717,-0.865].*.eye(2,2)
+b=[0,1,1,1].*.[1;1];
+d=[1,0.7,0.2].*.eye(2,2);
+sig=eye(2,2);
+ar=armac(a,b,d,2,1,sig)
+// extract polynomial matrices from ar representation 
+[A,B,D]=arma2p(ar);
+ ]]>
+  </EXAMPLE>
+  <SEE_ALSO>
+    <SEE_ALSO_ITEM>
+      <LINK>arma</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>armax</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>armax1</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>arsimul</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>armac</LINK>
+    </SEE_ALSO_ITEM>
+  </SEE_ALSO>
+</MAN>
diff --git a/scilab/modules/cacsd/help/eng/armac.xml b/scilab/modules/cacsd/help/eng/armac.xml
new file mode 100644 (file)
index 0000000..c1ce8c9
--- /dev/null
@@ -0,0 +1,96 @@
+<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
+<!DOCTYPE MAN SYSTEM "../../manrev.dtd">
+<MAN>
+  <LANGUAGE>eng</LANGUAGE>
+  <TITLE>armac</TITLE>
+  <TYPE>Scilab Function</TYPE>
+  <DATE>April 1993</DATE>
+  <SHORT_DESCRIPTION name="armac"> Scilab description of an armax process</SHORT_DESCRIPTION>
+  <CALLING_SEQUENCE>
+    <CALLING_SEQUENCE_ITEM>[ar]=armac(a,b,d,ny,nu,sig)  </CALLING_SEQUENCE_ITEM>
+  </CALLING_SEQUENCE>
+  <PARAM>
+    <PARAM_INDENT>
+      <PARAM_ITEM>
+        <PARAM_NAME>a=[Id,a1,..,a_r]  </PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: is a matrix of size (ny,r*ny)</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>b=[b0,.....,b_s]  </PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: is a matrix of size (ny,(s+1)*nu)</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>d=[Id,d1,..,d_p]  </PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: is a matrix of size (ny,p*ny);</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>ny</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: dimension of the output  y</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>nu</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: dimension of the output  u</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>sig</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: a matrix of size (ny,ny)</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+    </PARAM_INDENT>
+  </PARAM>
+  <DESCRIPTION>
+    <P>
+    This function creates a description as a tlist of an  ARMAX process</P>
+    <P><VERB>ar</VERB> is defined by</P>
+    <VERBATIM>
+<![CDATA[
+ar=tlist(['ar','a','b','d','ny','nu','sig'],a,b,d,ny,nu,sig);
+   ]]>
+    </VERBATIM>
+    <P>
+    and thus the coefficients of <VERB>ar</VERB> can be retrieved by e.g.
+    <VERB> ar('a') </VERB>.</P>
+  </DESCRIPTION>
+  <EXAMPLE>
+<![CDATA[
+a=[1,-2.851,2.717,-0.865].*.eye(2,2)
+b=[0,1,1,1].*.[1;1];
+d=[1,0.7,0.2].*.eye(2,2);
+sig=eye(2,2);
+ar=armac(a,b,d,2,1,sig)
+// extract polynomial matrices from ar representation 
+[A,B,D]=arma2p(ar);
+ ]]>
+  </EXAMPLE>
+  <SEE_ALSO>
+    <SEE_ALSO_ITEM>
+      <LINK>arma</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>armax</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>armax1</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>arsimul</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>arma2p</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>tlist</LINK>
+    </SEE_ALSO_ITEM>
+  </SEE_ALSO>
+</MAN>
diff --git a/scilab/modules/cacsd/help/eng/armax.xml b/scilab/modules/cacsd/help/eng/armax.xml
new file mode 100644 (file)
index 0000000..c4241a6
--- /dev/null
@@ -0,0 +1,146 @@
+<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
+<!DOCTYPE MAN SYSTEM "../../manrev.dtd">
+<MAN>
+  <LANGUAGE>eng</LANGUAGE>
+  <TITLE>armax</TITLE>
+  <TYPE>Scilab Function</TYPE>
+  <DATE>April 1993</DATE>
+  <SHORT_DESCRIPTION name="armax"> armax identification</SHORT_DESCRIPTION>
+  <CALLING_SEQUENCE>
+    <CALLING_SEQUENCE_ITEM>[arc,la,lb,sig,resid]=armax(r,s,y,u,[b0f,prf])  </CALLING_SEQUENCE_ITEM>
+  </CALLING_SEQUENCE>
+  <PARAM>
+    <PARAM_INDENT>
+      <PARAM_ITEM>
+        <PARAM_NAME>y</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: output process  y(ny,n); ( ny: dimension of y , n : sample size)</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>u</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: input process   u(nu,n); ( nu: dimension of u , n : sample size)</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>r and s</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: auto-regression orders r &gt;=0 et s &gt;=-1</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>b0f</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: optional parameter. Its default value is 0 and it means that the coefficient b0 must be identified. if bof=1 the b0 is supposed to be zero and is not identified</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>prf</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: optional parameter for display control. If prf =1, the default value,  a display of the identified Arma is given.</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>arc</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: a Scilab arma object (see armac)</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>la</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: is the list(a,a+eta,a-eta) ( la = a in dimension 1) ; where eta is the estimated standard deviation.  , a=[Id,a1,a2,...,ar] where each ai is a matrix of size (ny,ny)</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>lb</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: is the list(b,b+etb,b-etb) (lb =b in dimension 1) ; where etb is the estimated standard deviation. b=[b0,.....,b_s] where each bi is a matrix of size (nu,nu)</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>sig</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: is the estimated standard deviation of the noise and resid=[ sig*e(t0),....] (</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+    </PARAM_INDENT>
+  </PARAM>
+  <DESCRIPTION>
+    <P>
+    armax is used to identify the coefficients of a n-dimensional 
+    ARX process</P>
+    <VERBATIM>
+<![CDATA[
+   A(z^-1)y= B(z^-1)u + sig*e(t)
+   ]]>
+    </VERBATIM>
+    <P>
+    where e(t) is a n-dimensional white noise with variance I.
+    sig  an nxn matrix and A(z) and B(z):</P>
+    <VERBATIM>
+<![CDATA[
+A(z) = 1+a1*z+...+a_r*z^r; ( r=0 => A(z)=1)
+B(z) = b0+b1*z+...+b_s z^s ( s=-1 => B(z)=0)
+   ]]>
+    </VERBATIM>
+    <P>
+    for the method see Eykhoff in trends and progress in system identification, page 96.
+    with  
+     <VERB>z(t)=[y(t-1),..,y(t-r),u(t),...,u(t-s)]</VERB>
+    and
+     <VERB>coef= [-a1,..,-ar,b0,...,b_s] </VERB>
+    we can write 
+    <VERB>y(t)= coef* z(t) + sig*e(t) </VERB> and the algorithm minimises 
+    <VERB>sum_{t=1}^N ( [y(t)- coef'z(t)]^2)</VERB>
+    where t0=maxi(maxi(r,s)+1,1))).</P>
+  </DESCRIPTION>
+  <EXAMPLE>
+<![CDATA[
+//-Ex1- Arma model : y(t) = 0.2*u(t-1)+0.01*e(t-1)
+ny=1,nu=1,sig=0.01;
+Arma=armac(1,[0,0.2],[0,1],ny,nu,sig)  //defining the above arma model
+u=rand(1,1000,'normal');     //a random input sequence u
+y=arsimul(Arma,u); //simulation of a y output sequence associated with u.
+Armaest=armax(0,1,y,u);   //Identified model given u and y.
+Acoeff=Armaest('a');    //Coefficients of the polynomial A(x)
+Bcoeff=Armaest('b')     //Coefficients of the polynomial B(x)
+Dcoeff=Armaest('d');    //Coefficients of the polynomial D(x)
+[Ax,Bx,Dx]=arma2p(Armaest)   //Results in polynomial form. 
+
+//-Ex2- Arma1: y_t -0.8*y_{t-1} + 0.2*y_{t-2} =  sig*e(t)
+ny=1,nu=1;sig=0.001;
+// First step: simulation the Arma1 model, for that we define
+// Arma2: y_t -0.8*y_{t-1} + 0.2*y_{t-2} = sig*u(t)
+// with normal deviates for u(t).  
+Arma2=armac([1,-0.8,0.2],sig,0,ny,nu,0);
+//Definition of the Arma2 arma model (a model with B=sig and without noise!)
+u=rand(1,10000,'normal');  // An input sequence for Arma2
+y=arsimul(Arma2,u); // y = output of Arma2 with input u 
+//                     can be seen as output of Arma1.
+// Second step: identification. We look for an Arma model
+// y(t) + a1*y(t-1) + a2 *y(t-2) =  sig*e(t)
+Arma1est=armax(2,-1,y,[]);
+[A,B,D]=arma2p(Arma1est)
+ ]]>
+  </EXAMPLE>
+  <SEE_ALSO>
+    <SEE_ALSO_ITEM>
+      <LINK>imrep2ss</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>time_id</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>arl2</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>armax</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>frep2tf</LINK>
+    </SEE_ALSO_ITEM>
+  </SEE_ALSO>
+  <AUTHOR>J-Ph. Chancelier.  </AUTHOR>
+</MAN>
diff --git a/scilab/modules/cacsd/help/eng/armax1.xml b/scilab/modules/cacsd/help/eng/armax1.xml
new file mode 100644 (file)
index 0000000..e2afba9
--- /dev/null
@@ -0,0 +1,106 @@
+<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
+<!DOCTYPE MAN SYSTEM "../../manrev.dtd">
+<MAN>
+  <LANGUAGE>eng</LANGUAGE>
+  <TITLE>armax1</TITLE>
+  <TYPE>Scilab Function</TYPE>
+  <DATE>April 1993</DATE>
+  <SHORT_DESCRIPTION name="armax1"> armax identification</SHORT_DESCRIPTION>
+  <CALLING_SEQUENCE>
+    <CALLING_SEQUENCE_ITEM>[arc,resid]=armax1(r,s,q,y,u [,b0f])  </CALLING_SEQUENCE_ITEM>
+  </CALLING_SEQUENCE>
+  <PARAM>
+    <PARAM_INDENT>
+      <PARAM_ITEM>
+        <PARAM_NAME>y</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: output signal</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>u</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: input signal</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>r,s,q</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: auto regression orders with r &gt;=0, s &gt;=-1.</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>b0f</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: optional parameter. Its default value is 0 and it means that the coefficient b0 must be identified. if bof=1 the b0 is supposed to be zero and is not identified</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>arc</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: is tlist with type &quot;ar&quot; and fields a,  b,  d,  ny,  nu,  sig</SP>
+          <PARAM_INDENT>
+            <PARAM_ITEM>
+              <PARAM_NAME>a</PARAM_NAME>
+              <PARAM_DESCRIPTION>
+                <SP>: is the vector <VERB>[1,a1,...,a_r]</VERB></SP>
+              </PARAM_DESCRIPTION>
+            </PARAM_ITEM>
+            <PARAM_ITEM>
+              <PARAM_NAME>b</PARAM_NAME>
+              <PARAM_DESCRIPTION>
+                <SP>: is the vector <VERB>[b0,......,b_s]</VERB></SP>
+              </PARAM_DESCRIPTION>
+            </PARAM_ITEM>
+            <PARAM_ITEM>
+              <PARAM_NAME>d</PARAM_NAME>
+              <PARAM_DESCRIPTION>
+                <SP>: is the vector <VERB>[1,d1,....,d_q]</VERB></SP>
+              </PARAM_DESCRIPTION>
+            </PARAM_ITEM>
+            <PARAM_ITEM>
+              <PARAM_NAME>sig</PARAM_NAME>
+              <PARAM_DESCRIPTION>
+                <SP>:   resid=[ sig*echap(1),....,];</SP>
+              </PARAM_DESCRIPTION>
+            </PARAM_ITEM>
+          </PARAM_INDENT>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+    </PARAM_INDENT>
+  </PARAM>
+  <DESCRIPTION>
+    <P>
+    armax1 is used to identify the coefficients of a 1-dimensional 
+    ARX process:</P>
+    <VERBATIM>
+<![CDATA[
+   A(z^-1)y= B(z^-1)u + D(z^-1)sig*e(t)
+   e(t) is a 1-dimensional white noise with variance 1.
+   A(z)= 1+a1*z+...+a_r*z^r; ( r=0 => A(z)=1)
+   B(z)= b0+b1*z+...+b_s z^s ( s=-1 => B(z)=0)
+   D(z)= 1+d1*z+...+d_q*z^q  ( q=0 => D(z)=1)
+   ]]>
+    </VERBATIM>
+    <P>
+    for the method, see Eykhoff in trends and progress in system identification) page 96.
+    with
+    </P> 
+    <VERBATIM>
+            z(t)=[y(t-1),..,y(t-r),u(t),...,
+                  u(t-s),e(t-1),...,e(t-q)] 
+    </VERBATIM>
+    <P>
+    and
+    </P>
+    <VERBATIM>
+            coef= [-a1,..,-ar,b0,...,b_s,d1,...,d_q]'
+            y(t)= coef'* z(t) + sig*e(t).
+    </VERBATIM>
+    <P>
+    a sequential version of the AR estimation where e(t-i) is replaced 
+    by an estimated value is used (RLLS). With q=0 this method is exactly
+    a sequential version of armax</P>
+  </DESCRIPTION>
+  <AUTHOR>J.-Ph.C; ;   </AUTHOR>
+</MAN>
diff --git a/scilab/modules/cacsd/help/eng/arsimul.xml b/scilab/modules/cacsd/help/eng/arsimul.xml
new file mode 100644 (file)
index 0000000..be3cd3a
--- /dev/null
@@ -0,0 +1,85 @@
+<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
+<!DOCTYPE MAN SYSTEM "../../manrev.dtd">
+<MAN>
+  <LANGUAGE>eng</LANGUAGE>
+  <TITLE>arsimul</TITLE>
+  <TYPE>Scilab Function</TYPE>
+  <DATE>April 1993</DATE>
+  <SHORT_DESCRIPTION name="arsimul"> armax simulation</SHORT_DESCRIPTION>
+  <CALLING_SEQUENCE>
+    <CALLING_SEQUENCE_ITEM>[z]=arsimul(a,b,d,sig,u,[up,yp,ep])  </CALLING_SEQUENCE_ITEM>
+    <CALLING_SEQUENCE_ITEM>[z]=arsimul(ar,u,[up,yp,ep])  </CALLING_SEQUENCE_ITEM>
+  </CALLING_SEQUENCE>
+  <PARAM>
+    <PARAM_INDENT>
+      <PARAM_ITEM>
+        <PARAM_NAME>ar</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: an armax process. See armac.</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>a</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: is the matrix  <VERB>[Id,a1,...,a_r]</VERB>     of dimension (n,(r+1)*n)</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>b</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: is the matrix <VERB>[b0,......,b_s]</VERB>      of dimension (n,(s+1)*m)</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>d</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: is the matrix <VERB>[Id,d_1,......,d_t]</VERB>  of dimension (n,(t+1)*n)</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>u</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: is a matrix  (m,N), which gives the entry u(:,j)=u_j</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>sig</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: is a  (n,n) matrix  e_{k} is an n-dimensional Gaussian process with variance I</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>up, yp</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: optional parameter which describe the past.  <VERB>up=[ u_0,u_{-1},...,u_{s-1}]</VERB>; 
+          <VERB>yp=[ y_0,y_{-1},...,y_{r-1}];</VERB>   <VERB>ep=[ e_0,e_{-1},...,e_{r-1}]</VERB>; 
+          if they are omitted, the past value are supposed to be zero</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>z</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: <VERB>z=[y(1),....,y(N)]</VERB></SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+    </PARAM_INDENT>
+  </PARAM>
+  <DESCRIPTION>
+    <P>
+    simulation of an n-dimensional armax process 
+    <VERB>A(z^-1) z(k)= B(z^-1)u(k) + D(z^-1)*sig*e(k)</VERB>
+    </P>
+    <VERBATIM>
+       A(z)= Id+a1*z+...+a_r*z^r;  ( r=0  =&gt; A(z)=Id)
+       B(z)= b0+b1*z+...+b_s z^s;  ( s=-1 =&gt; B(z)=[])
+       D(z)= Id+d1*z+...+d_t z^t;  ( t=0  =&gt; D(z)=Id)
+    </VERBATIM>
+    <P>
+    z et e are in  <VERB>R^n</VERB> et u in <VERB>R^m</VERB></P>
+  </DESCRIPTION>
+  <SECTION label="Method">
+    <P>
+    a state-space representation is constructed and ode with the option  &quot;discr&quot; is used to compute z</P>
+  </SECTION>
+  <AUTHOR>J-Ph.C.</AUTHOR>
+</MAN>
diff --git a/scilab/modules/cacsd/help/eng/augment.xml b/scilab/modules/cacsd/help/eng/augment.xml
new file mode 100644 (file)
index 0000000..02fd89b
--- /dev/null
@@ -0,0 +1,124 @@
+<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
+<!DOCTYPE MAN SYSTEM "../../manrev.dtd">
+<MAN>
+  <LANGUAGE>eng</LANGUAGE>
+  <TITLE>augment</TITLE>
+  <TYPE>Scilab Function</TYPE>
+  <DATE>April 1993</DATE>
+  <SHORT_DESCRIPTION name="augment"> augmented plant</SHORT_DESCRIPTION>
+  <CALLING_SEQUENCE>
+    <CALLING_SEQUENCE_ITEM>[P,r]=augment(G)  </CALLING_SEQUENCE_ITEM>
+    <CALLING_SEQUENCE_ITEM>[P,r]=augment(G,flag1)  </CALLING_SEQUENCE_ITEM>
+    <CALLING_SEQUENCE_ITEM>[P,r]=augment(G,flag1,flag2)  </CALLING_SEQUENCE_ITEM>
+  </CALLING_SEQUENCE>
+  <PARAM>
+    <PARAM_INDENT>
+      <PARAM_ITEM>
+        <PARAM_NAME>G</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: linear system (<VERB>syslin</VERB> list), the nominal plant</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>flag1</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: one of the following (upper case) character string: <VERB> 'S' </VERB>, <VERB> 'R' </VERB>, <VERB> 'T' </VERB> <VERB> 'SR' </VERB>, <VERB> 'ST' </VERB>, <VERB> 'RT' </VERB> <VERB> 'SRT' </VERB></SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>flag2</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: one of the following character string: <VERB> 'o' </VERB> (stands for 'output', this is the default value) or <VERB>'i'</VERB> (stands for 'input').</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>P</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: linear system (<VERB>syslin</VERB> list), the ``augmented'' plant</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>r</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: 1x2 row vector, dimension of <VERB>P22 = G</VERB></SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+    </PARAM_INDENT>
+  </PARAM>
+  <DESCRIPTION>
+    <P>
+    If <VERB>flag1='SRT'</VERB> (default value), returns the &quot;full&quot; augmented plant</P>
+    <VERBATIM>
+<![CDATA[
+    [ I | -G]   -->'S'
+    [ 0 |  I]   -->'R'
+P = [ 0 |  G]   -->'T'
+    [-------]
+    [ I | -G]
+   ]]>
+    </VERBATIM>
+    <P><VERB> 'S' </VERB>, <VERB> 'R' </VERB>, <VERB> 'T' </VERB> refer to the first three (block) rows
+    of <VERB>P</VERB> respectively.</P>
+    <P>
+    If one of these letters is absent in <VERB>flag1</VERB>, the corresponding
+    row in <VERB>P</VERB> is missing.</P>
+    <P>
+    If <VERB>G</VERB> is given in state-space form, the returned <VERB>P</VERB> is minimal.
+    <VERB>P</VERB> is calculated by: <VERB>[I,0,0;0,I,0;-I,0,I;I,0,0]*[I,-G;0,I;I,0]</VERB>.</P>
+    <P>
+    The augmented plant associated with input sensitivity functions, namely</P>
+    <VERBATIM>
+<![CDATA[
+    [ I | -I]   -->'S'  (input sensitivity)
+    [ G | -G]   -->'R'  (G*input sensitivity)
+P = [ 0 |  I]   -->'T'  (K*G*input sensitivity)
+    [-------]
+    [ G | -G]
+   ]]>
+    </VERBATIM>
+    <P>
+    is obtained by the command <VERB>[P,r]=augment(G,flag,'i')</VERB>. For
+    state-space <VERB>G</VERB>, this <VERB>P</VERB>
+    is calculated by: <VERB>[I,-I;0,0;0,I;0,0]+[0;I;0;I]*G*[I,-I]</VERB>
+    and is thus generically minimal.</P>
+    <P>
+    Note that weighting functions can be introduced by left-multiplying
+    <VERB>P</VERB> by a diagonal system of appropriate dimension, e.g.,
+    <VERB> P = sysdiag(W1,W2,W3,eye(G))*P</VERB>.</P>
+    <P>
+    Sensitivity functions can be calculated by <VERB>lft</VERB>. One has:</P>
+    <P>
+    For output sensitivity functions [P,r]=augment(P,'SRT'):
+    lft(P,r,K)=[inv(eye()+G*K);K*inv(eye()+G*K);G*K*inv(eye()+G*K)];</P>
+    <P>
+    For input sensitivity functions [P,r]=augment(P,'SRT','i'):
+    lft(P,r,K)=[inv(eye()+K*G);G*inv(eye()+K*G);K*G*inv(eye()+G*K)];</P>
+  </DESCRIPTION>
+  <EXAMPLE>
+<![CDATA[
+G=ssrand(2,3,2); //Plant
+K=ssrand(3,2,2); //Compensator
+[P,r]=augment(G,'T');
+T=lft(P,r,K);   //Complementary sensitivity function
+Ktf=ss2tf(K);Gtf=ss2tf(G);
+Ttf=ss2tf(T);T11=Ttf(1,1);
+Oloop=Gtf*Ktf;
+Tn=Oloop*inv(eye(Oloop)+Oloop);
+clean(T11-Tn(1,1));
+//
+[Pi,r]=augment(G,'T','i');
+T1=lft(Pi,r,K);T1tf=ss2tf(T1); //Input Complementary sensitivity function
+Oloop=Ktf*Gtf;
+T1n=Oloop*inv(eye(Oloop)+Oloop);
+clean(T1tf(1,1)-T1n(1,1))
+ ]]>
+  </EXAMPLE>
+  <SEE_ALSO>
+    <SEE_ALSO_ITEM>
+      <LINK>lft</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>sensi</LINK>
+    </SEE_ALSO_ITEM>
+  </SEE_ALSO>
+</MAN>
diff --git a/scilab/modules/cacsd/help/eng/balreal.xml b/scilab/modules/cacsd/help/eng/balreal.xml
new file mode 100644 (file)
index 0000000..838cd06
--- /dev/null
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
+<!DOCTYPE MAN SYSTEM "../../manrev.dtd">
+<MAN>
+  <LANGUAGE>eng</LANGUAGE>
+  <TITLE>balreal</TITLE>
+  <TYPE>Scilab Function</TYPE>
+  <DATE>April 1993</DATE>
+  <SHORT_DESCRIPTION name="balreal"> balanced realization</SHORT_DESCRIPTION>
+  <CALLING_SEQUENCE>
+    <CALLING_SEQUENCE_ITEM>[slb [,U] ] = balreal(sl)  </CALLING_SEQUENCE_ITEM>
+  </CALLING_SEQUENCE>
+  <PARAM>
+    <PARAM_INDENT>
+      <PARAM_ITEM>
+        <PARAM_NAME>sl,slb</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: linear systems (<VERB>syslin</VERB> lists)</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+    </PARAM_INDENT>
+  </PARAM>
+  <DESCRIPTION>
+    <P>
+    Balanced realization of linear system <VERB>sl=[A,B,C,D]</VERB>. <VERB>sl</VERB>
+    can be a continuous-time or discrete-time state-space system. 
+    sl is assumed stable.</P>
+    <VERBATIM>
+<![CDATA[
+slb=[inv(U)*A*U ,inv(U)*B , C*U , D]
+   ]]>
+    </VERBATIM>
+    <P>
+    is the balanced realization.</P>
+    <P><VERB>slb</VERB> is returned as a <VERB>syslin</VERB> list.</P>
+  </DESCRIPTION>
+  <EXAMPLE>
+<![CDATA[
+A=diag([-1,-2,-3,-4,-5]);B=rand(5,2);C=rand(1,5);
+sl=syslin('c',A,B,C);
+[slb,U]=balreal(sl);
+Wc=clean(ctr_gram(slb))
+W0=clean(obs_gram(slb))
+ ]]>
+  </EXAMPLE>
+  <SEE_ALSO>
+    <SEE_ALSO_ITEM>
+      <LINK>ctr_gram</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>obs_gram</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>hankelsv</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>equil</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>equil1</LINK>
+    </SEE_ALSO_ITEM>
+  </SEE_ALSO>
+</MAN>
diff --git a/scilab/modules/cacsd/help/eng/bilin.xml b/scilab/modules/cacsd/help/eng/bilin.xml
new file mode 100644 (file)
index 0000000..3775e81
--- /dev/null
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
+<!DOCTYPE MAN SYSTEM "../../manrev.dtd">
+<MAN>
+  <LANGUAGE>eng</LANGUAGE>
+  <TITLE>bilin</TITLE>
+  <TYPE>Scilab Function</TYPE>
+  <DATE>April 1993</DATE>
+  <SHORT_DESCRIPTION name="bilin"> general bilinear transform</SHORT_DESCRIPTION>
+  <CALLING_SEQUENCE>
+    <CALLING_SEQUENCE_ITEM>[sl1]=bilin(sl,v)  </CALLING_SEQUENCE_ITEM>
+  </CALLING_SEQUENCE>
+  <PARAM>
+    <PARAM_INDENT>
+      <PARAM_ITEM>
+        <PARAM_NAME>sl,sl1</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: linear systems (<VERB>syslin</VERB> lists)</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>v</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: real vector with 4 entries (<VERB>v=[a,b,c,d]</VERB>)</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+    </PARAM_INDENT>
+  </PARAM>
+  <DESCRIPTION>
+    <P>
+    Given a linear system in state space form, <VERB>sl=syslin(dom,A,B,C,D)</VERB> 
+    (<VERB>syslin</VERB> list), <VERB>sl1=bilin(sl,v)</VERB>  returns in <VERB>sl1</VERB> a 
+    linear system with matrices <VERB>[A1,B1,C1,D1]</VERB> such that
+    the transfer function <VERB>H1(s)=C1*inv(s*eye()-A1)*B1+D1</VERB> is
+    obtained from <VERB>H(z)=C*inv(z*eye()-A)*B+D</VERB> by replacing <VERB>z</VERB>
+    by <VERB>z=(a*s+b)/(c*s+d)</VERB>.
+    One has <VERB>w=bilin(bilin(w,[a,b,c,d]),[d,-b,-c,a])</VERB></P>
+  </DESCRIPTION>
+  <EXAMPLE>
+<![CDATA[
+s=poly(0,'s');z=poly(0,'z');
+w=ssrand(1,1,3);
+wtf=ss2tf(w);v=[2,3,-1,4];a=v(1);b=v(2);c=v(3);d=v(4);
+[horner(wtf,(a*z+b)/(c*z+d)),ss2tf(bilin(w,[a,b,c,d]))]
+clean(ss2tf(bilin(bilin(w,[a,b,c,d]),[d,-b,-c,a]))-wtf)
+ ]]>
+  </EXAMPLE>
+  <SEE_ALSO>
+    <SEE_ALSO_ITEM>
+      <LINK>horner</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>cls2dls</LINK>
+    </SEE_ALSO_ITEM>
+  </SEE_ALSO>
+</MAN>
diff --git a/scilab/modules/cacsd/help/eng/bstap.xml b/scilab/modules/cacsd/help/eng/bstap.xml
new file mode 100644 (file)
index 0000000..3eb4aa0
--- /dev/null
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
+<!DOCTYPE MAN SYSTEM "../../manrev.dtd">
+<MAN>
+  <LANGUAGE>eng</LANGUAGE>
+  <TITLE>bstap</TITLE>
+  <TYPE>Scilab Function</TYPE>
+  <DATE>April 1993</DATE>
+  <SHORT_DESCRIPTION name="bstap"> hankel approximant</SHORT_DESCRIPTION>
+  <CALLING_SEQUENCE>
+    <CALLING_SEQUENCE_ITEM>[Q]=bstap(Sl)  </CALLING_SEQUENCE_ITEM>
+  </CALLING_SEQUENCE>
+  <PARAM>
+    <PARAM_INDENT>
+      <PARAM_ITEM>
+        <PARAM_NAME>sl</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: linear system (<VERB>syslin</VERB> list) assumed continuous-time and anti-stable.</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>Q</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: best stable approximation of <VERB>Sl</VERB> (<VERB>syslin</VERB> list).</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+    </PARAM_INDENT>
+  </PARAM>
+  <DESCRIPTION>
+    <P>
+    Computes the best approximant <VERB>Q</VERB> of the linear system <VERB>Sl</VERB></P>
+    <P>
+    where</P>
+    <P>
+    ||T||</P>
+    <P>
+    is the  H-infinity norm of the Hankel operator associated with <VERB>Sl</VERB>.</P>
+  </DESCRIPTION>
+  <SEE_ALSO>
+    <SEE_ALSO_ITEM>
+      <LINK>syslin</LINK>
+    </SEE_ALSO_ITEM>
+  </SEE_ALSO>
+</MAN>
diff --git a/scilab/modules/cacsd/help/eng/cainv.xml b/scilab/modules/cacsd/help/eng/cainv.xml
new file mode 100644 (file)
index 0000000..a3d7813
--- /dev/null
@@ -0,0 +1,154 @@
+<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
+<!DOCTYPE MAN SYSTEM "../../manrev.dtd">
+<MAN>
+  <LANGUAGE>eng</LANGUAGE>
+  <TITLE>cainv</TITLE>
+  <TYPE>Scilab Function</TYPE>
+  <DATE>April 1993</DATE>
+  <SHORT_DESCRIPTION name="cainv">  Dual of abinv</SHORT_DESCRIPTION>
+  <CALLING_SEQUENCE>
+    <CALLING_SEQUENCE_ITEM>[X,dims,J,Y,k,Z]=cainv(Sl,alfa,beta,flag)  </CALLING_SEQUENCE_ITEM>
+  </CALLING_SEQUENCE>
+  <PARAM>
+    <PARAM_INDENT>
+      <PARAM_ITEM>
+        <PARAM_NAME>Sl</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: <VERB>syslin</VERB> list containing the matrices <VERB>[A,B,C,D]</VERB>.</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>alfa</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: real number or vector (possibly complex, location of closed loop poles)</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>beta</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: real number or vector (possibly complex, location of closed loop poles)</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>flag</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: (optional) character string <VERB>'ge'</VERB> (default) or <VERB>'st'</VERB> or <VERB>'pp'</VERB></SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>X</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: orthogonal matrix of size nx (dim of state space).</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>dims</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: integer row vector <VERB>dims=[nd1,nu1,dimS,dimSg,dimN]</VERB>  (5 entries, nondecreasing order).If <VERB>flag='st'</VERB>, (resp. <VERB>'pp'</VERB>), <VERB>dims</VERB> has 4 (resp. 3) components.</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>J</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: real matrix (output injection)</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>Y</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: orthogonal matrix of size ny (dim of output space).</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>k</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: integer (normal rank of <VERB>Sl</VERB>)</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>Z</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: non-singular linear system (<VERB>syslin</VERB> list)</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+    </PARAM_INDENT>
+  </PARAM>
+  <DESCRIPTION>
+    <P><VERB>cainv</VERB> finds a bases <VERB>(X,Y)</VERB> (of state space and output space resp.)
+    and output injection matrix <VERB>J</VERB> such that the matrices of Sl in 
+    bases (X,Y) are displayed as:</P>
+    <VERBATIM>
+<![CDATA[
+
+                  [A11,*,*,*,*,*]                [*]
+                  [0,A22,*,*,*,*]                [*]
+   X'*(A+J*C)*X = [0,0,A33,*,*,*]   X'*(B+J*D) = [*]
+                  [0,0,0,A44,*,*]                [0]
+                  [0,0,0,0,A55,*]                [0]
+                  [0,0,0,0,0,A66]                [0]
+
+          Y*C*X = [0,0,C13,*,*,*]          Y*D = [*]
+                  [0,0,0,0,0,C26]                [0]
+
+
+   ]]>
+    </VERBATIM>
+    <P>
+    The partition of <VERB>X</VERB> is defined by the vector 
+    <VERB>dims=[nd1,nu1,dimS,dimSg,dimN]</VERB> and the partition of <VERB>Y</VERB>
+    is determined by <VERB>k</VERB>.</P>
+    <P>
+    Eigenvalues of <VERB>A11</VERB> <VERB>(nd1 x nd1)</VERB> are unstable.
+    Eigenvalues of <VERB>A22</VERB> <VERB>(nu1-nd1 x nu1-nd1)</VERB> are stable.</P>
+    <P>
+    The pair <VERB>(A33, C13)</VERB> <VERB>(dimS-nu1 x dimS-nu1, k x dimS-nu1)</VERB> is observable, 
+    and eigenvalues of <VERB>A33</VERB> are set to <VERB>alfa</VERB>.</P>
+    <P>
+    Matrix <VERB>A44</VERB> <VERB>(dimSg-dimS x dimSg-dimS)</VERB> is unstable.
+    Matrix <VERB>A55</VERB> <VERB>(dimN-dimSg,dimN-dimSg)</VERB> is stable</P>
+    <P>
+    The pair <VERB>(A66,C26)</VERB> <VERB>(nx-dimN x nx-dimN)</VERB> is observable, 
+    and eigenvalues of <VERB>A66</VERB> set to <VERB>beta</VERB>.</P>
+    <P>
+    The <VERB>dimS</VERB> first columns of <VERB>X</VERB> span S= smallest (C,A) invariant
+    subspace which contains Im(B), <VERB>dimSg</VERB> first columns of <VERB>X</VERB>
+    span Sg the maximal &quot;complementary detectability subspace&quot; of <VERB>Sl</VERB></P>
+    <P>
+    The <VERB>dimN</VERB> first columns of <VERB>X</VERB> span the maximal
+    &quot;complementary observability subspace&quot; of <VERB>Sl</VERB>. 
+    (<VERB>dimS=0</VERB> if B(ker(D))=0).</P>
+    <P>
+    If <VERB>flag='st'</VERB> is given, a five blocks partition of the matrices is 
+    returned and <VERB>dims</VERB> has four components. If <VERB>flag='pp'</VERB> is 
+    given a four blocks partition is returned (see abinv).</P>
+    <P>
+    This function can be used to calculate an unknown input observer:</P>
+    <VERBATIM>
+<![CDATA[
+// DDEP: dot(x)=A x + Bu + Gd
+//           y= Cx   (observation)
+//           z= Hx    (z=variable to be estimated, d=disturbance)
+//  Find: dot(w) = Fw + Ey + Ru such that
+//          zhat = Mw + Ny
+//           z-Hx goes to zero at infinity
+//  Solution exists iff Ker H contains Sg(A,C,G) inter KerC (assuming detectability)
+//i.e. H is such that:
+// For any W which makes a column compression of [Xp(1:dimSg,:);C]
+// with Xp=X' and [X,dims,J,Y,k,Z]=cainv(syslin('c',A,G,C));
+// [Xp(1:dimSg,:);C]*W = [0 | *] one has
+// H*W = [0 | *]  (with at least as many aero columns as above).
+   ]]>
+    </VERBATIM>
+  </DESCRIPTION>
+  <SEE_ALSO>
+    <SEE_ALSO_ITEM>
+      <LINK>abinv</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>dt_ility</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>ui_observer</LINK>
+    </SEE_ALSO_ITEM>
+  </SEE_ALSO>
+</MAN>
diff --git a/scilab/modules/cacsd/help/eng/calfrq.xml b/scilab/modules/cacsd/help/eng/calfrq.xml
new file mode 100644 (file)
index 0000000..1ff7f37
--- /dev/null
@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
+<!DOCTYPE MAN SYSTEM "../../manrev.dtd">
+<MAN>
+  <LANGUAGE>eng</LANGUAGE>
+  <TITLE>calfrq</TITLE>
+  <TYPE>Scilab Function</TYPE>
+  <DATE>April 1993</DATE>
+  <SHORT_DESCRIPTION name="calfrq"> frequency response discretization</SHORT_DESCRIPTION>
+  <CALLING_SEQUENCE>
+    <CALLING_SEQUENCE_ITEM>[frq,split]=calfrq(h,[fmin,fmax])  </CALLING_SEQUENCE_ITEM>
+  </CALLING_SEQUENCE>
+  <PARAM>
+    <PARAM_INDENT>
+      <PARAM_ITEM>
+        <PARAM_NAME>h</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: SISO linear system (<VERB>syslin</VERB> list)</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>fmin,fmax</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: real scalars (min and max frequencies)</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>frq</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: row vector (discretization of interval)</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>split</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: vector of frq splitting points indexes</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+    </PARAM_INDENT>
+  </PARAM>
+  <DESCRIPTION>
+    <P>
+    frequency response discretization ; <VERB>frq</VERB> is the discretization of  
+    <VERB>[fmin,fmax]</VERB> 
+    such that the peaks in the frequency response are well represented.</P>
+    <P>
+    Default values for <VERB>fmin</VERB> and <VERB>fmax</VERB> are
+    <VERB>1.d-3</VERB>, <VERB>1.d+3</VERB> if <VERB>h</VERB> is continuous-time
+    or <VERB>1.d-3</VERB>, <VERB>1/(2*h('dt'))</VERB> if <VERB>h</VERB> is discrete-time.</P>
+    <P>
+    Singularities are located between <VERB>frq(split(k))</VERB> and <VERB>frq(split(k)+1)</VERB>
+    for <VERB>k&gt;1</VERB>.</P>
+  </DESCRIPTION>
+  <EXAMPLE>
+<![CDATA[
+s=poly(0,'s')
+h=syslin('c',(s^2+2*0.9*10*s+100)/(s^2+2*0.3*10.1*s+102.01))
+h1=h*syslin('c',(s^2+2*0.1*15.1*s+228.01)/(s^2+2*0.9*15*s+225)) 
+[f1,spl]=calfrq(h1,0.01,1000);
+rf=repfreq(h1,f1);
+plot2d(real(rf)',imag(rf)')
+ ]]>
+  </EXAMPLE>
+  <SEE_ALSO>
+    <SEE_ALSO_ITEM>
+      <LINK>bode</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>black</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>nyquist</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>freq</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>repfreq</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>logspace</LINK>
+    </SEE_ALSO_ITEM>
+  </SEE_ALSO>
+</MAN>
diff --git a/scilab/modules/cacsd/help/eng/canon.xml b/scilab/modules/cacsd/help/eng/canon.xml
new file mode 100644 (file)
index 0000000..0f6d59d
--- /dev/null
@@ -0,0 +1,109 @@
+<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
+<!DOCTYPE MAN SYSTEM "../../manrev.dtd">
+<MAN>
+  <LANGUAGE>eng</LANGUAGE>
+  <TITLE>canon</TITLE>
+  <TYPE>Scilab Function</TYPE>
+  <DATE>April 1993</DATE>
+  <SHORT_DESCRIPTION name="canon"> canonical controllable form</SHORT_DESCRIPTION>
+  <CALLING_SEQUENCE>
+    <CALLING_SEQUENCE_ITEM>[Ac,Bc,U,ind]=canon(A,B)    </CALLING_SEQUENCE_ITEM>
+  </CALLING_SEQUENCE>
+  <PARAM>
+    <PARAM_INDENT>
+      <PARAM_ITEM>
+        <PARAM_NAME>Ac,Bc</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: canonical form</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>U</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: current basis (square nonsingular matrix)</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>ind</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: vector of integers, controllability indices</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+    </PARAM_INDENT>
+  </PARAM>
+  <DESCRIPTION>
+    <P>
+    gives the canonical controllable form of the pair <VERB>(A,B)</VERB>.</P>
+    <P>
+      <VERB>Ac=inv(U)*A*U, Bc=inv(U)*B</VERB>
+    </P>
+    <P>
+    The vector <VERB>ind</VERB> is made of the <VERB>epsilon_i</VERB>'s indices
+    of the pencil <VERB>[sI - A ,  B]</VERB> (decreasing order).
+    For example with <VERB>ind=[3,2]</VERB>, <VERB>Ac</VERB> and <VERB>Bc</VERB> are as follows:</P>
+    <VERBATIM>
+<![CDATA[
+      [*,*,*,*,*]           [*]
+      [1,0,0,0,0]           [0]
+Ac=   [0,1,0,0,0]        Bc=[0]
+      [*,*,*,*,*]           [*]
+      [0,0,0,1,0]           [0]
+   ]]>
+    </VERBATIM>
+    <P>
+    If <VERB>(A,B)</VERB> is controllable, by an appropriate choice 
+    of <VERB>F</VERB> the <VERB>*</VERB> entries of <VERB>Ac+Bc*F</VERB> 
+    can be arbitrarily set to desired values (pole placement).</P>
+  </DESCRIPTION>
+  <EXAMPLE>
+<![CDATA[
+A=[1,2,3,4,5;
+   1,0,0,0,0;
+   0,1,0,0,0;
+   6,7,8,9,0;
+   0,0,0,1,0];
+B=[1,2;
+   0,0;
+   0,0;
+   2,1;
+   0,0];
+X=rand(5,5);A=X*A*inv(X);B=X*B;    //Controllable pair 
+[Ac,Bc,U,ind]=canon(A,B);  //Two indices --> ind=[3.2];
+index=1;for k=1:size(ind,'*')-1,index=[index,1+sum(ind(1:k))];end
+Acstar=Ac(index,:);Bcstar=Bc(index,:);
+s=poly(0,'s');
+p1=s^3+2*s^2-5*s+3;p2=(s-5)*(s-3);   
+//p1 and p2 are desired closed-loop polynomials with degrees 3,2
+c1=coeff(p1);c1=c1($-1:-1:1);c2=coeff(p2);c2=c2($-1:-1:1);
+Acstardesired=[-c1,0,0;0,0,0,-c2];  
+//Acstardesired(index,:) is companion matrix with char. pol=p1*p2
+F=Bcstar\(Acstardesired-Acstar);   //Feedbak gain
+Ac+Bc*F         // Companion form 
+spec(A+B*F/U)   // F/U is the gain matrix in original basis.
+ ]]>
+  </EXAMPLE>
+  <SEE_ALSO>
+    <SEE_ALSO_ITEM>
+      <LINK>obsv_mat</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>cont_mat</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>ctr_gram</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>contrss</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>ppol</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>contr</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>stabil</LINK>
+    </SEE_ALSO_ITEM>
+  </SEE_ALSO>
+  <AUTHOR>F.D.  </AUTHOR>
+</MAN>
diff --git a/scilab/modules/cacsd/help/eng/ccontrg.xml b/scilab/modules/cacsd/help/eng/ccontrg.xml
new file mode 100644 (file)
index 0000000..bea81ab
--- /dev/null
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
+<!DOCTYPE MAN SYSTEM "../../manrev.dtd">
+<MAN>
+  <LANGUAGE>eng</LANGUAGE>
+  <TITLE>ccontrg</TITLE>
+  <TYPE>Scilab Function</TYPE>
+  <DATE>April 1993</DATE>
+  <SHORT_DESCRIPTION name="ccontrg"> central H-infinity controller</SHORT_DESCRIPTION>
+  <CALLING_SEQUENCE>
+    <CALLING_SEQUENCE_ITEM>[K]=ccontrg(P,r,gamma);  </CALLING_SEQUENCE_ITEM>
+  </CALLING_SEQUENCE>
+  <PARAM>
+    <PARAM_INDENT>
+      <PARAM_ITEM>
+        <PARAM_NAME>P</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: <VERB>syslin</VERB> list (linear system in state-space representation)</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>r</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: 1x2 row vector, dimension of the 2,2 part of <VERB>P</VERB></SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>gamma</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: real number</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+    </PARAM_INDENT>
+  </PARAM>
+  <DESCRIPTION>
+    <P>
+    returns a realization <VERB>K</VERB> of the central controller for the
+    general standard problem in state-space form.</P>
+    <P>
+    Note that gamma must be &gt; gopt (ouput of <VERB>gamitg</VERB>)</P>
+    <P>
+    P contains the parameters of plant realization <VERB>(A,B,C,D)</VERB>
+    (<VERB>syslin</VERB> list) with</P>
+    <VERBATIM>
+<![CDATA[
+B = ( B1 , B2 ) ,        C= ( C1 ) ,    D = ( D11  D12)
+                            ( C2 )          ( D21  D22)
+   ]]>
+    </VERBATIM>
+    <P><VERB>r(1)</VERB> and <VERB>r(2)</VERB> are the dimensions of <VERB>D22</VERB> (rows x columns)</P>
+  </DESCRIPTION>
+  <SEE_ALSO>
+    <SEE_ALSO_ITEM>
+      <LINK>gamitg</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>h_inf</LINK>
+    </SEE_ALSO_ITEM>
+  </SEE_ALSO>
+  <AUTHOR>P. Gahinet (INRIA);   </AUTHOR>
+</MAN>
diff --git a/scilab/modules/cacsd/help/eng/cls2dls.xml b/scilab/modules/cacsd/help/eng/cls2dls.xml
new file mode 100644 (file)
index 0000000..aa2dbc7
--- /dev/null
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
+<!DOCTYPE MAN SYSTEM "../../manrev.dtd">
+<MAN>
+  <LANGUAGE>eng</LANGUAGE>
+  <TITLE>cls2dls</TITLE>
+  <TYPE>Scilab Function</TYPE>
+  <DATE>April 1993</DATE>
+  <SHORT_DESCRIPTION name="cls2dls"> bilinear transform</SHORT_DESCRIPTION>
+  <CALLING_SEQUENCE>
+    <CALLING_SEQUENCE_ITEM>[sl1]=cls2dls(sl,T [,fp])  </CALLING_SEQUENCE_ITEM>
+  </CALLING_SEQUENCE>
+  <PARAM>
+    <PARAM_INDENT>
+      <PARAM_ITEM>
+        <PARAM_NAME>sl,sl1</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: linear systems (<VERB>syslin</VERB> lists)</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>T</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: real number, the sampling period</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>fp</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: prevarping frequency in hertz</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+    </PARAM_INDENT>
+  </PARAM>
+  <DESCRIPTION>
+    <P>
+    given <VERB>sl=[A,B,C,D]</VERB> (<VERB>syslin</VERB> list),a continuous time system 
+    <VERB>cls2dls</VERB> returns the sampled system obtained by the 
+    bilinear transform <VERB>s=(2/T)*(z-1)/(z+1)</VERB>.</P>
+  </DESCRIPTION>
+  <EXAMPLE>
+<![CDATA[
+s=poly(0,'s');z=poly(0,'z');
+sl=syslin('c',(s+1)/(s^2-5*s+2));  //Continuous-time system in transfer form
+slss=tf2ss(sl);  //Now in state-space form
+sl1=cls2dls(slss,0.2);  //sl1= output of cls2dls
+sl1t=ss2tf(sl1) // Converts in transfer form
+sl2=horner(sl,(2/0.2)*(z-1)/(z+1))   //Compare sl2 and sl1
+ ]]>
+  </EXAMPLE>
+  <SEE_ALSO>
+    <SEE_ALSO_ITEM>
+      <LINK>horner</LINK>
+    </SEE_ALSO_ITEM>
+  </SEE_ALSO>
+</MAN>
diff --git a/scilab/modules/cacsd/help/eng/colinout.xml b/scilab/modules/cacsd/help/eng/colinout.xml
new file mode 100644 (file)
index 0000000..e4e4143
--- /dev/null
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
+<!DOCTYPE MAN SYSTEM "../../manrev.dtd">
+<MAN>
+  <LANGUAGE>eng</LANGUAGE>
+  <TITLE>colinout</TITLE>
+  <TYPE>Scilab Function</TYPE>
+  <DATE>April 1993</DATE>
+  <SHORT_DESCRIPTION name="colinout"> inner-outer factorization</SHORT_DESCRIPTION>
+  <CALLING_SEQUENCE>
+    <CALLING_SEQUENCE_ITEM>[Inn,X,Gbar]=colinout(G)  </CALLING_SEQUENCE_ITEM>
+  </CALLING_SEQUENCE>
+  <PARAM>
+    <PARAM_INDENT>
+      <PARAM_ITEM>
+        <PARAM_NAME>G</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: linear system (<VERB>syslin</VERB> list) <VERB>[A,B,C,D]</VERB></SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>Inn</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>:  inner factor (<VERB>syslin</VERB> list)</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>Gbar</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>:  outer factor (<VERB>syslin</VERB> list)</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>X</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>:  row-compressor of <VERB>G</VERB> (<VERB>syslin</VERB> list)</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+    </PARAM_INDENT>
+  </PARAM>
+  <DESCRIPTION>
+    <P>
+    Inner-outer factorization (and column compression) of (lxp) <VERB>G =[A,B,C,D]</VERB> with l&lt;=p.</P>
+    <P><VERB>G</VERB> is assumed to be fat (<VERB>l&lt;=p</VERB>) without zero on the imaginary axis
+    and with a <VERB>D</VERB> matrix which is full row rank.</P>
+    <P><VERB>G</VERB> must also be stable for having <VERB>Gbar</VERB> stable.</P>
+    <P>
+    Dual of <VERB>rowinout</VERB>.</P>
+  </DESCRIPTION>
+  <SEE_ALSO>
+    <SEE_ALSO_ITEM>
+      <LINK>syslin</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>rowinout</LINK>
+    </SEE_ALSO_ITEM>
+  </SEE_ALSO>
+</MAN>
diff --git a/scilab/modules/cacsd/help/eng/colregul.xml b/scilab/modules/cacsd/help/eng/colregul.xml
new file mode 100644 (file)
index 0000000..dc140ea
--- /dev/null
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
+<!DOCTYPE MAN SYSTEM "../../manrev.dtd">
+<MAN>
+  <LANGUAGE>eng</LANGUAGE>
+  <TITLE>colregul</TITLE>
+  <TYPE>Scilab Function</TYPE>
+  <DATE>April 1993</DATE>
+  <SHORT_DESCRIPTION name="colregul"> removing poles and zeros at infinity</SHORT_DESCRIPTION>
+  <CALLING_SEQUENCE>
+    <CALLING_SEQUENCE_ITEM>[Stmp,Ws]=colregul(Sl,alfa,beta)   </CALLING_SEQUENCE_ITEM>
+  </CALLING_SEQUENCE>
+  <PARAM>
+    <PARAM_INDENT>
+      <PARAM_ITEM>
+        <PARAM_NAME>Sl,Stmp</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: <VERB>syslin</VERB> lists</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>alfa,beta</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: reals (new pole and zero positions)</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+    </PARAM_INDENT>
+  </PARAM>
+  <DESCRIPTION>
+    <P>
+    computes a prefilter <VERB>Ws</VERB> such that <VERB>Stmp=Sl*Ws</VERB> is proper and 
+    with full rank <VERB>D</VERB> matrix.</P>
+    <P>
+    Poles at infinity of <VERB>Sl</VERB> are moved to <VERB>alfa</VERB>;</P>
+    <P>
+    Zeros at infinity of <VERB>Sl</VERB> are moved to <VERB>beta</VERB>;</P>
+    <P><VERB>Sl</VERB> is a assumed to be a left invertible linear system (<VERB>syslin</VERB> list)
+    in state-space representation with possibly a polynomial <VERB>D</VERB> matrix.</P>
+  </DESCRIPTION>
+  <SEE_ALSO>
+    <SEE_ALSO_ITEM>
+      <LINK>invsyslin</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>inv</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>rowregul</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>rowshuff</LINK>
+    </SEE_ALSO_ITEM>
+  </SEE_ALSO>
+  <AUTHOR>F. D. , R. N. ;   </AUTHOR>
+</MAN>
diff --git a/scilab/modules/cacsd/help/eng/cont_frm.xml b/scilab/modules/cacsd/help/eng/cont_frm.xml
new file mode 100644 (file)
index 0000000..5e5715a
--- /dev/null
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
+<!DOCTYPE MAN SYSTEM "../../manrev.dtd">
+<MAN>
+  <LANGUAGE>eng</LANGUAGE>
+  <TITLE>cont_frm</TITLE>
+  <TYPE>Scilab Function</TYPE>
+  <DATE>April 1993</DATE>
+  <SHORT_DESCRIPTION name="cont_frm"> transfer to controllable state-space</SHORT_DESCRIPTION>
+  <CALLING_SEQUENCE>
+    <CALLING_SEQUENCE_ITEM>[sl]=cont_frm(NUM,den)  </CALLING_SEQUENCE_ITEM>
+  </CALLING_SEQUENCE>
+  <PARAM>
+    <PARAM_INDENT>
+      <PARAM_ITEM>
+        <PARAM_NAME>NUM</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: polynomial matrix</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>den</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: polynomial</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>sl</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: <VERB>syslin</VERB> list, <VERB>sl=[A,B,C,D]</VERB>.</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+    </PARAM_INDENT>
+  </PARAM>
+  <DESCRIPTION>
+    <P>
+    controllable state-space form of the transfer <VERB>NUM/den</VERB>.</P>
+  </DESCRIPTION>
+  <EXAMPLE>
+<![CDATA[
+s=poly(0,'s');NUM=[1+s,s];den=s^2-5*s+1;
+sl=cont_frm(NUM,den); 
+slss=ss2tf(sl);       //Compare with NUM/den
+ ]]>
+  </EXAMPLE>
+  <SEE_ALSO>
+    <SEE_ALSO_ITEM>
+      <LINK>tf2ss</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>canon</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>contr</LINK>
+    </SEE_ALSO_ITEM>
+  </SEE_ALSO>
+</MAN>
diff --git a/scilab/modules/cacsd/help/eng/cont_mat.xml b/scilab/modules/cacsd/help/eng/cont_mat.xml
new file mode 100644 (file)
index 0000000..2e5c647
--- /dev/null
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
+<!DOCTYPE MAN SYSTEM "../../manrev.dtd">
+<MAN>
+  <LANGUAGE>eng</LANGUAGE>
+  <TITLE>cont_mat</TITLE>
+  <TYPE>Scilab Function</TYPE>
+  <DATE>April 1993</DATE>
+  <SHORT_DESCRIPTION name="cont_mat"> controllability matrix</SHORT_DESCRIPTION>
+  <CALLING_SEQUENCE>
+    <CALLING_SEQUENCE_ITEM>Cc=cont_mat(A,B)   </CALLING_SEQUENCE_ITEM>
+    <CALLING_SEQUENCE_ITEM>Cc=cont_mat(sl)  </CALLING_SEQUENCE_ITEM>
+  </CALLING_SEQUENCE>
+  <PARAM>
+    <PARAM_INDENT>
+      <PARAM_ITEM>
+        <PARAM_NAME>a,b</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: two real matrices of appropriate dimensions</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>sl</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: linear system (<VERB>syslin</VERB> list)</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+    </PARAM_INDENT>
+  </PARAM>
+  <DESCRIPTION>
+    <P><VERB>cont_mat</VERB> returns the controllability 
+    matrix of the pair <VERB>A,B</VERB> (resp. of the system <VERB>sl=[A,B,C,D]</VERB>).</P>
+    <VERBATIM>
+<![CDATA[
+Cc=[B, AB, A^2 B,..., A^(n-1) B]  
+   ]]>
+    </VERBATIM>
+  </DESCRIPTION>
+  <SEE_ALSO>
+    <SEE_ALSO_ITEM>
+      <LINK>ctr_gram</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>contr</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>canon</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>st_ility</LINK>
+    </SEE_ALSO_ITEM>
+  </SEE_ALSO>
+</MAN>
diff --git a/scilab/modules/cacsd/help/eng/contr.xml b/scilab/modules/cacsd/help/eng/contr.xml
new file mode 100644 (file)
index 0000000..d7fab28
--- /dev/null
@@ -0,0 +1,123 @@
+<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
+<!DOCTYPE MAN SYSTEM "../../manrev.dtd">
+<MAN>
+  <LANGUAGE>eng</LANGUAGE>
+  <TITLE>CONTR</TITLE>
+  <TYPE>Scilab Function</TYPE>
+  <DATE>April 1993</DATE>
+  <SHORT_DESCRIPTION name="contr"> controllability, controllable subspace, staircase</SHORT_DESCRIPTION>
+  <CALLING_SEQUENCE>
+    <CALLING_SEQUENCE_ITEM>n=contr(A,B [,tol])   </CALLING_SEQUENCE_ITEM>
+    <CALLING_SEQUENCE_ITEM>[n,U]=contr(A,B [,tol])   </CALLING_SEQUENCE_ITEM>
+    <CALLING_SEQUENCE_ITEM>[n,U,ind,V,Ac,Bc]=contr(A,B,[,tol])   </CALLING_SEQUENCE_ITEM>
+  </CALLING_SEQUENCE>
+  <PARAM>
+    <PARAM_INDENT>
+      <PARAM_ITEM>
+        <PARAM_NAME>A, B</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: real matrices</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>tol</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: tolerance parameter</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>n</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>:  dimension of controllable subspace.</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>U</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: orthogonal change of basis which puts <VERB>(A,B)</VERB> in canonical form.</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>V</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: orthogonal matrix, change of basis in the control space.</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>Ac</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: block Hessenberg matrix <VERB>Ac=U'*A*V</VERB></SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>Bc</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: is <VERB>U'*B*V</VERB>.</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>ind</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: p integer vector associated with controllability indices  (dimensions of subspaces <VERB>B, B+A*B,...=ind(1),ind(1)+ind(2),...</VERB>)</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+    </PARAM_INDENT>
+  </PARAM>
+  <DESCRIPTION>
+    <P><VERB>[n,[U]]=contr(A,B,[tol])</VERB> gives the controllable form of an <VERB>(A,B)</VERB> 
+    pair.(<VERB>dx/dt = A x + B u</VERB> or <VERB>x(n+1) = A x(n) +b u(n)</VERB>).
+    The <VERB>n</VERB> first columns of <VERB>U</VERB> make a basis for the controllable
+    subspace.</P>
+    <P>
+    If <VERB>V=U(:,1:n)</VERB>, then <VERB>V'*A*V</VERB> and  <VERB>V'*B</VERB> give the controllable part
+    of the <VERB>(A,B)</VERB> pair.</P>
+    <P>
+    The pair <VERB>(Bc, Ac)</VERB> is in staircase controllable form.</P>
+    <VERBATIM>
+<![CDATA[
+                        |B |sI-A      *  . . .  *      *       |
+                        | 1|    11       .      .      .       |
+                        |  |  A    sI-A    .    .      .       |
+                        |  |   21      22    .  .      .       |
+                        |  |        .     .     *      *       |
+     [U'BV|sI - U'AU] = |0 |     0    .     .                  |
+                        |  |            A     sI-A     *       |
+                        |  |             p,p-1    pp           |
+                        |  |                                   |
+                        |0 |         0          0   sI-A       |
+                        |  |                            p+1,p+1|
+   ]]>
+    </VERBATIM>
+  </DESCRIPTION>
+  <SECTION label="Reference">
+    <P>
+    Slicot library (see ab01od in SCIDIR/routines/slicot).</P>
+  </SECTION>
+  <EXAMPLE>
+<![CDATA[
+W=ssrand(2,3,5,list('co',3));  //cont. subspace has dim 3.
+A=W("A");B=W("B");
+[n,U]=contr(A,B);n
+A1=U'*A*U;
+spec(A1(n+1:$,n+1:$))  //uncontrollable modes
+spec(A+B*rand(3,5))    
+ ]]>
+  </EXAMPLE>
+  <SEE_ALSO>
+    <SEE_ALSO_ITEM>
+      <LINK>canon</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>cont_mat</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>unobs</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>stabil</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>st_ility</LINK>
+    </SEE_ALSO_ITEM>
+  </SEE_ALSO>
+</MAN>
diff --git a/scilab/modules/cacsd/help/eng/contrss.xml b/scilab/modules/cacsd/help/eng/contrss.xml
new file mode 100644 (file)
index 0000000..4eb49c7
--- /dev/null
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
+<!DOCTYPE MAN SYSTEM "../../manrev.dtd">
+<MAN>
+  <LANGUAGE>eng</LANGUAGE>
+  <TITLE>contrss</TITLE>
+  <TYPE>Scilab Function</TYPE>
+  <DATE>April 1993</DATE>
+  <SHORT_DESCRIPTION name="contrss"> controllable part</SHORT_DESCRIPTION>
+  <CALLING_SEQUENCE>
+    <CALLING_SEQUENCE_ITEM>[slc]=contrss(sl [,tol])  </CALLING_SEQUENCE_ITEM>
+  </CALLING_SEQUENCE>
+  <PARAM>
+    <PARAM_INDENT>
+      <PARAM_ITEM>
+        <PARAM_NAME>sl</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: linear system (<VERB>syslin</VERB> list)</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>tol</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: is a threshold for controllability (see <VERB>contr</VERB>).  default value is <VERB>sqrt(%eps)</VERB>.</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+    </PARAM_INDENT>
+  </PARAM>
+  <DESCRIPTION>
+    <P>
+    returns the controllable part of the linear 
+    system <VERB>sl = (A,B,C,D)</VERB> in state-space form.</P>
+  </DESCRIPTION>
+  <EXAMPLE>
+<![CDATA[
+A=[1,1;0,2];B=[1;0];C=[1,1];sl=syslin('c',A,B,C);  //Non minimal
+slc=contrss(sl);
+sl1=ss2tf(sl);sl2=ss2tf(slc);      //Compare sl1 and sl2
+ ]]>
+  </EXAMPLE>
+  <SEE_ALSO>
+    <SEE_ALSO_ITEM>
+      <LINK>cont_mat</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>ctr_gram</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>cont_frm</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>contr</LINK>
+    </SEE_ALSO_ITEM>
+  </SEE_ALSO>
+</MAN>
diff --git a/scilab/modules/cacsd/help/eng/copfac.xml b/scilab/modules/cacsd/help/eng/copfac.xml
new file mode 100644 (file)
index 0000000..fcbd919
--- /dev/null
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
+<!DOCTYPE MAN SYSTEM "../../manrev.dtd">
+<MAN>
+  <LANGUAGE>eng</LANGUAGE>
+  <TITLE>copfac</TITLE>
+  <TYPE>Scilab Function</TYPE>
+  <DATE>April 1993</DATE>
+  <SHORT_DESCRIPTION name="copfac"> right coprime factorization</SHORT_DESCRIPTION>
+  <CALLING_SEQUENCE>
+    <CALLING_SEQUENCE_ITEM>[N,M,XT,YT]=copfac(G [,polf,polc,tol])   </CALLING_SEQUENCE_ITEM>
+  </CALLING_SEQUENCE>
+  <PARAM>
+    <PARAM_INDENT>
+      <PARAM_ITEM>
+        <PARAM_NAME>G</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: <VERB>syslin</VERB> list  (continuous-time linear system )</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>polf, polc</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: respectively the poles of <VERB>XT</VERB> and <VERB>YT</VERB> and the poles of <VERB>n</VERB>  and <VERB>M</VERB> (default values =-1).</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>tol</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: real threshold for detecting stable poles (default value <VERB>100*%eps</VERB>)</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>N,M,XT,YT</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: linear systems represented by <VERB>syslin</VERB> lists</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+    </PARAM_INDENT>
+  </PARAM>
+  <DESCRIPTION>
+    <P><VERB>[N,M,XT,YT]=copfac(G,[polf,polc,[tol]])</VERB> returns a right coprime factorization of <VERB>G</VERB>.</P>
+    <P><VERB>G = N*M^-1</VERB> where <VERB>N</VERB> and <VERB>M</VERB> are stable, proper and right coprime.
+    (i.e. <VERB>[N M]</VERB> left-invertible with stability)</P>
+    <P><VERB>XT</VERB> and <VERB>YT</VERB> satisfy:</P>
+    <P><VERB>[XT -YT].[M N]' = eye</VERB> (Bezout identity)</P>
+    <P><VERB>G</VERB> is assumed stabilizable and detectable.</P>
+  </DESCRIPTION>
+  <SEE_ALSO>
+    <SEE_ALSO_ITEM>
+      <LINK>syslin</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>lcf</LINK>
+    </SEE_ALSO_ITEM>
+  </SEE_ALSO>
+</MAN>
diff --git a/scilab/modules/cacsd/help/eng/csim.xml b/scilab/modules/cacsd/help/eng/csim.xml
new file mode 100644 (file)
index 0000000..e60865e
--- /dev/null
@@ -0,0 +1,120 @@
+<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
+<!DOCTYPE MAN SYSTEM "../../manrev.dtd">
+<MAN>
+  <LANGUAGE>eng</LANGUAGE>
+  <TITLE>csim</TITLE>
+  <TYPE>Scilab Function</TYPE>
+  <DATE>April 1993</DATE>
+  <SHORT_DESCRIPTION name="csim"> simulation (time response) of linear system</SHORT_DESCRIPTION>
+  <CALLING_SEQUENCE>
+    <CALLING_SEQUENCE_ITEM>[y [,x]]=csim(u,t,sl,[x0 [,tol]])  </CALLING_SEQUENCE_ITEM>
+  </CALLING_SEQUENCE>
+  <PARAM>
+    <PARAM_INDENT>
+      <PARAM_ITEM>
+        <PARAM_NAME>u</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: function, list or string (control)</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>t</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: real vector specifying times  with, <VERB>t(1)</VERB> is the initial  time (<VERB>x0=x(t(1))</VERB>).</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>sl</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: list (<VERB>syslin</VERB>)</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>y</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: a  matrix such that   <VERB>y=[y(t(i)]</VERB>, i=1,..,n</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>x</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: a  matrix such that   <VERB>x=[x(t(i)]</VERB>, i=1,..,n</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>tol</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: a 2 vector [atol rtol] defining absolute and relative tolerances for ode solver (see ode)</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+    </PARAM_INDENT>
+  </PARAM>
+  <DESCRIPTION>
+    <P>
+    simulation of the controlled linear system <VERB>sl</VERB>.
+    <VERB>sl</VERB> is assumed to be a continuous-time system 
+    represented by a <VERB>syslin</VERB> list.</P>
+    <P><VERB>u</VERB> is the control and <VERB>x0</VERB> the initial state.</P>
+    <P><VERB>y</VERB> is the output and <VERB>x</VERB> the state.</P>
+    <P>
+    The control can be:</P>
+    <P>
+    1. a function : <VERB>[inputs]=u(t)</VERB></P>
+    <P>
+    2. a list : <VERB>list(ut,parameter1,....,parametern)</VERB> such that:
+    <VERB>inputs=ut(t,parameter1,....,parametern)</VERB> (<VERB>ut</VERB> is a function)</P>
+    <P>
+    3. the string <VERB>&quot;impuls&quot;</VERB> for impulse response calculation
+    (here <VERB>sl</VERB> is assumed SISO without direct feed through and <VERB>x0=0</VERB>)</P>
+    <P>
+    4. the string <VERB>&quot;step&quot;</VERB> for step response calculation 
+    (here <VERB>sl</VERB> is assumed SISO without direct feed-through and
+    <VERB>x0=0</VERB>)</P>
+    <P>
+    5. a vector giving the values of u correponding to each t value.</P>
+  </DESCRIPTION>
+  <EXAMPLE>
+<![CDATA[
+s=poly(0,'s');rand('seed',0);w=ssrand(1,1,3);w('A')=w('A')-2*eye();
+t=0:0.05:5;
+//impulse(w) = step (s * w)
+xbasc(0);xset("window",0);xselect();
+plot2d([t',t'],[(csim('step',t,tf2ss(s)*w))',0*t'])
+xbasc(1);xset("window",1);xselect();
+plot2d([t',t'],[(csim('impulse',t,w))',0*t'])
+//step(w) = impulse (s^-1 * w)
+xbasc(3);xset("window",3);xselect();
+plot2d([t',t'],[(csim('step',t,w))',0*t'])
+xbasc(4);xset("window",4);xselect();
+plot2d([t',t'],[(csim('impulse',t,tf2ss(1/s)*w))',0*t'])
+
+//input defined by a time function
+deff('u=input(t)','u=abs(sin(t))')
+xbasc();plot2d([t',t'],[(csim(input,t,w))',0*t'])
+
+ ]]>
+  </EXAMPLE>
+  <SEE_ALSO>
+    <SEE_ALSO_ITEM>
+      <LINK>syslin</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>dsimul</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>flts</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>ltitr</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>rtitr</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>ode</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>impl</LINK>
+    </SEE_ALSO_ITEM>
+  </SEE_ALSO>
+</MAN>
diff --git a/scilab/modules/cacsd/help/eng/ctr_gram.xml b/scilab/modules/cacsd/help/eng/ctr_gram.xml
new file mode 100644 (file)
index 0000000..160d0ee
--- /dev/null
@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
+<!DOCTYPE MAN SYSTEM "../../manrev.dtd">
+<MAN>
+  <LANGUAGE>eng</LANGUAGE>
+  <TITLE>ctr_gram</TITLE>
+  <TYPE>Scilab Function</TYPE>
+  <DATE>April 1993</DATE>
+  <SHORT_DESCRIPTION name="ctr_gram"> controllability gramian</SHORT_DESCRIPTION>
+  <CALLING_SEQUENCE>
+    <CALLING_SEQUENCE_ITEM>[Gc]=ctr_gram(A,B [,dom])  </CALLING_SEQUENCE_ITEM>
+    <CALLING_SEQUENCE_ITEM>[Gc]=ctr_gram(sl)  </CALLING_SEQUENCE_ITEM>
+  </CALLING_SEQUENCE>
+  <PARAM>
+    <PARAM_INDENT>
+      <PARAM_ITEM>
+        <PARAM_NAME>A,B</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: two real matrices of appropriate dimensions</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>dom</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: character string (<VERB>'c'</VERB> (default value) or <VERB>'d'</VERB>)</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>sl</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: linear system, <VERB>syslin</VERB> list</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+    </PARAM_INDENT>
+  </PARAM>
+  <DESCRIPTION>
+    <P>
+    Controllability gramian of <VERB>(A,B)</VERB> or <VERB>sl</VERB> (a <VERB>syslin</VERB> 
+    linear system).</P>
+    <P><VERB>dom</VERB> character string giving the time domain : <VERB>&quot;d&quot;</VERB> for a
+    discrete time system and <VERB>&quot;c&quot;</VERB> for continuous time (default case).</P>
+  </DESCRIPTION>
+  <EXAMPLE>
+<![CDATA[
+A=diag([-1,-2,-3]);B=rand(3,2);
+Wc=ctr_gram(A,B)
+U=rand(3,3);A1=U*A/U;B1=U*B;
+Wc1=ctr_gram(A1,B1)    //Not invariant!
+ ]]>
+  </EXAMPLE>
+  <SEE_ALSO>
+    <SEE_ALSO_ITEM>
+      <LINK>equil1</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>obs_gram</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>contr</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>cont_mat</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>cont_frm</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>contrss</LINK>
+    </SEE_ALSO_ITEM>
+  </SEE_ALSO>
+  <AUTHOR>S. Steer INRIA 1988</AUTHOR>
+</MAN>
diff --git a/scilab/modules/cacsd/help/eng/dbphi.xml b/scilab/modules/cacsd/help/eng/dbphi.xml
new file mode 100644 (file)
index 0000000..cd67471
--- /dev/null
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
+<!DOCTYPE MAN SYSTEM "../../manrev.dtd">
+<MAN>
+  <LANGUAGE>eng</LANGUAGE>
+  <TITLE>dbphi</TITLE>
+  <TYPE>Scilab Function</TYPE>
+  <DATE>April 1997</DATE>
+  <SHORT_DESCRIPTION name="dbphi"> frequency response to phase and magnitude representation</SHORT_DESCRIPTION>
+  <CALLING_SEQUENCE>
+    <CALLING_SEQUENCE_ITEM>[db,phi] =dbphi(repf)  </CALLING_SEQUENCE_ITEM>
+  </CALLING_SEQUENCE>
+  <PARAM>
+    <PARAM_INDENT>
+      <PARAM_ITEM>
+        <PARAM_NAME>db,phi</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: vector of gains (db) and phases (degrees)</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>repf</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: vector of complex frequency response</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+    </PARAM_INDENT>
+  </PARAM>
+  <DESCRIPTION>
+    <P><VERB>db(k)</VERB> is the magnitude of <VERB>repf(k)</VERB> expressed in dB i.e.
+    <VERB>db(k)=20*log(abs(repf(k)))/log(10)</VERB> and <VERB>phi(k)</VERB> is the phase
+    of <VERB>repf(k)</VERB> expressed in degrees.</P>
+  </DESCRIPTION>
+  <SEE_ALSO>
+    <SEE_ALSO_ITEM>
+      <LINK>repfreq</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>bode</LINK>
+    </SEE_ALSO_ITEM>
+  </SEE_ALSO>
+</MAN>
diff --git a/scilab/modules/cacsd/help/eng/dcf.xml b/scilab/modules/cacsd/help/eng/dcf.xml
new file mode 100644 (file)
index 0000000..ed9f15f
--- /dev/null
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
+<!DOCTYPE MAN SYSTEM "../../manrev.dtd">
+<MAN>
+  <LANGUAGE>eng</LANGUAGE>
+  <TITLE>dcf</TITLE>
+  <TYPE>Scilab Function</TYPE>
+  <DATE>April 1993</DATE>
+  <SHORT_DESCRIPTION name="dcf"> double coprime factorization</SHORT_DESCRIPTION>
+  <CALLING_SEQUENCE>
+    <CALLING_SEQUENCE_ITEM>[N,M,X,Y,NT,MT,XT,YT]=dcf(G,[polf,polc,[tol]])   </CALLING_SEQUENCE_ITEM>
+  </CALLING_SEQUENCE>
+  <PARAM>
+    <PARAM_INDENT>
+      <PARAM_ITEM>
+        <PARAM_NAME>G</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: <VERB>syslin</VERB> list (continuous-time linear system)</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>polf, polc</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: respectively the poles of <VERB>XT</VERB> and <VERB>YT</VERB> and the poles of <VERB>N</VERB>  and <VERB>M</VERB> (default values =<VERB>-1</VERB>).</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>tol</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: real threshold for detecting stable poles (default value <VERB>100*%eps</VERB>).</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>N,M,XT,YT,NT,MT,X,Y</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: linear systems represented by <VERB>syslin</VERB> lists</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+    </PARAM_INDENT>
+  </PARAM>
+  <DESCRIPTION>
+    <P>
+    returns eight stable systems <VERB>(N,M,X,Y,NT,MT,XT,YT) </VERB>
+    for the doubly coprime factorization</P>
+    <P><VERB>G</VERB> must be stabilizable and detectable.</P>
+  </DESCRIPTION>
+  <SEE_ALSO>
+    <SEE_ALSO_ITEM>
+      <LINK>copfac</LINK>
+    </SEE_ALSO_ITEM>
+  </SEE_ALSO>
+</MAN>
diff --git a/scilab/modules/cacsd/help/eng/ddp.xml b/scilab/modules/cacsd/help/eng/ddp.xml
new file mode 100644 (file)
index 0000000..d957b7b
--- /dev/null
@@ -0,0 +1,148 @@
+<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
+<!DOCTYPE MAN SYSTEM "../../manrev.dtd">
+<MAN>
+  <LANGUAGE>eng</LANGUAGE>
+  <TITLE>ddp</TITLE>
+  <TYPE>Scilab Function</TYPE>
+  <DATE>April 1993</DATE>
+  <SHORT_DESCRIPTION name="ddp"> disturbance decoupling</SHORT_DESCRIPTION>
+  <CALLING_SEQUENCE>
+    <CALLING_SEQUENCE_ITEM>[Closed,F,G]=ddp(Sys,zeroed,B1,D1)  </CALLING_SEQUENCE_ITEM>
+    <CALLING_SEQUENCE_ITEM>[Closed,F,G]=ddp(Sys,zeroed,B1,D1,flag,alfa,beta)  </CALLING_SEQUENCE_ITEM>
+  </CALLING_SEQUENCE>
+  <PARAM>
+    <PARAM_INDENT>
+      <PARAM_ITEM>
+        <PARAM_NAME>Sys</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: <VERB>syslin</VERB> list containing the matrices <VERB>(A,B2,C,D2)</VERB>.</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>zeroed</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: integer vector, indices of outputs of <VERB>Sys</VERB> which are zeroed.</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>B1</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: real matrix</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>D1</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: real matrix. <VERB>B1</VERB> and <VERB>D1</VERB> have the same number of columns.</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>flag</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: string <VERB>'ge'</VERB> or <VERB>'st'</VERB> (default) or <VERB>'pp'</VERB>.</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>alfa</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: real or complex vector (loc. of closed loop poles)</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>beta</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: real or complex vector (loc. of closed loop poles)</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+    </PARAM_INDENT>
+  </PARAM>
+  <DESCRIPTION>
+    <P>
+    Exact disturbance decoupling (output nulling algorithm).
+    Given a linear system, and a subset of outputs, z, which are to
+    be zeroed, characterize the inputs w of Sys such that the 
+    transfer function from w to z is zero.
+    <VERB>Sys</VERB> is a linear system {A,B2,C,D2} with one input and two outputs 
+    ( i.e.  Sys: u--&gt;(z,y) ), part the following system defined from <VERB>Sys</VERB>
+    and <VERB>B1,D1</VERB>:</P>
+    <VERBATIM>
+<![CDATA[
+  xdot =  A x + B1  w + B2  u
+     z = C1 x + D11 w + D12 u
+     y = C2 x + D21 w + D22 u
+   ]]>
+    </VERBATIM>
+    <P>
+    outputs of Sys are partitioned into (z,y) where z is to be zeroed,
+    i.e. the matrices C and D2 are:</P>
+    <VERBATIM>
+<![CDATA[
+     C=[C1;C2]         D2=[D12;D22]
+     C1=C(zeroed,:)    D12=D2(zeroed,:)
+   ]]>
+    </VERBATIM>
+    <P>
+    The matrix <VERB>D1</VERB> is partitioned similarly as <VERB>D1=[D11;D21]</VERB>
+    with <VERB>D11=D1(zeroed,:)</VERB>.
+    The control is u=Fx+Gw and one  looks for matriced <VERB>F,G</VERB> such that the 
+    closed loop system: w--&gt;z given by</P>
+    <VERBATIM>
+<![CDATA[
+  xdot= (A+B2*F)  x + (B1 + B2*G) w
+    z = (C1+D12F) x + (D11+D12*G) w
+   ]]>
+    </VERBATIM>
+    <P>
+    has zero transfer transfer function.</P>
+    <P><VERB>flag='ge'</VERB> : no stability constraints.
+    <VERB>flag='st'</VERB> : look for stable closed loop system (A+B2*F stable).
+    <VERB>flag='pp'</VERB> : eigenvalues of A+B2*F are assigned to <VERB>alfa</VERB> and 
+    <VERB>beta</VERB>.</P>
+    <P>
+    Closed is a realization of the <VERB>w--&gt;y</VERB> closed loop system</P>
+    <VERBATIM>
+<![CDATA[
+  xdot= (A+B2*F)  x + (B1 + B2*G) w
+    y = (C2+D22*F) x + (D21+D22*G) w
+   ]]>
+    </VERBATIM>
+    <P>
+    Stability (resp. pole placement) requires stabilizability 
+    (resp. controllability) of (A,B2).</P>
+  </DESCRIPTION>
+  <EXAMPLE>
+<![CDATA[
+rand('seed',0);nx=6;nz=3;nu=2;ny=1;
+A=diag(1:6);A(2,2)=-7;A(5,5)=-9;B2=[1,2;0,3;0,4;0,5;0,0;0,0];
+C1=[zeros(nz,nz),eye(nz,nz)];D12=[0,1;0,2;0,3];
+Sys12=syslin('c',A,B2,C1,D12);
+C=[C1;rand(ny,nx)];D2=[D12;rand(ny,size(D12,2))];
+Sys=syslin('c',A,B2,C,D2);
+[A,B2,C1,D12]=abcd(Sys12);  //The matrices of Sys12.
+alfa=-1;beta=-2;flag='ge';
+[X,dims,F,U,k,Z]=abinv(Sys12,alfa,beta,flag);
+clean(X'*(A+B2*F)*X)
+clean(X'*B2*U)
+clean((C1+D12*F)*X)
+clean(D12*U);
+//Calculating an ad-hoc B1,D1
+G1=rand(size(B2,2),3);
+B1=-B2*G1;
+D11=-D12*G1;
+D1=[D11;rand(ny,size(B1,2))];
+
+[Closed,F,G]=ddp(Sys,1:nz,B1,D1,'st',alfa,beta);
+closed=syslin('c',A+B2*F,B1+B2*G,C1+D12*F,D11+D12*G);
+ss2tf(closed)
+ ]]>
+  </EXAMPLE>
+  <SEE_ALSO>
+    <SEE_ALSO_ITEM>
+      <LINK>abinv</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>ui_observer</LINK>
+    </SEE_ALSO_ITEM>
+  </SEE_ALSO>
+  <AUTHOR>F.D.  </AUTHOR>
+</MAN>
diff --git a/scilab/modules/cacsd/help/eng/des2ss.xml b/scilab/modules/cacsd/help/eng/des2ss.xml
new file mode 100644 (file)
index 0000000..e826ede
--- /dev/null
@@ -0,0 +1,76 @@
+<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
+<!DOCTYPE MAN SYSTEM "../../manrev.dtd">
+<MAN>
+  <LANGUAGE>eng</LANGUAGE>
+  <TITLE>des2ss</TITLE>
+  <TYPE>Scilab Function</TYPE>
+  <DATE>April 1993</DATE>
+  <SHORT_DESCRIPTION name="des2ss"> descriptor to state-space</SHORT_DESCRIPTION>
+  <CALLING_SEQUENCE>
+    <CALLING_SEQUENCE_ITEM>[Sl]=des2ss(A,B,C,D,E [,tol])  </CALLING_SEQUENCE_ITEM>
+    <CALLING_SEQUENCE_ITEM>[Sl]=des2ss(Des)  </CALLING_SEQUENCE_ITEM>
+  </CALLING_SEQUENCE>
+  <PARAM>
+    <PARAM_INDENT>
+      <PARAM_ITEM>
+        <PARAM_NAME>A,B,C,D,E</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: real matrices of appropriate dimensions</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>Des</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: list</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>Sl</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: <VERB>syslin</VERB> list</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>tol</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: real parameter (threshold) (default value <VERB>100*%eps</VERB>).</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+    </PARAM_INDENT>
+  </PARAM>
+  <DESCRIPTION>
+    <P>
+    Descriptor to state-space transform.</P>
+    <P><VERB>Sl=des2ss(A,B,C,D,E)</VERB> returns 
+    a linear system <VERB>Sl</VERB> equivalent to the descriptor system 
+    <VERB>(E,A,B,C,D)</VERB>.</P>
+    <P>
+    For index one <VERB>(E,A)</VERB> pencil, explicit formula is used and
+    for higher index pencils <VERB>rowshuff</VERB> is used.</P>
+    <P><VERB>Sl=des2ss(Des)</VERB> with <VERB>Des=list('des',A,B,C,D,E)</VERB> returns
+    a linear system <VERB>Sl</VERB> in state-space form with possibly 
+    a polynomial <VERB>D</VERB> matrix.</P>
+    <P>
+    A generalized Leverrier algorithm is used.</P>
+  </DESCRIPTION>
+  <EXAMPLE>
+<![CDATA[
+s=poly(0,'s');G=[1/(s-1),s;1,2/s^3];
+S1=tf2des(G);S2=tf2des(G,"withD");
+W1=des2ss(S1);W2=des2ss(S2);
+clean(ss2tf(W1))
+clean(ss2tf(W2))
+ ]]>
+  </EXAMPLE>
+  <SEE_ALSO>
+    <SEE_ALSO_ITEM>
+      <LINK>des2tf</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>glever</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>rowshuff</LINK>
+    </SEE_ALSO_ITEM>
+  </SEE_ALSO>
+</MAN>
diff --git a/scilab/modules/cacsd/help/eng/des2tf.xml b/scilab/modules/cacsd/help/eng/des2tf.xml
new file mode 100644 (file)
index 0000000..bea1a19
--- /dev/null
@@ -0,0 +1,92 @@
+<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
+<!DOCTYPE MAN SYSTEM "../../manrev.dtd">
+<MAN>
+  <LANGUAGE>eng</LANGUAGE>
+  <TITLE>des2tf</TITLE>
+  <TYPE>Scilab Function</TYPE>
+  <DATE>April 1993</DATE>
+  <SHORT_DESCRIPTION name="des2tf"> descriptor to transfer function conversion</SHORT_DESCRIPTION>
+  <CALLING_SEQUENCE>
+    <CALLING_SEQUENCE_ITEM>[S]=des2tf(sl)  </CALLING_SEQUENCE_ITEM>
+    <CALLING_SEQUENCE_ITEM>[Bfs,Bis,chis]=des2tf(sl)  </CALLING_SEQUENCE_ITEM>
+  </CALLING_SEQUENCE>
+  <PARAM>
+    <PARAM_INDENT>
+      <PARAM_ITEM>
+        <PARAM_NAME>sl</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: list (linear system in descriptor form)</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>Bfs, Bis</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: two polynomial matrices</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>chis</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: polynomial</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>S</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: rational matrix</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+    </PARAM_INDENT>
+  </PARAM>
+  <DESCRIPTION>
+    <P>
+    Given the linear system in descriptor form i.e.
+    <VERB>Sl=list('des',A,B,C,D,E)</VERB>, <VERB>des2tf</VERB> converts <VERB>sl</VERB> into
+    its transfer function representation:</P>
+    <VERBATIM>
+<![CDATA[
+S=C*(s*E-A)^(-1)*B+D
+   ]]>
+    </VERBATIM>
+    <P>
+    Called with 3 outputs arguments <VERB>des2tf</VERB> returns
+    <VERB>Bfs</VERB> and <VERB>Bis</VERB> two polynomial matrices, and <VERB>chis</VERB>
+    polynomial such that:</P>
+    <VERBATIM>
+<![CDATA[
+S=Bfs/chis - Bis
+   ]]>
+    </VERBATIM>
+    <P><VERB>chis</VERB> is the determinant of <VERB>(s*E-A)</VERB> (up to a xcative constant);</P>
+  </DESCRIPTION>
+  <EXAMPLE>
+<![CDATA[
+s=poly(0,'s');
+G=[1/(s+1),s;1+s^2,3*s^3];
+Descrip=tf2des(G);Tf1=des2tf(Descrip)
+Descrip2=tf2des(G,"withD");Tf2=des2tf(Descrip2)
+[A,B,C,D,E]=Descrip2(2:6);Tf3=C*inv(s*E-A)*B+D
+ ]]>
+  </EXAMPLE>
+  <SEE_ALSO>
+    <SEE_ALSO_ITEM>
+      <LINK>glever</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>pol2des</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>tf2des</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>ss2tf</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>des2ss</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>rowshuff</LINK>
+    </SEE_ALSO_ITEM>
+  </SEE_ALSO>
+  <AUTHOR>F. D.  </AUTHOR>
+</MAN>
diff --git a/scilab/modules/cacsd/help/eng/dhinf.xml b/scilab/modules/cacsd/help/eng/dhinf.xml
new file mode 100644 (file)
index 0000000..ebcf34f
--- /dev/null
@@ -0,0 +1,209 @@
+<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
+<!DOCTYPE MAN SYSTEM "../../manrev.dtd">
+<MAN>
+  <LANGUAGE>eng</LANGUAGE>
+  <TITLE>dhinf</TITLE>
+  <TYPE>Scilab Function</TYPE>
+  <DATE>April 1999</DATE>
+  <SHORT_DESCRIPTION name="dhinf"> <VERB>H_infinity</VERB> design of discrete-time systems</SHORT_DESCRIPTION>
+  <CALLING_SEQUENCE>
+    <CALLING_SEQUENCE_ITEM>[AK,BK,CK,DK,(RCOND)] = dishin(A,B,C,D,ncon,nmeas,gamma)  </CALLING_SEQUENCE_ITEM>
+  </CALLING_SEQUENCE>
+  <PARAM>
+    <PARAM_INDENT>
+      <PARAM_ITEM>
+        <PARAM_NAME>A</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: the n-by-n system state matrix A.</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>B</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: the n-by-m system input matrix B.</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>C</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: the p-by-n system output matrix C.</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>D</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: the p-by-m system matrix D.</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>ncon</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: the number of control inputs. m &gt;= ncon &gt;= 0, p-nmeas &gt;= ncon.</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>nmeas</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: the number of measurements. p &gt;= nmeas &gt;= 0, m-ncon &gt;= nmeas.</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>gamma</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: the parameter gamma used in <VERB>H_infinity</VERB> design. It is assumed that gamma is sufficiently large so that the controller is admissible. gamma &gt;= 0.</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>AK</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: the n-by-n controller state matrix AK.</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>BK</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: the n-by-nmeas controller input matrix BK.</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>CK</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: the ncon-by-n controller output matrix CK.</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>DK</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: the ncon-by-nmeas controller matrix DK.</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>RCOND</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: a vector containing estimates of the reciprocal condition numbers of the matrices which are to be inverted and estimates of the reciprocal condition numbers of the Riccati equations which have to be solved during the computation of the controller. (See the description of the algorithm in [1].)</SP>
+          <PARAM_INDENT>
+            <PARAM_ITEM>
+              <PARAM_NAME>RCOND</PARAM_NAME>
+              <PARAM_DESCRIPTION>
+                <SP>(1) contains the reciprocal condition number of the  matrix R3,</SP>
+              </PARAM_DESCRIPTION>
+            </PARAM_ITEM>
+            <PARAM_ITEM>
+              <PARAM_NAME>RCOND</PARAM_NAME>
+              <PARAM_DESCRIPTION>
+                <SP>(2) contains the reciprocal condition number of the  matrix R1 - R2'*inv(R3)*R2</SP>
+              </PARAM_DESCRIPTION>
+            </PARAM_ITEM>
+            <PARAM_ITEM>
+              <PARAM_NAME>RCOND</PARAM_NAME>
+              <PARAM_DESCRIPTION>
+                <SP>(3) contains the reciprocal condition number of the matrix V21,</SP>
+              </PARAM_DESCRIPTION>
+            </PARAM_ITEM>
+            <PARAM_ITEM>
+              <PARAM_NAME>RCOND</PARAM_NAME>
+              <PARAM_DESCRIPTION>
+                <SP>(4) contains the reciprocal condition number of the   matrix St3,</SP>
+              </PARAM_DESCRIPTION>
+            </PARAM_ITEM>
+            <PARAM_ITEM>
+              <PARAM_NAME>RCOND</PARAM_NAME>
+              <PARAM_DESCRIPTION>
+                <SP>(5) contains the reciprocal condition number of the  matrix V12,</SP>
+              </PARAM_DESCRIPTION>
+            </PARAM_ITEM>
+            <PARAM_ITEM>
+              <PARAM_NAME>RCOND</PARAM_NAME>
+              <PARAM_DESCRIPTION>
+                <SP>(6) contains the reciprocal condition number of the matrix Im2 + DKHAT*D22,</SP>
+              </PARAM_DESCRIPTION>
+            </PARAM_ITEM>
+            <PARAM_ITEM>
+              <PARAM_NAME>RCOND</PARAM_NAME>
+              <PARAM_DESCRIPTION>
+                <SP>(7) contains the reciprocal condition number of the  X-Riccati equation,</SP>
+              </PARAM_DESCRIPTION>
+            </PARAM_ITEM>
+            <PARAM_ITEM>
+              <PARAM_NAME>RCOND</PARAM_NAME>
+              <PARAM_DESCRIPTION>
+                <SP>(8) contains the reciprocal condition number of the  Z-Riccati equation.</SP>
+              </PARAM_DESCRIPTION>
+            </PARAM_ITEM>
+          </PARAM_INDENT>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+    </PARAM_INDENT>
+  </PARAM>
+  <DESCRIPTION>
+    <P><VERB>[AK,BK,CK,DK,(RCOND)] = dhinf(A,B,C,D,ncon,nmeas, gamma)</VERB> 
+     To compute the matrices of an H-infinity (sub)optimal n-state
+  controller</P>
+    <VERBATIM>
+<![CDATA[
+         | AK | BK |
+     K = |----|----|,
+         | CK | DK |
+   ]]>
+    </VERBATIM>
+    <P>
+    for the discrete-time system</P>
+    <VERBATIM>
+<![CDATA[
+         | A  | B1  B2  |   | A | B |
+     P = |----|---------| = |---|---|,
+         | C1 | D11 D12 |   | C | D | 
+         | C2 | D21 D22 |
+   ]]>
+    </VERBATIM>
+    <P>
+    and for a given value of gamma, where B2 has column size of the
+    number of control inputs (ncon) and C2 has row size of the number
+    of measurements (nmeas) being provided to the controller.</P>
+  </DESCRIPTION>
+  <SECTION label="References">
+    <P>
+       [1] P.Hr. Petkov, D.W. Gu and M.M. Konstantinov. Fortran 77 routines        for Hinf and H2 design of linear discrete-time control systems.        Report99-8, Department of Engineering, Leicester University,        April 1999.</P>
+  </SECTION>
+  <EXAMPLE>
+<![CDATA[
+//example from Niconet report SLWN1999-12
+//Hinf
+A=[-0.7  0    0.3  0   -0.5 -0.1
+   -0.6  0.2 -0.4 -0.3  0    0
+   -0.5  0.7 -0.1  0    0   -0.8
+   -0.7  0    0   -0.5 -1    0
+    0    0.3  0.6 -0.9  0.1 -0.4
+    0.5 -0.8  0    0    0.2 -0.9];
+B=[-1 -2 -2  1  0
+    1  0  1 -2  1
+   -3 -4  0  2 -2
+    1 -2  1  0 -1
+    0  1 -2  0  3
+    1  0  3 -1 -2];
+C=[ 1 -1  2 -2  0 -3
+   -3  0  1 -1  1  0
+    0  2  0 -4  0 -2
+    1 -3  0  0  3  1
+    0  1 -2  1  0 -2];
+D=[1 -1 -2  0  0
+   0  1  0  1  0
+   2 -1 -3  0  1
+   0  1  0  1 -1
+   0  0  1  2  1];
+
+ncon=2
+nmeas=2
+gam=111.30;
+[AK,BK,CK,DK] = dhinf(A,B,C,D,ncon,nmeas,gam)
+ ]]>
+  </EXAMPLE>
+  <SEE_ALSO>
+    <SEE_ALSO_ITEM>
+      <LINK>hinf</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>h_inf</LINK>
+    </SEE_ALSO_ITEM>
+  </SEE_ALSO>
+</MAN>
diff --git a/scilab/modules/cacsd/help/eng/dhnorm.xml b/scilab/modules/cacsd/help/eng/dhnorm.xml
new file mode 100644 (file)
index 0000000..9a147fe
--- /dev/null
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
+<!DOCTYPE MAN SYSTEM "../../manrev.dtd">
+<MAN>
+  <LANGUAGE>eng</LANGUAGE>
+  <TITLE>h_norm</TITLE>
+  <TYPE>Scilab Function</TYPE>
+  <DATE>April 1993</DATE>
+  <SHORT_DESCRIPTION name="dhnorm"> discrete H-infinity norm</SHORT_DESCRIPTION>
+  <CALLING_SEQUENCE>
+    <CALLING_SEQUENCE_ITEM>hinfnorm=dhnorm(sl,[tol],[normax])  </CALLING_SEQUENCE_ITEM>
+  </CALLING_SEQUENCE>
+  <PARAM>
+    <PARAM_INDENT>
+      <PARAM_ITEM>
+        <PARAM_NAME>sl</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: the state space system (<VERB>syslin</VERB> list) (discrete-time)</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>tol</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: tolerance in bisection step, default value <VERB>0.01</VERB></SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>normax</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: upper bound for the norm , default value is <VERB>1000</VERB></SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>hinfnorm</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: the discrete infinity norm of <VERB>Sl</VERB></SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+    </PARAM_INDENT>
+  </PARAM>
+  <DESCRIPTION>
+    <P>
+    produces the discrete-time infinity norm  of a state-space system 
+    (the maximum over all frequencies on the unit circle of the maximum singular value).</P>
+  </DESCRIPTION>
+  <SEE_ALSO>
+    <SEE_ALSO_ITEM>
+      <LINK>h_norm</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>linfn</LINK>
+    </SEE_ALSO_ITEM>
+  </SEE_ALSO>
+</MAN>
diff --git a/scilab/modules/cacsd/help/eng/dscr.xml b/scilab/modules/cacsd/help/eng/dscr.xml
new file mode 100644 (file)
index 0000000..8dee574
--- /dev/null
@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
+<!DOCTYPE MAN SYSTEM "../../manrev.dtd">
+<MAN>
+  <LANGUAGE>eng</LANGUAGE>
+  <TITLE>dscr</TITLE>
+  <TYPE>Scilab Function</TYPE>
+  <DATE>April 1993</DATE>
+  <SHORT_DESCRIPTION name="dscr">  discretization of linear system</SHORT_DESCRIPTION>
+  <CALLING_SEQUENCE>
+    <CALLING_SEQUENCE_ITEM>[sld [,r]]=dscr(sl,dt [,m])  </CALLING_SEQUENCE_ITEM>
+  </CALLING_SEQUENCE>
+  <PARAM>
+    <PARAM_INDENT>
+      <PARAM_ITEM>
+        <PARAM_NAME>sl</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: <VERB>syslin</VERB> list containing <VERB>[A,B,C,D]</VERB>.</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>dt</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: real number, sampling period</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>m</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: covariance of the input noise (continuous time)(default value=0)</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>r</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: covariance of the output noise (discrete time) given if <VERB>m</VERB> is  given as input</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>sld</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: sampled (discrete-time) linear system, <VERB>syslin</VERB> list</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+    </PARAM_INDENT>
+  </PARAM>
+  <DESCRIPTION>
+    <P>
+    Discretization of linear system. <VERB>sl</VERB> is a continuous-time system:</P>
+    <P><VERB>dx/dt=A*x+B*u (+ noise)</VERB>.</P>
+    <P><VERB>sld</VERB> is the discrete-time system obtained by 
+    sampling <VERB>sl</VERB> with the sampling period <VERB>dt</VERB>.</P>
+  </DESCRIPTION>
+  <EXAMPLE>
+<![CDATA[
+s=poly(0,'s');
+Sys=syslin('c',[1,1/(s+1);2*s/(s^2+2),1/s])
+ss2tf(dscr(tf2ss(Sys),0.1))
+ ]]>
+  </EXAMPLE>
+  <SEE_ALSO>
+    <SEE_ALSO_ITEM>
+      <LINK>syslin</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>flts</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>dsimul</LINK>
+    </SEE_ALSO_ITEM>
+  </SEE_ALSO>
+</MAN>
diff --git a/scilab/modules/cacsd/help/eng/dsimul.xml b/scilab/modules/cacsd/help/eng/dsimul.xml
new file mode 100644 (file)
index 0000000..d932a2a
--- /dev/null
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
+<!DOCTYPE MAN SYSTEM "../../manrev.dtd">
+<MAN>
+  <LANGUAGE>eng</LANGUAGE>
+  <TITLE>dscr</TITLE>
+  <TYPE>Scilab Function</TYPE>
+  <DATE>April 1993</DATE>
+  <SHORT_DESCRIPTION name="dsimul">  state space discrete time simulation</SHORT_DESCRIPTION>
+  <CALLING_SEQUENCE>
+    <CALLING_SEQUENCE_ITEM>y=dsimul(sl,u)  </CALLING_SEQUENCE_ITEM>
+  </CALLING_SEQUENCE>
+  <PARAM>
+    <PARAM_INDENT>
+      <PARAM_ITEM>
+        <PARAM_NAME>sl</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: <VERB>syslin</VERB> list describing a discrete time linear system</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>u</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: real matrix of appropriate dimension</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>y</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: output of <VERB>sl</VERB></SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+    </PARAM_INDENT>
+  </PARAM>
+  <DESCRIPTION>
+    <P>
+    Utility function. 
+    If <VERB>[A,B,C,D]=abcd(sl)</VERB> and <VERB>x0=sl('X0')</VERB>, <VERB>dsimul</VERB> returns <VERB>y=C*ltitr(A,B,u,x0)+D*u</VERB> i.e.
+    the time response of <VERB>sl</VERB> to the input <VERB>u</VERB>.
+    <VERB>sl</VERB> is assumed to be in state space form (<VERB>syslin</VERB> list).</P>
+  </DESCRIPTION>
+  <EXAMPLE>
+<![CDATA[
+z=poly(0,'z');
+h=(1-2*z)/(z^2-0.2*z+1);
+sl=tf2ss(h);
+u=zeros(1,20);u(1)=1;
+x1=dsimul(sl,u)   //Impulse response
+u=ones(1,20);
+x2=dsimul(sl,u);  //Step response
+ ]]>
+  </EXAMPLE>
+  <SEE_ALSO>
+    <SEE_ALSO_ITEM>
+      <LINK>syslin</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>flts</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>ltitr</LINK>
+    </SEE_ALSO_ITEM>
+  </SEE_ALSO>
+</MAN>
diff --git a/scilab/modules/cacsd/help/eng/dt_ility.xml b/scilab/modules/cacsd/help/eng/dt_ility.xml
new file mode 100644 (file)
index 0000000..cc63c8e
--- /dev/null
@@ -0,0 +1,100 @@
+<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
+<!DOCTYPE MAN SYSTEM "../../manrev.dtd">
+<MAN>
+  <LANGUAGE>eng</LANGUAGE>
+  <TITLE>dt_ility</TITLE>
+  <TYPE>Scilab Function</TYPE>
+  <DATE>April 1993</DATE>
+  <SHORT_DESCRIPTION name="dt_ility"> detectability test</SHORT_DESCRIPTION>
+  <CALLING_SEQUENCE>
+    <CALLING_SEQUENCE_ITEM>[k, [n [,U [,Sld ] ] ]]=dt_ility(Sl [,tol])  </CALLING_SEQUENCE_ITEM>
+  </CALLING_SEQUENCE>
+  <PARAM>
+    <PARAM_INDENT>
+      <PARAM_ITEM>
+        <PARAM_NAME>Sl</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: linear system (<VERB>syslin</VERB> list)</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>n</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: dimension of unobservable subspace</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>k</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: dimension of unstable, unobservable subspace (<VERB> k&lt;=n</VERB>).</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>U</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: orthogonal matrix</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>Sld</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: linear system (<VERB>syslin</VERB> list)</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>tol</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: threshold for controllability test.</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+    </PARAM_INDENT>
+  </PARAM>
+  <DESCRIPTION>
+    <P>
+    Detectability test for <VERB>sl</VERB>, a linear system in state-space
+    representation. 
+    <VERB>U</VERB> is a basis whose <VERB>k</VERB> first columns span the
+    unstable, unobservable subspace of <VERB>Sl</VERB> (intersection
+    of unobservable subspace of <VERB>(A,C)</VERB> and unstable subspace
+    of <VERB>A</VERB>). Detectability means <VERB>k=0</VERB>.</P>
+    <P><VERB>Sld = (U'*A*U,U'*B,C*U,D)</VERB> displays the &quot;detectable part&quot;
+    of <VERB>Sl=(A,B,C,D)</VERB>, i.e.</P>
+    <VERBATIM>
+<![CDATA[
+         [*,*,*]
+U'*A*U = [0,*,*]
+         [0,0,*]
+C*U = [0,0,*]
+   ]]>
+    </VERBATIM>
+    <P>
+    with <VERB>(A33,C3)</VERB> observable (dimension <VERB>nx-n</VERB>), <VERB>A22</VERB> stable 
+    (dimension <VERB>n-k</VERB>) and <VERB>A11</VERB> unstable (dimension <VERB>k</VERB>).</P>
+  </DESCRIPTION>
+  <EXAMPLE>
+<![CDATA[
+A=[2,1,1;0,-2,1;0,0,3];
+C=[0,0,1];
+X=rand(3,3);A=inv(X)*A*X;C=C*X;
+W=syslin('c',A,[],C);
+[k,n,U,W1]=dt_ility(W);
+W1("A")
+W1("C")
+ ]]>
+  </EXAMPLE>
+  <SEE_ALSO>
+    <SEE_ALSO_ITEM>
+      <LINK>contr</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>st_ility</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>unobs</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>stabil</LINK>
+    </SEE_ALSO_ITEM>
+  </SEE_ALSO>
+</MAN>
diff --git a/scilab/modules/cacsd/help/eng/dtsi.xml b/scilab/modules/cacsd/help/eng/dtsi.xml
new file mode 100644 (file)
index 0000000..dde54cd
--- /dev/null
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
+<!DOCTYPE MAN SYSTEM "../../manrev.dtd">
+<MAN>
+  <LANGUAGE>eng</LANGUAGE>
+  <TITLE>dtsi</TITLE>
+  <TYPE>Scilab Function</TYPE>
+  <DATE>April 1993</DATE>
+  <SHORT_DESCRIPTION name="dtsi"> stable anti-stable decomposition</SHORT_DESCRIPTION>
+  <CALLING_SEQUENCE>
+    <CALLING_SEQUENCE_ITEM>[Ga,Gs,Gi]=dtsi(G,[tol])   </CALLING_SEQUENCE_ITEM>
+  </CALLING_SEQUENCE>
+  <PARAM>
+    <PARAM_INDENT>
+      <PARAM_ITEM>
+        <PARAM_NAME>G</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: linear system (<VERB>syslin</VERB> list)</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>Ga</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: linear system (<VERB>syslin</VERB> list) antistable and strictly proper</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>Gs</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: linear system (<VERB>syslin</VERB> list) stable and strictly proper</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>Gi</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: real matrix (or polynomial matrix for improper systems)</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>tol</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: optional parameter for detecting stables poles. Default value: <VERB>100*%eps</VERB></SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+    </PARAM_INDENT>
+  </PARAM>
+  <DESCRIPTION>
+    <P>
+    returns the stable-antistable decomposition of <VERB>G</VERB>:</P>
+    <P><VERB>G = Ga + Gs + Gi</VERB>,  <VERB>(Gi = G(oo))</VERB></P>
+    <P><VERB>G</VERB> can be given in state-space form or in transfer form.</P>
+  </DESCRIPTION>
+  <SEE_ALSO>
+    <SEE_ALSO_ITEM>
+      <LINK>syslin</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>pbig</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>psmall</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>pfss</LINK>
+    </SEE_ALSO_ITEM>
+  </SEE_ALSO>
+</MAN>
diff --git a/scilab/modules/cacsd/help/eng/equil.xml b/scilab/modules/cacsd/help/eng/equil.xml
new file mode 100644 (file)
index 0000000..9c0d296
--- /dev/null
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
+<!DOCTYPE MAN SYSTEM "../../manrev.dtd">
+<MAN>
+  <LANGUAGE>eng</LANGUAGE>
+  <TITLE>equil</TITLE>
+  <TYPE>Scilab Function</TYPE>
+  <DATE>April 1993</DATE>
+  <SHORT_DESCRIPTION name="equil"> balancing of pair of symmetric matrices</SHORT_DESCRIPTION>
+  <CALLING_SEQUENCE>
+    <CALLING_SEQUENCE_ITEM>T=equil(P,Q)  </CALLING_SEQUENCE_ITEM>
+  </CALLING_SEQUENCE>
+  <PARAM>
+    <PARAM_INDENT>
+      <PARAM_ITEM>
+        <PARAM_NAME>P, Q</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: two positive definite symmetric matrices</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>T</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: nonsingular matrix</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+    </PARAM_INDENT>
+  </PARAM>
+  <DESCRIPTION>
+    <P><VERB>equil</VERB> returns <VERB>t</VERB> such that:</P>
+    <P><VERB>T*P*T'</VERB> and  <VERB>inv(T)'*Q*inv(T)</VERB>  are both equal to a same 
+    diagonal and positive matrix.</P>
+  </DESCRIPTION>
+  <EXAMPLE>
+<![CDATA[
+P=rand(4,4);P=P*P';
+Q=rand(4,4);Q=Q*Q';
+T=equil(P,Q)
+clean(T*P*T')
+clean(inv(T)'*Q*inv(T))
+ ]]>
+  </EXAMPLE>
+  <SEE_ALSO>
+    <SEE_ALSO_ITEM>
+      <LINK>equil1</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>balanc</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>ctr_gram</LINK>
+    </SEE_ALSO_ITEM>
+  </SEE_ALSO>
+</MAN>
diff --git a/scilab/modules/cacsd/help/eng/equil1.xml b/scilab/modules/cacsd/help/eng/equil1.xml
new file mode 100644 (file)
index 0000000..1909f88
--- /dev/null
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
+<!DOCTYPE MAN SYSTEM "../../manrev.dtd">
+<MAN>
+  <LANGUAGE>eng</LANGUAGE>
+  <TITLE>equil1</TITLE>
+  <TYPE>Scilab Function</TYPE>
+  <DATE>April 1993</DATE>
+  <SHORT_DESCRIPTION name="equil1"> balancing (nonnegative) pair of matrices</SHORT_DESCRIPTION>
+  <CALLING_SEQUENCE>
+    <CALLING_SEQUENCE_ITEM>[T [,siz]]=equil1(P,Q [,tol])  </CALLING_SEQUENCE_ITEM>
+  </CALLING_SEQUENCE>
+  <PARAM>
+    <PARAM_INDENT>
+      <PARAM_ITEM>
+        <PARAM_NAME>P, Q</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: two non-negative symmetric matrices</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>T</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: nonsingular matrix</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>siz</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: vector of three integers</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>tol</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: threshold</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+    </PARAM_INDENT>
+  </PARAM>
+  <DESCRIPTION>
+    <P><VERB>equil1</VERB> computes <VERB>t</VERB> such that:</P>
+    <P><VERB>P1=T*P*T'</VERB>  and <VERB>Q1=inv(T)'*Q*inv(T)</VERB> are as follows:</P>
+    <P><VERB>P1 = diag(S1,S2,0,0)</VERB>  and <VERB>Q1 = diag(S1,0,S3,0)</VERB> with
+    <VERB>S1,S2,S3</VERB> positive and diagonal matrices with respective 
+    dimensions <VERB>siz=[n1,n2,n3]</VERB></P>
+    <P><VERB>tol</VERB> is a threshold for rank determination in SVD</P>
+  </DESCRIPTION>
+  <EXAMPLE>
+<![CDATA[
+S1=rand(2,2);S1=S1*S1';
+S2=rand(2,2);S2=S2*S2';
+S3=rand(2,2);S3=S3*S3';
+P=sysdiag(S1,S2,zeros(4,4));
+Q=sysdiag(S1,zeros(2,2),S3,zeros(2,2));
+X=rand(8,8);
+P=X*P*X';Q=inv(X)'*Q*inv(X);
+[T,siz]=equil1(P,Q);
+P1=clean(T*P*T')
+Q1=clean(inv(T)'*Q*inv(T))
+ ]]>
+  </EXAMPLE>
+  <SEE_ALSO>
+    <SEE_ALSO_ITEM>
+      <LINK>balreal</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>minreal</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>equil</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>hankelsv</LINK>
+    </SEE_ALSO_ITEM>
+  </SEE_ALSO>
+  <AUTHOR>S. Steer 1987</AUTHOR>
+</MAN>
diff --git a/scilab/modules/cacsd/help/eng/feedback.xml b/scilab/modules/cacsd/help/eng/feedback.xml
new file mode 100644 (file)
index 0000000..3053ef1
--- /dev/null
@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
+<!DOCTYPE MAN SYSTEM "../../manrev.dtd">
+<MAN>
+  <LANGUAGE>eng</LANGUAGE>
+  <TITLE>abcd</TITLE>
+  <TYPE>Scilab Function</TYPE>
+  <DATE>April 1993</DATE>
+  <SHORT_DESCRIPTION name="feedback"> feedback operation</SHORT_DESCRIPTION>
+  <CALLING_SEQUENCE>
+    <CALLING_SEQUENCE_ITEM>Sl=Sl1/.Sl2</CALLING_SEQUENCE_ITEM>
+  </CALLING_SEQUENCE>
+  <PARAM>
+    <PARAM_INDENT>
+      <PARAM_ITEM>
+        <PARAM_NAME>Sl1,Sl2</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: linear systems (<VERB>syslin</VERB> list) in state-space or transfer form, or ordinary gain matrices.</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>Sl</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: linear system (<VERB>syslin</VERB> list) in state-space or transfer form</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+    </PARAM_INDENT>
+  </PARAM>
+  <DESCRIPTION>
+    <P>
+    The feedback operation is denoted by <VERB> /. </VERB> (slashdot).
+    This command returns <VERB>Sl=Sl1*(I+Sl2*Sl1)^-1</VERB>, i.e the (negative) 
+    feedback of <VERB>Sl1</VERB> and <VERB>Sl2</VERB>. <VERB>Sl</VERB> is the transfer
+    <VERB> v -&gt; y</VERB> for <VERB> y = Sl1 u</VERB>, <VERB>u = v - Sl2 y</VERB>.</P>
+    <P>
+    The result is the same as <VERB>Sl=LFT([0,I;I,-Sl2],Sl1)</VERB>.</P>
+    <P>
+    Caution: do not use with decimal point (e.g. <VERB>1/.1</VERB> is ambiguous!)</P>
+  </DESCRIPTION>
+  <EXAMPLE>
+<![CDATA[
+S1=ssrand(2,2,3);S2=ssrand(2,2,2);
+W=S1/.S2;
+ss2tf(S1/.S2)
+//Same operation by LFT:
+ss2tf(lft([zeros(2,2),eye(2,2);eye(2,2),-S2],S1))
+//Other approach: with constant feedback
+BigS=sysdiag(S1,S2); F=[zeros(2,2),eye(2,2);-eye(2,2),zeros(2,2)];
+Bigclosed=BigS/.F;
+W1=Bigclosed(1:2,1:2);   //W1=W (in state-space).
+ss2tf(W1)
+//Inverting
+ss2tf(S1*inv(eye()+S2*S1))
+ ]]>
+  </EXAMPLE>
+  <SEE_ALSO>
+    <SEE_ALSO_ITEM>
+      <LINK>lft</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>sysdiag</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>augment</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>obscont</LINK>
+    </SEE_ALSO_ITEM>
+  </SEE_ALSO>
+</MAN>
diff --git a/scilab/modules/cacsd/help/eng/flts.xml b/scilab/modules/cacsd/help/eng/flts.xml
new file mode 100644 (file)
index 0000000..089db23
--- /dev/null
@@ -0,0 +1,145 @@
+<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
+<!DOCTYPE MAN SYSTEM "../../manrev.dtd">
+<MAN>
+  <LANGUAGE>eng</LANGUAGE>
+  <TITLE>flts</TITLE>
+  <TYPE>Scilab Function</TYPE>
+  <DATE>April 1993</DATE>
+  <SHORT_DESCRIPTION name="flts"> time response (discrete time, sampled system)  </SHORT_DESCRIPTION>
+  <CALLING_SEQUENCE>
+    <CALLING_SEQUENCE_ITEM>[y [,x]]=flts(u,sl [,x0])  </CALLING_SEQUENCE_ITEM>
+    <CALLING_SEQUENCE_ITEM>[y]=flts(u,sl [,past])    </CALLING_SEQUENCE_ITEM>
+  </CALLING_SEQUENCE>
+  <PARAM>
+    <PARAM_INDENT>
+      <PARAM_ITEM>
+        <PARAM_NAME>u</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: matrix (input vector)</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>sl</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: list (linear system <VERB>syslin</VERB>)</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>x0</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: vector (initial state ; default value=<VERB>0</VERB>)</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>past</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: matrix (of the past ; default value=<VERB>0</VERB>)</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>x,y</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: matrices (state and output)</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+    </PARAM_INDENT>
+  </PARAM>
+  <DESCRIPTION>
+    <P>
+    State-space form:</P>
+    <P><VERB>sl</VERB> is a <VERB>syslin</VERB> list containing the matrices of the 
+    following linear system</P>
+    <P><VERB>sl=syslin('d',A,B,C,D)</VERB> (see <VERB>syslin</VERB>):</P>
+    <VERBATIM>
+<![CDATA[
+  x[t+1] = A x[t] + B u[t]
+  y[t] = C x[t] + D u[t]
+   ]]>
+    </VERBATIM>
+    <P>
+    or, more generally, if <VERB>D</VERB> is a polynomial matrix (<VERB>p = degree(D(z))</VERB>) :</P>
+    <P>
+    Transfer form:</P>
+    <P><VERB> y=flts(u,sl[,past])</VERB>. Here <VERB>sl</VERB> is a linear system in 
+    transfer matrix  representation i.e</P>
+    <P><VERB>sl=syslin('d',transfer_matrix)</VERB> (see <VERB>syslin</VERB>).</P>
+    <P>
+    is the matrix of past values of u and y.</P>
+    <P>
+    nd is the maximum of degrees of lcm's of each row of the denominator
+    matrix of sl.</P>
+    <VERBATIM>
+<![CDATA[
+u=[u0 u1 ... un]  (input)
+y=[y0 y1 ... yn]  (output)
+   ]]>
+    </VERBATIM>
+    <P>
+    p is the difference between maximum degree of numerator and 
+    maximum degree of denominator</P>
+  </DESCRIPTION>
+  <EXAMPLE>
+<![CDATA[
+sl=syslin('d',1,1,1);u=1:10;
+y=flts(u,sl); 
+plot2d2("onn",(1:size(u,'c'))',y')
+[y1,x1]=flts(u(1:5),sl);y2=flts(u(6:10),sl,x1);
+y-[y1,y2]
+
+//With polynomial D:
+z=poly(0,'z');
+D=1+z+z^2; p =degree(D);
+sl=syslin('d',1,1,1,D);
+y=flts(u,sl);[y1,x1]=flts(u(1:5),sl);
+y2=flts(u(5-p+1:10),sl,x1);  // (update)
+y-[y1,y2]
+
+//Delay (transfer form): flts(u,1/z)
+// Usual responses
+z=poly(0,'z');
+h=(1-2*z)/(z^2+0.3*z+1)
+u=zeros(1,20);u(1)=1;
+imprep=flts(u,tf2ss(h));   //Impulse response
+plot2d2("onn",(1:size(u,'c'))',imprep')
+u=ones(1,20);
+stprep=flts(u,tf2ss(h));   //Step response
+plot2d2("onn",(1:size(u,'c'))',stprep')
+//
+// Other examples
+A=[1 2 3;0 2 4;0 0 1];B=[1 0;0 0;0 1];C=eye(3,3);Sys=syslin('d',A,B,C);
+H=ss2tf(Sys); u=[1;-1]*(1:10);
+//
+yh=flts(u,H); ys=flts(u,Sys);
+norm(yh-ys,1)    
+//hot restart
+[ys1,x]=flts(u(:,1:4),Sys);ys2=flts(u(:,5:10),Sys,x);
+norm([ys1,ys2]-ys,1)
+//
+yh1=flts(u(:,1:4),H);yh2=flts(u(:,5:10),H,[u(:,2:4);yh(:,2:4)]);
+norm([yh1,yh2]-yh,1)
+//with D<>0
+D=[-3 8;4 -0.5;2.2 0.9];
+Sys=syslin('d',A,B,C,D);
+H=ss2tf(Sys); u=[1;-1]*(1:10);
+rh=flts(u,H); rs=flts(u,Sys);
+norm(rh-rs,1)
+//hot restart
+[ys1,x]=flts(u(:,1:4),Sys);ys2=flts(u(:,5:10),Sys,x);
+norm([ys1,ys2]-rs,1)
+//With H:
+yh1=flts(u(:,1:4),H);yh2=flts(u(:,5:10),H,[u(:,2:4); yh1(:,2:4)]);
+norm([yh1,yh2]-rh)
+ ]]>
+  </EXAMPLE>
+  <SEE_ALSO>
+    <SEE_ALSO_ITEM>
+      <LINK>ltitr</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>dsimul</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>rtitr</LINK>
+    </SEE_ALSO_ITEM>
+  </SEE_ALSO>
+</MAN>
diff --git a/scilab/modules/cacsd/help/eng/fourplan.xml b/scilab/modules/cacsd/help/eng/fourplan.xml
new file mode 100644 (file)
index 0000000..13ed1c0
--- /dev/null
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
+<!DOCTYPE MAN SYSTEM "../../manrev.dtd">
+<MAN>
+  <LANGUAGE>eng</LANGUAGE>
+  <TITLE>fourplan</TITLE>
+  <TYPE>Scilab Function</TYPE>
+  <DATE>April 1993</DATE>
+  <SHORT_DESCRIPTION name="fourplan"> augmented plant to four plants</SHORT_DESCRIPTION>
+  <CALLING_SEQUENCE>
+    <CALLING_SEQUENCE_ITEM>[P11,P12,P21,P22]=fourplan(P,r)  </CALLING_SEQUENCE_ITEM>
+  </CALLING_SEQUENCE>
+  <PARAM>
+    <PARAM_INDENT>
+      <PARAM_ITEM>
+        <PARAM_NAME>P</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: <VERB>syslin</VERB> list (linear system)</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>r</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: 1x2 row vector, dimension of <VERB>P22</VERB></SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>P11,P12,P21,P22</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: <VERB>syslin</VERB> lists.</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+    </PARAM_INDENT>
+  </PARAM>
+  <DESCRIPTION>
+    <P>
+    Utility function.</P>
+    <P><VERB>P</VERB> being partitioned as follows:</P>
+    <VERBATIM>
+<![CDATA[
+P=[ P11 P12;
+    P21 P22]  
+   ]]>
+    </VERBATIM>
+    <P>
+    with <VERB>size(P22)=r</VERB> this function returns the four linear systems <VERB>P11,P12,P21,P22</VERB>.</P>
+  </DESCRIPTION>
+  <SEE_ALSO>
+    <SEE_ALSO_ITEM>
+      <LINK>lqg</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>lqg2stan</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>lqr</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>lqe</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>lft</LINK>
+    </SEE_ALSO_ITEM>
+  </SEE_ALSO>
+</MAN>
diff --git a/scilab/modules/cacsd/help/eng/frep2tf.xml b/scilab/modules/cacsd/help/eng/frep2tf.xml
new file mode 100644 (file)
index 0000000..a22cbf4
--- /dev/null
@@ -0,0 +1,122 @@
+<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
+<!DOCTYPE MAN SYSTEM "../../manrev.dtd">
+<MAN>
+  <LANGUAGE>eng</LANGUAGE>
+  <TITLE>frep2tf</TITLE>
+  <TYPE>Scilab Function</TYPE>
+  <DATE>April 1993</DATE>
+  <SHORT_DESCRIPTION name="frep2tf"> transfer function realization from frequency response</SHORT_DESCRIPTION>
+  <CALLING_SEQUENCE>
+    <CALLING_SEQUENCE_ITEM>[h [,err]]=frep2tf(frq,repf,dg [,dom,tols,weight])   </CALLING_SEQUENCE_ITEM>
+  </CALLING_SEQUENCE>
+  <PARAM>
+    <PARAM_INDENT>
+      <PARAM_ITEM>
+        <PARAM_NAME>frq</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: vector of frequencies in Hz.</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>repf</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: vector of frequency response</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>dg</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: degree of linear system</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>dom</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: time domain (<VERB>'c'</VERB> or <VERB>'d'</VERB> or <VERB>dt</VERB>)</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>tols</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: a vector of size 3 giving the relative and absolute tolerance  and the maximum number of iterations (default values are <VERB>rtol=1.e-2; atol=1.e-4, N=10</VERB>).</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>weight</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: vector of weights on frequencies</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>h</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: SISO transfer function</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>err</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: error (for example if <VERB>dom='c'</VERB> <VERB>sum(abs(h(2i*pi*frq) - rep)^2)/size(frq,*)</VERB>)</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+    </PARAM_INDENT>
+  </PARAM>
+  <DESCRIPTION>
+    <P>
+    Frequency response to  transfer function conversion. The order of <VERB>h</VERB>
+    is a priori given in <VERB>dg</VERB> which must be provided.
+    The following linear system is solved in the least square sense.</P>
+    <VERBATIM>
+<![CDATA[
+ weight(k)*(n( phi_k) - d(phi_k)*rep_k)=0, k=1,..,n
+   ]]>
+    </VERBATIM>
+    <P>
+    where <VERB>phi_k= 2*%i*%pi*frq</VERB> when <VERB>dom='c'</VERB> and <VERB>phi_k=exp(2*%i*%pi*dom*frq</VERB> if not. If the <VERB>weight</VERB> vector is not given a default 
+    penalization is used (when <VERB>dom='c'</VERB>).</P>
+    <P>
+    A stable and minimum phase system can be obtained by using function <VERB>factors</VERB>.</P>
+  </DESCRIPTION>
+  <EXAMPLE>
+<![CDATA[
+s=poly(0,'s');
+h=syslin('c',(s-1)/(s^3+5*s+20))
+frq=0:0.05:3;repf=repfreq(h,frq);
+clean(frep2tf(frq,repf,3))
+
+Sys=ssrand(1,1,10); 
+frq=logspace(-3,2,200);
+[frq,rep]=repfreq(Sys,frq);  //Frequency response of Sys
+[Sys2,err]=frep2tf(frq,rep,10);Sys2=clean(Sys2)//Sys2 obtained from freq. resp of Sys
+[frq,rep2]=repfreq(Sys2,frq); //Frequency response of Sys2
+xbasc();bode(frq,[rep;rep2])   //Responses of Sys and Sys2
+[sort(spec(Sys('A'))),sort(roots(Sys2('den')))] //poles
+
+dom=1/1000; // Sampling time 
+z=poly(0,'z');
+h=syslin(dom,(z^2+0.5)/(z^3+0.1*z^2-0.5*z+0.08))
+frq=(0:0.01:0.5)/dom;repf=repfreq(h,frq);
+[Sys2,err]=frep2tf(frq,repf,3,dom);
+[frq,rep2]=repfreq(Sys2,frq); //Frequency response of Sys2
+xbasc();plot2d1("onn",frq',abs([repf;rep2])');
+
+ ]]>
+  </EXAMPLE>
+  <SEE_ALSO>
+    <SEE_ALSO_ITEM>
+      <LINK>imrep2ss</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>arl2</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>time_id</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>armax</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>frfit</LINK>
+    </SEE_ALSO_ITEM>
+  </SEE_ALSO>
+</MAN>
diff --git a/scilab/modules/cacsd/help/eng/freq.xml b/scilab/modules/cacsd/help/eng/freq.xml
new file mode 100644 (file)
index 0000000..9c194c5
--- /dev/null
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
+<!DOCTYPE MAN SYSTEM "../../manrev.dtd">
+<MAN>
+  <LANGUAGE>eng</LANGUAGE>
+  <TITLE>FREQ</TITLE>
+  <TYPE>Scilab Function</TYPE>
+  <DATE>April 1993</DATE>
+  <SHORT_DESCRIPTION name="freq"> frequency response</SHORT_DESCRIPTION>
+  <CALLING_SEQUENCE>
+    <CALLING_SEQUENCE_ITEM>[x]=freq(A,B,C [,D],f)  </CALLING_SEQUENCE_ITEM>
+    <CALLING_SEQUENCE_ITEM>[x]=freq(NUM,DEN,f)  </CALLING_SEQUENCE_ITEM>
+  </CALLING_SEQUENCE>
+  <PARAM>
+    <PARAM_INDENT>
+      <PARAM_ITEM>
+        <PARAM_NAME>A, B, C, D</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>:  real matrices of respective dimensions <VERB>nxn, nxp, mxn, mxp</VERB>.</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>NUM,DEN</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: polynomial matrices of dimension <VERB>mxp</VERB></SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>x</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: real or complex matrix</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+    </PARAM_INDENT>
+  </PARAM>
+  <DESCRIPTION>
+    <P><VERB>x=freq(A,B,C [,D],f)</VERB> returns a real or complex <VERB>mxp*t</VERB> matrix
+    such that:</P>
+    <P><VERB>x(:,k*p:(k+1)*p)= C*inv(f(k)*eye()-A)*B + D</VERB>.</P>
+    <P>
+    Thus, for <VERB>f</VERB> taking values along the imaginary axis or
+    on the unit circle <VERB>x</VERB> is the continuous or discrete time 
+    frequency response of <VERB>(A,B,C,D)</VERB>.</P>
+    <P><VERB>x=freq(NUM,DEN,f)</VERB> returns a real or complex matrix <VERB>x</VERB> such
+    that columns <VERB>k*(p-1)+1</VERB> to <VERB>k*p</VERB> of <VERB>x</VERB> contain the matrix  
+    <VERB>NUM(f(k))./DEN(f(k))</VERB></P>
+  </DESCRIPTION>
+  <EXAMPLE>
+<![CDATA[
+s=poly(0,'s');
+sys=(s+1)/(s^3-5*s+4)
+rep=freq(sys("num"),sys("den"),[0,0.9,1.1,2,3,10,20])
+[horner(sys,0),horner(sys,20)]
+//
+Sys=tf2ss(sys);
+[A,B,C,D]=abcd(Sys);
+freq(A,B,C,[0,0.9,1.1,2,3,10,20])
+ ]]>
+  </EXAMPLE>
+  <SEE_ALSO>
+    <SEE_ALSO_ITEM>
+      <LINK>repfreq</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>horner</LINK>
+    </SEE_ALSO_ITEM>
+  </SEE_ALSO>
+</MAN>
diff --git a/scilab/modules/cacsd/help/eng/freson.xml b/scilab/modules/cacsd/help/eng/freson.xml
new file mode 100644 (file)
index 0000000..4822c38
--- /dev/null
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
+<!DOCTYPE MAN SYSTEM "../../manrev.dtd">
+<MAN>
+  <LANGUAGE>eng</LANGUAGE>
+  <TITLE>freson</TITLE>
+  <TYPE>Scilab Function</TYPE>
+  <DATE>April 1993</DATE>
+  <SHORT_DESCRIPTION name="freson"> peak frequencies</SHORT_DESCRIPTION>
+  <CALLING_SEQUENCE>
+    <CALLING_SEQUENCE_ITEM>fr=freson(h)  </CALLING_SEQUENCE_ITEM>
+  </CALLING_SEQUENCE>
+  <PARAM>
+    <PARAM_INDENT>
+      <PARAM_ITEM>
+        <PARAM_NAME>h</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: <VERB>syslin</VERB> list</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>fr</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: vector of peak frequencies in Hz</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+    </PARAM_INDENT>
+  </PARAM>
+  <DESCRIPTION>
+    <P>
+    returns the vector of peak frequencies in Hz for the SISO plant
+    <VERB>h</VERB></P>
+  </DESCRIPTION>
+  <EXAMPLE>
+<![CDATA[
+h=syslin('c',-1+%s,(3+2*%s+%s^2)*(50+0.1*%s+%s^2))
+fr=freson(h)
+bode(h)
+g=20*log(abs(repfreq(h,fr)))/log(10)
+ ]]>
+  </EXAMPLE>
+  <SEE_ALSO>
+    <SEE_ALSO_ITEM>
+      <LINK>frep2tf</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>zgrid</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>h_norm</LINK>
+    </SEE_ALSO_ITEM>
+  </SEE_ALSO>
+</MAN>
diff --git a/scilab/modules/cacsd/help/eng/fspecg.xml b/scilab/modules/cacsd/help/eng/fspecg.xml
new file mode 100644 (file)
index 0000000..2548d68
--- /dev/null
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
+<!DOCTYPE MAN SYSTEM "../../manrev.dtd">
+<MAN>
+  <LANGUAGE>eng</LANGUAGE>
+  <TITLE>fspecg</TITLE>
+  <TYPE>Scilab Function</TYPE>
+  <DATE>April 1993</DATE>
+  <SHORT_DESCRIPTION name="fspecg"> stable factorization</SHORT_DESCRIPTION>
+  <CALLING_SEQUENCE>
+    <CALLING_SEQUENCE_ITEM>[gm]=fspecg(g).  </CALLING_SEQUENCE_ITEM>
+  </CALLING_SEQUENCE>
+  <PARAM>
+    <PARAM_INDENT>
+      <PARAM_ITEM>
+        <PARAM_NAME>g,gm</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: <VERB>syslin</VERB> lists (linear systems in state-space representation)</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+    </PARAM_INDENT>
+  </PARAM>
+  <DESCRIPTION>
+    <P>
+    returns <VERB>gm</VERB> with <VERB>gm</VERB> and <VERB>gm^-1</VERB> stable such that:</P>
+    <VERBATIM>
+<![CDATA[
+gtild(g)*g = gtild(gm)*gm
+   ]]>
+    </VERBATIM>
+    <P><VERB>g</VERB> and <VERB>gm</VERB> are continuous-time linear systems in state-space form.</P>
+    <P>
+    Imaginary-axis poles are forbidden.</P>
+  </DESCRIPTION>
+</MAN>
diff --git a/scilab/modules/cacsd/help/eng/fstabst.xml b/scilab/modules/cacsd/help/eng/fstabst.xml
new file mode 100644 (file)
index 0000000..5939796
--- /dev/null
@@ -0,0 +1,90 @@
+<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
+<!DOCTYPE MAN SYSTEM "../../manrev.dtd">
+<MAN>
+  <LANGUAGE>eng</LANGUAGE>
+  <TITLE>fstabst</TITLE>
+  <TYPE>Scilab Function</TYPE>
+  <DATE>April 1993</DATE>
+  <SHORT_DESCRIPTION name="fstabst"> Youla's parametrization</SHORT_DESCRIPTION>
+  <CALLING_SEQUENCE>
+    <CALLING_SEQUENCE_ITEM>[J]=fstabst(P,r)  </CALLING_SEQUENCE_ITEM>
+  </CALLING_SEQUENCE>
+  <PARAM>
+    <PARAM_INDENT>
+      <PARAM_ITEM>
+        <PARAM_NAME>P</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: <VERB>syslin</VERB> list (linear system)</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>r</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: 1x2 row vector, dimension of <VERB>P22</VERB></SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>J</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: <VERB>syslin</VERB> list (linear system in state-space representation)</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+    </PARAM_INDENT>
+  </PARAM>
+  <DESCRIPTION>
+    <P>
+    Parameterization of all stabilizing feedbacks.</P>
+    <P><VERB>P</VERB> is partitioned as follows:</P>
+    <VERBATIM>
+<![CDATA[
+P=[ P11 P12;
+    P21 P22]  
+   ]]>
+    </VERBATIM>
+    <P>
+    (in state-space or transfer form: automatic conversion in state-space is
+    done for the computations)</P>
+    <P><VERB>r</VERB> = size of  <VERB>P22</VERB> subsystem, (2,2) block of <VERB>P</VERB></P>
+    <VERBATIM>
+<![CDATA[
+          J =[ J11 J12;
+               J21 J22]
+   ]]>
+    </VERBATIM>
+    <P><VERB>K</VERB> is a stabilizing controller for <VERB>P</VERB> (i.e. <VERB>P22</VERB>) iff 
+    <VERB>K=lft(J,r,Q)</VERB> with <VERB>Q</VERB> stable.</P>
+    <P>
+    The central part of <VERB>J</VERB> , <VERB>J11</VERB> is the lqg regulator for <VERB>P</VERB></P>
+    <P>
+    This <VERB>J</VERB> is such that defining <VERB>T</VERB> as the 2-port <VERB>lft</VERB> of <VERB>P</VERB>
+    and <VERB>J</VERB> : <VERB>[T,rt]=lft(P,r,J,r)</VERB> one has that <VERB>T12</VERB> is inner
+    and <VERB>T21</VERB> is co-inner.</P>
+  </DESCRIPTION>
+  <EXAMPLE>
+<![CDATA[
+ny=2;nu=3;nx=4;
+P22=ssrand(ny,nu,nx);
+bigQ=rand(nx+nu,nx+nu);bigQ=bigQ*bigQ';
+bigR=rand(nx+ny,nx+ny);bigR=bigR*bigR';
+[P,r]=lqg2stan(P22,bigQ,bigR);
+J=fstabst(P,r);
+Q=ssrand(nu,ny,1);Q('A')=-1;  //Stable Q
+K=lft(J,r,Q);
+A=h_cl(P,r,K); spec(A)
+ ]]>
+  </EXAMPLE>
+  <SEE_ALSO>
+    <SEE_ALSO_ITEM>
+      <LINK>obscont</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>lft</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>lqg</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>lqg2stan</LINK>
+    </SEE_ALSO_ITEM>
+  </SEE_ALSO>
+</MAN>
diff --git a/scilab/modules/cacsd/help/eng/g_margin.xml b/scilab/modules/cacsd/help/eng/g_margin.xml
new file mode 100644 (file)
index 0000000..2d5ae15
--- /dev/null
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
+<!DOCTYPE MAN SYSTEM "../../manrev.dtd">
+<MAN>
+  <LANGUAGE>eng</LANGUAGE>
+  <TITLE>g_margin</TITLE>
+  <TYPE>Scilab Function</TYPE>
+  <DATE>April 1993</DATE>
+  <SHORT_DESCRIPTION name="g_margin"> gain margin</SHORT_DESCRIPTION>
+  <CALLING_SEQUENCE>
+    <CALLING_SEQUENCE_ITEM>[gm [,fr]]=g_margin(h)   </CALLING_SEQUENCE_ITEM>
+  </CALLING_SEQUENCE>
+  <PARAM>
+    <PARAM_INDENT>
+      <PARAM_ITEM>
+        <PARAM_NAME>h</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: <VERB>syslin</VERB> list representing a linear system in  state-space or transfer form</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+    </PARAM_INDENT>
+  </PARAM>
+  <DESCRIPTION>
+    <P>
+    returns <VERB>gm</VERB>, the gain margin in dB of <VERB>h</VERB> 
+    (SISO plant) and <VERB>fr</VERB>, the achieved corresponding frequency in hz.
+    The gain margin is values of the system gain at points where the
+    nyquist plot crosses the negative real axis.</P>
+  </DESCRIPTION>
+  <EXAMPLE>
+<![CDATA[
+h=syslin('c',-1+%s,3+2*%s+%s^2)
+[g,fr]=g_margin(h)
+[g,fr]=g_margin(h-10)
+nyquist(h-10)
+ ]]>
+  </EXAMPLE>
+  <SEE_ALSO>
+    <SEE_ALSO_ITEM>
+      <LINK>p_margin</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>black</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>chart</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>nyquist</LINK>
+    </SEE_ALSO_ITEM>
+  </SEE_ALSO>
+</MAN>
diff --git a/scilab/modules/cacsd/help/eng/gamitg.xml b/scilab/modules/cacsd/help/eng/gamitg.xml
new file mode 100644 (file)
index 0000000..d6c1ac1
--- /dev/null
@@ -0,0 +1,73 @@
+<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
+<!DOCTYPE MAN SYSTEM "../../manrev.dtd">
+<MAN>
+  <LANGUAGE>eng</LANGUAGE>
+  <TITLE>gamitg</TITLE>
+  <TYPE>Scilab Function</TYPE>
+  <DATE>April 1993</DATE>
+  <SHORT_DESCRIPTION name="gamitg"> H-infinity gamma iterations</SHORT_DESCRIPTION>
+  <CALLING_SEQUENCE>
+    <CALLING_SEQUENCE_ITEM>[gopt]=gamitg(G,r,prec [,options]);  </CALLING_SEQUENCE_ITEM>
+  </CALLING_SEQUENCE>
+  <PARAM>
+    <PARAM_INDENT>
+      <PARAM_ITEM>
+        <PARAM_NAME>G</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: <VERB>syslin</VERB> list (plant realization )</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>r</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: 1x2 row vector (dimension of <VERB>G22</VERB>)</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>prec</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: desired relative accuracy on the norm</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>option</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: string <VERB>'t'</VERB></SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>gopt</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: real scalar, optimal H-infinity gain</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+    </PARAM_INDENT>
+  </PARAM>
+  <DESCRIPTION>
+    <P><VERB>gopt=gamitg(G,r,prec [,options])</VERB>
+    returns the H-infinity optimal gain <VERB>gopt</VERB>.</P>
+    <P><VERB>G</VERB> contains the state-space matrices <VERB>[A,B,C,D]</VERB> of
+    the plant with the usual partitions:</P>
+    <VERBATIM>
+<![CDATA[
+   B = ( B1 , B2 ) ,    C = ( C1 ) ,    D = ( D11  D12)
+                            ( C2 )          ( D21  D22)
+   ]]>
+    </VERBATIM>
+    <P>
+    These partitions are implicitly given in <VERB>r</VERB>: <VERB>r(1)</VERB>
+    and <VERB>r(2)</VERB> are the dimensions of <VERB>D22</VERB> (rows x columns)</P>
+    <P>
+    With <VERB>option='t'</VERB>, <VERB>gamitg</VERB> traces each bisection step, i.e., 
+    displays the lower and upper bounds and the current test point.</P>
+  </DESCRIPTION>
+  <SEE_ALSO>
+    <SEE_ALSO_ITEM>
+      <LINK>ccontrg</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>h_inf</LINK>
+    </SEE_ALSO_ITEM>
+  </SEE_ALSO>
+  <AUTHOR>P. Gahinet</AUTHOR>
+</MAN>
diff --git a/scilab/modules/cacsd/help/eng/gcare.xml b/scilab/modules/cacsd/help/eng/gcare.xml
new file mode 100644 (file)
index 0000000..611ce3f
--- /dev/null
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
+<!DOCTYPE MAN SYSTEM "../../manrev.dtd">
+<MAN>
+  <LANGUAGE>eng</LANGUAGE>
+  <TITLE>gcare</TITLE>
+  <TYPE>Scilab Function</TYPE>
+  <DATE>April 1993</DATE>
+  <SHORT_DESCRIPTION name="gcare"> control Riccati equation</SHORT_DESCRIPTION>
+  <CALLING_SEQUENCE>
+    <CALLING_SEQUENCE_ITEM>[X,F]=gcare(Sl)  </CALLING_SEQUENCE_ITEM>
+  </CALLING_SEQUENCE>
+  <PARAM>
+    <PARAM_INDENT>
+      <PARAM_ITEM>
+        <PARAM_NAME>Sl</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: linear system (<VERB>syslin</VERB> list)</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>X</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: symmetric matrix</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>F</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: real matrix</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+    </PARAM_INDENT>
+  </PARAM>
+  <DESCRIPTION>
+    <P>
+    Generalized Control Algebraic Riccati Equation (GCARE).
+    <VERB>X</VERB> = solution , <VERB>F</VERB> = gain.</P>
+    <P>
+    The GCARE for <VERB>Sl=[A,B,C,D]</VERB> is:</P>
+    <VERBATIM>
+<![CDATA[
+(A-B*Si*D'*C)'*X+X*(A-B*Si*D'*C)-X*B*Si*B'*X+C'*Ri*C=0
+   ]]>
+    </VERBATIM>
+    <P>
+    where <VERB>S=(eye()+D'*D)</VERB>, <VERB>Si=inv(S)</VERB>, <VERB>R=(eye()+D*D')</VERB>, <VERB>Ri=inv(R)</VERB> 
+    and <VERB>F=-Si*(D'*C+B'*X)</VERB> is such that <VERB>A+B*F</VERB> is stable.</P>
+  </DESCRIPTION>
+  <SEE_ALSO>
+    <SEE_ALSO_ITEM>
+      <LINK>gfare</LINK>
+    </SEE_ALSO_ITEM>
+  </SEE_ALSO>
+</MAN>
diff --git a/scilab/modules/cacsd/help/eng/gfare.xml b/scilab/modules/cacsd/help/eng/gfare.xml
new file mode 100644 (file)
index 0000000..8f76a30
--- /dev/null
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
+<!DOCTYPE MAN SYSTEM "../../manrev.dtd">
+<MAN>
+  <LANGUAGE>eng</LANGUAGE>
+  <TITLE>gfare</TITLE>
+  <TYPE>Scilab Function</TYPE>
+  <DATE>April 1993</DATE>
+  <SHORT_DESCRIPTION name="gfare"> filter Riccati equation</SHORT_DESCRIPTION>
+  <CALLING_SEQUENCE>
+    <CALLING_SEQUENCE_ITEM>[Z,H]=gfare(Sl)  </CALLING_SEQUENCE_ITEM>
+  </CALLING_SEQUENCE>
+  <PARAM>
+    <PARAM_INDENT>
+      <PARAM_ITEM>
+        <PARAM_NAME>Sl</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: linear system (<VERB>syslin</VERB> list)</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>Z</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: symmetric matrix</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>H</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: real matrix</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+    </PARAM_INDENT>
+  </PARAM>
+  <DESCRIPTION>
+    <P>
+    Generalized Filter Algebraic Riccati Equation (GFARE).
+    <VERB>Z</VERB> = solution, <VERB>H</VERB> = gain.</P>
+    <P>
+    The GFARE for <VERB>Sl=[A,B,C,D]</VERB> is:</P>
+    <VERBATIM>
+<![CDATA[
+(A-B*D'*Ri*C)*Z+Z*(A-B*D'*Ri*C)'-Z*C'*Ri*C*Z+B*Si*B'=0
+   ]]>
+    </VERBATIM>
+    <P>
+    where <VERB>S=(eye()+D'*D)</VERB>, <VERB>Si=inv(S)</VERB>, <VERB>R=(eye()+D*D')</VERB>, <VERB>Ri=inv(R)</VERB>
+    and <VERB>H=-(B*D'+Z*C')*Ri</VERB> is such that <VERB>A+H*C</VERB> is stable.</P>
+  </DESCRIPTION>
+  <SEE_ALSO>
+    <SEE_ALSO_ITEM>
+      <LINK>gcare</LINK>
+    </SEE_ALSO_ITEM>
+  </SEE_ALSO>
+</MAN>
diff --git a/scilab/modules/cacsd/help/eng/gfrancis.xml b/scilab/modules/cacsd/help/eng/gfrancis.xml
new file mode 100644 (file)
index 0000000..1ea7c78
--- /dev/null
@@ -0,0 +1,97 @@
+<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
+<!DOCTYPE MAN SYSTEM "../../manrev.dtd">
+<MAN>
+  <LANGUAGE>eng</LANGUAGE>
+  <TITLE>gfrancis</TITLE>
+  <TYPE>Scilab Function</TYPE>
+  <DATE>April 1993</DATE>
+  <SHORT_DESCRIPTION name="gfrancis"> Francis equations for tracking</SHORT_DESCRIPTION>
+  <CALLING_SEQUENCE>
+    <CALLING_SEQUENCE_ITEM>[L,M,T]=gfrancis(Plant,Model)  </CALLING_SEQUENCE_ITEM>
+  </CALLING_SEQUENCE>
+  <PARAM>
+    <PARAM_INDENT>
+      <PARAM_ITEM>
+        <PARAM_NAME>Plant</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: <VERB>syslin</VERB> list</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>Model</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: <VERB>syslin</VERB> list</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>L,M,T</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: real matrices</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+    </PARAM_INDENT>
+  </PARAM>
+  <DESCRIPTION>
+    <P>
+    Given the the linear plant:</P>
+    <VERBATIM>
+<![CDATA[
+    x'= F*x + G*u 
+    y = H*x + J*u
+   ]]>
+    </VERBATIM>
+    <P>
+    and the linear model</P>
+    <VERBATIM>
+<![CDATA[
+    xm'= A*xm + B*um
+    ym = C*xm + D*um
+   ]]>
+    </VERBATIM>
+    <P>
+    the goal is for the plant to track the model i.e. <VERB>e = y - ym ---&gt; 0</VERB>
+    while keeping stable the state x(t) of the plant. 
+    <VERB>u</VERB> is given by feedforward and feedback</P>
+    <VERBATIM>
+<![CDATA[
+ u = L*xm + M*um + K*(x-T*xm) = [K , L-K*T] *(x,xm) + M*um
+   ]]>
+    </VERBATIM>
+    <P>
+    The matrices T,L,M satisfy generalized Francis equations</P>
+    <VERBATIM>
+<![CDATA[
+    F*T + G*L = T*A
+    H*T + J*L = C
+          G*M = T*B
+          J*M = D
+   ]]>
+    </VERBATIM>
+    <P>
+    The matrix <VERB>K</VERB> must be chosen as stabilizing the pair <VERB>(F,G)</VERB>
+    See example of use in directory <VERB>demos/tracking</VERB>.</P>
+  </DESCRIPTION>
+  <EXAMPLE>
+<![CDATA[
+Plant=ssrand(1,3,5);
+[F,G,H,J]=abcd(Plant);
+nw=4;nuu=2;A=rand(nw,nw);
+st=maxi(real(spec(A)));A=A-st*eye(A);
+B=rand(nw,nuu);C=2*rand(1,nw);D=0*rand(C*B);
+Model=syslin('c',A,B,C,D);
+[L,M,T]=gfrancis(Plant,Model);
+norm(F*T+G*L-T*A,1)
+norm(H*T+J*L-C,1)
+norm(G*M-T*B,1)
+norm(J*M-D,1)
+ ]]>
+  </EXAMPLE>
+  <SEE_ALSO>
+    <SEE_ALSO_ITEM>
+      <LINK>lqg</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>ppol</LINK>
+    </SEE_ALSO_ITEM>
+  </SEE_ALSO>
+</MAN>
diff --git a/scilab/modules/cacsd/help/eng/gtild.xml b/scilab/modules/cacsd/help/eng/gtild.xml
new file mode 100644 (file)
index 0000000..2d0f250
--- /dev/null
@@ -0,0 +1,99 @@
+<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
+<!DOCTYPE MAN SYSTEM "../../manrev.dtd">
+<MAN>
+  <LANGUAGE>eng</LANGUAGE>
+  <TITLE>gtild</TITLE>
+  <TYPE>Scilab Function</TYPE>
+  <DATE>April 1993</DATE>
+  <SHORT_DESCRIPTION name="gtild"> tilde operation</SHORT_DESCRIPTION>
+  <CALLING_SEQUENCE>
+    <CALLING_SEQUENCE_ITEM>Gt=gtild(G)  </CALLING_SEQUENCE_ITEM>
+    <CALLING_SEQUENCE_ITEM>Gt=gtild(G,flag)  </CALLING_SEQUENCE_ITEM>
+  </CALLING_SEQUENCE>
+  <PARAM>
+    <PARAM_INDENT>
+      <PARAM_ITEM>
+        <PARAM_NAME>G</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: either a polynomial or a linear system (<VERB>syslin</VERB> list) or a rational matrix</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>Gt</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: same as G</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>flag</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: character string: either <VERB>'c'</VERB> or <VERB>'d'</VERB> (optional parameter).</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+    </PARAM_INDENT>
+  </PARAM>
+  <DESCRIPTION>
+    <P>
+    If <VERB>G</VERB> is a polynomial matrix (or a polynomial), <VERB>Gt=gtild(G,'c')</VERB>
+    returns the polynomial matrix <VERB>Gt(s)=G(-s)'</VERB>.</P>
+    <P>
+    If <VERB>G</VERB> is a polynomial matrix (or a polynomial),  <VERB>Gt=gtild(G,'d')</VERB> 
+    returns the polynomial matrix <VERB>Gt=G(1/z)*z^n</VERB> where n is the maximum
+    degree of <VERB>G</VERB>.</P>
+    <P>
+    For continuous-time systems represented in state-space by a <VERB>syslin</VERB> list,
+    <VERB>Gt = gtild(G,'c')</VERB> returns a state-space representation
+    of <VERB>G(-s)'</VERB> i.e the <VERB>ABCD</VERB> matrices of <VERB>Gt</VERB> are
+    <VERB>A',-C', B', D'</VERB>. If <VERB>G</VERB> is improper (<VERB> D= D(s)</VERB>) 
+    the <VERB>D</VERB> matrix of <VERB>Gt</VERB> is <VERB>D(-s)'</VERB>.</P>
+    <P>
+    For  discrete-time systems represented in state-space by a <VERB>syslin</VERB> list,
+    <VERB>Gt = gtild(G,'d')</VERB> returns a state-space representation
+    of <VERB>G(-1/z)'</VERB> i.e the (possibly improper) state-space 
+    representation of <VERB>-z*C*inv(z*A-B)*C + D(1/z) </VERB>.</P>
+    <P>
+    For rational matrices, <VERB>Gt = gtild(G,'c')</VERB> returns the rational
+    matrix <VERB>Gt(s)=G(-s)</VERB> and <VERB>Gt = gtild(G,'d')</VERB> returns the
+    rational matrix <VERB>Gt(z)= G(1/z)'</VERB>.</P>
+    <P>
+    The parameter <VERB>flag</VERB> is necessary when <VERB>gtild</VERB> is called with
+    a polynomial argument.</P>
+  </DESCRIPTION>
+  <EXAMPLE>
+<![CDATA[
+//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
+ ]]>
+  </EXAMPLE>
+  <SEE_ALSO>
+    <SEE_ALSO_ITEM>
+      <LINK>syslin</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>horner</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>factors</LINK>
+    </SEE_ALSO_ITEM>
+  </SEE_ALSO>
+</MAN>
diff --git a/scilab/modules/cacsd/help/eng/h2norm.xml b/scilab/modules/cacsd/help/eng/h2norm.xml
new file mode 100644 (file)
index 0000000..7dddb54
--- /dev/null
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
+<!DOCTYPE MAN SYSTEM "../../manrev.dtd">
+<MAN>
+  <LANGUAGE>eng</LANGUAGE>
+  <TITLE>h2norm</TITLE>
+  <TYPE>Scilab Function</TYPE>
+  <DATE>April 1993</DATE>
+  <SHORT_DESCRIPTION name="h2norm"> H2 norm</SHORT_DESCRIPTION>
+  <CALLING_SEQUENCE>
+    <CALLING_SEQUENCE_ITEM>[n]=h2norm(Sl [,tol])  </CALLING_SEQUENCE_ITEM>
+  </CALLING_SEQUENCE>
+  <PARAM>
+    <PARAM_INDENT>
+      <PARAM_ITEM>
+        <PARAM_NAME>Sl</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: linear system (<VERB>syslin</VERB> list)</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>n</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: real scalar</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+    </PARAM_INDENT>
+  </PARAM>
+  <DESCRIPTION>
+    <P>
+    produces the H2 norm  of a linear continuous time system <VERB>Sl</VERB>.</P>
+    <P>
+    (For <VERB>Sl</VERB> in state-space form <VERB>h2norm</VERB> uses the observability
+    gramian and for <VERB>Sl</VERB> in transfer form <VERB>h2norm</VERB> uses a residue method)</P>
+  </DESCRIPTION>
+</MAN>
diff --git a/scilab/modules/cacsd/help/eng/h_cl.xml b/scilab/modules/cacsd/help/eng/h_cl.xml
new file mode 100644 (file)
index 0000000..6cbf556
--- /dev/null
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
+<!DOCTYPE MAN SYSTEM "../../manrev.dtd">
+<MAN>
+  <LANGUAGE>eng</LANGUAGE>
+  <TITLE>h_cl</TITLE>
+  <TYPE>Scilab Function</TYPE>
+  <DATE>April 1993</DATE>
+  <SHORT_DESCRIPTION name="h_cl"> closed loop matrix</SHORT_DESCRIPTION>
+  <CALLING_SEQUENCE>
+    <CALLING_SEQUENCE_ITEM>[Acl]=h_cl(P,r,K)  </CALLING_SEQUENCE_ITEM>
+    <CALLING_SEQUENCE_ITEM>[Acl]=h_cl(P22,K)  </CALLING_SEQUENCE_ITEM>
+  </CALLING_SEQUENCE>
+  <PARAM>
+    <PARAM_INDENT>
+      <PARAM_ITEM>
+        <PARAM_NAME>P, P22</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: linear system (<VERB>syslin</VERB> list), augmented plant or nominal plant respectively</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>r</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: 1x2 row vector, dimensions of 2,2 part of <VERB>P</VERB> (<VERB>r=[rows,cols]=size(P22)</VERB>)</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>K</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: linear system (<VERB>syslin</VERB> list), controller</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>Acl</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: real square matrix</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+    </PARAM_INDENT>
+  </PARAM>
+  <DESCRIPTION>
+    <P>
+    Given the standard plant <VERB>P</VERB> (with <VERB>r=size(P22)</VERB>) and the controller
+    <VERB>K</VERB>, this function returns the closed loop matrix <VERB>Acl</VERB>.</P>
+    <P>
+    The poles of <VERB>Acl</VERB> must be stable for the internal stability 
+    of the closed loop system.</P>
+    <P><VERB>Acl</VERB> is the <VERB>A</VERB>-matrix of the linear system <VERB>[I -P22;-K I]^-1</VERB> i.e.
+    the <VERB>A</VERB>-matrix of <VERB>lft(P,r,K)</VERB></P>
+  </DESCRIPTION>
+  <SEE_ALSO>
+    <SEE_ALSO_ITEM>
+      <LINK>lft</LINK>
+    </SEE_ALSO_ITEM>
+  </SEE_ALSO>
+  <AUTHOR>F. D.  </AUTHOR>
+</MAN>
diff --git a/scilab/modules/cacsd/help/eng/h_inf.xml b/scilab/modules/cacsd/help/eng/h_inf.xml
new file mode 100644 (file)
index 0000000..71a7706
--- /dev/null
@@ -0,0 +1,85 @@
+<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
+<!DOCTYPE MAN SYSTEM "../../manrev.dtd">
+<MAN>
+  <LANGUAGE>eng</LANGUAGE>
+  <TITLE>H_inf</TITLE>
+  <TYPE>Scilab Function</TYPE>
+  <DATE>April 1993</DATE>
+  <SHORT_DESCRIPTION name="h_inf"> H-infinity (central) controller</SHORT_DESCRIPTION>
+  <CALLING_SEQUENCE>
+    <CALLING_SEQUENCE_ITEM>[Sk,ro]=h_inf(P,r,romin,romax,nmax)  </CALLING_SEQUENCE_ITEM>
+    <CALLING_SEQUENCE_ITEM>[Sk,rk,ro]=h_inf(P,r,romin,romax,nmax)  </CALLING_SEQUENCE_ITEM>
+  </CALLING_SEQUENCE>
+  <PARAM>
+    <PARAM_INDENT>
+      <PARAM_ITEM>
+        <PARAM_NAME>P</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: <VERB>syslin</VERB> list : continuous-time linear system (``augmented'' plant given in state-space form  or in transfer form)</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>r</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: size of the <VERB>P22</VERB> plant i.e. 2-vector <VERB>[#outputs,#inputs]</VERB></SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>romin,romax</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: a priori bounds on <VERB>ro</VERB> with <VERB>ro=1/gama^2</VERB>; (<VERB>romin=0</VERB>  usually)</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>nmax</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: integer, maximum number of iterations in the gama-iteration.</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+    </PARAM_INDENT>
+  </PARAM>
+  <DESCRIPTION>
+    <P><VERB>h_inf</VERB> computes H-infinity optimal controller for the 
+    continuous-time plant <VERB>P</VERB>.</P>
+    <P>
+    The partition of <VERB>P</VERB> into four sub-plants is given through
+    the 2-vector <VERB>r</VERB> which is the size of the <VERB>22</VERB> part of <VERB>P</VERB>.</P>
+    <P><VERB>P</VERB> is given in state-space 
+    e.g. <VERB>P=syslin('c',A,B,C,D)</VERB> with <VERB>A,B,C,D</VERB> = constant matrices
+    or <VERB>P=syslin('c',H)</VERB> with <VERB>H</VERB> a transfer matrix.</P>
+    <P><VERB>[Sk,ro]=H_inf(P,r,romin,romax,nmax)</VERB> returns
+    <VERB>ro</VERB> in <VERB>[romin,romax]</VERB> and the central
+    controller <VERB>Sk</VERB> in the same representation as
+    <VERB>P</VERB>.</P>
+    <P>
+    (All calculations are made in state-space, i.e conversion to
+    state-space is done by the function, if necessary).</P>
+    <P>
+    Invoked with three LHS parameters,</P>
+    <P><VERB>[Sk,rk,ro]=H_inf(P,r,romin,romax,nmax)</VERB> returns
+    <VERB>ro</VERB> and the Parameterization of all stabilizing
+    controllers:</P>
+    <P>
+    a stabilizing controller <VERB>K</VERB> is obtained by
+    <VERB>K=lft(Sk,r,PHI)</VERB> where <VERB>PHI</VERB> is a linear
+    system with dimensions <VERB>r'</VERB> and satisfy:</P>
+    <P><VERB>H_norm(PHI) &lt; gamma</VERB>.  <VERB>rk (=r)</VERB> is the
+    size of the <VERB>Sk22</VERB> block and <VERB>ro = 1/gama^2</VERB>
+    after <VERB>nmax</VERB> iterations.</P>
+    <P>
+    Algorithm is adapted from Safonov-Limebeer. Note that <VERB>P</VERB> is assumed to be 
+    a continuous-time plant.</P>
+  </DESCRIPTION>
+  <SEE_ALSO>
+    <SEE_ALSO_ITEM>
+      <LINK>gamitg</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>ccontrg</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>leqr</LINK>
+    </SEE_ALSO_ITEM>
+  </SEE_ALSO>
+  <AUTHOR>F.Delebecque INRIA (1990)  </AUTHOR>
+</MAN>
diff --git a/scilab/modules/cacsd/help/eng/h_inf_st.xml b/scilab/modules/cacsd/help/eng/h_inf_st.xml
new file mode 100644 (file)
index 0000000..985c541
--- /dev/null
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
+<!DOCTYPE MAN SYSTEM "../../manrev.dtd">
+<MAN>
+  <LANGUAGE>eng</LANGUAGE>
+  <TITLE>h_inf_st</TITLE>
+  <TYPE>Scilab Function</TYPE>
+  <DATE>April 1993</DATE>
+  <SHORT_DESCRIPTION name="h_inf_st"> static <VERB>H_infinity</VERB> problem</SHORT_DESCRIPTION>
+  <CALLING_SEQUENCE>
+    <CALLING_SEQUENCE_ITEM>[Kopt,gamaopt]=h_inf_stat(D,r)  </CALLING_SEQUENCE_ITEM>
+  </CALLING_SEQUENCE>
+  <PARAM>
+    <PARAM_INDENT>
+      <PARAM_ITEM>
+        <PARAM_NAME>D</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: real matrix</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>r</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: 1x2 vector</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>Kopt</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: matrix</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+    </PARAM_INDENT>
+  </PARAM>
+  <DESCRIPTION>
+    <P>
+    computes a matrix <VERB>Kopt</VERB> such that largest singular value of:</P>
+    <P><VERB>lft(D,r,K)=D11+D12* K*inv(I-D22*K)* D21</VERB>
+    is minimal (Static <VERB>H_infinity</VERB> four blocks problem).</P>
+    <P>
+    D is partionned as <VERB>D=[D11 D12; D21 D22]</VERB>
+    where <VERB>size(D22)=r=[r1 r2]</VERB></P>
+  </DESCRIPTION>
+  <AUTHOR>F.D. ;   </AUTHOR>
+</MAN>
diff --git a/scilab/modules/cacsd/help/eng/h_norm.xml b/scilab/modules/cacsd/help/eng/h_norm.xml
new file mode 100644 (file)
index 0000000..678030c
--- /dev/null
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
+<!DOCTYPE MAN SYSTEM "../../manrev.dtd">
+<MAN>
+  <LANGUAGE>eng</LANGUAGE>
+  <TITLE>h_norm</TITLE>
+  <TYPE>Scilab Function</TYPE>
+  <DATE>April 1993</DATE>
+  <SHORT_DESCRIPTION name="h_norm"> H-infinity norm</SHORT_DESCRIPTION>
+  <CALLING_SEQUENCE>
+    <CALLING_SEQUENCE_ITEM>[hinfnorm [,frequency]]=h_norm(sl [,rerr])  </CALLING_SEQUENCE_ITEM>
+  </CALLING_SEQUENCE>
+  <PARAM>
+    <PARAM_INDENT>
+      <PARAM_ITEM>
+        <PARAM_NAME>sl</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: the state space system (<VERB>syslin</VERB> list)</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>rerr</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: max. relative error, default value <VERB>1e-8</VERB></SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>hinfnorm</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: the infinity norm of <VERB>Sl</VERB></SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>frequency</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: frequency at which maximum is achieved</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+    </PARAM_INDENT>
+  </PARAM>
+  <DESCRIPTION>
+    <P>
+    produces the infinity norm  of a state-space system 
+    (the maximum over all frequencies of the maximum singular value).</P>
+  </DESCRIPTION>
+  <SEE_ALSO>
+    <SEE_ALSO_ITEM>
+      <LINK>linfn</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>linf</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>svplot</LINK>
+    </SEE_ALSO_ITEM>
+  </SEE_ALSO>
+</MAN>
diff --git a/scilab/modules/cacsd/help/eng/hankelsv.xml b/scilab/modules/cacsd/help/eng/hankelsv.xml
new file mode 100644 (file)
index 0000000..5a148ac
--- /dev/null
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
+<!DOCTYPE MAN SYSTEM "../../manrev.dtd">
+<MAN>
+  <LANGUAGE>eng</LANGUAGE>
+  <TITLE>hankelsv</TITLE>
+  <TYPE>Scilab Function</TYPE>
+  <DATE>April 1993</DATE>
+  <SHORT_DESCRIPTION name="hankelsv"> Hankel singular values</SHORT_DESCRIPTION>
+  <CALLING_SEQUENCE>
+    <CALLING_SEQUENCE_ITEM>[nk2,W]=hankelsv(sl [,tol])  </CALLING_SEQUENCE_ITEM>
+    <CALLING_SEQUENCE_ITEM>[nk2]=hankelsv(sl [,tol])  </CALLING_SEQUENCE_ITEM>
+  </CALLING_SEQUENCE>
+  <PARAM>
+    <PARAM_INDENT>
+      <PARAM_ITEM>
+        <PARAM_NAME>sl</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: <VERB>syslin</VERB> list representing the linear system (state-space).</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>tol</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: tolerance parameter for detecting imaginary axis modes (default value is <VERB>1000*%eps</VERB>).</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+    </PARAM_INDENT>
+  </PARAM>
+  <DESCRIPTION>
+    <P>
+    returns <VERB>nk2</VERB>, the squared Hankel singular values of <VERB>sl</VERB>
+    and <VERB>W = P*Q</VERB> = controllability gramian times observability
+    gramian.</P>
+    <P><VERB>nk2</VERB> is the vector of eigenvalues of <VERB>W</VERB>.</P>
+  </DESCRIPTION>
+  <EXAMPLE>
+<![CDATA[
+A=diag([-1,-2,-3]);
+sl=syslin('c',A,rand(3,2),rand(2,3));[nk2,W]=hankelsv(sl)
+[Q,M]=pbig(W,nk2(2)-%eps,'c');
+slr=projsl(sl,Q,M);hankelsv(slr)
+ ]]>
+  </EXAMPLE>
+  <SEE_ALSO>
+    <SEE_ALSO_ITEM>
+      <LINK>balreal</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>equil</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>equil1</LINK>
+    </SEE_ALSO_ITEM>
+  </SEE_ALSO>
+</MAN>
diff --git a/scilab/modules/cacsd/help/eng/helpbuildereng.sce b/scilab/modules/cacsd/help/eng/helpbuildereng.sce
new file mode 100644 (file)
index 0000000..31b8f6a
--- /dev/null
@@ -0,0 +1,6 @@
+mode(-1); //force silent execution\r
+path=get_absolute_file_path('helpbuildereng.sce');//get the absolute path of this file\r
+add_help_chapter("CACSD",path);//add help chapter\r
+xmltohtml(path,"CACSD");\r
+//clear the variable stack\r
+clear path add_help_chapter get_absolute_file_path; 
\ No newline at end of file
diff --git a/scilab/modules/cacsd/help/eng/hinf.xml b/scilab/modules/cacsd/help/eng/hinf.xml
new file mode 100644 (file)
index 0000000..d403f30
--- /dev/null
@@ -0,0 +1,183 @@
+<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
+<!DOCTYPE MAN SYSTEM "../../manrev.dtd">
+<MAN>
+  <LANGUAGE>eng</LANGUAGE>
+  <TITLE>hinf</TITLE>
+  <TYPE>Scilab Function</TYPE>
+  <DATE>April 1999</DATE>
+  <SHORT_DESCRIPTION name="hinf"> <VERB>H_infinity</VERB> design of continuous-time systems</SHORT_DESCRIPTION>
+  <CALLING_SEQUENCE>
+    <CALLING_SEQUENCE_ITEM>   [AK,BK,CK,DK,(RCOND)] = hinf(A,B,C,D,ncon,nmeas,gamma)  </CALLING_SEQUENCE_ITEM>
+  </CALLING_SEQUENCE>
+  <PARAM>
+    <PARAM_INDENT>
+      <PARAM_ITEM>
+        <PARAM_NAME>A</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: the n-by-n system state matrix A.</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>B</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: the n-by-m system input matrix B.</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>C</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: the p-by-n system output matrix C.</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>D</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: the p-by-m system matrix D.</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>ncon</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: the number of control inputs. m &gt;= ncon &gt;= 0, p-nmeas &gt;= ncon.</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>nmeas</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: the number of measurements. p &gt;= nmeas &gt;= 0, m-ncon &gt;= nmeas.</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>gamma</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: the parameter gamma used in <VERB>H_infinity</VERB> design. 
+          It is assumed that gamma is sufficiently large so that the controller is admissible. gamma &gt;= 0.</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>AK</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: the n-by-n controller state matrix AK.</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>BK</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: the n-by-nmeas controller input matrix BK.</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>CK</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: the ncon-by-n controller output matrix CK.</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>DK</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: the ncon-by-nmeas controller matrix DK.</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>RCOND</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: a vector containing estimates of the reciprocal condition numbers of the matrices which are to be inverted and estimates of the reciprocal condition numbers of the Riccati equations which have to be solved during the computation of the controller. (See the description of the algorithm in [1].)</SP>
+          <PARAM_INDENT>
+            <PARAM_ITEM>
+              <PARAM_NAME>RCOND</PARAM_NAME>
+              <PARAM_DESCRIPTION>
+                <SP>(1) contains the reciprocal condition number of the  control transformation matrix TU,</SP>
+              </PARAM_DESCRIPTION>
+            </PARAM_ITEM>
+            <PARAM_ITEM>
+              <PARAM_NAME>RCOND</PARAM_NAME>
+              <PARAM_DESCRIPTION>
+                <SP>(2) contains the reciprocal condition number of the  measurement transformation matrix TY,</SP>
+              </PARAM_DESCRIPTION>
+            </PARAM_ITEM>
+            <PARAM_ITEM>
+              <PARAM_NAME>RCOND</PARAM_NAME>
+              <PARAM_DESCRIPTION>
+                <SP>(3) contains an estimate of the reciprocal condition number of the X-Riccati equation,</SP>
+              </PARAM_DESCRIPTION>
+            </PARAM_ITEM>
+            <PARAM_ITEM>
+              <PARAM_NAME>RCOND</PARAM_NAME>
+              <PARAM_DESCRIPTION>
+                <SP>(4) contains an estimate of the reciprocal condition number of the Y-Riccati equation.</SP>
+              </PARAM_DESCRIPTION>
+            </PARAM_ITEM>
+          </PARAM_INDENT>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+    </PARAM_INDENT>
+  </PARAM>
+  <DESCRIPTION>
+    <P><VERB>[AK,BK,CK,DK,(RCOND)] = hinf(A,B,C,D,ncon,nmeas,gamma)</VERB>
+    To compute the matrices of an H-infinity (sub)optimal n-state
+    controller</P>
+    <VERBATIM>
+<![CDATA[
+              | AK | BK |
+          K = |----|----|,
+              | CK | DK |
+   ]]>
+    </VERBATIM>
+    <P>
+    for the continuous-time system</P>
+    <VERBATIM>
+<![CDATA[
+              | A  | B1  B2  |   | A | B |
+          P = |----|---------| = |---|---|,
+              | C1 | D11 D12 |   | C | D | 
+              | C2 | D21 D22 |
+   ]]>
+    </VERBATIM>
+    <P>
+    and for a given value of gamma, where B2 has column size of the
+    number of control inputs (ncon) and C2 has row size of the number
+    of measurements (nmeas) being provided to the controller.</P>
+  </DESCRIPTION>
+  <SECTION label="References">
+    <P>
+    [1] P.Hr. Petkov, D.W. Gu and M.M. Konstantinov. Fortran 77 routines     for Hinf and H2 design of continuous-time linear control systems.     Report98-14, Department of Engineering, Leicester University,     August 1998.</P>
+  </SECTION>
+  <EXAMPLE>
+<![CDATA[
+//example from Niconet report SLWN1999-12
+//Hinf
+A=[-1  0  4  5 -3 -2
+   -2  4 -7 -2  0  3
+   -6  9 -5  0  2 -1
+   -8  4  7 -1 -3  0
+    2  5  8 -9  1 -4
+    3 -5  8  0  2 -6];
+
+B=[-3 -4 -2  1  0
+    2  0  1 -5  2
+   -5 -7  0  7 -2
+    4 -6  1  1 -2
+   -3  9 -8  0  5
+    1 -2  3 -6 -2];
+
+C=[ 1 -1  2 -4  0 -3
+   -3  0  5 -1  1  1
+   -7  5  0 -8  2 -2
+    9 -3  4  0  3  7
+    0  1 -2  1 -6 -2];
+
+D=[ 1 -2 -3  0  0
+    0  4  0  1  0
+    5 -3 -4  0  1
+    0  1  0  1 -3
+    0  0  1  7  1];
+Gamma=10.18425636157899;
+[AK,BK,CK,DK] = hinf(A,B,C,D,2,2,Gamma)
+ ]]>
+  </EXAMPLE>
+  <SEE_ALSO>
+    <SEE_ALSO_ITEM>
+      <LINK>dhinf</LINK>
+    </SEE_ALSO_ITEM>
+  </SEE_ALSO>
+</MAN>
diff --git a/scilab/modules/cacsd/help/eng/imrep2ss.xml b/scilab/modules/cacsd/help/eng/imrep2ss.xml
new file mode 100644 (file)
index 0000000..813ca5d
--- /dev/null
@@ -0,0 +1,76 @@
+<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
+<!DOCTYPE MAN SYSTEM "../../manrev.dtd">
+<MAN>
+  <LANGUAGE>eng</LANGUAGE>
+  <TITLE>imrep2ss</TITLE>
+  <TYPE>Scilab Function</TYPE>
+  <DATE>April 1993</DATE>
+  <SHORT_DESCRIPTION name="imrep2ss"> state-space realization of an impulse response</SHORT_DESCRIPTION>
+  <CALLING_SEQUENCE>
+    <CALLING_SEQUENCE_ITEM>[sl]=imrep2ss(v [,deg])  </CALLING_SEQUENCE_ITEM>
+  </CALLING_SEQUENCE>
+  <PARAM>
+    <PARAM_INDENT>
+      <PARAM_ITEM>
+        <PARAM_NAME>v</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: vector coefficients of impulse response, <VERB>v(:,k)</VERB> is the kth sample</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>deg</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: integer (order required)</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>sl</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: <VERB>syslin</VERB> list</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+    </PARAM_INDENT>
+  </PARAM>
+  <DESCRIPTION>
+    <P>
+    Impulse response to linear system conversion (one input).
+    <VERB>v</VERB> must have an even number of columns.</P>
+  </DESCRIPTION>
+  <EXAMPLE>
+<![CDATA[
+s=poly(0,'s');
+H=[1/(s+0.5);2/(s-0.4)]   //strictly proper
+np=20;w=ldiv(H('num'),H('den'),np);
+rep=[w(1:np)';w(np+1:2*np)'];   //The impulse response
+H1=ss2tf(imrep2ss(rep))
+z=poly(0,'z');
+H=(2*z^2-3.4*z+1.5)/(z^2-1.6*z+0.8)     //Proper transfer function
+u=zeros(1,20);u(1)=1;
+rep=rtitr(H('num'),H('den'),u);   //Impulse rep. 
+//   <=> rep=ldiv(H('num'),H('den'),20)
+w=z*imrep2ss(rep)   //Realization with shifted impulse response 
+// i.e strictly proper to proper
+H2=ss2tf(w);
+ ]]>
+  </EXAMPLE>
+  <SEE_ALSO>
+    <SEE_ALSO_ITEM>
+      <LINK>frep2tf</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>arl2</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>time_id</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>armax</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>markp2ss</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>ldiv</LINK>
+    </SEE_ALSO_ITEM>
+  </SEE_ALSO>
+</MAN>
diff --git a/scilab/modules/cacsd/help/eng/invsyslin.xml b/scilab/modules/cacsd/help/eng/invsyslin.xml
new file mode 100644 (file)
index 0000000..df09f4c
--- /dev/null
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
+<!DOCTYPE MAN SYSTEM "../../manrev.dtd">
+<MAN>
+  <LANGUAGE>eng</LANGUAGE>
+  <TITLE>invsyslin</TITLE>
+  <TYPE>Scilab Function</TYPE>
+  <DATE>April 1993</DATE>
+  <SHORT_DESCRIPTION name="invsyslin"> system inversion</SHORT_DESCRIPTION>
+  <CALLING_SEQUENCE>
+    <CALLING_SEQUENCE_ITEM>[sl2]=invsyslin(sl1)   </CALLING_SEQUENCE_ITEM>
+  </CALLING_SEQUENCE>
+  <PARAM>
+    <PARAM_INDENT>
+      <PARAM_ITEM>
+        <PARAM_NAME>sl1,sl2</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: <VERB>syslin</VERB> lists (linear systems in state space representation)</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+    </PARAM_INDENT>
+  </PARAM>
+  <DESCRIPTION>
+    <P>
+    Utility function. Computes the state form of the inverse <VERB>sl2</VERB> of 
+    the linear system <VERB>sl1</VERB> (which is also given in state form).</P>
+    <P>
+    The <VERB>D</VERB>-matrix is supposed to be full rank. Old stuff used by 
+    <VERB>inv(S)</VERB> when <VERB>S</VERB> is a <VERB>syslin</VERB> list.</P>
+  </DESCRIPTION>
+  <SEE_ALSO>
+    <SEE_ALSO_ITEM>
+      <LINK>rowregul</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>inv</LINK>
+    </SEE_ALSO_ITEM>
+  </SEE_ALSO>
+</MAN>
diff --git a/scilab/modules/cacsd/help/eng/kpure.xml b/scilab/modules/cacsd/help/eng/kpure.xml
new file mode 100644 (file)
index 0000000..a59d788
--- /dev/null
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
+<!DOCTYPE MAN SYSTEM "../../manrev.dtd">
+<MAN>
+  <LANGUAGE>eng</LANGUAGE>
+  <TITLE>kpure</TITLE>
+  <TYPE>Scilab Function</TYPE>
+  <DATE>April 1993</DATE>
+  <SHORT_DESCRIPTION name="kpure"> continuous SISO system limit feedback gain</SHORT_DESCRIPTION>
+  <CALLING_SEQUENCE>
+    <CALLING_SEQUENCE_ITEM>g=kpure(sys)  </CALLING_SEQUENCE_ITEM>
+  </CALLING_SEQUENCE>
+  <PARAM>
+    <PARAM_INDENT>
+      <PARAM_ITEM>
+        <PARAM_NAME>sys</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: SISO linear system (syslin)</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>g</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: constant</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+    </PARAM_INDENT>
+  </PARAM>
+  <DESCRIPTION>
+    <P><VERB>kpure(sys)</VERB> computes the gains <VERB>g</VERB> such that the system
+    <VERB>sys</VERB> feedback by g (<VERB>sys/.g</VERB>) has  poles on imaginary axis.</P>
+  </DESCRIPTION>
+  <EXAMPLE>
+<![CDATA[
+s=poly(0,'s');
+h=syslin('c',(s-1)/(1+5*s+s^2+s^3))
+xbasc();evans(h)
+g=kpure(h)
+hf=h/.g(1)
+roots(denom(hf))
+ ]]>
+  </EXAMPLE>
+  <SEE_ALSO>
+    <SEE_ALSO_ITEM>
+      <LINK>evans</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>krac2</LINK>
+    </SEE_ALSO_ITEM>
+  </SEE_ALSO>
+</MAN>
diff --git a/scilab/modules/cacsd/help/eng/krac2.xml b/scilab/modules/cacsd/help/eng/krac2.xml
new file mode 100644 (file)
index 0000000..c024d3a
--- /dev/null
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
+<!DOCTYPE MAN SYSTEM "../../manrev.dtd">
+<MAN>
+  <LANGUAGE>eng</LANGUAGE>
+  <TITLE>krac2</TITLE>
+  <TYPE>Scilab Function</TYPE>
+  <DATE>April 1993</DATE>
+  <SHORT_DESCRIPTION name="krac2"> continuous SISO system limit feedback gain</SHORT_DESCRIPTION>
+  <CALLING_SEQUENCE>
+    <CALLING_SEQUENCE_ITEM>g=krac2(sys)  </CALLING_SEQUENCE_ITEM>
+  </CALLING_SEQUENCE>
+  <PARAM>
+    <PARAM_INDENT>
+      <PARAM_ITEM>
+        <PARAM_NAME>sys</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: SISO linear system (syslin)</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>g</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: constant</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+    </PARAM_INDENT>
+  </PARAM>
+  <DESCRIPTION>
+    <P><VERB>krac2(sys)</VERB> computes the gains <VERB>g</VERB> such that the system
+    <VERB>sys</VERB> fedback by g (<VERB>sys/.g</VERB>) has  2 real equal poles.</P>
+  </DESCRIPTION>
+  <EXAMPLE>
+<![CDATA[
+h=syslin('c',352*poly(-5,'s')/poly([0,0,2000,200,25,1],'s','c'));
+xbasc();evans(h,100)
+g=krac2(h)
+hf1=h/.g(1);roots(denom(hf1))
+hf2=h/.g(2);roots(denom(hf2))
+ ]]>
+  </EXAMPLE>
+  <SEE_ALSO>
+    <SEE_ALSO_ITEM>
+      <LINK>evans</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>kpure</LINK>
+    </SEE_ALSO_ITEM>
+  </SEE_ALSO>
+</MAN>
diff --git a/scilab/modules/cacsd/help/eng/lcf.xml b/scilab/modules/cacsd/help/eng/lcf.xml
new file mode 100644 (file)
index 0000000..5922dee
--- /dev/null
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
+<!DOCTYPE MAN SYSTEM "../../manrev.dtd">
+<MAN>
+  <LANGUAGE>eng</LANGUAGE>
+  <TITLE>lcf</TITLE>
+  <TYPE>Scilab Function</TYPE>
+  <DATE>April 1993</DATE>
+  <SHORT_DESCRIPTION name="lcf"> normalized coprime factorization</SHORT_DESCRIPTION>
+  <CALLING_SEQUENCE>
+    <CALLING_SEQUENCE_ITEM>[N,M]=lcf(sl)  </CALLING_SEQUENCE_ITEM>
+  </CALLING_SEQUENCE>
+  <PARAM>
+    <PARAM_INDENT>
+      <PARAM_ITEM>
+        <PARAM_NAME>sl</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: linear system given in state space or transfer function (<VERB>syslin</VERB> list)</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>N,M</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: two linear systems (<VERB>syslin</VERB> list)</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+    </PARAM_INDENT>
+  </PARAM>
+  <DESCRIPTION>
+    <P>
+    Computes normalized coprime factorization of the linear dynamic 
+    system <VERB>sl</VERB>.</P>
+    <P>
+      <VERB>sl = M^-1 N</VERB>
+    </P>
+  </DESCRIPTION>
+  <AUTHOR>F. D.; ;   </AUTHOR>
+</MAN>
diff --git a/scilab/modules/cacsd/help/eng/leqr.xml b/scilab/modules/cacsd/help/eng/leqr.xml
new file mode 100644 (file)
index 0000000..c1b6266
--- /dev/null
@@ -0,0 +1,99 @@
+<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
+<!DOCTYPE MAN SYSTEM "../../manrev.dtd">
+<MAN>
+  <LANGUAGE>eng</LANGUAGE>
+  <TITLE>lqr</TITLE>
+  <TYPE>Scilab Function</TYPE>
+  <DATE>April 1993</DATE>
+  <SHORT_DESCRIPTION name="leqr"> H-infinity LQ gain (full state)  </SHORT_DESCRIPTION>
+  <CALLING_SEQUENCE>
+    <CALLING_SEQUENCE_ITEM>[K,X,err]=leqr(P12,Vx)  </CALLING_SEQUENCE_ITEM>
+  </CALLING_SEQUENCE>
+  <PARAM>
+    <PARAM_INDENT>
+      <PARAM_ITEM>
+        <PARAM_NAME>P12</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: <VERB>syslin</VERB> list</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>Vx</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: symmetric nonnegative matrix (should be small enough)</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>K,X</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: two real matrices</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>err</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: a real number (l1 norm of LHS of Riccati equation)</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+    </PARAM_INDENT>
+  </PARAM>
+  <DESCRIPTION>
+    <P><VERB>leqr</VERB>  computes the linear suboptimal H-infinity LQ full-state gain
+    for the plant <VERB>P12=[A,B2,C1,D12]</VERB> in continuous or discrete time.</P>
+    <P><VERB>P12</VERB> is a <VERB>syslin</VERB> list (e.g. <VERB>P12=syslin('c',A,B2,C1,D12)</VERB>).</P>
+    <VERBATIM>
+<![CDATA[
+      [C1' ]               [Q  S]
+      [    ]  * [C1 D12] = [    ]
+      [D12']               [S' R]
+   ]]>
+    </VERBATIM>
+    <P><VERB>Vx</VERB> is related to the variance matrix of the noise <VERB>w</VERB> perturbing <VERB>x</VERB>;
+    (usually <VERB>Vx=gama^-2*B1*B1'</VERB>).</P>
+    <P>
+    The gain <VERB>K</VERB> is such that <VERB>A + B2*K</VERB> is stable.</P>
+    <P><VERB>X</VERB> is the stabilizing solution of the Riccati equation.</P>
+    <P>
+    For a continuous plant:</P>
+    <VERBATIM>
+<![CDATA[
+(A-B2*inv(R)*S')'*X+X*(A-B2*inv(R)*S')-X*(B2*inv(R)*B2'-Vx)*X+Q-S*inv(R)*S'=0
+   ]]>
+    </VERBATIM>
+    <VERBATIM>
+<![CDATA[
+K=-inv(R)*(B2'*X+S)
+   ]]>
+    </VERBATIM>
+    <P>
+    For a discrete time plant:</P>
+    <VERBATIM>
+<![CDATA[
+X-(Abar'*inv((inv(X)+B2*inv(R)*B2'-Vx))*Abar+Qbar=0
+   ]]>
+    </VERBATIM>
+    <VERBATIM>
+<![CDATA[
+K=-inv(R)*(B2'*inv(inv(X)+B2*inv(R)*B2'-Vx)*Abar+S')
+   ]]>
+    </VERBATIM>
+    <P>
+    with <VERB>Abar=A-B2*inv(R)*S'</VERB> and <VERB>Qbar=Q-S*inv(R)*S'</VERB></P>
+    <P>
+    The 3-blocks matrix pencils associated with these Riccati equations are:</P>
+    <VERBATIM>
+<![CDATA[
+               discrete                        continuous
+   |I  -Vx  0|   | A    0    B2|       |I   0   0|   | A    Vx    B2|
+  z|0   A'  0| - |-Q    I    -S|      s|0   I   0| - |-Q   -A'   -S |
+   |0   B2' 0|   | S'   0     R|       |0   0   0|   | S'   -B2'   R|
+   ]]>
+    </VERBATIM>
+  </DESCRIPTION>
+  <SEE_ALSO>
+    <SEE_ALSO_ITEM>
+      <LINK>lqr</LINK>
+    </SEE_ALSO_ITEM>
+  </SEE_ALSO>
+  <AUTHOR>F.D.;   </AUTHOR>
+</MAN>
diff --git a/scilab/modules/cacsd/help/eng/lft.xml b/scilab/modules/cacsd/help/eng/lft.xml
new file mode 100644 (file)
index 0000000..04a5c3f
--- /dev/null
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
+<!DOCTYPE MAN SYSTEM "../../manrev.dtd">
+<MAN>
+  <LANGUAGE>eng</LANGUAGE>
+  <TITLE>lft</TITLE>
+  <TYPE>Scilab Function</TYPE>
+  <DATE>April 1993</DATE>
+  <SHORT_DESCRIPTION name="lft"> linear fractional transformation</SHORT_DESCRIPTION>
+  <CALLING_SEQUENCE>
+    <CALLING_SEQUENCE_ITEM>[P1]=LFT(P,K)  </CALLING_SEQUENCE_ITEM>
+    <CALLING_SEQUENCE_ITEM>[P1]=LFT(P,r,K)  </CALLING_SEQUENCE_ITEM>
+    <CALLING_SEQUENCE_ITEM>[P1,r1]=LFT(P,r,Ps,rs)  </CALLING_SEQUENCE_ITEM>
+  </CALLING_SEQUENCE>
+  <PARAM>
+    <PARAM_INDENT>
+      <PARAM_ITEM>
+        <PARAM_NAME>P</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: linear system (<VERB>syslin</VERB> list), the ``augmented'' plant, implicitly partitioned into four blocks (two input ports and two output ports).</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>K</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: linear system (<VERB>syslin</VERB> list), the controller (possibly an ordinary gain).</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>r</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: 1x2 row vector, dimension of <VERB>P22</VERB></SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>Ps  </PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: linear system (<VERB>syslin</VERB> list), implicitly partitioned into four blocks (two input ports and two output ports).</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>rs  </PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: 1x2 row vector, dimension of <VERB>Ps22</VERB></SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+    </PARAM_INDENT>
+  </PARAM>
+  <DESCRIPTION>
+    <P>
+    Linear fractional transform between two standard plants
+    <VERB>P</VERB> and <VERB>Ps</VERB> in state space form or in
+    transfer form (<VERB>syslin</VERB> lists).</P>
+    <P>
+      <VERB>r= size(P22) rs=size(P22s)</VERB>
+    </P>
+    <P><VERB>LFT(P,r, K)</VERB> is the linear fractional transform
+    between <VERB>P</VERB> and a controller <VERB>K</VERB>
+    (<VERB>K</VERB> may be a gain or a controller in state space form
+    or in transfer form);</P>
+    <P><VERB>LFT(P,K)</VERB> is <VERB>LFT(P,r,K)</VERB> with
+    <VERB>r</VERB>=size of <VERB>K</VERB> transpose;</P>
+    <P>
+      <VERB>P1= P11+P12*K* (I-P22*K)^-1 *P21</VERB>
+    </P>
+    <P><VERB>[P1,r1]=LFT(P,r,Ps,rs)</VERB> returns the generalized (2
+    ports) lft of <VERB>P</VERB> and <VERB>Ps</VERB>.</P>
+    <P><VERB>P1</VERB> is the pair two-port interconnected plant and the
+    partition of <VERB>P1</VERB> into 4 blocks in given by
+    <VERB>r1</VERB> which is the dimension of the <VERB>22</VERB>
+    block of <VERB>P1</VERB>.</P>
+    <P><VERB>P</VERB> and <VERB>R</VERB> can be PSSDs i.e. may admit a
+    polynomial <VERB>D</VERB> matrix.</P>
+  </DESCRIPTION>
+  <EXAMPLE>
+<![CDATA[
+s=poly(0,'s');
+P=[1/s, 1/(s+1); 1/(s+2),2/s]; K= 1/(s-1);
+lft(P,K)
+lft(P,[1,1],K)
+P(1,1)+P(1,2)*K*inv(1-P(2,2)*K)*P(2,1)   //Numerically dangerous!
+ss2tf(lft(tf2ss(P),tf2ss(K)))
+lft(P,-1)
+f=[0,0;0,1];w=P/.f; w(1,1)
+//Improper plant (PID control)
+W=[1,1;1,1/(s^2+0.1*s)];K=1+1/s+s
+lft(W,[1,1],K); ss2tf(lft(tf2ss(W),[1,1],tf2ss(K)))
+ ]]>
+  </EXAMPLE>
+  <SEE_ALSO>
+    <SEE_ALSO_ITEM>
+      <LINK>sensi</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>augment</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>feedback</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>sysdiag</LINK>
+    </SEE_ALSO_ITEM>
+  </SEE_ALSO>
+</MAN>
diff --git a/scilab/modules/cacsd/help/eng/lin.xml b/scilab/modules/cacsd/help/eng/lin.xml
new file mode 100644 (file)
index 0000000..9ec1cee
--- /dev/null
@@ -0,0 +1,89 @@
+<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
+<!DOCTYPE MAN SYSTEM "../../manrev.dtd">
+<MAN>
+  <LANGUAGE>eng</LANGUAGE>
+  <TITLE>lin</TITLE>
+  <TYPE>Scilab Function</TYPE>
+  <DATE>April 1993</DATE>
+  <SHORT_DESCRIPTION name="lin"> linearization</SHORT_DESCRIPTION>
+  <CALLING_SEQUENCE>
+    <CALLING_SEQUENCE_ITEM>[A,B,C,D]=lin(sim,x0,u0)  </CALLING_SEQUENCE_ITEM>
+    <CALLING_SEQUENCE_ITEM>[sl]=lin(sim,x0,u0)  </CALLING_SEQUENCE_ITEM>
+  </CALLING_SEQUENCE>
+  <PARAM>
+    <PARAM_INDENT>
+      <PARAM_ITEM>
+        <PARAM_NAME>sim</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: function</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>x0, u0</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: vectors of compatible dimensions</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>A,B,C,D</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: real matrices</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>sl</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: <VERB>syslin</VERB> list</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+    </PARAM_INDENT>
+  </PARAM>
+  <DESCRIPTION>
+    <P>
+    linearization of the non-linear system <VERB>[y,xdot]=sim(x,u)</VERB>
+    around <VERB>x0,u0</VERB>.</P>
+    <P><VERB>sim</VERB> is a function which computes <VERB>y</VERB> and <VERB>xdot</VERB>.</P>
+    <P>
+    The output is a linear system (<VERB>syslin</VERB> list) <VERB>sl</VERB> or the 
+    four matrices <VERB>(A,B,C,D)</VERB></P>
+    <P>
+    For example, if <VERB>ftz</VERB> is the function passed to ode e.g.</P>
+    <VERBATIM>
+<![CDATA[
+[zd]=ftz(t,z,u)
+   ]]>
+    </VERBATIM>
+    <P>
+    and if we assume that <VERB>y=x</VERB></P>
+    <P><VERB>[z]=ode(x0,t0,tf,list(ftz,u)</VERB> compute <VERB>x(tf)</VERB>.</P>
+    <P>
+    If <VERB>simula</VERB> is the following function:</P>
+    <VERBATIM>
+<![CDATA[
+deff('[y,xd]=simula(x,u)','xd=ftz(tf,x,u); y=x;');
+   ]]>
+    </VERBATIM>
+    <P>
+    the tangent linear system <VERB>sl</VERB> can be obtained by:</P>
+    <VERBATIM>
+<![CDATA[
+[A,B,C,D]=lin(simula,z,u)
+sl = syslin('c',A,B,C,D,x0)
+   ]]>
+    </VERBATIM>
+  </DESCRIPTION>
+  <EXAMPLE>
+<![CDATA[
+deff('[y,xdot]=sim(x,u)','xdot=[u*sin(x);-u*x^2];y=xdot(1)+xdot(2)')
+sl=lin(sim,1,2);
+ ]]>
+  </EXAMPLE>
+  <SEE_ALSO>
+    <SEE_ALSO_ITEM>
+      <LINK>external</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>derivat</LINK>
+    </SEE_ALSO_ITEM>
+  </SEE_ALSO>
+</MAN>
diff --git a/scilab/modules/cacsd/help/eng/linf.xml b/scilab/modules/cacsd/help/eng/linf.xml
new file mode 100644 (file)
index 0000000..9bc94ef
--- /dev/null
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
+<!DOCTYPE MAN SYSTEM "../../manrev.dtd">
+<MAN>
+  <LANGUAGE>eng</LANGUAGE>
+  <TITLE>linf</TITLE>
+  <TYPE>Scilab Function</TYPE>
+  <DATE>April 1993</DATE>
+  <SHORT_DESCRIPTION name="linf"> infinity norm</SHORT_DESCRIPTION>
+  <CALLING_SEQUENCE>
+    <CALLING_SEQUENCE_ITEM>linf(g [,eps],[tol])   </CALLING_SEQUENCE_ITEM>
+  </CALLING_SEQUENCE>
+  <PARAM>
+    <PARAM_INDENT>
+      <PARAM_ITEM>
+        <PARAM_NAME>g</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: is a <VERB>syslin</VERB> linear system.</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>eps</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: is error tolerance on n.</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>tol</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: threshold for imaginary axis poles.</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+    </PARAM_INDENT>
+  </PARAM>
+  <DESCRIPTION>
+    <P>
+    returns the L_infinity norm of <VERB>g</VERB>.</P>
+    <VERBATIM>
+<![CDATA[
+    n=sup [sigmax(g(jw)] 
+       w
+   ]]>
+    </VERBATIM>
+    <P>
+    (sigmax largest singular value).</P>
+  </DESCRIPTION>
+  <SEE_ALSO>
+    <SEE_ALSO_ITEM>
+      <LINK>h_norm</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>linfn</LINK>
+    </SEE_ALSO_ITEM>
+  </SEE_ALSO>
+</MAN>
diff --git a/scilab/modules/cacsd/help/eng/linfn.xml b/scilab/modules/cacsd/help/eng/linfn.xml
new file mode 100644 (file)
index 0000000..7d0e5cd
--- /dev/null
@@ -0,0 +1,92 @@
+<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
+<!DOCTYPE MAN SYSTEM "../../manrev.dtd">
+<MAN>
+  <LANGUAGE>eng</LANGUAGE>
+  <TITLE>linfn</TITLE>
+  <TYPE>Scilab Function</TYPE>
+  <DATE>April 1993</DATE>
+  <SHORT_DESCRIPTION name="linfn"> infinity norm</SHORT_DESCRIPTION>
+  <CALLING_SEQUENCE>
+    <CALLING_SEQUENCE_ITEM>[x,freq]=linfn(G,PREC,RELTOL,options);  </CALLING_SEQUENCE_ITEM>
+  </CALLING_SEQUENCE>
+  <PARAM>
+    <PARAM_INDENT>
+      <PARAM_ITEM>
+        <PARAM_NAME>G</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: is a <VERB>syslin</VERB> list</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>PREC</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: desired relative accuracy on the norm</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>RELTOL</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: relative threshold to decide when an eigenvalue can be  considered on the imaginary axis.</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>options</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: available options are <VERB>'trace'</VERB> or <VERB>'cond'</VERB></SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>x</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>is the computed norm.</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>freq</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: vector</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+    </PARAM_INDENT>
+  </PARAM>
+  <DESCRIPTION>
+    <P>
+    Computes the Linf (or Hinf) norm of <VERB>G</VERB>
+    This norm is well-defined as soon as the realization
+    <VERB>G=(A,B,C,D)</VERB> has no imaginary eigenvalue which is both 
+    controllable and observable.</P>
+    <P><VERB>freq</VERB> is a list of the frequencies for which <VERB>||G||</VERB> is 
+    attained,i.e., such that <VERB>||G (j om)|| = ||G||</VERB>.</P>
+    <P>
+    If -1 is in the list, the norm is attained at infinity.</P>
+    <P>
+    If -2 is in the list, <VERB>G</VERB> is all-pass in some direction so that 
+    <VERB>||G (j omega)|| = ||G||</VERB> for all frequencies omega.</P>
+    <P>
+    The algorithm follows the paper by G. Robel 
+    (AC-34 pp. 882-884, 1989).
+    The case <VERB>D=0</VERB> is not treated separately due to superior 
+    accuracy of the general method when <VERB>(A,B,C)</VERB> is nearly 
+    non minimal.</P>
+    <P>
+    The <VERB>'trace'</VERB> option traces each bisection step, i.e., displays 
+    the lower and upper bounds and the current test point.</P>
+    <P>
+    The <VERB>'cond'</VERB> option estimates a confidence index on the computed 
+    value and issues a warning if computations are 
+    ill-conditioned</P>
+    <P>
+    In the general case (<VERB>A</VERB> neither stable nor anti-stable), 
+    no upper bound is  prespecified.</P>
+    <P>
+    If by contrast <VERB>A</VERB> is stable or anti stable, lower
+    and upper bounds are computed using the associated 
+    Lyapunov solutions.</P>
+  </DESCRIPTION>
+  <SEE_ALSO>
+    <SEE_ALSO_ITEM>
+      <LINK>h_norm</LINK>
+    </SEE_ALSO_ITEM>
+  </SEE_ALSO>
+  <AUTHOR>P. Gahinet</AUTHOR>
+</MAN>
diff --git a/scilab/modules/cacsd/help/eng/linmeq.xml b/scilab/modules/cacsd/help/eng/linmeq.xml
new file mode 100644 (file)
index 0000000..9c77f41
--- /dev/null
@@ -0,0 +1,342 @@
+<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
+<!DOCTYPE MAN SYSTEM "../../manrev.dtd">
+<MAN>
+  <LANGUAGE>eng</LANGUAGE>
+  <TITLE>linmeq</TITLE>
+  <TYPE>Scilab Function</TYPE>
+  <DATE>2001</DATE>
+  <SHORT_DESCRIPTION name="linmeq"> Sylvester and Lyapunov equations solver</SHORT_DESCRIPTION>
+  <CALLING_SEQUENCE>
+    <CALLING_SEQUENCE_ITEM>[X(,sep)] = linmeq(task,A,(B,)C,flag,trans(,schur))  </CALLING_SEQUENCE_ITEM>
+  </CALLING_SEQUENCE>
+  <PARAM>
+    <PARAM_INDENT>
+      <PARAM_ITEM>
+        <PARAM_NAME>task</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: integer option to determine the equation type:</SP>
+          <PARAM_INDENT>
+            <PARAM_ITEM>
+              <PARAM_NAME>=1</PARAM_NAME>
+              <PARAM_DESCRIPTION>
+                <SP>:  solve the Sylvester equation (1a) or (1b);</SP>
+              </PARAM_DESCRIPTION>
+            </PARAM_ITEM>
+            <PARAM_ITEM>
+              <PARAM_NAME>=2</PARAM_NAME>
+              <PARAM_DESCRIPTION>
+                <SP>:  solve the Lyapunov equation (2a) or (2b);</SP>
+              </PARAM_DESCRIPTION>
+            </PARAM_ITEM>
+            <PARAM_ITEM>
+              <PARAM_NAME>=3</PARAM_NAME>
+              <PARAM_DESCRIPTION>
+                <SP>: solve for the Cholesky factor op(X) the Lyapunov equation (3a) or (3b).</SP>
+              </PARAM_DESCRIPTION>
+            </PARAM_ITEM>
+          </PARAM_INDENT>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>A</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: real matrix</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>B</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: real matrix</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>C</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: real matrix</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>flag</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: (optional) integer vector of length 3 or 2 containing options.</SP>
+          <PARAM_INDENT>
+            <PARAM_ITEM>
+              <PARAM_NAME>task</PARAM_NAME>
+              <PARAM_DESCRIPTION>
+                <SP>= 1 : flag has length 3</SP>
+                <PARAM_INDENT>
+                  <PARAM_ITEM>
+                    <PARAM_NAME>flag(1)</PARAM_NAME>
+                    <PARAM_DESCRIPTION>
+                      <SP>= 0 : solve the continuous-time equation (1a); otherwise, solve the discrete-time equation (1b).</SP>
+                    </PARAM_DESCRIPTION>
+                  </PARAM_ITEM>
+                  <PARAM_ITEM>
+                    <PARAM_NAME>flag(2)  </PARAM_NAME>
+                    <PARAM_DESCRIPTION>
+                      <SP>= 1 : A is (quasi) upper triangular;</SP>
+                    </PARAM_DESCRIPTION>
+                  </PARAM_ITEM>
+                  <PARAM_ITEM>
+                    <PARAM_NAME>flag(2)  </PARAM_NAME>
+                    <PARAM_DESCRIPTION>
+                      <SP>= 2 : A is upper Hessenberg;</SP>
+                    </PARAM_DESCRIPTION>
+                  </PARAM_ITEM>
+                  <PARAM_ITEM>
+                    <PARAM_NAME>otherwise</PARAM_NAME>
+                    <PARAM_DESCRIPTION>
+                      <SP>A is in general form.</SP>
+                    </PARAM_DESCRIPTION>
+                  </PARAM_ITEM>
+                  <PARAM_ITEM>
+                    <PARAM_NAME>flag(3)  </PARAM_NAME>
+                    <PARAM_DESCRIPTION>
+                      <SP>= 1 : B is (quasi) upper triangular;</SP>
+                    </PARAM_DESCRIPTION>
+                  </PARAM_ITEM>
+                  <PARAM_ITEM>
+                    <PARAM_NAME>flag(3)  </PARAM_NAME>
+                    <PARAM_DESCRIPTION>
+                      <SP>= 2 : B is upper Hessenberg;</SP>
+                    </PARAM_DESCRIPTION>
+                  </PARAM_ITEM>
+                  <PARAM_ITEM>
+                    <PARAM_NAME>otherwise,  </PARAM_NAME>
+                    <PARAM_DESCRIPTION>
+                      <SP>B is in general form.</SP>
+                    </PARAM_DESCRIPTION>
+                  </PARAM_ITEM>
+                </PARAM_INDENT>
+              </PARAM_DESCRIPTION>
+            </PARAM_ITEM>
+            <PARAM_ITEM>
+              <PARAM_NAME>task</PARAM_NAME>
+              <PARAM_DESCRIPTION>
+                <SP>= 2 : flag has length 2</SP>
+                <PARAM_INDENT>
+                  <PARAM_ITEM>
+                    <PARAM_NAME>flag(1)</PARAM_NAME>
+                    <PARAM_DESCRIPTION>
+                      <SP>: if 0 solve continuous-time equation
+            (2a), otherwise, solve discrete-time equation (2b).</SP>
+                    </PARAM_DESCRIPTION>
+                  </PARAM_ITEM>
+                  <PARAM_ITEM>
+                    <PARAM_NAME>flag(2) </PARAM_NAME>
+                    <PARAM_DESCRIPTION>
+                      <SP>= 1 : A is (quasi) upper triangular     otherwise, A is in general form.</SP>
+                    </PARAM_DESCRIPTION>
+                  </PARAM_ITEM>
+                </PARAM_INDENT>
+              </PARAM_DESCRIPTION>
+            </PARAM_ITEM>
+            <PARAM_ITEM>
+              <PARAM_NAME>task</PARAM_NAME>
+              <PARAM_DESCRIPTION>
+                <SP>= 3 : flag has length 2</SP>
+                <PARAM_INDENT>
+                  <PARAM_ITEM>
+                    <PARAM_NAME>flag(1)  </PARAM_NAME>
+                    <PARAM_DESCRIPTION>
+                      <SP>= 0 : solve continuous-time equation (3a); otherwise, solve discrete-time equation (3b).</SP>
+                    </PARAM_DESCRIPTION>
+                  </PARAM_ITEM>
+                  <PARAM_ITEM>
+                    <PARAM_NAME>flag(2)  </PARAM_NAME>
+                    <PARAM_DESCRIPTION>
+                      <SP>= 1 : A is (quasi) upper triangular; otherwise, A is in general form.</SP>
+                    </PARAM_DESCRIPTION>
+                  </PARAM_ITEM>
+                </PARAM_INDENT>
+              </PARAM_DESCRIPTION>
+            </PARAM_ITEM>
+          </PARAM_INDENT>
+          <P>
+     Default:    flag(1) = 0, flag(2) = 0 (, flag(3) = 0).
+    </P>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>trans</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: (optional) integer specifying a transposition option.</SP>
+          <PARAM_INDENT>
+            <PARAM_ITEM>
+              <PARAM_NAME>=  </PARAM_NAME>
+              <PARAM_DESCRIPTION>
+                <SP>0 : solve the equations (1) - (3) with op(M) = M.</SP>
+              </PARAM_DESCRIPTION>
+            </PARAM_ITEM>
+            <PARAM_ITEM>
+              <PARAM_NAME>=  </PARAM_NAME>
+              <PARAM_DESCRIPTION>
+                <SP>1 : solve the equations (1) - (3) with op(M) = M'.</SP>
+              </PARAM_DESCRIPTION>
+            </PARAM_ITEM>
+            <PARAM_ITEM>
+              <PARAM_NAME>=  </PARAM_NAME>
+              <PARAM_DESCRIPTION>
+                <SP>2 : solve the equations (1) with op(A) = A';  op(B) = B;</SP>
+              </PARAM_DESCRIPTION>
+            </PARAM_ITEM>
+            <PARAM_ITEM>
+              <PARAM_NAME>=  </PARAM_NAME>
+              <PARAM_DESCRIPTION>
+                <SP>3 : solve the equations (1) with op(A) = A;   op(B) = B'.</SP>
+              </PARAM_DESCRIPTION>
+            </PARAM_ITEM>
+          </PARAM_INDENT>
+          <P>
+     Default:    trans = 0.
+    </P>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>schur</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: (optional) integer specifying whether the Hessenberg-Schur or Schur method should be used. Available for task = 1.</SP>
+          <PARAM_INDENT>
+            <PARAM_ITEM>
+              <PARAM_NAME>= 1 : Hessenberg-Schur method (one matrix is reduced</PARAM_NAME>
+              <PARAM_DESCRIPTION>
+                <SP>to Schur form).</SP>
+              </PARAM_DESCRIPTION>
+            </PARAM_ITEM>
+            <PARAM_ITEM>
+              <PARAM_NAME>= 2 : Schur method (two matrices are reduced to Schur</PARAM_NAME>
+              <PARAM_DESCRIPTION>
+                <SP>form).</SP>
+              </PARAM_DESCRIPTION>
+            </PARAM_ITEM>
+          </PARAM_INDENT>
+          <P>
+    Default:    schur = 1.
+  </P>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>X</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>:</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>sep</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: (optional) estimator of Sep(op(A),-op(A)') for (2.a) or Sepd(A,A') for (2.b).</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+    </PARAM_INDENT>
+  </PARAM>
+  <DESCRIPTION>
+    <P>
+    linmeq  function for solving Sylvester and Lyapunov equations
+    using SLICOT routines SB04MD, SB04ND, SB04PD, SB04QD, 
+    SB04RD, SB03MD, and SB03OD.
+  </P>
+    <VERBATIM>
+<![CDATA[
+       [X] = linmeq(1,A,B,C,flag,trans,schur)
+   [X,sep] = linmeq(2,A,C,flag,trans)
+       [X] = linmeq(2,A,C,flag,trans)
+       [X] = linmeq(3,A,C,flag,trans)
+   ]]>
+    </VERBATIM>
+    <P>
+    linmeq solves various Sylvester and Lyapunov matrix equations:
+  </P>
+    <VERBATIM>
+<![CDATA[
+        op(A)*X + X*op(B) = C,                           (1a)
+
+        op(A)*X*op(B) + X = C,                           (1b)
+
+        op(A)'*X + X*op(A) = C,                          (2a)
+
+        op(A)'*X*op(A) - X = C,                          (2b)
+
+        op(A)'*(op(X)'*op(X)) + (op(X)'*op(X))*op(A) =
+                              -  op(C)'*op(C),           (3a)
+
+        op(A)'*(op(X)'*op(X))*op(A) - op(X)'*op(X) =
+                                    - op(C)'*op(C),      (3b)
+   ]]>
+    </VERBATIM>
+    <P>
+    where op(M) = M, or M'.
+  </P>
+  </DESCRIPTION>
+  <SECTION label="Comments">
+    <ITEMIZE>
+      <ITEM label="1.">
+        <SP>For equation (1a) or (1b), when schur = 1, the Hessenberg-Schur
+method is used, reducing one matrix to Hessenberg form and the other
+one to a real Schur form. Otherwise, both matrices are reduced to real
+Schur forms. If one or both matrices are already reduced to
+Schur/Hessenberg forms, this could be specified by flag(2) and
+flag(3). For general matrices, the Hessenberg-Schur method could be
+significantly more efficient than the Schur method.</SP>
+      </ITEM>
+      <ITEM label="2.">
+        <SP>For equation (2a) or (2b), matrix C is assumed symmetric.</SP>
+      </ITEM>
+      <ITEM label="3.">
+        <SP>For equation (3a) or (3b), matrix A must be stable or convergent, respectively.</SP>
+      </ITEM>
+      <ITEM label="4.">
+        <SP>For equation (3a) or (3b), the computed matrix X is the Cholesky factor of the solution, i.e., the real solution is op(X)'*op(X), where X is an upper triangular matrix.</SP>
+      </ITEM>
+    </ITEMIZE>
+  </SECTION>
+  <SECTION label="Revisions">
+    <P>
+    V. Sima, Katholieke Univ. Leuven, Belgium, May 1999, May, Sep. 2000. V. Sima, University of Bucharest, Romania, May 2000.</P>
+  </SECTION>
+  <EXAMPLE>
+<![CDATA[
+//(1a)
+n=40;m=30;
+A=rand(n,n);C=rand(n,m);B=rand(m,m);
+X = linmeq(1,A,B,C);
+norm(A*X+X*B-C,1)
+//(1b)
+flag=[1,0,0]
+X = linmeq(1,A,B,C,flag);
+norm(A*X*B+X-C,1)
+//(2a)
+A=rand(n,n);C=rand(A);C=C+C';
+X = linmeq(2,A,C);
+norm(A'*X + X*A -C,1)
+//(2b)
+X = linmeq(2,A,C,[1 0]);
+norm(A'*X*A -X-C,1)
+//(3a)
+A=rand(n,n);
+A=A-(max(real(spec(A)))+1)*eye(); //shift eigenvalues
+C=rand(A);
+X=linmeq(3,A,C);
+norm(A'*X'*X+X'*X*A +C'*C,1)
+//(3b)
+A = [-0.02, 0.02,-0.10, 0.02,-0.03, 0.12;
+      0.02, 0.14, 0.12,-0.10,-0.02,-0.14;     
+     -0.10, 0.12, 0.05, 0.03,-0.04,-0.04;     
+      0.02,-0.10, 0.03,-0.06, 0.08, 0.11;      
+     -0.03,-0.02,-0.04, 0.08, 0.14,-0.07;   
+      0.12,-0.14,-0.04, 0.11,-0.07, 0.04]    
+
+C=rand(A);
+X=linmeq(3,A,C,[1 0]);
+norm(A'*X'*X*A - X'*X +C'*C,1)
+ ]]>
+  </EXAMPLE>
+  <SEE_ALSO>
+    <SEE_ALSO_ITEM>
+      <LINK>sylv</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>lyap</LINK>
+    </SEE_ALSO_ITEM>
+  </SEE_ALSO>
+  <AUTHOR>H. Xu, TU Chemnitz, FR Germany, Dec. 1998.  </AUTHOR>
+</MAN>
diff --git a/scilab/modules/cacsd/help/eng/lqe.xml b/scilab/modules/cacsd/help/eng/lqe.xml
new file mode 100644 (file)
index 0000000..a13a176
--- /dev/null
@@ -0,0 +1,130 @@
+<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
+<!DOCTYPE MAN SYSTEM "../../manrev.dtd">
+<MAN>
+  <LANGUAGE>eng</LANGUAGE>
+  <TITLE>lqe</TITLE>
+  <TYPE>Scilab Function</TYPE>
+  <DATE>April 1993</DATE>
+  <SHORT_DESCRIPTION name="lqe"> linear quadratic estimator (Kalman Filter)  </SHORT_DESCRIPTION>
+  <CALLING_SEQUENCE>
+    <CALLING_SEQUENCE_ITEM>[K,X]=lqe(P21)   </CALLING_SEQUENCE_ITEM>
+  </CALLING_SEQUENCE>
+  <PARAM>
+    <PARAM_INDENT>
+      <PARAM_ITEM>
+        <PARAM_NAME>P21</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: <VERB>syslin</VERB> list</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>K, X</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: real matrices</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+    </PARAM_INDENT>
+  </PARAM>
+  <DESCRIPTION>
+    <P><VERB>lqe</VERB> returns the Kalman gain for the filtering
+    problem in continuous or discrete time.</P>
+    <P><VERB>P21</VERB> is a <VERB>syslin</VERB> list representing the system <VERB>P21=[A,B1,C2,D21] P21=syslin('c',A,B1,C2,D21) or P21=syslin('d',A,B1,C2,D21)</VERB></P>
+    <P>
+    The input to <VERB>P21</VERB> is a white noise with variance:</P>
+    <VERBATIM>
+<![CDATA[
+     [B1 ]               [Q  S]
+BigV=[   ] [ B1' D21'] = [    ]
+     [D21]               [S' R]
+   ]]>
+    </VERBATIM>
+    <P><VERB>X</VERB> is the solution of the stabilizing Riccati 
+    equation and <VERB>A+K*C2</VERB> is stable.</P>
+    <P>
+    In continuous time:</P>
+    <VERBATIM>
+<![CDATA[
+(A-S*inv(R)*C2)*X+X*(A-S*inv(R)*C2)'-X*C2'*inv(R)*C2*X+Q-S*inv(R)*S'=0
+   ]]>
+    </VERBATIM>
+    <VERBATIM>
+<![CDATA[
+K=-(X*C2'+S)*inv(R)
+   ]]>
+    </VERBATIM>
+    <P>
+    In discrete time:</P>
+    <VERBATIM>
+<![CDATA[
+X=A*X*A'-(A*X*C2'+B1*D21')*pinv(C2*X*C2'+D21*D21')*(C2*X*A'+D21*B1')+B1*B1'
+   ]]>
+    </VERBATIM>
+    <P>
+      <VERB>K=-(A*X*C2'+B1*D21')*pinv(C2*X*C2'+D21*D21')</VERB>
+    </P>
+    <P><VERB>xhat(t+1)= E(x(t+1)| y(0),...,y(t))</VERB> (one-step predicted <VERB>x</VERB>)
+    satisfies the recursion:</P>
+    <VERBATIM>
+<![CDATA[
+xhat(t+1)=(A+K*C2)*xhat(t) - K*y(t).
+   ]]>
+    </VERBATIM>
+  </DESCRIPTION>
+  <EXAMPLE>
+<![CDATA[
+//Assume the equations
+//.
+//x = Ax + Ge
+//y = Cx + v
+//with
+//E ee' = Q_e,    Evv' = R,    Eev' = N 
+//
+//This is equivalent to
+//.
+//x = Ax  + B1 w
+//y = C2x + D21 w
+//with E { [Ge ]  [Ge v]' } = E { [B1w ] [B1w D21w]' } = bigR =
+//         [ v ]                  [D21w]    
+//
+//[B1*B1'  B1*D21';
+// D21*B1'  D21*D21']  
+//=
+//[G*Q_e*G' G*N;
+// N*G' R]
+
+//To find (B1,D21) given (G,Q_e,R,N) form bigR =[G*Q_e*G' G*N;N'*G' R].
+//Then [W,Wt]=fullrf(bigR);  B1=W(1:size(G,1),:);
+//D21=W(($+1-size(C2,1)):$,:)
+//
+//P21=syslin('c',A,B1,C2,D21);
+//[K,X]=lqe(P21);
+
+//Example:
+nx=5;ne=2;ny=3;
+A=-diag(1:nx);G=ones(nx,ne);
+C=ones(ny,nx); Q_e(ne,ne)=1; R=diag(1:ny); N=zeros(ne,ny);
+bigR =[G*Q_e*G' G*N;N'*G' R];
+[W,Wt]=fullrf(bigR);B1=W(1:size(G,1),:);
+D21=W(($+1-size(C,1)):$,:);
+C2=C;
+P21=syslin('c',A,B1,C2,D21);
+[K,X]=lqe(P21);
+//Riccati check:
+S=G*N;Q=B1*B1';
+(A-S*inv(R)*C2)*X+X*(A-S*inv(R)*C2)'-X*C2'*inv(R)*C2*X+Q-S*inv(R)*S'
+
+//Stability check:
+spec(A+K*C)
+ ]]>
+  </EXAMPLE>
+
+  <SEE_ALSO>
+    <SEE_ALSO_ITEM>
+      <LINK>lqr</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>observer</LINK>
+    </SEE_ALSO_ITEM>
+  </SEE_ALSO>
+  <AUTHOR>F. D.   </AUTHOR>
+</MAN>
diff --git a/scilab/modules/cacsd/help/eng/lqg.xml b/scilab/modules/cacsd/help/eng/lqg.xml
new file mode 100644 (file)
index 0000000..babb340
--- /dev/null
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
+<!DOCTYPE MAN SYSTEM "../../manrev.dtd">
+<MAN>
+  <LANGUAGE>eng</LANGUAGE>
+  <TITLE>lqg</TITLE>
+  <TYPE>Scilab Function</TYPE>
+  <DATE>April 1993</DATE>
+  <SHORT_DESCRIPTION name="lqg"> LQG compensator</SHORT_DESCRIPTION>
+  <CALLING_SEQUENCE>
+    <CALLING_SEQUENCE_ITEM>[K]=lqg(P,r)  </CALLING_SEQUENCE_ITEM>
+  </CALLING_SEQUENCE>
+  <PARAM>
+    <PARAM_INDENT>
+      <PARAM_ITEM>
+        <PARAM_NAME>P</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: <VERB>syslin</VERB> list (augmented plant) in state-space form</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>r</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: 1x2 row vector = (number of measurements, number of inputs)  (dimension of  the 2,2 part of <VERB>P</VERB>)</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>K</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: <VERB>syslin</VERB> list (controller)</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+    </PARAM_INDENT>
+  </PARAM>
+  <DESCRIPTION>
+    <P><VERB>lqg</VERB>  computes the linear optimal LQG (H2) controller for the 
+    &quot;augmented&quot; plant <VERB>P=syslin('c',A,B,C,D)</VERB> (continuous time) or 
+    <VERB>P=syslin('d',A,B,C,D)</VERB> (discrete time).</P>
+    <P>
+    The function <VERB>lqg2stan</VERB> returns <VERB>P</VERB> and <VERB>r</VERB> given the
+    nominal plant, weighting terms and variances of noises.</P>
+    <P><VERB>K</VERB> is given by the following ABCD matrices: 
+    <VERB>[A+B*Kc+Kf*C+Kf*D*Kc,-Kf,Kc,0]</VERB> where <VERB>Kc=lqr(P12)</VERB>
+    is the controller gain and <VERB>Kf=lqe(P21)</VERB> is the filter gain.
+    See example in <VERB>lqg2stan</VERB>.</P>
+  </DESCRIPTION>
+  <SEE_ALSO>
+    <SEE_ALSO_ITEM>
+      <LINK>lqg2stan</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>lqr</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>lqe</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>h_inf</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>obscont</LINK>
+    </SEE_ALSO_ITEM>
+  </SEE_ALSO>
+  <AUTHOR>F.D.  </AUTHOR>
+</MAN>
diff --git a/scilab/modules/cacsd/help/eng/lqg2stan.xml b/scilab/modules/cacsd/help/eng/lqg2stan.xml
new file mode 100644 (file)
index 0000000..a256b40
--- /dev/null
@@ -0,0 +1,120 @@
+<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
+<!DOCTYPE MAN SYSTEM "../../manrev.dtd">
+<MAN>
+  <LANGUAGE>eng</LANGUAGE>
+  <TITLE>lqg2stan</TITLE>
+  <TYPE>Scilab Function</TYPE>
+  <DATE>April 1993</DATE>
+  <SHORT_DESCRIPTION name="lqg2stan"> LQG to standard problem</SHORT_DESCRIPTION>
+  <CALLING_SEQUENCE>
+    <CALLING_SEQUENCE_ITEM>[P,r]=lqg2stan(P22,bigQ,bigR)  </CALLING_SEQUENCE_ITEM>
+  </CALLING_SEQUENCE>
+  <PARAM>
+    <PARAM_INDENT>
+      <PARAM_ITEM>
+        <PARAM_NAME>P22</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: <VERB>syslin</VERB> list (nominal plant) in state-space form</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>bigQ</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: <VERB>[Q,S;S',N]</VERB> (symmetric) weighting matrix</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>bigR</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: <VERB>[R,T;T',V]</VERB> (symmetric) covariance matrix</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>r</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: <VERB>1</VERB>x<VERB>2</VERB> row vector = (number of measurements, number of inputs)  (dimension of  the 2,2 part of <VERB>P</VERB>)</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>P</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: <VERB>syslin</VERB> list (augmented plant)</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+    </PARAM_INDENT>
+  </PARAM>
+  <DESCRIPTION>
+    <P><VERB>lqg2stan</VERB>  returns the augmented plant for linear LQG (H2) controller 
+    design.</P>
+    <P><VERB>P22=syslin(dom,A,B2,C2)</VERB> is the nominal plant; it can be in continuous 
+    time (<VERB>dom='c'</VERB>) or discrete time (<VERB>dom='d'</VERB>).</P>
+    <VERBATIM>
+<![CDATA[
+  . 
+  x = Ax + w1 + B2u
+  y = C2x + w2
+   ]]>
+    </VERBATIM>
+    <P>
+    for continuous time plant.</P>
+    <VERBATIM>
+<![CDATA[
+  x[n+1]= Ax[n] + w1 + B2u
+      y = C2x + w2
+   ]]>
+    </VERBATIM>
+    <P>
+    for discrete time plant.</P>
+    <P>
+    The (instantaneous) cost function is <VERB>[x' u'] bigQ [x;u]</VERB>.</P>
+    <P>
+    The covariance of <VERB>[w1;w2]</VERB> is <VERB>E[w1;w2] [w1',w2'] = bigR</VERB></P>
+    <P>
+    If <VERB>[B1;D21]</VERB> is a factor of <VERB>bigQ</VERB>, <VERB>[C1,D12]</VERB>
+    is a factor of <VERB>bigR</VERB> and <VERB>[A,B2,C2,D22]</VERB> is
+    a realization of P22, then <VERB>P</VERB> is a realization of
+    <VERB>[A,[B1,B2],[C1,-C2],[0,D12;D21,D22]</VERB>.
+    The (negative) feedback computed by <VERB>lqg</VERB> stabilizes <VERB>P22</VERB>,
+    i.e. the poles of <VERB>cl=P22/.K</VERB> are stable.</P>
+  </DESCRIPTION>
+  <EXAMPLE>
+<![CDATA[
+ny=2;nu=3;nx=4;
+P22=ssrand(ny,nu,nx);
+bigQ=rand(nx+nu,nx+nu);bigQ=bigQ*bigQ';
+bigR=rand(nx+ny,nx+ny);bigR=bigR*bigR';
+[P,r]=lqg2stan(P22,bigQ,bigR);K=lqg(P,r);  //K=LQG-controller
+spec(h_cl(P,r,K))      //Closed loop should be stable
+//Same as Cl=P22/.K; spec(Cl('A'))
+s=poly(0,'s')
+lqg2stan(1/(s+2),eye(2,2),eye(2,2))
+ ]]>
+  </EXAMPLE>
+  <SEE_ALSO>
+    <SEE_ALSO_ITEM>
+      <LINK>lqg</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>lqr</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>lqe</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>obscont</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>h_inf</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>augment</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>fstabst</LINK>
+    </SEE_ALSO_ITEM>
+    <SEE_ALSO_ITEM>
+      <LINK>feedback</LINK>
+    </SEE_ALSO_ITEM>
+  </SEE_ALSO>
+  <AUTHOR>F.D.  </AUTHOR>
+</MAN>
diff --git a/scilab/modules/cacsd/help/eng/lqg_ltr.xml b/scilab/modules/cacsd/help/eng/lqg_ltr.xml
new file mode 100644 (file)
index 0000000..3c1f51d
--- /dev/null
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
+<!DOCTYPE MAN SYSTEM "../../manrev.dtd">
+<MAN>
+  <LANGUAGE>eng</LANGUAGE>
+  <TITLE>lqgltr</TITLE>
+  <TYPE>Scilab Function</TYPE>
+  <DATE>April 1993</DATE>
+  <SHORT_DESCRIPTION name="lqg_ltr"> LQG with loop transform recovery</SHORT_DESCRIPTION>
+  <CALLING_SEQUENCE>
+    <CALLING_SEQUENCE_ITEM>[kf,kc]=lqg_ltr(sl,mu,ro)  </CALLING_SEQUENCE_ITEM>
+  </CALLING_SEQUENCE>
+  <PARAM>
+    <PARAM_INDENT>
+      <PARAM_ITEM>
+        <PARAM_NAME>sl</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: linear system in state-space form (<VERB>syslin</VERB> list)</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>mu,ro</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>:  real positive numbers chosen ``small enough''</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+      <PARAM_ITEM>
+        <PARAM_NAME>kf,kc</PARAM_NAME>
+        <PARAM_DESCRIPTION>
+          <SP>: controller and observer Kalman gains.</SP>
+        </PARAM_DESCRIPTION>
+      </PARAM_ITEM>
+    </PARAM_INDENT>
+  </PARAM>
+  <DESCRIPTION>
+    <P>
+    returns the Kalman gains for:</P>
+    <VERBATIM>
+<![CDATA[
+           x = a*x + b*u + l*w1   
+  (sl)
+           y = c*x + mu*I*w2
+
+           z = h*x
+   ]]>
+    </VERBATIM>
+    <P>
+    Cost function:</P>
+    <VERBATIM>
+      /+oo
+                   |
+          J    = E(| [z(t)'*z(t) + ro^2*u(t)'*u(t)]dt)
+           lqg     |
+                   / 0
+    </VERBATIM>
+    <P>
+    The lqg/ltr approach looks for <VERB>L,mu,H,ro</VERB> such that:
+    J(lqg) = J(freq) where</P>
+    <VERBATIM>
+
+