MATLAB系统块的方法
在最后post on MATLAB System block,我试图提供一个基本的介绍MATLAB中的系统对象和金宝app环境。最后,我给出了一个简短的示例,说明System对象提供了几种方法来设置所开发系统的状态属性和输出信号。
本周,客座博客Revathi Dukkipati将帮助我们深入了解系统对象方法以及它们实现的顺序。
MATLAB中的定时方法
在创作System对象时,需要意识到的一件重要事情是,您可以调用(例如一步处理数据),以及您实现的方法(例如stepImpl当你写算法的时候).
要理解为什么您调用的方法名称与您实现的方法名称之间存在差异,我建议您查看计时方法文档页面。您将找到如下图片,说明可以调用哪些方法,以及可以或需要实现哪些方法。
为一步方法,它看起来像:
用绿色背景显示的方法可以由用户实现。除了stepImpl它实现了算法,其他绿色的方法有一个内部的默认实现。只有当默认值不适合您的应用程序时,才需要实现它们。白色显示的方法完全由MATLAB控制。
Simulink中方法的时序金宝app
当通过MATLAB系统块在Simulink中使用System金宝app对象时,重要的是要知道在编辑时调用哪些方法,在模型编译期间调用哪些方法,以及在仿真运行时每个时间步调用哪些方法。
您可以在文档页面中找到这个计时的概述金宝app映射到系统对象方法的Simulink引擎阶段:
让我们通过一个例子来更详细地了解这些阶段。
模型编辑阶段:这就是创建对象的地方。方法如getNumOutputsImpl和getNumInputsImpl需要调用Simulink编辑器来了解块的输出和输入数金宝app量。这些方法是可选的,只有当你的块有多个输入端口和一个输出端口时,你才需要实现它们。
下面是一个示例系统对象,有两个输入和三个输出:
模型编译阶段:在模拟一个模型时,在模拟开始之前,Simulink需要确定所有信号的尺寸和其他属性。金宝app对于其输入端口的属性,MATLAB系统块从与其相连的块中继承它们。对于输出端口,Simulink引擎可以尝试从输入端口金宝app推断它们,或者调用传播方法您的System对象。
这些方法继承自基类matlab.system.mixin.Propagates及所需时输出规格不能直接从输入推断。即使可以推断输出规范,添加Propagation方法也可以改善模型的编译时间,因为可以节省用于推断该数据的时间。下面是一个输出维度为5的示例:
模型执行阶段:一旦模型初始化完成,算法在stepImpl每一步都调用。如果块包含状态,我建议将stepImpl分为两个功能:outputImpl计算输出信号的值,然后呢updateImpl其中更新块内部状态的值。这两个方法由matlab.system.mixin.Nondirect类。
下面是一个实现累加器的示例,使用outputImpl和updateImpl
现在轮到你了
你试过MATLAB系统块吗?让我们知道您对MATLAB系统块的看法,请留下a这里的评论。- 类别:
- S-functions,
- 有什么新鲜事吗?
评论
要发表评论,请点击此处2017-07-29 13:313:00