问题标签 [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.
feed-forward - Matlab:如何在 n4sid 函数中设置馈通特性以进行 MIMO 系统识别?
n4sid
我对子空间识别函数中的馈通选项有疑问。根据 MathWorks 帮助,'Feedthrough'
应指定为长度为Nu的逻辑向量,其中Nu是输入的数量。例如,对于具有 2 个输入和一个输出的系统,我们可以使用n4sid
:
然而,在 MIMO 系统上工作时,D矩阵是Ny by Nu,其中Nu和Ny分别是输入和输出的数量。对于指定'Feedthrough'
选项,我希望指定一个Ny*Nu矩阵,而不是1*Nu向量。
当我使用矩阵而不是向量时,我收到一个错误,即必须将馈通设置为向量。事实上,从输入Ui到输出Yj的馈通很可能为零,而从Ui到另一个输出(例如,Yk)的馈通不为零。换言之,D矩阵的条目可以是零或非零,与D矩阵的其他条目无关。如果我们为馈通指定一个向量,我们就隐含地说从一个输入到所有输出的所有馈通都为零或全部非零。有人对此有任何想法吗?
filtering - 使用最小均方算法进行系统识别
我正在研究使用最小均方算法进行系统识别。我尝试使用 LMS 的方程式编写一些代码。根据算法步骤,误差和权重更新的计算看起来没问题。但是,它无法给出正确的输出。有人可以帮忙解决问题吗?
matlab - 使用 Matlab 进行最小二乘参数估计
我试图通过我自己的模型使用最小二乘来找到系统参数的值,即(a1 和 a2)。
我的模型是 MISO 系统: % tz(k) = a1*(((1/2*t)*(to*to(k-1)))- (1/2*t)*(tz*tz(k-1))) + a2*(((1/2*t)*(tn*tn(k-1)))- (1/2*t)*(tx*tx(k-1)));
我计算参数的方法:Xθ = (X'X)^(-1)X'Y
我试图用我自己的模型来拟合回归器,但它总是显示错误,我哪里出错了??
提前致谢
python - 离散到连续时间传递函数
我实现了一个类来识别 Python 中的 ARX 模型。下一步是基于 LQR 计算最优 PID 参数。显然需要一个连续的时间模型,我有以下可能性:
- 将离散时间模型转换为连续时间模型,
- 识别连续时间模型,
- 采用 LQR 方法来确定离散时域的最佳 PID 参数。
在 Matlab 中,前两种方法很容易完成,但我在 Python 中需要它们。有人知道Matlab是如何实现d2c
的并有参考吗?
pyomo - Pyomo:DAE参数估计和模型的逐步模拟
我从 Pyomo 开始,对这个包有一些具体的问题。我正在使用 DAE-Toolbox 并希望使用此工具箱进行模拟和参数估计。这是我的代码:
DAE 模型脚本(来自 pyomo-examples):
运行脚本:
现在,问题:
有没有办法重用模型实例进行参数估计
(评论 1)和模拟(评论 2)?我用
“丑陋”的深拷贝解决了这个问题。pyomo.dae 模拟器有一个 step 方法,可用于
在循环中逐步集成 dae 系统。我想在不重新初始化模型的情况下更改步骤之间的输入(测量值、控制信号)。我
知道,cvodes 有这样的方法。pyomo如何用于模型预测控制。有没有
例子?什么是好的起点?
谢谢再见
亨德里克森
r - 有没有办法让 R 函数返回其内部变量?
我是 R 新手。我目前正在尝试基于sysid
R 包中的工具变量实现回归。我选择了这个包,因为它可以预测我的乐器。
我找到了一种合适的方法(“iv”是这里的功能)来解决我的问题。但是 R 函数没有将“预测仪器”作为其返回参数之一返回。我对那个预测变量非常感兴趣。有没有办法让这个变量作为参数?
我已经尝试创建这个函数的克隆,但是它有很多来自sysid
包的依赖函数,所以它失败了。我还尝试使用“source”命令在我的 R 代码中链接这个修改后的函数,但其余的库与我当前的脚本脱链。请为我提供任何解决方案以获取预测的仪器。源代码如下:
https ://rdrr.io/cran/sysid/src/R/iv.R 。
我想要返回预测的仪器- Lhat。我也欢迎使用任何其他可以做同样的包或回归方法的建议(预测工具)。
matlab - 在 Simulink 中绘制植物传递函数的问题
我正在尝试在 Simulink 中绘制植物传递函数。对于我正在查看的情况,温度从 40 摄氏度下降到 30 摄氏度。
最初,我能够使用系统识别工具箱和 PidTuner 应用程序识别一些合适的工厂模型。无论哪种方式,确定的植物传递函数都遵循从 40 到 30 的下降趋势:
但是,当我在 Simulink 中绘制其中一个已识别的植物传递函数时,结果图显示系统从点 0 开始并向上移动到 30,而不是从 40 开始并减少到 30:
有没有办法解决这个问题?提前致谢。
编辑:
这是 Simulink 模型和使用状态空间模块而不是传递函数模块的工厂结果图:
matlab - 在 simulink idmodel 模块中为已识别的流程模型设置初始值
我使用系统识别工具来获得一些数据的状态空间(2阶)和过程模型(2个输入,1个输出,2阶传递函数+延迟)。这些模型在系统识别模型输出窗口 [图 1] 中显示出非常适合实验数据,但是当我使用 simulink 中的 idmodel 模块来模拟相同的数据时,它看起来与工具上的完全不同。
我对两个拟合模型都使用了完全相同的框图。状态空间拟合模型的结果与系统识别工具[图2-3]一致,而过程模型则完全不同[图4-5]。
状态空间模型仅适用于某些实验条件,而过程模型非常适合我的所有实验,这就是我尝试使用它的原因。下面的图片仅对应 1 个实验。
我认为问题在于,当使用流程模型而不是状态空间模型时,我无法为 idmodel 块设置初始条件。我可以使用 获得流程模型的初始条件findstates(model, data)
,但我不知道如何应用它们。关于如何在 simulink 中为已识别的传递函数/过程模型设置初始条件的任何提示?也许没有 simulink 的可能解决方法?我对任何解决方案或想法持开放态度。
谢谢你。
图 3. 具有状态空间模型的 idmodel 模块:初始条件参数可用
matlab - Matlab Simulink 中的系统识别
我正在使用脉冲传感器,matlab 的输入数据是阶跃函数,我的系统的输出是脉冲,所以当我使用系统识别工具箱时,我插入了系统的输入和输出,然后按下导入,它说你有更多输入通道比数据点要转置输入通道所以我应该做什么这是什么意思请帮助我。我有 1 2897 双用于脉冲数据(输出)和 1 2897 点用于步进数据(输入)。
gekko - Gekko SysId - 温度系统识别
我目前正在开发 MPC 以优化冰箱的成本。因此,我需要我的系统模型。对于算法的建模,我使用了 GEKKO。现在我正在尝试使用 GEKKO 中的“sysid”功能来识别我的系统。如果没有给出系统模型,我只是无法理解这个功能是如何工作的。此外,我不明白这个函数的参数和给定输出的含义。我在这里展示了一些示例:https ://apmonitor.com/do/index.php/Main/DataSimulation 。这种可能性看起来很有希望,我只需要更深入地了解这个功能。
我将不胜感激任何帮助:)