模型电池管理与自定义代码
这个例子展示了如何使用自定义的C代码和Stateflow®模型系统管理电池百分比,也被称为电荷状态(SOC)。
Stateflow您可以将您的自定义C代码集成到图表。使用自定义Stateflow图允许您的C代码:
重用现有的你已经编码的算法。
使用C代码的底层硬件操作,这与Stateflow可能很难实现。
电池管理
这个模型代表了几个组件的电池管理系统。这个系统是为了实现对控制器的电池供电的设备,如电池动力汽车或手机。电池管理系统的目的是限制电池的电力需求,并确保SOC不得到过高或过低。一个SOC过高或过低会对电池的健康有害。此外,该模型旨在限制充电时电池的放电的电池寿命低性能的权衡。
电池管理模式实现这些目标与三个不同的图表。
图表与故障检测传感器读数
读取传感器值从电池组和报告时,传感器处于断裂状态。图表电池状态估计
使用传感器读取来估计电池的SOC。图表电池功率极限控制
节约电池,电池保护健康,和保持SOC远离极端。图表完成这些任务控制器通过设置权限。
使用此模型可以生成代码并将代码部署到嵌入式控制器以及其他控制代码,您的系统可能需要。
模拟通信与硬件
图表与故障检测传感器读数
由三个平行的状态(VoltageSensor
,CurrentSensor
,TemperatureSensor
)模型的读数电池电压,电流,温度传感器。三个平行状态之间的选择包含相似的决策逻辑模拟和代码生成的行为。例如,当参数CODEGEN_FLAG
是假
,VoltageSensor
包含这个逻辑模拟电压读数。
使用模型模拟时,仪表盘面板允许您控制系统的传感器读数输入。如果调用电池监控超时、错误代码-9999年
是返回的函数。
在每个平行状态,亚态SensorFaultDetection
处理返回的错误信号传感器。在发生传感器错误,SensorFaultDetection
拥有最后已知的有效传感器读,直到错误代码已经收到了一定的时间。该阈值后,SensorFaultDetection
发送一个错误消息并假设它将由其他控制控制器的组件来处理。
例子包括两个自定义C代码文件:batteryMonitorDriver.h
和batteryMonitorDriver.c
。这些文件代表了设备驱动程序的代码将用于从系统获得传感器数据,包括电池电压、电流、温度和用于代码生成。有关更多信息,请参见代码生成。
模拟的模型驱动程序代码:
打开配置参数对话框。
在模拟目标窗格中,指定头文件和源文件。
下先进的参数中,选择导入自定义代码。
有关更多信息,请参见为您的模型配置自定义代码。
估计电池电荷状态通过重用定制代码
模型来估计电池电荷状态,利用自定义的C代码的算法。包括文件estimateSOC.c
包含这个代码:
用这个算法,您可以很容易地调用C代码的函数,而不是重新实现它与Stateflow图表。
为了考虑噪声和电流的变化的敏感性estimateSOC
算法,Stateflow逻辑是用来实现消除抖动算法。这个逻辑简化了SOC百分比为5的范围:马克斯
,高
,正常的
,低
,最小值
。这些范围预防快速波动不同控制状态。退出状态从孩子的转换去父母的边缘状态。当这些转换,Stateflow返回默认的父状态的过渡。
逻辑控制设备状态
更容易设计这个与Stateflow控制逻辑图,而不是通过自定义代码实现逻辑控制。这张图实现权力限制电池根据估计电池状态。
图代表了五种可能的模式对权力限制电池。
性能模式:允许高功率电池充电时高。
电池保护模式:限制电力利用效率的电池充电时低。
:不允许画当电池处于国家权力的限制。
快速充电,快速充电电池充电时低。
慢慢地缓慢充电:充电电池充电时电池健康效益高。
模拟使用仪表盘面板
测试模型的表现正如预期的那样,您可以使用仪表盘模拟电压、电流和温度读数。开关允许您模拟传感器误差测试故障检测逻辑。计和情节仪表板块stateflow绑定到活动图来可视化内部状态和数据。你可以移动和最小化仪表盘面板而导航模型。仪表板模块的更多信息,请参阅控制模拟交互显示(金宝app模型)。
代码生成
输入图表与故障检测传感器读数
提供两个C代码文件:batteryMonitorDriver.h
和batteryMonitorDriver.c
。这两个文件代表了设备驱动程序的代码将用于从系统获得传感器数据,包括电池电压、电流和温度。
使用这个代码生成模型,驱动程序代码必须与外部硬件进行通信。为了启用这个功能,过渡使用控制变量的一个变体CODEGEN_FLAG
允许Stateflow表直接调用C代码生成代码和模拟传感器值时的噪音。在模型浏览器中,打开基本工作空间和设置的值CODEGEN_FLAG
来真正的
。在Stateflow变异和变异转换的更多信息,参见控制指标灯调光器使用变异条件。
与驱动程序代码编译生成的代码,打开配置参数对话框,,代码生成>自定义代码窗格中,指定头文件和源文件。有关更多信息,请参见为您的模型配置自定义代码。
引用
[1]阿,P。,B. Haran, R. E. White, and B. N. Popov. “Mathematical modeling of the capacity fade of Li-ion cells.”能源杂志。123(2003),页230 - 240。
[2]Ning, G。,B. Haran, and B. N. Popov. “Capacity fade study of lithium-ion batteries cycled at high discharge rates.”能源杂志。117(2003),页160 - 169。
相关的话题
- 重用定制代码Stateflow图表
- 控制指标灯调光器使用变异条件
- 使用仿真软件编码器生成代码金宝app(金宝app仿真软件编码器)
- 代码生成与嵌入式工作流编码器(嵌入式编码)
- 调整和试验块参数值(金宝app模型)