1

想象一下,我有一个位置/位移的矩形参考值,x我需要对其进行平滑处理。

平移运动的数学非常简单:

speed: v = x'
acceleration: a = v' = x''
jerk. j = a' = v'' = x'''

我需要限制所有这些值。所以我考虑在 Simulink 中使用速率限制器: 在此处输入图像描述 这种方法非常适用于斜坡信号,您可以在以下输出中看到: 在此处输入图像描述

但是,我的参考信号x不是斜坡,它们是矩形/台阶。因此,速率限制器不起作用,因为它们限制的导数已经是无限的,并且 Simulink 会引发错误。我该如何解决这个问题?实际上是否有更优雅的方式来实现高阶限速器?我猜这种方法在某些情况下可能不稳定。


继续阅读:相关问题

4

4 回答 4

1

尽管看起来很荒谬,但以下方法正在起作用:集成和即时推导可以解决问题: 在此处输入图像描述 导致: 在此处输入图像描述

非常感谢为整个平滑问题提供更优雅、更快和更简单的解决方案!

于 2013-09-18T12:41:31.753 回答
1

由于数值问题,在 Simulink 中区分信号通常不是一个好主意,我建议从高阶导数(例如加速度)开始并在数值上更加稳健地进行积分。这是关于导数块的文档所说的:

Derivative 模块输出可能对整个模型的动态非常敏感。输出信号的精度取决于仿真中所采用的时间步长的大小。较小的步长允许该模块的输出曲线更平滑、更准确。但是,与具有连续状态的模块不同,当该模块的输入快速变化时,求解器不会采取更小的步骤。根据驱动信号和模型的动态,此模块的输出信号可能包含意外波动。这些波动主要是由于驱动信号输出和求解器步长。

由于这些敏感性,构建模型以使用积分器(例如 Integrator 模块)而不是 Derivative 模块。积分器模块具有允许求解器调整步长并提高仿真精度的状态。有关选择最佳数学模型以避免在模型中使用 Derivative 模块的示例,请参阅电路模型。

有关更多详细信息,另请参见最佳形式数学模型

于 2013-09-20T09:42:59.597 回答
0

我试图做类似的事情。我一直在寻找“平滑坡道”。这是我发现的:

一种更简单的方法是将斜坡与二阶滞后相结合。然后信号接近 s 形。你的衍生品也将存在并且是平滑的。唯一要记住的是,第二个或滞后必须严格阻尼。

Y(s) = H(s)*X(s) 其中 H(s) = K*wo^2/(s^2 + 2*zeta*wo*s + wo^2)。在这里定义 zeta = 1.0。然后对于任何 K 和 wo 值都保留 s 形。请注意,X(s) 已经被斜坡击中。在 matlab 或任何其他工具中,线性斜坡和第二滞后是标准块。

祝你好运!

于 2014-09-09T19:56:17.880 回答
-1

我认为“Transfer Fcn”块是您正在寻找的。

如果您将等式保留为默认形式 1/(s+1),则您有一个低通滤波器,可以通过更改分子和分母系数将其调整到您需要的值。

于 2015-01-26T16:46:30.230 回答