问题标签 [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.
python - 使用 Gekko 的带有 ARX 模型的 MPC
我正在为 MPC 建模以控制冰箱并将温度保持在给定的时间间隔内,同时最大限度地降低成本。我正在使用 GEKKO 对我的算法进行建模。
我写了以下代码。首先,我使用系统中的传感器数据识别了我的模型(我使用了 GEKKO 的函数 sysif)。然后我构建了一个 ARX 模型(使用 GEKKO 中的 arx 函数),它成为 sysid() 的结果作为输入。
我正在尝试编写一个“虚拟”算法以在将其实施到 Pi 之前在本地进行测试。
我收到以下错误:
这是我的代码
model - 如何在闭环系统中找到真正的影响因素?
我正在为闭环系统中的测量建立一个模型,因为我想对目标进行一种假设分析。
由于它是一个受控系统,因此我在寻找目标上影响因素的正确关系时遇到了一些问题。自变量以某种方式相关。此外,可能存在一些未知/非测量/隐藏变量。
我正在寻找处理这些问题的最佳方法以及如何从数据中找到真正的关系。
python-3.x - 如何对质量、质心、惯性等进行 MultibodyPlant 计算的梯度?
我看到了Underactuated:System Identification的当前章节和相应的笔记本,它目前是通过符号来完成的。
我想尝试使用前向模式自动微分(“autodiff” viaAutoDiffXd
等)进行系统识别之类的东西,只是为了检查可伸缩性之类的东西,更好地了解 Drake 中的符号和 autodiff 选项等。
作为使用 autodiff 进行系统识别的第一步,我如何获取MultibodyPlant
相对于惯性参数(例如质量)的量梯度(例如广义力、正向动力学等)?
- 注意:在撰写本文时,Underactuated 章节 + 笔记本的永久链接:sysid.html , sysid.ipynb
controller - 线性化一阶传递函数
有人知道如何设计生物柴油发电厂的一阶线性化传递函数吗?是否有任何方法可以获得植物的一阶传递函数?我想通过将生物柴油发电发电厂视为容量为 150MW 的基荷发电厂来设计用于隔离微电网的控制器。请帮我解决这个问题。谢谢你们。
matlab - Matlab Greybox识别工具箱的问题
亲爱的 stackoverflow 社区
我一直在努力解决以下问题。我有这个代码来估计参数与为 Greybox 建模提供的 Matlab 函数。Matlab 没有给我给定的 idnlgrey 元素的阶跃响应。这个怎么可能?如果我编写给定示例之一。我试图更改有关灰盒识别的给定示例之一的代码,并且发生了相同的问题。我真的不明白这里可能是什么问题。
python - 将matlab系统识别转换为python
我在 Matlab 中有一段代码要转换为 Python。Matlab 代码使用此处提供的系统识别工具箱:
为了提供有关代码的更多解释,我将数据封装为 iddata,并将其拆分为训练和验证数据。这些拆分将用于估计识别线性 ARX 模型的最佳顺序。一旦确定,我想用这些顺序检测系统中的非线性。然后,我想构建 ARX 模型,找到初始状态,并将其转换为稳态模型。最后,我想检测任何异常行为以识别系统是否不稳定。
我开始转换到 Python 并找到了一个名为 SIPPY 的包,用于线性 ARX mdeoling。这是我用 Python 编写的代码:
此代码将读取数据(无需 iddata 封装)并输出给定订单范围的最佳 ARX 模型。这意味着它将执行为arxstruc(z1,z2,struc(0:2, 1:50,1:50))
、nn = selstruc(V,'aic');
和sys=arx(z1,nn);
。但是,在对相同数据进行测试以比较输出时,我发现 Matlab 给出的最佳命令是[1 25 1]
While python returns [2 35 1]
。当我调查原因时,我发现损失值与 Matlab 和 Python 不同,并且由于输出将是实现最小损失的顺序,因此具有不同的顺序是合乎逻辑的。那么有人可以帮我解决这个问题吗?Matlab中使用的损失函数是什么?是否有一个包可以在 Matlab 中模拟系统识别并在 Python 中提供相同的结果?