|
@@ -583,10 +583,6 @@ MC_CalParam_Struct_t MC_AssistRunMode_Torque_Process(uint16_t SenorData, MC_Gear
|
|
|
uint16_t CurrentLimitSet; //限流设置值,不同助力档位更新
|
|
|
|
|
|
static uint8_t TorqueRefEndUpdateCount = 0;
|
|
|
- static FlagStatus SoftStartFlag = SET;
|
|
|
- static uint16_t SoftStartDelayTimeCount = 0;
|
|
|
- uint16_t SoftStartDelayTime = 0;
|
|
|
- uint16_t SoftStartAcc = 0;
|
|
|
|
|
|
#if 1
|
|
|
|
|
@@ -678,7 +674,7 @@ MC_CalParam_Struct_t MC_AssistRunMode_Torque_Process(uint16_t SenorData, MC_Gear
|
|
|
//启动值判断
|
|
|
if(MC_RunInfo.BikeSpeed > 60)
|
|
|
{
|
|
|
- TorqueStartData = (TorqueStartData < 200 ? 150 : (TorqueStartData > 700 ? 525 : (TorqueStartData * 3 >> 2)));
|
|
|
+ TorqueStartData = (TorqueStartData < 200 ? 150 : (TorqueStartData > 700 ? 525 : ((TorqueStartData * 3) >> 2)));
|
|
|
}
|
|
|
else
|
|
|
{
|
|
@@ -705,9 +701,6 @@ MC_CalParam_Struct_t MC_AssistRunMode_Torque_Process(uint16_t SenorData, MC_Gear
|
|
|
MC_TorqueProcess_Param.TorqueRefEnd = 0;
|
|
|
//停机处理
|
|
|
MC_MotorStop(&MC_StarFlag);
|
|
|
- //缓启动标志置位
|
|
|
- SoftStartFlag = SET;
|
|
|
- SoftStartDelayTimeCount = 0;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
@@ -740,7 +733,7 @@ MC_CalParam_Struct_t MC_AssistRunMode_Torque_Process(uint16_t SenorData, MC_Gear
|
|
|
//控制输入给定减速斜率
|
|
|
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.TorqueApp_TH, MC_TorqueProcess_Param.TorqueApp)) >> 10);
|
|
|
+ Torque_Temp = (uint16_t)((uint32_t)(MC_TorqueProcess_Param.TorqueApp * Coefficient_GainCal(MC_AssisParam.Gear_ECO.Gain_K >> 1, MC_AssisParam.Gear_ECO.Gain_K, MC_AssisParam.Gear_ECO.TorqueApp_TH, MC_TorqueProcess_Param.TorqueApp)) >> 10);
|
|
|
//根据助力增益调节助力比
|
|
|
Torque_Temp = Torque_Temp * MC_ConfigParam1.UserAdjParam_ECO.Assist_K_GAIN / 100;
|
|
|
//给定下限
|
|
@@ -775,7 +768,7 @@ MC_CalParam_Struct_t MC_AssistRunMode_Torque_Process(uint16_t SenorData, MC_Gear
|
|
|
//控制输入给定减速斜率
|
|
|
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.TorqueApp_TH, MC_TorqueProcess_Param.TorqueApp)) >> 10);
|
|
|
+ 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);
|
|
|
//根据助力增益调节助力比
|
|
|
Torque_Temp = Torque_Temp * MC_ConfigParam1.UserAdjParam_NORM.Assist_K_GAIN / 100;
|
|
|
//给定下限
|
|
@@ -811,7 +804,7 @@ MC_CalParam_Struct_t MC_AssistRunMode_Torque_Process(uint16_t SenorData, MC_Gear
|
|
|
//控制输入给定减速斜率
|
|
|
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.TorqueApp_TH, MC_TorqueProcess_Param.TorqueApp)) >> 10);
|
|
|
+ Torque_Temp = (uint16_t)((uint32_t)(MC_TorqueProcess_Param.TorqueApp * Coefficient_GainCal(MC_AssisParam.Gear_SPORT.Gain_K >> 1, MC_AssisParam.Gear_SPORT.Gain_K, MC_AssisParam.Gear_SPORT.TorqueApp_TH, MC_TorqueProcess_Param.TorqueApp)) >> 10);
|
|
|
//根据助力增益调节助力比
|
|
|
Torque_Temp = Torque_Temp * MC_ConfigParam1.UserAdjParam_SPORT.Assist_K_GAIN / 100;
|
|
|
//给定下限
|
|
@@ -846,7 +839,7 @@ MC_CalParam_Struct_t MC_AssistRunMode_Torque_Process(uint16_t SenorData, MC_Gear
|
|
|
//控制输入给定减速斜率
|
|
|
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.TorqueApp_TH, MC_TorqueProcess_Param.TorqueApp)) >> 10);
|
|
|
+ Torque_Temp = (uint16_t)((uint32_t)(MC_TorqueProcess_Param.TorqueApp * Coefficient_GainCal(MC_AssisParam.Gear_TURBO.Gain_K >> 1, MC_AssisParam.Gear_TURBO.Gain_K, MC_AssisParam.Gear_TURBO.TorqueApp_TH, MC_TorqueProcess_Param.TorqueApp)) >> 10);
|
|
|
//根据助力增益调节助力比
|
|
|
Torque_Temp = Torque_Temp * MC_ConfigParam1.UserAdjParam_TURBO.Assist_K_GAIN / 100;
|
|
|
//给定下限
|
|
@@ -944,44 +937,6 @@ MC_CalParam_Struct_t MC_AssistRunMode_Torque_Process(uint16_t SenorData, MC_Gear
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- else if(SoftStartFlag == SET) //启动处理
|
|
|
- {
|
|
|
- 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((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
|
|
|
- {
|
|
|
- SoftStartDelayTimeCount = 0;
|
|
|
- SoftStartFlag = RESET;
|
|
|
- }
|
|
|
- }
|
|
|
else //正常骑行
|
|
|
{
|
|
|
if((MC_TorqueProcess_Param.TorqueRef - MC_TorqueProcess_Param.TorqueRefEnd) > 2)
|