人在仿真软件万博1manbetx

万博1manbetx仿真软件和基于模型的设计

统一的MATLAB和Simulink:第万博1manbetx2部分用户故事

在我以前的文章中,我描述了如何使用MATLAB仿真软件进行参数化模型对象。万博1manbetx说实话,没有什么魔法或革命本身。为什么我决定介绍这一主题的系列文章是因为这使。
在这篇文章中,我建立一个框架的基础,在我看来,可以非常方便的发现和与模型交互模型。万博1manbetx
这里是本系列的其他文章链接:

的构建块

这个框架将围绕一个基本单位我决定调用 万博1manbetx 部分 slPart 为短。我用“部分”这个词,因为我觉得这是机械零件的书架上你可以找到一个车库或机器商店:齿轮、螺母、螺栓、等部件可以由其他部件,如汽车发动机,悬浮液,轮子,像一个悬架是由弹簧和阻尼器。
这个框架的基本单位是建立在两个基本构建块:MATLAB类和模型蒙面子系统。万博1manbetx

超类:slPart

让我们开始与MATLAB类,我将名字 slPart ,如 万博1manbetx仿真软件部分
这门课让我来定义属性和方法共有部分。我这一个 处理类 ,它允许MATLAB代码和仿真软件模块引用和相互作用万博1manbetx slPart 来回的对象。
通过这一系列的文章,我将逐步将功能添加到这个类中,但作为一个起点,这是什么 slPart 类的样子:
classdefslPart <处理
属性(隐藏= true)
BlockPath字符
结束
方法
函数obj = maskInit (obj,黑色)
obj。BlockPath =黑色;
结束
结束
结束
它有一个属性 BlockPath ,在那里我将存储块的路径所使用的对象和一个方法 maskInit 顾名思义,将用于掩盖初始化。

模板块

块,我创建了一个“模板”空子系统和存储库。
使用掩码编辑器,我定义了一个参数命名“obj”:
确保只类的对象 slPart 传递给这个参数,我创建了一个参数约束。
我将面具类型设置为“slPart”(这将帮助我找到实例这一块在未来)
我指定 maskInit 中定义的方法 slPart 面具初始化代码:
最后,因为我想让用户编辑从该模板创建的块,我把链接到图书馆当我创建这个街区的副本。为此,我利用 ClipboardFcn回调 :
的设置,我可以将这个库块复制到一个模型,开始创建第一个仿真软件部分!万博1manbetx

创建第一个slPart

对于第一个示例,我将重用相同的 春天 类在我之前的文章。唯一的区别是,它现在子类 slPart :
classdef春天< slPart
属性
k
c
结束
方法
函数春天obj = ()
obj。米= 0.5;
obj。k= 5;
obj。c= 3;
结束
结束
结束
为了方便起见,我存储 春天 类的一个 包文件夹 命名 + springLib 。下面我将描述的原因。现在这意味着我将引用这个类 springLib.spring
在模型方面,我万博1manbetx拖一个模板的块复制到一个模型中,打开空的子系统,实现我的算法使用“obj”块的性能参数:
然后实例化一个 春天 对象:
mySpring = springLib.spring
mySpring =
春天的属性:m: 0.5000 k: 5 c: 3
并指定 mySpring 在块对话框中:
设置,我可以模拟模型和仿真完成后, mySpring 知道模拟。
sim卡(“spring_sim”);
mySpring.BlockPath
ans =“spring_sim /我的第一个春天”
我将利用这个功能在以下职位。

创建数据变异

接下来我们能做的就是创建一个弹簧,图书馆的编目的你可以买一个公司销售弹簧。他们都使用相同的算法,但具有不同的参数值。为此,我们可以使用泛型 春天 作为模板来创建多个类 子类 继承的 春天 超类
这可以快速给你一个目录的弹簧。您可以使用这些弹簧在各种各样的组件模型,或与合作者分享这个库的弹簧。这些合作者从目录中选择一个春天而不用担心面具下的参数或算法。
为了方便起见,可以将所有这些数据变异类 包文件夹
这将创建一个名称空间,使您能够使用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账户登录或创建一个新的。