人在仿真软件万博1manbetx

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

第4部分统一MATLAB和Simulin万博1manbetxk:一个用户故事

在今日的帖子里,我继续扩展框架介绍了过去几周。如果你错过了本系列前面的文章中,下面是链接:
框架到目前为止在本系列中,我介绍了一直主要集中在配置模型,简单的心态“挑选一部分”实例化一个MATLAB MATLAB类的对象从一个图书馆。在这篇文章中,我将“MATLAB和Simulink统一管理和后期处理后记录数据模拟。万博1manbetx
最后,我希望你能看到这一点 slPart 框架会导致完全包含组件,包括预定义的参数化、变异,在MATLAB函数/方法与它。假设 slPart 由领域专家创建和验证,它可以与其他用户共享,只是用于简单和容易发现的方式。

一个方法来检索记录数据

当我创造了 slPart 类,我添加了一个 BlockPath 财产,提及,以后会有用的。现在是时候使用它!
我用的 BlockPath 是检索子系统内部的数据记录。为此,我需要创建一个方法 万博1manbetx仿真软件。SimulationOutput对象 并解析其在新添加的存储记录数据 日志 财产的 slPart 对象。这种方法仅仅利用了 找到 的方法 万博1manbetxSimulink.SimulationData.Dataset 对象。这是什么 slPart 类现在看起来像:
classdefslPart <处理
属性(隐藏= true)
BlockPath字符
日志万博1manbetxSimulink.SimulationData.Dataset
结束
方法
函数obj = maskInit (obj,黑色)
%见以前的帖子
结束
函数obj = getLog (obj,)
obj。日志= out.logsout.find(“正则表达式”,“BlockPath”,(obj.BlockPath“美元(/ . *)?”]);
结束
结束
结束
这样,如果我模拟模型与多个部分,每个部分将能够检索自己的数据。
例如,我们把两个副本的春天与变异在以前的文章中创建并将其参数化与不同的对象。
将不同类别的对象分配给每个人,模拟。仿真完成后,每个对象都可以检索自己的记录数据:
mdl =“spring_sim”;
mySpring1 = springLib.springN1234;
mySpring2 = springLib.springNonLinearV1;
= sim (mdl);
mySpring1.getLog(出);
mySpring2.getLog(出);
mySpring1.Log
ans =
万博1manbetxSimulink.SimulationData.Dataset'logsout' with 3 elements 的名字 BlockPath ________ ________________________________________1 (1 x1信号)的位置…/ slPart变体1 /线性弹簧/ Integ 2 [1 x1信号]速度……/ slPart变体1 /线性弹簧/ Integ 3 [1 x1信号]力……im / slPart变体1 /线性弹簧和使用大括号{}来访问,修改或添加元素使用索引。
mySpring2.Log
ans =
万博1manbetxSimulink.SimulationData.Dataset'logsout' with 3 elements 的名字 BlockPath ________ ________________________________________1 (1 x1信号)的位置…iant slPart 2 /非线性弹簧/ Integ 2 [1 x1信号]速度……iant slPart 2 /非线性弹簧/ Integ 3 [1 x1信号]力……变异slPart 2 /非线性弹簧和使用大括号{}来访问,修改或添加元素使用索引。

定义定制的后期处理和可视化

现在,每个部分能够检索自己的数据,就可以定义定制的后期处理和可视化的结果部分。说明如何工作,我重新安排我的示例项目一点都 springLinear springNonLinear 子类化的 春天 超类。这里是如何依赖现在看起来就像在使用我的类 类图查看器 :
matlab.diagram.ClassViewer (“文件夹”currentProject () .RootFolder);
重组后,我添加了一个简单的 plotPower 方法 春天 类。每年春天以来子系统有两个记录信号,命名为“速度”和“力”,我用它们来创建一个“权力”timeseries和情节。这是什么 春天 类的样子:
classdef春天< slPart
方法
函数plotPower (obj)
功率= obj.Log.get (“速度”). values * obj.Log.get (“力”). values;
权力。Name =“权力”;
情节(权力)
结束
结束
结束
使用相同的模型上面,然后我可以为每个对象继承调用这个方法 春天 类。
mdl =“spring_sim”;
mySpring1 = springLib.springN1234;
mySpring2 = springLib.springNonLinearV1;
= sim (mdl);
mySpring1.getLog(出);
mySpring2.getLog(出);
图;
mySpring1.plotPower;
持有
mySpring2.plotPower;

现在轮到你了

现在我介绍了变异和日志记录,我希望拥有一个这样的框架所带来的好处越来越清晰。
当与其他用户共享一个组件在这个框架开发的,他们得到的是不仅仅是一个算法在仿真软件中实现;万博1manbetx他们也收到一组预定义的参数化和一组函数/方法来与之交互,创建和验证的领域专家创建的组件。
除此之外,tab补齐也有助于发现可用这样的组件。
你可以下载项目的当前版本 在这里
你认为这样的框架?你认为仿真软件的未来版本应该有更多的内置功能facilite工作万博1manbetx流?在下面的评论中让我们知道。
|

评论

要发表评论,请点击此处登录到您的MathWorks帐户或创建一个新帐户。