taizhong_tz2000_93_fuxin_rushan.yaml 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. # 数据契约 — 太重 TZ2000/93 齿箱DFIG (华电福新乳山风场, 山东威海乳山 / 华电山东)
  2. # schema_v2 SOP 标准件 (2026-07-18, 半成品onboard补链回填 wake选项b)。
  3. #
  4. # ★ 特殊: 本契约验 **清洗层 cleaned/turbine_10min.parquet (列已归一化)**, 非原始 CSV —
  5. # 现 cleaned 由 scripts/onboard_fuxin_rushan.py 生成 (e482ade3, 早于契约; 惠山债偿模式补链):
  6. # 原始=风机数据/A1-A24/output.csv (1-min, 25列, 目录名"10分钟"实测1-min王家湾坑) → 列名去台号前缀+去(历史)
  7. # → 哨兵剥离(温度valid[-40,125]/功率[0,2200]) → 派生10min真时均层(温度median/功率mean)。
  8. # valid_range = 清洗时 clip 门 (脚本 TEMP_LO/HI, POW_LO/HI); observed_range = 现 cleaned 实测 min/max。
  9. # ★ OEM = 太重 TZ2000/93 (2MW齿箱双馈): cleaned/fingerprint.json (e482ade3 遗留onboard元数据) 坐实;
  10. # 库内无同型契约复用 (夏邱/南墅=上海电气SEWIND, 结构不同) → 独立写。G3可迁移性: 诊断算子用前须重标。
  11. # ★ self_ref 订正: findings FR-1 早判"无测风塔"失实 → 实有真6高度测风塔(3、测风塔数据, 窗2025-10~11约1月,
  12. # 部分高度层坏); 绝对达成率仍 INSUFFICIENT 但理由="有塔但窗1月+单塔空间代表性未过", 达成率须 power-curve-ntf 专线。
  13. schema_version: 2
  14. meta:
  15. oem: 太重 TZ2000
  16. model: TZ2000/93 (2MW 齿箱双馈 DFIG; 93m叶轮)
  17. topology: dfig_geared # 齿轮箱油温+高/低速轴+主轴 + 发电机DE/NDE轴承 + 发电机线圈L1L2L3三相 + rpm_gen高速轴
  18. rated_kw: 2000 # 太重TZ2000铭牌(2MW级); cleaned功率 p99~1779/max2064 = 运行未满发或场特性(风资源)
  19. rated_kw_note: "铭牌2000kW(TZ2000). cleaned实测 power p99~1779 max2064 → 达成率参考额定取2000; 未满发成因(风资源/降容)须专线, onboard不判。"
  20. rotor_d_m: 93 # TZ2000/93 型号后缀
  21. source_farm: 华电福新乳山风场(山东省威海市乳山市, 华电山东; 华电山东隐患排查数据-2026.2 批, 同夏邱/南墅/虎头崖/德惠源)
  22. n_machines: 24 # ✅风机数据目录 A1-A24 = 24台有温度数据; ★21台有实际功率(A01/A02/A03=限值台无电网有功功率列)
  23. n_machines_note: "24台目录(A1-A24)全有温度; 但 A01/A02/A03 无'电网有功功率'列(仅功率限值) → power=NaN → 21台有功率数据。findings n_machines=21(有效功率台)。"
  24. absent_channels_note: "cleaned 10min层无: 桨距角(三叶不平衡/集距 N/A) / 振动(部件振动 N/A; 8、CMS有报告无数据) / 机舱位置/风向角(扇区/静态偏航/cable_twist N/A) / 齿箱双压dP / 逐相电流。→ 温度NBM(相间/配对差)+机群相对+限电(功率-风推断)可做; 变桨/偏航/振动/绝对功率曲线 不可做。"
  25. secondary_layers:
  26. metmast: "3、测风塔数据 (登记非清洗): 测风塔数据.csv(zip内, 6高度 avgspeedlv1-6/directionlv1-6/温湿压, 15min, 窗2025-10-25~11-25约1月, ★部分高度层0/NaN坏) + 气象实测2025-10-25_11-25.csv(同窗) + 功率数据/实际功率数据csv。→ 绝对达成率专线(power-curve-ntf: 15min→10min重采+空间代表性+不确定度带); onboard未装cleaned。"
  27. event_fault: "7、机组状态、事件、故障数据 (登记非装配): 事件/故障层, 限电剥离/停机型/A_op可建 (Phase-2)。"
  28. layout:
  29. format: "原始: 1、10分钟SCADA数据/风机数据/风机数据/A{1..24}/output.csv (per台1目录, 1-min实测25列); cleaned: 派生10min真时均层16列(归一化名)"
  30. encoding: utf-8
  31. time_format: "YYYY-MM-DD HH:MM:SS (原'时间'列)"
  32. machine_token: "目录 A1..A24 (无前导0) → 清洗统一 A01..A24 (对齐gold_cms)"
  33. assemble: "scripts/onboard_fuxin_rushan.py (逐台output.csv → clean_col去前缀 → 哨兵剥离 → resample('10min')median/mean → concat)"
  34. sampling:
  35. turbine_10min_s: 600 # ✅ cleaned per台 t.diff().median()=600 (全24台 min=median=max=600)
  36. raw_s: 60 # ★原始output.csv实测1-min (目录名"10分钟"错; 王家湾坑)
  37. window: "2025-01-01 ~ 2026-01-23 (约13月, 1257371行/24台)"
  38. turbine_10min:
  39. sampling_s: 600
  40. required: ["power", "wind"]
  41. machine_col: tid
  42. time_col: time
  43. columns:
  44. power:
  45. canonical_id: WTUR_active_power
  46. raw_unit: kW
  47. valid_range: [0, 2200]
  48. observed_range: [0, 2064.0] # p99~1779 rated2000; A01/A02/A03限值台=NaN(30.6% nan含限值台+停机)
  49. self_ref_note: "★订正: 早判'无测风塔self_ref'失实, 实有6高度测风塔(窗1月部分层坏); 绝对达成率仍INSUFFICIENT(有塔但窗1月+单塔空间代表性未过), 须 power-curve-ntf 专线, 非机舱风self_ref一句可结。"
  50. wind:
  51. canonical_id: WMET_horWdSpd
  52. unit: m/s
  53. valid_range: [0, 40]
  54. observed_range: [0, 35.5]
  55. self_ref_risk: medium
  56. note: "机舱风(风速10min平均); 有真测风塔但窗仅1月 → 达成率专线才用塔风替self_ref"
  57. rpm_gen:
  58. canonical_id: WGEN_Spd
  59. unit: rpm
  60. valid_range: [-2, 2000]
  61. observed_range: [0, 1843.7]
  62. semantic: "发电机转速(高速轴, 齿箱DFIG); 原'发电机转速1s'列"
  63. ambient:
  64. canonical_id: WMET_EnvTmp
  65. unit: degC
  66. valid_range: [-40, 55]
  67. observed_range: [-39.7, 45.3]
  68. semantic: "户外温度(分箱轴/环温); clip -40 边界(实测min=-39.7)"
  69. nacelle_temp:
  70. canonical_id: WNAC_IntTmp
  71. unit: degC
  72. valid_range: [-40, 80]
  73. observed_range: [-40.0, 41.5]
  74. semantic: "机舱温度(辅助); clip -40 边界"
  75. # ---- 9部件温度 (引擎判据轴; valid上限125=清洗clip门, observed_max=125=边界真值) ----
  76. 齿轮箱油温:
  77. canonical_id: WGdV_TmpOil
  78. unit: degC
  79. valid_range: [-40, 125]
  80. observed_range: [-6.0, 87.5]
  81. semantic: "齿箱油温 → 齿箱轴承温冷浸参照(高/低速轴)"
  82. 齿轮箱高速轴温度:
  83. canonical_id: WGdV_TmpHSShaft
  84. unit: degC
  85. valid_range: [-40, 125]
  86. observed_range: [-5.7, 93.8]
  87. 齿轮箱低速轴温度:
  88. canonical_id: WGdV_TmpLSShaft
  89. unit: degC
  90. valid_range: [-40, 125]
  91. observed_range: [-6.1, 91.6]
  92. 主轴温度:
  93. canonical_id: WROT_TmpMainBrg
  94. unit: degC
  95. valid_range: [-40, 125]
  96. observed_range: [-7.6, 65.8]
  97. semantic: "主轴承(脂润滑, 无油浴冷浸参照)"
  98. 发电机驱动端轴承温度:
  99. canonical_id: WGEN_TmpBrgDE
  100. unit: degC
  101. valid_range: [-40, 125]
  102. observed_range: [-37.8, 109.0]
  103. semantic: "发电机DE轴承 → 配对差(vs NDE)可做"
  104. 发电机非驱动端轴承温度:
  105. canonical_id: WGEN_TmpBrgNDE
  106. unit: degC
  107. valid_range: [-40, 125]
  108. observed_range: [-10.0, 115.7]
  109. 发电机线圈L1温度:
  110. canonical_id: WGEN_TmpStaU
  111. unit: degC
  112. valid_range: [-40, 125]
  113. observed_range: [-11.7, 125.0]
  114. semantic: "★发电机线圈三相L1/L2/L3 → 相间不平衡可做; obs_max=125=clip边界(哨兵142-148/649剔)"
  115. 发电机线圈L2温度:
  116. canonical_id: WGEN_TmpStaV
  117. unit: degC
  118. valid_range: [-40, 125]
  119. observed_range: [-7.7, 125.0]
  120. 发电机线圈L3温度:
  121. canonical_id: WGEN_TmpStaW
  122. unit: degC
  123. valid_range: [-40, 125]
  124. observed_range: [-7.9, 125.0]