我是靠谱客的博主 优美朋友,最近开发中收集的这篇文章主要介绍Simulink学习——Interface的设定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读起来一目了然。

 

最后

以上就是优美朋友为你收集整理的Simulink学习——Interface的设定Interface的设定的全部内容,希望文章能够帮你解决Simulink学习——Interface的设定Interface的设定所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(81)

评论列表共有 0 条评论

立即
投稿
返回
顶部