人在仿真软件金宝app

金宝app仿真软件和基于模型的设计

第1部分统一MATLAB和Simulin金宝appk:一个用户故事

最近,我有一个有趣的讨论和一群用户建模、仿真,仿真数据的管理是如何进化的公司。他们提出了一个框架的基本单位(他们称之为“部分”),系统由一个模型金宝app 戴面具的子系统 和一个 MATLAB类
为什么他们想出了吗?要回答这个问题,我将引用一个用户从这个组:“ 真正把MATLAB类对我们是跨系统尺度的概念。从单元测试开发集成模型 。"
我个人觉得这个框架很方便,所以我认为这将是一个有趣的故事在这个博客上分享。与他们的许可,我分享我学到的方法从你们所有的人。
太复杂的分享一篇文章,所以我想出了一系列的博文:
  1. 定义模型数据:从MATLAB硬编码值对象(这篇文章)
  2. 超类和模板子系统的基础框架
  3. 使用MATLAB对象控制变异
  4. 使用MATLAB管理日志对象
我将超链接添加到此列表为本系列文章被出版。
在下面的评论中我非常想听到你思考这一系列的博客文章中描述的方法,以及如何以不同的方式管理好你的仿真数据和原因。
第一篇文章,我将介绍这群用户如何发展他们的定义和方式指定数据仿真软件模型。金宝app

我的第一个模型模型金宝app

第一次您创建了一个仿真软件模型,您很有可能硬编码数据块对话金宝app框。
你可以找到这些模型的一个例子 第一部分 基本建模工作流程 :
你可以想象,这不是一种可伸缩的解决方案。如果我想模拟模型使用一组不同的参数?

MATLAB和Simu金宝applink 101:脚本和变量

自然的第一步我看到向数据管理模型通常是在块对话框指定变量,创建一个MATLAB脚本定义这些变量和评估这个脚本M金宝appATLAB基础工作空间。
这分离的数据定义模型的优势。例如,您可以创建多个版本的MATLAB脚本定义多个数据集的模型。
另一方面,这也导致可伸缩性问题,许多潜在的冲突,尤其是在一个协作环境。如果别人说一块和一个参数也叫“ ”或“ k ”?

MATLAB和Simu金宝applink 301:功能、结构和蒙面子系统

最常见的方式来封装算法在仿真软件是通过金宝app 屏蔽 。多亏了面具的工作区,掩蔽提供了受控地访问数据块。
同样,在MATLAB中, 功能 给你一个工作空间来封装数据。
结合这两个概念,这种进化的下一步是创建一个返回一个MATLAB函数 结构 包含所有所需的数据由一个蒙面的子系统。
在仿真金宝app软件中,算法是蒙面用单一变量,命名为“数据”在这个例子中,然后结构字段中使用单独的块。
这样,如果我与这个系统的多个实例创建一个模型,我可以轻松地创建不同的数据结构。
并将它们传递给物体的不同实例。

嵌套结构

一个伟大的事情您可以嵌套结构。如果你有一个复杂的仿真软件模型由多个组件和子金宝app组件,可以参数化以类似的方式,用MATLAB结构由次级架构和sub-sub-structures。
让我们看这个模型与一个子系统在顶层, ComponentA ,是由两个子系统, 我的春天1 我的春天2 :
在类似上一次迭代的方式,我可以创建一个函数的顶级组件调用两个子组件的初始化函数:
并通过这蒙面子系统包含两个组件:
在这一点上几乎是没有限制的宽度和深度等组件层次结构。
在一天结束的时候,你有一个变量在MATLAB中包含一个结构类似的结构模型。

MATLAB和Simu金宝applink 501:类和对象

下一步在这个进化过渡从结构到MATLAB类。在最简单的形式中,将数据存储在一个MATLAB的属性类非常类似于存储领域的一个结构。
如果我们转换示例质-弹从结构到MATLAB类,这是这样子:
一旦创建了类文件,您就可以实例化它,并将对象传递给参数就像一个面具结构。
在如上所述的结构一样,MATLAB对象可以被嵌套。在这种情况下,一个对象就变成了一个父对象的属性。是对于结构用例,让我们创建一个组件由两个实例的春子组件,但具有不同的参数值:
这些可以作为掩模参数传递结构。
我不会在细节在这篇文章中,但MATLAB类结构相比,提供多种优势。除了宣布正式的属性列表,MATLAB类允许您定义自定义显示和参数验证方法。例如,您可以验证一个特定数据类型的参数或在一定范围的值。如果你想阅读更多关于这个主题我鼓励你们看到这篇博客 蒂姆•约翰 开发区域 博客: 你有邮件

现在轮到你了

我将停止在这里这第一篇文章。在我的下一篇文章中,我将深入讨论的优势和可能性,MATLAB对象启用在这种情况下。
我看到多个用户利用MATLAB结构和对象参数化仿真软件模型。金宝app如果你是这种情况的话,我会非常期待在下面的评论中让你什么解决方案,你有什么优点/不方便看到这种技术。
|

评论

留下你的评论,请点击在这里MathWorks账户登录或创建一个新的。