/** * @file CodePara.c * @author Wang, Zhiyu(wangzy49@midea.com) * @brief Para of Code * @version 0.1 * @date 2021-09-29 * * @copyright Copyright (c) 2021 * */ /************************************************************************ Beginning of File, do not put anything above here except notes Compiler Directives: *************************************************************************/ #include "user.h" #include "syspar.h" /****************************** * * Parameter * ******************************/ CP_MOTOR_PARA cp_stMotorPara = CP_MOTOR_PARA_DEFAULT; CP_CONTROL_PARA cp_stControlPara = CP_CONTROL_PARA_DEFAULT; CP_HISTORY_PARA cp_stHistoryPara = CP_HISTORY_PARA_DEFAULT; CP_BIKERUNINFO_PARA cp_stBikeRunInfoPara; ULONG cp_ulSystickCnt = 0; CP_FLG cp_stFlg = CP_FLG_DEFAULT; /*************************************************************** Function: CodeParaInit; Description: CodePara Init Call by: functions in main loop; Input Variables: N/A Output/Return Variables: N/A Subroutine Call: N/A; Reference: N/A ****************************************************************/ void CodeParaInit(void) { UWORD i; #if ((MOTOR_ID_SEL == MOTOR_WELLING_CITY_36V) || (MOTOR_ID_SEL == MOTOR_WELLING_CITY_48V)) { cp_stFlg.RunModelSelect = CityBIKE;//CityBIKE;//ClZLOOP; // cp_stFlg.RotateDirectionSelect = BackwardRotate; } #elif ((MOTOR_ID_SEL == MOTOR_WELLING_MTB_36V) || (MOTOR_ID_SEL == MOTOR_WELLING_MTB_48V)) { cp_stFlg.RunModelSelect = MountainBIKE;//MountainBIKE;//ClZLOOP; // cp_stFlg.RotateDirectionSelect = ForwardRotate; } #endif cp_stFlg.ThetaGetModelSelect = ANG_RESOLVER; //ANG_RESOLVER;//ANG_OBSERVER;//ANG_RESOLVER; cp_stFlg.CurrentSampleModelSelect = COMBINATION; cp_stFlg.RunPermitFlg = TRUE; cp_stFlg.ParaUseEEFlg = TRUE; //FALSE; //TRUE; #ifdef RUN_ARCH_SIM cp_stFlg.ParaUseEEFlg = FALSE; //FALSE, TRUE; #endif cp_stFlg.ParaUseEEFinishFlg = FALSE; cp_stFlg.ParaSaveEEFlg = FALSE; cp_stFlg.ParaSaveEEFinishFlg = FALSE; cp_stFlg.ParaHistorySaveEEFinishFlg = FALSE; cp_stFlg.ParaUpdateFlg = FALSE; cp_stFlg.ParaMInfoUpdateFlg = FALSE; cp_stFlg.ParaBikeInfoUpdateFlg = FALSE; cp_stFlg.ParaMCInfoUpdateFlg = FALSE; cp_stFlg.ParaSensorInfoUpdateFlg = FALSE; cp_stFlg.ParaAInfoUpdateFlg = FALSE; cp_stFlg.TestParaInfoUpdateFlg = FALSE; cp_stFlg.ParaRideInfoUpdateFlg = FALSE; cp_stFlg.ParaBikeInfo2UpdateFlg = FALSE; cp_stFlg.ParaMotorDriveUpdateFinishFlg = FALSE; cp_stFlg.ParaAssistUpdateFinishFlg = FALSE; //////////////////////////////////////////////////////////////////////////////// cp_stMotorPara.swMotrPolePairs = M_POLE_PAIRS; cp_stMotorPara.swRsOhm = M_RS_OHM; cp_stMotorPara.swLdmH = M_LD_NOLOAD_MH; cp_stMotorPara.swLqmH = M_LQ_NOLOAD_MH; cp_stMotorPara.swJD = M_JD; cp_stMotorPara.swFluxWb = M_FLUX_WB; cp_stMotorPara.swIdMaxA = M_ID_MAX_AP; cp_stMotorPara.swIdMinA = M_ID_MIN_AP; cp_stMotorPara.swIpeakMaxA = M_IS_PEAK_MAX_AP; cp_stMotorPara.swRSpeedRpm = M_R_SPD_RPM; cp_stMotorPara.swRPwrWt = M_R_PWR_WT; cp_stMotorPara.swRIarmsA = M_R_IRMS_A; cp_stMotorPara.swRUdcV = M_R_UDC_v; cp_stMotorPara.swTorMax = M_MAX_TOR_NM; ////////////////////////////////////////////////////////////////////////////// cp_stControlPara.swIPMTurnOnNs = IPM_TURN_ON_TM_NS; cp_stControlPara.swIPMTurnOffNs = IPM_TURN_OFF_TM_NS; cp_stControlPara.swIPMDeadTimeNs = IPM_DEAD_TM_NS; cp_stControlPara.swIPMHvicChrgMs = TBC_MS2CT(IPM_HVIC_CHRG_TM); cp_stControlPara.swAlmOverCurrentVal = ALM_OVR_CNT_VAL; cp_stControlPara.swAlmOverCurrentTM = ALM_OVR_CNT_TM; cp_stControlPara.swAlmPhsLossVal = ALM_PHS_LOSS_VAL; cp_stControlPara.swAlmPhsLossTM = ALM_PHS_LOSS_TM; cp_stControlPara.swAlmAdcDetectHighVal = ALM_ADC_DETE_HIG_VAL; cp_stControlPara.swAlmAdcDetectLowVal = ALM_ADC_DETE_LOW_VAL; cp_stControlPara.swAlmRotorLockK = ALM_ROTOR_LOCK_SPD_K; cp_stControlPara.swAlmRotorLockTM = ALM_ROTOR_LOCK_TM; cp_stControlPara.swAlmRotorLockCurVal = ALM_ROTOR_LOCK_IQ_ABS; cp_stControlPara.swAlmRotorLockSpdVal = ALM_ROTOR_LOCK_SPD; cp_stControlPara.swAlmOverVolVal1 = ALM_OVR_VLT_LVL1_VAL; cp_stControlPara.swAlmOverVolTM1 = ALM_OVR_VLT_LVL1_TM; cp_stControlPara.swAlmOverVolVal2 = ALM_OVR_VLT_LVL2_VAL; cp_stControlPara.swAlmOverVolTM2 = ALM_OVR_VLT_LVL2_TM; cp_stControlPara.swAlmOverVolVal3 = ALM_OVR_VLT_LVL3_VAL; cp_stControlPara.swAlmOverVolTM3 = ALM_OVR_VLT_LVL3_TM; cp_stControlPara.swAlmUnderVolVal1 = ALM_UNDR_VLT_LVL1_VAL; cp_stControlPara.swAlmUnderVolTM1 = ALM_UNDR_VLT_LVL1_TM; cp_stControlPara.swAlmUnderVolVal2 = ALM_UNDR_VLT_LVL2_VAL; cp_stControlPara.swAlmUnderVolTM2 = ALM_UNDR_VLT_LVL2_TM; cp_stControlPara.swAlmOverSpdVal = ALM_OVR_SPD_VAL; cp_stControlPara.swAlmOverSpdTM = ALM_OVR_SPD_TM; cp_stControlPara.swAlmOverHeatCeVal = ALM_IPM_OVR_HEAT_VAL; cp_stControlPara.swAlmOverHeatTM = ALM_IPM_OVR_TM; cp_stControlPara.swAlmPwrLimitStartTempVal = PWRLIM_START_THRESHOLD_TEMP; // cp_stControlPara.swAlmMotorOverHeatCeVal = ALM_MOTOR_OVR_HEAT_VAL; // cp_stControlPara.swAlmPwrLimitMotorStartTempVal = PWRLIM_START_THRESHOLD_MOTOR_TEMP; ass_stParaCong.uwControlFunEN = THOTTLECRUISE_EN; ass_stParaCong.uwThrottleGearEN = THROTTLEGEAR_ENABLE; cp_stControlPara.swAlmThrPhsShrtFrcTM = ALM_THR_PHS_SHRT_FRC_TM; cp_stControlPara.swAlmPWMOffTM = ALM_PWM_OFF_TM; cp_stControlPara.swAlmPWMOffShrtsw1TM = ALM_PWMOFF_SHRT1_SW_TM; cp_stControlPara.swAlmThrPhsShrtNormTM = ALM_THR_PHS_SHRT_NORM_TM; cp_stControlPara.swAlmShrtPWMOffswTM = ALM_SHRT_PWMOFF_SW_TM; cp_stControlPara.swAlmIPMOverCurStopTM = ALM_STOP_IPM_OVER_CUR_TM; cp_stControlPara.swAlmRecAllTM = ALM_REC_ALL_TM; cp_stControlPara.swAlmRecOCTM = ALM_IPM_OC_REC_TM; cp_stControlPara.swAlmRecOVVal = ALM_OVR_VLT_REC_VAL; cp_stControlPara.swAlmRecOVTM = ALM_OVR_VLT_REC_TM; cp_stControlPara.swAlmRecOVTM1 = ALM_OVR_VLT_REC_TM1; cp_stControlPara.swAlmRecUVVal = ALM_UNDR_VLT_REC_VAL; cp_stControlPara.swAlmRecUVTM = ALM_UNDR_VLT_REC_TM; cp_stControlPara.swAlmRecUVTM1 = ALM_UNDR_VLT_REC_TM1; cp_stControlPara.swAlmRecOHeatVal = ALM_IPM_OVR_HEAT_REC_VAL; cp_stControlPara.swAlmRecOHeatTM = ALM_IPM_OVR_REC_TM; cp_stControlPara.swAlmRecOHeatTM1 = ALM_IPM_OVR_REC_TM1; cp_stControlPara.swStartMode = START_MODE; cp_stControlPara.swInitPosMode = INITPOS_MODE; cp_stControlPara.swAlignCurAp = ALIGN_CUR_AP; cp_stControlPara.swAlignRampTMms = ALIGN_RAMP_TM_MS; cp_stControlPara.swAlignHoldTMms = ALIGN_HOLD_TM_MS; cp_stControlPara.swAlignAngInitDeg = ALIGN_ANG_INIT; cp_stControlPara.swDragCurAp = DRAG_CUR_AP; cp_stControlPara.swDragVolAp = DRAG_VOL_AP; cp_stControlPara.swDragSpdHz = DRAG_SPD_HZ; cp_stControlPara.swDragSpdRampTMms = DRAG_SPD_RAMP_TM_MS; cp_stControlPara.swOpen2ClzRampTMms = OPEN2CLZ_CUR_RAMP_TM_MS; cp_stControlPara.swStopSpdRefRpm = STOP_SPD_REF_RPM; cp_stControlPara.swObsSpdPLLM = OBS_SPD_PLL_M; cp_stControlPara.swObsSpdPLLBandWidthHz = OBS_SPD_PLL_BANDWIDTH_HZ; cp_stControlPara.swObsFluxPIDampratio = OBS_FLUX_PI_DAMPRATIO; cp_stControlPara.swObsFluxPICrossfreHz = OBS_FLUX_PI_CROSSFREQ_HZ; cp_stControlPara.swAcrPIBandwidth = ACR_PI_BANDWIDTH_FLX; cp_stControlPara.swAcrCurFbLpfFre = ACR_CUR_FLX_FBK_LPF_FRQ; cp_stControlPara.uwAcrCurOutLim = ACR_CUR_OUT_LIM; cp_stControlPara.uwAcrUdcpOutLim = ACR_UDCP_OUT_LIM; cp_stControlPara.swAcrRaCoef = ACR_RA_COEF; cp_stControlPara.swAsrPIBandwidth = ASR_PI_BANDWIDTH; cp_stControlPara.swAsrPIM = ASR_PI_M; cp_stControlPara.swAsrSpdFbLPFFre = ASR_SPD_FBK_LPF_FRQ; cp_stControlPara.swAsrSpdInerRate = ASR_SPD_INER_RATE; cp_stControlPara.swSpeedAccRate = 500; cp_stControlPara.swSpeedDccRate = 100; cp_stControlPara.swPWMMaxDuty = PWM_MAX_DUTY_CYLE_IPM; cp_stControlPara.swPWM7to5Duty = PWM_7SVM_TO_5SVM_DUTY_IPM; cp_stControlPara.swPWMMinSampleDuty1 = PWM_MIN_SAMPLE_DUTY1_IPM; cp_stControlPara.swPWMMinSampleDuty2 = PWM_MIN_SAMPLE_DUTY2_IPM; cp_stControlPara.swPWMMinSampleDuty3 = PWM_MIN_SAMPLE_DUTY3_IPM; cp_stControlPara.swPWMSampleToSteady = PWM_SAMPLE_TOSTEADY_IPM; cp_stControlPara.swPWMSampleSigR = PWM_SAMPLE_SINGELRESIS_IPM; cp_stControlPara.swPWM1STSampleCnt = PWM_1ST_SAMPLE_CTS_IPM; cp_stControlPara.swPWM2NDSampleCnt = PWM_2ND_SAMPLE_CTS_IPM; cp_stControlPara.swPWMMinEffVectorCnt = PWM_MIN_EFF_VECTOR_CTS_IPM; cp_stControlPara.swPWMMinEffVectorPu = PWM_MIN_EFF_VECTOR_PU_IPM; cp_stControlPara.swPWMOverMdlMode = PWM_OVR_MDL_SEL; cp_stControlPara.swFwVdcMinCalTMms = FW_VDC_MIN_CALC_TM; cp_stControlPara.swFwVdcLPFFre = FW_VDC_LPF_FRQ; cp_stControlPara.swFwPWMMaxDuty = FW_PWM_MAX_DUTY_CYLE_IPM; cp_stControlPara.swFwIdPIOutMin = FW_ID_PI_OUT_MIN; cp_stControlPara.swFwIdMinLimRatio = FW_ID_MIN_LIM_RATIO; cp_stControlPara.swFwIdKpPu = FW_ID_KP_PU; cp_stControlPara.swFwIdKiPu = FW_ID_KI_PU; cp_stControlPara.swFwCharCurCrossFre = FW_CHAR_CUR_CROSS_FREQ; cp_stControlPara.swFwCharCurDampRatio = FW_CHAR_CUR_DAMP_RATIO; cp_stControlPara.swCvbConstantVolBrakeV = CVB_CONSTANT_VOL_BRAKE_V; cp_stControlPara.swCvbConstantSpdLowRpm = CVB_CONSTANT_SPD_LOW_RPM; #if(HUAYAO_ENABLE == 1) cp_stControlPara.swPwrLimitValWt = 5000;//500W #else cp_stControlPara.swPwrLimitValWt = PWRLIM_VAL; #endif cp_stControlPara.swPwrLimitErrWt = PWRLIM_ERR; cp_stControlPara.swPwrLimitLPFFre = PWRLIM_LPF_FRQ; cp_stControlPara.swPwrLimitKpPu = PWR_IQ_LIMIT_KP_PU; cp_stControlPara.swPwrLimitKiPu = PWR_IQ_LIMIT_KI_PU; cp_stControlPara.swDbcK = DBC_K_COEF; cp_stControlPara.swUartType = UART_TYPE; ////////////////////////////////////////////////////////////////////////////// cp_stHistoryPara.uwOpenTimes = 0; cp_stHistoryPara.ulUsedTime = 0; cp_stHistoryPara.uwNTCTempMaxCe = 0; cp_stHistoryPara.uwNTCTempMinCe = 0; cp_stHistoryPara.uwAlamHOcurTimes = 0; cp_stHistoryPara.uwAlamSOcurTimes = 0; cp_stHistoryPara.uwAlamOHeatTimes = 0; cp_stHistoryPara.uwAlamRotorLockTimes = 0; cp_stHistoryPara.uwAlamPhsLossTimes = 0; cp_stHistoryPara.uwAlamOVolTimes = 0; cp_stHistoryPara.uwAlamUVolTimes = 0; cp_stHistoryPara.uwAlamComOTimeTimes = 0; cp_stHistoryPara.uwG1AvgPwrConsumption = 0; cp_stHistoryPara.uwG2AvgPwrConsumption = 0; cp_stHistoryPara.uwG3AvgPwrConsumption = 0; cp_stHistoryPara.uwG4AvgPwrConsumption = 0; cp_stHistoryPara.uwG5AvgPwrConsumption = 0; cp_stHistoryPara.ulODOTrip = 0; cp_stHistoryPara.ulODOTime = 0; cp_stHistoryPara.ulTripSum = 0; cp_stHistoryPara.ulTripSumTime = 0; cp_stHistoryPara.uwTorSensorAlamTimes = 0; cp_stHistoryPara.uwCadSensorAlamTimes = 0; cp_stHistoryPara.uwBikeSpdSensorAlamTimes = 0; cp_stHistoryPara.uwPosSensorAlamTimes = 0; cp_stHistoryPara.ulRealODOTrip = 0; cp_stHistoryPara.ulRealODOTime = 0; /////////////////////////////////////////////////////// cp_stBikeRunInfoPara.uwBikeGear = 0; cp_stBikeRunInfoPara.uwBikeGearLast = 0; cp_stBikeRunInfoPara.blGearStUpdate = FALSE; cp_stBikeRunInfoPara.ulRiTime = 0; cp_stBikeRunInfoPara.BikeSpeedKmH = 0; cp_stBikeRunInfoPara.BMSRestChargeNow = 0; cp_stBikeRunInfoPara.BMSRestChargeLast = 0; cp_stBikeRunInfoPara.uwCruisDis = 0; cp_stBikeRunInfoPara.uwLightSwitch = 0; cp_stBikeRunInfoPara.uwPowerPerKm = 0; cp_stBikeRunInfoPara.uwAvePowerPerKm = 0; cp_stBikeRunInfoPara.uwPowerPerKmSum = 0; for (i = 0; i < 32; i++) { cp_stBikeRunInfoPara.uwPowerPerKmBuf[i] = 0; } cp_stBikeRunInfoPara.uwAvePowerCNT = 0; }