The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
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
|
Model Type Conversion |
tf |
Linear Sytsem Representation |
|
|
zpk |
Linear Sytsem Representation |
|
|
ss |
Linear Sytsem Representation |
|
|
frd |
Linear Sytsem Representation |
|
|
pid |
Linear Sytsem Representation |
|
|
pidstd |
Linear Sytsem Representation |
|
|
pid2 |
Linear Sytsem Representation |
|
|
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 |
balreal |
Model Simplification |
|
|
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
|
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 |
linearSystemAnalyzer |
Time 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
|
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
|
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)