remain_distance.h 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  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. TrueOrFalse_Flag_Struct_t BFlagCalSoc;//计算SOC
  45. uint16_t u16CurVoltage; //实时电压,0.01V
  46. uint32_t u32TotalBusVoltage; //母线电压累计和,0.01V
  47. uint32_t u32GetvalCnt; //统计计数
  48. uint16_t u16BusAverageVol[12]; //母线平均电压数组
  49. }Battery_Info_t;
  50. extern Remain_Dis_t RemainDis;
  51. extern Battery_Info_t Battery_Info;
  52. 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);
  53. extern void RD_CalculateRemainDis(uint32_t WheelTurnCnt, uint16_t RemainCap, uint8_t SOC, uint16_t BusCurrent) ;
  54. extern void RD_SaveAndUpdateInfo(MC_GearSt_Struct_t GearSt, MC_AssistRunMode_Struct_t MC_AssistRunMode);
  55. extern uint8_t Battery_SocCal(Battery_Info_t* p_Battery_Info, uint8_t SOC_Old, uint8_t Vol_Design);
  56. #endif