|
@@ -652,7 +652,7 @@ MC_CalParam_Struct_t MC_AssistRunMode_Torque_Process(uint16_t SenorData, MC_Gear
|
|
|
static uint16_t CurrentLimitPresent; //限流实际值,做升降速处理
|
|
|
uint16_t CurrentLimitSet; //限流设置值,不同助力档位更新
|
|
|
|
|
|
- static uint8_t TorqueRefEndUpdateCount = 0;
|
|
|
+ static uint8_t TorqueRefEndUpdateCount = 0, TorqueRefEndUpdateCount_Normal = 0;
|
|
|
|
|
|
#define SOFT_SATRT 1
|
|
|
|
|
@@ -728,7 +728,7 @@ MC_CalParam_Struct_t MC_AssistRunMode_Torque_Process(uint16_t SenorData, MC_Gear
|
|
|
#endif
|
|
|
|
|
|
//低力矩停机
|
|
|
- TorqueStopData = (TorqueSensorStartData < 200) ? 100 : (TorqueSensorStartData >> 1);
|
|
|
+ TorqueStopData = (TorqueSensorStartData < 400) ? 100 : (TorqueSensorStartData >> 2);
|
|
|
if(MC_TorqueProcess_Param.TorqueApp >= (TorqueStopData))
|
|
|
{
|
|
|
TorqueStopDelayTimeCnt = HAL_GetTick();
|
|
@@ -962,7 +962,14 @@ MC_CalParam_Struct_t MC_AssistRunMode_Torque_Process(uint16_t SenorData, MC_Gear
|
|
|
//控制输入给定减速斜率
|
|
|
TorqueDecStep = MC_AssisParam.Gear_SMART.DecCnt;
|
|
|
//助力比控制系数
|
|
|
- Torque_Temp = (uint32_t)(MC_TorqueProcess_Param.TorqueApp * MC_TorqueProcess_Param.TorqueApp) / (MC_AssisParam.Gear_SMART.TorqueApp_TH);
|
|
|
+ if(MC_TorqueProcess_Param.TorqueApp < 510)
|
|
|
+ {
|
|
|
+ Torque_Temp = (uint16_t)((uint32_t)(MC_TorqueProcess_Param.TorqueApp * Coefficient_GainCal(MC_AssisParam.Gear_NORM.Gain_K >> 1, MC_AssisParam.Gear_NORM.Gain_K, MC_AssisParam.Gear_NORM.TorqueApp_TH, MC_TorqueProcess_Param.TorqueApp)) >> 10);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ Torque_Temp = (uint32_t)(MC_TorqueProcess_Param.TorqueApp * MC_TorqueProcess_Param.TorqueApp) / (MC_AssisParam.Gear_SMART.TorqueApp_TH);
|
|
|
+ }
|
|
|
//根据助力增益调节助力比
|
|
|
Torque_Temp = Torque_Temp * MC_ConfigParam1.UserAdjParam_SMART.Assist_K_GAIN / 100;
|
|
|
//给定下限
|
|
@@ -1006,7 +1013,12 @@ MC_CalParam_Struct_t MC_AssistRunMode_Torque_Process(uint16_t SenorData, MC_Gear
|
|
|
}
|
|
|
else if((MC_TorqueProcess_Param.TorqueRef - MC_TorqueProcess_Param.TorqueRefEnd) < (- 1))
|
|
|
{
|
|
|
- MC_TorqueProcess_Param.TorqueRefEnd -= 1;
|
|
|
+ TorqueRefEndUpdateCount_Normal++;
|
|
|
+ if(TorqueRefEndUpdateCount_Normal >=2)
|
|
|
+ {
|
|
|
+ TorqueRefEndUpdateCount_Normal = 0;
|
|
|
+ MC_TorqueProcess_Param.TorqueRefEnd -= 1;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
else if((0)&&(MC_SpeedSensorData.Speed_Data < 100)) //上坡处理
|
|
@@ -1078,7 +1090,12 @@ MC_CalParam_Struct_t MC_AssistRunMode_Torque_Process(uint16_t SenorData, MC_Gear
|
|
|
}
|
|
|
else if((MC_TorqueProcess_Param.TorqueRef - MC_TorqueProcess_Param.TorqueRefEnd) < (- 1))
|
|
|
{
|
|
|
- MC_TorqueProcess_Param.TorqueRefEnd -= TorqueDecStep;
|
|
|
+ TorqueRefEndUpdateCount_Normal++;
|
|
|
+ if(TorqueRefEndUpdateCount_Normal >=2)
|
|
|
+ {
|
|
|
+ TorqueRefEndUpdateCount_Normal = 0;
|
|
|
+ MC_TorqueProcess_Param.TorqueRefEnd -= 1;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
MC_TorqueProcess_Param.TorqueRefEnd = (MC_TorqueProcess_Param.TorqueRefEnd < 6) ? 6 : MC_TorqueProcess_Param.TorqueRefEnd;
|