当输入为0 - 求解器设置时,一阶系统的输出不会变为0?

时间:2014-01-22 08:53:26

标签: matlab simulink

我正在模拟以下一阶系统(ode45 10 ^ -3相对容差 - 默认设置): enter image description here

范围(品红色 - 方波,黄色 - 滤波器输出): enter image description here

脉冲发生器产生方波。有趣的是,当输入为0时(当方波回到0时),一阶系统的输出不会变为0。

我猜这是一个求解器问题。你以前见过这个吗?我的代码中有0个比较,所以我应该将它们改为一些容差级别。这是一个好的解决方案吗?或者我应该更改解算器设置吗?

2 个答案:

答案 0 :(得分:1)

我认为这是因为方波的频率太快,系统动态没有足够的时间回到零。尝试降低方波的频率。

您可能还希望在默认值以外的解算器设置中指定最大步长,以提高绘图的分辨率(例如1s)。默认的最大步长是模拟停止时间除以20,因此它可能非常粗糙。

答案 1 :(得分:1)

正如另一个答案中所建议的那样,问题在于你让解算器花了太多时间。默认的“最大步长”设置为“自动”。这意味着步长为(StopTime-StartTime)/ 50。您似乎设置了较长的停止时间,因此最大步长非常大。

如果您需要长时间运行模拟,则需要将步长从默认值更改为更小的值。