mingyang_my1_5_lingmen.yaml 6.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. # 数据契约 — 明阳 MINGYANG MY1.5级双馈 (大唐 岭门风电场 广东, 33台)
  2. # schema: docs/OEM_KB §3. 校验器: scripts/contract_lint.py. oem-onboard 2026-07-15 (worktree线2 → 主会话续)。
  3. # OEM=明阳 (通道命名指纹交叉昌平坳/密马 ≥10词干; unverified 无铭牌/机台表)。canonical 复用 mingyang_my1_5_shenmu (英文列名版)。
  4. # 数据: minute/ (英文snake_case CSV, 层名'minute'=假名实为10min: t.diff中位600s; 每文件=1台 01.csv..33.csv)。
  5. # 窗 2024-01-01~2024-06-01 (152天, 全2024). 另有 scada/sec/ (真15s均值层, 温度10通道更全) = 高频层, 按需拉。
  6. # ★ 双层同源: 10min层 = 15s层右标签10min均值 (turbine5 |Δ|中位0.000 corr1.0 实证) → 交叉=装配核, 非多源印证。
  7. # ★ 无测风塔 → 绝对性能/达成率 INSUFFICIENT (机舱风 self_ref); 相对机群/温度NBM/集距可做。广东台风带 (状态码9含大风停机不可分)。
  8. # ★ 集距广播: pitch_angle_blade_1 活, blade_2/3 全死 (同昌邑/太阳山集距族)。中速轴轴承+绕组1/2/3 全死 (交付阉割)。
  9. schema_version: 2
  10. meta:
  11. oem: 明阳智能 MINGYANG
  12. model: "MY1.5级双馈 (推断 rated≈1500kW, 平台1545/max1568; 未见铭牌→unverified)"
  13. rated_kw: 1500
  14. n_turbines: 33
  15. farm: lingmen
  16. site: 广东 岭门 (大唐; 台风/海滨带)
  17. topology: DFIG_geared # generator_speed max1803rpm 高速侧 + 齿轮油温/DE-NDE/高低速轴承温 → 齿箱双馈
  18. self_ref_risk: true # 无测风塔 → 机舱风自指
  19. has_mast: false
  20. pitch: collective_broadcast # blade_1 活, blade_2/3 死 → 集距广播 (非per叶独立)
  21. oem_verified: false # 指纹交叉推断, 无铭牌
  22. reuse_of: mingyang_my1_5_shenmu.yaml
  23. ground_truth:
  24. status_enum: "SCADA内 wind_turbine_status 列 (无官方码表; 经验推断 3=并网发电/9=小风待机顺桨/2=启动; 候选级, 见 survey.status_code_semantics)"
  25. note: "本场零非数据资料 (无机台表/说明/功率曲线表/事件码表/测风塔); 状态/限电无独立收资导出 → 限电只停机型口径"
  26. turbine_10min:
  27. sampling_s: 600
  28. machine_col: wind_turbine_number
  29. required: [active_power, wind_velocity]
  30. columns:
  31. time_stamp: {role: timestamp}
  32. active_power: {canonical_id: WAPC_active_power, raw_unit: kW, to_canonical: 1, valid_range: [-500, 1900], observed_range: [0.0, 1545.2], sentinel: [-100], note: "额定≈1500; -100=no-data哨兵; stuck0.29@0=停机"}
  33. generator_speed: {canonical_id: WGEN_speed, raw_unit: rpm, to_canonical: 1, valid_range: [-150, 2000], observed_range: [0.0, 1799.9], sentinel: [-100], note: "DFIG高速侧; -100哨兵"}
  34. wind_velocity: {canonical_id: WMET_wind_speed_nacelle, raw_unit: mps, to_canonical: 1, valid_range: [0, 60], observed_range: [0.47, 12.4], sentinel: [], self_ref_risk: true, note: "机舱风; 绝对功率曲线自指(无塔)"}
  35. pitch_angle_blade_1: {canonical_id: WROT_pitch_angle_collective, raw_unit: deg, to_canonical: 1, valid_range: [-11, 95], observed_range: [-0.52, 89.0], sentinel: [-10], trap: "集距广播(blade2/3死); -10=明阳故障态占位哨兵(804次, 同昌平坳, 在valid内须显式剔); 浮点损坏min-1e20/max133.9→物理门clip NaN"}
  36. cabin_position: {canonical_id: WYAW_nacelle_position, raw_unit: deg, to_canonical: 1, valid_range: [0, 360], observed_range: [9.23, 353.81], sentinel: []}
  37. yaw_error1: {canonical_id: WYAW_wind_dir_deviation, raw_unit: deg, to_canonical: 1, valid_range: [-180, 180], observed_range: [-64.31, 77.37], sentinel: [], note: "对风偏差; 静偏中位-12°待核"}
  38. gearbox_oil_temperature: {canonical_id: WTRM_gbx_oil_temp, raw_unit: C, to_canonical: 1, valid_range: [-40, 120], observed_range: [30.53, 63.73], sentinel: [-1]}
  39. generatordrive_end_bearing_temperature: {canonical_id: WGEN_de_bearing_temp, raw_unit: C, to_canonical: 1, valid_range: [-40, 150], observed_range: [23.74, 48.28], sentinel: [-1]}
  40. generatornon_drive_end_bearing_temperature: {canonical_id: WGEN_nde_bearing_temp, raw_unit: C, to_canonical: 1, valid_range: [-40, 150], observed_range: [25.62, 56.16], sentinel: [-1], trap: "max225=spurious尖峰→物理门NaN"}
  41. wind_turbine_status: {role: state_enum, note: "无官方码表; 整数=稳态(3发电/9待机), 小数=均值窗换态; 候选级语义"}
  42. cabin_temperature: {canonical_id: WNAC_temp, raw_unit: C, to_canonical: 1, valid_range: [-40, 60], observed_range: [6.35, 29.73], sentinel: [-1]}
  43. outside_cabin_temperature: {canonical_id: WMET_ambient_temp, raw_unit: C, to_canonical: 1, valid_range: [-40, 55], observed_range: [7.2, 34.33], sentinel: [-1], trap: "max81.3=spurious(广东不可能)→物理门NaN; 环温通道邻机参考法备用"}
  44. main_bearing_temperature: {canonical_id: WTRM_main_bearing_temp, raw_unit: C, to_canonical: 1, valid_range: [-40, 100], observed_range: [24.76, 45.25], sentinel: [-1]}
  45. gearbox_high_speed_shaft_bearing_temperature: {canonical_id: WTRM_gbx_bearing_temp_hs, raw_unit: C, to_canonical: 1, valid_range: [-40, 150], observed_range: [30.52, 75.02], sentinel: [-1]}
  46. gearbox_low_speed_shaft_bearing_temperature: {canonical_id: WTRM_gbx_bearing_temp_ls, raw_unit: C, to_canonical: 1, valid_range: [-40, 150], observed_range: [31.4, 72.95], sentinel: [-1]}
  47. cleaning:
  48. physical: "valid_range clip→NaN(非clamp); pitch浮点损坏(±1e20)/max133>95 → NaN; outside_cabin max81/gen_NDE max225 spurious→NaN; -1哨兵(温度)/-100哨兵(功率转速)→NaN"
  49. semantic: "机舱风自指(无塔)→绝对功率曲线INSUFFICIENT; 状态用SCADA wind_turbine_status(无码表, 候选语义); 集距广播单叶; 限电只停机型口径(无收资状态导出)"
  50. dead_or_unusable:
  51. "32死列 (交付阉割, 不入契约, loader drop)": "rotor_speed/pitch_blade_2,3/true_wind_direction/set_value_of_active_power/wind_turbine_status2/twisted_cable_angle/振动×2/actual_torque/given_torque/yaw_count×2/unusable/power_curve_available/required_gearbox_speed/inverter_speed_master_control/gearboxmedium_speed_shaftbearing(中速轴)/generator_winding1,2,3(绕组全死)/turbulence_intensity/param1-10"
  52. "year,month,day": "冗余日历列, loader drop (time_stamp 已含)"
  53. traps:
  54. - "★层名'minute'=假名, 实为10min (t.diff中位600s); scada/sec/'sec'=假名实15s均值 — 层名不可信必实测"
  55. - "★双层同源: 10min=15s右标签时均 (非独立源) → 交叉=装配核非多源印证"
  56. - "★集距广播: pitch_blade_1活/blade_2,3死; 中速轴轴承+绕组1/2/3 全死 (温度NBM可用主轴/齿箱高低速/发电机DE-NDE/齿箱油 8通道)"
  57. - "★哨兵双族: -1(温度no-data) / -100(功率+转速no-data); spurious尖峰 pitch±1e20/outside81/genNDE225"
  58. - "★无测风塔+机舱风 → 绝对性能INSUFFICIENT; 广东台风带 状态码9含大风停机不可分"
  59. - "★零非数据资料 (无机台表/码表/功率曲线/测风塔) → OEM/model指纹推断unverified; 限电停机型口径"