123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- /**
- ******************************************************************************
- * @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;
- }Battery_Info_t;
- extern Remain_Dis_t RemainDis;
- 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(uint16_t Voltage);
- #endif
|