我正在嘗試構建一個ARMAX模型,該模型根據以前的高程和上游流入來預測水庫水位升高。我的數據大概在0.041天的時間步,但它確實略有不同,我有3643個時間系列點。我已經使用基本ARMAX MATLAB命令試過,但我得到這個錯誤:如何在Matlab中構建ARMAX模型
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是開始像Ÿ海拔的矢量= [135.780 135.800 135.810 135.820 135.820 135.830]」,x是開始如x = [238.865 238.411 238.033 237.223流速的矢量3210 237.223 233.828] '並且JDAYs是時間戳的向量啓動像JDAYs = [122.604 122.651 122.688 122.729 122.771 122.813]'。
我是新來的這種模型類型和系統識別工具箱,所以我有問題搞清楚是什麼導致了這個錯誤。 Matlab的例子不是很有幫助...
我知道這是很長時間後,但我對你的最後一段感興趣。我目前在另一個問題中使用ARX/ARMAX模型。你能詳細說明嗎?你的意思是說你應該保持小的訂單以避免高估? –
是的。這是解決參數估計問題的準確性有多高的問題。如果你有1000個點,並且你想估計1個參數,那麼確定性的第1個估計誤差將等於e(n)= rms(y-ye(p(n))),隨機預測誤差將會(n)= std(y-ye(p(n)))和參數預期誤差 - 通過迭代實驗框架'i',將'p'視爲隨機變量,將等於' SP(N)= STD(p(N)-mean(p(N)))'。 – hyprfrcb
當增加'p'的尺寸時,當接近'n'的最佳設置時,'e'減小並且'se'增加,'p'的尺寸。當'n' = 1時,'e'和'se'都是非零值,當'n'趨向於無窮大時,'e'爲零,並且'se'傾向於'std(y)'(或一些非零值)。因此,'假設'連續性 - 假設數據能夠在你約束的模型下進行擬合,則存在'n'參數的最優值。隨機變量「se(n)」和「e(n)」的連續性條件經常被忽略,並且只是「假設」的問題。 – hyprfrcb