Преглед изворни кода

(Modify) Storage amount in parallel mode

Kanggu Park пре 4 година
родитељ
комит
c2787d48c4
1 измењених фајлова са 29 додато и 15 уклоњено
  1. 29 15
      RealTimeSimulator_HeatStorageSystem.py

+ 29 - 15
RealTimeSimulator_HeatStorageSystem.py

@@ -803,7 +803,8 @@ if __name__ == "__main__" :
 			GradientCalAmount_mode_Icing = []
 			GradientCalAmount_mode_StorageOnly = []
 			GradientCalAmount_mode_Parallel = []
-			GradientCalAmount_mode_ChillerOnly = []
+			GradientCalAmount_mode_ChillerOnly_1 = []
+			GradientCalAmount_mode_ChillerOnly_2 = []
 			isNan_Point = False
 			for i in range(len(trainStatus)):
 				for j in range(len(nan_point)):
@@ -815,10 +816,12 @@ if __name__ == "__main__" :
 						GradientCalAmount_mode_Icing.append(trainCalAmount[i]-trainCalAmount[i-1])
 					elif trainStatus[i] == StorageOnly and trainCalAmount[i] < trainCalAmount[i-1]:
 						GradientCalAmount_mode_StorageOnly.append(trainCalAmount[i]-trainCalAmount[i-1])
-					elif trainStatus[i] == Parallel and trainCalAmount[i] < trainCalAmount[i-1] and (trainRefStatus1[i] == 1 or trainRefStatus2[i] == 1):
+					elif trainStatus[i] == Parallel and trainCalAmount[i] < trainCalAmount[i-1] and trainRefStatus1[i] + trainRefStatus2[i] == 1:
 						GradientCalAmount_mode_Parallel.append(trainCalAmount[i]-trainCalAmount[i-1])
-					elif trainStatus[i] == ChillerOnly and trainRefStatus1[i] == 1 and trainRefStatus2[i] == 1:
-						GradientCalAmount_mode_ChillerOnly.append(trainCalAmount[i]-trainCalAmount[i-1])
+					elif trainStatus[i] == ChillerOnly and trainRefStatus1[i] + trainRefStatus2[i] == 1:
+						GradientCalAmount_mode_ChillerOnly_1.append(trainCalAmount[i]-trainCalAmount[i-1])
+					elif trainStatus[i] == ChillerOnly and trainRefStatus1[i] + trainRefStatus2[i] == 2:
+						GradientCalAmount_mode_ChillerOnly_2.append(trainCalAmount[i]-trainCalAmount[i-1])
 				isNan_Point = False
 				
 			GradientCalAmount_w3sigma_mode_Icing = []
@@ -836,11 +839,15 @@ if __name__ == "__main__" :
 				max3sigma_mode_Parallel = np.mean(GradientCalAmount_mode_Parallel)+np.std(GradientCalAmount_mode_Parallel)*3
 				min3sigma_mode_Parallel = np.mean(GradientCalAmount_mode_Parallel)-np.std(GradientCalAmount_mode_Parallel)*3
 
-			GradientCalAmount_w3sigma_mode_ChillerOnly = []
-			if len(GradientCalAmount_mode_ChillerOnly) != 0:
-				max3sigma_mode_ChillerOnly = np.mean(GradientCalAmount_mode_ChillerOnly)+np.std(GradientCalAmount_mode_ChillerOnly)*3
-				min3sigma_mode_ChillerOnly = np.mean(GradientCalAmount_mode_ChillerOnly)-np.std(GradientCalAmount_mode_ChillerOnly)*3
+			GradientCalAmount_w3sigma_mode_ChillerOnly_1 = []
+			if len(GradientCalAmount_mode_ChillerOnly_1) != 0:
+				max3sigma_mode_ChillerOnly_1 = np.mean(GradientCalAmount_mode_ChillerOnly_1)+np.std(GradientCalAmount_mode_ChillerOnly_1)*3
+				min3sigma_mode_ChillerOnly_1 = np.mean(GradientCalAmount_mode_ChillerOnly_1)-np.std(GradientCalAmount_mode_ChillerOnly_1)*3
 
+			GradientCalAmount_w3sigma_mode_ChillerOnly_2 = []
+			if len(GradientCalAmount_mode_ChillerOnly_2) != 0:
+				max3sigma_mode_ChillerOnly_2 = np.mean(GradientCalAmount_mode_ChillerOnly_2)+np.std(GradientCalAmount_mode_ChillerOnly_2)*3
+				min3sigma_mode_ChillerOnly_2 = np.mean(GradientCalAmount_mode_ChillerOnly_2)-np.std(GradientCalAmount_mode_ChillerOnly_2)*3
 				
 			for i in range(len(GradientCalAmount_mode_Icing)):
 				if GradientCalAmount_mode_Icing[i] <= max3sigma_mode_Icing and GradientCalAmount_mode_Icing[i] >= min3sigma_mode_Icing:
@@ -854,9 +861,13 @@ if __name__ == "__main__" :
 				if GradientCalAmount_mode_Parallel[i] <= max3sigma_mode_Parallel and GradientCalAmount_mode_Parallel[i] >= min3sigma_mode_Parallel:
 					GradientCalAmount_w3sigma_mode_Parallel.append(GradientCalAmount_mode_Parallel[i])
 					
-			for i in range(len(GradientCalAmount_mode_ChillerOnly)):
-				if GradientCalAmount_mode_ChillerOnly[i] <= max3sigma_mode_ChillerOnly and GradientCalAmount_mode_ChillerOnly[i] >= min3sigma_mode_ChillerOnly:
-					GradientCalAmount_w3sigma_mode_ChillerOnly.append(GradientCalAmount_mode_ChillerOnly[i])
+			for i in range(len(GradientCalAmount_mode_ChillerOnly_1)):
+				if GradientCalAmount_mode_ChillerOnly_1[i] <= max3sigma_mode_ChillerOnly_1 and GradientCalAmount_mode_ChillerOnly_1[i] >= min3sigma_mode_ChillerOnly_1:
+					GradientCalAmount_w3sigma_mode_ChillerOnly_1.append(GradientCalAmount_mode_ChillerOnly_1[i])
+					
+			for i in range(len(GradientCalAmount_mode_ChillerOnly_2)):
+				if GradientCalAmount_mode_ChillerOnly_2[i] <= max3sigma_mode_ChillerOnly_2 and GradientCalAmount_mode_ChillerOnly_2[i] >= min3sigma_mode_ChillerOnly_2:
+					GradientCalAmount_w3sigma_mode_ChillerOnly_2.append(GradientCalAmount_mode_ChillerOnly_2[i])
 						
 			#print(np.mean(GradientCalAmount_w3sigma_mode_Icing), np.mean(GradientCalAmount_w3sigma_mode_StorageOnly), np.mean(GradientCalAmount_w3sigma_mode_Parallel), np.mean(GradientCalAmount_w3sigma_mode_ChillerOnly))
 			#print(np.std(GradientCalAmount_w3sigma_mode_Icing), np.std(GradientCalAmount_w3sigma_mode_StorageOnly), np.std(GradientCalAmount_w3sigma_mode_Parallel), np.std(GradientCalAmount_w3sigma_mode_ChillerOnly))
@@ -1067,9 +1078,9 @@ if __name__ == "__main__" :
 
 						elif inputX[i]==ChillerOnly:
 							if inputX_REF1[i] + inputX_REF2[i]==2:
-								RecommendedCalAmount.append(RecommendedCalAmount[-1]+np.mean(GradientCalAmount_w3sigma_mode_ChillerOnly))
+								RecommendedCalAmount.append(RecommendedCalAmount[-1]+np.mean(GradientCalAmount_w3sigma_mode_ChillerOnly_2))
 							elif inputX_REF1[i] + inputX_REF2[i]==1:
-								RecommendedCalAmount.append(RecommendedCalAmount[-1]+np.mean(GradientCalAmount_w3sigma_mode_ChillerOnly)/2)
+								RecommendedCalAmount.append(RecommendedCalAmount[-1]+np.mean(GradientCalAmount_w3sigma_mode_ChillerOnly_1))
 							else:
 								RecommendedCalAmount.append(RecommendedCalAmount[-1])
 
@@ -1464,8 +1475,11 @@ if __name__ == "__main__" :
 						SimulCalAmount.append(SimulCalAmount[-1]+np.mean(GradientCalAmount_w3sigma_mode_Parallel))
 				## 냉단운전은 냉동기 두대로 운영되었으므로 축열량은 그대로
 				elif CustomizedStatus[i] == ChillerOnly:
-					if len(GradientCalAmount_w3sigma_mode_ChillerOnly) == 0:
-						print('[Warning] There is no enough data (Chiller Only)')
+					if len(GradientCalAmount_w3sigma_mode_ChillerOnly_1) == 0:
+						print('[Warning] There is no enough data (Chiller Only_1)')
+						SimulCalAmount.append(SimulCalAmount[-1])
+					elif len(GradientCalAmount_w3sigma_mode_ChillerOnly_2) == 0:
+						print('[Warning] There is no enough data (Chiller Only_2)')
 						SimulCalAmount.append(SimulCalAmount[-1])
 					else:
 						SimulCalAmount.append(SimulCalAmount[-1])