【问题标题】:How to use rate limiter with square signal and variable step size in Simulink?如何在 Simulink 中使用带有方信号和可变步长的速率限制器?
【发布时间】:2014-08-05 17:32:30
【问题描述】:

如何在 Simulink 中使用带有方信号和可变步长的速率限制器?

这是我要设置的模型的屏幕截图:

model:

我将定制的矩形信号输入速率限制器以避免垂直斜率。

不幸的是,这似乎不起作用。我正在使用 ode15s,这是一个要求。这是 Simulink 抛出的错误消息:

错误:Rate Limiter '.../Rate Limiter' 的输入信号既不是 离散或连续采样时间信号。只有离散或 支持连续输入信号

非常令人惊讶的是,我找到了一种解决方法,即直接添加一个积分器,然后是一个导数。这有效:

workaroud:

但它很难看,在某些情况下我会遇到一些非常烦人的稳定性问题。我非常怀疑它是否被认为是“好的做法”。

那么在这种情况下应该如何使用这个速率限制块呢?

约翰

【问题讨论】:

  • 我的第一个猜测是,您的步进函数直接从t=0 开始 - 但 ode15s 需要提前为速率限制器设置一个值。尝试稍后开始该步骤。也许this question 也会给你一些替代方案的灵感。

标签: matlab simulink


【解决方案1】:

感谢两位的回答。 我忘了说我已经用彩色显示器检查了采样时间。这是“固定的小步骤”。

其实很简单。如果我做对了,那么在我的子系统中没有指定或以错误的方式指定采样时间。在速率限制器对话框中指定连续可以解决问题!

thewaywewalk,我会记住你的建议。因为我经常使用步骤,所以它可能很有用。

【讨论】:

    【解决方案2】:

    在您的模型中尝试displaying the sample time colours 以检查您的信号使用的采样时间。

    引入积分器块将强制信号变得连续,这就是它起作用的原因。也许使用Signal Specification 块或Rate Transition 块的采样时间为[0, 0](对于连续信号,请参阅文档中的Specify Sample Time)将实现相同的效果并且稍微更优雅(使用导数块是不被认为是好的做法)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-26
      • 1970-01-01
      • 2021-11-21
      相关资源
      最近更新 更多