Simulink Constant模块赋值
直接赋值
赋值为标量
例如:1、1.2、pi
赋值为矢量(数组)
例如:[1,2,3]、[1;2;3]
赋值为矩阵
例如:[1,2,3;4,5,6]
通过表达式赋值
例如:1+2+3、2*pi、m*9.8
绑定到变量或对象
例如:g、kp、ki、vehicle.EngSpd
上述变量或存储类对象的可通过以下几种方式赋值:
基础工作区
数组字典
通常通过.m脚本统一管理和进行数据初始化
回调函数
直接在回调函数中赋值,例如Simulink Constant模块常量值绑定到变量a,在模块属性-回调-InitFcn中,定义a=123
Simulink Constant模块输出数据类型
Simulink Constant模块默认的数据类型为Double,在仿真时可以保证精度
但对于MBD开发中用于生成代码的应用场景下,Double类型会降低运算效率
我们在建模时,大部分运算模块的输出数据类型通常会使用默认选项“Inherit: Inherit via internal rule”,也就是由Simulink内部规则自动决定数据类型,当有Double类型输入时,会导致后续的信号数据类型也使用Double,从而引起连锁效应,进一步放大对运算效率的影响
因此需要明确定义Simulink Constant模块的输出数据类型
在信号属性中定义输出数据类型
我们可以双击Constant模块,在模块参数-信号属性中定义输出数据类型
可以选择具体的数据类型,例如uint8、uint16、fixdt(0,16,0.01)
可以选择“Inherit: Inherit via back propagation”,继承后端反向传播的数据类型
通过类型函数定义输出数据类型
在直接赋值或通过表达式赋值时,外层添加类型定义函数。
例如:unit8(3),single(2*pi)