/** * @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" #include "canAppl.h" #include "usart.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; UWORD TimingDelay; /*************************************************************** 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) { #if (ASSIST_MODE == TORQUE_ASSIST) cp_stFlg.RunModelSelect =TorqAssist;// TorqAssist;//ClZLOOP; //IFContorl; //CadAssist; #elif (ASSIST_MODE == CADENCE_ASSIST) cp_stFlg.RunModelSelect = CadAssist; //ClZLOOP; //IFContorl; //CadAssist; #endif cp_stFlg.ThetaGetModelSelect = ANG_SWITCHHALL;//ANG_SWITCHHALL;//ANG_OBSERVER; //ANG_SWITCHHALL; //ANG_SWITCHHALL; cp_stFlg.RotateDirectionSelect = BackwardRotate; //ForwardRotate 0 BackwardRotate 1 #if(SampleModelSelect == DOUBLERESISTANCE) cp_stFlg.CurrentSampleModelSelect = DOUBLERESISTANCE; #elif(SampleModelSelect == COMBINATION) cp_stFlg.CurrentSampleModelSelect = COMBIN_MOSSING; #endif cp_stFlg.ErrorSaveFlg = 0; cp_stFlg.ErrorSave2FlashFlg = FALSE; cp_stFlg.RunPermitFlg = TRUE; cp_stFlg.ParaUseEEFlg = TRUE; //FALSE; //TRUE; cp_stFlg.ParaUseEEFinishFlg = FALSE; cp_stFlg.ParaSaveEEFlg = FALSE; cp_stFlg.ParaSaveEEFinishFlg = FALSE; cp_stFlg.ParaHistorySaveEEFinishFlg = TRUE; 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.ParaMotorDriveUpdateFinishFlg = FALSE; cp_stFlg.ParaAssistUpdateFinishFlg = FALSE; //////////////////////////////////////////////////////////////////////////////// cp_stMotorPara.swMotrPolePairs = M_POLE_PAIRS; cp_stMotorPara.swRsOhm = M_RS_OHM; cp_stMotorPara.uwLdmH = M_LD_NOLOAD_MH; cp_stMotorPara.uwLqmH = 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.swAlmUnderVolVal1 = ALM_UNDR_VLT_LVL1_VAL; cp_stControlPara.swAlmUnderVolTM1 = ALM_UNDR_VLT_LVL1_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; 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.swAlmRecUVVal = ALM_UNDR_VLT_REC_VAL; cp_stControlPara.swAlmRecUVTM = ALM_UNDR_VLT_REC_TM; 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.swAlmMotorRecOHeatVal = ALM_MOTOR_OVR_HEAT_REC_VAL; cp_stControlPara.uwControlFunEN=IPM_FUN_EN; 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.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; cp_stControlPara.swPwrLimitValWtCALC=PWRLIM_VAL; cp_stControlPara.swPwrLimitValWt = PWRLIM_VAL; 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.swNTCTempMaxCe = 0; cp_stHistoryPara.swNTCTempMinCe = 100; 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 = 100; cp_stHistoryPara.uwG2AvgPwrConsumption = 160; cp_stHistoryPara.uwG3AvgPwrConsumption = 190; cp_stHistoryPara.uwG4AvgPwrConsumption = 270; cp_stHistoryPara.uwG5AvgPwrConsumption = 180; 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; /////////////////////////////////////////////////////// #if( BIKE_OXFORD_EN !=0) MC_ControlCode.GearSt=5; cp_stBikeRunInfoPara.uwBikeGear = 5; // 固定5档 cp_stBikeRunInfoPara.uwBikeGearLast = 0; cp_stBikeRunInfoPara.blGearStUpdate = FALSE; #else cp_stBikeRunInfoPara.uwBikeGear = 0; cp_stBikeRunInfoPara.uwBikeGearLast = 0; cp_stBikeRunInfoPara.blGearStUpdate = FALSE; #endif cp_stBikeRunInfoPara.ulRiTime = 0; cp_stBikeRunInfoPara.ulRiTirpTime=0; cp_stBikeRunInfoPara.ulRealODOTime=0; cp_stBikeRunInfoPara.BikeSpeedKmH = 0; cp_stBikeRunInfoPara.BMSRestChargeNow = 0; cp_stBikeRunInfoPara.BMSRestChargeLast = 0; cp_stBikeRunInfoPara.uwCruisDis = 0; #if(EMCDEAL_EN==0) cp_stBikeRunInfoPara.uwLightSwitch = 0; #else cp_stBikeRunInfoPara.uwLightSwitch = 1; MC_ControlCode.LightSwitch = MC_LightSwitch_ON; #endif cp_stBikeRunInfoPara.uwPowerPerKm = 0; cp_stBikeRunInfoPara.uwAvePowerPerKm = 0; cp_stBikeRunInfoPara.uwPowerPerKmSum = 0; for (UWORD i = 0; i < 32; i++) { cp_stBikeRunInfoPara.uwPowerPerKmBuf[i] = 0; } cp_stBikeRunInfoPara.uwAvePowerCNT = 0; ucUartAnalyseID = UART_ID; } void CodeHistoryParaDelete(void) { cp_stHistoryPara.uwOpenTimes = 0; cp_stHistoryPara.ulUsedTime = 0; cp_stHistoryPara.swNTCTempMaxCe = 0; //最高温初始化 0 cp_stHistoryPara.swNTCTempMinCe = 100; //最低温初始化 100 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 = 100; cp_stHistoryPara.uwG2AvgPwrConsumption = 160; cp_stHistoryPara.uwG3AvgPwrConsumption = 190; cp_stHistoryPara.uwG4AvgPwrConsumption = 270; cp_stHistoryPara.uwG5AvgPwrConsumption = 180; 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; }