Simulin金宝appk上的Guy

金宝appSimulink &基于模型的设计

一个新的一级货舱!

如果你注意细节,你可能已经注意到在MATLAB R2019b中,我们删除了一阶举行块从Simulink库浏览器的Discrete部分。金宝app

同时,我们在Simulink库的Continuous部分添加了一个新的金宝app一级货舱块。

连续一级货舱

为什么要一个新的一级货舱?

我从Simulink用户那里收到最多的一个问题是:我如何加速我的模型?金宝app

这种新的一阶保持块是专门设计来提高一个普通系列模型的性能的:一个连续的变步长装置连接到一个离散控制器。

作为示例,让我们使用挖土机的例子包括与Simscape多体,我将控制器离散化,使其以10毫秒的速度运行。

带有离散控制器的挖土机

如果我模拟这个模型解算器分析器,我可以观察到,模型大约需要110秒来完成60秒的模拟。这需要16917个模拟步骤,最重要的是,6025个求解器重置将被触发,同时还有6214个雅可比矩阵更新。

带有离散控制器的挖土机解算分析器

如果你计算一下,60秒的离散速率在0.01秒是6000步。在Si金宝appmulink中,每当驱动连续植物的离散信号的值发生变化时,就会触发求解器重置。根据不同的标准,求解器重置事件也可以触发雅可比矩阵更新——雅可比矩阵更新是一项昂贵的操作,会随着模型大小呈指数级扩展。

一级货舱

让我们尝试在控制器和植物之间插入新的一阶保持块,并重新运行求解分析器。

挖掘机与离散控制器和一级保持

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

用于挖土机的解算分析器,具有离散控制器和一阶保持器

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

什么时候使用第一阶保持器?

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

为了说明在引入新的一阶保持器时所做的权衡,让我们使用一个更简单的例子。下面的例子是一个简单的质量-弹簧-阻尼系统,由一个采样时间为1秒的离散斜坡信号驱动。可以看到,每次输入信号改变,都会使质量-弹簧-阻尼器系统发生振荡:

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

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

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

原因是,顾名思义,新的一阶保持块在离散速率的步骤之间插入,为积分器块提供连续信号。下图显示了阻塞之前和之后的信号:

进入和退出第一个指令保持块的信号

我将用粗体重复一遍:新的一阶保持块可以显著加快一些模拟…但它也会影响结果.权力越大,责任越大。

要看看一阶保持器是否可以帮助您,请尝试使用求解分析器。如果您看到由离散信号触发的大量求解器重置,并且这些重置触发了雅可比矩阵更新,那么新的一阶保持块可能会加速您的模拟。之后,由您来判断离散速率引入的量化效应是否对结果有显著影响。如果你能接受它对结果的影响,你就可以开始了。

现在轮到你了

尝试一下新的连续一阶保持器,并在下面的评论中告诉我们它是如何工作的。

|

댓글

댓글을남기려면링크를클릭하여MathWorks계정에로그하거나계정을새로만드십시오。