Control package: Difference between revisions
Jump to navigation
Jump to search
Line 237: | Line 237: | ||
| hsvdOptions || style="background: red;" | no || || || || | | hsvdOptions || style="background: red;" | no || || || || | ||
|- | |- | ||
| rowspan=" | | rowspan="4" | State-Coordinate Transformation || canon || style="background: red;" | no || || || || | ||
| canon || style="background: red;" | no || || || || | |||
|- | |- | ||
| prescale || style="background: green;" | yes || @lti/prescale.m || || || | | prescale || style="background: green;" | yes || @lti/prescale.m || || || |
Revision as of 07:48, 25 September 2015
The control package is part of the Octave Forge project.
Function list
Linear System Representation
Chapter | Function | Implemented | File | Status | SLICOT functions | Priority (0-2) |
---|---|---|---|---|---|---|
Basic Models | tf | yes | @tf/tf.m | |||
zpk | yes | zpk.m | ||||
ss | yes | @ss/ss.m | ||||
frd | yes | @frd/frd.m | ||||
pid | no | |||||
pidstd | no | |||||
pid2 | no | |||||
dss | yes | @lti/dss.m | ||||
drss | no | |||||
filt | yes | filt.m | ||||
rss | no | |||||
Tunable Models | ltiblock.gain | no | ||||
ltiblock.pid | no | |||||
ltiblock.pid2 | no | |||||
ltiblock.ss | no | |||||
ltiblock.tf | no | |||||
realp | no | |||||
AnalysisPoint | no | |||||
genss | no | |||||
genfrd | no | |||||
genmat | no | |||||
getLoopTransfer | no | |||||
getIOTransfer | no | |||||
getSensitivity | no | |||||
getCompSensitivity | no | |||||
getPoints | no | |||||
replaceBlock | no | |||||
getValue | no | |||||
setValue | no | |||||
getBlockValue | no | |||||
setBlockValue | no | |||||
showBlockValue | no | |||||
showTunable | no | |||||
nblocks | no | |||||
getLFTModel | no | |||||
Model with Time Delays | pade | no | ||||
absorbDelay | no | |||||
thiran | yes | thiran.m | ||||
hasdelay | no | |||||
hasInternalDelay | no | |||||
totaldelay | no | |||||
delayss | no | |||||
setDelayModel | no | |||||
getDelayModel | no | |||||
Model Attributes | get | yes | @iddata/get.m | |||
set | yes | @iddata/set.m | ||||
tfdata | yes | @lti/tfdata.m | ||||
zpkdata | yes | @lti/zpkdata.m | ||||
ssdata | yes | @lti/ssdata.m | ||||
frdata | yes | @lti/frdata.m | ||||
piddata | no | |||||
pidstddata | no | |||||
piddata2 | no | |||||
pidstddata2 | no | |||||
dssdata | yes | @lti/dssdata.m | ||||
chgFreqUnit | no | |||||
chgTimeUnit | no | |||||
isct | yes | @lti/isct.m | ||||
isdt | yes | @lti/isdt.m | ||||
isempty | yes | built-in function | ||||
isfinite | yes | built-in function | ||||
isParametric | no | |||||
isproper | no | |||||
isreal | yes | built-in function | ||||
isiso | no | |||||
isstable | yes | @lti/isstable.m | ||||
isstatic | no | |||||
order | no | |||||
ndims | yes | built-in function | ||||
size | yes | built-in function | ||||
Model Arrays | stack | no | ||||
nmodels | no | |||||
permute | yes | built-in function | ||||
reshape | yes | built-in function | ||||
repsys | yes | repsys.m |
Model Interconnection
Function | Implemented | File | Status | SLICOT functions | Priority |
---|---|---|---|---|---|
feedback | yes | @lti/feedback.m | |||
connect | yes | @lti/connect.m | |||
sumblk | yes | sumblk.m | |||
series | no | ||||
parallel | no | ||||
append | yes | append.m | |||
blkdiag | yes | @lti/blkdiag.m | |||
imp2exp | no | ||||
inv | yes | built-in function | |||
lft | no | ||||
connectOptions | no |
Model Transformation
Chapter | Function | Implemented | File | Status | SLICOT functions | Priority |
---|---|---|---|---|---|---|
Model Type Conversion | pidstd2 | no | ||||
make1DOF | no | |||||
make2DOF | no | |||||
getComponents | no | |||||
Continuous-Discrete Conversion | c2d | yes | @lti/c2d.m | |||
d2c | yes | @lti/d2c.m | ||||
d2d | yes | @lti/d2d.m | ||||
upsample | no | |||||
c2dOptions | no | |||||
d2cOptions | no | |||||
d2dOptions | no | |||||
Model Simplification | hsvd | yes | hsvd.m | |||
hsvplot | no | |||||
sminreal | yes | @lti/sminreal.m | ||||
balred | no | |||||
minreal | yes | @lti/minreal.m | ||||
balreal | no | |||||
modred | no | |||||
balredOptions | no | |||||
hsvdOptions | no | |||||
State-Coordinate Transformation | canon | no | ||||
prescale | yes | @lti/prescale.m | ||||
ss2ss | no | |||||
xperm | yes | @lti/xperm.m | ||||
Modal Decomposition | modsep | no | ||||
stabsep | no | |||||
freqsep | no | |||||
stabsepOptions | no | |||||
freqsepOptions | no |
Linear Analysis
Chapter | Function | Implemented | File | Status | SLICOT functions | Priority |
---|---|---|---|---|---|---|
Time-Domain Analysis | linearSystemAnalyzer | no | ||||
impulseplot | no | |||||
initialplot | no | |||||
lsimplot | no | |||||
stepplot | no | |||||
covar | yes | covar.m | ||||
impulse | yes | impulse.m | ||||
initial | yes | initial.m | ||||
lsim | yes | lsim.m | ||||
step | yes | step.m | ||||
lsiminfo | no | |||||
stepinfo | no | |||||
stepDataOptions | no | |||||
Frequency-Domain Analysis | bodeplot | no | ||||
nicholsplot | no | |||||
nyquistplot | no | |||||
sigmaplot | no | |||||
bode | yes | bode.m | ||||
nichols | yes | nichols.m | ||||
nyquist | yes | nyquist.m | ||||
sigma | yes | sigma.m | ||||
evalfr | no | |||||
freqresp | yes | @lti/freqresp.m | ||||
bandwidth | yes | built-in function | ||||
dcgain | yes | @lti/dcgain.m | ||||
getGainCrossover | no | |||||
getPeakGain | no | |||||
Stability Analysis | pole | yes | @lti/pole.m | |||
zero | yes | @lti/zero.m | ||||
damp | no | |||||
dsort | no | |||||
esort | no | |||||
tzero | no | |||||
pzplot | no | |||||
iopzplot | no | |||||
allmargin | no | |||||
margin | yes | margin.m | ||||
Plot Customization | bodeoptions | no | ||||
hsvoptions | no | |||||
nicholsoptions | no | |||||
nyquistoptions | no | |||||
pzoptions | no | |||||
sigmaoptions | no | |||||
timeoptions | no | |||||
setoptions | no | |||||
getoptions | no | |||||
ctrlpref | no | |||||
updateSystem | no |
Control Design
Chapter | Function | Implemented | File | Status | SLICOT functions | Priority |
---|---|---|---|---|---|---|
PID Controller Tuning | pidTuner | no | ||||
pidtune | no | |||||
pidtuneOptions | no | |||||
SISO Feedback Loops | rlocus | yes | rlocus.m | |||
rlocusplot | no | |||||
controlSystemDesigner | no | |||||
sisoinit | no | |||||
Linear-Quadratic-Gaussian Control | lqr | yes | lqr.m | |||
lqry | no | |||||
lqi | no | |||||
dlqr | yes | dlqr.m | ||||
lqrd | no | |||||
kalman | yes | kalman.m | ||||
kalmd | no | |||||
lqg | no | |||||
lqgreg | no | |||||
lqgtrack | no | |||||
augstate | no | |||||
norm | yes | @lti/norm.m | ||||
Pole Placement | estim | yes | estim.m | |||
place | yes | place.m | ||||
reg | no |
Matrix Computations
Function | Implemented | File | Status | SLICOT functions | Priority |
---|---|---|---|---|---|
lyap | yes | lyap.m | |||
lyapchol | yes | lyapchol.m | |||
dlyap | yes | dlyap.m | |||
dlyapchol | yes | dlyapchol.m | |||
care | yes | care.m | |||
dare | yes | dare.m | |||
gcare | no | ||||
gdare | no | ||||
ctrb | yes | ctrb.m | |||
obsv | yes | obsv.m | |||
ctrbf | yes | ctrbf.m | |||
obsvf | yes | obsvf.m | |||
gram | yes | gram.m | |||
bdschur | no | ||||
norm | Linear-Quadratic-Gaussian Control |
Some very basic examples
PT1/low-pass filter step response
Code: Creating a transfer function and plotting its response |
T1=0.4; # time constant
P=tf([1], [T1 1]) # create transfer function model
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
hold on
plot ([0 T1], [0 1],"g")
plot ([T1 T1], [0 1],"k")
plot ([0 T1], [1-1/e 1-1/e],"m")
hold off
|
Try also bode(P)! (a first order low-pass filter has -3db magnitude at f=1/T1)