|
@@ -169,7 +169,7 @@ uint16_t MC_LimitSpeed_Cal_K_BySOC(FunctionalState Flag, uint16_t SOC)
|
|
|
return Limit_K_BySOC;
|
|
|
}
|
|
|
|
|
|
-//随温度计算助力衰减系数
|
|
|
+//随温度计算助力衰减系数,温度区间25℃
|
|
|
uint16_t MC_Cal_K_ByTemperature(uint16_t CoilTemp, uint16_t AlarmTempTH)
|
|
|
{
|
|
|
uint32_t CalTemp;
|
|
@@ -542,9 +542,9 @@ MC_CalParam_Struct_t MC_AssistRunMode_GasTorque_Process(MC_GasMode_Struct_t GasM
|
|
|
case MC_GearSt_Torque_ECO:
|
|
|
{
|
|
|
//控制输入给定加速斜率
|
|
|
- TorqueAccStep = (MC_AssisParam.Gear_ECO.AccCnt <= 0) ? 1 : MC_AssisParam.Gear_ECO.AccCnt;
|
|
|
+ TorqueAccStep = 1;
|
|
|
//控制输入给定减速斜率
|
|
|
- TorqueDecStep = MC_AssisParam.Gear_ECO.DecCnt;
|
|
|
+ TorqueDecStep = 1;
|
|
|
//根据输入调节力矩环给定
|
|
|
Torque_Temp = (uint32_t)(MC_TorqueProcess_Param.TorqueApp * MC_AssisParam.Gear_ECO.Upper_Iq) >> 11;
|
|
|
//给定上限
|
|
@@ -561,9 +561,9 @@ MC_CalParam_Struct_t MC_AssistRunMode_GasTorque_Process(MC_GasMode_Struct_t GasM
|
|
|
case MC_GearSt_Torque_NORM:
|
|
|
{
|
|
|
//控制输入给定加速斜率
|
|
|
- TorqueAccStep = (MC_AssisParam.Gear_NORM.AccCnt <= 0) ? 1 : MC_AssisParam.Gear_NORM.AccCnt;
|
|
|
+ TorqueAccStep = 1;
|
|
|
//控制输入给定减速斜率
|
|
|
- TorqueDecStep = MC_AssisParam.Gear_NORM.DecCnt;
|
|
|
+ TorqueDecStep = 1;
|
|
|
//根据输入调节力矩环给定
|
|
|
Torque_Temp = (uint32_t)(MC_TorqueProcess_Param.TorqueApp * MC_AssisParam.Gear_NORM.Upper_Iq) >> 11;
|
|
|
//给定上限
|
|
@@ -580,9 +580,9 @@ MC_CalParam_Struct_t MC_AssistRunMode_GasTorque_Process(MC_GasMode_Struct_t GasM
|
|
|
case MC_GearSt_Torque_SPORT:
|
|
|
{
|
|
|
//控制输入给定加速斜率
|
|
|
- TorqueAccStep = (MC_AssisParam.Gear_SPORT.AccCnt <= 0) ? 1 : MC_AssisParam.Gear_SPORT.AccCnt;
|
|
|
+ TorqueAccStep = 1;
|
|
|
//控制输入给定减速斜率
|
|
|
- TorqueDecStep = MC_AssisParam.Gear_SPORT.DecCnt;
|
|
|
+ TorqueDecStep = 1;
|
|
|
//根据输入调节力矩环给定
|
|
|
Torque_Temp = (uint32_t)(MC_TorqueProcess_Param.TorqueApp * MC_AssisParam.Gear_SPORT.Upper_Iq) >> 11;
|
|
|
//给定上限
|
|
@@ -599,9 +599,9 @@ MC_CalParam_Struct_t MC_AssistRunMode_GasTorque_Process(MC_GasMode_Struct_t GasM
|
|
|
case MC_GearSt_Torque_TURBO: case MC_GearSt_SMART:
|
|
|
{
|
|
|
//控制输入给定加速斜率
|
|
|
- TorqueAccStep = (MC_AssisParam.Gear_TURBO.AccCnt <= 0) ? 1 : MC_AssisParam.Gear_TURBO.AccCnt;
|
|
|
+ TorqueAccStep = 1;
|
|
|
//控制输入给定减速斜率
|
|
|
- TorqueDecStep = MC_AssisParam.Gear_TURBO.DecCnt;
|
|
|
+ TorqueDecStep = 1;
|
|
|
//根据输入调节力矩环给定
|
|
|
Torque_Temp = (uint32_t)(MC_TorqueProcess_Param.TorqueApp * MC_AssisParam.Gear_TURBO.Upper_Iq) >> 11;
|
|
|
//给定上限
|
|
@@ -627,9 +627,9 @@ MC_CalParam_Struct_t MC_AssistRunMode_GasTorque_Process(MC_GasMode_Struct_t GasM
|
|
|
else if(GasMode_Param.Mode_bit.PowerLimitFlag == 0) //不根据挡位限制功率,按照Turbo参数
|
|
|
{
|
|
|
//控制输入给定加速斜率
|
|
|
- TorqueAccStep = (MC_AssisParam.Gear_SMART.AccCnt <= 0) ? 1 : MC_AssisParam.Gear_SMART.AccCnt;
|
|
|
+ TorqueAccStep = 1;
|
|
|
//控制输入给定减速斜率
|
|
|
- TorqueDecStep = MC_AssisParam.Gear_TURBO.DecCnt;
|
|
|
+ TorqueDecStep = 1;
|
|
|
//根据输入调节力矩环给定
|
|
|
Torque_Temp = (uint32_t)(MC_TorqueProcess_Param.TorqueApp * MC_AssisParam.Gear_TURBO.Upper_Iq) >> 11;
|
|
|
//给定上限
|
|
@@ -687,7 +687,7 @@ MC_CalParam_Struct_t MC_AssistRunMode_GasTorque_Process(MC_GasMode_Struct_t GasM
|
|
|
MC_TorqueProcess_Param.TorqueRefEnd -= 1;
|
|
|
}
|
|
|
}
|
|
|
- else if((0)&&(MC_SpeedSensorData.Speed_Data < 100)) //上坡处理,取消了坡度传感器,这里不执行
|
|
|
+ else if((0)&&(MC_SpeedSensorData.Speed_Data < 100)) //上坡处理,取消了坡度传感器,这里不执行
|
|
|
{
|
|
|
if((MC_TorqueProcess_Param.TorqueRef - MC_TorqueProcess_Param.TorqueRefEnd) > 2)
|
|
|
{
|
|
@@ -734,7 +734,7 @@ MC_CalParam_Struct_t MC_AssistRunMode_GasTorque_Process(MC_GasMode_Struct_t GasM
|
|
|
static uint16_t K_ByVoltage_Set_Old = 1024;
|
|
|
uint16_t K_ByVoltage_Set;
|
|
|
static uint16_t K_ByVoltage_Result;
|
|
|
- uint32_t K_ByTemperature_Set, K_ByTemperature_Set1, K_ByTemperature_Set2;
|
|
|
+ uint16_t K_ByTemperature_Set, K_ByTemperature_SetTemp[3];;
|
|
|
static uint16_t K_ByTemperature_Result;
|
|
|
|
|
|
//根据电压调节输出
|
|
@@ -743,9 +743,10 @@ MC_CalParam_Struct_t MC_AssistRunMode_GasTorque_Process(MC_GasMode_Struct_t GasM
|
|
|
K_ByVoltage_Result = MC_DataSet_Linear_Process(K_ByVoltage_Set, K_ByVoltage_Result, 1, 1); //设定值与给定值线性处理
|
|
|
|
|
|
//根据温度调节输出
|
|
|
- K_ByTemperature_Set1 = MC_Cal_K_ByTemperature(MC_RunInfo.T_Coil, MC_ConfigParam1.TempTH_Alarm); //根据温度计算衰减比例
|
|
|
- K_ByTemperature_Set2 = MC_Cal_K_ByTemperature(MC_RunInfo.T_PCB, (MC_ConfigParam1.TempTH_Alarm-15)); //根据温度计算衰减比例
|
|
|
- K_ByTemperature_Set = (K_ByTemperature_Set1 * K_ByTemperature_Set2)>>10;
|
|
|
+ K_ByTemperature_SetTemp[0] = MC_Cal_K_ByTemperature(MC_RunInfo.T_PCB, (MC_ConfigParam1.TempTH_Alarm - 15)); //根据PCB温度衰减系数,80℃到105℃
|
|
|
+ K_ByTemperature_SetTemp[1] = MC_Cal_K_ByTemperature(MC_RunInfo.T_MCU, (MC_ConfigParam1.TempTH_Alarm - 5)); //根据MOS温度衰减系数,90℃到115℃
|
|
|
+ K_ByTemperature_SetTemp[2] = MC_Cal_K_ByTemperature(MC_RunInfo.T_Coil, (MC_ConfigParam1.TempTH_Alarm)); //根据电机温度衰减系数,95℃到120℃
|
|
|
+ K_ByTemperature_Set = GetMinData(K_ByTemperature_SetTemp, 3);
|
|
|
K_ByTemperature_Result = MC_DataSet_Linear_Process(K_ByTemperature_Set, K_ByTemperature_Result, 1, 1); //设定值与给定值线性处理
|
|
|
|
|
|
#else
|
|
@@ -864,7 +865,7 @@ MC_CalParam_Struct_t MC_AssistRunMode_Walk_Process(MC_WorkMode_Struct_t p_MC_Wor
|
|
|
static uint16_t K_ByVoltage_Set_Old = 1024;
|
|
|
uint16_t K_ByVoltage_Set;
|
|
|
static uint16_t K_ByVoltage_Result;
|
|
|
- uint16_t K_ByTemperature_Set;
|
|
|
+ uint16_t K_ByTemperature_Set, K_ByTemperature_SetTemp[3];
|
|
|
static uint16_t K_ByTemperature_Result;
|
|
|
|
|
|
//根据电压调节输出
|
|
@@ -873,7 +874,10 @@ MC_CalParam_Struct_t MC_AssistRunMode_Walk_Process(MC_WorkMode_Struct_t p_MC_Wor
|
|
|
K_ByVoltage_Result = MC_DataSet_Linear_Process(K_ByVoltage_Set, K_ByVoltage_Result, 1, 1); //设定值与给定值线性处理
|
|
|
|
|
|
//根据温度调节输出
|
|
|
- K_ByTemperature_Set = MC_Cal_K_ByTemperature(MC_RunInfo.T_Coil, MC_ConfigParam1.TempTH_Alarm); //根据温度计算衰减比例
|
|
|
+ K_ByTemperature_SetTemp[0] = MC_Cal_K_ByTemperature(MC_RunInfo.T_PCB, (MC_ConfigParam1.TempTH_Alarm - 15)); //根据PCB温度衰减系数,80℃到105℃
|
|
|
+ K_ByTemperature_SetTemp[1] = MC_Cal_K_ByTemperature(MC_RunInfo.T_MCU, (MC_ConfigParam1.TempTH_Alarm - 5)); //根据MOS温度衰减系数,90℃到115℃
|
|
|
+ K_ByTemperature_SetTemp[2] = MC_Cal_K_ByTemperature(MC_RunInfo.T_Coil, (MC_ConfigParam1.TempTH_Alarm)); //根据电机温度衰减系数,95℃到120℃
|
|
|
+ K_ByTemperature_Set = GetMinData(K_ByTemperature_SetTemp, 3);
|
|
|
K_ByTemperature_Result = MC_DataSet_Linear_Process(K_ByTemperature_Set, K_ByTemperature_Result, 1, 1); //设定值与给定值线性处理
|
|
|
|
|
|
#else
|
|
@@ -1351,7 +1355,7 @@ MC_CalParam_Struct_t MC_AssistRunMode_Torque_Process(uint16_t SenorData, MC_Gear
|
|
|
static uint16_t K_ByVoltage_Set_Old = 1024;
|
|
|
uint16_t K_ByVoltage_Set;
|
|
|
static uint16_t K_ByVoltage_Result;
|
|
|
- uint32_t K_ByTemperature_Set, K_ByTemperature_Set1, K_ByTemperature_Set2;
|
|
|
+ uint16_t K_ByTemperature_Set, K_ByTemperature_SetTemp[3];
|
|
|
static uint16_t K_ByTemperature_Result;
|
|
|
|
|
|
//根据电压调节输出
|
|
@@ -1360,9 +1364,10 @@ MC_CalParam_Struct_t MC_AssistRunMode_Torque_Process(uint16_t SenorData, MC_Gear
|
|
|
K_ByVoltage_Result = MC_DataSet_Linear_Process(K_ByVoltage_Set, K_ByVoltage_Result, 1, 1); //设定值与给定值线性处理
|
|
|
|
|
|
//根据温度调节输出
|
|
|
- K_ByTemperature_Set1 = MC_Cal_K_ByTemperature(MC_RunInfo.T_Coil, MC_ConfigParam1.TempTH_Alarm); //根据温度计算衰减比例
|
|
|
- K_ByTemperature_Set2 = MC_Cal_K_ByTemperature(MC_RunInfo.T_PCB, (MC_ConfigParam1.TempTH_Alarm-15)); //根据温度计算衰减比例
|
|
|
- K_ByTemperature_Set = (K_ByTemperature_Set1 * K_ByTemperature_Set2)>>10;
|
|
|
+ K_ByTemperature_SetTemp[0] = MC_Cal_K_ByTemperature(MC_RunInfo.T_PCB, (MC_ConfigParam1.TempTH_Alarm - 15)); //根据PCB温度衰减系数,80℃到105℃
|
|
|
+ K_ByTemperature_SetTemp[1] = MC_Cal_K_ByTemperature(MC_RunInfo.T_MCU, (MC_ConfigParam1.TempTH_Alarm - 5)); //根据MOS温度衰减系数,90℃到115℃
|
|
|
+ K_ByTemperature_SetTemp[2] = MC_Cal_K_ByTemperature(MC_RunInfo.T_Coil, (MC_ConfigParam1.TempTH_Alarm)); //根据电机温度衰减系数,95℃到120℃
|
|
|
+ K_ByTemperature_Set = GetMinData(K_ByTemperature_SetTemp, 3);
|
|
|
K_ByTemperature_Result = MC_DataSet_Linear_Process(K_ByTemperature_Set, K_ByTemperature_Result, 1, 1); //设定值与给定值线性处理
|
|
|
|
|
|
#else
|