Please note that the recommended version of Scilab is 2024.0.0. This page might be outdated.

See the recommended documentation of this function

# armax1

armax identification

### Syntax

[arc, resid] = armax1(r, s, q, y, u) [arc, resid] = armax1(r, s, q, y, u, b0f)

### Arguments

- y
output signal

- u
input signal

- r,s,q
auto regression orders with r >=0, s >=-1.

- b0f
optional parameter. Its default value is 0 and it means that the coefficient b0 must be identified. if bof=1 the b0 is supposed to be zero and is not identified

- arc
is tlist with type "ar" and fields a, b, d, ny, nu, sig

- a
is the vector

`[1,a1,...,a_r]`

- b
is the vector

`[b0,......,b_s]`

- d
is the vector

`[1,d1,....,d_q]`

- sig
resid=[ sig*echap(1),....,];

### Description

armax1 is used to identify the coefficients of a 1-dimensional ARX process:

A(z^-1)y= B(z^-1)u + D(z^-1)sig*e(t) e(t) is a 1-dimensional white noise with variance 1. A(z)= 1+a1*z+...+a_r*z^r; ( r=0 => A(z)=1) B(z)= b0+b1*z+...+b_s z^s ( s=-1 => B(z)=0) D(z)= 1+d1*z+...+d_q*z^q ( q=0 => D(z)=1)

for the method, see Eykhoff in trends and progress in system identification) page 96. with

z(t)=[y(t-1),..,y(t-r),u(t),..., u(t-s),e(t-1),...,e(t-q)]

and

coef= [-a1,..,-ar,b0,...,b_s,d1,...,d_q]' y(t)= coef'* z(t) + sig*e(t).

a sequential version of the AR estimation where e(t-i) is replaced by an estimated value is used (RLLS). With q=0 this method is exactly a sequential version of armax

### Examples

a = [1, -2.851, 2.717, -0.865]; b = [0, 1, 1, 1]; d = [1, 0.7, 0.2]; ar = armac(a, b, d, 1, 1, 1); disp(_("Simulation of an ARMAX process:")); disp(ar); n = 300; u = -prbs_a(n, 1, int([2.5,5,10,17.5,20,22,27,35]*100/12)); zd = narsimul(ar, u); // using now armax1 : colored noise identification // you can test the same example with [arc1, resid] = armax1(3,3,2,zd(1:n),u,1); disp(arc1);

### Important notice

In Scilab versions up to 4.1.2 the returned value in
`arc.sig`

is the square of `sig`

square. To be conform with the help, the display of arma models
and the armax function, starting from Scilab-5.0 version the
returned `arc.sig`

is `sig`

.

Report an issue | ||

<< armax | Identification | findABCD >> |