gekko - 如何处理 GEKKO 中的离散时间系统?
问题描述
我正在处理一个采样时间为 300 秒的离散时间系统。
我的问题是如何表达状态方程或输出 eqatuin
x(k+1)=A*x(k)+B*u(k)
y(k)=C*x(k)
其中x(k)
是状态,y(k)
是输出。我拥有 A、B、C 矩阵的所有值。
我在网页https://apmonitor.com/wiki/index.php/Apps/DiscreteStateSpace上找到了一些关于离散时间系统的信息
我想知道除了
x,y,u = m.state_space(A,B,C,D=None,discrete=True)
解决方案
离散状态空间模型是构建模型的首选方式。您还可以将方程转换为离散时间序列形式或连续状态空间形式。这些都是等价形式。编写模型的另一种方法是使用IMODE=2
(代数方程),但这要复杂得多。这是一个MIMO 识别的例子,我们用 IMODE=2 估计 ARX 参数。我推荐该m.state_space
模型并将其与IMODE>=4
.
这是一个钟摆状态空间模型示例。
它们都使用连续状态空间模型,但方法类似于您的应用程序所需的方法。
推荐阅读
- python - 代码使用 x70 列的数据框和 1000 列的失败(相同的数据结构)
- r - 连接两个数据框并为连接列的缺失值添加 NA
- mysql - 导入表定义时忽略 ALTER TABLE 命令
- swift - 如何使用 Swift UI 在 Xcode 11.1 中更改按钮的大小
- python - cupy.split (cuda100-6.5.0) 返回a是否正常
代替 ? - vue.js - 将条带导入 Vue.js 组件
- javascript - 编译失败:
未定义 no-undef - java - Comparator 等价的身份操作
- hibernate - JavaEE Hibernate + Glassfish 服务器:EntityManager 没有持久性提供程序
- javascript - 带有 webpack 的 HTML 内联 javascript