1 simulink模块的组成要素
1.1 模块的构成元素
- 输入/输出端口:作为模块之间传递数据的纽带,连接输入信号和输出信号。
- 模块外观:通常为矩形或圆形,上面带有说明文字或图像并显示有输出/输出端口名。
- 模块对话框:双击模块外观后弹出的参数GUI,可以在参数控件上进行参数设置。
1.2 模块的属性及其参数
- gcb:获取当前被选中的模块
- gcbh:获取当前被选中的模块的句柄
- get(handle):获取模块的属性信息
- inspect(handle):通过属性观察器方式罗列模块的属性信息
- get_param(block,prop_string):获取block模块的prop_string属性值
- set_param(block,prop_string,prop_value):将block模块的prop_string属性的值设为prop_value。prop_string,prop_value可以多对出现
双击模块可以设置模块参数:
提示标签 | 参数的变量名 |
Constant value | Value |
Interpret vector parameters as 1-D | VectorParams1D |
Sampling mode | SamplingMode |
Sample time | SampleTime |
常数模块、加减乘除四则运算和增益模块及输入输出端口都拥有Signal Attributes属性配置界面。
Output minimum和Output maximum中默认为空,不对数据输出进行任何检测。一旦设置了数值,模块就会对输出值进行检查,当数值小于Output minimum或者大于Output maximum时就会报错来提醒用户。
Output data type对输出数据的类型提供了一些选项。
1.3 模块的注释
右击模块选择Properties选项(以Integrator为例),双击以%<>标示的变量,可以将其转入右边的编辑框中,从而以悬浮文字的方式显示到模型中去。
合理使用模块注解功能能够增强模块的可读性,使得所建立的模型更容易被理解。
2 simulink 常用模块库
这些模块不仅存在于Commonly Used Blocks子库中,也分别存在于各自所属的类别库中,它们被集中在Commonly Used Blocks子库中是为了方便用户使用,建模时可以免去从各个分类库繁多的模块中搜寻这些常用模块的繁琐。
2.1 输入/输出模块
输入模块 In
当它存在于子系统模型中时,将为子系统模型增加一个输入端口,是连接上层模型与当前层次模型的接口,将父层模型的信号传递到当前层次模型中来。
当子系统中存在In模块时,子系统模块框图将按照In模块的编号生成端口。
输出模块 Out
当它存在于子系统模型中时,为子系统增加一个输出端口,是连接上层模型与当前层次模型的桥梁,将当前层次模型的信号传递到父层模型中去。
2.2 常数模块
常数模块在仿真过程中通常输出恒定的数值。
常数模块不仅支持scalar数据作为参数输入,也支持向量、矩阵等多维数据。
2.3 波形显示模块
Scope是模型中的示波器,能够显示模型中的信号波形。
可以连接任何类型的实数信号线,不支持复数。
输入端口数,默认值为1,表示仅有一个输入端口,当输入其他正整数N时可以产生对应个数的输入端口。
Structure With Time将Scope获取到的采样信号存储在结构体中,这个结构体包括:
- 存储时间序列的time
- 存储对应采样时间点的采样数据以及相关信息的结构体signals
- 存储模块全路径及名字的变量blockName
2.4 四则运算模块
加法 sum
推荐用法:当Sum模块的输入都是同一个时刻的输入时,采用矩形图标;当输入有来自输出的延时反馈时,采用圆形图标。
推荐用法:当Sum模块的输入都是同一个时刻的输入时,采用矩形图标;当输入有来自输出的延时反馈时,采用圆形图标。
乘法 product
Multiplication提供两种乘法,Element-wise表示点乘,Matrix表示矩阵乘法。
除法 Divide
增益 Gain
支持标量、向量或矩阵形式的增益。
2.5 延时模块
Delay
Delay length和Initial condition分别表示延时的采样点数和输出的初始值。
模块总的延时时间由延时的采样点数和模块采样时间间隔共同决定。
例如,Delay length为3,Sample time设置为0.6,则模块的输出将在1.8s时开始更新,在0~1.8s之间,模块的输出值由Initial condition中指定的初始值决定。
Source中Dialog表示参数在对话框里输入,Input port表示增加一个输入端口,通过信号线传递参数。
External reset选择None以外的选项时为Delay增加一个输入端口,通过此端口的输入信号达到某种条件而将Delay模块的输出值复位,所谓复位即Delay模块的状态值恢复初始状态值。
Level hold表示当前采样时刻的值非零时即复位。Level则包含了Level hold的情况,另外还包括信号从非零跳变到零的采样点。
Input processing包括Element as channels(基于采样)和Columns as channels(基于帧)以及Inherited3个选项,基于采样和基于帧的采样方式区别在于采样数据的组织方式。
勾选Use circular buffer for state选项时,将使用环形缓存存储仿真或代码生成时使用的状态变量,当Delay length值比较大时,勾选此选项有助于提高执行效率。
Unit Delay
是Delay模块的一个特例,即只延时一个采样时间,其参数对话框比较简单,不需要设置Delay length,不需要考虑缓存区使用环形或线性区域,没有复位功能。
设计示例:十进制累加计数器