Skip to content

Releases: DonotFreeze/RM-SuperCapCtrlLib

[v1.2.2612-beta] - 2026 - 03 - 20

Pre-release

Choose a tag to compare

@DonotFreeze DonotFreeze released this 22 Mar 13:27

beta后缀的版本仅通过了仪器测试,而未进行车载测试的版本,若涉及到运行逻辑的更新而引起的问题,希望能够及时在issues中反馈。


已知问题

  • Automatic_Power_Compensation_Loop()中的功率/电流/电压竞争切换没有过渡行为,存在边界震荡

新增

  • 添加电容放电过流保护,时间为500MS,阈值电流为35A。
  • 在软起动的时候粗略判断电容电流与电池电流的关系,若存在异常则直接进入BOOM保护

变更

  • 过流保护恢复的判断阈值使用宏定义
  • 跑马灯使用软起动作为判断标志位

[v1.2.2606-beta] - 2026-02-08

Pre-release

Choose a tag to compare

@DonotFreeze DonotFreeze released this 10 Feb 12:17

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

Pre-release

Choose a tag to compare

@DonotFreeze DonotFreeze released this 10 Feb 12:01

beta后缀的版本仅通过了仪器测试,而未进行车载测试的版本,若涉及到运行逻辑的更新而引起的问题,希望能够及时在issues中反馈。


新增

  • 串口回传添加STM32系统时钟,作为运行时间戳,单位ms。
  • 电容组低电压的时候,添加对【电源管理模块Chassis】功率的监控,若其超功率则提前进入欠压保护。

变更

  • CAN离线的时候,SuperCapState回传状态“10”。
  • 上电的时候,若电压超过10V,则可以直接使用。

修复

  • 修复电池电压没有回传到CAN总线上的问题。

[v1.2.2519] - 2025-5-6

Choose a tag to compare

@DonotFreeze DonotFreeze released this 10 Feb 11:42

此版本用于2025赛季南部区域赛中

在此后版本的代码中,由于作者已经毕业,无法再进行车载测试。


新增

  • 新增DISABLE的LED状态。

修复

  • 上电的时候初始化太久可能会卡看门狗一直复位。(需使用1.0.2519版本之后的CubeMX工程)。

变更

  • 将编译器优化从ofast改为og,运行效率几乎没影响,避免优化过猛导致程序跑飞。

[v1.2.2518] - 2025-5-1

Choose a tag to compare

@DonotFreeze DonotFreeze released this 10 Feb 11:27

新特性

  • 将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

Choose a tag to compare

@DonotFreeze DonotFreeze released this 10 Feb 09:59

这将会是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

Choose a tag to compare

@DonotFreeze DonotFreeze released this 10 Feb 09:55

此版本为2025赛季高校联盟赛广西站所使用的代码。


已知的问题

  • 在放电的时候被杀死,有可能会出现PMOS无法关断的现象,建议电控发送DISABLE来解决。
  • 进入CAP_Undervoltage_Protection_Loop的时候,可能会出现无法充电的现象,可以通过小幅度移动,让底盘流经一定的电流来解决。

变更

  • code-workspace中的"EIDE.SourceTree.AutoSearchIncludePath"与"EIDE.SourceTree.AutoSearchObjFile"的值改为了true,确保编译器能自动搜索头文件。

[v1.1.2504] - 2025-1-26

Choose a tag to compare

@DonotFreeze DonotFreeze released this 10 Feb 09:51

新增

  • 给电控回传的数据添加了一个补偿常

变更

  • 将CAN离线环路的优先级提到最高。
  • 放电防过充保护的阈值跟随SOFTWARE_OVP_VCAP进行设定。

修复

  • 修复回传给电控的功率数值没有使用平均值滤波的数据的错误。

[v1.1.2452] - 2024-12-29

Choose a tag to compare

@DonotFreeze DonotFreeze released this 10 Feb 09:46

优化

  • 优化对96位UID的判断逻辑,当没有对应的96位UID的时候将进入死循环,LED灯全灭。

变更

  • 将充电的时候关闭MOS的电流单独成“涓流电流”来判断PMOS是否需要关闭

[v1.1.2451] - 2024-12-19

Choose a tag to compare

@DonotFreeze DonotFreeze released this 10 Feb 09:36

修复

  • 修复了底盘真实功率没有传到CAN中的错误
  • 修复了断电的时候超电可能无法断电的错误

变更

  • 充满电的时候直接将PMOS关闭,直到放电的时候才会打开