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

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

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

  • 83查看
  • 0回复

[Simulink] 在simulink中如何实现延时触发功能

[复制链接]

该用户从未签到

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

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


延时触发常用于一些控制信号的处理,以消除信号干扰带来的异常,如启停信号、使能信号等。

延时触发通常实现以下逻辑功能:

①当输入信号使能时,开始计时;

②当经过设定的时间历程后,输入信号仍保持使能状态,则使能输出信号;

③当输入信号解除使能后,立即将输出信号解除使能。

所以,要实现延时触发,要包含以下两部分功能:输入使能时触发计时、根据输入状态及计时状态判断输出。

以上功能用stateflow实现起来比较好理解,所以我们先介绍通过stateflow的实现方法。

在simulink中如何实现延时触发功能w2.jpg

1.通过stateflow实现

在stateflow中建立三个逻辑状态,分别为OFF、ON、Delay。

默认进入OFF状态,输出信号y =0;

当输入信号u使能时,进入Delay状态;

进入Delay状态后计时器开始计时,当计时时长Tim>T-dT时,进入ON状态,

进入ON状态后,输出信号y =1;

处于Delay状态以及ON状态时,当u解除使能后,立即进入OFF状态。

建立完成后的模型如下:

在simulink中如何实现延时触发功能w3.jpg

一个小问题:这里Delay状态进入ON状态下的条件为什么设置为Tim>T-dT。



2.通过simulink基础模块如何实现呢?

方法也有很多种,这里提供一个简单的建模思路供铁子们参考。

当输入信号使能时,给计时器赋初值,而后持续更新计时器状态,将计时器状态与输入信号取与后输出。

建模如下:

在simulink中如何实现延时触发功能w5.jpg

模型中此部分的目的是检测上升沿信号,当检测到上升沿信号时赋初值,随后进入计时状态。

在simulink中如何实现延时触发功能w6.jpg

模型计时触发是通过“累减”实现的,当然也可通过“累加”实现。

这里也留个小问题,赋初值时为什么赋值T-dt,而不是赋值目标延时时长T?

原因同stateflow建模中的Tim>T-dT,铁子们可以自行建模试验一下。

对上述两个模型简单测试一下:

在simulink中如何实现延时触发功能w7.jpg

输出曲线如下,均实现了延时触发功能。

在simulink中如何实现延时触发功能w8.jpg

实现延时触发的方式有很多,铁子们可以参考上述建模思路,但不要被文中思路所局限,适合自己的才是最好的。


在simulink中如何实现延时触发功能w1.jpg

快速发帖

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

本版积分规则

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

GMT+8, 7-5-2024 17:41 , Processed in 0.507309 second(s), 30 queries .

Powered by Discuz! X3.5

© 2001-2013 Comsenz Inc.