|
@@ -1256,7 +1256,7 @@ MC_CalParam_Struct_t MC_AssistRunMode_Torque_Process(MC_CadenceResult_Struct_t C
|
|
|
MC_TorqueProcess_Param.MotorStopLock_Flag = SET;
|
|
|
}
|
|
|
//设定马达输出力矩
|
|
|
- MC_TorqueProcess_Param.TorqueApp = (AdcSenorData.GasSensor * MC_AssisParam.Gear_TURBO.Upper_Iq) >> 11;
|
|
|
+ MC_TorqueProcess_Param.TorqueApp = (AdcSenorData.GasSensor * MC_AssisParam.Gear_5.Upper_Iq) >> 11;
|
|
|
if(MC_TorqueProcess_Param.TorqueApp < CadenceData.torqueByCadence)
|
|
|
{
|
|
|
MC_TorqueProcess_Param.TorqueApp = CadenceData.torqueByCadence;
|
|
@@ -1417,12 +1417,12 @@ MC_CalParam_Struct_t MC_AssistRunMode_Torque_Process(MC_CadenceResult_Struct_t C
|
|
|
TorqueAccStep = 3;
|
|
|
TorqueDecStep = 7;
|
|
|
//给定上限
|
|
|
- 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) * 100;
|
|
|
+ Torque_Temp = (Torque_Temp > MC_AssisParam.Gear_5.Upper_Iq) ? MC_AssisParam.Gear_5.Upper_Iq : Torque_Temp;
|
|
|
+ CurrentLimitSet = (uint32_t)(MC_AssisParam.Gear_5.CurrentMax_K * MC_ConfigParam1.CurrentLimit * 1000 >> 17) * 100;
|
|
|
CurrentLimitPresent = MC_DataSet_Linear_Process(CurrentLimitSet, CurrentLimitPresent, 5 ,1);
|
|
|
- PID_IMax.hLower_Limit_Output = -(MC_AssisParam.Gear_TURBO.Upper_Iq); //Lower Limit for Output limitation
|
|
|
+ PID_IMax.hLower_Limit_Output = -(MC_AssisParam.Gear_5.Upper_Iq); //Lower Limit for Output limitation
|
|
|
PID_IMax.hUpper_Limit_Output = 0; //Upper Limit for Output limitation
|
|
|
- PID_IMax.wLower_Limit_Integral = -(MC_AssisParam.Gear_TURBO.Upper_Iq << 10); // 放大1024
|
|
|
+ PID_IMax.wLower_Limit_Integral = -(MC_AssisParam.Gear_5.Upper_Iq << 10); // 放大1024
|
|
|
PID_IMax.wUpper_Limit_Integral = 0; // 放大1024
|
|
|
}
|
|
|
else
|
|
@@ -1571,6 +1571,41 @@ MC_CalParam_Struct_t MC_AssistRunMode_Torque_Process(MC_CadenceResult_Struct_t C
|
|
|
PID_IMax.wUpper_Limit_Integral = 0; // 放大1024
|
|
|
break;
|
|
|
}
|
|
|
+ case MC_GearSt_Torque_5:
|
|
|
+ {
|
|
|
+ //控制输入给定加速斜率
|
|
|
+ if(MC_ConfigParam1.UserAdjParam_TURBO.StarModel_GAIN <= 90)
|
|
|
+ {
|
|
|
+ TorqueAccStep = MC_AssisParam.Gear_5.AccCnt - 1;
|
|
|
+ }
|
|
|
+ else if(MC_ConfigParam1.UserAdjParam_TURBO.StarModel_GAIN >= 110)
|
|
|
+ {
|
|
|
+ TorqueAccStep = MC_AssisParam.Gear_5.AccCnt + 1;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ TorqueAccStep = MC_AssisParam.Gear_5.AccCnt;
|
|
|
+ }
|
|
|
+ TorqueAccStep = (TorqueAccStep <= 0) ? 1 : TorqueAccStep;
|
|
|
+ //控制输入给定减速斜率
|
|
|
+ TorqueDecStep = MC_AssisParam.Gear_5.DecCnt;
|
|
|
+ //随力矩输入调节助力比
|
|
|
+ Torque_Temp = (uint16_t)((uint32_t)(MC_TorqueProcess_Param.TorqueApp * Coefficient_GainCal(MC_AssisParam.Gear_5.Gain_K >> 1, MC_AssisParam.Gear_5.Gain_K, MC_AssisParam.Gear_5.TorqueApp_TH, MC_TorqueProcess_Param.TorqueApp)) >> 10);
|
|
|
+ //根据助力增益调节助力比
|
|
|
+ Torque_Temp = Torque_Temp * MC_ConfigParam1.UserAdjParam_TURBO.Assist_K_GAIN / 100;
|
|
|
+ //给定下限
|
|
|
+ Torque_Temp = (Torque_Temp < MC_AssisParam.Gear_5.Lower_Iq) ? MC_AssisParam.Gear_5.Lower_Iq : Torque_Temp;
|
|
|
+ //给定上限
|
|
|
+ Torque_Temp = (Torque_Temp > MC_AssisParam.Gear_5.Upper_Iq) ? MC_AssisParam.Gear_5.Upper_Iq : Torque_Temp;
|
|
|
+ //限流参数设置
|
|
|
+ CurrentLimitSet = (uint32_t)(MC_AssisParam.Gear_5.CurrentMax_K * MC_ConfigParam1.CurrentLimit * 1000 >> 17) * MC_CadenceLimit_K;
|
|
|
+ CurrentLimitPresent = MC_DataSet_Linear_Process(CurrentLimitSet, CurrentLimitPresent, 5 ,1);
|
|
|
+ PID_IMax.hLower_Limit_Output = -(MC_AssisParam.Gear_5.Upper_Iq); //Lower Limit for Output limitation
|
|
|
+ PID_IMax.hUpper_Limit_Output = 0; //Upper Limit for Output limitation
|
|
|
+ PID_IMax.wLower_Limit_Integral = -(MC_AssisParam.Gear_5.Upper_Iq << 10); // 放大1024
|
|
|
+ PID_IMax.wUpper_Limit_Integral = 0; // 放大1024
|
|
|
+ break;
|
|
|
+ }
|
|
|
case MC_GearSt_SMART:
|
|
|
{
|
|
|
//控制输入给定加速斜率
|
|
@@ -1611,33 +1646,33 @@ MC_CalParam_Struct_t MC_AssistRunMode_Torque_Process(MC_CadenceResult_Struct_t C
|
|
|
//控制输入给定加速斜率
|
|
|
if(MC_ConfigParam1.UserAdjParam_SMART.StarModel_GAIN <= 90)
|
|
|
{
|
|
|
- TorqueAccStep = MC_AssisParam.Gear_SMART.AccCnt - 1;
|
|
|
+ TorqueAccStep = MC_AssisParam.Gear_SMART_T.AccCnt - 1;
|
|
|
}
|
|
|
else if(MC_ConfigParam1.UserAdjParam_SMART.StarModel_GAIN >= 110)
|
|
|
{
|
|
|
- TorqueAccStep = MC_AssisParam.Gear_SMART.AccCnt + 1;
|
|
|
+ TorqueAccStep = MC_AssisParam.Gear_SMART_T.AccCnt + 1;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- TorqueAccStep = MC_AssisParam.Gear_SMART.AccCnt;
|
|
|
+ TorqueAccStep = MC_AssisParam.Gear_SMART_T.AccCnt;
|
|
|
}
|
|
|
TorqueAccStep = (TorqueAccStep <= 0) ? 1 : TorqueAccStep;
|
|
|
//控制输入给定减速斜率
|
|
|
- TorqueDecStep = MC_AssisParam.Gear_SMART.DecCnt;
|
|
|
+ TorqueDecStep = MC_AssisParam.Gear_SMART_T.DecCnt;
|
|
|
//助力比控制系数
|
|
|
- Torque_Temp = (uint32_t)(MC_TorqueProcess_Param.TorqueApp * MC_TorqueProcess_Param.TorqueApp) / ((MC_AssisParam.Gear_SMART.TorqueApp_TH * 6) >> 2);//助力比曲线调整
|
|
|
+ Torque_Temp = (uint32_t)(MC_TorqueProcess_Param.TorqueApp * MC_TorqueProcess_Param.TorqueApp) / (MC_AssisParam.Gear_SMART_T.TorqueApp_TH);//助力比曲线调整
|
|
|
//根据助力增益调节助力比
|
|
|
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_T.Lower_Iq) ? MC_AssisParam.Gear_SMART_T.Lower_Iq : Torque_Temp;
|
|
|
//给定上限
|
|
|
- Torque_Temp = (Torque_Temp > MC_AssisParam.Gear_SMART.Upper_Iq) ? MC_AssisParam.Gear_SMART.Upper_Iq : Torque_Temp;
|
|
|
+ Torque_Temp = (Torque_Temp > MC_AssisParam.Gear_SMART_T.Upper_Iq) ? MC_AssisParam.Gear_SMART_T.Upper_Iq : Torque_Temp;
|
|
|
//限流参数设置
|
|
|
- CurrentLimitSet = (uint32_t)(((MC_AssisParam.Gear_SMART.CurrentMax_K * 5) >> 3) * MC_ConfigParam1.CurrentLimit * 1000 >> 17) * MC_CadenceLimit_K;//限流降低为62.5%
|
|
|
+ CurrentLimitSet = (uint32_t)(MC_AssisParam.Gear_SMART_T.CurrentMax_K * MC_ConfigParam1.CurrentLimit * 1000 >> 17) * MC_CadenceLimit_K;//限流降低为62.5%
|
|
|
CurrentLimitPresent = MC_DataSet_Linear_Process(CurrentLimitSet, CurrentLimitPresent, 5 ,1);
|
|
|
- PID_IMax.hLower_Limit_Output = -(MC_AssisParam.Gear_SMART.Upper_Iq); //Lower Limit for Output limitation
|
|
|
+ PID_IMax.hLower_Limit_Output = -(MC_AssisParam.Gear_SMART_T.Upper_Iq); //Lower Limit for Output limitation
|
|
|
PID_IMax.hUpper_Limit_Output = 0; //Upper Limit for Output limitation
|
|
|
- PID_IMax.wLower_Limit_Integral = -(MC_AssisParam.Gear_SMART.Upper_Iq << 10); // 放大1024
|
|
|
+ PID_IMax.wLower_Limit_Integral = -(MC_AssisParam.Gear_SMART_T.Upper_Iq << 10); // 放大1024
|
|
|
PID_IMax.wUpper_Limit_Integral = 0; // 放大1024
|
|
|
break;
|
|
|
}
|