14.Simulink常用模块
14.1.输入输出模块
输入模块Inport,输出模块Outport。
14.2 常量模块Constant
Constant Value最重要的参数,设置常量的值。
设置数据类型,跟其他模块一样。继承默认Constant的规则和反向继承数据类型。
通过设置Value的类型来指定模块的数据类型。
反向继承后面模块的数据类型。
Matlab默认数据类型是Double,如果我们没有进行设置数据类型,没有办法正向或者反向继承的时候,Matlab会使用默认的Double类型。
14.3 数据类型转换模块Data Type Conversion
设置数据类型,反向继承是用的比较多的方式。后面的模块有明确的数据类型的时候,都可以反向继承过来。
物理值相同还是存储值相等。模型里用的话大部分时候都是物理值,只有在与底层接口的时候会遇到存储值相等情况。
14.4 增益模块Gain
增益模块的增益值设置。
乘法方式,可以选择点乘,左乘和右乘等。我们默认选择点乘就可以,最简单的。
设置输出的数据类型,比较常用的是Same as input 和 反向继承。注意数据类型的范围,防止计算溢出。
设置取整方式。比如2.4 * 2的值,在不同的取整方式下等于多少。比较常用的是Floor,Celling,Nearest。
Celling | 向上取整 | 5 |
Convergent | 收敛 | 5 |
Floor | 向下取整,c语言取整方式一致 | 4 |
Nearest | 最接近的值,四舍五入 | 5 |
Round | 5 | |
Simplest | 向下取整,c语言取整方式一致 | 4 |
Zero | 4 |
参数的数据类型设置,也就是图中2这个值的数据类型。比如说设置uint8(2),明确指定数据类型。或者用参数去设置,参数定义为Gain_K = uint16(100)。
14.5 示波器Scope
不能生成代码,帮助调试。生成代码的时候可以移除掉。
进行设置,输入数量等。
14.6 总线组合和拆分Bus Creator和Bus Selector
Bus Creator,将多个信号组合成为一个Bus。
组合Bus的时候,信号线的名字会自动设置为Bus元素的名字。养成好习惯,在BusCreator前面的信号线上命名,同一层级最好名字不一致。
Bus Selector,选择Bus单个或者多个元素的模块。
默认是虚拟Bus,生成代码的时候不会生成总线变量,还是按照单个变量生成代码。非虚拟Bus需要提前定义Bus类型。
非虚拟Bus需要提前创建类型。
14.7 组合模块和拆分模块Mux和Demux
组合成数组的时候可以用到,使用方法和Bus类型相同。只不过生成的是实际的数组信号
创建的数量和拆分数量不一致。
14.8 延时模块delay
延时周期设置,1代表延时一个周期,模块Z负一次方。设置10就是延时10个周期,也就是取出10个周期前的数据。
可以选择length的来源,对话框就是直接在对话框里输入的数值。
Input port会增加一个输入接口。
初始值设置,注意一下初始值的设置最好将数据类型包含在里面。比如boolean类型的我们可以写false,uint8类型的我们可以写uint8(0),枚举类型就可以写具体的枚举值在里面。
Source的设置跟上面length的Source一样的。
将要延时的模块的初始值作为延时模块的初始值。
使能控制和复位设置。
打开使能设置,Enable的时候正常的进行延时,Disable的时候,保持延时的最后一个有效值
Reset在delay作为某个函数运行的时候,新来的信号处理的时候,如果不进行Reset,那将会用上一个信号的最后一个值作为初始值,在这种情况下会多一个无效值,使我们运算有可能会出错
14.9 接地模块Ground
在不确定输入的时候,可以用接地模块来连接。
14.10 终止模块Terminator
用Terminator模块接逻辑的输出,就终止在Terminator这里,不会再往后面传递。比如说某些算法不需要了,但是又不想删除,防止以后再使用的时候还得重新搭,那我们可以先用Terminator模块暂时终止。
14.11 逻辑操作模块LogicalOperator
默认打开是与操作。
修改逻辑运算。AND是与,OR是或,NOT非。
设置输入数量
输出数据类型设置,推荐保持默认的boolean类型。
14.12 乘法模块Product
设置输入个数。
乘法方式选择,默认点乘,数值运算的时候选择此项即可。矩阵的乘法在矩阵的操作时才会用到。
设置数据类型,取整方式。
14.13 比较模块Relational Operator
设置比较的运算方式
14.14 限幅模块Saturation
上限值和下限值设置。
设置输出数据类型和取整方式。
14.15 子系统Subsystem
使用子系统来进行模块化设计。将一整块的逻辑放在一起进行封装。高内聚,低耦合的设计原则。
用Ctrl+G快捷键进行子系统打包。
14.16 开关模块Switch
相当于c语言的if。满足第2个port的输入条件,把第1个Port的值作为输出,不满足的话,把第3个Port的值作为输出。注意一下,两个输入的数据最好是一致的,避免非预期的错误。
判断方式选择,推荐选择~=0,条件为真的时候,输出第一个输入,条件为假的时候,输出第三个输入。