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 モデルの次数です。メモ
遅延
nkは0より大きくなくてはなりません。nk = 0にする場合は、入力シーケンスを適切にシフトし、nk = 1を使用します (nkshiftを参照)。admおよびadgadm = '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 がパラメーター変更の共分散行列となります。th0thmの行と整合している、行ベクトルのパラメーターの初期値。既定: すべてゼロ。
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をオンラインで使用する場合は、phi0、th0、およびP0を前の出力phi、thm(最後の行)、およびPとして使用します。既定: すべてゼロ。
出力引数
thmモデルの推定されたパラメーター。
thmのk番目の行には、時間kに関連したパラメーターが含まれます。つまり、推定パラメーターは、zの行kまで (この行を含む) の行のデータに基づきます。thmの各行には、以下の順序で推定されたパラメーターが含まれます。thm(k,:) = [a1,a2,...,ana,b1,...,bnb]
多入力モデルでは、"b" は入力でグループ化されます。たとえば、最初の入力に関連した "b" パラメーターが最初にリストされ、2 番目の入力に関連した "b" パラメーターが次にリストされます。
yhat現在のモデルに従った出力の予測値。つまり、
yhatの行kには、すべての過去のデータに基づいたy(k)の予測値が含まれます。
Pパラメーターのスケーリングされた共分散行列の最終値。
phiphiには、データ ベクトルの最終値が含まれます。φ(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 コンバーターの値を読み取る関数です。
詳細
バージョン履歴
R2006a より前に導入