Professional Documents
Culture Documents
Lennart Andersson, Ulf Jönsson, Karl Henrik Johansson, and Johan Bengtsson
0. Introduction
The main purpose of this manual is to describe Purpose
how to use the Matlab System Identification Toolbox.
The most important toolbox commands are described
briefly and in the order they are normally executed
during a system identification session. See the toolbox Physical
manual and the Matlab built-in help function for Modeling
further information about the commands. With a web
browser (for example, Firefox) it is possible to read
the manual at
Experiments
http://www.mathworks.com/access/helpdesk/
help/toolbox/ident/
Data
Figure 1 shows an algorithm for modeling and system
Examination
identification. The presentation in this manual follows
this algorithm. System identification is an iterative
process and it is often necessary to go back and
repeat earlier steps. This is illustrated with arrows Model Structure
in the figure. Notice that the order of the blocks in Selection
the algorithm does not only describe the chronological
order the tasks are performed, but also how they
influence each other. For example, a certain model Model
structure can be proposed by the physical model,
Estimation
the amount of data limits the model complexity etc.
Support for control design is often the purpose for
system identification in this course, as illustrated by
the last block in Figure 1. Validation
1. Purpose
It is important to state the purpose of the model as a Control
first step in the system identification procedure. There Design
are a huge variety of model applications, for example,
the model could be used for control, prediction, signal
processing, error detection or simulation. The purpose
of the model affects the choice of identification meth-
ods and the experimental conditions, and it should Figure 1 Algorithm for modeling and system identifica-
therefore be clearly stated. It is, for example, impor- tion.
1
in terms of model order, known pole locations (an inte- A common nonlinearity is friction. The influence of
grator or dominating resonance), static nonlinearities friction can be reduced or eliminated by performing
etc. If there are no knowledge about the considered the identification experiment with a bias on the in-
system, we use the term black-box identification. It is put. For example, a DC motor model should be identi-
called grey-box identification, if some part of the sys- fied using a bias such that the motor runs in only one
tem is known. direction during the experiment. Furthermore, large
input signals (contrary to the linearization prerequi-
site above) can reduce the problems with friction.
3. Experiments
The experiments are done in two steps. In the first Transient response analysis Step- and impulse-
step, preliminary experiments such as impulse and response analysis give information on dominating
step responses are performed to gain primary knowl- time constant, time delay, and stationary gain. It
edge about important system characteristics such as is also possible to recognize non-minimum phase
stationary gain, time delay and dominating time con- properties of the system from these experiments. An
stants. It should be possible to draw conclusions from indication of the disturbances acting on the system
these experiments on whether or not the system is lin- may also be obtained.
ear and time invariant and if there are disturbances
acting on the system. The information obtained from Frequency response analysis Frequency response
the preliminary experiments are then used to deter- analysis according to the correlation method in Chap-
mine suitable experimental conditions for the main ter 2 of Johansson (1993) gives an estimated transfer
experiments, which will give the data to be used in function for the system. The obtained Bode plot gives
the System Identification Toolbox. information on location of poles and zeros, stationary
gain, and time delay.
Most real systems are nonlinear. A linearized model A rule of thumb is to let 1/(h ⋅ M) be equal to the
can then be obtained from data if the input signal bandwidth of the system. To avoid aliasing, M should
has a small amplitude. Sometimes it is possible by be at least 2–10. The closed loop system step response
a proper choice of state-transformation to rewrite should be sampled 5-10 times during it’s rise time.
a nonlinear system into a linear, see Chapter 5 in The experiment duration should be chosen to get good
Johansson (1993). parameter estimates. A rule of thumb is to make it
2
5-10 times longer than the longest interesting time The trends should, of course, also be removed from
constant. validation data zv.
The data can be divided into three parts
plot Display input–output data
• data with transients detrend Remove trends from data
• identification data
• validation data 4.1 Excitation
The input should provide good excitation in the fre-
The amplitude should be chosen as large as possible quency range where the model need to be accurate.
in order to achieve a good signal-to-noise ratio and We can check if the input excites the system appropri-
to overcome problems with friction. However, the ately by studying
amplitude may not be chosen larger than the range
in which the linearity assumption holds. (See the • the autospectrum of u and y,
section on preliminary experiments above.) Typically
saturations give an upper bound on the amplitude of • the coherence spectrum, and
the input signal. The mean value is in many cases
non-zero in order to reduce friction problems or to • the conditions for persistent excitation.
give a linearized model around a stationary point with
u0 ,= 0. It is possible to concentrate the identification to
interesting frequency ranges by filtering u and y as
explained below. If the excitation is insufficient after
4. Data Examination filtering then the experiments must be repeated with
Assume that an experiment has been performed and new experimental conditions. The Matlab function
that we have an input sequence and an output se- spectrum can be used to plot the autospectrum and
quence represented as column vectors u and y, respec- the coherence function as follows
tively, in Matlab. It is suitable to split the data into
two sets, one for identification and one for validation: >> yi=zi.OutputData; ui=zi.InputData;
>> spectrum(ui,yi)
>> zi=iddata(y(1:N1),u(1:N1),h);
>> zv=iddata(y(N1+1:N),u(N1+1:N),h); With an output argument
• aliasing effects, and S=[Suu Syy Suy Tyu Gamuy Suuc Syc Suyc]
• trends and non-stationarity. Suu=u-vector power spectral density
Syy=y-vector power spectral density
Outliers should simply be removed from the data Suy=Cross spectral density
series. Tuy=Complex transfer function Suy./Suu
Gamuy=Coherence function
If there are aliasing effects in the data, the experiment (abs(Suy).^2)./(Suu.*Syy)
set-up has to be changed: either the sampling rate Suuc,Syyc,Suyc=Confidence ranges
should be increased or an appropriate anti-aliasing
filter should be used.
Some of these can also be derived separately, as shown
Linear trends in data should be removed. This is done in the box below.
by using the command detrend. A non-zero mean
value is removed by the Matlab command
psd Power spectral density
>> zi=detrend(zi,’constant’); csd Cross spectral density
cohere Coherence function estimate
and a linear trend are removed by the command tfe Transfer function estimate
3
n the real process. Few dynamical systems can be well
approximated by the model y(t) = K u(t).
Hn Model estimation is treated in next section. Then, both
parametric and nonparametric models are considered.
u y The most general parametric model structure used in
Hu the System Identification Toolbox is given by
B ( q) C ( q)
A( q) y(t) = u(t − nk ) + e(t) (1)
F ( q) D ( q)
Hf Hf
where y and u is the output and input sequences,
uf yf respectively, and e is a white noise sequence with zero
mean value. The polynomials A, B, C, D, F are defined
Figure 2 Filtering of data affects the noise model
in terms of the backward shift operator1 :
It is also possible to use the commands filter and A( q) y(t) = B ( q)u(t − nk ) + e(t) (3)
filtfilt from the Signal Processing Toolbox. The
latter assures zero phase distortion. • ARMAX model
It is important to note that filtering affects the noise A( q) y(t) = B ( q)u(t − nk ) + C ( q) e(t) (4)
model. Consider the setup in Figure 2. If we use the
filtered data u f and y f to obtain a noise model Ĥ n , • Output-error (OE) model
then we actually obtain the estimate Hd f Hn . B ( q)
y(t) = u(t − nk ) + e(t) (5)
F ( q)
idfilt Butterworth filter
filter Arbitrary filter • Box-Jenkins (BJ) model
filtfilt Undistorted-phase filter B ( q) C ( q)
y(t) = u(t − nk ) + e(t) (6)
F ( q) D ( q)
5. Model Structure Selection The choice of model structure depends on the noise
We discuss model structure selection for parametric sequence: how well is it possible to estimate the noise?
models in this section. The model structure deter- It is not at all necessary that a model with more
mines the set in which the model estimation is per- parameters or more freedom (more polynomials) is
formed. For example, a very simple such model set is better. Finding the best model is a matter of choosing
the set of static gains K mapping the input to the out- a suitable structure in combination with the number
put, that is, the input–output model y(t) = K u(t). The of parameters.
complexity of the model structure, of course, affects 1 Notice that this parametrization is not the same we are used to
the accuracy with which the model can approximate from the course Computer-Controlled Systems.
4
Manipulation of models approximately white. The command cra uses filtered
idgrey Fix parameters (grey-box signals u f and y f to estimate the impulse response as
in (8):
identification)
model.Ts=h Set sampling interval to h >> ir=cra(zi)
and Cuu and Cyy similarly. An estimate of the impulse spa Spectral analysis
response can then be derived using the relationship
∞
X 6.3 Spectral analysis from the DFT
Ĉyu ( k) = h(l ) Ĉuu ( k − l ) The command etfe estimates the transfer function as
l =0 the ratio of the DFT of the input and the output:
If u is assumed to be a white noise sequence, this
Ŷ ( eiω k )
expression is simplified and gives Ĥ ( eiω k ) =
Û ( eiω k )
1
ĥ( k) = Ĉyu ( k) (8) In Matlab, we write
σ u2
5
As in spa, a window is used when deriving H. The pem Estimate general model
estimate will vary with the choice of window, and it is ar Estimate AR model
far from trivial to choose a proper window.
ivar IV estimate of AR model
The commands tfe and spectrum in the Signal Pro- iv4 IV estimate of AR model
cessing Toolbox estimates the transfer function by
arx LS estimate of ARX model
using the so called Welch’s averaged periodogram
method. The quality of the estimates depends on the ivx IV estimate of ARX model
choice of a number of parameters defining windows, armax Estimate ARMAX model
averaging and zero padding. An estimate is derived as oe Estimate output-error model
bj Estimate Box-Jenkins model
>> H=tfe(ui,yi); present Presentation of estimated model
6
7. Validation 7.2 Pole–zero plots
The parametric models obtained in previous section A rough idea of pole–zero locations are obtained from
can be validated in a variety of ways. Here, we discuss the simple experiments discussed in Section 3 and
model validity criterion, pole–zero and Bode plots, from the nonparametric models. It should be verified
residual analysis, and simulation and cross validation. that the estimated model has similar pole–zero loca-
In a standard identification session all of these are tions. Moreover, if the noise appeared to have domi-
used to affirm an accurate model. nating frequencies, there should be resonant poles in
the noise model with corresponding frequencies.
7.1 Model validity criterion A pole–zero plot may indicate if the model order is too
large. Then there will be poles and zeros located close
It is possible to get an indication of a suitable model
together, suggesting that model reduction is possible.
order by studying how various criteria depend on the
model order. Two such criteria are the loss function
>> pzmap(pem1);
and Akaike’s Final Prediction Error (FPE). These two
criteria is given by the command present. A more
sophisticated way of using model validity criteria zpkdata Zeros, poles, static gains
are obtained through arxstruc and ivstruc together and their standard deviations
with selstruc. These commands can be used for pzmap Plot of zeros and poles
determination of suitable model order for an ARX
structure. An example:
7.3 Bode diagram
The Bode plot of the estimated polynomial model
>> NN=[2 1 1;3 1 1;3 2 1;4 3 1;5 4 1];
should be consistent with the frequency analysis
>> V=arxstruc(zi,zv,NN);
in Section 3 and the Bode plots obtained by the
>> selstruc(V);
nonparametric methods in Section 6. Stationary gain
and location of dominating poles and zeros can be
Each row of the matrix NN contains the order of an checked in the Bode plot. The Nyquist plot of the
ARX model. The arxstruc command estimates the estimated model can be used in the same way. The
parameters and computes the corresponding losses noise-spectrum is also obtained, if a second output
for the ARX models defined by NN based on the arguments is added to th2ff.
identification data in zi and the validation data in zv.
The selstruc command plots the loss as a function of >> H=idfrd(pem1(’m’));
the number of parameters in the model in a diagram. >> bode(H);
It is possible to invoke the selstruc command with an >> Snn=idfrd(pem1(’n’));
extra argument ’AIC’ or ’MDL’, in which case the best >> bode(Snn);
model is selected according to Akaike’s Information
Theoretic Criterion (AIC) or Rissanen’s Minimum idfrd Frequency function for the model
Description Length Criterion (MDL). For example,
7
The residuals can be tested in several ways, for >> uv=zv.InputData;
example, through >> yv=zv.OutputData;
>> ys=idsim(uv,pem1);
• autocorrelation for the residuals, >> plot([yv ys]);
• crosscorrelation between the residuals and the It may be possible to achieve better correspondence
input, and
between the simulated and the measured output in
• distribution of residual zero crossings (see Jo- the cross validation test by using the residuals in
hansson (1993)). the simulation. The reason is that then not only the
dynamic part of the model but also the noise model is
The first two quantities are plotted as taken into consideration in the simulation.
>> ui=zi.InputData;
>> yi=zi.OutputData;
>> ys=idsim(ui,pem1);
>> plot([yi ys]);