1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- /**
- ******************************************************************************
- * @file remain_distance.c
- * @author Damon
- * @version V1.5
- * @date 20190105
- * @brief 电池剩余续航里程统计
- ******************************************************************************
- * @attention
- *本功能模块输出计算结果为,剩余续航里程RemainDis.remainDistance
- *
- ******************************************************************************
- */
-
- #ifndef __REMAIN_DISTANCE_H_
- #define __REMAIN_DISTANCE_H_
- #include "stm32f1xx_hal.h"
- #include "motor_control.h"
- //续航计算相关参数
- typedef struct
- {
- uint8_t start; //开始统计数据并计算
- int16_t I_motor; //电机母线电流
- uint16_t acc_period; //电量积分周期,单位ms
- uint32_t Q_add; //若干轮圈数的,电量累计值,单位mA * ms
- uint16_t wheelLength; //轮胎周长
- uint16_t wheel_Count; //轮圈计数
- uint16_t Power_per_km; //电机平均功耗,单位mA*h/km
- uint16_t Power_per_km_average; //电机平均功耗,多次的平均值,单位mA*h/km
- uint16_t Power_per_km_result; //计算续航的功耗值
- uint16_t remainDistance; //剩余续航里程
- uint8_t flag_saveInfo; //保存信息标志位
- uint8_t flag_helpModeChange; //档位切换标志
- TrueOrFalse_Flag_Struct_t IsBMS_ComOK_Flag; //电池通信正常标志
- uint32_t BMS_Com_DelayTimeCnt; //电池通信延时计算
- }Remain_Dis_t;
- //电池相关信息
- typedef struct
- {
- uint32_t Q_discharged; //电池已放电电量
- uint32_t Q_remain_record; //电池剩余电量,从电池电压换算
- uint32_t Q_remain_real; //电池实时剩余电量
- uint32_t Q_remain_real_last; //电池上一次剩余电量
- uint8_t SOC;
- TrueOrFalse_Flag_Struct_t BFlagCalSoc;//计算SOC
- uint16_t u16CurVoltage; //实时电压,0.01V
- uint32_t u32TotalBusVoltage; //母线电压累计和,0.01V
- uint32_t u32GetvalCnt; //统计计数
- uint16_t u16BusAverageVol[12]; //母线平均电压数组
- }Battery_Info_t;
- extern Remain_Dis_t RemainDis;
- extern Battery_Info_t Battery_Info;
- extern void RD_RemainDis_Init(uint16_t uwWheelLength, TrueOrFalse_Flag_Struct_t BMS_COM_OK, uint16_t BusVoltage, uint8_t DesignVol, uint16_t BMS_RC);
- extern void RD_CalculateRemainDis(uint32_t WheelTurnCnt, uint16_t RemainCap, uint8_t SOC, uint16_t BusCurrent) ;
- extern void RD_SaveAndUpdateInfo(MC_GearSt_Struct_t GearSt, MC_AssistRunMode_Struct_t MC_AssistRunMode);
- extern uint8_t Battery_SocCal(Battery_Info_t* p_Battery_Info, BatterCellInfo_Struct_t* p_CellInfo, uint8_t SOC_Old, uint8_t Vol_Design);
- #endif
|