Releases: DonotFreeze/RM-SuperCapCtrlLib
Releases · DonotFreeze/RM-SuperCapCtrlLib
Release list
[v1.2.2612-beta] - 2026 - 03 - 20
beta后缀的版本仅通过了仪器测试,而未进行车载测试的版本,若涉及到运行逻辑的更新而引起的问题,希望能够及时在issues中反馈。
已知问题
- Automatic_Power_Compensation_Loop()中的功率/电流/电压竞争切换没有过渡行为,存在边界震荡
新增
- 添加电容放电过流保护,时间为500MS,阈值电流为35A。
- 在软起动的时候粗略判断电容电流与电池电流的关系,若存在异常则直接进入BOOM保护
变更
- 过流保护恢复的判断阈值使用宏定义
- 跑马灯使用软起动作为判断标志位
[v1.2.2606-beta] - 2026-02-08
beta后缀的版本仅通过了仪器测试,而未进行车载测试的版本,若涉及到运行逻辑的更新而引起的问题,希望能够及时在issues中反馈。
弱弱补一句:SuperCapCtrl.c里面写的版本号以及tag的[1.2.2608-beta]是错误的版本号,实际应该是这个版本。
已知问题
- Automatic_Power_Compensation_Loop()中的功率/电流/电压竞争切换没有过渡行为,存在边界震荡
新增
- 完全适配Lite硬件。
- 添加Lite板对应的PI参数
- 新增DEBUG模式,无视CAN消息进行运行。
变更
- 把Protection_Init()函数和ADC_Curve_Fitting()函数放到Power_Loop_Parameter_Init()函数中进行初始化
- 添加PID_v1.h包含(以前是在main.c里添加的)
- 所有变量使用static进行修饰,避免include时变量重复定义。
- 将BOOM检测改为使用Anomaly_Detection()函数进行判断,统一风格。
- 所有文件改为UTF-8编码格式。
- 删除没有用到的变量。
- 修改部分灯语
修复
- 修复保险丝熔断保护与欠压保护状态指示灯冲突的问题。
- 修复在Automatic_Power_Compensation_Loop()函数中充电时无法正确限流的问题。
[v1.2.2529-beta] - 2025-7-19
beta后缀的版本仅通过了仪器测试,而未进行车载测试的版本,若涉及到运行逻辑的更新而引起的问题,希望能够及时在issues中反馈。
新增
- 串口回传添加STM32系统时钟,作为运行时间戳,单位ms。
- 电容组低电压的时候,添加对【电源管理模块Chassis】功率的监控,若其超功率则提前进入欠压保护。
变更
- CAN离线的时候,SuperCapState回传状态“10”。
- 上电的时候,若电压超过10V,则可以直接使用。
修复
- 修复电池电压没有回传到CAN总线上的问题。
[v1.2.2519] - 2025-5-6
此版本用于2025赛季南部区域赛中
在此后版本的代码中,由于作者已经毕业,无法再进行车载测试。
新增
- 新增DISABLE的LED状态。
修复
- 上电的时候初始化太久可能会卡看门狗一直复位。(需使用1.0.2519版本之后的CubeMX工程)。
变更
- 将编译器优化从ofast改为og,运行效率几乎没影响,避免优化过猛导致程序跑飞。
[v1.2.2518] - 2025-5-1
新特性
- 将V1.1中的Discharge()函数与Charge()函数合并为一个新的Automatic_Power_Compensation_Loop()函数,运行逻辑有所改变。
- 新增了对超级电容控制板Plus硬件的支持,并且保留对Lite的兼容(此版本还未完全兼容)。
新增
- 新增Free_Loop,丢到main的while(1)里运行,不需要实时性。
- Plus新增BOOM爆炸检测。
- Plus新增UART日志输出,使用VOFA+的JustFloat格式,115200波特率
变更
- 充放电改成Automatic_Power_Compensation_Loop函数,超功率自动补偿,低功率自动充电。
- 保护检测改成Anomaly_Detection函数,提高可读性。
- Plus改成注入通道进行电压电流采样。
- Plus改成PWM2模式,占空比使用下管主导,故PID控制反向。
- Plus修改灯语。
[v1.1.2517] - 2025-04-27
这将会是V1.1的最后一个版本,V1.1库仅支持超级电容控制板Lite硬件
新增
- 新增控制PWM与PMOS开关时序的函数,对PWM与PMOS进行先后开关的延迟,避免爆炸。
- 新增打嗝充电功能,避免在不动的时候,误关PMOS,导致充不进电。
- 限制接受数据的刷新频率,避免输入数据频繁跳变引起不必要的问题。
变更
- 改变Power_Loop中各种环路的执行优先级,保护环路优先于运行环路。
- 所有保护环路进去之后,需要满足条件,且收到充电的指令才会退出保护。
- 删除超级电容过充保护,因为他进去(虽然可能不会进去)啥都不干,会爆炸。
- 软起动退出阈值改为5V,退出后将进入欠压充电环路。
- 半桥和PMOS的关断逻辑改变
修复
- 偶尔无法充电的情况。
- PMOS偶尔关不掉的情况(不确定是不是100%修复,但是目前还没复现,如果无法关断,请发DISABLE)。
- PowerLimit拼写错误。
- SOFTSTART_PROTECT拼写错误。
- 进入CAN离线环路后,CAN发送消息不会刷新,可能导致退不出来。
[v1.1.2508] - 2025-03-02
此版本为2025赛季高校联盟赛广西站所使用的代码。
已知的问题
- 在放电的时候被杀死,有可能会出现PMOS无法关断的现象,建议电控发送DISABLE来解决。
- 进入CAP_Undervoltage_Protection_Loop的时候,可能会出现无法充电的现象,可以通过小幅度移动,让底盘流经一定的电流来解决。
变更
- code-workspace中的"EIDE.SourceTree.AutoSearchIncludePath"与"EIDE.SourceTree.AutoSearchObjFile"的值改为了true,确保编译器能自动搜索头文件。
[v1.1.2504] - 2025-1-26
新增
- 给电控回传的数据添加了一个补偿常
变更
- 将CAN离线环路的优先级提到最高。
- 放电防过充保护的阈值跟随SOFTWARE_OVP_VCAP进行设定。
修复
- 修复回传给电控的功率数值没有使用平均值滤波的数据的错误。
[v1.1.2452] - 2024-12-29
优化
- 优化对96位UID的判断逻辑,当没有对应的96位UID的时候将进入死循环,LED灯全灭。
变更
- 将充电的时候关闭MOS的电流单独成“涓流电流”来判断PMOS是否需要关闭
[v1.1.2451] - 2024-12-19
修复
- 修复了底盘真实功率没有传到CAN中的错误
- 修复了断电的时候超电可能无法断电的错误
变更
- 充满电的时候直接将PMOS关闭,直到放电的时候才会打开