|
@@ -655,7 +655,7 @@ MC_CalParam_Struct_t MC_AssistRunMode_Torque_Process(uint16_t SenorData, MC_Gear
|
|
|
|
|
|
static uint8_t TorqueRefEndUpdateCount = 0;
|
|
|
|
|
|
- #define SOFT_SATRT 0
|
|
|
+ #define SOFT_SATRT 1
|
|
|
|
|
|
#if SOFT_SATRT
|
|
|
static FlagStatus SoftStartFlag = SET;
|
|
@@ -810,11 +810,11 @@ MC_CalParam_Struct_t MC_AssistRunMode_Torque_Process(uint16_t SenorData, MC_Gear
|
|
|
case MC_GearSt_Torque_ECO:
|
|
|
{
|
|
|
//控制输入给定加速斜率
|
|
|
- if(MC_ConfigParam1.UserAdjParam_ECO.StarModel_GAIN <= 80)
|
|
|
+ if(MC_ConfigParam1.UserAdjParam_ECO.StarModel_GAIN <= 90)
|
|
|
{
|
|
|
TorqueAccStep = MC_AssisParam.Gear_ECO.AccCnt - 1;
|
|
|
}
|
|
|
- else if(MC_ConfigParam1.UserAdjParam_ECO.StarModel_GAIN >= 120)
|
|
|
+ else if(MC_ConfigParam1.UserAdjParam_ECO.StarModel_GAIN >= 110)
|
|
|
{
|
|
|
TorqueAccStep = MC_AssisParam.Gear_ECO.AccCnt + 1;
|
|
|
}
|
|
@@ -845,11 +845,11 @@ MC_CalParam_Struct_t MC_AssistRunMode_Torque_Process(uint16_t SenorData, MC_Gear
|
|
|
case MC_GearSt_Torque_NORM:
|
|
|
{
|
|
|
//控制输入给定加速斜率
|
|
|
- if(MC_ConfigParam1.UserAdjParam_NORM.StarModel_GAIN <= 80)
|
|
|
+ if(MC_ConfigParam1.UserAdjParam_NORM.StarModel_GAIN <= 90)
|
|
|
{
|
|
|
TorqueAccStep = MC_AssisParam.Gear_NORM.AccCnt - 1;
|
|
|
}
|
|
|
- else if(MC_ConfigParam1.UserAdjParam_NORM.StarModel_GAIN >= 120)
|
|
|
+ else if(MC_ConfigParam1.UserAdjParam_NORM.StarModel_GAIN >= 110)
|
|
|
{
|
|
|
TorqueAccStep = MC_AssisParam.Gear_NORM.AccCnt + 1;
|
|
|
}
|
|
@@ -881,11 +881,11 @@ MC_CalParam_Struct_t MC_AssistRunMode_Torque_Process(uint16_t SenorData, MC_Gear
|
|
|
case MC_GearSt_Torque_SPORT:
|
|
|
{
|
|
|
//控制输入给定加速斜率
|
|
|
- if(MC_ConfigParam1.UserAdjParam_SPORT.StarModel_GAIN <= 80)
|
|
|
+ if(MC_ConfigParam1.UserAdjParam_SPORT.StarModel_GAIN <= 90)
|
|
|
{
|
|
|
TorqueAccStep = MC_AssisParam.Gear_SPORT.AccCnt - 1;
|
|
|
}
|
|
|
- else if(MC_ConfigParam1.UserAdjParam_SPORT.StarModel_GAIN >= 120)
|
|
|
+ else if(MC_ConfigParam1.UserAdjParam_SPORT.StarModel_GAIN >= 110)
|
|
|
{
|
|
|
TorqueAccStep = MC_AssisParam.Gear_SPORT.AccCnt + 1;
|
|
|
}
|
|
@@ -916,11 +916,11 @@ MC_CalParam_Struct_t MC_AssistRunMode_Torque_Process(uint16_t SenorData, MC_Gear
|
|
|
case MC_GearSt_Torque_TURBO:
|
|
|
{
|
|
|
//控制输入给定加速斜率
|
|
|
- if(MC_ConfigParam1.UserAdjParam_TURBO.StarModel_GAIN <= 80)
|
|
|
+ if(MC_ConfigParam1.UserAdjParam_TURBO.StarModel_GAIN <= 90)
|
|
|
{
|
|
|
TorqueAccStep = MC_AssisParam.Gear_TURBO.AccCnt - 1;
|
|
|
}
|
|
|
- else if(MC_ConfigParam1.UserAdjParam_TURBO.StarModel_GAIN >= 120)
|
|
|
+ else if(MC_ConfigParam1.UserAdjParam_TURBO.StarModel_GAIN >= 110)
|
|
|
{
|
|
|
TorqueAccStep = MC_AssisParam.Gear_TURBO.AccCnt + 1;
|
|
|
}
|
|
@@ -951,11 +951,11 @@ MC_CalParam_Struct_t MC_AssistRunMode_Torque_Process(uint16_t SenorData, MC_Gear
|
|
|
case MC_GearSt_SMART:
|
|
|
{
|
|
|
//控制输入给定加速斜率
|
|
|
- if(MC_ConfigParam1.UserAdjParam_SMART.StarModel_GAIN <= 80)
|
|
|
+ if(MC_ConfigParam1.UserAdjParam_SMART.StarModel_GAIN <= 90)
|
|
|
{
|
|
|
TorqueAccStep = MC_AssisParam.Gear_SMART.AccCnt - 1;
|
|
|
}
|
|
|
- else if(MC_ConfigParam1.UserAdjParam_SMART.StarModel_GAIN >= 120)
|
|
|
+ else if(MC_ConfigParam1.UserAdjParam_SMART.StarModel_GAIN >= 110)
|
|
|
{
|
|
|
TorqueAccStep = MC_AssisParam.Gear_SMART.AccCnt + 1;
|
|
|
}
|
|
@@ -1034,41 +1034,44 @@ MC_CalParam_Struct_t MC_AssistRunMode_Torque_Process(uint16_t SenorData, MC_Gear
|
|
|
#if SOFT_SATRT
|
|
|
else if(SoftStartFlag == SET) //启动处理
|
|
|
{
|
|
|
- if(MC_ConfigParam1.StarModel == MC_StarMode_DYNAMIC)
|
|
|
+ if(MC_ConfigParam1.StarModel == MC_StarMode_DYNAMIC) //强劲模式,无延迟
|
|
|
{
|
|
|
- SoftStartDelayTime = 100; //启动处理延时100ms
|
|
|
- SoftStartAcc = 10; //10ms递增0.1倍
|
|
|
- }
|
|
|
- else if(MC_ConfigParam1.StarModel == MC_StarMode_SOFT)
|
|
|
- {
|
|
|
- SoftStartDelayTime = 900; //启动处理延时900ms
|
|
|
- SoftStartAcc = 90; //90ms递增0.1倍
|
|
|
+ SoftStartDelayTimeCount = 0;
|
|
|
+ SoftStartFlag = RESET;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- SoftStartDelayTime = 300; //启动处理延时300ms
|
|
|
- SoftStartAcc = 30; //30ms递增0.1倍
|
|
|
- }
|
|
|
- SoftStartDelayTimeCount++;
|
|
|
- if(SoftStartDelayTimeCount <= SoftStartDelayTime) // 缓启动过程,按照0.1倍率逐步增加加减速斜率
|
|
|
- {
|
|
|
- if((MC_TorqueProcess_Param.TorqueRef - MC_TorqueProcess_Param.TorqueRefEnd) > 2)
|
|
|
+ if(MC_ConfigParam1.StarModel == MC_StarMode_SOFT) //柔和模式,延迟300ms
|
|
|
{
|
|
|
- if((SoftStartDelayTimeCount % (10 - SoftStartDelayTimeCount / SoftStartAcc)) == 0)
|
|
|
+ SoftStartDelayTime = 300; //启动处理延时300ms
|
|
|
+ SoftStartAcc = 30; //30ms递增0.1倍
|
|
|
+ }
|
|
|
+ else //正常模式,延迟100ms
|
|
|
+ {
|
|
|
+ SoftStartDelayTime = 100; //启动处理延时100ms
|
|
|
+ SoftStartAcc = 10; //10ms递增0.1倍
|
|
|
+ }
|
|
|
+ SoftStartDelayTimeCount++;
|
|
|
+ if(SoftStartDelayTimeCount <= SoftStartDelayTime) // 缓启动过程,按照0.1倍率逐步增加加减速斜率
|
|
|
+ {
|
|
|
+ if((MC_TorqueProcess_Param.TorqueRef - MC_TorqueProcess_Param.TorqueRefEnd) > 2)
|
|
|
{
|
|
|
- MC_TorqueProcess_Param.TorqueRefEnd += TorqueAccStep;
|
|
|
+ if((SoftStartDelayTimeCount % (10 - SoftStartDelayTimeCount / SoftStartAcc)) == 0)
|
|
|
+ {
|
|
|
+ MC_TorqueProcess_Param.TorqueRefEnd += TorqueAccStep;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else if((MC_TorqueProcess_Param.TorqueRef - MC_TorqueProcess_Param.TorqueRefEnd) < (- 1))
|
|
|
+ {
|
|
|
+ MC_TorqueProcess_Param.TorqueRefEnd -= TorqueDecStep;
|
|
|
}
|
|
|
}
|
|
|
- else if((MC_TorqueProcess_Param.TorqueRef - MC_TorqueProcess_Param.TorqueRefEnd) < (- 1))
|
|
|
+ else
|
|
|
{
|
|
|
- MC_TorqueProcess_Param.TorqueRefEnd -= TorqueDecStep;
|
|
|
+ SoftStartDelayTimeCount = 0;
|
|
|
+ SoftStartFlag = RESET;
|
|
|
}
|
|
|
}
|
|
|
- else
|
|
|
- {
|
|
|
- SoftStartDelayTimeCount = 0;
|
|
|
- SoftStartFlag = RESET;
|
|
|
- }
|
|
|
}
|
|
|
#endif
|
|
|
|
|
@@ -1086,7 +1089,7 @@ MC_CalParam_Struct_t MC_AssistRunMode_Torque_Process(uint16_t SenorData, MC_Gear
|
|
|
MC_TorqueProcess_Param.TorqueRefEnd = (MC_TorqueProcess_Param.TorqueRefEnd < 6) ? 6 : MC_TorqueProcess_Param.TorqueRefEnd;
|
|
|
|
|
|
//限速点处理
|
|
|
- if( MC_SpeedSensorData.Speed_Data > (MC_ConfigParam1.SpeedLimit * 10 + 20) ) //限速值+2
|
|
|
+ if( MC_SpeedSensorData.Speed_Data > (MC_ConfigParam1.SpeedLimit * 10 + 22) ) //限速值 + 2.2
|
|
|
{
|
|
|
MC_TorqueProcess_Param.MotorStopLock_Flag = SET;
|
|
|
MC_TorqueProcess_Param.TorqueRefEnd = 0;
|