问题标签 [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.

0 投票
1 回答
230 浏览

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)参数以建立残差的协方差非常感兴趣。

有人可以告诉我,如果使用此功能,我可以这样做吗?

0 投票
1 回答
1086 浏览

matlab - 可以通过simulink中的信号设置状态空间矩阵初始条件吗

我想通过使用信号“from-go to signal blocks”在simulink中的状态空间矩阵块中提供初始条件。我正在用信号块尝试它,但最后会弹出一些错误,它说用作初始条件的信号变量都是未定义的变量。换句话说,存在“未定义的函数或变量”。

任何帮助表示赞赏,谢谢

0 投票
4 回答
9122 浏览

python - Python:识别系统的状态空间模型

我正在寻找使用 python 为我拥有的系统获取状态空间模型。

我已经测试了实际的系统,所以我有它的输入并且我已经测量了输出。所以我有一组相应的输入和输出。

对于python,是否有某个函数,我可以在其中为函数提供系统的输入和输出集,然后该函数将为我提供代表系统的状态空间模型?

0 投票
1 回答
148 浏览

c - 链接到 Ox 的 C 库

我目前正在玩状态空间模型,我正在使用的书有一些非常有用的例子。

问题:

这些示例是用 Ox 编写的,这在一定程度上限制了它的可用性,特别是当我想使用 Interactive Brokers API 测试我的一些模型时,使用 C# / C++ 更实用。

更具体地说,它使用的示例SsfPack根据本文是“用 C 编写并链接到 Ox 的用于状态空间建模和推理的例程库”。

这是否意味着它可以直接在 C 中实现,还是在 Ox 中编写函数然后在 C 中调用它的更好方法,如本文档的 A1.4 所示?如果可以直接实现,那又是如何实现的呢?

对 C 有一些经验而对 Ox 没有经验,这两个选项中的前者会更可取。

欢迎任何想法!

0 投票
2 回答
806 浏览

matlab - Matlab中ss2tf背后的算法

传递函数有可控制和可观察的规范状态空间形式。但是,当我从 Matlab 尝试时ss2tf,我收到了不同的结果。Matlab 使用什么样的算法?是否也有任何文档或开源实现?

0 投票
1 回答
590 浏览

matlab - Matlab:零极点消除问题

我正在使用 Matlab 对我正在使用的系统执行一些控制分析。我已经开发了一个状态空间表示的系统模型,并设计了一个反馈补偿器来产生我想要的闭环响应。

使用 Matlab place() 函数选择反馈增益 K 和估计器增益 L 的方法导致系统根轨迹在同一位置的 RHP 中显示一个极点和零点。理想情况下,这些应该完全相同,导致零极点消除,但系统的阶跃响应仍然不稳定。

查看组合补偿装置系统的极点和零点,闭环响应的极点和零点为:

波兰人

具体来看 RHP 值,在 1e+02*(0.2108 + 0.0000i) 处有一个极点以及一个零点。由于这是唯一不稳定的极点,因此阶跃响应应该是稳定的,但事实并非如此。

我猜这与重要数字或不正确的系统缩放有关,但我不确定。关于为什么这些零极点没有取消的任何想法?

0 投票
1 回答
294 浏览

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))矩阵在单位圆内的特征值保持稳定。

0 投票
1 回答
1581 浏览

matlab - 使用matlab卡尔曼进行非线性系统估计

我有一个由一组一阶非线性差分方程描述的非线性系统:

其中u(k-1)v(k)是独立的零均值高斯噪声过程,分别具有协方差QR

我想使用kalmanmatlab 中的函数来估计x给定y的 . 但是matlab控制系统工具箱中的界面是:

哪里sys是状态空间模型。我的问题是:如何sys在 matlab 中为我的一阶非线性差分方程系统定义?

0 投票
0 回答
69 浏览

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 以及如何用代码实现呢?

非常感谢您的帮助和指导。

0 投票
0 回答
63 浏览

matlab - 等效闭环模型

我正在尝试使用 MATLAB 和connect(). 这是我的系统和代码:

但即使我明确定义throttlethrot_gain传递函数的输入信号,我也会收到以下错误:

据我了解,我创建系统和连接它的方式是正确的,那么我做错了什么?