登录论坛

查看完整版本 : Simulink模拟引擎如何工作?


poster
2019-12-10, 20:48
我想了解Simulink仿真引擎的工作原理。是否使用离散事件模拟机制(然后如何处理连续时间?)?它是否依赖基于静态周期的代码生成?要么 ?



回答:

在第一个周期之前,它将弄清楚块的执行顺序(从不需要其他任何块输入的块开始)

在每个循环中,它根据输入和块的代码计算每个块的输出。每个块的代码都是静态的,在将模型放在一起之前,大多数代码已经存在。 (我不知道块选项实际上是否会更改代码,或者是否仅在运行时每次迭代时对它们进行评估。)

如果模拟步骤是可变的,则每个循环主要根据模型变量的变化速度来计算下一步的大小。它们变化得越快,步长应该越小,因此,假定短暂的高导数持续时间不应该长得多。 (我不知道此计算的详细信息,也许其他人可以了解一下吗?)因此,“连续”仿真或可变步长仅意味着Simulink将在每个周期内进行合理的猜测,以了解步长足够小将时间量化误差保持在可接受的水平。在完全数字化的硬件(例如计算机的处理器)上,真正进行连续的仿真实际上是不可能的。



更多&回答... (https://stackoverflow.com/questions/3884948)