Editing Control package
Jump to navigation
Jump to search
The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.
Latest revision | Your text | ||
Line 7: | Line 7: | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Chapter !! Function !! Implemented !! File | ! Chapter !! Function !! Implemented !! File !! Status | ||
|- | |- | ||
| rowspan="11" | Basic Models || tf | | rowspan="11" | Basic Models || tf || style="background: green;" | yes || @tf/tf.m || | ||
|- | |- | ||
| | | zpk || style="background: green;" | yes || zpk.m || | ||
|- | |- | ||
| | | ss || style="background: green;" | yes || @ss/ss.m || | ||
|- | |- | ||
| | | frd || style="background: green;" | yes || @frd/frd.m || | ||
| | |||
| | |||
|- | |- | ||
| | | pid || style="background: red;" | no || || | ||
|- | |- | ||
| | | pidstd || style="background: red;" | no || || | ||
|- | |- | ||
| | | pid2 || style="background: red;" | no || || | ||
|- | |- | ||
| | | dss || style="background: green;" | yes || @lti/dss.m || | ||
|- | |- | ||
| | | drss || style="background: red;" | no || || | ||
|- | |- | ||
| | | filt || style="background: green;" | yes || filt.m || | ||
|- | |- | ||
| | | rss || style="background: red;" | no || || | ||
|- | |- | ||
| | | rowspan="24" | Tunable Models || ltiblock.gain || style="background: red;" | no || || | ||
|- | |- | ||
| | | ltiblock.pid || style="background: red;" | no || || | ||
|- | |- | ||
| | | ltiblock.pid2 || style="background: red;" | no || || | ||
|- | |- | ||
| | | ltiblock.ss || style="background: red;" | no || || | ||
|- | |- | ||
| | | ltiblock.tf || style="background: red;" | no || || | ||
|- | |- | ||
| | | realp || style="background: red;" | no || || | ||
|- | |- | ||
| | | AnalysisPoint || style="background: red;" | no || || | ||
|- | |- | ||
| | | genss || style="background: red;" | no || || | ||
|- | |- | ||
| | | genfrd || style="background: red;" | no || || | ||
|- | |- | ||
| | | genmat || style="background: red;" | no || || | ||
|- | |- | ||
| | | getLoopTransfer || style="background: red;" | no || || | ||
|- | |- | ||
| | | getIOTransfer || style="background: red;" | no || || | ||
|- | |- | ||
| | | getSensitivity || style="background: red;" | no || || | ||
|- | |- | ||
| | | getCompSensitivity || style="background: red;" | no || || | ||
|- | |- | ||
| | | getPoints || style="background: red;" | no || || | ||
|- | |- | ||
| | | replaceBlock || style="background: red;" | no || || | ||
|- | |- | ||
| | | getValue || style="background: red;" | no || || | ||
|- | |- | ||
| | | setValue || style="background: red;" | no || || | ||
|- | |- | ||
| | | getBlockValue || style="background: red;" | no || || | ||
|- | |- | ||
| | | setBlockValue || style="background: red;" | no || || | ||
|- | |- | ||
| | | showBlockValue || style="background: red;" | no || || | ||
|- | |- | ||
| | | showTunable || style="background: red;" | no || || | ||
|- | |- | ||
| | | nblocks || style="background: red;" | no || || | ||
|- | |- | ||
| | | getLFTModel || style="background: red;" | no || || | ||
|- | |- | ||
| | | rowspan="9" | Model with Time Delays || pade || style="background: red;" | no || || | ||
|- | |- | ||
| | | absorbDelay || style="background: red;" | no || || | ||
|- | |- | ||
| | | thiran || style="background: green;" | yes || thiran.m || | ||
|- | |- | ||
| | | hasdelay || style="background: red;" | no || || | ||
|- | |- | ||
| | | hasInternalDelay || style="background: red;" | no || || | ||
|- | |- | ||
| | | totaldelay || style="background: red;" | no || || | ||
|- | |- | ||
| | | delayss || style="background: red;" | no || || | ||
|- | |- | ||
| | | setDelayModel || style="background: red;" | no || || | ||
|- | |- | ||
| | | getDelayModel || style="background: red;" | no || || | ||
|- | |- | ||
| | | rowspan="26" | Model Attributes || get || style="background: green;" | yes || @iddata/get.m || | ||
|- | |- | ||
| | | set || style="background: green;" | yes || @iddata/set.m || | ||
|- | |- | ||
| | | tfdata || style="background: green;" | yes || @lti/tfdata.m || | ||
|- | |- | ||
| | | zpkdata || style="background: green;" | yes || @lti/zpkdata.m || | ||
|- | |- | ||
| | | ssdata || style="background: green;" | yes || @lti/ssdata.m || | ||
|- | |- | ||
| | | frdata || style="background: green;" | yes || @lti/frdata.m || | ||
|- | |- | ||
| | | piddata || style="background: red;" | no || || | ||
|- | |- | ||
| | | pidstddata || style="background: red;" | no || || | ||
|- | |- | ||
| | | piddata2 || style="background: red;" | no || || | ||
|- | |- | ||
| | | pidstddata2 || style="background: red;" | no || || | ||
|- | |- | ||
| | | dssdata || style="background: green;" | yes || @lti/dssdata.m || | ||
|- | |- | ||
| | | chgFreqUnit || style="background: red;" | no || || | ||
|- | |- | ||
| | | chgTimeUnit || style="background: red;" | no || || | ||
|- | |- | ||
| | | isct || style="background: green;" | yes || @lti/isct.m || | ||
|- | |- | ||
| | | isdt || style="background: green;" | yes || @lti/isdt.m || | ||
|- | |- | ||
| | | isempty || style="background: green;" | yes || built-in function || | ||
|- | |- | ||
| | | isfinite || style="background: green;" | yes || built-in function || | ||
|- | |- | ||
| | | isParametric || style="background: red;" | no || || | ||
|- | |- | ||
| | | isproper || style="background: red;" | no || || | ||
|- | |- | ||
| | | isreal || style="background: green;" | yes || built-in function || | ||
|- | |- | ||
| | | isiso || style="background: red;" | no || || | ||
|- | |- | ||
| | | isstable || style="background: green;" | yes || @lti/isstable.m || | ||
|- | |- | ||
| | | isstatic || style="background: red;" | no || || | ||
|- | |- | ||
| | | order || style="background: red;" | no || || | ||
|- | |- | ||
| | | ndims || style="background: green;" | yes || built-in function || | ||
|- | |- | ||
| | | size || style="background: green;" | yes || built-in function || | ||
|- | |- | ||
| | | rowspan="5" | Model Arrays || stack || style="background: red;" | no || || | ||
|- | |- | ||
| | | nmodels || style="background: red;" | no || || | ||
|- | |- | ||
| | | permute || style="background: green;" | yes || built-in function || | ||
|- | |- | ||
| | | reshape || style="background: green;" | yes || built-in function || | ||
|- | |||
| repsys || style="background: green;" | yes || repsys.m || | |||
|- | |- | ||
|} | |} | ||
Line 165: | Line 165: | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Function !! Implemented !! File | ! Function !! Implemented !! File !! Status | ||
|- | |- | ||
| feedback || style="background: green;" | yes || @lti/feedback.m | | feedback || style="background: green;" | yes || @lti/feedback.m || | ||
|- | |- | ||
| connect || style="background: green;" | yes || @lti/connect.m | | connect || style="background: green;" | yes || @lti/connect.m || | ||
|- | |- | ||
| sumblk || style="background: green;" | yes || sumblk.m | | sumblk || style="background: green;" | yes || sumblk.m || | ||
|- | |- | ||
| series || style="background: | | series || style="background: red;" | no || || | ||
|- | |- | ||
| parallel || style="background: | | parallel || style="background: red;" | no || || | ||
|- | |- | ||
| append || style="background: green;" | yes || append.m | | append || style="background: green;" | yes || append.m || | ||
|- | |- | ||
| blkdiag || style="background: green;" | yes || @lti/blkdiag.m | | blkdiag || style="background: green;" | yes || @lti/blkdiag.m || | ||
|- | |- | ||
| imp2exp || style="background: red;" | no || | | imp2exp || style="background: red;" | no || || | ||
|- | |- | ||
| inv || style="background: green;" | yes || built-in function | | inv || style="background: green;" | yes || built-in function || | ||
|- | |- | ||
| lft || style="background: red;" | no || | | lft || style="background: red;" | no || || | ||
|- | |- | ||
| connectOptions || style="background: red;" | no || | | connectOptions || style="background: red;" | no || || | ||
|- | |- | ||
|} | |} | ||
Line 195: | Line 195: | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Chapter !! Function !! Implemented !! File | ! Chapter !! Function !! Implemented !! File !! Status | ||
|- | |- | ||
| rowspan=" | | rowspan="11" | Model Type Conversion || tf || style="background: orange;" | Linear Sytsem Representation || || | ||
|- | |- | ||
| | | zpk || style="background: orange;" | Linear Sytsem Representation || || | ||
|- | |- | ||
| | | ss || style="background: orange;" | Linear Sytsem Representation || || | ||
|- | |- | ||
| | | frd || style="background: orange;" | Linear Sytsem Representation || || | ||
|- | |- | ||
| | | pid || style="background: orange;" | Linear Sytsem Representation || || | ||
|- | |- | ||
| | | pidstd || style="background: orange;" | Linear Sytsem Representation || || | ||
|- | |- | ||
| | | pid2 || style="background: orange;" | Linear Sytsem Representation || || | ||
|- | |- | ||
| | | pidstd2 || style="background: red;" | no || || | ||
|- | |- | ||
| | | make1DOF || style="background: red;" | no || || | ||
|- | |- | ||
| | | make2DOF || style="background: red;" | no || || | ||
|- | |- | ||
| | | getComponents || style="background: red;" | no || || | ||
|- | |- | ||
| rowspan=" | | rowspan="7" | Continuous-Discrete Conversion || c2d || style="background: green;" | yes || @lti/c2d.m || | ||
|- | |- | ||
| | | d2c || style="background: green;" | yes || @lti/d2c.m || | ||
|- | |- | ||
| | | d2d || style="background: green;" | yes || @lti/d2d.m || | ||
|- | |- | ||
| | | upsample || style="background: red;" | no || || | ||
|- | |- | ||
| | | c2dOptions || style="background: red;" | no || || | ||
|- | |- | ||
| | | d2cOptions || style="background: red;" | no || || | ||
|- | |- | ||
| | | d2dOptions || style="background: red;" | no || || | ||
|- | |- | ||
| | | rowspan="9" | Model Simplification || hsvd || style="background: green;" | yes || hsvd.m || | ||
|- | |- | ||
| | | hsvplot || style="background: red;" | no || || | ||
|- | |- | ||
| | | sminreal || style="background: green;" | yes || @lti/sminreal.m || | ||
|- | |- | ||
| | | balred || style="background: red;" | no || || | ||
|- | |- | ||
| | | minreal || style="background: green;" | yes || @lti/minreal.m || | ||
|- | |- | ||
| | | balreal || style="background: red;" | no || || | ||
|- | |- | ||
| | | modred || style="background: red;" | no || || | ||
|- | |- | ||
| | | balredOptions || style="background: red;" | no || || | ||
|- | |- | ||
| | | hsvdOptions || style="background: red;" | no || || | ||
|- | |- | ||
| | | rowspan="5" | State-Coordinate Transformation || balreal || style="background: orange;" | Model Simplification || || | ||
|- | |- | ||
| | | canon || style="background: red;" | no || || | ||
|- | |- | ||
| | | prescale || style="background: green;" | yes || @lti/prescale.m || | ||
|- | |- | ||
| | | ss2ss || style="background: red;" | no || || | ||
|- | |- | ||
| | | xperm || style="background: green;" | yes || @lti/xperm.m || | ||
|- | |- | ||
| | | rowspan="5" | Modal Decomposition || modsep || style="background: red;" | no || || | ||
|- | |- | ||
| | | stabsep || style="background: red;" | no || || | ||
|- | |- | ||
| | | freqsep || style="background: red;" | no || || | ||
|- | |- | ||
| | | stabsepOptions || style="background: red;" | no || || | ||
|- | |- | ||
| | | freqsepOptions || style="background: red;" | no || || | ||
|- | |- | ||
|} | |} | ||
=== | === Linear Analysis === | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Chapter !! Function !! Implemented !! File | ! Chapter !! Function !! Implemented !! File !! Status | ||
|- | |- | ||
| | | rowspan="13" | Time-Domain Analysis || linearSystemAnalyzer || style="background: red;" | no || || | ||
|- | |- | ||
| | | impulseplot || style="background: red;" | no || || | ||
|- | |- | ||
| | | initialplot || style="background: red;" | no || || | ||
|- | |- | ||
| | | lsimplot || style="background: red;" | no || || | ||
|- | |- | ||
| | | stepplot || style="background: red;" | no || || | ||
|- | |- | ||
| | | covar || style="background: green;" | yes || covar.m || | ||
|- | |- | ||
| | | impulse || style="background: green;" | yes || impulse.m || | ||
|- | |- | ||
| | | initial || style="background: green;" | yes || initial.m || | ||
|- | |- | ||
| | | lsim || style="background: green;" | yes || lsim.m || | ||
|- | |- | ||
| | | step || style="background: green;" | yes || step.m || | ||
|- | |- | ||
| | | lsiminfo || style="background: red;" | no || || | ||
|- | |- | ||
| | | stepinfo || style="background: red;" | no || || | ||
|- | |- | ||
| | | stepDataOptions || style="background: red;" | no || || | ||
|- | |- | ||
| | | rowspan="15" | Frequency-Domain Analysis || linearSystemAnalyzer || style="background: orange;" | Time Domain Analysis || || | ||
|- | |- | ||
| | | bodeplot || style="background: red;" | no || || | ||
|- | |- | ||
| | | nicholsplot || style="background: red;" | no || || | ||
|- | |- | ||
| nyquistplot || style="background: red;" | no || || | |||
|- | |- | ||
| | | sigmaplot || style="background: red;" | no || || | ||
|- | |- | ||
| | | bode || style="background: green;" | yes || bode.m || | ||
|- | |- | ||
| | | nichols || style="background: green;" | yes || nichols.m || | ||
|- | |- | ||
| | | nyquist || style="background: green;" | yes || nyquist.m || | ||
|- | |- | ||
| | | sigma || style="background: green;" | yes || sigma.m || | ||
|- | |- | ||
| | | evalfr || style="background: red;" | no || || | ||
|- | |- | ||
| | | freqresp || style="background: green;" | yes || @lti/freqresp.m || | ||
|- | |- | ||
| | | bandwidth || style="background: green;" | yes || built-in function || | ||
|- | |- | ||
| | | dcgain || style="background: green;" | yes || @lti/dcgain.m || | ||
|- | |- | ||
| | | getGainCrossover || style="background: red;" | no || || | ||
|- | |- | ||
| | | getPeakGain || style="background: red;" | no || || | ||
|- | |- | ||
|} | |} | ||
== | === Control Design === | ||
=== Matrix Computations === | |||
== | == Some very basic examples == | ||
=== PT1/low-pass filter step response === | |||
<!-- {{SyntaxHighlight| --> | <!-- {{SyntaxHighlight| --> | ||
{{Code|Creating a transfer function and plotting its response|<syntaxhighlight lang="octave" style="font-size: | {{Code|Creating a transfer function and plotting its response|<syntaxhighlight lang="octave" style="font-size:13px"> | ||
T1 = 0.4; | T1=0.4; # time constant | ||
P = tf([1], [T1 1]) | P=tf([1], [T1 1]) # create transfer function model | ||
step(P, 2) # plot step response | step(P,2) # plot step response | ||
#add some common markers like the tangent line at the origin, which crosses lim(n->inf) f(t) at t=T1 | #add some common markers like the tangent line at the origin, which crosses lim(n->inf) f(t) at t=T1 | ||
hold on | hold on | ||
plot ([0 T1], [0 1], " | plot ([0 T1], [0 1],"g") | ||
plot ([T1 T1], [0 1], " | plot ([T1 T1], [0 1],"k") | ||
plot ([0 T1], [1-1/e 1-1/e],"m") | |||
hold off | hold off | ||
</syntaxhighlight>}} | </syntaxhighlight>}} | ||
Line 478: | Line 360: | ||
[[File:Pt1.png|600px]] | [[File:Pt1.png|600px]] | ||
Try also bode(P)! | |||
(a first order low-pass filter has -3db magnitude at f=1/T1) | |||
[[Category:Octave Forge]] | [[Category:Octave-Forge]] |