分享
超级电容控制软件部分设计
输入“/”快速插入内容
超级电容控制软件部分设计
用户4812
用户4812
3月28日修改
参考声明
本套超级电容控制软件部分设计参考了
RMCS alliance_auto_aim
的架构设计(
非常优雅的设计
)
文档中电管端=电池端,之所以说电管端是因为所有从电池出来的电都需要过电管
https://github.com/Alliance-Algorithm/alliance_auto_aim.git
11月4日回调声明:
由于兼容性问题,C++对于hal库的底层操作支持不好,
软件部分设计依旧延续C++的类的描述,但是
实际采用类似于C++的类的形式编写C代码的组件
组件
算法库
Algorithm libs
math_tool
PID_controller.c/h
算法库包括PID控制器,
窗口滤波器
,ADC校准器(可能)
方法需求:
代码块
Plain Text
初始化
重置
接口需求:
代码块
Plain Text
PID控制器:
Kp,Ki,Kd,
积分上限OUTPUT_MAX,
积分下限OUTPUT_MIN,
PID控制器开关(用于开环/闭环)switch
代码块
Plain Text
窗口滤波器:
WINDOW_SIZES,
窗口滤波器开关switch
这里的积分上限,下限,窗口大小,需要根据实际调试进行设置,故留出接口
note:窗口滤波器和adc完全解耦,窗口滤波只负责滤波,输入数据完全进行滚动滤波,adc的DMA中断不断获取值进行输入,经过窗口滤波器进行输出,更新数据采样类的值,PID控制器获取数据采样类的值进行调控
ADC_Calibration.h/c
负责ADC校准和控制板UID,校准参数匹配
数据采样模块 Data_collect.h/c
数据采样包括:底盘端电压采样,电流采样;电容端电压采样,电流采样
方法需求:
代码块
Plain Text
数据初始化
数据重置
数据滤波计算
接口需求:
代码块
Plain Text
V_CHASSIS,I_CHASSIS,P_CHASSIS--底盘电压,底盘电流,底盘功率
I_CHASSIS,I_CHASSIS,P_CHASSIS--电容组电压,电容组电流,电容组功率
数据采样开关switch
MOS驱动模块MOS_driver.h/c
mos驱动包括:设定占空比
方法需求:
代码块
Plain Text
初始化
输出占空比
关闭占空比
重置占空比