# 数据契约 — 白玉山风电场 (山西 朔州 平鲁, 大唐) — OEM未定 5.0MW级 薄场, 62台(二期40 #56-#95 + 三期22 #34-#55) # OEM=未定 (禁猜): 无机型/铭牌/说明文档随数据交付 (intake_scan materials=0); 通道命名=GBK中文标准列 # (发电机转速/发电量初末值/环境温度/1#2#3#变桨桨距角/风速/风向角/网侧有功功率) 无OEM专属指纹 → 不匹配库内已知场. # 发电机转速 p99≈687rpm = 中速传动 (非高速DFIG~1500 / 非直驱~10) → 半直驱候选, 未定谳. 实名报告前须业主铭牌确认. # rated=5000kW data-first: 网侧有功功率 二期+三期(3月样) p99≈4958-5002 / p999≈5019-5021 / max5182-5376(瞬时boost); # 发电量(末-初) p99≈828-834kWh ≈ 5000×(1/6)h=833 自洽; 与铭牌算术自洽(二期40×5MW=200MW场名 / 三期22×5MW≈100MW扩容). # G-OEM 实证 (2026-07-17, scratchpad/{probe_bys,goem_bys,probe2_bys}.py; 62台×3月样跑 + 全量装配): # 格式=月CSV(GBK); 每CSV第1行=标题行'十分钟数据(窗)', 第2行=真表头, 第3行起数据 → 装配 skiprows=1. # 尾随逗号产生第18空列(Unnamed:17)→装配丢弃. 时间列 tab包裹'\t..\t'→strip. 台id=CSV内'设备名称'列(禁文件名). # 真采样率=600s (per设备名 t.diff().median() 全62台=600 min=max; 禁全局median). # 哨兵: 无 magic 哨兵(-99/-999/9999/-274.15 未见); 坏值以物理界外出现(三期桨距 raw[-142.81,199.59]) → valid_range界外→NaN(非clamp, 非magic). # self_ref: 风速=机舱风速计 → 绝对功率曲线/Cp/达成率 INSUFFICIENT (无测风塔/mast层). # 风向: 仅 平均风向角(0-360 live nuniq~17-20k); 无机舱位置/朝向列 → 无第二方向列可跑pseudo-geo恒等式 → # frame不可判定为地理绝对, 保守 frame=unknown(vane-like), 禁作扇区/风玫瑰/绝对偏航锚 (memory pseudo-geo-wind-direction-identity-test). # 发电量: 初值/末值=累计counter(末值[t]==初值[t+1]精确相接); 区间能量=末-初(装配派生 energy_10min). # pitch: 集控广播 collective; below-rated(200