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,不需要考虑缓存区使用环形或线性区域,没有复位功能。
设计示例:十进制累加计数器
2.6 关系操作模块
Relational operator
9种关系操作符
2.7 逻辑运算模块
7中逻辑操作
与(AND)、或(OR)、非(NAND)、或非(NOR)、异或(XOR)、异或非(NXOR)、非(NOT)
Icon shape用于选择模块图标的形状。选择rectangular时,模块形状不变,只是在框图中央显示当前所选择的逻辑操作。
选择distinctive时,模块会以IEEE图像符号标准所规定的形式展现出来。
有了逻辑运算模块,Simulink就可以进行数字门电路的逻辑仿真。
2.8 switch模块
Switch
Switch模块是一个选择开关模块,可根据判断条件选择多个输入端口中的某个进行输出。
若由第2个端口决定的判断条件为真,则输出口输出第1个端口的信号;否则输出第3个端口的信号。
多路选择:
2.9 积分模块
Integrator
External reset:增加一个输入端口,通过外部输入信号的电平或脉冲上下沿进行状态变量的复位。
Initial condition source:初始值的获取方式选择。
Initial condition:模块的初始值。
Limit output:勾选时对输出值的上下限进行限定。
Show saturation port:使能饱和输出端口。1表示输出值超出上限但被上限饱和值限制住,0表示上下限均未达到,-1表示超出下限但被下限饱和值限制住。
Show state port:使能状态输出端口。用于消除代数环。
示例:
示例:求解微分方程
y’‘(t)+5y’(t)+6y(t)=2x’(t)+8x(t)
x(t)=exp(-t)×u(t)
y(0-)=5,y’(0-)=-4
[simulink] --- simulink模块(二)https://developer.aliyun.com/article/1442547