![]() |
请教:怎么在Simulink中实现If...Elseif...功能?
请教一下,怎么在Simulink中实现If...Elseif...功能?
其实我的整个系统就是一个Finite State Machine:If条件一成立(模块一为真)、Then触发模块三;Elseif条件二成立(模块二为真)、Then触发模块四。注意,条件一和条件二都比较复杂,都是以Simulink模块的形式存在的。 我曾经试过用Flow Chart来做,但问题是Flow Chart中,引起State变化的条件都非常简单,比如某个变量大于1、或者某个函数值小于0之类的。而我的引起State变化的条件都比较复杂,都是以Simulink模块的形式存在的,而且我不知道怎么样在Flow Chart里面嵌套Simulink模块。 所以请教大家,是怎么完成Simulink中模块之间的切换的? 谢谢! |
回复: 请教:怎么在Simulink中实现If...Elseif...功能?
或者,我换个问法:[B]怎么在一个Simulink模块内部实现case之间的跳来跳去[/B]?
我的整个Simulink系统由以2个模块组成:模块A是一个名叫Detect Fall Nonpositive的Simulink自带的模块(专门检测方波有没有到达下降沿),模块B正是我不懂的需要请教大家的地方…… 模块B的功能如下,它一共有3个状态(或者叫3个case): case 1:(初始状态) If 模块A输出为"1" Then 跳到 case 2; Else Then 维持在 case1; case 2: If 模块A输出为"1" Then 跳到 case 3; Else Then 维持在 case2; case 3: 输出一个形为00011000的脉冲; 跳回 case 1; 如果用S function来实现模块B,那么这个模块B必须和模块A有效互动,还涉及到S function内部case之间挑来挑去的问题…… 请问大家有什么好的思路么? 谢谢! |
所有时间均为北京时间。现在的时间是 13:26。 |
Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.