主要内容

。中文:中文:。

モーター付きカメラ——多入力/多出力非線形ARXおよびHammerstein-Wienerモデル

この例では,多入力/多出力(MIMO)非線形ブラックボックスモデルをデータから推定する方法を説明します。系统识别工具箱™ では、非線形 ARX モデルと Hammerstein-Wiener モデルという 2 種類の非線形ブラック ボックス モデルが利用できます。

測定するデータセット

机动照相机。。このファイルには,モーター付きカメラからサンプル時間0.02秒で収集した188のデータサンプルが含まれています。6 .。これらの変数とは,カメラに固定された直交x y z座標系の3つの並進速度成分(m / s)とx y z軸周りの3つの回転速度成分(rad / s)です。2 .。これらの変数は,3 d空間の固定カメラポイントから取得したイメージによるポイントの位置(ピクセル単位)です。Iddataz

负载motorizedcameraZ = iddata(y, u, 0.02,“名字”“机动相机”“TimeUnit”“年代”);

→→→→→→→→→→→→→→

。2 > > > > > > > > > > > > > > > > > > > > >。

リグレッサーは時間遅延I / O変数に基づいた単純な式であり,その最も簡単なケースは連続値の小さなセットによって遅延した変数です。たとえば,入力変数の名前が“u”,出力変数の名前が" y "の場合,リグレッサーセットの例は{y y (t - 1), (2), u (t), u (t - 1), u(2)}になります。“t”、“t”、“t”、“t”。多項式の項を含むもう1つの例は,{y (2) ^ 4, y (2) * u (t - 1), u(第四节)^ 2}になります。。

“。この行列はNN = (na nb nk)という形式をとり,各出力変数(na)および各入力変数(nb、nk)を何個のラグで遅延させるかを指定します。これは,線形ARXモデル(ARX, IDPOLYを参照)の推定時に使用した考え方と同じです。たとえばNN =[2 3 4]はリグレッサーセット{y (2), u(第四节),u (t-5), u (t-6)}を意味します。纽约個の出力とν個の入力があるモデルの一般的なケースでは,NNは纽约行および纽约+ 2 *ν行の行列となります。

非線形ARX (IDNLARX)モデル——ウェーブレットネットワークを使用した予備推定

まず,次数神经网络= [na nb nk] =[(2, 2),则(2,6)的(2,6)]を選択します。これは,各出力変数が,出力および入力変数によって予測され,それぞれが1サンプルずつ遅延されることを意味します。モデル方程式は,y_i (t) = F_i (y1 (t - 1), y2 (t - 1), u1 (t - 1), u2 (t - 1), u3 (t - 1)), i = 1、2のように記述できます。ウェーブレットネットワーク(idWaveletNetworkオブジェクト)を両方の出力に対する非線形マッピング関数として選択します。。

NN = [ones(2,2), ones(2,6), ones(2,6)];订单百分比mw1 = nlarx(z, NN, idwavetnetwork);

推定モデルでシミュレートした出力と,測定データz★★★★★★★★★★

比较(z, mw1)

★★★★★★★★

整整整整,整整整整,整整整整,整整整整。モデルを同定する際に基底関数の拡張を使用して非線形性を表現する場合,モデルパラメーターの数がデータサンプルの数を超える場合があることに注意してください。このような場合,ノイズ分散や最終予測誤差(消防工程)などの一部の推定メトリクスは正確に決定できません。。

Ws =警告(“关闭”鉴别:估计:NparGTNsamp);mw2 = nlarx(z, [ones(2,2), 2*ones(2,6), ones(2,6)], idwavetnetwork) compare(z,mw2)
mw2 =  2输出6输入的非线性ARX模型输入:u1, u2, u3, u5, u6输出:y1, y2回归量:变量y1, y2, u1, u2, u3, u4, u5, u6的线性回归量输出函数:输出1:27个单位的小波网络输出2:25个单位的小波网络采样时间:0.02秒状态:使用NLARX对时域数据“Motorized Camera”进行估计。估计数据拟合:[99.22;99.15]%(预测焦点)FPE: 0.1262, MSE: 0.4453

2 .★★★★★★★★★★★★★★★★★

Nanbnk = [ones(2,2), 2*ones(2,6), ones(2,6)];最终订单百分比

この次数の選択によって指定されるリグレッサーセットを表示するには,GETREGコマンドを使用します。

getreg(对象)
ans = 14 x1单元阵列{y1 (t - 1)的}{y2 (t - 1)的}{u1 (t - 1)的}{的u1(2)}{“u2 (t - 1)”}{“u2(2)”}{‘u3 (t - 1)}{‘u3 (2)} {u4 (t - 1)的}{‘u4 (2)} {u5 (t - 1)的}{‘u5 (2)} {u6 (t - 1)的}{‘u6 (2)}

2つの関数idWaveletNetworkのユニット数(“小波”)は推定アルゴリズムで自動的に選択されています。我的意思是,我的意思是,我的意思是。

mw2.OutputFcn (1) .NonlinearFcn。NumberOfUnits mw2.OutputFcn .NonlinearFcn.NumberOfUnits (2)
Ans = 27 Ans = 25

中文名称:中文名称:

関数idWaveletNetworkのユニット数は,推定アルゴリズムで自動的に選択される代わりに,明示的に指定できます。1番目の非線形マッピング関数に10個のユニットを,2番目の非線形マッピング関数に5個のユニットを使用するとします。各出力のモデルは独自のマッピング関数を使用することと,すべてのマッピング関数の配列はモデルの“OutputFcnプロパティに保存されていることに注意してください。

Fcn1 = idwavetnetwork (10);% output函数用于第一个输出Fcn2 = idwavetnetwork (5);%输出函数用于第二个输出mw3 = nlarx(z, nanbnk, [Fcn1;Fcn2])
mw3 =  2输出6输入非线性ARX模型输入:u1, u2, u3, u5, u6输出:y1, y2回归量:变量y1, y2, u1, u2, u3, u4, u5, u6的线性回归量输出函数:输出1:10个单位的小波网络输出2:5个单位的小波网络采样时间:0.02秒状态:使用NLARX对时域数据“Motorized Camera”进行估计。估计数据拟合:[99.01;98.89]%(预测焦点)FPE: 0.2273, MSE: 0.7443

非線形ARXモデル——他の非線形マッピング関数を試行

。idTreePartition (idTreePartition)

mt1 = nlarx(z, nanbnk, idTreePartition);

同様に,シグモイドネットワーク(idSigmoidNetworkオブジェクト)をマッピング関数として使用できます。,nlarxOptions

opt = nlarxOptions(“显示”“上”);opt.SearchOptions.MaxIterations = 5;ms1 = nlarx(z, nanbnk, idSigmoidNetwork, opt);

このNLARXの呼び出し構文は,以前使用した構文(データ,次数,および非線形マッピング関数を基本入力引数として指定)とよく似ています。ただし,推定オプションを既定値から変更するために,nlarxOptionsコマンドを使用してオプションセット选择

英文:

同じモデルで,異なる出力チャネルに異なる非線形関数を使用できます。最初の出力の記述にはツリーパーティション関数を使用し,2番目の出力には,ウェーブレットネットワークを使用するとします。。3番目の入力引数(非線形マッピング関数)は,2つの異なる関数の配列となります。

Fcn1 = idTreePartition;Fcn2 = idwavetnetwork;mtw = nlarx(z, nanbnk, [Fcn1;Fcn2]);

。。(。出力チャネルに非線形が存在しないことは,関数idLinearを選択すると指定できます。以下の例は,model_output (t) = F (y (t - 1), u (t - 1), u(2))において,関数Fは1番目の出力に対して線形成分で,2番目の出力に対して非線形成分(idSigmoidNetwork)で構成されることを意味します。

Fcn1 = idLinear;Fcn2 = idSigmoidNetwork(2);opt.Display =“关闭”%不再显示评估进度mls = nlarx(z, nanbnk, [Fcn1;Fcn2】,选择)
mls =  2输出6输入的非线性ARX模型输入:u1, u2, u3, u5, u6输出:y1, y2回归量:变量y1, y2, u1, u2, u3, u4, u5, u6的线性回归量输出函数:输出1:无输出2:2单位Sigmoid网络采样时间:0.02秒状态:使用NLARX对时域数据“Motorized Camera”进行估计。与估计数据拟合:[98.72;98.79]%(预测焦点)FPE: 0.5594, MSE: 1.05

1、中文:1、中文:1、中文:1、中文:1、中文:1、中文:1、中文:1、中文:。

disp (mls.OutputFcn (1))
线性函数输入:y1(t-1), y2(t-1), u1(t-1), u1(t-2), u2(t-1), u2(t-1), u2(t-2), u3(t-1), u3(t-2), u4(t-2), u5(t-1), u5(t-1), u5(t-2), u5(t-1), u5(t-2), u5(t-1), u5(t-2), u5(t-1), u5(t-2), u5(t-1), 0.297 0.199 -0.133 -0.337 0.583 -0.448 0.167]输出Offset:初始化为109输入:'<函数输入>'输出:'<函数输出>' LinearFcn: '<线性函数参数>' Offset: '<偏移参数>'

。。

Fcn1.Offset。值= 0;Fcn1.Offset。Free = false;mlsNoOffset = nlarx(z, nanbnk, [Fcn1;Fcn2],选择);

统计和机器学习工具箱

统计和机器学习工具箱™にアクセスできる場合,ガウス過程(GP)関数および,バギング木またはブースティング木のアンサンブルを使用しても,非線形ARXモデルを作成できます。GPはidGaussianProcessオブジェクトで表されるのに対して,回帰木アンサンブルはidTreeEnsembleオブジェクトで表されます。。。ここに示す例では1番目の出力に‘ARDMatern52カーネルベースのGPを,2番目の出力にバギング木アンサンブルを使用します。

如果存在(“fitrgp”“文件”) = = 2警告(“关闭”“统计数据:套索:MaxIterReached”);NL1 = idGaussianProcess(“ardmatern52”);NL2 = idTreeEnsemble;%估计模型mML = nlarx(z, nanbnk, [NL1;NL2])结束
mML =  2输出6输入非线性ARX模型输入:u1, u2, u3, u4, u5, u6输出:y1, y2回归量:变量y1, y2, u1, u2, u3, u4, u5, u6的线性回归量输出函数:输出1:使用ARDMatern52内核的高斯过程函数。输出2:袋回归树集合样本时间:0.02秒状态:使用NLARX对时域数据“Motorized Camera”进行估计。与估计数据拟合:[99.43;98.57]%(预测焦点)MSE: 0.7846

对,对

。たとえば,モデル对象,ms1, mlsおよびmlsNoOffsetのシミュレーション出力と,データセット“z”の測定された出力を比較します。

比较(z, mw2, ms1, mls, mlsNoOffset)

情节(mtw, mt1 ms1、美国职业足球大联盟)

渣油,预测およびPEなどの他の関数を,線形モデルの場合と同じように推定モデルで使用できます。

Hammerstein-Wiener (IDNLHW

哈默斯坦-维纳:。これらのブロックとは,非線形静的ブロック,その後に続く別の非線形静的ブロック,さらにその後に続く線形伝達関数ブロックです。最初の非線形静的ブロックがない場合,维纳モデルと呼ばれ,2番目の非線形静的ブロックがない場合は,汉默斯坦モデルと呼ばれます。

中文:中文:中文,中文,中文,中文,中文,中文。

M = NLHW(数据,顺序,输入非线性,输出非线性)。

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★InputNonlinearityおよびOutputNonlinearityは2つの非線形ブロックの非線形関数を指定します。。

海默斯坦(Hammerstein)

ここで订单= [nb bf nk] =[(2,6),则(2,6)的(2,6)]を選択します。これは,線形ブロックで,各出力が,6つの出力に基づいた最初の6つの次数伝達関数の合計となることを意味します。入力非線形性が区分的線形関数で記述される汉默斯坦モデル(出力非線形なし)を使用してみましょう。入力した1つのidPiecewiseLinearオブジェクトが,すべての6入力チャネルに自動的に展開されます。idUnitGain的英文:idUnitGain

opt = nlhwOptions();opt.SearchOptions.MaxIterations = 15;NN = [ones(2,6), ones(2,6), ones(2,6)];inputtnl = idpiecewislinear;%输入非线性OutputNL = idUnitGain;%输出非线性mhw1 = nlhw(z, NN, InputNL, OutputNL, opt)
mhw1 = 2输出6输入Hammerstein-Wiener模型对应阶数的线性传递函数矩阵:nb = [1 1 1 1 1 1 1 1 1;[1 1 1 1 1 1 1] nf = [1 1 1 1 1 1];[1 1 1 1 1 1 1] nk = [1 1 1 1 1 1];输入非线性:输入1:分段线性,含10个断点输入2:分段线性,含10个断点输入3:分段线性,含10个断点输入4:分段线性,含10个断点输入5:分段线性,含10个断点输入6:分段线性,含10个断点输出非线性:输出1:无输出2:无采样时间:0.02秒状态:使用NLHW对时域数据“Motorized Camera”进行估计。拟合估计数据:[98.46;97.93]% FPE: 7.928, MSE: 2.216

比较,比较。

比较(z, mhw1);

ブロック線図をクリックして,入力非線形(多人),線形ブロックまたは出力非線形(YNL)のビューを選択します。

線形ブロックビューを選択した場合,既定の設定で,12のチャネルすべてが縮小サイズで表示されます。。ステップ応答,ボード線図,インパルス応答および極——零点図内で,プロットのタイプを選択できます。

情节(mhw1)

比较一下,。

NBNFNK = [ones(2,6), ones(2,6), ones(2,6)];

Wiener

腊肠。入力非線形が存在しないことは,idUnitGainオブジェクト以外に,“[]”でも指定できます。

opt.SearchOptions.MaxIterations = 10;mhw2 = nlhw(z, nbnfnk, [], idpiecewislinear, opt)
mhw2 = 2输出6输入Hammerstein-Wiener模型对应阶数的线性传递函数矩阵:nb = [1 1 1 1 1 1 1 1];[1 1 1 1 1 1 1] nf = [1 1 1 1 1 1];[1 1 1 1 1 1 1] nk = [1 1 1 1 1 1];输入非线性:输入1:缺席输入2:缺席输入3:缺席输入4:缺席输入5:缺席输入6:缺席输出非线性:输出1:分段线性,10个断点输出2:分段线性,10个断点采样时间:0.02秒状态:使用NLHW对时域数据“Motorized Camera”进行估计。拟合估计数据:[73.85;71.36]% FPE: 1.314e+05, MSE: 503.8

哈默斯坦-维纳(Hammerstein-Wiener)

哈默斯坦-维纳(Hammerstein-Wiener)

mhw3 = nlhw(z, nbnfnk,idSaturation, idpiecewislinear, opt)
mhw3 = 2输出6输入Hammerstein-Wiener模型对应阶数的线性传递函数矩阵:nb = [1 1 1 1 1 1 1 1 1;[1 1 1 1 1 1 1] nf = [1 1 1 1 1 1];[1 1 1 1 1 1 1] nk = [1 1 1 1 1 1];输入非线性:输入1:线性区间饱和:[0.0103 0.0562]输入2:线性区间饱和:[-0.00143 0.000909]输入3:线性区间饱和:[-0.0947 -0.0185]输入4:线性区间饱和:[-0.00385 0.00527]输入5:线性区间饱和:[0.0195 0.13]输入6:线性区间饱和:[-0.00302 0.000387]输出非线性:输出1:分段线性,10个断点输出2:分段线性,10个断点采样时间:0.02秒状态:使用NLHW对时域数据“机动相机”进行估计。拟合估计数据:[86.88;84.55]% FPE: 1.111e+04, MSE: 137.3

mhw3.InputNonlinearity (1) .LinearInterval% view饱和度函数的线性间隔
Ans = 0.0103 0.0562

同様に,関数idPiecewiseLinearのブレークポイントには,次のようにアクセスできます。

mhw3.OutputNonlinearity (1) .BreakPoints
ans =列1到7 17.1233 34.2491 51.3726 68.4968 85.6230 102.7478 119.8742 2.6184 16.0645 45.5178 41.9621 62.3246 84.9038 112.2970列8到10 136.9991 154.1238 171.2472 135.4543 156.1016 173.2701

哈默斯坦-维纳(Hammerstein-Wiener

(中文)、(中文)、(中文)、(中文)、(中文)。——いずれかの出力チャネルで非線形(“汉默斯坦モデル”)- 3ユニットの入力チャネル# 1で区分的線形非線形,入力チャネル# 2で飽和非線形,入力チャネルl # 3で死区非線形——出力チャネルl # 4でシグモイドネットワーク非線形——出力チャネル# 5で非線形(unitgainオブジェクトで指定)- 5ユニットの入力チャネル# 6でシグモイドネットワーク非線形

選択したタイプの非線形マッピング関数オブジェクトからなる配列を作成して,それを入力非線形として推定関数NLHWに渡せます。

inputtnl = [idpiecewislinear;idSaturation;idDeadZone;idSigmoidNetwork;idUnitGain;idSigmoidNetwork (5)];inputNL(1)。NumberOfUnits = 3;opt.SearchOptions.MaxIterations = 25;mhw4 = nlhw(z, nbnfnk, inputtnl, [], opt);% "[]"作为第四个输入参数表示没有输出非线性

哈默斯坦-维纳-饱和

飽和の線形区間および不感帯の零点区間に対する初期推定は,これらのオブジェクトを作成したときに直接指定できます。また,これらの値を指定値に固定するかどうか(免费属性を假に設定)や,推定が最小/最大境界に従うかどうか(最小属性および最大属性を使用)などの制約も指定できます。

初期推定で,飽和の線形区間を[200]に不感帯の零点区間を12[11]に設定するとします。。我的家乡,我的家乡,我的家乡。

创建具有初始属性猜测的非线性函数。OutputNL1 = idSaturation([10 200]);OutputNL1.Free(2) = false;%上限为固定值OutputNL2 = idDeadZone([11 - 12]);mhw5 = idnlhw(nbnfnk, [], [OutputNL1;OutputNL2),“t”, z.Ts);

推定器nlhwではなく,IDNLHWモデルオブジェクトのコンストラクターidnlhw英文:英文:英文:英文:英文:英文:英文:中文:結果のモデルオブジェクトmhw5は,データからまだ推定されていません。。。

mhw5.OutputNonlinearity (1) .LinearInterval%查看估计后第一个输出通道饱和的线性间隔mhw5.OutputNonlinearity .ZeroInterval (2)%查看在估计后的第二个输出通道上死区的零间隔
安= 10 200安= 11 12

中文:。

opt.SearchOptions.MaxIterations = 15;Mhw5 = nlhw(z, Mhw5, opt)%从数据中估计模型mhw5.OutputNonlinearity (1) .LinearInterval%显示在估计后的第一个输出通道的饱和线性区间mhw5.OutputNonlinearity .ZeroInterval (2)%显示零间隔在死区在第二输出通道估计后
mhw5 = 2输出6输入Hammerstein-Wiener模型对应阶数的线性传递函数矩阵:nb = [1 1 1 1 1 1 1 1];[1 1 1 1 1 1 1] nf = [1 1 1 1 1 1];[1 1 1 1 1 1 1] nk = [1 1 1 1 1 1];输入非线性:输入1:缺席输入2:缺席输入3:缺席输入4:缺席输入5:缺席输入6:缺席输出非线性:输出1:线性间隔饱和:[10 200]输出2:零间隔死区:[11 12]采样时间:0.02秒状态:使用NLHW对时域数据“Motorized Camera”进行估计。拟合估计数据:[27.12;6.857]% FPE: 3.373e+06, MSE: 4666 ans = 9.9974 200.0000 ans = 11.0020 12.0011

-

異なる特性のモデル(IDNLARXおよびIDNLHW)を,同じ比较コマンドで比較できます。

比较(z,对象,mhw1)警告(ws)%重置警告状态