123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312 |
- /**
- * @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;
- }
|