统一的MATLAB和Simulink:第万博1manbetx2部分用户故事
在我以前的文章中,我描述了如何使用MATLAB仿真软件进行参数化模型对象。万博1manbetx说实话,没有什么魔法或革命本身。为什么我决定介绍这一主题的系列文章是因为这使。
在这篇文章中,我建立一个框架的基础,在我看来,可以非常方便的发现和与模型交互模型。万博1manbetx
这里是本系列的其他文章链接:
- 第1部分统一MATLAB和Simulin万博1manbetxk:一个用户故事与MATLAB对象:参数化模型
- 统一的MATLAB和Simulink:第万博1manbetx2部分用户故事:slPart类,模板和数据块变异
- 统一的MATLAB和Simulink:一万博1manbetx个用户故事第3部分与MATLAB对象:控制变量
- 第4部分统一MATLAB和Simulin万博1manbetxk:一个用户故事:后处理与可视化记录数据
- 统一的MATLAB和Simulink:一万博1manbetx个用户故事第5部分:更大的例子
的构建块
这个框架将围绕一个基本单位我决定调用
万博1manbetx
部分
或
slPart
为短。我用“部分”这个词,因为我觉得这是机械零件的书架上你可以找到一个车库或机器商店:齿轮、螺母、螺栓、等部件可以由其他部件,如汽车发动机,悬浮液,轮子,像一个悬架是由弹簧和阻尼器。
这个框架的基本单位是建立在两个基本构建块:MATLAB类和模型蒙面子系统。万博1manbetx
超类:slPart
让我们开始与MATLAB类,我将名字
slPart
,如
万博1manbetx仿真软件部分
。
通过这一系列的文章,我将逐步将功能添加到这个类中,但作为一个起点,这是什么
slPart
类的样子:
classdefslPart <处理
属性(隐藏= true)
BlockPath字符
结束
方法
函数obj = maskInit (obj,黑色)
obj。BlockPath =黑色;
结束
结束
结束
它有一个属性
BlockPath
,在那里我将存储块的路径所使用的对象和一个方法
maskInit
顾名思义,将用于掩盖初始化。
模板块
块,我创建了一个“模板”空子系统和存储库。
使用掩码编辑器,我定义了一个参数命名“obj”:
确保只类的对象
slPart
传递给这个参数,我创建了一个参数约束。
我将面具类型设置为“slPart”(这将帮助我找到实例这一块在未来)
我指定
maskInit
中定义的方法
slPart
面具初始化代码:
的设置,我可以将这个库块复制到一个模型,开始创建第一个仿真软件部分!万博1manbetx
创建第一个slPart
对于第一个示例,我将重用相同的
春天
类在我之前的文章。唯一的区别是,它现在子类
slPart
:
classdef春天< slPart
属性
米
k
c
结束
方法
函数春天obj = ()
obj。米= 0.5;
obj。k= 5;
obj。c= 3;
结束
结束
结束
在模型方面,我万博1manbetx拖一个模板的块复制到一个模型中,打开空的子系统,实现我的算法使用“obj”块的性能参数:
然后实例化一个
春天
对象:
mySpring = springLib.spring
并指定
mySpring
在块对话框中:
设置,我可以模拟模型和仿真完成后,
mySpring
知道模拟。
sim卡(“spring_sim”);
mySpring.BlockPath
我将利用这个功能在以下职位。
创建数据变异
这可以快速给你一个目录的弹簧。您可以使用这些弹簧在各种各样的组件模型,或与合作者分享这个库的弹簧。这些合作者从目录中选择一个春天而不用担心面具下的参数或算法。
这将创建一个名称空间,使您能够使用tab-complete“扫描”目录:
这个库或弹簧的目录,很容易模拟模型与不同的参数化:
(1:2)= Sim万博1manbetxulink.SimulationInput (“spring_sim”);
在(1)= (1).setVariable (“mySpring”,springLib.springN1234);
在(2)= (2).setVariable (“mySpring”,springLib.spring_SupplierB_code5);
= sim (,“ShowProgress”,“关闭”);
现在轮到你了
在这一点上,它可能是公平地说,我没有了任何真正改变游戏规则。到目前为止我所做的是创建一个框架的基础,我将在接下来的文章将方法和属性添加到
slPart
我创建的类。
如果你看过类似的框架或如果上面给你的想法你希望添加到它,在下面的评论,请让我知道。
评论
留下你的评论,请点击在这里MathWorks账户登录或创建一个新的。