You are on page 1of 14

Nonlinear

ARX
Identification
Purpose of this project
➔ What is ARX?
It’s a method that produces parametric, polynomial models.

➔ Why do we use ARX?


It’s a fully implementable method with guarantees.
Gives a compact model with a number of parameters proportial
to the order of system.

➔ How do we implement it?


Writing the ARX in polynomial form and we run it in prediction
and simulation models.
Our Objective
To develop a black-box model for the given
system, using a polynomial, nonlinear ARX
model.
How did we solve it?
01 02
Obtained the vector of linear Created a vector with the coefficients
regressions in polynomial form of every element in the polynom

03 04
The regression vector and the Recall prediction versus simulation on
parameter vector both identification and validation
Polynomial NARX
Nonlinear ARX (NARX) generalizes the linear
dependence on delayed inputs and outputs to any
nonlinear dependence
In the first part of the implementation we made 2 vectors that get the input
values from na(number of poles), nb(number of zeros), nk(dead time), m(degree
of the polynomial function).
We used each time vectorization that goes from 1 to na, nk to na-nb+1 in order
to create the next lines. After that we added each element in order to create a
part of the vector with y and after that one with x
vect=

(The vector with elements at every power until m-1)

(The vector with all the elements but only at power m)

vectm=
Next we create a matrix that contains on each column the coefficients of the values for
the previous vector that we need to combine in order to obtain all the elements of the
polynom.
We are not including the elements for the dead time at power m.

● If m would be 0, we would have


an error because the length is
m-1
● We have a vector with all the
numbers that increments each
iteration
● We created the last coefficient
(constant term) that “has” no
term and add it to coef
● We combine the first 2 rows
manually because each time we
would have to combine at least 2
vectors
● We do the rest starting with the
3rd element
We initialized the polynomial vector and we
created a loop where polynom gets all
combinations between vect and coef

After that we add the vector at power m so that


the polynomial vector at power m is complete
We have 2 cases: when m is equal to 0 and when is not.
● For the first case we only add on each line vectm at every k
● In the second case we add the vector polynom on each line of the
matrix phi for every k
Example of output with given na=nb = 5, nk = 1 and m = 1
Table with the Minimum square errors for the first 3 combinations of numbers
Bibliographical references
● H. Peng et al., RBF-ARX model-based nonlinear
system modeling and predictive control with
application to a NOx decomposition process,
Control Engineering Practice 12, pages 191–203,
2007. Here the model is explained in Sections
2.1-2.2, and uses tunable radial basis functions
instead of polynomials.
● L. Ljung, System Identification, Wiley
Encyclopedia of Electrical and Electronics
Engineering, 2007. Available as technical report
LiTH-ISY-R-2809. See Section 4 for nonlinear
models, again mainly using basis functions.
● Courses, System Identification, Busoniu Lucian

You might also like