Browse Source

1.修改SOC 电池参数

LAPTOP-EG88H5BE\86151 3 years ago
parent
commit
a3858be522
3 changed files with 13 additions and 39 deletions
  1. 8 8
      src/EmbeddedCoder_src/BCUCal.c
  2. 2 2
      src/EmbeddedCoder_src/BCUDisp.c
  3. 3 29
      src/EmbeddedCoder_src/CDM.c

+ 8 - 8
src/EmbeddedCoder_src/BCUCal.c

@@ -10,10 +10,10 @@ const uint16_T cmnc_Q_ratedCp = 500U;
 const uint16_T cmnc_num_cellUNum = 20U;                                                                                                  /* 电压采样点实际个数; */
 const uint16_T cmnc_num_modTNum = 4U;                                                                                                    /* 温度采样点实际个数; */
 const uint16_T cmnc_tm_parkTime = 1800U;                                                                                                 /* 静置时间阈值; */
-const uint16_T cmnm_F_polar[13] = {3880U, 5062U, 10906U, 10798U, 12885U, 12990U, 14331U, 10754U, 9378U, 10340U, 10592U, 11946U, 11515U}; /* 电池放电参数的C数组; */
-const uint16_T cmnm_R_ohm[13] = {2181U, 2043U, 2040U, 1927U, 1850U, 1802U, 1771U, 1743U, 1733U, 1728U, 1748U, 1762U, 1789U};             /* 电池放电参数的Ro数组; */
-const uint16_T cmnm_R_polar[13] = {1837U, 1055U, 1352U, 1453U, 1181U, 1125U, 1205U, 1283U, 1228U, 1187U, 1104U, 1170U, 1049U};           /* 电池放电参数的Rp数组; */
-const uint16_T cmnm_V_ocv[13] = {3234U, 3444U, 3476U, 3553U, 3610U, 3638U, 3674U, 3758U, 3845U, 3942U, 4051U, 4106U, 4175U};             /* 电池放电参数的OCV数组; */
+const uint16_T cmnm_F_polar[13] = {1152U, 4862U, 12567U, 20299U, 23334U, 226124U, 23075U, 17084U, 14510U, 15551U, 17127U, 17475U, 20043U}; /* 电池放电参数的C数组; */
+const uint16_T cmnm_R_ohm[13] = {2364U, 2284U, 2234U, 2166U, 2128U, 2111U, 2090U, 2077U, 2077U, 2072U, 2085U, 2090U, 2077U};             /* 电池放电参数的Ro数组; */
+const uint16_T cmnm_R_polar[13] = {4955U, 2073U, 1504U, 1197U, 1098U, 1072U, 1141U, 1700U, 1637U, 1626U, 1496U, 1486U, 1436U};           /* 电池放电参数的Rp数组; */
+const uint16_T cmnm_V_ocv[13] = {3327U, 3453U, 3487U, 3563U, 3617U, 3652U, 3700U, 3791U, 3897U, 4006U, 4129U, 4197U, 4276U};             /* 电池放电参数的OCV数组; */
 const uint16_T cmnm_pct_soc[13] = {0U, 50U, 100U, 200U, 300U, 400U, 500U, 600U, 700U, 800U, 900U, 950U, 1000U};                          /* 电池放电参数的SOC数组; */
 const uint16_T cmnc_V_chrgFul = 4200U;                                                                                                   /* 充满电的截至电压; */
 const uint16_T cmnm_R_voloffset[28] = {0, 0, 0, 0, 0,
@@ -95,12 +95,12 @@ const uint16_T sohc_pct_low = 300U;
 const uint16_T sohc_pct_up = 500U;
 
 const uint16_T socc_pct_battSocLow = 0U;                     /* SOC下限值; */
-const uint16_T socc_pct_battSocUp = 1000U;                   /* SOC上限值; */
+const uint16_T socc_pct_battSocUp = 930U;                   /* SOC上限值; */
 const int16_T socm_I_chrgCor[3] = {50, 100, 150};            /* 充电CCV对应的电流数据; */
-const int16_T socm_I_disChrgCor[3] = {-300, -100, -60};      /* 放电CCV对应的电流数据; */
+const int16_T socm_I_disChrgCor[3] = {-240, -160, -100};      /* 放电CCV对应的电流数据; */
 const uint16_T socm_V_chrgCor[3] = {4160U, 4175U, 4188U};    /* 充电CCV对应的电压; */
-const uint16_T socm_V_disChrgCor[3] = {3310U, 3350U, 3368U}; /* 放电CCV对应的电压; */
-const uint16_T socc_pct_chrgCor = 980;                       /* 充电CCV对应的SOC; */
+const uint16_T socm_V_disChrgCor[3] = {3238U, 3319U, 3369U}; /* 放电CCV对应的电压; */
+const uint16_T socc_pct_chrgCor = 910;                       /* 充电CCV对应的SOC; */
 const uint16_T socc_pct_disChrgCor = 50;                     /* 放电CCV对应的SOC; */
 const int16_T cmm_T_ChrgCurr[3] = {40, 60, 80};
 const int16_T cmm_V_ChrgCurr[6] = {3200, 3201, 3900, 3901, 4100, 4101};

+ 2 - 2
src/EmbeddedCoder_src/BCUDisp.c

@@ -134,8 +134,8 @@ uint16_T cand_V_chrgStartStat;                    /*循环发送的充电前单
 uint16_T cand_Q_reqCp;                            /*循环发送的单体需求均衡容量; */
 uint16_T cand_Q_totalCp;                          /*循环发送的单体累计均衡容量; */
 
-int16_T  cdmv_V_deltOCV[cmnc_num_cellUNumMax] ;
-int16_T  cdmv_ohm_deltR[cmnc_num_cellUNumMax] ;
+int16_T  cdmv_V_deltOCV[cmnc_num_cellUNumMax] = {0};
+int16_T  cdmv_ohm_deltR[cmnc_num_cellUNumMax] = {0};
 boolean_T cdmd_flg_deltOCVDisable;
 
 uint16_T test_efkSocMin;

+ 3 - 29
src/EmbeddedCoder_src/CDM.c

@@ -25,8 +25,7 @@ void CDM(void)
     static uint8_T ihd_st_workStat_Delay;
 	static int16_T sfmd_I_curr_Delay;
 	static uint8_T Cnt;
-	static uint8_T TestCnt[28];
-	uint8_T TestCntmax;
+
     //
     if(ihd_st_workStat_Delay == 2 && ihd_st_workStat != 2)
     {
@@ -48,8 +47,6 @@ void CDM(void)
 			deltaES[i] = 0;
             deltaRS[i] = 0;
 			Cnt = 0;
-			TestCnt[i]= 0;
-			TestCntmax=0;
         }
     }
     //
@@ -81,36 +78,13 @@ void CDM(void)
 	    }
         //
 		Cnt = Cnt + 1;
-        TestCntmax=0;
         for (i = 0;i < cmnc_num_cellUNum;i++)
         {   
             deltaES[i] = deltaES[i] + deltaE[i];
 			deltaRS[i] = deltaRS[i] + deltaR[i];
-			 if(deltaR[i] > 0.005)
-			{
-                 TestCnt[i] = (TestCnt[i]+1) >200 ?200:(TestCnt[i]+1);
-		    }
-			if(TestCntmax < TestCnt[i])
-			{
-              TestCntmax = TestCnt[i];
-			}
-        }
-        if(TestCntmax < 5)
-        {
-		    for(i=0;i<9;i++)
-		  	{
-               test_curr[i]=test_curr[i+1];
-			   test_U1[i]=test_U1[i+1];
-			   test_U2[i]=test_U2[i+1];
-		  	}
-		       test_curr[9]=sfmd_I_curr;
-			   test_U1[9]=sfmd_V_cellUMax;
-			   test_U2[9]=sfmd_V_cellUMin;
-        }
 
-
-
-		
+        }
+	
 		if (Cnt >= 10)
 		{
              for (i = 0;i < cmnc_num_cellUNum;i++)