remain_distance.h 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. /**
  2. ******************************************************************************
  3. * @file remain_distance.c
  4. * @author Damon
  5. * @version V1.5
  6. * @date 20190105
  7. * @brief 电池剩余续航里程统计
  8. ******************************************************************************
  9. * @attention
  10. *本功能模块输出计算结果为,剩余续航里程RemainDis.remainDistance
  11. *
  12. ******************************************************************************
  13. */
  14. #ifndef __REMAIN_DISTANCE_H_
  15. #define __REMAIN_DISTANCE_H_
  16. #include "stm32f1xx_hal.h"
  17. #include "motor_control.h"
  18. //续航计算相关参数
  19. typedef struct
  20. {
  21. uint8_t start; //开始统计数据并计算
  22. int16_t I_motor; //电机母线电流
  23. uint16_t acc_period; //电量积分周期,单位ms
  24. uint32_t Q_add; //若干轮圈数的,电量累计值,单位mA * ms
  25. uint16_t wheelLength; //轮胎周长
  26. uint16_t wheel_Count; //轮圈计数
  27. uint16_t Power_per_km; //电机平均功耗,单位mA*h/km
  28. uint16_t Power_per_km_average; //电机平均功耗,多次的平均值,单位mA*h/km
  29. uint16_t Power_per_km_result; //计算续航的功耗值
  30. uint16_t remainDistance; //剩余续航里程
  31. uint8_t flag_saveInfo; //保存信息标志位
  32. uint8_t flag_helpModeChange; //档位切换标志
  33. TrueOrFalse_Flag_Struct_t IsBMS_ComOK_Flag; //电池通信正常标志
  34. uint32_t BMS_Com_DelayTimeCnt; //电池通信延时计算
  35. }Remain_Dis_t;
  36. //电池相关信息
  37. typedef struct
  38. {
  39. uint32_t Q_discharged; //电池已放电电量
  40. uint32_t Q_remain_record; //电池剩余电量,从电池电压换算
  41. uint32_t Q_remain_real; //电池实时剩余电量
  42. uint32_t Q_remain_real_last; //电池上一次剩余电量
  43. uint8_t SOC;
  44. }Battery_Info_t;
  45. extern Remain_Dis_t RemainDis;
  46. 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);
  47. extern void RD_CalculateRemainDis(uint32_t WheelTurnCnt, uint16_t RemainCap, uint8_t SOC, uint16_t BusCurrent) ;
  48. extern void RD_SaveAndUpdateInfo(MC_GearSt_Struct_t GearSt, MC_AssistRunMode_Struct_t MC_AssistRunMode);
  49. extern uint8_t Battery_SocCal(uint16_t Voltage);
  50. #endif