config.py 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. from pathlib import Path
  2. # ============================================================
  3. # 路径配置(请根据实际环境修改)
  4. # ============================================================
  5. # Parquet 数据根目录,目录结构: {PARQUET_ROOT}/{model_name}/{farm_name}/{turbine_name}.parquet
  6. # TODO: 替换为实际路径
  7. PARQUET_ROOT = Path("/Volumes/P3/大唐标准化数据/stander_parquet")
  8. # 模型保存目录,按机型子目录存储
  9. # TODO: 替换为实际路径
  10. MODEL_SAVE_DIR = Path("/Users/xmia/Desktop/ZN/项目/大唐25-26/Dtest_code/code_abnormal/anomaly_detection/saved_models")
  11. # 结果数据库路径(SQLite,可替换为其他数据库连接字符串)
  12. # TODO: 替换为实际数据库地址
  13. DB_PATH = "/Users/xmia/Desktop/ZN/项目/大唐25-26/Dtest_code/code_abnormal/anomaly_detection/anomaly_results.db"
  14. # ============================================================
  15. # IsolationForest 通用参数
  16. # ============================================================
  17. ISO_CONTAMINATION = 0.01 # 预期异常比例,可按机型调整
  18. ISO_RANDOM_STATE = 42
  19. ISO_N_ESTIMATORS = 100
  20. # ============================================================
  21. # 状态打标参数
  22. # ============================================================
  23. # 功率越界倍数(相对额定功率)
  24. STATUS_POWER_UPPER_RATIO = 1.25 # 功率上限倍数
  25. STATUS_POWER_LOWER_RATIO = -0.10 # 功率下限倍数
  26. STATUS_SHUTDOWN_RATIO = 0.005 # 停机功率阈值(额定功率的比例),最小取 10kW
  27. STATUS_CURTAIL_LOW_RATIO = 0.02 # 限功率下限(额定功率比例)
  28. STATUS_CURTAIL_HIGH_RATIO = 0.95 # 限功率上限(额定功率比例)
  29. STATUS_CURTAIL_PITCH_OFFSET = 3.0 # 限功率桨距角偏移量(基准桨距角 + 此值)
  30. # 风速越界阈值(m/s)
  31. STATUS_WIND_MAX = 75.0
  32. STATUS_WIND_MIN = -2.0
  33. # 变桨越界阈值(°)
  34. STATUS_PITCH_MAX = 105.0
  35. STATUS_PITCH_MIN = -10.0
  36. # 转速/扭矩越界倍数
  37. STATUS_SPD_UPPER_RATIO = 1.25
  38. STATUS_TORQUE_UPPER_RATIO = 1.25
  39. STATUS_TORQUE_LOWER_ABS = -2000.0
  40. # 逻辑悖论阈值
  41. STATUS_LOGIC_WIND_MIN = 0.1 # 风速低于此值但功率大则为逻辑异常
  42. STATUS_LOGIC_POWER_MIN = 100.0 # 配合上面风速阈值的功率下限
  43. # 机型特殊规则: {model_name: [(wind_thresh, power_thresh), ...]}
  44. # 风速 < wind_thresh 但 功率 > power_thresh 时追加逻辑异常
  45. STATUS_MODEL_SPECIAL_RULES = {
  46. "EN156-3300": [(2.7, 450)],
  47. }
  48. # ============================================================
  49. # 风速功率分箱参数
  50. # ============================================================
  51. WIND_BIN_WIDTH = 0.5 # m/s
  52. WIND_BIN_MIN = 0.0
  53. WIND_BIN_MAX = 25.0
  54. # 有效发电风速区间(过滤切入/切出段噪声)
  55. WIND_VALID_MIN = 3.0 # m/s,切入风速
  56. WIND_VALID_MAX = 25.0 # m/s,切出风速
  57. # ============================================================
  58. # 测点列名(与 parquet 字段名对应)
  59. # ============================================================
  60. COL_WIND_SPD = "wind_spd"
  61. COL_P_ACTIVE = "p_active"
  62. COL_YAW_ANG = "yaw_ang"
  63. COL_TWIST_ANG = "twist_ang"
  64. COL_PITCH_SET_1 = "pitch_ang_set_1"
  65. COL_PITCH_SET_2 = "pitch_ang_set_2"
  66. COL_PITCH_SET_3 = "pitch_ang_set_3"
  67. COL_PITCH_ACT_1 = "pitch_ang_act_1"
  68. COL_PITCH_ACT_2 = "pitch_ang_act_2"
  69. COL_PITCH_ACT_3 = "pitch_ang_act_3"
  70. COL_PITCH_SPD_1 = "pitch_spd_1"
  71. COL_PITCH_SPD_2 = "pitch_spd_2"
  72. COL_PITCH_SPD_3 = "pitch_spd_3"
  73. COL_ROTOR_SPD = "rotor_spd"
  74. COL_THEORY_P_ACTIVE = "theory_p_active"
  75. COL_AMBIENT_TEMP = "ambient_temp"