Ver código fonte

V2.1.6_20201211 TC011052-MCK201001-V0r1
1、初始化完成后增加打开转把模式;
2、调整限速值设定方式;
3、转把模式除OFF档外,其它档位限流相同;
4、版本号:V2.1.6_20201211 客户特性说明:TC011052-MCK201001-V0r1

dail.zhou 4 anos atrás
pai
commit
e5984f708a

+ 6 - 5
Core/Src/main.c

@@ -207,11 +207,12 @@ int main(void)
 	IsInitFinish_Flag = TRUE;
 	
 	//根据客户定制需求修改配置参数
-	MC_ConfigParam1.CadenceStarNum = 10;      		//曲柄60度启动
-	MC_ConfigParam1.UV_Protect_TH = 3000;     		//30V欠压
-	MC_ConfigParam1.SpeedLimit = 22;      		    //限速24km/h,要求超过24km/h断电
-	MC_ConfigParam1.WalkMode_SpeedLimit = 40; 		//推行限速4.0km/h
-	MC_ConfigParam1.WalkMode_MotorSpeedSet = 100;	//推行电机转速
+	MC_ConfigParam1.GasCtrlMode_Flag = MC_SUPPORT_ENABLE;//打开转把模式
+	MC_ConfigParam1.CadenceStarNum = 10;      	      	 //曲柄60度启动
+	MC_ConfigParam1.UV_Protect_TH = 3000;     		       //30V欠压
+	MC_ConfigParam1.SpeedLimit = 24;      		           //限速24km/h,要求超过24km/h断电
+	MC_ConfigParam1.WalkMode_SpeedLimit = 40; 		       //推行限速4.0km/h
+	MC_ConfigParam1.WalkMode_MotorSpeedSet = 100;	       //推行电机转速
 
   /* USER CODE END 2 */
 

BIN
MDK-ARM/bin/MC_VS7500-TC011052-MCK201001-V2.1.6.0.1_20201211.bin


BIN
MDK-ARM/bin/QD007A_CTL_APP.bin


+ 12 - 79
User/Src/motor_control.c

@@ -578,82 +578,15 @@ MC_CalParam_Struct_t MC_AssistRunMode_Torque_Process(MC_CadenceResult_Struct_t C
 			//设定加减速斜率
 			TorqueAccStep = 3;
 			TorqueDecStep = 7;
-			//根据档位给定力矩最大值和限流值
-			switch(GearSt)
-			{
-				case MC_GearSt_Torque_ECO:
-				{
-					//给定上限
-					Torque_Temp = (Torque_Temp > MC_AssisParam.Gear_ECO.Upper_Iq) ? MC_AssisParam.Gear_ECO.Upper_Iq : Torque_Temp;
-					//限流参数设置
-					CurrentLimitSet = (uint32_t)(MC_AssisParam.Gear_ECO.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_ECO.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_ECO.Upper_Iq << 10); // 放大1024
-					PID_IMax.wUpper_Limit_Integral = 0; // 放大1024
-					break;
-				}
-				case MC_GearSt_Torque_NORM:
-				{
-					//给定上限
-					Torque_Temp = (Torque_Temp > MC_AssisParam.Gear_NORM.Upper_Iq) ? MC_AssisParam.Gear_NORM.Upper_Iq : Torque_Temp;
-					//限流参数设置
-					CurrentLimitSet = (uint32_t)(MC_AssisParam.Gear_NORM.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_NORM.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_NORM.Upper_Iq << 10); // 放大1024
-					PID_IMax.wUpper_Limit_Integral = 0; // 放大1024
-					break;
-				}
-				case MC_GearSt_Torque_SPORT:
-				{
-					//给定上限
-					Torque_Temp = (Torque_Temp > MC_AssisParam.Gear_SPORT.Upper_Iq) ? MC_AssisParam.Gear_SPORT.Upper_Iq : Torque_Temp;
-					//限流参数设置
-					CurrentLimitSet = (uint32_t)(MC_AssisParam.Gear_SPORT.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_SPORT.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_SPORT.Upper_Iq << 10); // 放大1024
-					PID_IMax.wUpper_Limit_Integral = 0; // 放大1024
-					break;
-				}
-				case MC_GearSt_Torque_TURBO:
-				{
-					//给定上限
-					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;
-					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.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
-					break;
-				}
-				case MC_GearSt_SMART:
-				{
-					//给定上限
-					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 * MC_ConfigParam1.CurrentLimit * 1000 >> 17) * 100;
-					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
-					break;
-				}
-				default: 
-				{
-					TorqueAccStep = 0;
-					TorqueDecStep = 0;
-					Torque_Temp = 0;
-					break;
-				}
-			}	
+			//给定上限
+		  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;
+			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.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
 		{
@@ -847,7 +780,7 @@ MC_CalParam_Struct_t MC_AssistRunMode_Torque_Process(MC_CadenceResult_Struct_t C
 		}
 		
 		//随车速调节助力比
-		Torque_Temp = (uint16_t)((uint32_t)(Torque_Temp * Function_Linear_3Stage(0, 0, (MC_ConfigParam1.SpeedLimit * 10), 52, MC_SpeedSensorData.Speed_Data)) >> 10);
+		Torque_Temp = (uint16_t)((uint32_t)(Torque_Temp * Function_Linear_3Stage(0, 0, (MC_ConfigParam1.SpeedLimit * 10 - 20), 52, MC_SpeedSensorData.Speed_Data)) >> 10);
 			
     //助力输出		
 		MC_TorqueProcess_Param.TorqueRef = Torque_Temp;
@@ -857,7 +790,7 @@ MC_CalParam_Struct_t MC_AssistRunMode_Torque_Process(MC_CadenceResult_Struct_t C
 		}
 				
 		//升降速曲线计算
-		if( MC_SpeedSensorData.Speed_Data > (MC_ConfigParam1.SpeedLimit * 10) ) //限速处理
+		if( MC_SpeedSensorData.Speed_Data > (MC_ConfigParam1.SpeedLimit * 10 - 20) ) //限速处理
 		{
 			if((MC_TorqueProcess_Param.TorqueRef - MC_TorqueProcess_Param.TorqueRefEnd) > 2)
 			{
@@ -943,7 +876,7 @@ MC_CalParam_Struct_t MC_AssistRunMode_Torque_Process(MC_CadenceResult_Struct_t C
 		MC_TorqueProcess_Param.TorqueRefEnd = (MC_TorqueProcess_Param.TorqueRefEnd < 6) ? 6 : MC_TorqueProcess_Param.TorqueRefEnd;
 		
 		//限速点处理
-		if( MC_SpeedSensorData.Speed_Data > (MC_ConfigParam1.SpeedLimit * 10 + 22) ) //限速值 + 2.2
+		if(MC_SpeedSensorData.Speed_Data > (MC_ConfigParam1.SpeedLimit * 10 + 2)) //限速值 + 0.2
 		{
 			MC_TorqueProcess_Param.MotorStopLock_Flag = SET;
 			MC_TorqueProcess_Param.TorqueRefEnd = 0;

+ 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*)"V2r1r6_20201210.", 16);
+	strncpy(MC_VerInfo.FW_Version, (char*)"V2r1r6_20201211.", 16);
 	strncpy(Firmware_Special, (char*)"TC011052-MCK201001-V0r1.        ", 32);
 		
 	//电机型号

+ 5 - 2
修改说明.txt

@@ -359,6 +359,9 @@ V2.1.6_20201210 TC011052-MCK201001-V0r1
 3、减小推行模式电机转速可能会导致大飞时车速掉零,车速停止检测时间改为5s;
 4、版本号:V2.1.6_20201210 客户特性说明:TC011052-MCK201001-V0r1
 
-
-
+V2.1.6_20201211 TC011052-MCK201001-V0r1
+1、初始化完成后增加打开转把模式;
+2、调整限速值设定方式;
+3、转把模式除OFF档外,其它档位限流相同;
+4、版本号:V2.1.6_20201211 客户特性说明:TC011052-MCK201001-V0r1