在今天的文章中,我继续扩展过去几周介绍的框架。如果你错过了本系列之前的文章,这里有链接:
在本系列文章中,到目前为止,我介绍的框架主要集中在配置模型上,通过从MATLAB类库实例化MATLAB对象来简单地“选择一个部分”。在这篇文章中,我将“统一MATLAB和Simulink”的思想扩展到模拟后的日志数据管理和后处理。金宝app
最后,我希望你们能明白
slPart
框架导致完全包含的组件,其中包括预定义的参数化、变量和函数/方法,以便在MATLAB中与之交互。假设
slPart
已由领域专家创建和验证,然后可以与其他用户共享,并以直接且易于发现的方式使用。
检索记录数据的方法
当我创建
slPart
课上,我加了一个
BlockPath
属性,并提到它以后会有用。现在是时候使用它了!
这样,如果我用多个部分模拟一个模型,每个部分将能够检索自己的数据。
例如,让我们把在上一篇文章中创建的带有变量的spring的两个副本放在一起,并用不同的对象对它们进行参数化。
为每个对象分配不同类的对象并进行模拟。一旦模拟完成,每个对象可以检索自己的日志数据:
mySpring1 = springLib.springN1234;
mySpring2 = springLib.springNonLinearV1;
mySpring1.Log
ans =
金宝app包含3个元素的Simulink.SimulationData.Dataset 'logsout'
的名字
BlockPath
________
________________________________________1 [1x1信号]位置…/变量slPart 1/线性弹簧/集成2 [1x1信号]速度…/变量slPart 1/线性弹簧/集成3 [1x1信号]力…im/Variant slPart 1/linear spring/Sum -使用大括号{}访问,修改或添加使用索引的元素。
mySpring2.Log
ans =
金宝app包含3个元素的Simulink.SimulationData.Dataset 'logsout'
的名字
BlockPath
________
________________________________________1 [1x1信号]位置…ant slPart 2/非线性弹簧/集成2 [1x1信号]速度…ant slPart 2/非线性弹簧/Integ 3 [1x1信号]力…variant slPart 2/ nonlinear spring/Sum -使用大括号{}访问,修改或添加使用索引的元素。
定义自定义后处理和可视化
既然每个部件都能够检索自己的数据,那么就可以为部件定义自定义的后处理和结果可视化。为了说明这是如何工作的,我稍微重新安排了我的示例项目,使两者都有
springLinear
而且
springNonLinear
继承相同的子类
春天
超类。类的依赖关系现在看起来是这样的
类图查看器
:
matlab.diagram.ClassViewer (“文件夹”currentProject () .RootFolder);
这次重组之后,我又增加了一个简单的
plotPower
方法。
春天
类。由于每个弹簧子系统都有两个记录信号,分别命名为“速度”和“力”,我将它们相乘以创建“功率”时间序列并绘制它。这就是
春天
类看起来像:
类继承的每个对象都可以调用此方法,使用与上面相同的模型
春天
类。
mySpring1 = springLib.springN1234;
mySpring2 = springLib.springNonLinearV1;
现在轮到你了
现在我已经介绍了变量和日志记录,我希望拥有这样一个框架的好处越来越明显。
当与其他用户共享在此框架中开发的组件时,他们收到的不仅仅是在Simulink中实现的算法;金宝app它们还会收到一组预定义的参数化和一组与之交互的函数/方法,这些都是由创建组件的领域专家创建和验证的。
除此之外,选项卡补全还有助于发现该组件可用的功能。
您对这样的框架有什么看法?你认为未来的Simulink版本应该有更多的内置功能来促进这样的金宝app工作流程吗?请在下面的评论中告诉我们。
コメント
コメントを残すには,ここをクリックしてMathWorksアカウントにサインインするか新しいMathWorksアカウントを作成します。