Scilab Website | Contribute with GitLab | Mailing list archives | ATOMS toolboxes
Scilab Online Help
6.1.0 - Français

Change language to:
English - 日本語 - Português - Русский

Please note that the recommended version of Scilab is 2025.0.0. This page might be outdated.
See the recommended documentation of this function

Aide de Scilab >> Systèmes de Contrôle - CACSD > Identification > armax1

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

Copyright (c) 2022-2024 (Dassault Systèmes)
Copyright (c) 2017-2022 (ESI Group)
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Tue Feb 25 08:50:22 CET 2020