dec_fd116a_2000_feichijiao.yaml 6.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. # 飞尺角 东方电气 FD116A 2.0MW ×24 (F01-F24; min/层23台缺F17) — WINDDATA 新总盘首个 onboard 样板
  2. # 复用 dec_fd116a OEM 语义 (源 dec_fd116a_2000_liangshuiquan.yaml), 但导出格式不同→自有列映射
  3. # G-OEM 实证: scratchpad/fcj_goem.py + frame验 (2026-07-06)
  4. # ⭐ DEC frame病解: 绝对风向 & 机舱位置 皆地理绝对 (发电态差 中位0.2°/std19° = 对风角) → 回填 OEM_KB
  5. schema_version: 2
  6. meta:
  7. oem: 东方电气 DEC
  8. model: FD116A
  9. rated_kw: 2000
  10. n_turbines: 24 # 机台表24(F01-F24); min/层有数据23(缺F17); scada/min层24
  11. farm: feichijiao
  12. site: 云南飞尺角 (大龙山三期, 海拔~2000m, 103.8E/23.9N)
  13. commissioned: 2017
  14. contract_curve: 收资表功率曲线表 双密度 0.96(场站高海拔)/1.225(标准), 额定2000 (待OCR锚风速)
  15. windows: {min_10min: "2024-01-01~2025-01-01 (全年)", scada_min: "2023-06~ (8列/GBK, 少)", zip_10min: "TCS10MData 全24台 (格式待解, 疑GBK)"}
  16. self_ref_risk: true # 风速=机舱风速计; 测风塔登记未交付 → 绝对达成率须担保曲线, 禁机舱风
  17. reuse_of: dec_fd116a_2000_liangshuiquan.yaml # 同OEM同型; 语义复用, 列名不可套(飞尺角单表头带单位 vs 凉水泉双行表头平均值列族)
  18. turbine_10min: # onboarding 层 = min/F*.csv (18列, UTF-8单表头, dt=600s实证)
  19. sampling_s: 600
  20. columns:
  21. 时间: {role: timestamp}
  22. "Unnamed: 1": {role: drop, valid_range: [0, 0], observed_range: [0, 0], trap: "空占位列(CSV空表头, 非空率0%), 读入即弃"}
  23. "有功功率(kW)": {raw_unit: kW, to_canonical: 1, valid_range: [-100, 2200], observed_range: [-22, 2046], sentinel: []}
  24. "桨叶角度(°)": {raw_unit: deg, to_canonical: 1, valid_range: [-5, 95], observed_range: [-1, 91.6], sentinel: [-99], trap: "集距(单叶角), -99哨兵(稀疏); 三叶不平衡须振动不可靠此列"}
  25. "风速(m/s)": {raw_unit: mps, to_canonical: 1, valid_range: [0, 60], observed_range: [0, 19.6], sentinel: [], trap: "机舱风速计 self_ref, 禁做绝对Cp/达成率"}
  26. "绝对风向(°)": {raw_unit: deg, to_canonical: 1, valid_range: [0, 360], observed_range: [8.8, 360], frame: "地理绝对(实证与机舱位置差发电态中位0.2/std19=对风角); DEC frame病此型=地理[解凉水泉悬案]", trap: "环量均值病: 0/360跨越处均值无效, circular法"}
  27. "低速轴转速(rpm)": {raw_unit: rpm, to_canonical: 1, valid_range: [0, 25], observed_range: [0, 13.2], sentinel: []}
  28. "环境温度(℃)": {raw_unit: C, to_canonical: 1, valid_range: [-45, 55], observed_range: [-4, 27], sentinel: []}
  29. "机舱温度(℃)": {raw_unit: C, to_canonical: 1, valid_range: [-40, 80], observed_range: [5.5, 39], sentinel: []}
  30. "机舱位置(°)": {raw_unit: deg, to_canonical: 1, valid_range: [0, 360], observed_range: [0, 359.5], frame: "地理绝对(见绝对风向); 对风角=绝对风向−机舱位置"}
  31. "发电机转速(rpm)": {raw_unit: rpm, to_canonical: 1, valid_range: [0, 2200], observed_range: [0, 1201], sentinel: [], note: "DFIG~1200rpm; 齿比≈发电机/低速轴≈91"}
  32. "齿轮箱高速轴轴承(风轮侧)温度(℃)": {raw_unit: C, to_canonical: 1, valid_range: [-40, 120], observed_range: [22, 82], sentinel: []}
  33. "齿轮箱高速轴轴承(电机侧)温度(℃)": {raw_unit: C, to_canonical: 1, valid_range: [-40, 120], observed_range: [10, 73], sentinel: []}
  34. "齿轮箱油池温度(℃)": {raw_unit: C, to_canonical: 1, valid_range: [-40, 120], observed_range: [7, 57], sentinel: []}
  35. "发电机V相定子绕组温度(℃)": {raw_unit: C, to_canonical: 1, valid_range: [-40, 180], observed_range: [4.8, 115.5], sentinel: [], note: "仅V相(单相); F级155阈"}
  36. "发电机前轴承温度(℃)": {raw_unit: C, to_canonical: 1, valid_range: [-40, 150], observed_range: [5, 69], sentinel: []}
  37. "发电机后轴承温度(℃)": {raw_unit: C, to_canonical: 1, valid_range: [-40, 150], observed_range: [3, 69], sentinel: []}
  38. "主控控制字1()": {role: state_enum, dead_channel: true, valid_range: [0, 0], observed_range: [0, 0], trap: "min/层跨23机全0=死列(无状态码); 限电/停机型/事件须单独事件数据(收资表'机组状态事件数据'单独交付)"}
  39. # 以下 6 列跨台不齐 (CT-2 组装暴露, F1 无但他台有):
  40. "首发故障码地址()": {role: state_enum, raw_unit: code, to_canonical: 1, valid_range: [0, 99999], observed_range: [0, 1048], trap: "故障码地址(非码本体), 22/23台稀疏; 配FD116A故障手册解码 (同凉水泉'首发故障码地址'266常值病)"}
  41. "主轴轴承1(前轴承)温度(℃)": {raw_unit: C, to_canonical: 1, valid_range: [-40, 120], observed_range: [2, 45], sentinel: [], note: "21/23台有 (主轴承前, DEC 10min层含主轴温=优于凉水泉)"}
  42. "主轴轴承2(后轴承)温度(℃)": {raw_unit: C, to_canonical: 1, valid_range: [-40, 120], observed_range: [2, 64], sentinel: [], note: "21/23台有 (主轴承后)"}
  43. "电缆扭角(°)": {raw_unit: deg, to_canonical: 1, valid_range: [-1200, 1200], observed_range: [-538, 794], sentinel: [], note: "18/23台; 解缆/扭缆代理 (同凉水泉电缆扭角)"}
  44. "齿轮箱转速(rpm)": {raw_unit: rpm, to_canonical: 1, valid_range: [0, 2200], observed_range: [0, 1201], sentinel: [], note: "仅1/23台额外仪表, 稀疏列"}
  45. "齿轮箱进油口温度(℃)": {raw_unit: C, to_canonical: 1, valid_range: [-40, 120], observed_range: [3, 66], sentinel: [], note: "仅1/23台额外仪表, 稀疏列"}
  46. cleaning:
  47. physical: "valid_range clip→NaN (apply_contract_gate); 桨叶角度 -99哨兵→NaN; Unnamed:1 弃列"
  48. semantic: "主控控制字1 死列(全0) → 限电/停机型判据须外部事件数据; 绝对风向 circular; 对风角=绝对风向−机舱位置"
  49. traps:
  50. - "同OEM(DEC FD116A)不同导出格式: 飞尺角单表头带单位 vs 凉水泉双行表头74列(平均值/最大/最小列族) → 契约列名不可直接套凉水泉, 仅语义复用"
  51. - "min/层缺F17(23/24台有数据); scada/min(2023-06,8列GBK)+10min zip(TCS10MData 全24台,格式待解)另存"
  52. - "测风塔收资表登记未交付 → 绝对功率曲线无自由来流锚(机舱风self_ref); 达成率用担保曲线(功率曲线表待OCR)"
  53. - "主控控制字1全0死列 → 无SCADA状态码; 限电识别须外部事件/故障码表"
  54. - "高海拔~2000m空气密度~0.96 → Cp/达成率须空密修正 (同凉水泉高海拔族)"