CodePara.c 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267
  1. /**
  2. * @file CodePara.c
  3. * @author Wang, Zhiyu(wangzy49@midea.com)
  4. * @brief Para of Code
  5. * @version 0.1
  6. * @date 2021-09-29
  7. *
  8. * @copyright Copyright (c) 2021
  9. *
  10. */
  11. /************************************************************************
  12. Beginning of File, do not put anything above here except notes
  13. Compiler Directives:
  14. *************************************************************************/
  15. #include "user.h"
  16. #include "syspar.h"
  17. /******************************
  18. *
  19. * Parameter
  20. *
  21. ******************************/
  22. CP_MOTOR_PARA cp_stMotorPara = CP_MOTOR_PARA_DEFAULT;
  23. CP_CONTROL_PARA cp_stControlPara = CP_CONTROL_PARA_DEFAULT;
  24. CP_HISTORY_PARA cp_stHistoryPara = CP_HISTORY_PARA_DEFAULT;
  25. CP_BIKERUNINFO_PARA cp_stBikeRunInfoPara;
  26. ULONG cp_ulSystickCnt = 0;
  27. CP_FLG cp_stFlg = CP_FLG_DEFAULT;
  28. /***************************************************************
  29. Function: CodeParaInit;
  30. Description: CodePara Init
  31. Call by: functions in main loop;
  32. Input Variables: N/A
  33. Output/Return Variables: N/A
  34. Subroutine Call: N/A;
  35. Reference: N/A
  36. ****************************************************************/
  37. void CodeParaInit(void)
  38. {
  39. UWORD i;
  40. #if ((MOTOR_ID_SEL == MOTOR_WELLING_CITY_36V) || (MOTOR_ID_SEL == MOTOR_WELLING_CITY_48V))
  41. {
  42. cp_stFlg.RunModelSelect = CityBIKE;//CityBIKE;//ClZLOOP; //
  43. cp_stFlg.RotateDirectionSelect = BackwardRotate;
  44. }
  45. #elif ((MOTOR_ID_SEL == MOTOR_WELLING_MTB_36V) || (MOTOR_ID_SEL == MOTOR_WELLING_MTB_48V))
  46. {
  47. cp_stFlg.RunModelSelect = MountainBIKE;//MountainBIKE;//ClZLOOP; //
  48. cp_stFlg.RotateDirectionSelect = ForwardRotate;
  49. }
  50. #endif
  51. cp_stFlg.ThetaGetModelSelect = ANG_RESOLVER; //ANG_RESOLVER;//ANG_OBSERVER;//ANG_RESOLVER;
  52. cp_stFlg.CurrentSampleModelSelect = COMBINATION;
  53. cp_stFlg.RunPermitFlg = TRUE;
  54. cp_stFlg.ParaUseEEFlg = TRUE; //FALSE; //TRUE;
  55. #ifdef RUN_ARCH_SIM
  56. cp_stFlg.ParaUseEEFlg = FALSE; //FALSE, TRUE;
  57. #endif
  58. cp_stFlg.ParaUseEEFinishFlg = FALSE;
  59. cp_stFlg.ParaSaveEEFlg = FALSE;
  60. cp_stFlg.ParaSaveEEFinishFlg = FALSE;
  61. cp_stFlg.ParaHistorySaveEEFinishFlg = FALSE;
  62. cp_stFlg.ParaUpdateFlg = FALSE;
  63. cp_stFlg.ParaMInfoUpdateFlg = FALSE;
  64. cp_stFlg.ParaBikeInfoUpdateFlg = FALSE;
  65. cp_stFlg.ParaMCInfoUpdateFlg = FALSE;
  66. cp_stFlg.ParaSensorInfoUpdateFlg = FALSE;
  67. cp_stFlg.ParaAInfoUpdateFlg = FALSE;
  68. cp_stFlg.TestParaInfoUpdateFlg = FALSE;
  69. cp_stFlg.ParaMotorDriveUpdateFinishFlg = FALSE;
  70. cp_stFlg.ParaAssistUpdateFinishFlg = FALSE;
  71. ////////////////////////////////////////////////////////////////////////////////
  72. cp_stMotorPara.swMotrPolePairs = M_POLE_PAIRS;
  73. cp_stMotorPara.swRsOhm = M_RS_OHM;
  74. cp_stMotorPara.swLdmH = M_LD_NOLOAD_MH;
  75. cp_stMotorPara.swLqmH = M_LQ_NOLOAD_MH;
  76. cp_stMotorPara.swJD = M_JD;
  77. cp_stMotorPara.swFluxWb = M_FLUX_WB;
  78. cp_stMotorPara.swIdMaxA = M_ID_MAX_AP;
  79. cp_stMotorPara.swIdMinA = M_ID_MIN_AP;
  80. cp_stMotorPara.swIpeakMaxA = M_IS_PEAK_MAX_AP;
  81. cp_stMotorPara.swRSpeedRpm = M_R_SPD_RPM;
  82. cp_stMotorPara.swRPwrWt = M_R_PWR_WT;
  83. cp_stMotorPara.swRIarmsA = M_R_IRMS_A;
  84. cp_stMotorPara.swRUdcV = M_R_UDC_v;
  85. cp_stMotorPara.swTorMax = M_MAX_TOR_NM;
  86. //////////////////////////////////////////////////////////////////////////////
  87. cp_stControlPara.swIPMTurnOnNs = IPM_TURN_ON_TM_NS;
  88. cp_stControlPara.swIPMTurnOffNs = IPM_TURN_OFF_TM_NS;
  89. cp_stControlPara.swIPMDeadTimeNs = IPM_DEAD_TM_NS;
  90. cp_stControlPara.swIPMHvicChrgMs = TBC_MS2CT(IPM_HVIC_CHRG_TM);
  91. cp_stControlPara.swAlmOverCurrentVal = ALM_OVR_CNT_VAL;
  92. cp_stControlPara.swAlmOverCurrentTM = ALM_OVR_CNT_TM;
  93. cp_stControlPara.swAlmPhsLossVal = ALM_PHS_LOSS_VAL;
  94. cp_stControlPara.swAlmPhsLossTM = ALM_PHS_LOSS_TM;
  95. cp_stControlPara.swAlmAdcDetectHighVal = ALM_ADC_DETE_HIG_VAL;
  96. cp_stControlPara.swAlmAdcDetectLowVal = ALM_ADC_DETE_LOW_VAL;
  97. cp_stControlPara.swAlmRotorLockK = ALM_ROTOR_LOCK_SPD_K;
  98. cp_stControlPara.swAlmRotorLockTM = ALM_ROTOR_LOCK_TM;
  99. cp_stControlPara.swAlmRotorLockCurVal = ALM_ROTOR_LOCK_IQ_ABS;
  100. cp_stControlPara.swAlmRotorLockSpdVal = ALM_ROTOR_LOCK_SPD;
  101. cp_stControlPara.swAlmOverVolVal1 = ALM_OVR_VLT_LVL1_VAL;
  102. cp_stControlPara.swAlmOverVolTM1 = ALM_OVR_VLT_LVL1_TM;
  103. cp_stControlPara.swAlmOverVolVal2 = ALM_OVR_VLT_LVL2_VAL;
  104. cp_stControlPara.swAlmOverVolTM2 = ALM_OVR_VLT_LVL2_TM;
  105. cp_stControlPara.swAlmOverVolVal3 = ALM_OVR_VLT_LVL3_VAL;
  106. cp_stControlPara.swAlmOverVolTM3 = ALM_OVR_VLT_LVL3_TM;
  107. cp_stControlPara.swAlmUnderVolVal1 = ALM_UNDR_VLT_LVL1_VAL;
  108. cp_stControlPara.swAlmUnderVolTM1 = ALM_UNDR_VLT_LVL1_TM;
  109. cp_stControlPara.swAlmUnderVolVal2 = ALM_UNDR_VLT_LVL2_VAL;
  110. cp_stControlPara.swAlmUnderVolTM2 = ALM_UNDR_VLT_LVL2_TM;
  111. cp_stControlPara.swAlmOverSpdVal = ALM_OVR_SPD_VAL;
  112. cp_stControlPara.swAlmOverSpdTM = ALM_OVR_SPD_TM;
  113. cp_stControlPara.swAlmOverHeatCeVal = ALM_IPM_OVR_HEAT_VAL;
  114. cp_stControlPara.swAlmOverHeatTM = ALM_IPM_OVR_TM;
  115. cp_stControlPara.swAlmPwrLimitStartTempVal = PWRLIM_START_THRESHOLD_TEMP;
  116. cp_stControlPara.swAlmThrPhsShrtFrcTM = ALM_THR_PHS_SHRT_FRC_TM;
  117. cp_stControlPara.swAlmPWMOffTM = ALM_PWM_OFF_TM;
  118. cp_stControlPara.swAlmPWMOffShrtsw1TM = ALM_PWMOFF_SHRT1_SW_TM;
  119. cp_stControlPara.swAlmThrPhsShrtNormTM = ALM_THR_PHS_SHRT_NORM_TM;
  120. cp_stControlPara.swAlmShrtPWMOffswTM = ALM_SHRT_PWMOFF_SW_TM;
  121. cp_stControlPara.swAlmIPMOverCurStopTM = ALM_STOP_IPM_OVER_CUR_TM;
  122. cp_stControlPara.swAlmRecAllTM = ALM_REC_ALL_TM;
  123. cp_stControlPara.swAlmRecOCTM = ALM_IPM_OC_REC_TM;
  124. cp_stControlPara.swAlmRecOVVal = ALM_OVR_VLT_REC_VAL;
  125. cp_stControlPara.swAlmRecOVTM = ALM_OVR_VLT_REC_TM;
  126. cp_stControlPara.swAlmRecOVTM1 = ALM_OVR_VLT_REC_TM1;
  127. cp_stControlPara.swAlmRecUVVal = ALM_UNDR_VLT_REC_VAL;
  128. cp_stControlPara.swAlmRecUVTM = ALM_UNDR_VLT_REC_TM;
  129. cp_stControlPara.swAlmRecUVTM1 = ALM_UNDR_VLT_REC_TM1;
  130. cp_stControlPara.swAlmRecOHeatVal = ALM_IPM_OVR_HEAT_REC_VAL;
  131. cp_stControlPara.swAlmRecOHeatTM = ALM_IPM_OVR_REC_TM;
  132. cp_stControlPara.swAlmRecOHeatTM1 = ALM_IPM_OVR_REC_TM1;
  133. cp_stControlPara.swStartMode = START_MODE;
  134. cp_stControlPara.swInitPosMode = INITPOS_MODE;
  135. cp_stControlPara.swAlignCurAp = ALIGN_CUR_AP;
  136. cp_stControlPara.swAlignRampTMms = ALIGN_RAMP_TM_MS;
  137. cp_stControlPara.swAlignHoldTMms = ALIGN_HOLD_TM_MS;
  138. cp_stControlPara.swAlignAngInitDeg = ALIGN_ANG_INIT;
  139. cp_stControlPara.swDragCurAp = DRAG_CUR_AP;
  140. cp_stControlPara.swDragVolAp = DRAG_VOL_AP;
  141. cp_stControlPara.swDragSpdHz = DRAG_SPD_HZ;
  142. cp_stControlPara.swDragSpdRampTMms = DRAG_SPD_RAMP_TM_MS;
  143. cp_stControlPara.swOpen2ClzRampTMms = OPEN2CLZ_CUR_RAMP_TM_MS;
  144. cp_stControlPara.swStopSpdRefRpm = STOP_SPD_REF_RPM;
  145. cp_stControlPara.swObsSpdPLLM = OBS_SPD_PLL_M;
  146. cp_stControlPara.swObsSpdPLLBandWidthHz = OBS_SPD_PLL_BANDWIDTH_HZ;
  147. cp_stControlPara.swObsFluxPIDampratio = OBS_FLUX_PI_DAMPRATIO;
  148. cp_stControlPara.swObsFluxPICrossfreHz = OBS_FLUX_PI_CROSSFREQ_HZ;
  149. cp_stControlPara.swAcrPIBandwidth = ACR_PI_BANDWIDTH_FLX;
  150. cp_stControlPara.swAcrCurFbLpfFre = ACR_CUR_FLX_FBK_LPF_FRQ;
  151. cp_stControlPara.uwAcrCurOutLim = ACR_CUR_OUT_LIM;
  152. cp_stControlPara.uwAcrUdcpOutLim = ACR_UDCP_OUT_LIM;
  153. cp_stControlPara.swAcrRaCoef = ACR_RA_COEF;
  154. cp_stControlPara.swAsrPIBandwidth = ASR_PI_BANDWIDTH;
  155. cp_stControlPara.swAsrPIM = ASR_PI_M;
  156. cp_stControlPara.swAsrSpdFbLPFFre = ASR_SPD_FBK_LPF_FRQ;
  157. cp_stControlPara.swAsrSpdInerRate = ASR_SPD_INER_RATE;
  158. cp_stControlPara.swSpeedAccRate = 500;
  159. cp_stControlPara.swSpeedDccRate = 100;
  160. cp_stControlPara.swPWMMaxDuty = PWM_MAX_DUTY_CYLE_IPM;
  161. cp_stControlPara.swPWM7to5Duty = PWM_7SVM_TO_5SVM_DUTY_IPM;
  162. cp_stControlPara.swPWMMinSampleDuty1 = PWM_MIN_SAMPLE_DUTY1_IPM;
  163. cp_stControlPara.swPWMMinSampleDuty2 = PWM_MIN_SAMPLE_DUTY2_IPM;
  164. cp_stControlPara.swPWMMinSampleDuty3 = PWM_MIN_SAMPLE_DUTY3_IPM;
  165. cp_stControlPara.swPWMSampleToSteady = PWM_SAMPLE_TOSTEADY_IPM;
  166. cp_stControlPara.swPWMSampleSigR = PWM_SAMPLE_SINGELRESIS_IPM;
  167. cp_stControlPara.swPWM1STSampleCnt = PWM_1ST_SAMPLE_CTS_IPM;
  168. cp_stControlPara.swPWM2NDSampleCnt = PWM_2ND_SAMPLE_CTS_IPM;
  169. cp_stControlPara.swPWMMinEffVectorCnt = PWM_MIN_EFF_VECTOR_CTS_IPM;
  170. cp_stControlPara.swPWMMinEffVectorPu = PWM_MIN_EFF_VECTOR_PU_IPM;
  171. cp_stControlPara.swPWMOverMdlMode = PWM_OVR_MDL_SEL;
  172. cp_stControlPara.swFwVdcMinCalTMms = FW_VDC_MIN_CALC_TM;
  173. cp_stControlPara.swFwVdcLPFFre = FW_VDC_LPF_FRQ;
  174. cp_stControlPara.swFwPWMMaxDuty = FW_PWM_MAX_DUTY_CYLE_IPM;
  175. cp_stControlPara.swFwIdPIOutMin = FW_ID_PI_OUT_MIN;
  176. cp_stControlPara.swFwIdMinLimRatio = FW_ID_MIN_LIM_RATIO;
  177. cp_stControlPara.swFwIdKpPu = FW_ID_KP_PU;
  178. cp_stControlPara.swFwIdKiPu = FW_ID_KI_PU;
  179. cp_stControlPara.swFwCharCurCrossFre = FW_CHAR_CUR_CROSS_FREQ;
  180. cp_stControlPara.swFwCharCurDampRatio = FW_CHAR_CUR_DAMP_RATIO;
  181. cp_stControlPara.swCvbConstantVolBrakeV = CVB_CONSTANT_VOL_BRAKE_V;
  182. cp_stControlPara.swCvbConstantSpdLowRpm = CVB_CONSTANT_SPD_LOW_RPM;
  183. cp_stControlPara.swPwrLimitValWt = PWRLIM_VAL;
  184. cp_stControlPara.swPwrLimitErrWt = PWRLIM_ERR;
  185. cp_stControlPara.swPwrLimitLPFFre = PWRLIM_LPF_FRQ;
  186. cp_stControlPara.swPwrLimitKpPu = PWR_IQ_LIMIT_KP_PU;
  187. cp_stControlPara.swPwrLimitKiPu = PWR_IQ_LIMIT_KI_PU;
  188. cp_stControlPara.swDbcK = DBC_K_COEF;
  189. cp_stControlPara.swUartType = UART_TYPE;
  190. //////////////////////////////////////////////////////////////////////////////
  191. cp_stHistoryPara.uwOpenTimes = 0;
  192. cp_stHistoryPara.ulUsedTime = 0;
  193. cp_stHistoryPara.uwNTCTempMaxCe = 0;
  194. cp_stHistoryPara.uwNTCTempMinCe = 0;
  195. cp_stHistoryPara.uwAlamHOcurTimes = 0;
  196. cp_stHistoryPara.uwAlamSOcurTimes = 0;
  197. cp_stHistoryPara.uwAlamOHeatTimes = 0;
  198. cp_stHistoryPara.uwAlamRotorLockTimes = 0;
  199. cp_stHistoryPara.uwAlamPhsLossTimes = 0;
  200. cp_stHistoryPara.uwAlamOVolTimes = 0;
  201. cp_stHistoryPara.uwAlamUVolTimes = 0;
  202. cp_stHistoryPara.uwAlamComOTimeTimes = 0;
  203. cp_stHistoryPara.uwG1AvgPwrConsumption = 0;
  204. cp_stHistoryPara.uwG2AvgPwrConsumption = 0;
  205. cp_stHistoryPara.uwG3AvgPwrConsumption = 0;
  206. cp_stHistoryPara.uwG4AvgPwrConsumption = 0;
  207. cp_stHistoryPara.uwG5AvgPwrConsumption = 0;
  208. cp_stHistoryPara.ulODOTrip = 0;
  209. cp_stHistoryPara.ulODOTime = 0;
  210. cp_stHistoryPara.ulTripSum = 0;
  211. cp_stHistoryPara.ulTripSumTime = 0;
  212. cp_stHistoryPara.uwTorSensorAlamTimes = 0;
  213. cp_stHistoryPara.uwCadSensorAlamTimes = 0;
  214. cp_stHistoryPara.uwBikeSpdSensorAlamTimes = 0;
  215. cp_stHistoryPara.uwPosSensorAlamTimes = 0;
  216. ///////////////////////////////////////////////////////
  217. cp_stBikeRunInfoPara.uwBikeGear = 0;
  218. cp_stBikeRunInfoPara.uwBikeGearLast = 0;
  219. cp_stBikeRunInfoPara.blGearStUpdate = FALSE;
  220. cp_stBikeRunInfoPara.ulRiTime = 0;
  221. cp_stBikeRunInfoPara.BikeSpeedKmH = 0;
  222. cp_stBikeRunInfoPara.BMSRestChargeNow = 0;
  223. cp_stBikeRunInfoPara.BMSRestChargeLast = 0;
  224. cp_stBikeRunInfoPara.uwCruisDis = 0;
  225. cp_stBikeRunInfoPara.uwLightSwitch = 0;
  226. cp_stBikeRunInfoPara.uwPowerPerKm = 0;
  227. cp_stBikeRunInfoPara.uwAvePowerPerKm = 0;
  228. cp_stBikeRunInfoPara.uwPowerPerKmSum = 0;
  229. for (i = 0; i < 32; i++)
  230. {
  231. cp_stBikeRunInfoPara.uwPowerPerKmBuf[i] = 0;
  232. }
  233. cp_stBikeRunInfoPara.uwAvePowerCNT = 0;
  234. }