Simulink学习——Interface的设定

Interface的设定

 

在深入开发模型前,需要就模型interface达成一致,否则后续的任何对interface的修改,都会导致非常大的成本(时间或者金钱),因为任何涉及到interface的修改会导致多个模型组件的修改。

 

模型Interface的设计

Simulink给出了一个简单的Interface的设计指南,这里就跟着Help——Define Interfaces of Model Components来学习一下:

 

  1. 基于对应真实系统的边界来进行设定interface。这一点在模型内同时包含被控系统、环境、以及控制系统以及模型中的算法以不同速率运行的时候,非常有效。这里我的理解是,比如说如果一个风扇与插座之间有个插线板,那么风扇系统与供电系统的interface就是这个插线板。

  2. 考虑到以后的模型精细化设计及改进,在interface中先预留可能暂时不做的组件的接口。比如如果系统里面规划有一个传感器,但是目前没有用到,那么可以把这个传感器先做成一个空的子系统,并在里面放置一些信号名称传递的接口即可。

  3. 考虑组件的复用。

  4. 考虑信号名的转换。

  5. 使用数据对象来定义组件interface和准确地控制数据分配。这里我的理解是根据需要传递出去,或者说要读取的数据来定义interface。

  6. 使用总线来简化interface设计。这一点在之前的模块里面我们已经看过很多次了,活用不同的总线模块可以使模型的信号看起来十分清爽。使用bus的话,就可以用一种比较无脑的方法去开发interface:比如我要开发一个组件,但是我不知道另一个组件与我之间需要交互什么信号,那么我就直接创建一个总线,然后把所有我开发组件中可能能够使用到的信号都发送到总线上,这样别人使用我组件信号的时候,他就只需要从总线里面把要的信号取出来就行,不需要跟我沟通太多他要什么信号。

 

数据类型的划分

数据主要分类两种,一种为Global parameters,一种为Nonglobal parameters。

 

前者一般是在MATLAB base workspace存储,为了避免不同组件的数据名称冲突,一般即使数据不进行任何操作,其在经过一个组件后也会进行一次名称转换操作。

 

后者则有多重方法进行存储:

  1. 为每个组件使用reference dictionary

  2. 对于使用模型引用的情况,可以使用model workspace去存储数据

  3. 使用,m或.mat文件去进行模型数据的载入

  4. 对worskpace进行Mask操作

  5. 对于子系统,可以使用Subsystem Parameters设置数据的作用域

 

数据类型划分的方法众多,我感觉还是通过.m或者.mat文件进行数据集中管理会比较方便,配合project的使用,可以实现自动数据载入和更新。

 

 

为组件配置数据Interface

当使用模型或者子系统引用的时候,这些组件会通过in和out模块与外部交互数据。通过直接设置这些接口,可以使模型集成更加轻松,并且防止建模时因为对信号的理解有误出现问题(比如不同组件所使用的的物理单位不统一)。

 

如下图,配合使用Model Data Editor和Model interface可以很简单地设定好每个in、out的数据类型、单位以及名称。是的Interface读起来一目了然。

 

  • 5
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值