如何在Xcos中导入含逻辑代码的模块?自定义三分支逻辑模块遇阻
实现双阈值逻辑模块的两种方案
针对你需要的双阈值逻辑(输入u1,输出y1):
if u1>18 then y1=0.05; elseif u1<-18 then y1=-0.05; else y1=0 end
由于Switch Dynamic模块仅支持单阈值判断,这里提供两种可行实现方式:
方案一:组合基础模块实现
- 拖入2个Relational Operator模块:
- 第一个设置判断条件为
u1 > 18,输出布尔信号 - 第二个设置判断条件为
u1 < -18,输出布尔信号
- 第一个设置判断条件为
- 拖入2个Switch模块:
- 第一个Switch:控制端接第一个Relational Operator的输出,输入端口1设为
0.05,输入端口2设为0,输出作为中间信号 - 第二个Switch:控制端接第二个Relational Operator的输出,输入端口1设为
-0.05,输入端口2接第一个Switch的输出,最终输出即为y1
- 第一个Switch:控制端接第一个Relational Operator的输出,输入端口1设为
方案二:使用MATLAB Function模块(更简洁)
- 添加MATLAB Function模块,双击打开编辑器,输入以下代码:
function y1 = fcn(u1) if u1 > 18 y1 = 0.05; elseif u1 < -18 y1 = -0.05; else y1 = 0; end
- 自动配置输入输出端口(模块会识别u1为输入、y1为输出),直接连接信号即可完成逻辑实现
内容的提问来源于stack exchange,提问作者Maria Eduarda
相关产品推荐
相关产品推荐

