Simulin万博1manbetxk上的家伙

万博1manbetx基于Simulink和模型的设计

一个新的第一阶Hold!

如果你留意细节,你可能已经注意到在MATLAB R2019b中,我们删除了一阶举行块,从Simulink Library浏览器的Discrete部分。万博1manbetx

与此同时,我们在Simulink库的连续部分添加了一个新的万博1manbetx第一个订单持有块。

连续一阶持有

为什么是新的一阶延迟?

我收到的一个问题是来自Simulink用户最常获得的:我如何加快模型?万博1manbetx

这款新的第一订单保持块专为提高普通型号系列的性能:连接到离散控制器的连续变量级工厂。

作为一个例子,让我们用Backhoe示例包括Simscape Multibody我将控制器离散化,使其以10毫秒的速度运行。

带离散控制器的挖土机

如果我用求解活动案例,我可以观察到模型完成60秒的仿真大约需要110秒。这需要16917个模拟步骤,最重要的是,6025个求解器重置被触发与6214个雅可比矩阵更新。

带有离散控制器的反铲铲求解分析器

如果你计算一下,0.01秒时离散速率的60秒是6000步。在Si万博1manbetxmulink中,每当驱动连续装置的离散信号的值发生变化时,就会触发求解器复位。根据不同的标准,求解器重置事件也可以触发雅可比矩阵更新——雅可比矩阵更新是一项代价昂贵的操作,它会按模型规模指数缩放。

第一个订单持有

让我们尝试在控制器和工厂之间插入新的First Order Hold块,并重新运行求解分析器。

带有离散控制器和一阶保持器的挖土机

现在,模拟只花了16秒,大多数数字都显著下降:

带有离散控制器和一阶保持器的反铲铲求解剖面器

从110秒到16秒……这是一个很好的加速!

何时使用一阶保持?

现在您看到了如此显著的改进,您可能会想,为什么我们没有在每次一个离散信号输入连续块时自动应用这种技术。原因在于准确性。

为了说明您在引入新的第一订单持有时,您正在进行的权衡,让我们使用更简单的示例。以下示例是由离散斜坡信号驱动的简单质量弹簧阻尼系统,其采样时间为1秒。正如您所看到的,每次输入信号发生变化时,都会使Mass-Spring Damper系统振荡:

由离散信号驱动的质量弹簧阻尼器

如果我们引入一阶保持块,我们可以看到结果发生了显著的变化:

由离散信号通过一阶保持器驱动的质量-弹簧阻尼器

原因就像它的名字暗示的那样,新的一阶保持块在离散速率的步骤之间进行插值,为积分器块提供一个连续的信号。下图显示了区块之前和之后的信号:

信号进入和退出一阶保持块

我用粗体重复一下:新的第一阶保持块可以显着加速一些模拟......但它也会影响结果.能力越大,责任越大:-)

要查看第一个订单是否可以帮助您,请尝试使用Solver Profiler。如果看到由离散信号触发的大量求解器重置,并且那些触发Jacobian更新,新的第一订单保持块可能会加快模拟。之后,您可以根据离散率引入的量化效果显着影响结果。如果您对结果的影响如何,那么您很高兴。

现在轮到你了

尝试尝试新的连续一份订单,并让我们知道它在下面的评论中如何为您工作。

|

注释

请点击留下评论这里登录到你的MathWorks帐户或创建一个新的。