Control package

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 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 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 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 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
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)