소스 검색

debug:修复了模型输出吨水电耗变量时的报错,现同时输出查表所得的参考吨水电耗与根据功率计算所得的计算吨水电耗

junc_WHU 2 주 전
부모
커밋
65441f89f2
1개의 변경된 파일11개의 추가작업 그리고 7개의 파일을 삭제
  1. 11 7
      models/uf-rl/rl_model/DQN/uf_decide/run_dqn_decide.py

+ 11 - 7
models/uf-rl/rl_model/DQN/uf_decide/run_dqn_decide.py

@@ -31,7 +31,7 @@ from env.env_config_loader import EnvConfigLoader, create_env_params_from_yaml
 from rl_model.DQN.uf_decide.dqn_decider import UFDQNDecider
 
 
-def build_physics(IS_TIMES, phys_params):
+def build_physics(IS_TIMES, phys_params,state_bounds):
     """
     构造与训练一致的物理模型(只做一次)
     """
@@ -39,6 +39,7 @@ def build_physics(IS_TIMES, phys_params):
 
     physics = UFPhysicsModel(
         phys_params=phys_params,
+        state_bounds=state_bounds,
         resistance_model_fp=res_fp,
         resistance_model_bw=res_bw,
         IS_TIMES = IS_TIMES
@@ -165,7 +166,8 @@ def calc_uf_cycle_metrics(current_state, max_tmp_during_filtration, min_tmp_duri
 
     # 获得模型模拟周期信息
     k_bw_per_ceb = info["k_bw_per_ceb"]
-    ton_water_energy_kWh_per_m3 = info["ton_water_energy_kWh_per_m3"]
+    refer_ton_water_energy = info["refer_ton_water_energy"]
+    ton_water_energy = info["ton_water_energy"]
     recovery = info["recovery"]
     daily_prod_time_h = info["daily_prod_time_h"]
 
@@ -181,7 +183,8 @@ def calc_uf_cycle_metrics(current_state, max_tmp_during_filtration, min_tmp_duri
 
     return {
         "k_bw_per_ceb": k_bw_per_ceb,
-        "ton_water_energy_kWh_per_m3": ton_water_energy_kWh_per_m3,
+        "refer_ton_water_energy": refer_ton_water_energy,
+        "ton_water_energy": ton_water_energy,
         "recovery": recovery,
         "daily_prod_time_h": daily_prod_time_h,
         "max_permeability": max_permeability
@@ -224,8 +227,8 @@ def run_dqn_decide(
 # ==============================
 if __name__ == "__main__":
 
-    MODEL_PATH = UF_RL_ROOT / "longting" / "48h_dqn_model.zip"
-    ENV_CONFIG_PATH = UF_RL_ROOT / "longting" / "env_config.yaml"
+    MODEL_PATH = UF_RL_ROOT / "xishan" / "48h_dqn_model.zip"
+    ENV_CONFIG_PATH = UF_RL_ROOT / "xishan" / "env_config.yaml"
     TMP0 = 0.019  # 原始 TMP0
     q_UF = 300 # 进水流量
     temp = 20.0 #进水温度
@@ -244,7 +247,7 @@ if __name__ == "__main__":
         state_bounds  # UFStateBounds
     ) = create_env_params_from_yaml(ENV_CONFIG_PATH)
 
-    physics = build_physics(IS_TIMES, phys_params)
+    physics = build_physics(IS_TIMES, phys_params,state_bounds)
 
     action_id, model_L_s, model_t_bw_s = run_dqn_decide(
         model_path=MODEL_PATH,
@@ -272,7 +275,8 @@ if __name__ == "__main__":
     print(f"模型选择的L_s: {model_L_s} 秒, 模型选择的t_bw_s: {model_t_bw_s} 秒")
     print(f"指令下发的L_s: {L_s} 秒, 指令下发的t_bw_s: {t_bw_s} 秒")
     print(f"指令对应的反洗次数: {execution_result['k_bw_per_ceb']}")
-    print(f"指令对应的吨水电耗: {execution_result['ton_water_energy_kWh_per_m3']}")
+    print(f"指令对应的理论参考吨水电耗: {execution_result['refer_ton_water_energy']}")
+    print(f"指令对应的计算吨水电耗: {execution_result['ton_water_energy']}")
     print(f"指令对应的回收率: {execution_result['recovery']}")
     print(f"指令对应的日均产水时间: {execution_result['daily_prod_time_h']}")
     print(f"指令对应的最高渗透率: {execution_result['max_permeability']}")