unknown_5p0mw_baiyushan.yaml 9.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. # 数据契约 — 白玉山风电场 (山西 朔州 平鲁, 大唐) — OEM未定 5.0MW级 薄场, 62台(二期40 #56-#95 + 三期22 #34-#55)
  2. # OEM=未定 (禁猜): 无机型/铭牌/说明文档随数据交付 (intake_scan materials=0); 通道命名=GBK中文标准列
  3. # (发电机转速/发电量初末值/环境温度/1#2#3#变桨桨距角/风速/风向角/网侧有功功率) 无OEM专属指纹 → 不匹配库内已知场.
  4. # 发电机转速 p99≈687rpm = 中速传动 (非高速DFIG~1500 / 非直驱~10) → 半直驱候选, 未定谳. 实名报告前须业主铭牌确认.
  5. # rated=5000kW data-first: 网侧有功功率 二期+三期(3月样) p99≈4958-5002 / p999≈5019-5021 / max5182-5376(瞬时boost);
  6. # 发电量(末-初) p99≈828-834kWh ≈ 5000×(1/6)h=833 自洽; 与铭牌算术自洽(二期40×5MW=200MW场名 / 三期22×5MW≈100MW扩容).
  7. # G-OEM 实证 (2026-07-17, scratchpad/{probe_bys,goem_bys,probe2_bys}.py; 62台×3月样跑 + 全量装配):
  8. # 格式=月CSV(GBK); 每CSV第1行=标题行'十分钟数据(窗)', 第2行=真表头, 第3行起数据 → 装配 skiprows=1.
  9. # 尾随逗号产生第18空列(Unnamed:17)→装配丢弃. 时间列 tab包裹'\t..\t'→strip. 台id=CSV内'设备名称'列(禁文件名).
  10. # 真采样率=600s (per设备名 t.diff().median() 全62台=600 min=max; 禁全局median).
  11. # 哨兵: 无 magic 哨兵(-99/-999/9999/-274.15 未见); 坏值以物理界外出现(三期桨距 raw[-142.81,199.59]) → valid_range界外→NaN(非clamp, 非magic).
  12. # self_ref: 风速=机舱风速计 → 绝对功率曲线/Cp/达成率 INSUFFICIENT (无测风塔/mast层).
  13. # 风向: 仅 平均风向角(0-360 live nuniq~17-20k); 无机舱位置/朝向列 → 无第二方向列可跑pseudo-geo恒等式 →
  14. # frame不可判定为地理绝对, 保守 frame=unknown(vane-like), 禁作扇区/风玫瑰/绝对偏航锚 (memory pseudo-geo-wind-direction-identity-test).
  15. # 发电量: 初值/末值=累计counter(末值[t]==初值[t+1]精确相接); 区间能量=末-初(装配派生 energy_10min).
  16. # pitch: 集控广播 collective; below-rated(200<P<4000) 三叶极差 p50=p95=p99=0.0000°≪1° → three_blade N/A (非IPC).
  17. # 薄场: 无部件温(仅环温) → 温度NBM/隐性发热⑥⑦不可做; 无状态码; 无三相电流/电压/无功列 → CL-3三相门 SKIP.
  18. # 二/三期台集 DISJOINT (#34-55 vs #56-95, 交集空) → 合并装配安全, 设备名全局唯一.
  19. schema_version: 2
  20. meta:
  21. oem: "未定 (无铭牌/机型随数据交付; GBK标准中文列无OEM指纹; 发电机转速p99≈687rpm=中速传动候选; 待业主铭牌确认)"
  22. model: "未定 5.0MW级 (中速传动候选; 集控collective变桨)"
  23. rated_kw: 5000
  24. rated_note: "data-first: 网侧有功 p99≈5000/p999≈5020/max5376瞬时boost; 发电量(末-初)p99≈833≈5000×1/6自洽; 铭牌型号未交付 UNVERIFIED"
  25. n_turbines: 62
  26. n_with_data: 62
  27. farm: baiyushan
  28. site: 山西 朔州 平鲁 (大唐)
  29. owner: UNVERIFIED (大唐 山西朔州平鲁; 铭牌未交付)
  30. topology: unknown_medium_speed_candidate
  31. self_ref_risk: true
  32. phases:
  33. 二期: "40台 #56-#95; 内部场名'朔州平鲁白玉山200MW风电场'; 馈线 A-H线"
  34. 三期: "22台 #34-#55; 内部场名'白玉山100MW扩容'; 馈线 集电3-6线"
  35. windows:
  36. turbine_10min: "2023-01-01~2024-09-18 (21月CSV, 二/三期一致; 精确窗从装配数据 t.min/max 实测填 fingerprint)"
  37. turbine_10min:
  38. sampling_s: 600
  39. machine_col: turbine_id
  40. required: ["平均网侧有功功率(kW)", "平均风速(m/s)"]
  41. # 装配派生 meta 列 (非 raw 信号, 不过 gate, 故不列 columns; 见 cleaning/traps):
  42. # turbine_id = CSV内'设备名称'(#34-#95, 二/三期全局唯一) / phase = 二期|三期(zip来源) / feeder = 馈线名称
  43. columns:
  44. time_local: {role: timestamp, canonical_id: TIME_local, note: "本地时(UTC+8)区间起; 源'时间'列tab包裹strip后解析"}
  45. "平均发电机转速瞬时值(rpm)": {valid_range: [-10, 900], observed_range: [0.0, 690.2], sentinel: [], canonical_id: WGEN_speed, note: "发电机转速; p99≈687rpm=中速传动; 0=停机真值"}
  46. "平均网侧有功功率(kW)": {valid_range: [-200, 5600], observed_range: [-46, 5376], sentinel: [], canonical_id: WAPC_active_power, note: "rated源: p99≈5000/p999≈5020/max5376瞬时boost; 负值(-46)=idle自耗真值"}
  47. "风机发电量初值(kWh)": {valid_range: [0, 100000000], observed_range: [2406212, 3834594], sentinel: [], canonical_id: WAPC_energy_start, note: "累计counter(odometer)区间起读数; 末值[t]==初值[t+1]相接"}
  48. "风机发电量末值(kWh)": {valid_range: [0, 100000000], observed_range: [2406517, 3834925], sentinel: [], canonical_id: WAPC_energy_end, note: "累计counter区间末读数; 派生 energy_10min=末-初(p99≈833≈rated/6)"}
  49. energy_10min: {valid_range: [-50, 6000], observed_range: [0, 834], sentinel: [], canonical_id: WAPC_energy_10min, note: "装配派生=末值-初值(区间能量kWh/10min); p99≈833≈rated×1/6; 界外(counter重置/跨年跳变)→NaN"}
  50. "平均环境温度(℃)": {valid_range: [-45, 50], observed_range: [-31.4, 35.5], sentinel: [], canonical_id: WMET_ambient_temp, note: "唯一温度通道(薄场无部件温); 山西朔州冬季-31℃真值; 反-环温调节判据可用但无部件温对象"}
  51. "平均风速(m/s)": {valid_range: [0, 60], observed_range: [-0.01, 22.37], sentinel: [], self_ref_risk: true, canonical_id: WMET_wind_speed_nacelle, note: "机舱风速计 self_ref; 绝对功率曲线/Cp/达成率 INSUFFICIENT (无测风塔); min-0.01=近零噪声"}
  52. "风速标准差(m/s)": {valid_range: [0, 20], observed_range: [0.0, 13.65], sentinel: [], canonical_id: WMET_wind_ti_std, note: "10min风速标准差=湍流强度代理"}
  53. "最大风速(m/s)": {valid_range: [0, 80], observed_range: [0.0, 40], sentinel: [], canonical_id: WMET_wind_speed_max, note: "10min最大风速(阵风)"}
  54. "平均风向角(deg)": {frame: unknown, valid_range: [0, 360], observed_range: [0.0, 354.8], sentinel: [], self_ref_risk: true, canonical_id: WMET_wind_dir_raw, note: "唯一方向列, live(nuniq~17-20k); 无机舱位置/朝向列可跑pseudo-geo恒等式 → frame不可判地理绝对, 保守unknown(vane-like); 禁作扇区/风玫瑰/绝对偏航锚 (memory pseudo-geo-wind-direction-identity-test)"}
  55. "平均1#变桨桨距角(deg)": {valid_range: [-15, 95], observed_range: [-0.50, 90.53], sentinel: [], canonical_id: WROT_pitch_angle_1, note: "集控collective广播(非IPC): below-rated三叶极差p99=0.00°≪1°; 三期raw[-142.81,199.59]界外→NaN; below-rated最小桨距≈-0.5°"}
  56. "平均2#变桨桨距角(deg)": {valid_range: [-15, 95], observed_range: [-0.50, 90.53], sentinel: [], canonical_id: WROT_pitch_angle_2, note: "collective广播 ≡ 1#/3# (三叶极差~0); three_blade不平衡 N/A"}
  57. "平均3#变桨桨距角(deg)": {valid_range: [-15, 95], observed_range: [-0.50, 90.53], sentinel: [], canonical_id: WROT_pitch_angle_3, note: "collective广播 ≡ 1#/2#"}
  58. cleaning:
  59. physical: "valid_range 界外→NaN (apply_contract_gate, 非clamp); 无 magic 哨兵(全 sentinel:[]); 坏值=物理界外(三期桨距-142/199 / 极端风速)→NaN; 累计发电量counter界宽[0,1e8]勿误NaN"
  60. semantic: "发电量初/末=累计counter(非区间量)→派生 energy_10min=末-初; pitch=集控collective(1#≡2#≡3#)勿当独立三叶; 风向角 frame=unknown 禁作绝对/扇区锚; 无状态码列(限电/停机型只能功率+转速派生)"
  61. per_turbine_liveness: "分析前必per台liveness闸 (表头有列≠有活信号, memory channel-header-not-liveness); 薄场17列全为活信号(已核), 无死列"
  62. traps:
  63. - "OEM未定: 无铭牌/机型/说明文档随数据交付(intake_scan materials=0); GBK标准中文列无OEM指纹; 发电机转速p99≈687rpm=中速传动候选(未定谳); 勿据onboard推断当定谳, 实名报告前须业主铭牌确认(rated5000/owner大唐 亦按data-first/folder, UNVERIFIED铭牌)"
  64. - "标题行陷阱: 每月CSV第1行='十分钟数据(窗)'标题行, 第2行才是真表头 → 装配 skiprows=1; 尾逗号产生第18空列(Unnamed:17)丢弃; GBK编码(禁utf-8); 时间列tab包裹'\\t..\\t'须strip"
  65. - "薄场诚实(别虚标富信号): 无部件温度通道(仅环温) → 温度NBM/隐性发热⑥⑦ 不可做; self_ref机舱风 → 绝对功率曲线/Cp/达成率 INSUFFICIENT; pitch集控广播 → three_blade不平衡 N/A; 无状态码 → 限电/停机分型无先验状态码依赖功率+转速; 无三相电流/电压/无功 → CL-3三相语义门 SKIP(note非静默干净)"
  66. - "风向派生列陷阱(保守版): 仅1个方向列(平均风向角0-360), 无机舱位置/朝向第二列可跑pseudo-geo恒等式 → 无法证其为独立地理传感器 → frame=unknown禁作扇区/风玫瑰/绝对偏航锚(避免金华山式假阳, memory pseudo-geo-wind-direction-identity-test)"
  67. - "发电量=累计counter非区间量: 末值[t]==初值[t+1]精确相接(odometer); 区间能量必派生 末-初(p99≈833≈rated×1/6); 直接对初值/末值做统计=对里程表读数无意义"
  68. - "二/三期台集DISJOINT(#34-55三期 vs #56-95二期 交集空)→合并装配安全设备名全局唯一; 与yuelinbai数据碰撞不同(白玉山无重叠), 但内部场名容量标注不同(200MW vs 100MW扩容)分期分析用phase列"