Mercurial > hg > octave-nkf
diff scripts/control/csrefcard.lt @ 3280:46b82fca02fc
[project @ 1999-10-12 17:04:44 by jwe]
author | jwe |
---|---|
date | Tue, 12 Oct 1999 17:04:45 +0000 |
parents | |
children | 6304d9ea0a30 |
line wrap: on
line diff
new file mode 100644 --- /dev/null +++ b/scripts/control/csrefcard.lt @@ -0,0 +1,1486 @@ +@Include { OCSTreport } +@Report + @Title { + { clines 0.8vx } @Break { 1.4f @Font { + Octave Controls Toolbox Reference Card } + 0.8f @Font 0.7vx @Break { The Controls Toolbox was written by + A. Scottedward Hodel <A.S.Hodel@Eng.Auburn.EDU> } + } + } + @Author { clines @Break { Kai P. Mueller + <mueller@ifr.ing.tu-bs.de> } + } + @Institution { clines @Break { Technical University of Braunschweig + Control Department } + } + @DateLine { Yes } + @CoverSheet { No } + @InitialFont { Schoolbook Base 12p } + @InitialSpace { tex } +// + +@Abstract + @Title { } +@Begin +@I { +This document provides an overview of the Controls Toolbox functions +of Octave. It is still under construction, don't rely on details. +} +@End @Abstract + +@Section + @Title { System Analysis } +@Begin + @BeginSubSections + + @SubSection + @Title { Properties } + @Begin + @PP + @Tab + between { single } + @Fmta { @Col @Heading A ! + @Col @Heading B ! + @Col @Heading C } + @Fmtb { @Col 3c @Wide { ragged nohyphen } @Break A ! + @Col 7c @Wide { ragged nohyphen } @Break B ! + @Col 3c @Wide { ragged nohyphen } @Break C } + { + @Rowa above { double } below { double } + A { name } B { description "/" usage } C { remarks } + @Rowb above { yes } + A { is_controllable } + B { controllability check + @DP { Helvetica Base -2p } @Font @CurveBox { + [retval,U] = is_controllable(a [, b ,tol]) + } + } + C { } + @Rowb above { yes } + A { is_detectable } + B { decetability check (unstable subsystem stabilizable?) + @DP { Helvetica Base -2p } @Font @CurveBox { + [retval,U] = is_detectable(a , c [, tol]) + } + } + C { } + @Rowb above { yes } + A { is_dgkf } + B { checks if packed system meets assumptions for the + H{ @Sub @Sym infinity } Doyle-Glover-algorithm + @DP { Helvetica Base -2p } @Font @CurveBox { + retval = dgkf(Asys,nu,ny[,tol]) + } + } + C { } + @Rowb above { yes } + A { is_digital } + B { returns true if packed system is a sampled system + @DP { Helvetica Base -2p } @Font @CurveBox { + *** no description *** + } + } + C { } + } + + @DP @PP + @Tab + between { single } + @Fmta { @Col @Heading A ! + @Col @Heading B ! + @Col @Heading C } + @Fmtb { @Col 3c @Wide { ragged nohyphen } @Break A ! + @Col 7c @Wide { ragged nohyphen } @Break B ! + @Col 3c @Wide { ragged nohyphen } @Break C } + { + @Rowa above { double } below { double } + A { name } B { description "/" usage } C { remarks } + @Rowb above { yes } + A { is_observable } + B { observability check + @DP { Helvetica Base -2p } @Font @CurveBox { + [retval,U] = is_observable(a , c [, tol]) + } + } + C { } + @Rowb above { yes } + A { is_sample } + B { returns true if sampling time Ts is a legal (scalar) value + @DP { Helvetica Base -2p } @Font @CurveBox { + *** no description *** + } + } + C { } + @Rowb above { yes } + A { is_siso } + B { returns true if packed system is siso + @DP { Helvetica Base -2p } @Font @CurveBox { + SISO = is_siso(sys) + } + } + C { } + @Rowb above { yes } + A { is_stabilizable } + B { returns true if system stabilizable + @DP { Helvetica Base -2p } @Font @CurveBox { + [retval,U] = is_stabilizable(a [, b ,tol]) + } + } + C { } + @Rowb above { yes } + A { is_stable } + B { stability check + @DP { Helvetica Base -2p } @Font @CurveBox { + is_stable(a [,tol,disc]) + } + } + C { } + } + @End @SubSection + + @SubSection + @Title { Time Domain } + @Begin + @PP + @Tab + between { single } + @Fmta { @Col @Heading A ! + @Col @Heading B ! + @Col @Heading C } + @Fmtb { @Col 3c @Wide { ragged nohyphen } @Break A ! + @Col 7c @Wide { ragged nohyphen } @Break B ! + @Col 3c @Wide { ragged nohyphen } @Break C } + { + @Rowa above { double } below { double } + A { name } B { description "/" usage } C { remarks } + @Rowb above { yes } + A { step } + B { step response of a system (mimo, discrete, or both) + @DP { Helvetica Base -2p } @Font @CurveBox { + [y, u] = step(sys[, tstop, n, inp]) + } + } + C { } + @Rowb above { yes } + A { impulse } + B { impulse response of a system (mimo, discrete, or both) + @DP { Helvetica Base -2p } @Font @CurveBox { + [y, u] = impulse(sys[, tstop, n, inp]) + } + } + C { } + @Rowb above { yes } + A { stepimp } + B { common code for step and impulse + @DP { Helvetica Base -2p } @Font @CurveBox { + *** no description *** + } + } + C { internal use } + @Rowb above { yes } + A { damp } + B { display eigenvalues, damping ratios, and naural frequencies of a + matrix or poles of a packed system (continuous and discrete) + @DP { Helvetica Base -2p } @Font @CurveBox { + damp(p,[ tsamp]) + } + } + C { } + } + + @DP @PP + @Tab + between { single } + @Fmta { @Col @Heading A ! + @Col @Heading B ! + @Col @Heading C } + @Fmtb { @Col 3c @Wide { ragged nohyphen } @Break A ! + @Col 7c @Wide { ragged nohyphen } @Break B ! + @Col 3c @Wide { ragged nohyphen } @Break C } + { + @Rowa above { double } below { double } + A { name } B { description "/" usage } C { remarks } + @Rowb above { yes } + A { dcgain } + B { calculate steady state gain of a packed system + @DP { Helvetica Base -2p } @Font @CurveBox { + [gm, ok] = dcgain(sys[, tol]) + } + } + C { } + @Rowb above { yes } + A { dgram } + B { discrete controllability grammian + @DP { Helvetica Base -2p } @Font @CurveBox { + *** no description *** + } + } + C { } + @Rowb above { yes } + A { gram } + B { continuous controllabilty grammian + @DP { Helvetica Base -2p } @Font @CurveBox { + *** no description *** + } + } + C { } + @Rowb above { yes } + A { h2norm } + B { continuous system H{ @Sub 2} norm + @DP { Helvetica Base -2p } @Font @CurveBox { + out = h2norm(sys) + } + } + C { } + @Rowb above { yes } + A { lsim } + B { simulation of a linear system with arbitrary input and + time vector + @DP { Helvetica Base -2p } @Font @CurveBox { + [y,x] = lsim(sys,u,t[,x0]) + } + } + C { } + } + @End @SubSection + + @SubSection + @Title { Frequency Domain } + @Begin + @PP + @Tab + between { single } + @Fmta { @Col @Heading A ! + @Col @Heading B ! + @Col @Heading C } + @Fmtb { @Col 3c @Wide { ragged nohyphen } @Break A ! + @Col 7c @Wide { ragged nohyphen } @Break B ! + @Col 3c @Wide { ragged nohyphen } @Break C } + { + @Rowa above { double } below { double } + A { name } B { description "/" usage } C { remarks } + @Rowb above { yes } + A { bode } + B { bode diagram or compute magnitude and phase data + @DP { Helvetica Base -2p } @Font @CurveBox { + [mag,phase,w] = bode(sys[,w,outputs,inputs]) + } + } + C { } + @Rowb above { yes } + A { bode_bounds } + B { calculation of frequencies for bode and nyquist + @DP { Helvetica Base -2p } @Font @CurveBox { + *** no description *** + } + } + C { internal use } + @Rowb above { yes } + A { bodquist } + B { common code for bode und nyquist + @DP { Helvetica Base -2p } @Font @CurveBox { + *** no description *** + } + } + C { internal use } + } + + @DP @PP + @Tab + between { single } + @Fmta { @Col @Heading A ! + @Col @Heading B ! + @Col @Heading C } + @Fmtb { @Col 3c @Wide { ragged nohyphen } @Break A ! + @Col 7c @Wide { ragged nohyphen } @Break B ! + @Col 3c @Wide { ragged nohyphen } @Break C } + { + @Rowa above { double } below { double } + A { name } B { description "/" usage } C { remarks } + @Rowb above { yes } + A { freqchkw } + B { check frequency vector, used by freqresp + @DP { Helvetica Base -2p } @Font @CurveBox { + *** no description *** + } + } + C { internal use } + @Rowb above { yes } + A { freqresp } + B { calculation of the mutivariable frequency response of a system, + used by bode and nyquist + @DP { Helvetica Base -2p } @Font @CurveBox { + out = freqresp(sys, SISO, DIGITAL, USEW + @LLP + [, w, SQUARE_NYQUIST]) + } + } + C { internal use } + @Rowb above { yes } + A { nyquist } + B { nyquist diagram + @DP { Helvetica Base -2p } @Font @CurveBox { + *** no description *** + } + } + C { } + @Rowb above { yes } + A { dcgain } + B { calculate steady state gain of a packed system + @DP { Helvetica Base -2p } @Font @CurveBox { + [gm, ok] = dcgain(sys[, tol]) + } + } + C { } + @Rowb above { yes } + A { h2norm } + B { continuous system H{ @Sub 2} norm + @DP { Helvetica Base -2p } @Font @CurveBox { + out = h2norm(sys) + } + } + C { } + @Rowb above { yes } + A { hinfnorm } + B { continuous system H{ @Sub @Sym infinity} norm + @DP { Helvetica Base -2p } @Font @CurveBox { + [g gmin gmax] = hinfnorm(sys[,tol,gmin,gmax,ptol]) + } + } + C { } + @Rowb above { yes } + A { ltifr } + B { siso system frequency response + @DP { Helvetica Base -2p } @Font @CurveBox { + *** no description *** + } + } + C { } + @Rowb above { yes } + A { pzmap } + B { plot of poles and zeros of a system + @DP { Helvetica Base -2p } @Font @CurveBox { + pzmap(sys) or [zer,pol] = pzmap(sys) + } + } + C { } + @Rowb above { yes } + A { rlocus } + B { displays root locus plot + @DP { Helvetica Base -2p } @Font @CurveBox { + rlocus(sys[,inc,mink,maxk]) + } + } + C { } + @Rowb above { yes } + A { tzero } + B { transmission zeros of a continuous"/"discrete system + @DP { Helvetica Base -2p } @Font @CurveBox { + [zer,gain] = tzero(A,B,C,D) or + @LLP + zer = tzero(Asys) + } + } + C { } + } + + @DP @PP + @Tab + between { single } + @Fmta { @Col @Heading A ! + @Col @Heading B ! + @Col @Heading C } + @Fmtb { @Col 3c @Wide { ragged nohyphen } @Break A ! + @Col 7c @Wide { ragged nohyphen } @Break B ! + @Col 3c @Wide { ragged nohyphen } @Break C } + { + @Rowa above { double } below { double } + A { name } B { description "/" usage } C { remarks } + @Rowb above { yes } + A { tzero2 } + B { compute the transmission zeros of an a, b, c, d system + @DP { Helvetica Base -2p } @Font @CurveBox { + *** no description *** + } + } + C { } + @Rowb above { yes } + A { zgpbal } + B { used by tzero + @DP { Helvetica Base -2p } @Font @CurveBox { + retsys = zgpbal(Asys) - packed system input + } + } + C { internal use } + @Rowb above { yes } + A { zgreduce } + B { used by tzero + @DP { Helvetica Base -2p } @Font @CurveBox { + *** no description *** + } + } + C { internal use } + @Rowb above { yes } + A { zgrownorm } + B { used by tzero + @DP { Helvetica Base -2p } @Font @CurveBox { + *** no description *** + } + } + C { internal use } + } + @End @SubSection + @EndSubSections +@End @Section + +@Section + @Title { System Building } +@Begin + @PP + @Tab + between { single } + @Fmta { @Col @Heading A ! + @Col @Heading B ! + @Col @Heading C } + @Fmtb { @Col 3c @Wide { ragged nohyphen } @Break A ! + @Col 7c @Wide { ragged nohyphen } @Break B ! + @Col 3c @Wide { ragged nohyphen } @Break C } + { + @Rowa above { double } below { double } + A { name } B { description "/" usage } C { remarks } + @Rowb above { yes } + A { abcddim } + B { dimension compatibility check + @DP { Helvetica Base -2p } @Font @CurveBox { + *** no description *** + } + } + C { } + @Rowb above { yes } + A { abcddims } + B { used by abcddim + @DP { Helvetica Base -2p } @Font @CurveBox { + *** no description *** + } + } + C { internal use } + @Rowb above { yes } + A { outlist } + B { prints enumerated list of strings + @DP { Helvetica Base -2p } @Font @CurveBox { + outlist(x[,tabchar,yd,ilist]) + } + } + C { internal use } + @Rowb above { yes } + A { parallel } + B { parallel connection of two systems + @DP { Helvetica Base -2p } @Font @CurveBox { + sysp = parallel(Asys,Bsys) + } + } + C { } + @Rowb above { yes } + A { sysadd } + B { addition of two systems + @DP { Helvetica Base -2p } @Font @CurveBox { + [sys] = sysysadd(Gsys,Hsys) + } + } + C { } + @Rowb above { yes } + A { sysappend } + B { append new inputs and outputs to a system + @DP { Helvetica Base -2p } @Font @CurveBox { + retsys = sysappend(sys,b,c[,d,outname,inname,yd]) + } + } + C { } + } + + @DP @PP + @Tab + between { single } + @Fmta { @Col @Heading A ! + @Col @Heading B ! + @Col @Heading C } + @Fmtb { @Col 3c @Wide { ragged nohyphen } @Break A ! + @Col 7c @Wide { ragged nohyphen } @Break B ! + @Col 3c @Wide { ragged nohyphen } @Break C } + { + @Rowa above { double } below { double } + A { name } B { description "/" usage } C { remarks } + @Rowb above { yes } + A { syssetsignals } + B { change names of system inputs, outputs, or states + @DP { Helvetica Base -2p } @Font @CurveBox { + retsys=syssetsignals(sys,opt,names[,sigidx]) + } + } + C { } + @Rowb above { yes } + A { syschtsam } + B { change sampling time of a (sampled) system + @DP { Helvetica Base -2p } @Font @CurveBox { + retsys = syschtsam(sys,tsam) + } + } + C { } + @Rowb above { yes } + A { sysconnect } + B { form a closed loop system + @DP { Helvetica Base -2p } @Font @CurveBox { + retsys = sysconnect(sys, output_list, input_list [, order, tol]) + } + } + C { } + @Rowb above { yes } + A { syscont } + B { extract continuous part of a mixed continuous"/"discrete system + @DP { Helvetica Base -2p } @Font @CurveBox { + [csys,Acd,Ccd,Dcd] = syscont(sys) + } + } + C { } + @Rowb above { yes } + A { syscont_disc } + B { extract continuous"/"discrete part + @DP { Helvetica Base -2p } @Font @CurveBox { + *** no description *** + } + } + C { internal use, used by syscont and sysdisc, internal use } + @Rowb above { yes } + A { sysdefioname } + B { create defaut signal names + @DP { Helvetica Base -2p } @Font @CurveBox { + ioname = sysdefioname(n,str[,m]) + } + } + C { internal use } + @Rowb above { yes } + A { sysdefstname } + B { create default state names + @DP { Helvetica Base -2p } @Font @CurveBox { + *** no description *** + } + } + C { internal use } + @Rowb above { yes } + A { sysdimensions } + B { get number of states, inputs, and outputs from system + @DP { Helvetica Base -2p } @Font @CurveBox { + [n,nz,m,p] = sysdimensions(sys) + } + } + C { } + @Rowb above { yes } + A { sysdisc } + B { extract purely discrete portion of a mixed + continuous"/"discrete system + @DP { Helvetica Base -2p } @Font @CurveBox { + [dsys,Adc,Cdc] = sysdisc(sys) + } + } + C { } + } + + @DP @PP + @Tab + between { single } + @Fmta { @Col @Heading A ! + @Col @Heading B ! + @Col @Heading C } + @Fmtb { @Col 3c @Wide { ragged nohyphen } @Break A ! + @Col 7c @Wide { ragged nohyphen } @Break B ! + @Col 3c @Wide { ragged nohyphen } @Break C } + { + @Rowa above { double } below { double } + A { name } B { description "/" usage } C { remarks } + @Rowb above { yes } + A { sysdup } + B { duplicate specified input"/"output connections of a system + @DP { Helvetica Base -2p } @Font @CurveBox { + retsys = sysdup(Asys,output_list,input_list) + } + } + C { } + @Rowb above { yes } + A { sysgroup } + B { combines two packed system matrices into a single system + @DP { Helvetica Base -2p } @Font @CurveBox { + sys = sysgroup(Asys,Bsys) + } + } + C { } + @Rowb above { yes } + A { sysgroupn } + B { locate and mark duplicate names (in sysgroup) + @DP { Helvetica Base -2p } @Font @CurveBox { + *** no description *** + } + } + C { internal use } + @Rowb above { yes } + A { sysmult } + B { concatenates two systems + @DP { Helvetica Base -2p } @Font @CurveBox { + [sys] = sysmult(Asys,Bsys) + } + } + C { } + @Rowb above { yes } + A { sysprune } + B { extract specified inputs"/"outputs from a system + @DP { Helvetica Base -2p } @Font @CurveBox { + retsys = sysprune(sys,output_list,input_list) + } + } + C { } + @Rowb above { yes } + A { sysreorder } + B { reorder elements of a vector + @DP { Helvetica Base -2p } @Font @CurveBox { + *** no description *** + } + } + C { used by sysconnect } + @Rowb above { yes } + A { sysscale } + B { input"/"output scaling of a system + @DP { Helvetica Base -2p } @Font @CurveBox { + retsys = sysscale(Asys, output_list, input_list [,inname, outname]) + } + } + C { } + @Rowb above { yes } + A { syssub } + B { subtraction of two systems + @DP { Helvetica Base -2p } @Font @CurveBox { + [sys] = syssub(Gsys,Hsys) + } + } + C { } + @Rowb above { yes } + A { sysupdate } + B { update the internal representation of a system + @DP { Helvetica Base -2p } @Font @CurveBox { + newsys = sysupdate(sys,opt) + } + } + C { } + } + @NP +@End @Section + + +@Section + @Title { Display and Convenience Functions } +@Begin + @PP + @Tab + between { single } + @Fmta { @Col @Heading A ! + @Col @Heading B ! + @Col @Heading C } + @Fmtb { @Col 3c @Wide { ragged nohyphen } @Break A ! + @Col 7c @Wide { ragged nohyphen } @Break B ! + @Col 3c @Wide { ragged nohyphen } @Break C } + { + @Rowa above { double } below { double } + A { name } B { description "/" usage } C { remarks } + @Rowb above { yes } + A { polyout } + B { formatted display of polynomials + @DP { Helvetica Base -2p } @Font @CurveBox { + [y = ] polyout(c,[x]) + } + } + C { } + @Rowb above { yes } + A { prompt } + B { prompt user to continue + @DP { Helvetica Base -2p } @Font @CurveBox { + prompt([str]) + } + } + C { } + @Rowb above { yes } + A { sortcom } + B { sort a complex vector by real, imaginary, or magnitude + @DP { Helvetica Base -2p } @Font @CurveBox { + yy = sortcom(xx[,opt] + } + } + C { } + @Rowb above { yes } + A { swap } + B { exchange two values + @DP { Helvetica Base -2p } @Font @CurveBox { + *** no description *** + } + } + C { } + @Rowb above { yes } + A { swapcols } + B { permute columns of a matrix into reverse order + @DP { Helvetica Base -2p } @Font @CurveBox { + *** no description *** + } + } + C { } + @Rowb above { yes } + A {swaprows } + B { permute rows of a matrix into reverse order + @DP { Helvetica Base -2p } @Font @CurveBox { + *** no description *** + } + } + C { } + @Rowb above { yes } + A { sysout } + B { print out a packed system in desired format + @DP { Helvetica Base -2p } @Font @CurveBox { + sysout(sys[,opt]) + } + } + C { } + @Rowb above { yes } + A { tfout } + B { formatted transfer function num(s)"/"den(s) + @DP { Helvetica Base -2p } @Font @CurveBox { + tfout(num,denom[,x]) + } + } + C { } + @Rowb above { yes } + A { zpout } + B { print formatted zero-pole form + @DP { Helvetica Base -2p } @Font @CurveBox { + zpout(zer,pol,k[,x]) + } + } + C { } + } + @NP +@End @Section + +@Section + @Title { System Representations and Conversions } +@Begin + @PP + @Tab + between { single } + @Fmta { @Col @Heading A ! + @Col @Heading B ! + @Col @Heading C } + @Fmtb { @Col 3c @Wide { ragged nohyphen } @Break A ! + @Col 7c @Wide { ragged nohyphen } @Break B ! + @Col 3c @Wide { ragged nohyphen } @Break C } + { + @Rowa above { double } below { double } + A { name } B { description "/" usage } C { remarks } + @Rowb above { yes } + A { c2d } + B { continuous to discrete conversion of a packed system + @DP { Helvetica Base -2p } @Font @CurveBox { + dsys=c2d(sys[,T]) + } + } + C { } + @Rowb above { yes } + A { fir2sys } + B { FIR (finite impulse response) to packed system conversion + @DP { Helvetica Base -2p } @Font @CurveBox { + *** no description *** + } + } + C { } + @Rowb above { yes } + A { ss2sys } + B { conversion from state space to system + @DP { Helvetica Base -2p } @Font @CurveBox { + OUTSYS = ss2sys(A, B, C [, D, TSAM, N, + NZ, STNAME, INNAME, OUTNAME, OUTLIST]) + } + } + C { } + @Rowb above { yes } + A { ss2tf } + B { conversion from state space to transfer function + @DP { Helvetica Base -2p } @Font @CurveBox { + [num,den] = ss2tf(a,b,c,d) + } + } + C { } + @Rowb above { yes } + A { ss2zp } + B { conversion from state space to zero pole representation + @DP { Helvetica Base -2p } @Font @CurveBox { + [zer,pol,k] = ss2zp(a,b,c,d) + } + } + C { } + @Rowb above { yes } + A { sys2fir } + B { extract fir system from packed system form + @DP { Helvetica Base -2p } @Font @CurveBox { + *** no description *** + } + } + C { } + @Rowb above { yes } + A { sys2ss } + B { conversion from packed system to state space form + @DP { Helvetica Base -2p } @Font @CurveBox { + [a, b, c, d, tsam, n, nz, stname, inname, outname] = sys2ss(sys) + } + } + C { } + @Rowb above { yes } + A { sys2tf } + B { conversion from packed system to stransfer function + @DP { Helvetica Base -2p } @Font @CurveBox { + *** no description *** + } + } + C { } + } + + @DP @PP + @Tab + between { single } + @Fmta { @Col @Heading A ! + @Col @Heading B ! + @Col @Heading C } + @Fmtb { @Col 3c @Wide { ragged nohyphen } @Break A ! + @Col 7c @Wide { ragged nohyphen } @Break B ! + @Col 3c @Wide { ragged nohyphen } @Break C } + { + @Rowa above { double } below { double } + A { name } B { description "/" usage } C { remarks } + @Rowb above { yes } + A { sys2zp } + B { conversion from packed system to zero pole representation + @DP { Helvetica Base -2p } @Font @CurveBox { + [zer,pol,k] = ss2zp(a,b,c,d) + } + } + C { } + @Rowb above { yes } + A { sysdisc } + B { extract purely discrete portion of a mixed + continuous"/"discrete system + @DP { Helvetica Base -2p } @Font @CurveBox { + [dsys,Adc,Cdc] = sysdisc(sys) + } + } + C { } + @Rowb above { yes } + A { tf2ss } + B { function to state-space conversion + @DP { Helvetica Base -2p } @Font @CurveBox { + *** no description *** + } + } + C { } + @Rowb above { yes } + A { tf2sys } + B { tranfer function to system conversion + @DP { Helvetica Base -2p } @Font @CurveBox { + *** no description *** + } + } + C { } + @Rowb above { yes } + A { tf2sysl } + B { strips leading zero coefficient in polynonials + @DP { Helvetica Base -2p } @Font @CurveBox { + *** no description *** + } + } + C { internal use (used by tf2sys) } + @Rowb above { yes } + A { tf2zp } + B { tranfer function to state-space conversion + @DP { Helvetica Base -2p } @Font @CurveBox { + *** no description *** + } + } + C { } + @Rowb above { yes } + A { zp2ss } + B { zero-pole representation to state space form conversion + @DP { Helvetica Base -2p } @Font @CurveBox { + *** no description *** + } + } + C { } + @Rowb above { yes } + A { zp2ssg2 } + B { used by zp2ssg2 + @DP { Helvetica Base -2p } @Font @CurveBox { + *** no description *** + } + } + C { internal use } + @Rowb above { yes } + A { zp2sys } + B { zero-pole representation to packed system conversion + @DP { Helvetica Base -2p } @Font @CurveBox { + outsys = zp2sys(zer, pol, k [, tsam, inname, outname]) + } + } + C { } + @Rowb above { yes } + A { zp2tf } + B { zero-pole representation to transfer function conversion + @DP { Helvetica Base -2p } @Font @CurveBox { + *** no description *** + } + } + C { } + } + @NP +@End @Section + +@Section + @Title { Equation Solvers and Math Functions } +@Begin + @PP + @Tab + between { single } + @Fmta { @Col @Heading A ! + @Col @Heading B ! + @Col @Heading C } + @Fmtb { @Col 3c @Wide { ragged nohyphen } @Break A ! + @Col 7c @Wide { ragged nohyphen } @Break B ! + @Col 3c @Wide { ragged nohyphen } @Break C } + { + @Rowa above { double } below { double } + A { name } B { description "/" usage } C { remarks } + @Rowb above { yes } + A { are } + B { algebraic riccati equation solver + @DP { Helvetica Base -2p } @Font @CurveBox { + x = are (a, b, c) + } + } + C { } + @Rowb above { yes } + A { dlyap } + B { discrete Lyapunov equation solver + @DP { Helvetica Base -2p } @Font @CurveBox { + *** no description *** + } + } + C { } + @Rowb above { yes } + A { dare } + B { discrete algebaic riccati equation solver + @DP { Helvetica Base -2p } @Font @CurveBox { + *** no description *** + } + } + C { } + @Rowb above { yes } + A { lyap } + B { Lyapunov"/"Sylvester equation solver + @DP { Helvetica Base -2p } @Font @CurveBox { + lyap (a, b [,c]) + } + } + C { } + @Rowb above { yes } + A { pinv } + B { pseudoinverse of a matrix + @DP { Helvetica Base -2p } @Font @CurveBox { + *** no description *** + } + } + C { } + @Rowb above { yes } + A { zgfmul } + B { compute product of zgep incidence matrix f with vector x + @DP { Helvetica Base -2p } @Font @CurveBox { + *** no description *** + } + } + C { used by zgscal } + @Rowb above { yes } + A { zgfslv } + B { solve system of equations for dense zgep problem + @DP { Helvetica Base -2p } @Font @CurveBox { + *** no description *** + } + } + C { } + @Rowb above { yes } + A { zginit } + B { construct right hand side for the zero-computation generalized + eigenvalue problem + @DP { Helvetica Base -2p } @Font @CurveBox { + *** no description *** + } + } + C { } + @Rowb above { yes } + A { zgscal } + B { generalized conjugate gradient iteration to solve zero-computation + generalized eigenvalue problem balancing equation + @DP { Helvetica Base -2p } @Font @CurveBox { + *** no description *** + } + } + C { } + } + + @DP @PP + @Tab + between { single } + @Fmta { @Col @Heading A ! + @Col @Heading B ! + @Col @Heading C } + @Fmtb { @Col 3c @Wide { ragged nohyphen } @Break A ! + @Col 7c @Wide { ragged nohyphen } @Break B ! + @Col 3c @Wide { ragged nohyphen } @Break C } + { + @Rowa above { double } below { double } + A { name } B { description "/" usage } C { remarks } + @Rowb above { yes } + A {zgsgiv } + B { apply givens rotation c,s to column vector a,b + @DP { Helvetica Base -2p } @Font @CurveBox { + *** no description *** + } + } + C { } + @Rowb above { yes } + A { zgshsr } + B { apply householder vector, used by zgfslv + @DP { Helvetica Base -2p } @Font @CurveBox { + *** no description *** + } + } + C { } + } +@End @Section + +@Section + @Title { Controller Design } +@Begin + @BeginSubSections + @SubSection + @Title { Classic Methods } + @Begin + @PP + @Tab + between { single } + @Fmta { @Col @Heading A ! + @Col @Heading B ! + @Col @Heading C } + @Fmtb { @Col 3c @Wide { ragged nohyphen } @Break A ! + @Col 7c @Wide { ragged nohyphen } @Break B ! + @Col 3c @Wide { ragged nohyphen } @Break C } + { + @Rowa above { double } below { double } + A { name } B { description "/" usage } C { remarks } + @Rowb above { yes } + A { dlqe } + B { discrete Kalman filter design + @DP { Helvetica Base -2p } @Font @CurveBox { + *** no description *** + } + } + C { } + @Rowb above { yes } + A { dlqr } + B { discrete linear quadratic regulator (Riccati controller) design + @DP { Helvetica Base -2p } @Font @CurveBox { + [k, p, e] = lqr (A, B, Q, R [, Z]) + } + } + C { } + @Rowb above { yes } + A { lqe } + B { contiuous time Kalman filter design + @DP { Helvetica Base -2p } @Font @CurveBox { + *** no description *** + } + } + C { } + @Rowb above { yes } + A { lqg } + B { continuous"/"discrete lqg (linear quadratic gaussian) controller + design + @DP { Helvetica Base -2p } @Font @CurveBox { + *** no description *** + } + } + C { } + @Rowb above { yes } + A { lqr } + B { continuous lqr (Riccati-) controller design + @DP { Helvetica Base -2p } @Font @CurveBox { + *** no description *** + } + } + C { } + @Rowb above { yes } + A { place } + B { calculation of feedback gain matrix K, using pole-placement + @DP { Helvetica Base -2p } @Font @CurveBox { + K = place(sys, P) + } + } + C { } + } + @NP + @End @SubSection + + @SubSection + @Title { Modern Methods } + @Begin + @PP + @Tab + between { single } + @Fmta { @Col @Heading A ! + @Col @Heading B ! + @Col @Heading C } + @Fmtb { @Col 3c @Wide { ragged nohyphen } @Break A ! + @Col 7c @Wide { ragged nohyphen } @Break B ! + @Col 3c @Wide { ragged nohyphen } @Break C } + { + @Rowa above { double } below { double } + A { name } B { description "/" usage } C { remarks } + @Rowb above { yes } + A { h2syn } + B { H{ @Sub 2}-optimal controller design + @DP { Helvetica Base -2p } @Font @CurveBox { + [K, gain, Kc, Kf, Pc, Pf] = h2syn(Asys, nu, ny [, tol]) + } + } + C { } + @Rowb above { yes } + A { hinfsyn } + B { continuous system H{ @Sub @Sym infinity}-optimal controller design + @DP { Helvetica Base -2p } @Font @CurveBox { + [K,g, ghi, glo, Pc, Pf] = hinfsyn(Asys, nu, ny, gmax, + gmin, gtol [, ptol, tol]) + } + } + C { } + @Rowb above { yes } + A { hinfsyn_chk } + B { check of existence of an H{ @Sub @Sym infinity}-optimal + controller, used internally by hinfsyn + @DP { Helvetica Base -2p } @Font @CurveBox { + *** no description *** + } + } + C { internal use } + } + @End @SubSection + @EndSubSections + @NP +@End @Section + +@Section + @Title { Miscellanious } +@Begin + @PP + @Tab + between { single } + @Fmta { @Col @Heading A ! + @Col @Heading B ! + @Col @Heading C } + @Fmtb { @Col 3c @Wide { ragged nohyphen } @Break A ! + @Col 7c @Wide { ragged nohyphen } @Break B ! + @Col 3c @Wide { ragged nohyphen } @Break C } + { + @Rowa above { double } below { double } + A { name } B { description "/" usage } C { remarks } + @Rowb above { yes } + A { analdemo } + B { state space analysis demo + @DP { Helvetica Base -2p } @Font @CurveBox { + no parameters + } + } + C { use by controldemo } + @Rowb above { yes } + A { bddemo } + B { block diagram manipulations demo + @DP { Helvetica Base -2p } @Font @CurveBox { + no parameters + } + } + C { used by controldemo } + @Rowb above { yes } + A { controldemo } + B { Octave Controls Toolbox demo + @DP { Helvetica Base -2p } @Font @CurveBox { + no parameters + } + } + C { } + @Rowb above { yes } + A { frdemo } + B { menu-based frequency response demo + @DP { Helvetica Base -2p } @Font @CurveBox { + no parameters + } + } + C { used by controldemo } + @Rowb above { yes } + A { jet707 } + B { Boeing 707-321 aircraft mimo example + @DP { Helvetica Base -2p } @Font @CurveBox { + outsys = jet707() + } + } + C { } + @Rowb above { yes } + A { ord2 } + B { second order siso example + @DP { Helvetica Base -2p } @Font @CurveBox { + outsys = ord2(nfreq, damp[, gain]) + } + } + C { } + @Rowb above { yes } + A { dgkfdemo } + B { H{ @Sub 2}"/"H{@Sub @Sym infinity} controller design demo + @DP { Helvetica Base -2p } @Font @CurveBox { + no parameters + } + } + C { } + @Rowb above { yes } + A { moddemo } + B { system conversion demo + @DP { Helvetica Base -2p } @Font @CurveBox { + no parameters + } + } + C { used by controldemo } + @Rowb above { yes } + A { packedform } + B { srcipt for sysrepdemo, the system representations demo + @DP { Helvetica Base -2p } @Font @CurveBox { + *** no description *** + } + } + C { used by controldemo } + @Rowb above { yes } + A { rldemo } + B { root locus demo + @DP { Helvetica Base -2p } @Font @CurveBox { + no parameters + } + } + C { used by controldemo } + @Rowb above { yes } + A { sysrepdemo } + B { system representation demo + @DP { Helvetica Base -2p } @Font @CurveBox { + no parameters + } + } + C { used by controldemo } + } +@End @Section + +@Section + @Title { New Functions (most likely not on your system) } +@Begin + @PP + @Tab + between { single } + @Fmta { @Col @Heading A ! + @Col @Heading B ! + @Col @Heading C } + @Fmtb { @Col 3c @Wide { ragged nohyphen } @Break A ! + @Col 7c @Wide { ragged nohyphen } @Break B ! + @Col 3c @Wide { ragged nohyphen } @Break C } + { + @Rowa above { double } below { double } + A { name } B { description "/" usage } C { remarks } + @Rowb above { yes } + A { ctrb } + B { Forms the controllability matrix of a system + @DP { Helvetica Base -2p } @Font @CurveBox { + ctrb(sys [, b]) + } + } + C { *not* for controllablity tests, use is_controllable instead + } + @Rowb above { yes } + A { is_abcd } + B { Returns true if dimensions are compatible, false otherwise. + Complains about the (first) failing matrix dimension. + @DP { Helvetica Base -2p } @Font @CurveBox { + retval = is_abcd(a [, b, c, d]) + } + } + C { In contrast to abcddim() the function is_abcd() accepts + 1 to 4 arguments. + } + @Rowb above { yes } + A { obsv } + B { Forms the observability matrix of a system + @DP { Helvetica Base -2p } @Font @CurveBox { + obsv(sys [, c]) + } + } + C { *not* for observablity tests, use is_observable instead + } + @Rowb above { yes } + A { template } + B { Starting point for your own function + @DP { Helvetica Base -2p } @Font @CurveBox { + y = template(x[, a]) + } + } + C { ridiculous calculation } + } +@End @Section + +@Section + @Title { Obsolete } +@Begin + @PP + @Tab + between { single } + @Fmta { @Col @Heading A ! + @Col @Heading B ! + @Col @Heading C } + @Fmtb { @Col 3c @Wide { ragged nohyphen } @Break A ! + @Col 7c @Wide { ragged nohyphen } @Break B ! + @Col 3c @Wide { ragged nohyphen } @Break C } + { + @Rowa above { double } below { double } + A { name } B { description "/" usage } C { remarks } + @Rowb above { yes } + A { DEMOcontrol } + B { Octave Controls Toolbox demo + @DP { Helvetica Base -2p } @Font @CurveBox { + no parameters + } + } + C { obsolete - use democontrol instead } + @Rowb above { yes } + A { dlqg } + B { discrete linear quadratic gaussian design + @DP { Helvetica Base -2p } @Font @CurveBox { + *** no description *** + } + } + C { obsolete - use lqg instead } + @Rowb above { yes } + A { minfo } + B { determine type of system matrix + @DP { Helvetica Base -2p } @Font @CurveBox { + *** no description *** + } + } + C { obsolete - use ss2sys, tf2sys, sys2ss, or sys2tf instead } + } + + @DP @PP + @Tab + between { single } + @Fmta { @Col @Heading A ! + @Col @Heading B ! + @Col @Heading C } + @Fmtb { @Col 3c @Wide { ragged nohyphen } @Break A ! + @Col 7c @Wide { ragged nohyphen } @Break B ! + @Col 3c @Wide { ragged nohyphen } @Break C } + { + @Rowa above { double } below { double } + A { name } B { description "/" usage } C { remarks } + @Rowb above { yes } + A { packsys } + B { pack A, B, C, D matrices into a system representation + @DP { Helvetica Base -2p } @Font @CurveBox { + *** no description *** + } + } + C { obsolete - use ss2sys instead } + @Rowb above { yes } + A { rotg } + B { givens rotation + @DP { Helvetica Base -2p } @Font @CurveBox { + *** no description *** + } + } + C { obsolete - use givens instead } + @Rowb above { yes } + A { series } + B { connect two systems + @DP { Helvetica Base -2p } @Font @CurveBox { + *** no description *** + } + } + C { obsolete - superseeded by sysmult} + @Rowb above { yes } + A { unpacksys } + B { conversion from packed system (sys) to state space + @DP { Helvetica Base -2p } @Font @CurveBox { + *** no description *** + } + } + C { use sys2ss insted} + } +@End @Section + +@Section + @Title { Dubious } +@Begin + @PP + @Tab + between { single } + @Fmta { @Col @Heading A ! + @Col @Heading B ! + @Col @Heading C } + @Fmtb { @Col 3c @Wide { ragged nohyphen } @Break A ! + @Col 7c @Wide { ragged nohyphen } @Break B ! + @Col 3c @Wide { ragged nohyphen } @Break C } + { + @Rowa above { double } below { double } + A { name } B { description "/" usage } C { remarks } + @Rowb above { yes } + A { demomarsyas } + B { unknown interface demo } + C { } + @Rowb above { yes } + A { mb } + B { unknown purpose } + C { } + @Rowb above { yes } + A { sysball } + B { unknown purpose } + C { } + } +@End @Section + +@Appendix + @Title { Maintainer } +@Begin +@PP +Mail any comments or suggestions to Kai P. Mueller +<mueller@ifr.ing.tu-bs.de>. +Report m-files problems to A. Scottedward Hodel +<A.S.Hodel@Eng.Auburn.EDU> or to the authors. +@End @Appendix + +@Appendix + @Title { Production Note } +@Begin +@PP +A recent version of this brochure can be copied from +@LLP +ftp:"//"ifr.ing.tu-bs.de"/"pub"/"ControlSW"/"doc +("\""lout"\"" source and PostScript{@Sup @Char registered}). +I am too dump to supply a T{/0.2fo E}X source. +@End @Appendix