sewind_w2000_110_80.yaml 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. # 数据契约 — 上海电气 SEWIND W2000-110-80 (国电济南长清风电场, 大唐2025科研)
  2. # schema: docs/OEM_KB §3. 校验器: scripts/validate_contract.py. oem-onboard 复用路径 2026-06-07 (第3场, SEWIND已知OEM→形式化).
  3. # 复用: configs/point_reference/sewind_w2000_110_80_v2026_field_standardization_v1.yaml (单位/canonical/LN已做) + 本契约补 量程/哨兵/帧/陷阱/校验层.
  4. meta:
  5. oem: 上海电气 SEWIND
  6. model: W2000-110-80
  7. topology: DFIG_geared
  8. rated_kw: 2000
  9. variants_family: "W2000-93/110/135-90/80, W2000N-99/111/116 (rotor 93/110/135m) — 同家族跨场: 郭家店/淄川/文登/临邑"
  10. source_farm: 国电济南长清 (山东); 6台2026(F0050001001/002/003/006/008/014) + 25台2013+故障日志(1-25号风机)
  11. sampling: {raw_s: 30, note: "2026导出30s(38列,名带单位如'有功功率(kW)'); 另有10min重采样parquet(41列,名无单位'有功功率'); 2013为10min(25台); ⚠双命名(带/不带单位括号)"}
  12. ground_truth:
  13. field_std: "configs/point_reference/sewind_w2000_110_80_v2026_field_standardization_v1.yaml (单位/canonical/IEC-LN 已做, 复用)"
  14. fault_dict: "configs/fault_dicts/sewind_w2000_fault_codes.csv (2026-09-02 扩到1000码位/实义543, 源=淄博下发包CF卡 StatusCode+StatusCodeText, 取代原335条Gemini视觉提淄博PDF; 另有16列富表 sewind_sec2000_status_codes_full.csv 带停机程序/复位类型/延时/重复升级链) ⚠**淄博口径, 非上气通用**: 长清实测对拍277共同码仅64%描述一致, 见 README_sewind_sec2000.md 与 divergence.csv"
  15. fault_log: "故障记录统计(单台) 25台 — ⚠逐码聚合(已激活次数+最后激活/复位时间), 无单次时长 → 真停机帕累托做不了(需SCADA状态派生)"
  16. status_enum: "configs/fault_dicts/sewind_w2000_turbine_state_enum.csv 空 — ⚠运行状态枚举(含state11半载降额)无官方解, 需SEWIND主控状态机文档(操作/故障手册都没有)"
  17. met_mast: "长清风电场2023年测风塔数据 (待解压验时间窗是否覆盖SCADA)"
  18. spec_doc: "上海电气-国电济南长清技术协议20110413.doc (16.8MB) + 风电场收资表_长清_国电.xlsx + 长清一期风机坐标经纬度.xls"
  19. provenance: "oem-onboard 复用路径 2026-06-07; 复用SEWIND field_std + KB§4.3陷阱 + 2026 parquet探(量程/哨兵/限功率/帧) + 25台故障CSV分析"
  20. # 列名: ⚠双命名. 本契约 key 用 10min parquet 实际名(无单位括号); 30s导出用 '有功功率(kW)' 式(见 field_std).
  21. turbine:
  22. required: [有功功率, 风速]
  23. columns:
  24. 有功功率:
  25. canonical_id: WAPC_active_power
  26. raw_unit: kW # ✓ 实测 max2152≈额定2000+裕量, 非瓦特
  27. valid_range: [-50, 2200] # 小负=寄生(p50 -4 是1月低风寄生, 正常)
  28. block_if_raw_exceeds: 50000
  29. 风速:
  30. canonical_id: WMET_wind_speed_nacelle
  31. unit: m/s
  32. valid_range: [0, 40]
  33. self_ref_risk: true # 机舱风, 功率曲线自指 (finding89); 另有 10分钟平均风速 列
  34. 风轮转速:
  35. canonical_id: WROT_rotor_speed
  36. unit: rpm
  37. valid_range: [-2, 20] # 实测 0-16 (W2000-110 额定~16)
  38. 桨距角1:
  39. canonical_id: WROT_pitch_angle_1
  40. unit: deg
  41. valid_range: [-2, 95] # ✓ 实测 min=0 无负设定 (不同于DEC/XEMC -1°); max93
  42. 桨距角2:
  43. canonical_id: WROT_pitch_angle_2
  44. unit: deg
  45. valid_range: [-2, 95]
  46. 桨距角3: # ✓ SEWIND有三叶片瞬时桨距 (XEMC只有1/2)
  47. canonical_id: WROT_pitch_angle_3
  48. unit: deg
  49. valid_range: [-2, 95]
  50. 风向角:
  51. canonical_id: WYAW_yaw_error
  52. unit: deg
  53. frame: nacelle # 🔴★ 实测 range ±18° = nacelle-frame偏航误差, 非地理0-360 (坐实KB§4.3)
  54. valid_range: [-180, 180]
  55. note: "名'风向角'实为偏航误差(nacelle-frame), 不可做地理扇区/风玫瑰 (finding89/floris陷阱); 偏航只观测级"
  56. 舱外温度:
  57. canonical_id: WMET_ambient_temp
  58. unit: degC
  59. valid_range: [-45, 50] # 实测 -11~16(山东1月), 无哨兵
  60. 齿轮箱润滑油温度:
  61. canonical_id: WTRM_gearbox_oil_temp
  62. unit: degC
  63. valid_range: [-40, 90]
  64. 驱动前轴承温度:
  65. canonical_id: WGEN_bearing_temp_de
  66. unit: degC
  67. valid_range: [-40, 130]
  68. 限功率运行:
  69. canonical_id: WAPC_power_limited
  70. unit: bool
  71. valid_range: [0, 1] # ✓ 干净0/1标志, 实测20.3%=1(限电); 比骆驼沟有功功率限定值清晰
  72. semantic_verify: "C4教训: 1=限电 待用功率封顶法验(power贴顶且<wind-implied); 勿直接全信"
  73. 风机状态:
  74. canonical_id: WSLG_turbine_state
  75. unit: enum
  76. status_enum_ref: "configs/fault_dicts/sewind_w2000_turbine_state_enum.csv (空, state11未解)"
  77. note: "运行状态枚举无官方解; state11=半载降额(实证, 卡半载). 需主控状态机文档"
  78. cleaning:
  79. physical:
  80. - "有功功率 小负(>-50) = 待机寄生, 保留"
  81. - "桨距角 min=0 (SEWIND无负设定, 不同DEC/XEMC -1°)"
  82. semantic:
  83. - "风向角 = 偏航误差(nacelle-frame ±18°), 勿当地理风向做扇区"
  84. - "限功率运行=1 勿直接判限电, 用功率封顶法验 (C4教训)"
  85. - "一期 A7/A10/A24 风频字段放大~1000× (KB§4.3, 已知, 用前÷1000或排除)"
  86. status_enum_ref: configs/fault_dicts/sewind_w2000_turbine_state_enum.csv
  87. fault_codes_ref: configs/fault_dicts/sewind_w2000_fault_codes.csv
  88. traps:
  89. - "月间 schema 裂: 28列(健康)↔17列(可用率+风向) (郭家店). 读前先核列集"
  90. - "命名 A#=一期 C#=三期; 一期 A7/A10/A24 风频 ×1000"
  91. - "风向角 = nacelle-frame偏航误差(±18°)非地理0-360 — 误当地理=finding89类错"
  92. - "双命名: 30s导出'有功功率(kW)'(带单位括号) vs 10min parquet'有功功率'(无) — 契约/校验需对准实际导出"
  93. - "state11 半载降额无官方枚举解 (操作/故障手册都没有, 需主控状态机文档)"
  94. - "故障日志=逐码聚合(次数+最后时间)无单次时长 → 真停机时长帕累托做不了(同骆驼沟), 需SCADA风机状态派生"
  95. - "故障计数口径(7-gate D4): 65.3%是瞬时/运行/环境告警(高偏航误差穿越/湍流/风小待机/手动偏航)非部件故障; 'top按次数'误导, 必剔瞬时再排"
  96. - "限功率运行 20%=1 (山东电网限电常见), C4教训勿直接信需功率封顶验"