Main Content

rarx

(削除予定) ARX または AR モデルのパラメーターを再帰的に推定する

メモ

rarx は将来のリリースで削除される予定です。代わりに recursiveAR または recursiveARX を使用してください。

構文

thm = rarx(z,nn,adm,adg)
[thm,yhat,P,phi] = rarx(z,nn,adm,adg,th0,P0,phi0)

説明

thm = rarx(z,nn,adm,adg) は、adm および adg で指定したアルゴリズムを使用して、入出力データ z およびモデル次数 nn から単出力 ARX モデルのパラメーター thm を推定します。z が時系列 y であり、nn = na の場合、rarx は単出力 AR モデルのパラメーターを推定します。

[thm,yhat,P,phi] = rarx(z,nn,adm,adg,th0,P0,phi0) は、adm および adg で指定したアルゴリズムを使用して、入出力データ z およびモデル次数 nn から単出力 ARX モデルのパラメーター thm、予測出力 yhat、パラメーター P のスケーリングされた共分散行列の最終値、およびデータ ベクトル phi の最終値を推定します。z が時系列 y であり、nn = na の場合、rarx は単出力 AR モデルのパラメーターを推定します。

入力引数

z

入出力データを表す iddata 行列オブジェクトの名前または行列 z = [y u] (y および u は列ベクトル)。

多入力モデルでは、u 行列には列ベクトルとして各入力が含まれます。

u = [u1 ... unu]
nn

入出力モデルでは、ARX モデルの構造を以下のように指定します。

nn = [na nb nk]

ここで、na および nb は ARX モデルの次数、nk は遅延です。

多入力モデルでは、nb および nk は、各入力の次数および遅延を定義する行ベクトルです。

時系列モデルでは、nn = na です。ここで、na は AR モデルの次数です。

メモ

遅延 nk0 より大きくなくてはなりません。nk = 0 にする場合は、入力シーケンスを適切にシフトし、nk = 1 を使用します (nkshift を参照)。

adm および adg

adm = 'ff' および adg = lam は、忘却係数 λ=lam を使用する "忘却係数" アルゴリズムを指定します。このアルゴリズムは、再帰的最小二乗 (RLS) とも呼ばれます。この場合、行列 P の解釈は以下のようになります。R2/2 * P は推定パラメーターの共分散行列にほぼ等しくなります。R2 はイノベーション (真の予測誤差 "e"("t")) の分散です。

adm ='ug' および adg = gam は、"ガンマ" = gam のゲインをもつ "非正規化勾配" アルゴリズムを指定します。このアルゴリズムは、正規化最小平均二乗 (LMS) とも呼ばれます。

adm ='ng' および adg = gam は、"正規化勾配" (正規化最小平均二乗 (NLMS)) アルゴリズムを指定します。これらの場合は、P は適用されません。

adm ='kf' および adg =R1 は、R2=1 および R1 = R1 として "カルマン フィルター ベース" のアルゴリズムを指定します。イノベーション "e"("t") の分散が 1 ではなく R2 の場合は、R2* P がパラメーター推定の共分散行列となり、R1 = R1 /R2 がパラメーター変更の共分散行列となります。

th0

thm の行と整合している、行ベクトルのパラメーターの初期値。

既定: すべてゼロ。

P0

パラメーターのスケーリングされた共分散行列の初期値。

既定: 104 ×単位行列。

phi0

引数 phi0 には、データ ベクトルの初期値が含まれます。

φ(t) = [y(t–1),...,y(t–na),u(t–1),...,u(t–nb–nk+1)]

z = [y(1),u(1); ... ;y(N),u(N)] の場合、phi0 = φ(1) および phi = φ(N) です。rarx をオンラインで使用する場合は、phi0th0、および P0 を前の出力 phithm (最後の行)、および P として使用します。

既定: すべてゼロ。

出力引数

thm

モデルの推定されたパラメーター。thmk 番目の行には、時間 k に関連したパラメーターが含まれます。つまり、推定パラメーターは、z の行 k まで (この行を含む) の行のデータに基づきます。thm の各行には、以下の順序で推定されたパラメーターが含まれます。

thm(k,:) = [a1,a2,...,ana,b1,...,bnb]

多入力モデルでは、"b" は入力でグループ化されます。たとえば、最初の入力に関連した "b" パラメーターが最初にリストされ、2 番目の入力に関連した "b" パラメーターが次にリストされます。

yhat

現在のモデルに従った出力の予測値。つまり、yhat の行 k には、すべての過去のデータに基づいた y(k) の予測値が含まれます。

P

パラメーターのスケーリングされた共分散行列の最終値。

phi

phi には、データ ベクトルの最終値が含まれます。

φ(t) = [y(t–1),...,y(t–na),u(t–1),...,u(t–nb–nk+1)]

適応ノイズ キャンセリング: 信号 "y" には、既知の信号 "r" から生じた成分が含まれます。6 次 FIR モデルおよび NLMS アルゴリズムを使用して、"r""y" に関連付けるシステムを再帰的に推定することで、この成分を除去します。

z = [y r];
[thm,noise] = rarx(z,[0 6 1],'ng',0.1);
% noise is the adaptive estimate of the noise
% component of y
plot(y-noise)

これがオンライン アプリケーションの場合は、データ "y" および "u" が使用可能になると同時に信号 y - noise の最良の推定をプロットできます。以下のコードを使用します。

phi = zeros(6,1);
P=1000*eye(6);
th = zeros(1,6);
axis([0 100 -2 2]);
plot(0,0,'*'), hold on
% Use a while loop
while ~abort
[y,r,abort] = readAD(time);
[th,ns,P,phi] = rarx([y r],'ff',0.98,th,P,phi);
plot(time,y-ns,'*')
time = time + Dt
end

この例では、忘却係数 0.98 の忘却係数アルゴリズムを使用しています。readAD は、示された時点で A/D コンバーターの値を読み取る関数です。

詳細

すべて折りたたむ

ARX モデル構造

一般的な ARX モデルの構造:

A(q)y(t)=B(q)u(tnk)+e(t)

ARX モデルの次数は次のとおりです。

na:   A(q)=1+a1q1+...+anaqnanb:   B(q)=b1+b2q1+...+bnbqnb+1

複数の入力をもつモデルは以下のように定義されます。

A(q)y(t) = B1(q)u1(t–nk1)+...+Bnuunu(t–nknu)+e(t)

バージョン履歴

R2006a より前に導入