gpt4 book ai didi

matlab - 如何在 Matlab 中构建 ARMAX 模型

转载 作者:太空宇宙 更新时间:2023-11-03 20:35:08 25 4
gpt4 key购买 nike

我正在尝试构建一个 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.780135.800135.810135.820135.820135.830]', x 是一个流量向量,开始于 x=[238.865238.411238.033237.223237.223233.828]',而 JDAYs 是一个时间戳向量,以 JDAYs=[122.604 开头122.651122.688122.729122.771122.813]'。

我是这种模型类型和系统识别工具箱的新手,所以我在弄清楚导致该错误的原因时遇到了问题。 Matlab 示例不是很有帮助...

最佳答案

我希望这对您来说没有太晚。

检查您的代码,我发现您正在使用一个名为 SamplingInstants 的参数。我不确定 ARMAX 函数是否适用于它。其实我确定。我试过好几次了,不,不行。而且它似乎也不是 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])

这将永远有效。请确保 xy 足够长以正确估计所有自由系数,大于 mean(4*orders) ,对于 ARMAX 工作 - 在这种情况下,大于 121-,并且希望大于 10*mean(4*orders),对于 ARMAX 正确解决您的问题的算法,以及足够的时变性以防止达到病态解决方案。

祝你好运;)...

关于matlab - 如何在 Matlab 中构建 ARMAX 模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23231409/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com