|
@@ -844,7 +844,7 @@ void MC_Fault_Circuit_Process(MC_ErrorCode_Struct_t* p_MC_ErrorCode)
|
|
|
|
|
|
|
|
|
//机械故障
|
|
|
-void MC_Fault_Machine_Process(uint16_t MotorSpeed, uint16_t CadenceSpeed, uint16_t TorqueApp, uint16_t speedratio, MC_ErrorCode_Struct_t* p_MC_ErrorCode)
|
|
|
+void MC_Fault_Machine_Process(uint16_t MotorSpeed, uint16_t CadenceSpeed, ADC_SensorData_Struct_t SensorData, uint16_t speedratio, MC_ErrorCode_Struct_t* p_MC_ErrorCode)
|
|
|
{
|
|
|
static uint32_t TimeCount_ClutchFault=0;
|
|
|
static uint16_t ClutchFaultCount=0;
|
|
@@ -854,17 +854,19 @@ void MC_Fault_Machine_Process(uint16_t MotorSpeed, uint16_t CadenceSpeed, uint16
|
|
|
if( (HAL_GetTick()-TimeCount_ClutchFault)>=20 ) //20ms执行一次故障判断
|
|
|
{
|
|
|
TimeCount_ClutchFault = HAL_GetTick();
|
|
|
- if( (MotorSpeed > 500)&&(CadenceSpeed >= 15)&&(TorqueApp > 200) )
|
|
|
+ if( (MotorSpeed > 500)&&(CadenceSpeed >= 15)&&(SensorData.TorqueSensor > 200)&&(SensorData.GasSensor < 50) )
|
|
|
{
|
|
|
if( speedratio > 1500 )
|
|
|
{
|
|
|
ClutchFaultCount++;
|
|
|
if( ClutchFaultCount>= 50) //速比连续出错50次判断为故障,时间将近1s
|
|
|
{
|
|
|
+ ClutchFaultCount=0;
|
|
|
p_MC_ErrorCode->ERROR_Bit.Fault_Machine = 1;
|
|
|
//记录故障日志
|
|
|
MC_ErrorLogSaveInfo.NotesInfo1 = 1; //单向器打滑故障
|
|
|
- MC_ErrorLogSaveInfo.NotesInfo2 = speedratio;
|
|
|
+ MC_ErrorLogSaveInfo.NotesInfo2 = SensorData.TorqueSensor;
|
|
|
+ MC_ErrorLogSaveInfo.NotesInfo3 = SensorData.GasSensor;
|
|
|
ErrorLogSave_Update(&MC_ErrorLogSaveInfo);
|
|
|
IsErrorLogSaveInfoUpdateFlag = TRUE;
|
|
|
//存储故障次数
|
|
@@ -1185,7 +1187,7 @@ void MC_Fault_Check_Process(void)
|
|
|
MC_Fault_Circuit_Process(&MC_ErrorCode);
|
|
|
|
|
|
//单向器打滑故障检测
|
|
|
- MC_Fault_Machine_Process(MC_RunInfo.MotorSpeed, MC_CadenceResult.Cadence_Data, ADC_SensorData.TorqueSensor, SpeedRatio, &MC_ErrorCode);
|
|
|
+ MC_Fault_Machine_Process(MC_RunInfo.MotorSpeed, MC_CadenceResult.Cadence_Data, ADC_SensorData, SpeedRatio, &MC_ErrorCode);
|
|
|
|
|
|
//硬件识别故障
|
|
|
MC_Fault_Hardware_Identify(IsComOK_TE.IsOK_Flag, MC_TE_SyncClockFreqScan, ADC1_Result_Filt[ADC1_RANK_HARDWARE_VER], &MC_HallSensorData.InverterExistFlag, &MC_ErrorCode);
|