|
@@ -0,0 +1,221 @@
|
|
|
|
|
+# ============================================================
|
|
|
|
|
+# 项目级路径配置
|
|
|
|
|
+# ============================================================
|
|
|
|
|
+
|
|
|
|
|
+Paths:
|
|
|
|
|
+ project_root: "E:/Greentech"
|
|
|
|
|
+ __comment__: >
|
|
|
|
|
+ 项目根目录,所有路径均相对于该目录展开。
|
|
|
|
|
+ 不同工程师只需修改这一项即可迁移环境。
|
|
|
|
|
+
|
|
|
|
|
+ raw_data:
|
|
|
|
|
+ filtered_cycles_dir: "models/uf-rl/datasets/UF_longting_data/processed/filter_segments"
|
|
|
|
|
+ cycle_file_pattern: "UF{unit}_filtered_cycles.csv"
|
|
|
|
|
+
|
|
|
|
|
+ enabled_units: [1, 2]
|
|
|
|
|
+ disabled_units: None
|
|
|
|
|
+
|
|
|
|
|
+ __comment__: >
|
|
|
|
|
+ 已完成清洗与周期切分的真实工厂数据。
|
|
|
|
|
+ 每个 CSV 对应一个机组,文件内每一行是一个【物理周期】。
|
|
|
|
|
+ data_to_rl 阶段会:
|
|
|
|
|
+ - 读取 enabled_units 中所有机组
|
|
|
|
|
+ - 合并为统一数据集
|
|
|
|
|
+ - 机组编号仅用于筛选,不进入状态空间
|
|
|
|
|
+
|
|
|
|
|
+ data_to_rl:
|
|
|
|
|
+ output_dir: "models/uf-rl/datasets/UF_longting_data/rl_ready/output"
|
|
|
|
|
+ cache_dir: "models/uf-rl/datasets/UF_longting_data/rl_ready/cache"
|
|
|
|
|
+
|
|
|
|
|
+ __comment__: >
|
|
|
|
|
+ data_to_rl 模块输出内容:
|
|
|
|
|
+ - 全机组合并后的状态空间范围
|
|
|
|
|
+ - reset 初始状态分布
|
|
|
|
|
+ - reward 统计量
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+# ============================================================
|
|
|
|
|
+# 数据层级定义(非常重要)
|
|
|
|
|
+# ============================================================
|
|
|
|
|
+
|
|
|
|
|
+DataHierarchy:
|
|
|
|
|
+
|
|
|
|
|
+ physical_cycle:
|
|
|
|
|
+ id_column: "seg_id"
|
|
|
|
|
+ time_columns:
|
|
|
|
|
+ start: "start_time"
|
|
|
|
|
+ end: "end_time"
|
|
|
|
|
+ __comment__: >
|
|
|
|
|
+ 物理周期是最细粒度的数据层级:
|
|
|
|
|
+ - 用于物理模型验证
|
|
|
|
|
+ - 用于环境内部子步模拟
|
|
|
|
|
+ - 不直接暴露给强化学习算法
|
|
|
|
|
+
|
|
|
|
|
+ chemical_cycle:
|
|
|
|
|
+ id_column: "chem_cycle_id"
|
|
|
|
|
+ validity_column: "chem_cycle_valid"
|
|
|
|
|
+ step_definition: "one_rl_step_per_chemical_cycle"
|
|
|
|
|
+ __comment__: >
|
|
|
|
|
+ 化学周期是强化学习的【唯一 step 单位】。
|
|
|
|
|
+ 强化学习中:
|
|
|
|
|
+ - 一个 step = 一个化学周期
|
|
|
|
|
+ - 一个状态 = 一个化学周期的整体状态
|
|
|
|
|
+
|
|
|
|
|
+# ============================================================
|
|
|
|
|
+# 强化学习状态定义(工程师重点关注)
|
|
|
|
|
+# ============================================================
|
|
|
|
|
+
|
|
|
|
|
+RLState:
|
|
|
|
|
+ level: chemical_cycle
|
|
|
|
|
+ dimension: 8
|
|
|
|
|
+ __comment__: >
|
|
|
|
|
+ 强化学习 observation 的定义。
|
|
|
|
|
+ 所有变量在一个 step(化学周期)内保持不变。
|
|
|
|
|
+
|
|
|
|
|
+ variables:
|
|
|
|
|
+
|
|
|
|
|
+ q_UF:
|
|
|
|
|
+ source: "flow_mean"
|
|
|
|
|
+ aggregation: "mean_within_cycle"
|
|
|
|
|
+ unit: "m3_per_h"
|
|
|
|
|
+ description: "化学周期代表性进水流量"
|
|
|
|
|
+ __comment__: >
|
|
|
|
|
+ 原始数据在物理周期层级变化,
|
|
|
|
|
+ 这里使用化学周期内的平均值作为状态。
|
|
|
|
|
+
|
|
|
|
|
+ temp:
|
|
|
|
|
+ source: "temp_mean"
|
|
|
|
|
+ aggregation: "mean_within_cycle"
|
|
|
|
|
+ unit: "celsius"
|
|
|
|
|
+ description: "化学周期代表性水温"
|
|
|
|
|
+
|
|
|
|
|
+ TMP:
|
|
|
|
|
+ source: "tmp_start"
|
|
|
|
|
+ selection: "first_physical_cycle"
|
|
|
|
|
+ unit: "MPa"
|
|
|
|
|
+ description: "化学周期起始跨膜压差"
|
|
|
|
|
+ __comment__: >
|
|
|
|
|
+ 虽然 TMP 在物理周期内会变化,
|
|
|
|
|
+ 但强化学习只关心化学周期开始时的状态。
|
|
|
|
|
+
|
|
|
|
|
+ R:
|
|
|
|
|
+ source: "R_scaled_start"
|
|
|
|
|
+ selection: "first_physical_cycle"
|
|
|
|
|
+ unit: "scaled_resistance"
|
|
|
|
|
+ description: "化学周期起始膜阻力"
|
|
|
|
|
+
|
|
|
|
|
+ nuK:
|
|
|
|
|
+ source: "cycle_nuK"
|
|
|
|
|
+ unit: "scaled"
|
|
|
|
|
+ description: "短期污染增长系数"
|
|
|
|
|
+ __comment__: >
|
|
|
|
|
+ 在同一化学周期内视为常数,
|
|
|
|
|
+ 后续 step (下一化学周期)中根据动作进行经验性更新。
|
|
|
|
|
+
|
|
|
|
|
+ slope:
|
|
|
|
|
+ source: "cycle_long_a"
|
|
|
|
|
+ unit: "scaled"
|
|
|
|
|
+ description: "长期不可逆污染幂律系数 a"
|
|
|
|
|
+
|
|
|
|
|
+ power:
|
|
|
|
|
+ source: "cycle_long_b"
|
|
|
|
|
+ unit: "dimensionless"
|
|
|
|
|
+ description: "长期不可逆污染幂律指数 b"
|
|
|
|
|
+
|
|
|
|
|
+ ceb_removal:
|
|
|
|
|
+ source: "cycle_R_removed"
|
|
|
|
|
+ unit: "scaled"
|
|
|
|
|
+ description: "CEB 可去除的膜阻力"
|
|
|
|
|
+
|
|
|
|
|
+# ============================================================
|
|
|
|
|
+# 状态空间范围提取(reset 使用)
|
|
|
|
|
+# ============================================================
|
|
|
|
|
+
|
|
|
|
|
+StateSpaceExtraction:
|
|
|
|
|
+ enabled: true
|
|
|
|
|
+ level: chemical_cycle
|
|
|
|
|
+ include_only_valid_cycles: true
|
|
|
|
|
+
|
|
|
|
|
+ __comment__: >
|
|
|
|
|
+ 用真实工厂数据统计【合理状态空间范围】,
|
|
|
|
|
+ 用于:
|
|
|
|
|
+ - reset 初始状态采样
|
|
|
|
|
+ - 状态边界 sanity check
|
|
|
|
|
+
|
|
|
|
|
+ statistics:
|
|
|
|
|
+ method: "empirical"
|
|
|
|
|
+ percentiles: [1, 5, 50, 95, 99]
|
|
|
|
|
+ __comment__: >
|
|
|
|
|
+ 使用经验分布统计,避免假设正态分布。
|
|
|
|
|
+
|
|
|
|
|
+ output:
|
|
|
|
|
+ save_csv: true
|
|
|
|
|
+ filename: "state_space_bounds.csv"
|
|
|
|
|
+
|
|
|
|
|
+# ============================================================
|
|
|
|
|
+# 物理周期层级的用途声明
|
|
|
|
|
+# ============================================================
|
|
|
|
|
+
|
|
|
|
|
+PhysicalCycleUsage:
|
|
|
|
|
+ enabled: true
|
|
|
|
|
+
|
|
|
|
|
+ purposes:
|
|
|
|
|
+ - internal_simulation
|
|
|
|
|
+ - parameter_sanity_check
|
|
|
|
|
+ - post_training_validation
|
|
|
|
|
+
|
|
|
|
|
+ variables_available:
|
|
|
|
|
+ - R_scaled_start
|
|
|
|
|
+ - R_scaled_end
|
|
|
|
|
+ - tmp_start
|
|
|
|
|
+ - tmp_end
|
|
|
|
|
+ - flow_mean
|
|
|
|
|
+ - flow_std
|
|
|
|
|
+ - temp_mean
|
|
|
|
|
+ - temp_std
|
|
|
|
|
+
|
|
|
|
|
+ __comment__: >
|
|
|
|
|
+ 物理周期数据:
|
|
|
|
|
+ ✔ 可用于环境内部计算
|
|
|
|
|
+ ✔ 可用于训练后验证
|
|
|
|
|
+ ✘ 不可作为 RL observation
|
|
|
|
|
+
|
|
|
|
|
+# ============================================================
|
|
|
|
|
+# 真实数据在强化学习中的角色(工程边界声明)
|
|
|
|
|
+# ============================================================
|
|
|
|
|
+
|
|
|
|
|
+RealDataUsagePolicy:
|
|
|
|
|
+
|
|
|
|
|
+ reset_initialization:
|
|
|
|
|
+ enabled: true
|
|
|
|
|
+ source: "chemical_cycle_state_distribution"
|
|
|
|
|
+ __comment__: >
|
|
|
|
|
+ reset 时从真实化学周期状态分布中采样,
|
|
|
|
|
+ 确保训练从“现实可达状态”开始。
|
|
|
|
|
+
|
|
|
|
|
+ training:
|
|
|
|
|
+ use_real_transitions: false
|
|
|
|
|
+ __comment__: >
|
|
|
|
|
+ 真实数据不用于:
|
|
|
|
|
+ - 动力学拟合
|
|
|
|
|
+ - 监督策略
|
|
|
|
|
+ 强化学习仍在模拟环境中进行。
|
|
|
|
|
+
|
|
|
|
|
+ validation:
|
|
|
|
|
+ enabled: true
|
|
|
|
|
+ compare_with_real_cycles: true
|
|
|
|
|
+ __comment__: >
|
|
|
|
|
+ 训练完成后:
|
|
|
|
|
+ - 将策略运行结果
|
|
|
|
|
+ - 与真实化学周期统计特性进行对比
|
|
|
|
|
+ 用于评估策略的现实可行性与安全性。
|
|
|
|
|
+
|
|
|
|
|
+# ============================================================
|
|
|
|
|
+# 方法论与工程风险声明
|
|
|
|
|
+# ============================================================
|
|
|
|
|
+
|
|
|
|
|
+MethodologyNotes:
|
|
|
|
|
+ - "强化学习的 step 定义严格等同于一个化学周期"
|
|
|
|
|
+ - "所有 RL 状态变量在一个 step 内视为常数"
|
|
|
|
|
+ - "物理周期层级仅用于环境内部模拟"
|
|
|
|
|
+ - "真实数据用于分布约束与验证,而非动力学建模"
|