概述
Interface的设定
在深入开发模型前,需要就模型interface达成一致,否则后续的任何对interface的修改,都会导致非常大的成本(时间或者金钱),因为任何涉及到interface的修改会导致多个模型组件的修改。
模型Interface的设计
Simulink给出了一个简单的Interface的设计指南,这里就跟着Help——Define Interfaces of Model Components来学习一下:
-
基于对应真实系统的边界来进行设定interface。这一点在模型内同时包含被控系统、环境、以及控制系统以及模型中的算法以不同速率运行的时候,非常有效。这里我的理解是,比如说如果一个风扇与插座之间有个插线板,那么风扇系统与供电系统的interface就是这个插线板。
-
考虑到以后的模型精细化设计及改进,在interface中先预留可能暂时不做的组件的接口。比如如果系统里面规划有一个传感器,但是目前没有用到,那么可以把这个传感器先做成一个空的子系统,并在里面放置一些信号名称传递的接口即可。
-
考虑组件的复用。
-
考虑信号名的转换。
-
使用数据对象来定义组件interface和准确地控制数据分配。这里我的理解是根据需要传递出去,或者说要读取的数据来定义interface。
-
使用总线来简化interface设计。这一点在之前的模块里面我们已经看过很多次了,活用不同的总线模块可以使模型的信号看起来十分清爽。使用bus的话,就可以用一种比较无脑的方法去开发interface:比如我要开发一个组件,但是我不知道另一个组件与我之间需要交互什么信号,那么我就直接创建一个总线,然后把所有我开发组件中可能能够使用到的信号都发送到总线上,这样别人使用我组件信号的时候,他就只需要从总线里面把要的信号取出来就行,不需要跟我沟通太多他要什么信号。
数据类型的划分
数据主要分类两种,一种为Global parameters,一种为Nonglobal parameters。
前者一般是在MATLAB base workspace存储,为了避免不同组件的数据名称冲突,一般即使数据不进行任何操作,其在经过一个组件后也会进行一次名称转换操作。
后者则有多重方法进行存储:
-
为每个组件使用reference dictionary
-
对于使用模型引用的情况,可以使用model workspace去存储数据
-
使用,m或.mat文件去进行模型数据的载入
-
对worskpace进行Mask操作
-
对于子系统,可以使用Subsystem Parameters设置数据的作用域
数据类型划分的方法众多,我感觉还是通过.m或者.mat文件进行数据集中管理会比较方便,配合project的使用,可以实现自动数据载入和更新。
为组件配置数据Interface
当使用模型或者子系统引用的时候,这些组件会通过in和out模块与外部交互数据。通过直接设置这些接口,可以使模型集成更加轻松,并且防止建模时因为对信号的理解有误出现问题(比如不同组件所使用的的物理单位不统一)。
如下图,配合使用Model Data Editor和Model interface可以很简单地设定好每个in、out的数据类型、单位以及名称。是的Interface读起来一目了然。
最后
以上就是优美朋友为你收集整理的Simulink学习——Interface的设定Interface的设定的全部内容,希望文章能够帮你解决Simulink学习——Interface的设定Interface的设定所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复