瀏覽代碼

认证测试通过版本。
1、前牙盘和后牙盘程序固定;
2、不响应仪表控制挡位指令,开机进入TURBO;
3、调整助力曲线和上限电流。

Dail 1 年之前
父節點
當前提交
2a082a2736

+ 12 - 1
Core/Src/main.c

@@ -242,6 +242,7 @@ int main(void)
 			//速度传感器采集及计算
 			if(1) //(MC_ConfigParam1.SpeedSignal == MC_SPEED_CADENCE_CAL) //0xAA, 根据踏频估算
 			{
+				#if 0
 				if(MC_RunInfo.CadenceDir != MC_Cadence_Forward) //脚踏向后或停止时,采用电机转速
 				{
 					SpeedCal_ByCadence(MC_RunInfo.MotorSpeed / 11, &MC_SpeedSensorData.Speed_Data, MC_ConfigParam1.TeethNum_F, MC_ConfigParam1.TeethNum_B, MC_ConfigParam1.WheelSize + MC_ConfigParam1.WheelSizeAdj, &MC_RunInfo.BikeSpeed);			
@@ -249,7 +250,17 @@ int main(void)
 				else //脚踏向前时,取最高值
 				{
 					SpeedCal_ByCadence((MC_RunInfo.MotorSpeed / 11 > MC_RunInfo.Cadence) ?  MC_RunInfo.MotorSpeed / 11 : MC_RunInfo.Cadence, &MC_SpeedSensorData.Speed_Data, MC_ConfigParam1.TeethNum_F, MC_ConfigParam1.TeethNum_B, MC_ConfigParam1.WheelSize + MC_ConfigParam1.WheelSizeAdj, &MC_RunInfo.BikeSpeed);			
-				}				
+				}	
+        #else
+        if(MC_RunInfo.CadenceDir != MC_Cadence_Forward) //脚踏向后或停止时,采用电机转速
+				{
+					SpeedCal_ByCadence(MC_RunInfo.MotorSpeed / 11, &MC_SpeedSensorData.Speed_Data, 16, 16, 202, &MC_RunInfo.BikeSpeed);			
+				}
+				else //脚踏向前时,取最高值
+				{
+					SpeedCal_ByCadence((MC_RunInfo.MotorSpeed / 11 > MC_RunInfo.Cadence) ?  MC_RunInfo.MotorSpeed / 11 : MC_RunInfo.Cadence, &MC_SpeedSensorData.Speed_Data, 16, 16, 202, &MC_RunInfo.BikeSpeed);			
+				}	
+        #endif				
 			}
 			else if(MC_ConfigParam1.SpeedSignal == MC_SPEED_COMMUNICATION) //0xEE, 根据通信获取的车轮旋转周期
 			{

文件差異過大導致無法顯示
+ 2434 - 2434
MDK-ARM/QD007A_CTL_APP/QD007A_CTL_APP_CRC.hex


二進制
MDK-ARM/bin/MC_VL6500J01-TC013041-BM2102_V4.1.0.0.4_20240202-2.bin


二進制
MDK-ARM/bin/MC_VL6500J01-TC013041-BM2102_V4.1.0.0.4_20240202-3.bin


二進制
MDK-ARM/bin/MC_VL6500J01-TC013041-BM2102_V4.1.0.0.4_20240202-4.bin


二進制
MDK-ARM/bin/QD007A_CTL_APP.bin


+ 47 - 0
MDK-ARM/bin/认证测试结果与参数对照说明.txt

@@ -0,0 +1,47 @@
+1、MC_VL6500J01-TC013041-BM2102_V4.1.0.0.4_20240202-2
+最大助力比1.64
+/*根据车速调节助力比*/
+if(MC_RunInfo.BikeSpeed <= 100)
+{
+    Gain_K_ByCadence = 1945;  //1.9
+}
+else if(MC_RunInfo.BikeSpeed <= 240)
+{
+    Gain_K_ByCadence = 3334 - (138 * MC_RunInfo.BikeSpeed / 10);
+}
+else
+{
+    Gain_K_ByCadence = 0;
+}
+
+2、MC_VL6500J01-TC013041-BM2102_V4.1.0.0.4_20240202-3
+最大助力比1.80
+/*根据车速调节助力比*/
+if(MC_RunInfo.BikeSpeed <= 100)
+{
+    Gain_K_ByCadence = 2180;  //1.9
+}
+else if(MC_RunInfo.BikeSpeed <= 240)
+{
+    Gain_K_ByCadence = 3737 - (155 * MC_RunInfo.BikeSpeed / 10);
+}
+else
+{
+    Gain_K_ByCadence = 0;
+}
+
+3、MC_VL6500J01-TC013041-BM2102_V4.1.0.0.4_20240202-4
+最大助力比2.00
+/*根据车速调节助力比*/
+if(MC_RunInfo.BikeSpeed <= 100)
+{
+    Gain_K_ByCadence = 2361;  //1.9
+}
+else if(MC_RunInfo.BikeSpeed <= 240)
+{
+    Gain_K_ByCadence = 4047 - (168 * MC_RunInfo.BikeSpeed / 10);
+}
+else
+{
+    Gain_K_ByCadence = 0;
+}		

+ 1 - 1
User/Inc/var.h

@@ -259,7 +259,7 @@ typedef struct
 	uint8_t T_PCB_Max;               //PCB历史最高温,地址偏移34
 	uint8_t T_PCB_Min;               //PCB历史最低温,地址偏移35
 	uint8_t MachineFaultCnt;         //单向器打滑故障次数,地址偏移36
-    uint8_t RS1[3];
+  uint8_t RS1[3];
 	uint8_t T_Coil_Max;              //绕组历史最高温,地址偏移40
 	uint8_t T_Coil_Min;	             //绕组历史最低温,地址偏移41
 	uint8_t T_MCU_Max;               //MCU历史最高温,地址偏移42

+ 2 - 2
User/Src/can_process.c

@@ -153,8 +153,8 @@ void DataProcess(uint16_t ID, uint8_t Mode, uint16_t Cmd, uint8_t* Data)
 				  if(MC_WorkMode == MC_WorkMode_Run)
 					{
 					  //memcpy(&MC_ControlCode.GearSt, Data, DataLength);
-						MC_ControlCode.GearSt = Data[0];
-					  Update_MC_ControlCode_Back();
+						//MC_ControlCode.GearSt = Data[0];
+					  //Update_MC_ControlCode_Back();
 					}			
 		      MC_RunInfo.GearSt = MC_ControlCode.GearSt;//µ±Ç°ÖúÁ¦µµÎ»¸üÐÂ
 					MC_RunInfo.LightSwitch = MC_ControlCode.LightSwitch;

+ 11 - 12
User/Src/motor_control.c

@@ -1286,13 +1286,13 @@ MC_CalParam_Struct_t MC_AssistRunMode_Torque_Process(uint16_t SenorData, MC_Gear
 	//力矩给定升降速处理
 	else
 	{
-		static int32_t SpeedRatio_NoFlt=1092;
-		static int32_t speedRatio_temp=1092<<12;
+		static int32_t SpeedRatio_NoFlt = 1092;
+		static int32_t speedRatio_temp = 1092 << 12;
 		
 		/*调节助力比,使用经过踏频信号滤波处理的力矩值*/
 		if( (MC_RunInfo.MotorSpeed > 500)&&(MC_CadenceResult.Cadence_Data >= 15)&&(MC_TorqueProcess_Param.TorqueApp > 200) )
 		{
-			SpeedRatio_NoFlt= (100*MC_RunInfo.MotorSpeed)/MC_CadenceResult.Cadence_Data;
+			SpeedRatio_NoFlt = (100 * MC_RunInfo.MotorSpeed) / MC_CadenceResult.Cadence_Data;
 			speedRatio_temp += ((SpeedRatio_NoFlt << 12) - speedRatio_temp) >> 10;
 			SpeedRatio = speedRatio_temp >> 12;
 		}
@@ -1435,18 +1435,18 @@ MC_CalParam_Struct_t MC_AssistRunMode_Torque_Process(uint16_t SenorData, MC_Gear
 				TorqueDecStep = MC_AssisParam.Gear_TURBO.DecCnt;
 				
 			  /*根据车速调节助力比*/
-				if(MC_RunInfo.BikeSpeed <= 100)
+        if(MC_RunInfo.BikeSpeed <= 100)
 				{
-					Gain_K_ByCadence = 1843;  //1.8
+					Gain_K_ByCadence = 2361;  //1.9
 				}
 				else if(MC_RunInfo.BikeSpeed <= 240)
 				{
-					Gain_K_ByCadence = 3153 - (131 * MC_RunInfo.BikeSpeed / 10);
+					Gain_K_ByCadence = 4047 - (168 * MC_RunInfo.BikeSpeed / 10);
 				}
 				else
 				{
 					Gain_K_ByCadence = 0;
-				}
+				}		
 				
 				Gain_K_ByCadenceFltSum += (((int32_t )Gain_K_ByCadence << 10) - Gain_K_ByCadenceFltSum) >> 9;
 				Gain_K_ByCadenceFlted = Gain_K_ByCadenceFltSum >> 10;
@@ -1477,20 +1477,19 @@ MC_CalParam_Struct_t MC_AssistRunMode_Torque_Process(uint16_t SenorData, MC_Gear
 				//控制输入给定减速斜率
 				TorqueDecStep = MC_AssisParam.Gear_SMART.DecCnt;
 
-					/*根据车速调节助力比*/
+				/*根据车速调节助力比*/
 				if(MC_RunInfo.BikeSpeed <= 100)
 				{
-					Gain_K_ByCadence = 1843;  //1.8
+					Gain_K_ByCadence = 2361;  //1.9
 				}
 				else if(MC_RunInfo.BikeSpeed <= 240)
 				{
-					Gain_K_ByCadence = 3153 - (131 * MC_RunInfo.BikeSpeed / 10);
+					Gain_K_ByCadence = 4047 - (168 * MC_RunInfo.BikeSpeed / 10);
 				}
 				else
 				{
 					Gain_K_ByCadence = 0;
-				}
-				
+				}			
 				
 				Gain_K_ByCadenceFltSum += (((int32_t )Gain_K_ByCadence << 10) - Gain_K_ByCadenceFltSum) >> 9;
 				Gain_K_ByCadenceFlted = Gain_K_ByCadenceFltSum >> 10;

+ 12 - 12
User/Src/var.c

@@ -188,9 +188,9 @@ const nGearParam_Struct_t GearParam_Default_ECO_Volans =
   (uint16_t)327,
 	(uint16_t)0,
 	(uint16_t)100,
-	(uint16_t)1400,  //800,
+	(uint16_t)1800,  //800,
 	(uint8_t)2, //1,
-	(uint8_t)2,  //1,
+	(uint8_t)1,  //1,
 	(uint16_t)1024  //250
 };
 
@@ -200,9 +200,9 @@ const nGearParam_Struct_t GearParam_Default_NORM_Volans =
   (uint16_t)655,
 	(uint16_t)0,
 	(uint16_t)100,
-	(uint16_t)1400,  //800,
+	(uint16_t)1800,  //800,
 	(uint8_t)2, //1,
-	(uint8_t)2,  //1,
+	(uint8_t)1,  //1,
 	(uint16_t)1024  //250
 };
 
@@ -212,9 +212,9 @@ const nGearParam_Struct_t GearParam_Default_SPORT_Volans =
   (uint16_t)1024,
 	(uint16_t)0,
 	(uint16_t)100,
-	(uint16_t)1400,  //800,
+	(uint16_t)1800,  //800,
 	(uint8_t)3, //1,
-	(uint8_t)2,  //1,
+	(uint8_t)1,  //1,
 	(uint16_t)1024  //250
 };
 
@@ -224,9 +224,9 @@ const nGearParam_Struct_t GearParam_Default_TURBO_Volans =
   (uint16_t)1310,
 	(uint16_t)0,
 	(uint16_t)100,
-	(uint16_t)1400,  //800,
+	(uint16_t)2100,  //800,
 	(uint8_t)4, //1,
-	(uint8_t)2,  //1,
+	(uint8_t)1,  //1,
 	(uint16_t)1024  //250
 };
 
@@ -236,9 +236,9 @@ const nGearParam_Struct_t GearParam_Default_SMART_Volans =
   (uint16_t)1000,
 	(uint16_t)2000,
 	(uint16_t)100,
-	(uint16_t)1400,  //800,
+	(uint16_t)2100,  //800,
 	(uint8_t)4,      //1,
-	(uint8_t)2,      //1,
+	(uint8_t)1,      //1,
 	(uint16_t)1024   //250
 };
 
@@ -506,13 +506,13 @@ void Var_Init(void)
 	#if BaudRate250K
   strncpy(MC_VerInfo.FW_Version, (char*)"V4r1r0_20240126C", 16);
 	#else 
-	strncpy(MC_VerInfo.FW_Version, (char*)"V4r1r0_20240130C", 16);
+	strncpy(MC_VerInfo.FW_Version, (char*)"V4r1r0_20240202C", 16);
 	#endif
 	
   #if NormalWork
 	MC_VerInfo.FW_Version[15] = '.';
   #endif
-	strncpy(Firmware_Special, (char*)"TC013041-BM2102-V0r3.           ", 32);
+	strncpy(Firmware_Special, (char*)"TC013041-BM2102-V0r4.           ", 32);
 	if(MCUManufacturer == NoName) MC_VerInfo.HW_Version[10] = '0';
 	else if(MCUManufacturer == STM32F103RBT6) MC_VerInfo.HW_Version[10] = '1';
 	else if(MCUManufacturer == APM32F103RBT6) MC_VerInfo.HW_Version[10] = '2';

部分文件因文件數量過多而無法顯示