中国汽车工程师之家--聚集了汽车行业80%专业人士 

论坛口号:知无不言,言无不尽!QQ:542334618 

本站手机访问:直接在浏览器中输入本站域名即可 

  • 128查看
  • 0回复

[Simulink] 在simulink中如何实现滞回功能

[复制链接]

该用户从未签到

发表于 26-4-2024 21:31:56 | 显示全部楼层 |阅读模式

汽车零部件采购、销售通信录       填写你的培训需求,我们帮你找      招募汽车专业培训老师


不管是做模型开发还是仿真模型,滞回是非常常用的一个功能,它可以有效的防止控制变量在边界处发生跳变。如发动机的启动信号,能量回收标志位等。

滞回通常实现以下逻辑功能:

当未使能时,

①输入信号未超过下边界时,不使能;

②输入信号超过下边界时但未超过上边界时,维持上一状态,不使能;

③当输入信号超过上边界时,触发使能。

当已使能时,

①输入信号超过上边界时,触发使能;

②当输入信号低于上边界且高于下边界时,维持上一状态,仍触发使能;

③当输入信号低于下边界时,解除使能。

这样在上下边界之间,就形成了一个缓冲区,可以有效的防止信号的突变。

在simulink中如何实现滞回的功能呢?看起来上面描述了不少,其实实现起来特别简单。

用一句话描述就是:

当U>Up(上边界)时,B=1;当U<Down(下边界)时,B=0。Down<U<Up时保持上一时刻状态。

因为涉及到状态的转移及保持,所以用stateflow实现就非常适合了。如下图,建立两个状态,状态的转移条件分别设为U>Up(上边界)及U<Down(下边界),进入Ena状态后,B置1,进入DisEna状态后,B置0即可。

在simulink中如何实现滞回功能w2.jpg

也可以通过simulink的逻辑判断进行实现。

因为只有U>Up时或U<Down时才会发生输出结果的改变,所以将其作为判断条件。

所以我们可以通过以下方式实现:

通过switch模块,当U>Up时或U<Down时,输出U>Up的判断结果否则输出上一时刻结果。

铁子们可以思考下,这里为什么用U>Up的判断结果作为true的输入?

在simulink中如何实现滞回功能w3.jpg

通过Signal Builder建立输入信号,对以上两种方法进行简单的调试验证。

在simulink中如何实现滞回功能w4.jpg

如下图所示,两者均实现了滞回的功能,且结果完全一致。

在simulink中如何实现滞回功能w5.jpg

通过Stateflow实现

在simulink中如何实现滞回功能w6.jpg

通过Simulink逻辑判断模块实现


快速发帖

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|Archiver|汽车工程师之家 ( 渝ICP备18012993号-1 )

GMT+8, 8-5-2024 07:38 , Processed in 0.479673 second(s), 30 queries .

Powered by Discuz! X3.5

© 2001-2013 Comsenz Inc.