|
@@ -583,8 +583,10 @@ MC_CalParam_Struct_t MC_AssistRunMode_Torque_Process(uint16_t SenorData, MC_Gear
|
|
|
uint16_t CurrentLimitSet; //限流设置值,不同助力档位更新
|
|
|
|
|
|
static uint8_t TorqueRefEndUpdateCount = 0;
|
|
|
- static FlagStatus SoftStarFlag = SET;
|
|
|
- static uint16_t SoftStarDelayTimeCount = 0;
|
|
|
+ static FlagStatus SoftStartFlag = SET;
|
|
|
+ static uint16_t SoftStartDelayTimeCount = 0;
|
|
|
+ uint16_t SoftStartDelayTime = 0;
|
|
|
+ uint16_t SoftStartAcc = 0;
|
|
|
|
|
|
#if 1
|
|
|
|
|
@@ -698,18 +700,18 @@ MC_CalParam_Struct_t MC_AssistRunMode_Torque_Process(uint16_t SenorData, MC_Gear
|
|
|
//停机状态,延时处理
|
|
|
if(MC_TorqueProcess_Param.MotorStopLock_Flag == SET)
|
|
|
{
|
|
|
- if(MC_TorqueProcess_Param.TorqueRefEnd <= 14)
|
|
|
+ if(MC_TorqueProcess_Param.TorqueRefEnd <= 7)
|
|
|
{
|
|
|
MC_TorqueProcess_Param.TorqueRefEnd = 0;
|
|
|
//停机处理
|
|
|
MC_MotorStop(&MC_StarFlag);
|
|
|
//缓启动标志置位
|
|
|
- SoftStarFlag = SET;
|
|
|
- SoftStarDelayTimeCount = 0;
|
|
|
+ SoftStartFlag = SET;
|
|
|
+ SoftStartDelayTimeCount = 0;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- MC_TorqueProcess_Param.TorqueRefEnd -= 14; //这里影响到停止踩踏后的断电时间
|
|
|
+ MC_TorqueProcess_Param.TorqueRefEnd -= 7; //这里影响到停止踩踏后的断电时间
|
|
|
MC_MotorStar(&MC_StarFlag);
|
|
|
}
|
|
|
}
|
|
@@ -722,25 +724,29 @@ MC_CalParam_Struct_t MC_AssistRunMode_Torque_Process(uint16_t SenorData, MC_Gear
|
|
|
case MC_GearSt_Torque_ECO:
|
|
|
{
|
|
|
//控制输入给定加速斜率
|
|
|
- TorqueAccStep = MC_AssisParam.Gear_ECO.AccCnt;
|
|
|
- //控制输入给定减速斜率
|
|
|
- TorqueDecStep = MC_AssisParam.Gear_ECO.DecCnt;
|
|
|
- //随力矩输入调节助力比
|
|
|
- if(MC_ConfigParam1.StarModel == MC_StarMode_DYNAMIC)//强劲模式
|
|
|
+ if(MC_ConfigParam1.UserAdjParam_ECO.StarModel_GAIN <= 80)
|
|
|
+ {
|
|
|
+ TorqueAccStep = MC_AssisParam.Gear_ECO.AccCnt - 1;
|
|
|
+ }
|
|
|
+ else if(MC_ConfigParam1.UserAdjParam_ECO.StarModel_GAIN >= 120)
|
|
|
{
|
|
|
- Torque_Temp = (uint16_t)((uint32_t)(MC_TorqueProcess_Param.TorqueApp * Coefficient_GainCal(300, MC_AssisParam.Gear_ECO.Gain_K, MC_AssisParam.Gear_ECO.Upper_Iq, MC_TorqueProcess_Param.TorqueApp)) >> 10);
|
|
|
- TorqueAccStep <<= 1;
|
|
|
- TorqueDecStep <<= 1;
|
|
|
+ TorqueAccStep = MC_AssisParam.Gear_ECO.AccCnt + 1;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- Torque_Temp = (uint16_t)((uint32_t)(MC_TorqueProcess_Param.TorqueApp * Coefficient_GainCal(100, MC_AssisParam.Gear_ECO.Gain_K, MC_AssisParam.Gear_ECO.Upper_Iq, MC_TorqueProcess_Param.TorqueApp)) >> 10);
|
|
|
+ TorqueAccStep = MC_AssisParam.Gear_ECO.AccCnt;
|
|
|
}
|
|
|
+ TorqueAccStep = (TorqueAccStep <= 0) ? 1 : TorqueAccStep;
|
|
|
+ //控制输入给定减速斜率
|
|
|
+ TorqueDecStep = MC_AssisParam.Gear_ECO.DecCnt;
|
|
|
+ //随力矩输入调节助力比
|
|
|
+ Torque_Temp = (uint16_t)((uint32_t)(MC_TorqueProcess_Param.TorqueApp * Coefficient_GainCal(100, MC_AssisParam.Gear_ECO.Gain_K, MC_AssisParam.Gear_ECO.Upper_Iq, MC_TorqueProcess_Param.TorqueApp)) >> 10);
|
|
|
+ //根据助力增益调节助力比
|
|
|
+ Torque_Temp = Torque_Temp * MC_ConfigParam1.UserAdjParam_ECO.Assist_K_GAIN / 100;
|
|
|
//给定下限
|
|
|
Torque_Temp = (Torque_Temp < MC_AssisParam.Gear_ECO.Lower_Iq) ? MC_AssisParam.Gear_ECO.Lower_Iq : Torque_Temp;
|
|
|
//给定上限
|
|
|
Torque_Temp = (Torque_Temp > MC_AssisParam.Gear_ECO.Upper_Iq) ? MC_AssisParam.Gear_ECO.Upper_Iq : Torque_Temp;
|
|
|
-
|
|
|
//限流参数设置
|
|
|
CurrentLimitSet = (uint32_t)(MC_AssisParam.Gear_ECO.CurrentMax_K * MC_ConfigParam1.CurrentLimit * 1000 >> 17) * 100;
|
|
|
CurrentLimitPresent = MC_DataSet_Linear_Process(CurrentLimitSet, CurrentLimitPresent, 5 ,1);
|
|
@@ -753,20 +759,25 @@ MC_CalParam_Struct_t MC_AssistRunMode_Torque_Process(uint16_t SenorData, MC_Gear
|
|
|
case MC_GearSt_Torque_NORM:
|
|
|
{
|
|
|
//控制输入给定加速斜率
|
|
|
- TorqueAccStep = MC_AssisParam.Gear_NORM.AccCnt;
|
|
|
- //控制输入给定减速斜率
|
|
|
- TorqueDecStep = MC_AssisParam.Gear_NORM.DecCnt;
|
|
|
- //随力矩输入调节助力比
|
|
|
- if(MC_ConfigParam1.StarModel == MC_StarMode_DYNAMIC)//强劲模式
|
|
|
+ if(MC_ConfigParam1.UserAdjParam_NORM.StarModel_GAIN <= 80)
|
|
|
+ {
|
|
|
+ TorqueAccStep = MC_AssisParam.Gear_NORM.AccCnt - 1;
|
|
|
+ }
|
|
|
+ else if(MC_ConfigParam1.UserAdjParam_NORM.StarModel_GAIN >= 120)
|
|
|
{
|
|
|
- Torque_Temp = (uint16_t)((uint32_t)(MC_TorqueProcess_Param.TorqueApp * Coefficient_GainCal(300, MC_AssisParam.Gear_NORM.Gain_K, MC_AssisParam.Gear_NORM.Upper_Iq, MC_TorqueProcess_Param.TorqueApp)) >> 10);
|
|
|
- TorqueAccStep <<= 1;
|
|
|
- TorqueDecStep <<= 1;
|
|
|
+ TorqueAccStep = MC_AssisParam.Gear_NORM.AccCnt + 1;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- Torque_Temp = (uint16_t)((uint32_t)(MC_TorqueProcess_Param.TorqueApp * Coefficient_GainCal(100, MC_AssisParam.Gear_NORM.Gain_K, MC_AssisParam.Gear_NORM.Upper_Iq, MC_TorqueProcess_Param.TorqueApp)) >> 10);
|
|
|
+ TorqueAccStep = MC_AssisParam.Gear_NORM.AccCnt;
|
|
|
}
|
|
|
+ TorqueAccStep = (TorqueAccStep <= 0) ? 1 : TorqueAccStep;
|
|
|
+ //控制输入给定减速斜率
|
|
|
+ TorqueDecStep = MC_AssisParam.Gear_NORM.DecCnt;
|
|
|
+ //随力矩输入调节助力比
|
|
|
+ Torque_Temp = (uint16_t)((uint32_t)(MC_TorqueProcess_Param.TorqueApp * Coefficient_GainCal(100, MC_AssisParam.Gear_NORM.Gain_K, MC_AssisParam.Gear_NORM.Upper_Iq, MC_TorqueProcess_Param.TorqueApp)) >> 10);
|
|
|
+ //根据助力增益调节助力比
|
|
|
+ Torque_Temp = Torque_Temp * MC_ConfigParam1.UserAdjParam_NORM.Assist_K_GAIN / 100;
|
|
|
//给定下限
|
|
|
Torque_Temp = (Torque_Temp < MC_AssisParam.Gear_NORM.Lower_Iq) ? MC_AssisParam.Gear_NORM.Lower_Iq : Torque_Temp;
|
|
|
//给定上限
|
|
@@ -784,25 +795,29 @@ MC_CalParam_Struct_t MC_AssistRunMode_Torque_Process(uint16_t SenorData, MC_Gear
|
|
|
case MC_GearSt_Torque_SPORT:
|
|
|
{
|
|
|
//控制输入给定加速斜率
|
|
|
- TorqueAccStep = MC_AssisParam.Gear_SPORT.AccCnt;
|
|
|
- //控制输入给定减速斜率
|
|
|
- TorqueDecStep = MC_AssisParam.Gear_SPORT.DecCnt;
|
|
|
- //随力矩输入调节助力比
|
|
|
- if(MC_ConfigParam1.StarModel == MC_StarMode_DYNAMIC)//强劲模式
|
|
|
+ if(MC_ConfigParam1.UserAdjParam_SPORT.StarModel_GAIN <= 80)
|
|
|
+ {
|
|
|
+ TorqueAccStep = MC_AssisParam.Gear_SPORT.AccCnt - 1;
|
|
|
+ }
|
|
|
+ else if(MC_ConfigParam1.UserAdjParam_SPORT.StarModel_GAIN >= 120)
|
|
|
{
|
|
|
- Torque_Temp = (uint16_t)((uint32_t)(MC_TorqueProcess_Param.TorqueApp * Coefficient_GainCal(300, MC_AssisParam.Gear_SPORT.Gain_K, MC_AssisParam.Gear_SPORT.Upper_Iq, MC_TorqueProcess_Param.TorqueApp)) >> 10);
|
|
|
- TorqueAccStep <<= 1;
|
|
|
- TorqueDecStep <<= 1;
|
|
|
+ TorqueAccStep = MC_AssisParam.Gear_SPORT.AccCnt + 1;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- Torque_Temp = (uint16_t)((uint32_t)(MC_TorqueProcess_Param.TorqueApp * Coefficient_GainCal(100, MC_AssisParam.Gear_SPORT.Gain_K, MC_AssisParam.Gear_SPORT.Upper_Iq, MC_TorqueProcess_Param.TorqueApp)) >> 10);
|
|
|
+ TorqueAccStep = MC_AssisParam.Gear_SPORT.AccCnt;
|
|
|
}
|
|
|
+ TorqueAccStep = (TorqueAccStep <= 0) ? 1 : TorqueAccStep;
|
|
|
+ //控制输入给定减速斜率
|
|
|
+ TorqueDecStep = MC_AssisParam.Gear_SPORT.DecCnt;
|
|
|
+ //随力矩输入调节助力比
|
|
|
+ Torque_Temp = (uint16_t)((uint32_t)(MC_TorqueProcess_Param.TorqueApp * Coefficient_GainCal(100, MC_AssisParam.Gear_SPORT.Gain_K, MC_AssisParam.Gear_SPORT.Upper_Iq, MC_TorqueProcess_Param.TorqueApp)) >> 10);
|
|
|
+ //根据助力增益调节助力比
|
|
|
+ Torque_Temp = Torque_Temp * MC_ConfigParam1.UserAdjParam_SPORT.Assist_K_GAIN / 100;
|
|
|
//给定下限
|
|
|
Torque_Temp = (Torque_Temp < MC_AssisParam.Gear_SPORT.Lower_Iq) ? MC_AssisParam.Gear_SPORT.Lower_Iq : Torque_Temp;
|
|
|
//给定上限
|
|
|
Torque_Temp = (Torque_Temp > MC_AssisParam.Gear_SPORT.Upper_Iq) ? MC_AssisParam.Gear_SPORT.Upper_Iq : Torque_Temp;
|
|
|
-
|
|
|
//限流参数设置
|
|
|
CurrentLimitSet = (uint32_t)(MC_AssisParam.Gear_SPORT.CurrentMax_K * MC_ConfigParam1.CurrentLimit * 1000 >> 17) * MC_CadenceLimit_K;
|
|
|
CurrentLimitPresent = MC_DataSet_Linear_Process(CurrentLimitSet, CurrentLimitPresent, 5 ,1);
|
|
@@ -815,25 +830,29 @@ MC_CalParam_Struct_t MC_AssistRunMode_Torque_Process(uint16_t SenorData, MC_Gear
|
|
|
case MC_GearSt_Torque_TURBO:
|
|
|
{
|
|
|
//控制输入给定加速斜率
|
|
|
- TorqueAccStep = MC_AssisParam.Gear_TURBO.AccCnt;
|
|
|
- //控制输入给定减速斜率
|
|
|
- TorqueDecStep = MC_AssisParam.Gear_TURBO.DecCnt;
|
|
|
- //随力矩输入调节助力比
|
|
|
- if(MC_ConfigParam1.StarModel == MC_StarMode_DYNAMIC)//强劲模式
|
|
|
+ if(MC_ConfigParam1.UserAdjParam_TURBO.StarModel_GAIN <= 80)
|
|
|
{
|
|
|
- Torque_Temp = (uint16_t)((uint32_t)(MC_TorqueProcess_Param.TorqueApp * Coefficient_GainCal(300, MC_AssisParam.Gear_TURBO.Gain_K, MC_AssisParam.Gear_TURBO.Upper_Iq, MC_TorqueProcess_Param.TorqueApp)) >> 10);
|
|
|
- TorqueAccStep <<= 1;
|
|
|
- TorqueDecStep <<= 1;
|
|
|
+ TorqueAccStep = MC_AssisParam.Gear_TURBO.AccCnt - 1;
|
|
|
+ }
|
|
|
+ else if(MC_ConfigParam1.UserAdjParam_TURBO.StarModel_GAIN >= 120)
|
|
|
+ {
|
|
|
+ TorqueAccStep = MC_AssisParam.Gear_TURBO.AccCnt + 1;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- Torque_Temp = (uint16_t)((uint32_t)(MC_TorqueProcess_Param.TorqueApp * Coefficient_GainCal(100, MC_AssisParam.Gear_TURBO.Gain_K, MC_AssisParam.Gear_TURBO.Upper_Iq, MC_TorqueProcess_Param.TorqueApp)) >> 10);
|
|
|
+ TorqueAccStep = MC_AssisParam.Gear_TURBO.AccCnt;
|
|
|
}
|
|
|
+ TorqueAccStep = (TorqueAccStep <= 0) ? 1 : TorqueAccStep;
|
|
|
+ //控制输入给定减速斜率
|
|
|
+ TorqueDecStep = MC_AssisParam.Gear_TURBO.DecCnt;
|
|
|
+ //随力矩输入调节助力比
|
|
|
+ Torque_Temp = (uint16_t)((uint32_t)(MC_TorqueProcess_Param.TorqueApp * Coefficient_GainCal(100, MC_AssisParam.Gear_TURBO.Gain_K, MC_AssisParam.Gear_TURBO.Upper_Iq, MC_TorqueProcess_Param.TorqueApp)) >> 10);
|
|
|
+ //根据助力增益调节助力比
|
|
|
+ Torque_Temp = Torque_Temp * MC_ConfigParam1.UserAdjParam_TURBO.Assist_K_GAIN / 100;
|
|
|
//给定下限
|
|
|
Torque_Temp = (Torque_Temp < MC_AssisParam.Gear_TURBO.Lower_Iq) ? MC_AssisParam.Gear_TURBO.Lower_Iq : Torque_Temp;
|
|
|
//给定上限
|
|
|
Torque_Temp = (Torque_Temp > MC_AssisParam.Gear_TURBO.Upper_Iq) ? MC_AssisParam.Gear_TURBO.Upper_Iq : Torque_Temp;
|
|
|
-
|
|
|
//限流参数设置
|
|
|
CurrentLimitSet = (uint32_t)(MC_AssisParam.Gear_TURBO.CurrentMax_K * MC_ConfigParam1.CurrentLimit * 1000 >> 17) * MC_CadenceLimit_K;
|
|
|
CurrentLimitPresent = MC_DataSet_Linear_Process(CurrentLimitSet, CurrentLimitPresent, 5 ,1);
|
|
@@ -846,22 +865,29 @@ MC_CalParam_Struct_t MC_AssistRunMode_Torque_Process(uint16_t SenorData, MC_Gear
|
|
|
case MC_GearSt_SMART:
|
|
|
{
|
|
|
//控制输入给定加速斜率
|
|
|
- TorqueAccStep = MC_AssisParam.Gear_SMART.AccCnt;
|
|
|
+ if(MC_ConfigParam1.UserAdjParam_SMART.StarModel_GAIN <= 80)
|
|
|
+ {
|
|
|
+ TorqueAccStep = MC_AssisParam.Gear_SMART.AccCnt - 1;
|
|
|
+ }
|
|
|
+ else if(MC_ConfigParam1.UserAdjParam_SMART.StarModel_GAIN >= 120)
|
|
|
+ {
|
|
|
+ TorqueAccStep = MC_AssisParam.Gear_SMART.AccCnt + 1;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ TorqueAccStep = MC_AssisParam.Gear_SMART.AccCnt;
|
|
|
+ }
|
|
|
+ TorqueAccStep = (TorqueAccStep <= 0) ? 1 : TorqueAccStep;
|
|
|
//控制输入给定减速斜率
|
|
|
TorqueDecStep = MC_AssisParam.Gear_SMART.DecCnt;
|
|
|
//助力比控制系数
|
|
|
Torque_Temp = (uint32_t)(MC_TorqueProcess_Param.TorqueApp * MC_TorqueProcess_Param.TorqueApp) / (MC_AssisParam.Gear_SMART.i_Sport_TH);
|
|
|
- if(MC_ConfigParam1.StarModel == MC_StarMode_DYNAMIC)//强劲模式
|
|
|
- {
|
|
|
- Torque_Temp = (uint16_t)((uint32_t)(Torque_Temp * Coefficient_GainCal(100, 1382, MC_AssisParam.Gear_SMART.i_Sport_TH, Torque_Temp)) >> 10);
|
|
|
- TorqueAccStep <<= 1;
|
|
|
- TorqueDecStep <<= 1;
|
|
|
- }
|
|
|
+ //根据助力增益调节助力比
|
|
|
+ Torque_Temp = Torque_Temp * MC_ConfigParam1.UserAdjParam_SMART.Assist_K_GAIN / 100;
|
|
|
//给定下限
|
|
|
Torque_Temp = (Torque_Temp < MC_AssisParam.Gear_SMART.Lower_Iq) ? MC_AssisParam.Gear_SMART.Lower_Iq : Torque_Temp;
|
|
|
//给定上限
|
|
|
Torque_Temp = (Torque_Temp > MC_AssisParam.Gear_SMART.Upper_Iq) ? MC_AssisParam.Gear_SMART.Upper_Iq : Torque_Temp;
|
|
|
-
|
|
|
//限流参数设置
|
|
|
CurrentLimitSet = (uint32_t)(MC_AssisParam.Gear_SMART.CurrentMax_K * MC_ConfigParam1.CurrentLimit * 1000 >> 17) * MC_CadenceLimit_K;
|
|
|
CurrentLimitPresent = MC_DataSet_Linear_Process(CurrentLimitSet, CurrentLimitPresent, 5 ,1);
|
|
@@ -881,19 +907,9 @@ MC_CalParam_Struct_t MC_AssistRunMode_Torque_Process(uint16_t SenorData, MC_Gear
|
|
|
}
|
|
|
|
|
|
//随车速调节助力比
|
|
|
- if(MC_ConfigParam1.StarModel == MC_StarMode_DYNAMIC)
|
|
|
- {
|
|
|
- Torque_Temp = (uint16_t)((uint32_t)(Torque_Temp * Function_Linear_3Stage(90, -2, MC_ConfigParam1.SpeedLimit * 10, 52, MC_SpeedSensorData.Speed_Data)) >> 10);
|
|
|
- }
|
|
|
- else if(MC_ConfigParam1.StarModel == MC_StarMode_SOFT)
|
|
|
- {
|
|
|
- Torque_Temp = (uint16_t)((uint32_t)(Torque_Temp * Function_Linear_3Stage(120, -3, MC_ConfigParam1.SpeedLimit * 10, 52, MC_SpeedSensorData.Speed_Data)) >> 10);
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- Torque_Temp = (uint16_t)((uint32_t)(Torque_Temp * Function_Linear_3Stage(MC_ConfigParam1.SpeedLimit * 10, 0, MC_ConfigParam1.SpeedLimit * 10, 52, MC_SpeedSensorData.Speed_Data)) >> 10);
|
|
|
- }
|
|
|
-
|
|
|
+ Torque_Temp = (uint16_t)((uint32_t)(Torque_Temp * Function_Linear_3Stage(MC_ConfigParam1.SpeedLimit * 10, 0, MC_ConfigParam1.SpeedLimit * 10, 52, MC_SpeedSensorData.Speed_Data)) >> 10);
|
|
|
+
|
|
|
+ //助力输出
|
|
|
MC_TorqueProcess_Param.TorqueRef = Torque_Temp;
|
|
|
if(MC_TorqueProcess_Param.TorqueRef <= 0)
|
|
|
{
|
|
@@ -909,7 +925,7 @@ 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;
|
|
|
+ MC_TorqueProcess_Param.TorqueRefEnd -= 1;
|
|
|
}
|
|
|
}
|
|
|
else if( (Bike_Attitude.UpWardSlope_flag == TRUE)&&(MC_SpeedSensorData.Speed_Data < 100)) //上坡处理
|
|
@@ -928,31 +944,44 @@ MC_CalParam_Struct_t MC_AssistRunMode_Torque_Process(uint16_t SenorData, MC_Gear
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- #if 1
|
|
|
- else if(SoftStarFlag == SET) //缓启动处理
|
|
|
+ else if(SoftStartFlag == SET) //启动处理
|
|
|
{
|
|
|
- SoftStarDelayTimeCount++;
|
|
|
- if(SoftStarDelayTimeCount <= 750) // 启动前750ms,按照0.1倍率逐步增加加减速斜率
|
|
|
+ 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倍
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ SoftStartDelayTime = 300; //启动处理延时300ms
|
|
|
+ SoftStartAcc = 30; //30ms递增0.1倍
|
|
|
+ }
|
|
|
+ SoftStartDelayTimeCount++;
|
|
|
+ if(SoftStartDelayTimeCount <= SoftStartDelayTime) // 缓启动过程,按照0.1倍率逐步增加加减速斜率
|
|
|
{
|
|
|
- if((SoftStarDelayTimeCount % (10 - SoftStarDelayTimeCount / 75)) == 0)
|
|
|
+ if((MC_TorqueProcess_Param.TorqueRef - MC_TorqueProcess_Param.TorqueRefEnd) > 2)
|
|
|
{
|
|
|
- if((MC_TorqueProcess_Param.TorqueRef - MC_TorqueProcess_Param.TorqueRefEnd) > 2)
|
|
|
+ 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))
|
|
|
+ {
|
|
|
+ MC_TorqueProcess_Param.TorqueRefEnd -= TorqueDecStep;
|
|
|
}
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- SoftStarDelayTimeCount = 0;
|
|
|
- SoftStarFlag = RESET;
|
|
|
+ SoftStartDelayTimeCount = 0;
|
|
|
+ SoftStartFlag = RESET;
|
|
|
}
|
|
|
}
|
|
|
- #endif
|
|
|
else //正常骑行
|
|
|
{
|
|
|
if((MC_TorqueProcess_Param.TorqueRef - MC_TorqueProcess_Param.TorqueRefEnd) > 2)
|