|
@@ -795,7 +795,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;
|
|
@@ -805,18 +805,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.NotesInfo3 = TorqueApp;
|
|
|
+ MC_ErrorLogSaveInfo.NotesInfo2 = SensorData.TorqueSensor;
|
|
|
+ MC_ErrorLogSaveInfo.NotesInfo3 = SensorData.GasSensor;
|
|
|
ErrorLogSave_Update(&MC_ErrorLogSaveInfo);
|
|
|
IsErrorLogSaveInfoUpdateFlag = TRUE;
|
|
|
//存储故障次数
|
|
@@ -1060,5 +1061,5 @@ 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);
|
|
|
}
|