Przeglądaj źródła

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

dd 3 miesięcy temu
rodzic
commit
92e9186bde

Plik diff jest za duży
+ 266 - 266
MDK-ARM/QD007A_CTL_APP/QD007A_CTL_APP_CRC.hex


BIN
MDK-ARM/bin/QD007A_CTL_APP.bin


+ 4 - 2
User/Inc/var.h

@@ -340,7 +340,9 @@ typedef struct
 	uint16_t SpeedMax;    //最高车速
 	uint32_t Cal_Trip;    //卡路里Trip
 	uint16_t Cal_Once;    //卡路里Once
-	uint8_t RS[6];
+	uint16_t MotorPowerAvg;   //电机平均功率
+	uint16_t PedalPowerAvg;   //踩踏平均功率
+	uint8_t RS[2];
 }MC_RideInfo_Struct_t;
 
 //MC版本信息,占用空间64bytes
@@ -591,7 +593,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

@@ -177,6 +177,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;
@@ -330,8 +331,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 = (PowerAvg * 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);		
 		
 	}

+ 1 - 0
User/Src/var.c

@@ -51,6 +51,7 @@ TrueOrFalse_Flag_Struct_t PowerDown_SaveFlag = FALSE;
 TrueOrFalse_Flag_Struct_t IsFirstPowerOnFlag = 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 =

Niektóre pliki nie zostały wyświetlone z powodu dużej ilości zmienionych plików