BMS保护包括过充保护、过流保护、高温保护等等保护类型较多,但是如果用函数封装的角度去理解,大多数保护类型函数原型是一样的,只不过传入函数的参数不同而已,这样我们就可以用Simulink把这样一类保护做成通用的模块然后传入不同的保护参数再返回报警等级实现业务逻辑功能。
保护分类
按照以上分析把保护类型分为高触发保护(以下简称高保护)和低触发保护,高触发保护是采样值比设定阈值高触发的告警保护,同理低触发保护是采样值比阈值低触发的保护。 我们先来实现高保护。
第一步:新建空模型文件命名为protect。

其中阈值和采样值比较逻辑我们采用stateflow实现,
第二步:模型中加入Chart模块

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

接着把逻辑做完

这样我们就把判断逻辑做完了下面我们验证下模型;
第四步:设置输入、输出、本地参数类型;

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

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

第六步:封装模型
模型测试好了再封装一层

这样把模型封装成一个子模块
第七步:应用。
现在原型函数就做好了可以根据传入参数完成电压、电流、温度的保护告警去应用了

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

可以看到生成的代码逻辑很严谨很清晰。
好了,高保护已经做完了,大家可以尝试搭建下低保护的子模块。
-
参数
+关注
关注
11文章
1868浏览量
33755 -
Simulink
+关注
关注
22文章
549浏览量
65409 -
函数
+关注
关注
3文章
4406浏览量
66819 -
模型
+关注
关注
1文章
3648浏览量
51707 -
bms
+关注
关注
110文章
1196浏览量
69357
发布评论请先 登录
通过调用HID.dll编写USB HID的数据读写,请大神们帮忙提示一下调用哪些HID的原型函数及函数调用顺序!
通过调用HID.dll编写USB HID的数据读写,请大神们帮忙提示一下调用哪些HID的原型函数及函数调用顺序!
如何获得sysLink系列函数的具体说明或者原型函数
如何去搭建Matlab/Simulink?
永磁同步电机simulink模型搭建
使用USRP E310和MATLAB和Simulink进行原型设计和测试软件定义的无线电
利用RBF神经网络实现高斯型函数积分
SP1641B或SP1642B型函数信号发生器手册
配置Simulink模型,调皮属于你自己的代码
在simulink中搭建逆变器仿真模型
simulink搭建的摩擦模型

基于Simulink搭建保护原型函数
评论