|
@@ -93,7 +93,7 @@ class SafetyAlarm:
|
|
|
|
|
|
delttime=(time2-time1).total_seconds()
|
|
|
celltemp_rate=(max(temp2-temp1)*60)/delttime #计算最大温升速率
|
|
|
- if celltemp_rate>self.param.TrwTempRate:
|
|
|
+ if celltemp_rate>self.param.TrwTempRate and self.param.CellTempLwLmt<min(temp1) and max(temp1)<self.param.CellTempUpLmt:
|
|
|
celltemprise=1
|
|
|
else:
|
|
|
pass
|
|
@@ -106,7 +106,7 @@ class SafetyAlarm:
|
|
|
|
|
|
delttime=(time2-time1).total_seconds()
|
|
|
celltemp_rate=(max(temp2-temp1)*60)/delttime #计算最大温升速率
|
|
|
- if celltemp_rate>self.param.TrwTempRate:
|
|
|
+ if celltemp_rate>self.param.TrwTempRate and self.param.CellTempLwLmt<min(temp1) and max(temp1)<self.param.CellTempUpLmt:
|
|
|
celltemprise=1
|
|
|
else:
|
|
|
pass
|
|
@@ -170,29 +170,39 @@ class SafetyAlarm:
|
|
|
pass
|
|
|
|
|
|
#电池包诊断.....................................................................................................................................
|
|
|
- if i<1:
|
|
|
- if not self.df_bms_ram.empty:
|
|
|
- time1=self.df_bms_ram.iloc[-1]['time']
|
|
|
- time2=self.bmstime[i]
|
|
|
- delttime=(time2-time1).total_seconds()
|
|
|
- packvolt1=self.df_bms_ram.iloc[-1]['packvolt']
|
|
|
- packvolt2=self.packvolt[i]
|
|
|
- if delttime<310:
|
|
|
- if self.packcrnt[i]<5 and (packvolt1-packvolt2)>self.param.TrwPackVoltFall:
|
|
|
- packvoltfall=1
|
|
|
+ packvolt2=self.packvolt[i]
|
|
|
+ #电池包电压有效性............................................................................................................................
|
|
|
+ if self.param.CellVoltNums<packvolt2<self.param.CellVoltNums*4.5:
|
|
|
+ packvoltvalid=1
|
|
|
+ else:
|
|
|
+ packvoltvalid=0
|
|
|
+
|
|
|
+
|
|
|
+ if packvoltvalid==1:
|
|
|
+ if i<1:
|
|
|
+ if not self.df_bms_ram.empty:
|
|
|
+ time1=self.df_bms_ram.iloc[-1]['time']
|
|
|
+ time2=self.bmstime[i]
|
|
|
+ delttime=(time2-time1).total_seconds()
|
|
|
+ packvolt1=self.df_bms_ram.iloc[-1]['packvolt']
|
|
|
+
|
|
|
+ if delttime<310:
|
|
|
+ if self.packcrnt[i]<5 and (packvolt1-packvolt2)>self.param.TrwPackVoltFall and self.param.CellVoltNums<packvolt1<self.param.CellVoltNums*4.5:
|
|
|
+ packvoltfall=1
|
|
|
+ else:
|
|
|
+ pass
|
|
|
else:
|
|
|
pass
|
|
|
else:
|
|
|
pass
|
|
|
else:
|
|
|
- packvolt2=self.packvolt[i]
|
|
|
+ packvolt1=self.packvolt[i-1]
|
|
|
+ if self.packcrnt[i]<5 and (packvolt1-packvolt2)>self.param.TrwPackVoltFall and self.param.CellVoltNums<packvolt1<self.param.CellVoltNums*4.5:
|
|
|
+ packvoltfall=1
|
|
|
+ else:
|
|
|
+ pass
|
|
|
else:
|
|
|
- packvolt1=self.packvolt[i-1]
|
|
|
- packvolt2=self.packvolt[i]
|
|
|
- if self.packcrnt[i]<5 and (packvolt1-packvolt2)>self.param.TrwPackVoltFall:
|
|
|
- packvoltfall=1
|
|
|
- else:
|
|
|
- pass
|
|
|
+ pass
|
|
|
|
|
|
#热失控故障判断........................................................................................................................
|
|
|
df_bms_ram=pd.DataFrame(columns=['time', 'sn', 'packvolt', 'cellvolt', 'celltemp'])
|