Simulin金宝appk上的家伙

金宝appSimulink &基于模型的设计

MATLAB系统块的方法

在最后post on MATLAB System block,我试图提供一个基本的介绍MATLAB中的系统对象金宝app环境。最后,我给出了一个简短的示例,说明System对象提供了几种方法来设置所开发系统的状态属性和输出信号。

本周,客座博客Revathi Dukkipati将帮助我们深入了解系统对象方法以及它们实现的顺序。

客座博客Revathi Dukkipati

MATLAB中的定时方法

在创作System对象时,需要意识到的一件重要事情是,您可以调用(例如一步处理数据),以及您实现的方法(例如stepImpl当你写算法的时候).

step和stepImpl

要理解为什么您调用的方法名称与您实现的方法名称之间存在差异,我建议您查看计时方法文档页面。您将找到如下图片,说明可以调用哪些方法,以及可以或需要实现哪些方法。

一步方法,它看起来像:

系统对象方法的计时

用绿色背景显示的方法可以由用户实现。除了stepImpl它实现了算法,其他绿色的方法有一个内部的默认实现。只有当默认值不适合您的应用程序时,才需要实现它们。白色显示的方法完全由MATLAB控制。

Simulink中方法的时序金宝app

当通过MATLAB系统块在Simulink中使用System金宝app对象时,重要的是要知道在编辑时调用哪些方法,在模型编译期间调用哪些方法,以及在仿真运行时每个时间步调用哪些方法。

您可以在文档页面中找到这个计时的概述金宝app映射到系统对象方法的Simulink引擎阶段

系统对象方法的计时

让我们通过一个例子来更详细地了解这些阶段。

模型编辑阶段:这就是创建对象的地方。方法如getNumOutputsImplgetNumInputsImpl需要调用Simulink编辑器来了解块的输出和输入数金宝app量。这些方法是可选的,只有当你的块有多个输入端口和一个输出端口时,你才需要实现它们。

下面是一个示例系统对象,有两个输入和三个输出:

具有两个输入和三个输出的系统对象

模型编译阶段在模拟一个模型时,在模拟开始之前,Simulink需要确定所有信号的尺寸和其他属性。金宝app对于其输入端口的属性,MATLAB系统块从与其相连的块中继承它们。对于输出端口,Simulink引擎可以尝试从输入端口金宝app推断它们,或者调用传播方法您的System对象。

这些方法继承自基类matlab.system.mixin.Propagates及所需时输出规格不能直接从输入推断。即使可以推断输出规范,添加Propagation方法也可以改善模型的编译时间,因为可以节省用于推断该数据的时间。

下面是一个输出维度为5的示例:

输出维度为5的系统对象示例。

模型执行阶段:一旦模型初始化完成,算法在stepImpl每一步都调用。如果块包含状态,我建议将stepImpl分为两个功能:outputImpl计算输出信号的值,然后呢updateImpl其中更新块内部状态的值。这两个方法由matlab.system.mixin.Nondirect类。

下面是一个实现累加器的示例,使用outputImplupdateImpl

示例系统对象使用outputImpl和updateImpl实现累加器。

现在轮到你了

你试过MATLAB系统块吗?让我们知道您对MATLAB系统块的看法,请留下a这里的评论
|

评论

要发表评论,请点击此处2017-07-29 13:313:00