【问题标题】:Buffer data in Simulink in continuous time在 Simulink 中以连续时间缓冲数据
【发布时间】:2016-07-17 12:56:27
【问题描述】:

我需要在固定持续时间内缓冲一些信号,以便在模拟中使用。在 Simulink 中使用缓冲区块需要知道帧速率。但是,我使用的是连续时间求解器(具有定义的最大步长),所以我真的不知道应该将缓冲区大小设置为多少。似乎没有任何选项可以使用基于时间的触发器。有人可以建议如何做到这一点吗?

【问题讨论】:

  • 使用 MATLAB 功能块编写您自己的缓冲区,该缓冲区将保留前 n 个样本,无论它们何时到达。
  • @PhilGoddard 谢谢你的回复......所以这意味着唯一的选择是使用巨大的缓冲区大小?我这样说是因为使用连续时间求解器很难估计要存储多少样本...此外,如果要求不高,您能否提供一个关于如何创建缓冲区的小工作示例...我可以从那里向前推进...

标签: buffer simulink


【解决方案1】:

一个使用 MATLAB 功能块制作的简单缓冲区,其顶部总是有最新的元素,

function y = buffer(x)

% initialize the buffer
y = zeros(100,1);

% Shuffle the elements down
y(2:end) = y(1:end-1);

% add the new element
y(1) = x;

【讨论】:

  • 如何初始化块内的缓冲区?谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多