|
@@ -130,16 +130,19 @@ uint16_t MC_Cal_K_ByVoltage(uint16_t Voltage, uint16_t DesignVol, uint16_t K_Vol
|
|
|
return(Result);
|
|
|
}
|
|
|
|
|
|
-//随温度计算助力衰减系数
|
|
|
+//随温度计算助力衰减系数,温度区间20℃
|
|
|
uint16_t MC_Cal_K_ByTemperature(uint16_t CoilTemp, uint16_t AlarmTempTH)
|
|
|
{
|
|
|
uint32_t CalTemp;
|
|
|
uint16_t Result = 1024;
|
|
|
|
|
|
- if(CoilTemp > AlarmTempTH)
|
|
|
+ if(CoilTemp > AlarmTempTH + 20)
|
|
|
{
|
|
|
- CalTemp = (uint32_t)AlarmTempTH * AlarmTempTH * 1024;
|
|
|
- Result = (uint16_t)(CalTemp / CoilTemp / CoilTemp);
|
|
|
+ Result = 256;
|
|
|
+ }
|
|
|
+ else if(CoilTemp > AlarmTempTH)
|
|
|
+ {
|
|
|
+ Result = 1024 - (CoilTemp - AlarmTempTH) * 38;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
@@ -437,7 +440,7 @@ MC_CalParam_Struct_t MC_AssistRunMode_Gas_Process(uint16_t SensorData, MC_GearSt
|
|
|
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;
|
|
|
|
|
|
//根据电压调节输出
|
|
@@ -446,8 +449,11 @@ MC_CalParam_Struct_t MC_AssistRunMode_Gas_Process(uint16_t SensorData, MC_GearSt
|
|
|
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_Result = MC_DataSet_Linear_Process(K_ByTemperature_Set, K_ByTemperature_Result, 1, 1); //设定值与给定值线性处理
|
|
|
+ K_ByTemperature_SetTemp[0] = MC_Cal_K_ByTemperature(MC_RunInfo.T_PCB, (MC_ConfigParam1.TempTH_Alarm - 10)); //根据PCB温度衰减系数,85℃到105℃
|
|
|
+ K_ByTemperature_SetTemp[1] = MC_Cal_K_ByTemperature(MC_RunInfo.T_MCU, (MC_ConfigParam1.TempTH_Alarm + 5)); //根据MOS温度衰减系数,100℃到120℃
|
|
|
+ K_ByTemperature_SetTemp[2] = MC_Cal_K_ByTemperature(MC_RunInfo.T_Coil, (MC_ConfigParam1.TempTH_Alarm + 15)); //根据电机温度衰减系数,110℃到130℃
|
|
|
+ K_ByTemperature_Set = GetMinData(K_ByTemperature_SetTemp, 3);
|
|
|
+ K_ByTemperature_Result = MC_DataSet_Linear_Process(K_ByTemperature_Set, K_ByTemperature_Result, 1, 1); //设定值与给定值线性处理
|
|
|
|
|
|
#else
|
|
|
|
|
@@ -570,7 +576,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;
|
|
|
|
|
|
//根据电压调节输出
|
|
@@ -579,7 +585,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℃到100℃
|
|
|
+ K_ByTemperature_SetTemp[1] = MC_Cal_K_ByTemperature(MC_RunInfo.T_MCU, (MC_ConfigParam1.TempTH_Alarm + 5)); //根据MOS温度衰减系数,100℃到120℃
|
|
|
+ K_ByTemperature_SetTemp[2] = MC_Cal_K_ByTemperature(MC_RunInfo.T_Coil, (MC_ConfigParam1.TempTH_Alarm + 15)); //根据电机温度衰减系数,110℃到130℃
|
|
|
+ K_ByTemperature_Set = GetMinData(K_ByTemperature_SetTemp, 3);
|
|
|
K_ByTemperature_Result = MC_DataSet_Linear_Process(K_ByTemperature_Set, K_ByTemperature_Result, 1, 1); //设定值与给定值线性处理
|
|
|
|
|
|
#else
|
|
@@ -1125,7 +1134,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;
|
|
|
- uint16_t K_ByTemperature_Set;
|
|
|
+ uint16_t K_ByTemperature_Set, K_ByTemperature_SetTemp[3];
|
|
|
static uint16_t K_ByTemperature_Result;
|
|
|
|
|
|
//根据电压调节输出
|
|
@@ -1134,8 +1143,11 @@ 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_Set = MC_Cal_K_ByTemperature(MC_RunInfo.T_Coil, MC_ConfigParam1.TempTH_Alarm); //根据温度计算衰减比例
|
|
|
- K_ByTemperature_Result = MC_DataSet_Linear_Process(K_ByTemperature_Set, K_ByTemperature_Result, 1, 1); //设定值与给定值线性处理
|
|
|
+ K_ByTemperature_SetTemp[0] = MC_Cal_K_ByTemperature(MC_RunInfo.T_PCB, (MC_ConfigParam1.TempTH_Alarm - 10)); //根据PCB温度衰减系数,85℃到105℃
|
|
|
+ K_ByTemperature_SetTemp[1] = MC_Cal_K_ByTemperature(MC_RunInfo.T_MCU, (MC_ConfigParam1.TempTH_Alarm + 5)); //根据MOS温度衰减系数,100℃到120℃
|
|
|
+ K_ByTemperature_SetTemp[2] = MC_Cal_K_ByTemperature(MC_RunInfo.T_Coil, (MC_ConfigParam1.TempTH_Alarm + 15)); //根据电机温度衰减系数,110℃到130℃
|
|
|
+ K_ByTemperature_Set = GetMinData(K_ByTemperature_SetTemp, 3);
|
|
|
+ K_ByTemperature_Result = MC_DataSet_Linear_Process(K_ByTemperature_Set, K_ByTemperature_Result, 1, 1); //设定值与给定值线性处理
|
|
|
|
|
|
#else
|
|
|
|
|
@@ -1208,9 +1220,9 @@ void MC_Init(void)
|
|
|
TorqueOffSetData_Process(&TorqueSensor_3_Param.Torque_OffSetData, ADC1_Result[ADC1_RANK_TORQUE_SENSOR_3]);//112ms
|
|
|
|
|
|
//智能档位初始化处理
|
|
|
- if(MC_ConfigParam1.NoPBU_Flag == MC_SUPPORT_ENABLE)
|
|
|
+ if(1) //(MC_ConfigParam1.NoPBU_Flag == MC_SUPPORT_ENABLE)
|
|
|
{
|
|
|
- MC_ControlCode.GearSt = MC_GearSt_SMART;
|
|
|
+ MC_ControlCode.GearSt = MC_GearSt_Torque_TURBO; //MC_GearSt_SMART;
|
|
|
MC_ControlCode.LightSwitch = MC_LightSwitch_ON;
|
|
|
Update_MC_ControlCode_Back();
|
|
|
}
|