Browse Source

1.OCV曲线增加105%点;2.判断静置时间更改

qingfeng 3 years ago
parent
commit
80b9f465e2

+ 8 - 8
LIB/MIDDLE/CellStateEstimation/Common/BatParam.py

@@ -30,8 +30,8 @@ class BatParam:
             self.FullChrgSoc=98
             self.PeakSoc=57
             self.PackCrntDec=1
-            self.LookTab_SOC = [0,	    3.5348,	8.3581,	13.181,	18.004,	22.827,	27.651,	32.474,	37.297,	42.120,	46.944,	51.767,	56.590,	61.413,	66.237,	71.060,	75.883,	80.707,	85.530,	90.353,	95.176,	100]
-            self.LookTab_OCV = [3.3159,	3.4384,	3.4774,	3.5156,	3.5478,	3.5748,	3.6058,	3.6238,	3.638,	3.6535,	3.6715,	3.6951,	3.7279,	3.7757,	3.8126,	3.8529,	3.8969,	3.9446,	3.9946,	4.0491,	4.109,	4.183]
+            self.LookTab_SOC = [0,	    3.5348,	8.3581,	13.181,	18.004,	22.827,	27.651,	32.474,	37.297,	42.120,	46.944,	51.767,	56.590,	61.413,	66.237,	71.060,	75.883,	80.707,	85.530,	90.353,	95.176,	100,   105]
+            self.LookTab_OCV = [3.3159,	3.4384,	3.4774,	3.5156,	3.5478,	3.5748,	3.6058,	3.6238,	3.638,	3.6535,	3.6715,	3.6951,	3.7279,	3.7757,	3.8126,	3.8529,	3.8969,	3.9446,	3.9946,	4.0491,	4.109,	4.183, 4.263]
         
         elif celltype==2: #4840
             self.Capacity = 41
@@ -42,8 +42,8 @@ class BatParam:
             self.FullChrgSoc=98
             self.PeakSoc=57
             self.PackCrntDec=1
-            self.LookTab_SOC = [0,	    3.5348,	8.3581,	13.181,	18.004,	22.827,	27.651,	32.474,	37.297,	42.120,	46.944,	51.767,	56.590,	61.413,	66.237,	71.060,	75.883,	80.707,	85.530,	90.353,	95.176,	100]
-            self.LookTab_OCV = [3.3159,	3.4384,	3.4774,	3.5156,	3.5478,	3.5748,	3.6058,	3.6238,	3.638,	3.6535,	3.6715,	3.6951,	3.7279,	3.7757,	3.8126,	3.8529,	3.8969,	3.9446,	3.9946,	4.0491,	4.109,	4.183]
+            self.LookTab_SOC = [0,	    3.5348,	8.3581,	13.181,	18.004,	22.827,	27.651,	32.474,	37.297,	42.120,	46.944,	51.767,	56.590,	61.413,	66.237,	71.060,	75.883,	80.707,	85.530,	90.353,	95.176,	100,   105]
+            self.LookTab_OCV = [3.3159,	3.4384,	3.4774,	3.5156,	3.5478,	3.5748,	3.6058,	3.6238,	3.638,	3.6535,	3.6715,	3.6951,	3.7279,	3.7757,	3.8126,	3.8529,	3.8969,	3.9446,	3.9946,	4.0491,	4.109,	4.183, 4.263]
         
         elif celltype==3:   #力信50ah三元电芯
             self.Capacity = 51
@@ -54,8 +54,8 @@ class BatParam:
             self.FullChrgSoc=98
             self.PeakSoc=57
             self.PackCrntDec=1
-            self.LookTab_SOC = [0,	    5,	    10,	    15,	    20,	    25,	    30,	    35,	    40,	    45,	    50,	    55,	    60,	    65,	    70,	    75,	    80,	    85,	    90,	    95,	    100]
-            self.LookTab_OCV = [3.357, 	3.455, 	3.493, 	3.540, 	3.577, 	3.605, 	3.622, 	3.638, 	3.655, 	3.677, 	3.707, 	3.757, 	3.815, 	3.866, 	3.920, 	3.976, 	4.036, 	4.099, 	4.166, 	4.237, 	4.325]
+            self.LookTab_SOC = [0,	    5,	    10,	    15,	    20,	    25,	    30,	    35,	    40,	    45,	    50,	    55,	    60,	    65,	    70,	    75,	    80,	    85,	    90,	    95,	    100,   105]
+            self.LookTab_OCV = [3.357, 	3.455, 	3.493, 	3.540, 	3.577, 	3.605, 	3.622, 	3.638, 	3.655, 	3.677, 	3.707, 	3.757, 	3.815, 	3.866, 	3.920, 	3.976, 	4.036, 	4.099, 	4.166, 	4.237, 	4.325, 4.415]
         
         elif celltype==4:   #CATL 50ah三元电芯
             self.Capacity = 50
@@ -66,8 +66,8 @@ class BatParam:
             self.FullChrgSoc=98
             self.PeakSoc=57
             self.PackCrntDec=-1
-            self.LookTab_SOC = [0,	    5,	    10,	    15,	    20,	    25,	    30,	    35,	    40,	    45,	    50,	    55,	    60,	    65,	    70,	    75,	    80,	    85,	    90,	    95,	    100]
-            self.LookTab_OCV = [3.152, 	3.397, 	3.438, 	3.481, 	3.523, 	3.560, 	3.586, 	3.604, 	3.620, 	3.638, 	3.661, 	3.693, 	3.748, 	3.803, 	3.853, 	3.903, 	3.953, 	4.006, 	4.063, 	4.121, 	4.183]
+            self.LookTab_SOC = [0,	    5,	    10,	    15,	    20,	    25,	    30,	    35,	    40,	    45,	    50,	    55,	    60,	    65,	    70,	    75,	    80,	    85,	    90,	    95,	    100,   105]
+            self.LookTab_OCV = [3.152, 	3.397, 	3.438, 	3.481, 	3.523, 	3.560, 	3.586, 	3.604, 	3.620, 	3.638, 	3.661, 	3.693, 	3.748, 	3.803, 	3.853, 	3.903, 	3.953, 	4.006, 	4.063, 	4.121, 	4.183, 4.253]
         
         elif celltype==99:   #60ah磷酸铁锂电芯
             self.Capacity = 54

+ 2 - 2
LIB/MIDDLE/CellStateEstimation/SOH/V1_0_0/CBMSBatSoh.py

@@ -299,7 +299,7 @@ class BatSoh:
         standingtime=0
         for i in range(3,len(self.df_bms)-3):
 
-            if abs(self.packcrnt[i]) < 0.3:     #电流为0
+            if abs(self.packcrnt[i]) < 0.3 and abs(self.packcrnt[i-1]) < 0.3:     #电流为0
                 delttime=(self.bmstime[i]-self.bmstime[i-1]).total_seconds()
                 standingtime=standingtime+delttime
                 self._celltemp_weight(i)     #获取不同温度对应的静置时间
@@ -477,7 +477,7 @@ class BatSoh:
         for i in range(3,len(self.df_bms)-3):
 
             #获取两点法法所需数据-开始.................................................................................................................
-            if abs(self.packcrnt[i]) < 0.2:     #判断非平台区静置状态
+            if abs(self.packcrnt[i]) < 0.2 and abs(self.packcrnt[i-1]) < 0.3:     #判断非平台区静置状态
                 delttime=(self.bmstime[i]-self.bmstime[i-1]).total_seconds()
                 standingtime=standingtime+delttime
                 self._celltemp_weight(i)     #获取不同温度对应的静置时间

+ 4 - 4
LIB/MIDDLE/CellStateEstimation/Uniform/V1_0_0/CBMSBatUniform.py

@@ -166,8 +166,8 @@ class BatUniform:
 
         for i in range(1,len(self.df_bms)-2):
 
-            if abs(self.packcrnt[i]) < 0.3:     #电流为0
-                delttime=(self.bmstime[i+1]-self.bmstime[i]).total_seconds()
+            if abs(self.packcrnt[i]) < 0.3 and abs(self.packcrnt[i-1]) < 0.3:     #电流为0
+                delttime=(self.bmstime[i]-self.bmstime[i-1]).total_seconds()
                 standingtime=standingtime+delttime
                 self._celltemp_weight(i)     #获取不同温度对应的静置时间
 
@@ -240,8 +240,8 @@ class BatUniform:
         for i in range(3,len(self.df_bms)-3):
 
             #静置电压法计算电芯一致性
-            if abs(self.packcrnt[i]) < 0.2:     #电流为0
-                delttime=(self.bmstime[i+1]-self.bmstime[i]).total_seconds()
+            if abs(self.packcrnt[i]) < 0.2 and abs(self.packcrnt[i-1]) < 0.2:     #电流为0
+                delttime=(self.bmstime[i]-self.bmstime[i-1]).total_seconds()
                 standingtime=standingtime+delttime
                 self._celltemp_weight(i)     #获取不同温度对应的静置时间