问题标签 [state-space]
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 - 如何从 ssest matlab 函数中提取状态空间 (e(t)) 的残差?
具有输入向量 u、输出向量 y 和干扰 e 的系统的状态空间模型在连续时间内采用以下形式:
d (x(t)) / dt = Ax(t)+Ke(t)
y(t) = Cx(t)+e(t)
在 MATLAB 函数ssest
中,我能够提取 A、C 和 K 参数,但是我对提取e(t)
参数以建立残差的协方差非常感兴趣。
有人可以告诉我,如果使用此功能,我可以这样做吗?
matlab - 可以通过simulink中的信号设置状态空间矩阵初始条件吗
我想通过使用信号“from-go to signal blocks”在simulink中的状态空间矩阵块中提供初始条件。我正在用信号块尝试它,但最后会弹出一些错误,它说用作初始条件的信号变量都是未定义的变量。换句话说,存在“未定义的函数或变量”。
任何帮助表示赞赏,谢谢
python - Python:识别系统的状态空间模型
我正在寻找使用 python 为我拥有的系统获取状态空间模型。
我已经测试了实际的系统,所以我有它的输入并且我已经测量了输出。所以我有一组相应的输入和输出。
对于python,是否有某个函数,我可以在其中为函数提供系统的输入和输出集,然后该函数将为我提供代表系统的状态空间模型?
c - 链接到 Ox 的 C 库
我目前正在玩状态空间模型,我正在使用的书有一些非常有用的例子。
问题:
这些示例是用 Ox 编写的,这在一定程度上限制了它的可用性,特别是当我想使用 Interactive Brokers API 测试我的一些模型时,使用 C# / C++ 更实用。
更具体地说,它使用的示例SsfPack
根据本文是“用 C 编写并链接到 Ox 的用于状态空间建模和推理的例程库”。
这是否意味着它可以直接在 C 中实现,还是在 Ox 中编写函数然后在 C 中调用它的更好方法,如本文档的 A1.4 所示?如果可以直接实现,那又是如何实现的呢?
对 C 有一些经验而对 Ox 没有经验,这两个选项中的前者会更可取。
欢迎任何想法!
matlab - Matlab中ss2tf背后的算法
传递函数有可控制和可观察的规范状态空间形式。但是,当我从 Matlab 尝试时ss2tf
,我收到了不同的结果。Matlab 使用什么样的算法?是否也有任何文档或开源实现?
matlab - Matlab:零极点消除问题
我正在使用 Matlab 对我正在使用的系统执行一些控制分析。我已经开发了一个状态空间表示的系统模型,并设计了一个反馈补偿器来产生我想要的闭环响应。
使用 Matlab place() 函数选择反馈增益 K 和估计器增益 L 的方法导致系统根轨迹在同一位置的 RHP 中显示一个极点和零点。理想情况下,这些应该完全相同,导致零极点消除,但系统的阶跃响应仍然不稳定。
查看组合补偿装置系统的极点和零点,闭环响应的极点和零点为:
波兰人
零
具体来看 RHP 值,在 1e+02*(0.2108 + 0.0000i) 处有一个极点以及一个零点。由于这是唯一不稳定的极点,因此阶跃响应应该是稳定的,但事实并非如此。
我猜这与重要数字或不正确的系统缩放有关,但我不确定。关于为什么这些零极点没有取消的任何想法?
matlab - 如果卡尔曼滤波器无法计算出稳定的卡尔曼增益,可能的原因是什么?
我有一个关于卡尔曼滤波器的问题。我正在将卡尔曼滤波器用于状态空间模型,如下所示:
其中状态空间矩阵(A(k),B(k),C(k),D(k))
在每个采样时间更新,但 Q 和 R 矩阵被认为是恒定的。计算卡尔曼增益 (K(k)) 和协方差 P 矩阵 (P(k)) 的方程如下:
我面临的问题与(A(k)-K(k)*C(k))
. 在某些采样时间,计算出的卡尔曼增益不能使(A(k)-K(k)*C(k))
矩阵稳定,其特征值(A(k)-K(k)*C(k))
在单位圆之外。
你能帮我找出这个问题的原因吗?我期待卡尔曼滤波器为我提供增益,使(A(k)-K(k)*C(k))
矩阵在单位圆内的特征值保持稳定。
matlab - 使用matlab卡尔曼进行非线性系统估计
我有一个由一组一阶非线性差分方程描述的非线性系统:
其中u(k-1)
和v(k)
是独立的零均值高斯噪声过程,分别具有协方差Q
和R
。
我想使用kalman
matlab 中的函数来估计x
给定y
的 . 但是matlab控制系统工具箱中的界面是:
哪里sys
是状态空间模型。我的问题是:如何sys
在 matlab 中为我的一阶非线性差分方程系统定义?
matlab - 如何在matlab的状态空间模型中生成数组B
我想在 matlab 中绘制来自状态空间模型的传递函数:
在上面的公式中,G,C 是从一个文件中读取的,它们的大小为 1882*1882,ip(t) = [i1 i2 i3 i3 i5]'
(输入),up(t) = [u1 u2 u3 u4 u5]'
(输出)由于 5 端口系统和x = [V1 V2 .... V1161 I1 I2 .. I721]
(节点数:1161,感应分支数:721)。
根据理论 B 必须是一个正交(在我们的例子中为 1882*5)源连接矩阵映射uin(t)
到MNA
向量x
。我的问题是我不知道如何B
在 matlab 中使用代码生成矩阵。我怎么知道矩阵的哪些位置有 1 以及如何用代码实现呢?
非常感谢您的帮助和指导。
matlab - 等效闭环模型
我正在尝试使用 MATLAB 和connect()
. 这是我的系统和代码:
但即使我明确定义throttle
为throt_gain
传递函数的输入信号,我也会收到以下错误:
据我了解,我创建系统和连接它的方式是正确的,那么我做错了什么?