基于Simulink搭建保护原型函数

描述

BMS保护包括过充保护、过流保护、高温保护等等保护类型较多,但是如果用函数封装的角度去理解,大多数保护类型函数原型是一样的,只不过传入函数的参数不同而已,这样我们就可以用Simulink把这样一类保护做成通用的模块然后传入不同的保护参数再返回报警等级实现业务逻辑功能。

保护分类

按照以上分析把保护类型分为高触发保护(以下简称高保护)和低触发保护,高触发保护是采样值比设定阈值高触发的告警保护,同理低触发保护是采样值比阈值低触发的保护。 我们先来实现高保护。

第一步:新建空模型文件命名为protect。

Simulink

其中阈值和采样值比较逻辑我们采用stateflow实现,

第二步:模型中加入Chart模块

Simulink

第三步:写逻辑

圆圈代表节点,直线是传输,{}里面的语句为执行,[]里面的语句为判断。 先看下下面这条语句,当采样值大于设定阈值之后,开始计时当计时够了之后报警标志位置1

Simulink

接着把逻辑做完

Simulink

这样我们就把判断逻辑做完了下面我们验证下模型;

第四步:设置输入、输出、本地参数类型;

Simulink

第五步:验证模型

设置几个输入参数,仿真看下结果,输入给一个变化的正弦输入,幅值设置为5000,这样变化的信号可以遍历工况;

Simulink

可以看到当输入大于4000时经过延时告警值置位,当小于3000时经过延时告警值复位,当小于阈值时告警一直为0,符合预期的逻辑;

Simulink

第六步:封装模型

模型测试好了再封装一层

Simulink

这样把模型封装成一个子模块

第七步:应用。

现在原型函数就做好了可以根据传入参数完成电压、电流、温度的保护告警去应用了

Simulink

第八步:生成代码

生成代码的配置可以去代码生成 | 安时积分法模型搭建查看;

Simulink

可以看到生成的代码逻辑很严谨很清晰。

好了,高保护已经做完了,大家可以尝试搭建下低保护的子模块。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分