Просмотр исходного кода

1、取消转把零点自动更新;
2、转把模式还原到不采用踏频信息;
3、配合客户需求,将TURBO档临时调整为Smart长续航的体验。

dail 4 лет назад
Родитель
Сommit
0c8c4b4586

Разница между файлами не показана из-за своего большого размера
+ 2430 - 2430
MDK-ARM/QD007A_CTL_APP/QD007A_CTL_APP_CRC.hex


BIN
MDK-ARM/bin/MC_VS7500-TC033001-MS2001-V2.1.6.0.4_20210416.bin


BIN
MDK-ARM/bin/QD007A_CTL_APP.bin


+ 1 - 1
User/Src/gas_sensor.c

@@ -51,7 +51,7 @@ void GasSensorOffSetData_Update(uint16_t* PresentData, uint16_t AdcData, MC_Erro
 			//更新零点值
 			if(TempData > 300)//避免线缆松脱导致零点变为异常值
 			{
-		  	*PresentData = TempData;
+		  	//*PresentData = TempData;
 			}	
 		}
 	}

+ 41 - 5
User/Src/motor_control.c

@@ -175,7 +175,7 @@ MC_AssistRunMode_Struct_t MC_JudgeAsistRunMode_Process(MC_GearSt_Struct_t GearSt
 			}
 			else
 			{
-			  #if 1
+			  #if 0
 				static MC_AssistRunMode_Struct_t MC_AssistRunMode_Result_Old = MC_AssistRunMode_INVALID;
 				//进入力矩模式
 				MC_AssistRunMode_Result = MC_AssistRunMode_TORQUE;
@@ -1231,10 +1231,8 @@ MC_CalParam_Struct_t MC_AssistRunMode_Torque_Process(MC_CadenceResult_Struct_t C
 	if((GasCtrlMode == MC_SUPPORT_ENABLE) && (AdcSenorData.GasSensor > 50))
 	{
 	  MC_TorqueProcess_Param.MotorStopLock_Flag = RESET;
-		//停止判断,松开转把、踏频停止、踏频反转
-		if((AdcSenorData.GasSensor < 30) ||
-			 (CadenceData.Cadence_Dir == MC_Cadence_Backward) ||
-			 (CadenceData.IsStopFlag == TRUE))
+		//停止判断
+		if(AdcSenorData.GasSensor < 30)
 		{
 		  MC_TorqueProcess_Param.MotorStopLock_Flag = SET;
 		}
@@ -1521,6 +1519,8 @@ MC_CalParam_Struct_t MC_AssistRunMode_Torque_Process(MC_CadenceResult_Struct_t C
 				}
 				case MC_GearSt_Torque_TURBO:
 				{
+					#if 0 //原TURBO模式
+					
 					//控制输入给定加速斜率
 					if(MC_ConfigParam1.UserAdjParam_TURBO.StarModel_GAIN <= 90)
 					{
@@ -1552,6 +1552,42 @@ MC_CalParam_Struct_t MC_AssistRunMode_Torque_Process(MC_CadenceResult_Struct_t C
 					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.wUpper_Limit_Integral = 0; // 放大1024
+					
+					#else //客户需求,新增长续航Smart模式,要求降低最大电流,先按照TURBO模拟用于测试
+					
+					//控制输入给定加速斜率
+					if(MC_ConfigParam1.UserAdjParam_SMART.StarModel_GAIN <= 90)
+					{
+						TorqueAccStep = MC_AssisParam.Gear_SMART.AccCnt - 1;
+					}
+					else if(MC_ConfigParam1.UserAdjParam_SMART.StarModel_GAIN >= 110)
+					{
+						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.TorqueApp_TH * 6) >> 2);
+					//根据助力增益调节助力比
+					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 * 3) >> 2) * 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_SMART.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.wUpper_Limit_Integral = 0; // 放大1024
+					
+					#endif
 					break;
 				}
 				case MC_GearSt_SMART:

+ 1 - 1
User/Src/var.c

@@ -489,7 +489,7 @@ void Var_Init(void)
 		
 	//MC版本信息初始化,Mode和SN从EEPROM读取
   strncpy(MC_VerInfo.HW_Version, (char*)"QD007H.         ", 16);
-	strncpy(MC_VerInfo.FW_Version, (char*)"V2r1r5_20210130.", 16);
+	strncpy(MC_VerInfo.FW_Version, (char*)"V2r1r6_20210416.", 16);
 	strncpy(Firmware_Special, (char*)"TC033001-MS2001-V0r4.           ", 32);
 		
 	//电机型号

Некоторые файлы не были показаны из-за большого количества измененных файлов