Ver Fonte

骑行信息2增加电机平均功率和踩踏平均功率。

dd há 3 meses atrás
pai
commit
f90a43a6a8

Diff do ficheiro suprimidas por serem muito extensas
+ 267 - 267
MDK-ARM/QD007A_CTL_APP/QD007A_CTL_APP_CRC.hex


BIN
MDK-ARM/bin/QD007A_CTL_APP.bin


+ 8 - 5
User/Inc/var.h

@@ -342,11 +342,13 @@ typedef struct
 //MC骑行信息,占用空间16bytes
 typedef struct
 {
-  uint16_t SpeedAvg;    //平均车速
-	uint16_t SpeedMax;    //最高车速
-	uint32_t Cal_Trip;    //卡路里Trip
-	uint16_t Cal_Once;    //卡路里Once
-	uint8_t RS[6];
+  uint16_t SpeedAvg;        //平均车速
+	uint16_t SpeedMax;        //最高车速
+	uint32_t Cal_Trip;        //卡路里Trip
+	uint16_t Cal_Once;        //卡路里Once
+	uint16_t MotorPowerAvg;   //电机平均功率
+	uint16_t PedalPowerAvg;   //踩踏平均功率
+	uint8_t RS[2];
 }MC_RideInfo_Struct_t;
 
 //MC版本信息,占用空间64bytes
@@ -598,6 +600,7 @@ extern TrueOrFalse_Flag_Struct_t VersionIdentifyFinishedFlag;
 extern TrueOrFalse_Flag_Struct_t PowerDown_SaveFlag;
 extern Bike_RatioCal_Struct_t Bike_RatioCalParam;
 extern int32_t PedalPowerFltSum;
+extern int32_t MotorPowerFltSum;
 
 /**************************全局变量声明End***************************/
 

+ 7 - 2
User/Src/tasks.c

@@ -178,6 +178,7 @@ void MC_RunInfo_Update(void)
 		  MC_RunInfo.Power = ((uint32_t)MC_RunInfo.BusCurrent) * (((MC_MotorParam.Rate_Power & 0x07FF) * ((MC_MotorParam.Rate_Power >> 11) + 1)) >> 5) / (MC_ConfigParam1.CurrentLimit * 1000);
 		}
 		MC_RunInfo.Power = (MC_RunInfo.Power < 20) ? 0 : MC_RunInfo.Power;
+		MotorPowerFltSum += ((int32_t)(MC_RunInfo.BusCurrent >> 7) * (MC_RunInfo.BusVoltage >> 7) * 67 - MotorPowerFltSum) >> 4; //平均功率,2^14 / 1000000 * 2^12
 		
 		//更新踏频方向
 		MC_RunInfo.CadenceDir = MC_CadenceResult.Cadence_Dir;
@@ -332,8 +333,12 @@ void MC_RunInfo_Update(void)
 				PowerAvg = 0;
 			else
 				PowerAvg = MC_AvgPower.PedalPowerSum /  MC_RideLog.ODO_Time;
-			MC_RideInfo.Cal_Trip = PowerAvg * 66 * MC_RideLog.TRIP_Time / 1000; //Cal = P * 1.1 * 3.6 * t(h)
-			MC_RideInfo.Cal_Once = PowerAvg * 11 * MC_RunInfo.Ride_Time / 10000; //Cal = P * 1.1 * 3.6 * t(h)
+			MC_RideInfo.Cal_Trip = (PowerAvg * 135 * MC_RideLog.TRIP_Time) >> 11; //Cal = P * 1.1 * 3.6 * t(h)
+			MC_RideInfo.Cal_Once = ((PedalPowerFltSum >> 10) * 18 * MC_RunInfo.Ride_Time) >> 14; //Cal = P * 1.1 * 3.6 * t(h)
+			//电机平均功率
+			MC_RideInfo.MotorPowerAvg = MotorPowerFltSum >> 12;
+			//踩踏平均功率
+			MC_RideInfo.PedalPowerAvg = PedalPowerFltSum >> 10;
 		}while(0);	
 	}
 }

+ 3 - 2
User/Src/var.c

@@ -53,6 +53,7 @@ TrueOrFalse_Flag_Struct_t VersionIdentifyFinishedFlag = FALSE; //硬
 TrueOrFalse_Flag_Struct_t PowerDown_SaveFlag = FALSE;          //断电标识
 Bike_RatioCal_Struct_t Bike_RatioCalParam = {0,0,0,100,10,0,0};//传动比计算
 int32_t PedalPowerFltSum = 0;                             //踩踏功率
+int32_t MotorPowerFltSum = 0;                             //电机输入功率
 
 //BMS默认设计信息
 const BMS_DesignInfo_Struct_t BMS_DesignInfo_Default =
@@ -672,7 +673,7 @@ void Var_Init(void)
 	#endif
 	
 	//软件标识
-	strncpy(Firmware_Special, (char*)"TC011000-MS0000-V0r1.           ", 32);
+	strncpy(Firmware_Special, (char*)"TC011000-MS0000-V0r2.           ", 32);
 	
 	//编译时间
 	do
@@ -725,7 +726,7 @@ void Var_Init(void)
 	strncpy(MC_MacInfo.MacAddr, (char*)"WUHAN.  ", 8);
 	strncpy(MC_MacInfo.MacDate, (char*)"20210901", 8);
 
-    //产品标签
+  //产品标签
 	/*
 	Digit1-2:   MO(Battery:BT, Controller:CT, BB:BB, Charger:CG, Display:DP, Motor:MO)
 	Digit3-4:   MA(MOTINOVA)

Alguns ficheiros não foram mostrados porque muitos ficheiros mudaram neste diff