0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于Simulink搭建保护原型函数

CHANBAEK 来源:熊猫硬件 作者:熊猫硬件 2023-03-10 14:38 次阅读

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

保护分类

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

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

poYBAGQKz5SAJOnwAAEHAbA4U8U753.png

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

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

poYBAGQKz6OAENIrAAIX1Gk5b8A948.png

第三步:写逻辑

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

pYYBAGQKz7OAEE3oAAFXttWuoJY136.png

接着把逻辑做完

poYBAGQKz8GALzZVAAHP4QEtqDc699.png

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

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

poYBAGQKz8-AbryWAAJdZgmSv04173.png

第五步:验证模型

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

poYBAGQKz9yAX91nAACljbINlrQ273.png

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

pYYBAGQKz_KAKxp2AAHu_ZnlVPE396.png

第六步:封装模型

模型测试好了再封装一层

pYYBAGQK0AOADAlTAAEwbjtzQX8375.png

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

第七步:应用。

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

pYYBAGQK0BeANu2KAAD9Z3zQtGg437.png

第八步:生成代码

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

pYYBAGQK0C-AaLSWAALkBMnPZA8481.png

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

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

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

    关注

    11

    文章

    1398

    浏览量

    31477
  • Simulink
    +关注

    关注

    22

    文章

    513

    浏览量

    61572
  • 函数
    +关注

    关注

    3

    文章

    3904

    浏览量

    61310
  • 模型
    +关注

    关注

    1

    文章

    2707

    浏览量

    47704
  • bms
    bms
    +关注

    关注

    103

    文章

    856

    浏览量

    64839
收藏 人收藏

    评论

    相关推荐

    通过调用HID.dll编写USB HID的数据读写,请大神们帮忙提示一下调用哪些HID的原型函数函数调用顺序!

    通过调用HID.dll编写USB HID的数据读写,请大神们帮忙提示一下调用哪些HID的原型函数函数调用顺序!
    发表于 07-01 16:30

    通过调用HID.dll编写USB HID的数据读写,请大神们帮忙提示一下调用哪些HID的原型函数函数调用顺序!

    通过调用HID.dll编写USB HID的数据读写,请大神们帮忙提示一下调用哪些HID的原型函数函数调用顺序!
    发表于 07-06 10:02

    如何获得sysLink系列函数的具体说明或者原型函数

    Hello 您好, 我想详细了解DM8148的通信机制,也就是说link的工作过程。 阅读提供的代码时,发现许多函数没办法找到原型,这些函数主要是核与核通信的。 比如
    发表于 06-23 06:06

    怎么查看mmcsdPscInit函数原型

    例程中的main函数如下,请问怎么查看mmcsdPscInit()函数原型函数定义)呢?Int main(){// 使能 MMCSD 外设 mmcsdPscInit(); // 启动
    发表于 04-28 14:43

    如何去搭建Matlab/Simulink

    搭建MatlabSimulink 下针对 TIDSP 的代码自动生成环境搭建 Matlab/Simulink 下针对 TIDSP 的代码自动生成环境本文介绍如何搭建 Matlab/
    发表于 07-07 06:18

    永磁同步电机simulink模型搭建

    永磁同步电机simulink模型搭建1、总搭建模型2、各搭建模块2.1永磁电机模块一共六个输出,分别是转速,位置(角度),转矩,三相电流。2.2AC-DC-AC模块2.3反馈显示模块2
    发表于 08-27 06:26

    如何搭建simulink模型?

    如何搭建simulink模型?EPS系统的工作原理是什么?
    发表于 10-20 07:44

    使用USRP E310和MATLAB和Simulink进行原型设计和测试软件定义的无线电

    使用USRP E310和MATLAB和Simulink进行原型设计和测试软件定义的无线电(SDR)系统通信系统工具箱™支持包USRP®嵌入式系列收音机使您可以使用MATLAB®和Simulink®到
    发表于 12-21 07:56

    C语言实现的泛型函数swap()

    C语言实现的泛型函数swap():交换两个变量中的数据.
    发表于 01-20 07:10

    型函数bsearch()的编写过程是怎样的?

    型函数bsearch()的编写过程是怎样的?
    发表于 02-09 06:31

    利用RBF神经网络实现高斯型函数积分

    导出了在一定精度下高斯型函数积分近似表达式,利用径向基函数(RBF) 网络具有良好的逼近任意非线性映射的特点,提出了一种改进的RBF 网络方法以实现对高斯型函数积分。实验
    发表于 03-29 14:34 11次下载

    C语言入门教程-函数原型

    函数原型 现在,把程序中的所有函数声明函数原型已成为公认的良好编程风格。函数
    发表于 07-29 11:13 1461次阅读

    快速原型SIMULINK模型的代码自动生成

    快速原型仿真是实时仿真的一种,它处于产品研发的算法设计阶段与具体实现阶段之间,是产品研制过程中一个重要环节。本文介绍了在快速原型系统中如何利用MATLAB/SIMULINK的代码生成
    发表于 04-17 22:16 69次下载

    python偏函数和泛型函数详解

    python偏函数 假如一个函数定义了多个位置参数,那你每次调用时,都需要把这些个参数一个一个地传递进去。 比如下面这个函数,是用来计算 x的n次方 的。 def power
    的头像 发表于 03-03 16:43 1522次阅读

    simulink搭建的摩擦模型

    永磁同步电机simulink模型搭建 1、总搭建模型2、各搭建模块2.1永磁电机模块 一共六个输出,分别是转速,位置(角度),转矩,三相电流。 2.2AC-DC-AC模块2.3反馈显示
    发表于 03-14 09:33 0次下载
    <b class='flag-5'>simulink</b><b class='flag-5'>搭建</b>的摩擦模型