問題タブ [system-identification]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
matlab - ARMAX 適合率
2 つの信号間の関係を記述するために armax モデルを使用しています。さまざまなモデル次数で matlab armax 関数を使用しました。
モデルの効率を評価するために、Report.Fit.FitPercent から値を取得しました。これにより、モデルが実験データにどの程度適合しているかがわかると期待しています。fitpercent であるため、0 ~ 100% であると予想されます。私の結果は ~ -257 から 99.99 の範囲です。
この値がどのように計算され、どのように解釈されるのか、mathworks や他の Web サイトで見つけることができませんでした。fitPercentの値の見方を教えていただけると助かります。
私が使用したコードは非常に単純で、さまざまなモデル構造 (次数) の FitPercent を生成します。
matlab - Matlab で ARMAX モデルを構築する方法
以前の標高と上流の流入の関数として貯水池の水位を予測する ARMAX モデルを構築しようとしています。私のデータはおよそ 0.041 日のタイムステップですが、わずかに異なり、3643 の時系列ポイントがあります。基本的な armax Matlab コマンドを使用してみましたが、次のエラーが発生しています。
私が試しているコードは次のとおりです。
ここで、y は y=[135.780 135.800 135.810 135.820 135.820 135.830]' のように始まる標高のベクトル、x は x=[238.865 238.411 238.033 237.223 237.223 233.828] のように始まる流量のベクトル、J はタイムスタンプのベクトルです。 JDAYs=[122.604 122.651 122.688 122.729 122.771 122.813]' のように始まります。
私はこのモデル タイプとシステム識別ツールボックスを初めて使用するので、そのエラーの原因を突き止めるのに問題があります。Matlabの例はあまり役に立ちません...
matlab - Matlab での線形等式制約を使用した二次計画法
いくつかの線形制約の下で ARX を特定する必要があります。これは、線形等式制約問題を伴う二次計画問題があることを意味します。
1 つの方法は、赤いボックスで次の方程式を使用することです。この場合の考えられる欠点は、逆行列の計算です (時々、Matlab から警告が表示されます: 行列が特異点に近いか、スケーリングが不適切です)。
もう 1 つの方法は、Matlab でコマンド quadprog() を使用することです。
もう 1 つの方法は、Matlab で次のコマンドを使用することです: lsqlin()
これらの 3 つの方法のどれが最良の方法ですか?
数値的に最もロバストなのはどれですか?
matlab - 線形等式制約と安定性の両方を備えた ARX モデルの同定
入力データと出力データから、最小二乗法で ARX モデルを特定する必要があります
y(n) = -a1 y(n-1) -....- aN y(nN) + b1 x(n-1)+...+bM x(nM)
安定している必要があります(すべての極が単位円の内側にある)と同時に、パラメーター
a1,...,aN, b1,...,bM
いくつかの線形等式制約を満たさなければなりません。たとえば、1 に等しい静的ゲインが必要です。これは、次のことを意味します。
-a1-a2...-aN+b1+b2...+bM =1
行列形式では、制約を次のように記述できます。
シータ = [a1 a2 ... aN b1 b2 ... bM]';
Aeq = [-ones(1,N) ones(1,M)];
ベク = 1;
Aeq*シータ=beq;
以下の Matlab 関数を使用すると、Matlab 関数 'ARX' を使用してパラメーターを設定しarx_stable
て安定を識別できます(ただし、等式線形制約はありません)。ARX
'Focus' ='stability'
以下の関数を使用すると、線形等式制約 Aeq beq でarx_constr
識別できます(ただし、安定性はありません)。ARX
安定性と制約の尊重の両方を得るにはどうすればよいですか??? ありがとう、
シモーネ
matlab - matlab/simulinkで未知のシステムの伝達関数(近似値)を取得するには?
simulink モデル (非線形) に未知のシステムがあり、入力データの特定の間隔でそれを記述する TF を取得する方法がわかりません。このような抽象的な質問をして申し訳ありませんが、本当に迷っています。
「tfest(data,number_of_poles,number_of_zeroes)」も試しました。また、「ident」を試してから、入力と出力を ident GUI にインポートし、推定 TF をクリックしました。どちらも、システムとは完全に異なる動作をする伝達関数を返しました。
システムにどの入力を生成すればよいかよくわかりません。入力はノイズである必要がありますか? ここで何かアドバイスや助けをいただければ幸いです。
matlab - Matlab のシステム ID ツールボックスの iddata 関数での複数実験
私は多くの実験で、matlabでiddata
(INFO )で評価しようとしています。N_E
私はすでに計算し、サイズ 1xN_E
のセル配列として出力と入力y
をu
それぞれ持っています。cell 配列のすべてのエントリは、y
長u
さのベクトルですN=316
(SISO システム)。正確を期すために、period
もサイズ 1x の cell 配列でありN_E
、すべてのエントリにピリオドがあります。
次のコマンドを使用します。
期待される平均化されたデータセットを生成しません。代わりに、361
x 361
MIMO システム (!) として処理されます。
私はすでに転置を試みましたが、結果はありませんでした。
誰かがなぜこれが起こるのか知っていますか?どうすれば目的の複数実験データセットを作成できますか?
PS私が読んだドキュメントはMatlab R2014b用で、R2013bを実行しています。これが私のエディションでサポートされていないかどうか誰かが知っていますか? または、どうすればわかりますか?
matlab - Matlab の比較コマンドを理解する
次のMatlabの観察には非常に困惑しています。
私の問題では、離散的にサンプリングされた入出力データから ARX/ARMAX モデルを推定しようとしています。コマンドラインで線形モデルを識別するためのMatlabのガイドに従っています(システム識別ツールボックスを使用)
- 私のデータセットは 980 の入力と出力のペア (実験) で、サンプリング時間は
Ts = 10
2 秒 (入力 2 つ、出力 1 つ) です。my_data
私はデータを 490 回の実験の 2 つのサブセットに分割しました:experimental
とvalidation
. - 実行
delayest(my_data)
すると、どの入力にも遅延がないことがわかります。したがってnk1=0
、 とnk2=0
. - と で注文を識別すると
selstruc
、、 、 の注文をarxstruc
選択できます。na
nb1
nb2
- システムの初期条件をゼロに設定
opt=armaxOptions('InitialCondition','z')
しました (Matlab で推定変数として扱うことはありません)。
上記のすべてを考慮して、私は実行します
コマンドラインで次のモデルを提供します(pastebinのリンク)。
experimental
上記のリンクから下にスクロールすると、データへの適合がかなり良好であることがわかります。
そして、ここに私の質問があります:
サブセットを使用してデータを検証する場合は、次のコマンドvalidation
で比較を実行します。compare
これは興味深いことです。表示された数値が-109.626 %
適切になりました。
arx
このコマンドの正確な動作を知っている人はいますか? (上記の貼り付けリンクで)モデルを生成するときのフィットとコマンドを使用するときのフィットとの間にこのような不一致があるのはなぜcompare
ですか?experimental
異なるデータセットとであっvalidation
ても、それらは両方とも同じファミリの入力 (入力 1 の異なる持続時間と振幅のパルス、入力 2 は外因性入力) に由来するため、非常に奇妙に感じます。
system-identification - システム同定用の調整可能なパラメーターを使用した MATLAB システムの作成
MATLAB に初期値を使用して状態空間モデルを作成させようとしていますが、後でシステム識別ツールボックスを使用して微調整する必要があります。
問題は、「ホワイトボックス」モデルでこれを行っていることです。つまり、モデルの A マトリックスは単なる数値のマトリックスではなく、他のいくつかのパラメーターで構成されています。
マトリックスを構成する各パラメーターには物理的な意味があるため、A マトリックスの値だけではなく、それを個別に推定したいと思います。
これは何らかの方法で可能ですか?genss、idss、および他のいくつかのツールの両方を見てきましたが、まだそれらを機能させることができませんでした。
私が使用するシステムのバージョンは次のとおりです (これは実際にテストしているだけなので、C および D マトリックスは関係ありません)。
いくつかの解決策で問題が発生する可能性があることは認識していますが、システム識別は 1 つを選択するだけだと考えました。
何か案は?
前もって感謝します!
ああ、初期値は次のようになります。
matlab - matlab での流行モデリングのためのシステム同定
システム同定ツールボックスを使用してパラメーターを推定しようとしています。ドキュメントで提供されている 3 つの生態系の例を使用して、独自のモデルを構築することに取り組みました。
これが私のモデルです:
システム ID コード:
コードを部分的に実行すると、次のエラーが発生します。
??? Error using ==> idnlgrey.isvalid at 165 指定された ODE ファイル 'shigella' にエラーまたは不一致があります。エラー メッセージは次のとおりです。numel(x)=0 のため、範囲外のインデックスです。
比較部分を取り除いて先に進もうとしましたが、このエラーが発生しました
??? 未定義の関数または変数 'nlgreyestOptions'。
これについて何か助けていただければ幸いです。