问题标签 [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 合身百分比
我使用armax模型来描述两个信号之间的关系。我使用了具有不同模型顺序的 matlab armax 函数。
为了评估模型的效率,我从 Report.Fit.FitPercent 中提取了值,期望它能够说明模型与实验数据的拟合程度。因为它是 fitpercent,所以我希望它在 0-100% 之间。我的结果范围从 ~ -257 到 99.99。
我在 mathworks 或其他网站上找不到这个值是如何计算的以及如何解释它。如果您能解释如何理解 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.8'为向量的时间戳]以 JDAYs=[122.604 122.651 122.688 122.729 122.771 122.813]' 开头。
我是这种模型类型和系统识别工具箱的新手,所以我在找出导致该错误的原因时遇到了问题。Matlab的例子不是很有帮助......
matlab - Matlab中具有线性等式约束的二次规划
我必须在一些线性约束下确定一个 ARX,这意味着我有一个具有线性等式约束问题的二次规划。
一种方法是在红色框中使用以下等式。在这种情况下,一个可能的缺点是矩阵求逆的计算(有时 Matlab 会给我警告:矩阵接近奇异或缩放不良)
另一种方法是在 Matlab 中使用命令:quadprog()
另一种方法是在 Matlab 中使用命令:lsqlin()
这三种方法中哪一种是最好的?
哪个在数值上最稳健?
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
在矩阵形式中,我可以将约束写为:
Theta = [a1 a2 ... aN b1 b2 ... bM]';
Aeq = [-ones(1,N) 个(1,M)];
beq = 1;
Aeq*theta=beq;
使用下面的 Matlab 函数,我可以使用 Matlab 函数 'ARX' 设置参数arx_stable
来识别稳定(但没有等式线性约束)ARX
'Focus' ='stability'
使用以下函数arx_constr
,我可以识别ARX
具有线性等式约束 Aeq beq (但没有稳定性)
我怎样才能既稳定又尊重约束???谢谢,
西蒙娜
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
实验来评估。我已经计算并分别将输出和输入作为大小为 1x的N_E
单元阵列。元胞数组的每个条目都是一个长度向量(SISO 系统)。为了正确起见,也是一个大小为 1x 的单元格数组,每个条目中都有句点。y
u
y
u
N=316
period
N_E
使用命令:
不会产生预期的平均数据集。相反,它被视为361
x 361
MIMO 系统 (!)。
我已经尝试过转置,但没有结果。
有人知道为什么会发生这种情况,我怎样才能产生所需的多实验数据集?
PS我阅读的文档是针对Matlab R2014b的,我正在运行R2013b。有人知道我的版本是否不支持此功能吗?或者我怎样才能知道?
matlab - 理解 Matlab 中的比较命令
我对以下 Matlab 观察感到非常困惑。
在我的问题中,我试图从离散的采样输入输出数据中估计一个 ARX/ARMAX 模型。我正在按照 Matlab 的指南在命令行中识别线性模型(使用系统识别工具箱)
- 我的数据集是 980 个输入-输出对(实验),采样时间为
Ts = 10
秒(2 个输入,1 个输出)。我将数据my_data
分成 490 个实验的两个子集: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
(在上面的 pastebin 链接中)和使用该compare
命令的拟合之间存在这种差异?我觉得这很奇怪,因为即使使用不同的数据集
experimental
和validation
,它们都来自同一个输入系列(输入 1 的脉冲持续时间和幅度不同;输入 2 是外生输入)。
matlab - Matlab非线性灰盒系统识别
我正在尝试进行非线性灰盒模型识别,并且正在使用以下代码。我对输入向量、输出向量和时间戳中的输入进行了测量。
我尝试使用具有已知系统参数的模拟输入/输出。但是,我从中得到的参数与它必须的参数有很大不同。即使我设置了初始参数估计它也不会估计关闭参数。
我的时间戳是不均匀的,这意味着每两次采样之间的间隔是不一样的。
如果有人能提供帮助,我将不胜感激。
system-identification - 创建具有可调参数的 MATLAB 系统以进行系统识别
我试图让 MATLAB 创建一个具有初始值的状态空间模型,稍后我必须使用系统识别工具箱对其进行微调。
问题是我正在使用“白盒”模型执行此操作,这意味着我的模型中的 A 矩阵不仅仅是数值矩阵,而是包含其他几个参数。
由于构成矩阵的每个参数都具有物理意义,因此我想单独估计它,而不仅仅是 A 矩阵的值。
这有可能吗?已经查看了 genss、idss 和其他几个工具,但还没有能够使它们中的任何一个工作。
我将使用的系统版本如下(C 和 D 矩阵不相关,因为这实际上只是测试):
我意识到我可能会遇到几个解决方案的问题,但后来我认为系统识别只会选择一个。
有任何想法吗?
提前致谢!
哦,初始值如下:
matlab - matlab中流行病建模的系统识别
我正在尝试使用系统识别工具箱来估计参数。我使用了文档中提供的三个生态系统的示例,并对其进行了构建自己的模型。
这是我的模型:
以及系统 ID 代码:
当我部分运行代码时,出现以下错误:
???在 165 处使用 ==> idnlgrey.isvalid 时出错 指定的 ODE 文件“志贺氏菌”中的错误或不匹配。错误消息是:'尝试访问 x(1); 索引超出范围,因为 numel(x)=0。
我试图摆脱比较部分并继续前进,但我收到了这个错误
???未定义的函数或变量“nlgreestOptions”。
我非常感谢我能得到的任何帮助。