3

以前の標高と上流の流入の関数として貯水池の水位を予測する ARMAX モデルを構築しようとしています。私のデータはおよそ 0.041 日のタイムステップですが、わずかに異なり、3643 の時系列ポイントがあります。基本的な armax Matlab コマンドを使用してみましたが、次のエラーが発生しています。

Error using armax (line 90)
Operands to the || and && operators must be convertible to
logical scalar values.

私が試しているコードは次のとおりです。

data = iddata(y,x,[],'SamplingInstants',JDAYs)
m1 = armax(data, [30 30 30 1])

ここで、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の例はあまり役に立ちません...

4

1 に答える 1

2

お手元に届くのが少し遅れないことを願っています。

コードを確認すると、 というパラメーターを使用していることがわかりますSamplingInstantsARMAX関数がそれで機能するかどうかはわかりません。実際、私は確信しています。何度か試しましたが、違います。そして、それは、または他の方法についても、十分に文書化されたオプションではないようですARMAX

ARXARMAXおよびその他のモデルは、Z 変換形式からの線形離散システムに基づいています。つまり、通常、システムは通常のサンプリング レートでサンプリングされていると想定できます。もちろん、これは法則ではありませんが、これは、線形および非線形のシステムを扱うときの標準的な枠組みです。また、ほとんどの産業用制御および取得システムは、通常のレート サンプリングで動作します。まだ。

ARMAX次のように、標準設定に入ってみてください。

y=[135.780 135.800 135.810 135.820 135.820 135.830 .....]';
x=[238.865 238.411 238.033 237.223 237.223 233.828 .....]';
%JDAYs=[122.604 122.651 122.688 122.729 122.771 122.813 .....]';
JDAYs=122.601+[0:length(y)-1]*4.18';
data = iddata(y,x,[],'SamplingInstants',JDAYs);
m1 = armax(data, [30 30 30 1])

そして、これは常に機能します。xとがすべての自由係数の適切な推定を可能にするのにy十分な長さであることを確認してください.条件の悪い解に到達するのを防ぐための時変。mean(4*orders)ARMAX10*mean(4*orders)ARMAX

幸運を ;)...

于 2014-08-28T03:06:29.637 に答える