问题标签 [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 回答
496 浏览

python - 当 t[0] != 0 时从 signal.lsim 得到奇怪的结果

我正在运行 LTI 状态空间模型的模拟,我需要在不同的时间以不同的输入运行它。换句话说,从 t0 = 0 模拟到 t1=1 秒,根据 t1 的结果对系统的输入进行更改,然后从 t1= 1 秒继续到 t2= 2 秒。

我尝试在 t[0] 处使用初始条件 X0=array([0,0]) 运行,然后将 xout1 的最后一个元素作为下一次运行的初始条件,并给它一个从 t 开始的新时间序列[0] = 1

您希望状态向量输出数组“xout2”中的第一个元素与 X0 条件匹配,但事实并非如此。此函数“lsim”是否要求第一个时间点为 0 ?

绘图输出

0 投票
2 回答
199 浏览

matlab - 相同代码的两个版本返回不同的结果

我希望在将这两行 MATLAB 代码压缩为一行时得到相同的结果,但我没有!

两行代码:

1行代码:

黄油 :

  • 返回transfer function coefficients何时b,a是输出

  • 返回state-space matrices何时A,B,C,D是输出

tf2ss:

  • 转换transfer function filter parametersstate-space表格
0 投票
0 回答
274 浏览

tensorflow - 在 TensorFlow 上实现序列变分自动编码器(状态空间模型)

我目前正在尝试在顺序设置中实现变分自动编码器的一个版本。我使用 Eager Execution 模式在 TensorFlow 上工作。

作为问题设置,我有两个变量序列:动作(2D)和观察(2D)。假设动作影响观察。目标是根据动作对观察序列进行建模(恢复)。为此,我们从潜在变量(隐藏)中“寻求帮助”,与 VAE 类似,但以顺序方式。

下面是问题的生成流程。o、a 和 s 分别是观察变量、动作变量和潜在变量。

建模问题的生成流程

就像 VAE 一样,神经网络用于参数化相关变量的分布。在这里,我假设所有变量都遵循一些具有完整对角协方差矩阵(没有协方差)的多元正态。

这里涉及三个神经网络:推理、转换和生成网络。它们中的每一个都发出相应变量的均值对数方差向量。这里给出了所有这些网络的图片: 三网关系

图片议程: A:来自推理网络的潜在变量的平均值 B:来自推理网络 的潜在变量的对数方差C :来自转换网络的潜在变量的平均值 D:来自转换网络 的潜在变量的对数方差E :预测观察的平均值 F :预测观察的对数方差

我们想要最小化的损失是负 ELBO。而 ELBO 本身等于真实观察的对数似然,给定 E 和 F减去AB 和 CD 之间的 Kullback-Leibler 距离。

由于问题导致非标准 RNN 单元和输入输出流,因此我创建了自己的 RNNcell,然后将其传递给 tf.nn.raw_rnn API。

下面是我的代码实现:

最后一行导致过渡网络和生成网络的梯度为零,因此我无法继续进行。有谁知道为什么过渡和生成网络的梯度为零?我想,我创建模型的代码仍然是错误的。但我没有任何改进它的想法。

0 投票
0 回答
126 浏览

r - 将有些困难的状态空间模型转换为 R (MARSS / DLM)

我目前正在尝试获得与论文“英格兰中部温度的季节性变化 - Proietti & Hillebrand (2015) ”相同的估计结果

在这个模型中,他们定义了以下状态空间模型,我使用Koopman & Durbin (2012) 的“标准”状态空间方程对其进行了重写。蓝色变量是需要估计的变量,预期结果在第一篇论文中报告(第 14 页)。

理解模型的一个非常小的总结:y_t 是一个 1xT 向量,每个月有数据,X_t 是一个 12x1“选择”向量,因此 y_t 允许它所在的每个月参数的不同值。

我尝试先估计模型,而忽略最初给出一些错误的 X_t 矩阵...例如,Q 中的第一个元素不允许为零,这在我看来很奇怪.. \mu 没有创新因此创新向量没有变化,对吧?此外,即使有 1,000 次迭代,仍然没有达到收敛。我想我明天早上会尝试进行 10,000 次迭代,也许这会有所帮助。

然而,让我难过的主要事情是如何在这个状态空间模型中允许 X_t 。这反过来会将模型更改为 60 个参数(因为每个参数都是 12x1 向量)。任何帮助都会很可爱:)

0 投票
1 回答
708 浏览

matlab - 如何使用 simulink 将向量或矩阵输出到工作区?

我认为这是一件相当简单的事情,但我似乎无法获得我正在寻找的正确输出。我正在使用矩阵来表示 simulink 中的状态空间模型,并且我正在尝试将我的状态输出到工作区,

这是一个简单的 4x1 向量,我尝试只使用常规的“到工作区”块,但它似乎连接到 2d 或 3d 向量..

我想要一个 tx4 矩阵输出,我可以参考第一个状态并绘制所有模拟时间(t),如 x(:,1)、第二个状态 x(:,2) 等...

0 投票
1 回答
230 浏览

model-checking - UPPAAL SMC 避免状态空间爆炸

我正在尝试使用 UPPAAL SMC 查询更大的系统,结果显示“内存已耗尽”错误消息。从本质上讲,UPPAAL SMC 不应该导致状态空间爆炸,这就是为什么我问是否可以在不发生状态空间爆炸的情况下使用 SMC 进行查询。

如果我尝试在很多状态下执行以下操作:

我收到以下错误消息:

是否可以在不调用内存密集型的情况下查询 Uppaal SMC engine.getSystem()

这是我的“设备”模板的 uppaal 模型

0 投票
1 回答
136 浏览

f# - 如何使用 F# 实现状态机?以及如何过渡?

我正在编写一个新代码,而且我是 F# 的新手。如何实现状态机

0 投票
0 回答
169 浏览

matlab - 设置阶跃响应要求,例如建立时间、过冲和输出静态误差

我试图在图片中找到系统的阶跃响应,我需要找到稳定时间、过冲和输出的静态误差。我怎样才能找到它们?我编程的是否正确?

Matlab代码:

系统

控制器和观察者设计

0 投票
0 回答
296 浏览

python - PyKalman 的 EM 算法和 AR(I)MA 状态空间方程

我正在使用 Python 的PyKalman来运行基于ARMA (p,q) 模型的卡尔曼滤波器。转移矩阵应该采用一种非常特殊的形式(例如,参见Hamilton 的“时间序列分析”第 374 页的 AR(p) 示例),在正确的位置有一些10。然而,当我使用 PyKalman 的EM 算法时,它会产生一个完全通用形式的转移矩阵。由于一和零都消失了,状态空间模型不再对应于 ARMA 设置。

如何使用 PyKalman 包的 EM 方法,同时将转换矩阵保持在非常特殊的 ARMA 形式中?

0 投票
1 回答
47 浏览

matlab - 状态空间灰盒参数估计

我试图了解如何在 matlab 中执行灰盒参数估计。我对控制理论有一些工作但有些生疏的知识(多年前的本科控制理论)。我正在做研究生研究,并且可以访问大多数(如果不是全部)matlab 工具箱。

我从我正在建模的系统中知道我的 A、B、C 和 D 矩阵的形式,即一个简单的 R1C1 电路具有连续表示

我有 y(kT) 和 u(kT) 的观察结果,所以我相信在给定观察值的采样率的情况下,我需要将上述矩阵转换为“后向差分”形式以估计 R 和 C?

IE

我已经尝试过idgreyandgreyest功能。在这些情况下,您实现一个回调,它返回给定 R、C 和 Ts 的 [ABCD]。我不清楚这对于离散系统是如何工作的 - 您是否希望进行上述转换?