瀏覽代碼

feat:更新了盐城的数据读取代码

junc_WHU 2 周之前
父節點
當前提交
dda71cc434

+ 9 - 9
models/uf-rl/longting/env_config.yaml

@@ -1,15 +1,15 @@
 UFState:
   # ===== 膜动态运行参数 =====
   q_UF: 150.0 # 流量
-  TMP: 0.02 # CEB周期初始跨膜压差
+  TMP: 0.03 # CEB周期初始跨膜压差
   temp: 20.0 # 温度
   R: 200.0 # 膜阻力(占位,实际上应用时根据前三个变量计算)
 
   # ===== 膜阻力模型参数 =====
-  nuK: 170.0 # 短期膜阻力上升速率
+  nuK: 500.0 # 短期膜阻力上升速率
   slope: 2.0 # 长期膜阻力上升幂律模型斜率
-  power: 1.1 # 长期膜阻力上升幂律模型次数
-  ceb_removal: 200.0 # 本次CEB去除膜阻力值
+  power: 1.5 # 长期膜阻力上升幂律模型次数
+  ceb_removal: 300.0 # 本次CEB去除膜阻力值
 
 
 UFPhysicsParams:
@@ -124,12 +124,12 @@ UFStateBounds:
 
   # ===== TMP 初始化约束 =====
   TMP0_min: 0.01
-  TMP0_max: 0.04
+  TMP0_max: 0.06
   global_TMP_hard_limit: 0.08
 
   # ===== 短期污染参数 =====
-  nuK_min: 100.0
-  nuK_max: 250.0
+  nuK_min: 300.0
+  nuK_max: 700.0
 
   # ===== 长期污染参数 =====
   slope_min: 1.28
@@ -138,5 +138,5 @@ UFStateBounds:
   power_max: 2.5
 
   # ===== CEB 去除能力 =====
-  ceb_removal_min: 150.0
-  ceb_removal_max: 300.0
+  ceb_removal_min: 200.0
+  ceb_removal_max: 500.0

+ 4 - 4
models/uf-rl/rl_model/DQN/uf_train/run_dqn_train.py

@@ -293,11 +293,11 @@ if __name__ == "__main__":
 
     RESET_STATE_CSV = (
             PROJECT_ROOT
-            / "datasets/UF_anzhen_data/rl_ready/output/reset_state_pool.csv"
+            / "datasets/UF_longting_data/rl_ready/output/reset_state_pool.csv"
     )
 
-    ENV_CONFIG_PATH = PROJECT_ROOT / "anzhen" / "env_config.yaml"
-    MODEL_CONFIG_PATH = PROJECT_ROOT / "anzhen" / "dqn_config.yaml"
-    DIR_NAME = "anzhen48h"
+    ENV_CONFIG_PATH = PROJECT_ROOT / "longting" / "env_config.yaml"
+    MODEL_CONFIG_PATH = PROJECT_ROOT / "longting" / "dqn_config.yaml"
+    DIR_NAME = "longting48h"
 
     main()

+ 18 - 18
models/uf-rl/uf_data_process/data_export.py

@@ -10,8 +10,8 @@ DB_HOST = "222.130.26.206"
 DB_PORT = 4000
 
 # 时间配置
-START_TIME = datetime(2025, 4, 1, 0, 0, 0)
-END_TIME = datetime(2026, 3, 1, 6, 0, 0)
+START_TIME = datetime(2026, 1, 22, 0, 0, 0)
+END_TIME = datetime(2026, 3, 15, 6, 0, 0)
 BOUNDARY = datetime(2025, 3, 25, 0, 0, 0)
 
 DELETE_PERIODS = [
@@ -28,25 +28,25 @@ DELETE_PERIODS = [(pd.to_datetime(s), pd.to_datetime(e)) for s, e in DELETE_PERI
 UNITS = [1, 2]
 
 BASE_VARIABLES = [
-    "AR.{}#UF_JSFLOW_O",      # 进水流量
-    "AR.{}#UF_JSPRESS_O",     # 进水压力
-    "AR.UF{}_SSD_KMYC",       # 跨膜压差
-    "AR.UF{}_STEP",           # 步序/控制字
-    "AR.ZZ_{}#UFBWB_POWER" # 反洗泵功率
+    "ns=3;s={}#UF_JSFLOW_O",      # 进水流量
+    "ns=3;s={}#UF_JSPRESS_O",     # 进水压力
+    "ns=3;s=UF{}_SSD_KMYC",       # 跨膜压差
+    "ns=3;s=UF{}_STEP",           # 步序/控制字
+    "ns=3;s=ZZ_{}#UFBWB_POWER" # 反洗泵功率
 ]
 SYSTEM_VARIABLES = [
-    "AR.ZJS_TEMP_O",          # 进水温度
-    "AR.RO_JSORP_O",          # 总产水ORP
-    "AR.RO_JSPH_O",           # 总产水PH
-    "AR.RO_JSDD_O",           # 总产水电导
-    "AR.CN_LEVEL_O",       # 次钠液位
-    "AR.S_LEVEL_O",           # 酸液位
-    "AR.J_LEVEL_O",           # 碱液位
-    # "AR.ZZ_UFGSB_POWER", # 超滤供水泵功率
+    "ns=3;s=ZJS_TEMP_O",          # 进水温度
+    "ns=3;s=RO_JSORP_O",          # 总产水ORP
+    "ns=3;s=RO_JSPH_O",           # 总产水PH
+    "ns=3;s=RO_JSDD_O",           # 总产水电导
+    "ns=3;s=CN_LEVEL_O", # 次钠液位
+    "ns=3;s=S_LEVEL_O", # 酸液位
+    "ns=3;s=J_LEVEL_O", # 碱液位
+    "ns=3;s=ZZ_UFGSB_POWER", # 超滤供水泵功率
 ]
 
 # 输出目录
-BASE_OUTPUT_DIR = "../datasets/UF_anzhen_data"
+BASE_OUTPUT_DIR = "../datasets/UF_yancheng_data"
 PROCESSED_OUTPUT_DIR = os.path.join(BASE_OUTPUT_DIR, "raw")
 
 # 创建目录
@@ -108,7 +108,7 @@ def fetch_valve_aggregated(name, start, end, engine, interval_minutes=1):
                 h_time,
                 val,
                 FLOOR(UNIX_TIMESTAMP(h_time) / {interval_seconds}) AS time_group
-            FROM dc_item_history_data_1181
+            FROM dc_item_history_data_1497
             WHERE item_name = :name
               AND h_time BETWEEN :st AND :et
               AND val IS NOT NULL
@@ -136,7 +136,7 @@ def fetch_special_data(sensor, start, end, boundary, engine_test, engine_prod):
     """
     sql = text("""
                SELECT h_time AS time, val
-               FROM dc_item_history_data_1181
+               FROM dc_item_history_data_1497
                WHERE item_name = :name
                  AND h_time BETWEEN :st
                  AND :et

+ 1 - 0
models/uf-rl/uf_data_process/pipeline.py

@@ -38,6 +38,7 @@ class UFAnalysisPipeline:
         self.output_dir = output_path
         self.filter_output_dir = filter_output_path
         output_path.mkdir(parents=True, exist_ok=True)
+        filter_output_path.mkdir(parents=True, exist_ok=True)
 
         # 列名配置
         column_formats = uf_cfg.get("column_formats", {})

+ 1 - 1
models/uf-rl/uf_data_process/run_ufdata_pipeline.py

@@ -30,5 +30,5 @@ def main():
 
 
 if __name__ == "__main__":
-    CONFIG_PATH = UF_RL_ROOT / "anzhen" / "uf_analyze_config.yaml"
+    CONFIG_PATH = UF_RL_ROOT / "yancheng" / "uf_analyze_config.yaml"
     main()

+ 2 - 1
models/uf-rl/uf_data_process/水厂变量名称记录.md

@@ -69,6 +69,7 @@ SYSTEM_VARIABLES = [
 ```
 
 
+
 ## 安镇
 > **机组数量**:2台
 > 
@@ -105,7 +106,7 @@ SYSTEM_VARIABLES = [
 > 
 > **数据库id**:1497
 > 
-> **数据开始时间**:
+> **数据开始时间**:2026-01-22
 
 ### UF机组变量
 ```python

+ 55 - 0
models/uf-rl/yancheng/uf_analyze_config.yaml

@@ -0,0 +1,55 @@
+UF:
+  units: [ "1", "2" ]
+  area_m2: 128 * 40
+
+  inlet_codes: [221.0, 300.0]
+  stable_codes: [221.0, 260.0]
+
+  physical_bw_code: [301.0, 340.0]
+  chemical_bw_code: [400.0, 660.0]
+
+  # 列名
+  column_formats:
+    flow_col: "ns=3;s={unit}#UF_JSFLOW_O"
+    tmp_col: "ns=3;s=UF{unit}_SSD_KMYC"
+    press_col: "ns=3;s={unit}#UF_JSPRESS_O"
+    ctrl_col: "ns=3;s=UF{unit}_STEP"
+    temp_col: "ns=3;s=ZJS_TEMP_O"
+    orp_col: "ns=3;s=RO_JSORP_O"
+    ph_col: "ns=3;s=RO_JSPH_O"
+    event_col: "event_type"
+    BWB_POWER_col: "ns=3;s=ZZ_{unit}#UFBWB_POWER"
+    GSB_POWER_col: "ns=3;s=ZZ_UFGSB_POWER"
+    NaClO_col: "ns=3;s=CN_LEVEL_O"
+    HCL_col: "ns=3;s=S_LEVEL_O"
+    NaOH_col: "ns=3;s=J_LEVEL_O"
+
+
+Params:
+  # 稳定段提取
+  min_stable_points: 30
+  initial_points: 10
+
+  # 阻力趋势计算
+  segment_head_n: 5
+  segment_tail_n: 5
+
+  scale_factor: 1e10
+
+
+Plot:
+  figsize: [12, 6]
+  dpi: 120
+  color_inlet: "#1f77b4"
+  color_bw_phys: "#ff7f0e"
+  color_bw_chem: "#d62728"
+
+Paths:
+  project_root: "E:/Greentech" # 请根据项目根目录修改相应路径
+
+  raw_data_path: "models/uf-rl/datasets/UF_yancheng_data/raw"
+  output_path: "models/uf-rl/datasets/UF_yancheng_data/processed/segments"
+  filter_output_path: "models/uf-rl/datasets/UF_yancheng_data/processed/filter_segments"
+
+  output_format: "csv"
+