1 引言
在Simulink中经常需要判断两个信号的大小关系、是否相等,或者判断布尔类型信号的与、或、非等。本文研究通过关系运算与逻辑运算模块实现上述需求。
2 模块使用实例
2.1 关系运算
Relational Operator模块常用于判断信号相等、不等以及大小关系,在Simulink中拖出一个Relational Operator模块,如下图:
双击该模块打开配置面板,可以配置运算符。
该模块用法比较简单,左侧的两个端口输入需要比较的信号,右侧的端口输出判断结果,通常保持默认配置的boolean值即可。例如下图所示,将一个常数信号和另一个常数信号进行比较,如果上面的大于下面的,则输出为真,小于则输出为假。
通常建模时尽量使左边的输入信号保持同样的数据类型。
2.2 关系运算
Relational Operator模块常用于判断信号相等、不等以及大小关系,在Simulink中拖出一个Relational Operator模块,如下图:
双击该模块打开配置面板,同样的可以配置运算符。
该模块用法为,左侧的两个端口输入需要进行布尔运算的信号,右侧的端口输出运算结果,由于是布尔运算,左侧的信号也应该是boolean类型。例如下图所示,将一个常数信号和另一个常数信号进行AND运算。
由于是0和1进行与运算,所以结果也应该是0。
3 代码生成
综合使用两个模块,在Simulink中建模如下:
模型的含义为,判断输入信号In1是否大于0且小于1,其中包含了关系运算与逻辑运算。接着Ctrl+B生成代码。
在step函数中对应的是C语言的关系和逻辑运算符。
4 总结
本文研究了关系和逻辑运算模块,在实践中常常和条件判断一起用。