| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- # 数据契约 — 唐珍风电场 (farm#6, 大唐) — 华锐 SINOVEL SL1500/77, 1.5MW DFIG geared
- # schema: docs/OEM_KB §3. 校验器: scripts/validate_contract.py
- # 🔴 多OEM混场但仅华锐有数据 (HARD GATE 读全机台表坐实, 马王式):
- # 机台表99台3期: 1期 华锐SL1500/77×33(A1-33) + 2期 华锐×31+华锐ABB×1+科诺伟业Myse×1(B1-33) + 3期 沈阳华创CCWE-1500/77DF×33(C1-33)
- # ⚠ **SCADA数据(sec+10min)仅 A+B 华锐 ~33台子集**("参与分析机组"); **华创3期(C)机台表列了但无任何数据** → 不可分析, 标注.
- # 本契约只适用 华锐 SL1500/77 (A+B). 华创C无数据故无契约.
- meta:
- farm: 唐珍风电场
- farm_code: TZ
- oem: 华锐风电 SINOVEL
- model: SL1500/77 (1.5MW DFIG geared; 山东海边海拔2m; COD 2007-12 老场17年)
- topology: dfig_geared
- rated_kw: 1500 # 有功功率 max~1634, 额定1500
- rotor_diameter_m: 77
- hub_height_m: 65 # 机台表65/70m两值(华锐65)
- n_turbines_nameplate: 99 # 机台表(3期×33, 多OEM)
- n_turbines_with_data: 33 # ★仅华锐A+B子集有SCADA; 华创C(33)无数据
- province: 山东
- benchmark: [A1, A17, A21, B5, B15, B33] # 华锐标杆 (华创标杆C4/12/16无数据)
- sampling:
- sec_s: 15 # ★ 实测15秒 (≠列名"风速1秒平均值"; 别信名)
- min_s: 600
- windows:
- sec: "2023 (A21验Jan-Aug~8月; 全集待清洗确认)"
- min: "2023"
- mast: "2022-12 起 (整年) → 与sec 2023重叠 ✓ (异金华山三窗错配)"
- met_mast: present_but_UNRELIABLE # 🔴 I期测风塔 10m+80m (TSV伪装.xls GBK), 全年2022-12~2023-12与sec重叠, 但 80m传感器不可信:
- # 80m风速<10m风速 63%时间(ratio0.945, 高风0.929=负切变物理不可能) + 风向|80m-10m|=44.6°中位(传感器坏) + 月度ratio0.74~1.05不稳冬最差(疑结冰)
- # → 不可作可信轮毂自由来流; 绝对功率曲线 INSUFFICIENT (用80m会虚高=NTF反向陷阱). 10m+假设α可弱估但带assumption.
- power_curve_table: present # 🟢 收资表 功率曲线×2 (密度1.226/1.225) → 绝对达成率可锚
- event_table: present # 报警信息.xlsx(24MB 2023) + sec内故障1-6
- encoding: gbk
- reuse: "华锐物理语义复用 景泰兴泉 sinovel_sl1500_77_jingtaixingquan / 昌西一 sinovel_sl1500_82; ⚠schema不同(此=345列原始华锐1010导出 vs 景泰=47列转集团层) 必重onboard, 状态码per场重解"
- provenance: "scripts/tz_goem.py, tz_popscan.py(79/345真可用), tz_*; 机台表收资表.xlsx"
- # ============ sec 层 (345列原始华锐1010导出, 仅79列真可用; 15秒; A+B华锐) ============
- # 🔴 别信列存在: 345列里262死/空(全部'华锐1010型状态量'/功率限制百分比/内置可利用率/绝对风向/机舱位置-北 全空)
- turbine_sec:
- required: [有功功率, 环境风速, 标准状态]
- columns:
- 有功功率: {canonical_id: WAPC_active_power, unit: kW, valid_range: [-100, 1700], note: "max1634 rated1500; min~-56电动"}
- 环境风速: {canonical_id: WMET_wind_speed_nacelle, unit: m/s, valid_range: [0, 40], self_ref_risk: true}
- 平均风速: {canonical_id: WMET_wind_speed_nacelle_avg, unit: m/s, valid_range: [0, 40], self_ref_risk: true, note: "≈环境风速"}
- 理论功率: {canonical_id: WTUR_theoretical_power, unit: kW, self_ref_risk: true, note: "OEM上传理论, 不作独立性能参考"}
- 发电机转速: {canonical_id: WGEN_speed, unit: rpm, valid_range: [0, 2000], note: "发电~1223, max1880"}
- 叶轮转速: {canonical_id: WROT_speed, unit: rpm, valid_range: [0, 25], sentinel: [-5.99], note: "发电~11, geared比~110"}
- 叶片1变桨角度A: {canonical_id: WROT_pitch_1, unit: deg, valid_range: [-2, 90], note: "细桨~-0.64, 顺桨~86; 集距死"}
- 叶片2变桨角度A: {canonical_id: WROT_pitch_2, unit: deg, valid_range: [-2, 90]}
- 叶片3变桨角度A: {canonical_id: WROT_pitch_3, unit: deg, valid_range: [-2, 90]}
- 叶片1变桨扭矩: {canonical_id: WROT_pitch_torque_1, note: "★per-blade变桨扭矩 — 角度集距死但扭矩或可做叶片不平衡候选"}
- 叶片2变桨扭矩: {canonical_id: WROT_pitch_torque_2}
- 叶片3变桨扭矩: {canonical_id: WROT_pitch_torque_3}
- 标准状态:
- canonical_id: WTUR_standard_state
- status_enum_ref: configs/fault_dicts/sinovel_sl1500_77_tangzhen_state_enum.csv
- semantic: "★主状态源(cross-tab坐实): 1=发电66%/2=待机停32%(顺桨低风)/4=故障停(有风停)/5,6=停; ⚠分数值=过渡artifact取整"
- 风机状态接收: {canonical_id: WTUR_state_received, note: "另一状态(7≈发电/4≈待机), 用标准状态为主"}
- 风向-北: {canonical_id: WMET_wind_direction_geo, unit: deg, frame: geographic, valid_range: [0, 360]}
- 机舱位置: {canonical_id: WYAW_nacelle_position_cumulative, note: "🔴累积(range-167~497)非heading → 偏航误差需mod360重构(候选, 非直接列)"}
- X方向振动加速度: {canonical_id: WNAC_vibration_x, valid_range: [-5, 5], note: "中位0, level粗筛"}
- Y方向振动加速度: {canonical_id: WNAC_vibration_y, valid_range: [-5, 5]}
- 齿轮箱高速轴承温度: {canonical_id: WTRM_gearbox_hss_bearing_temp, unit: degC, valid_range: [-40, 100], sentinel: [-273.2]}
- 齿轮箱低速轴承温度: {canonical_id: WTRM_gearbox_lss_bearing_temp, unit: degC, valid_range: [-40, 100], sentinel: [-273.2]}
- 环境温度: {canonical_id: WMET_ambient_temp, unit: degC, valid_range: [-40, 55], sentinel: [-273.2]}
- 变流器机侧IGBT1温度: {canonical_id: WCNV_igbt_temp, unit: degC, valid_range: [-40, 150], sentinel: [-273.2]}
- 网侧A相电压: {canonical_id: WGRID_voltage_a, unit: V, valid_range: [0, 800]}
- 变频器频率: {canonical_id: WGRID_frequency, unit: Hz, valid_range: [0, 55]}
- 故障1: {canonical_id: WTUR_fault_1, note: "★真故障(多为0, 122/1/9/368占位); 故障2-6同; 报警1-6=状态寄存器非真报警(119/48/84高频常态)"}
- 总发电量: {canonical_id: WTUR_total_energy, unit: kWh, note: "累积"}
- # ============ 测风塔 (TSV伪装.xls, GBK制表符; 10-min; 2022-12起) ============
- mast:
- format: "TSV (制表符分隔, .xls扩展名伪装; magic=GBK文本非BIFF; 必 sep='\\t' encoding='gbk' 读, xlrd/openpyxl均失败)"
- required: [10m风速, 80m风速]
- columns:
- 时间: {parse: datetime}
- "唐珍风场测风塔10m风速": {canonical_id: WMET_mast_ws_10m, unit: m/s, valid_range: [0, 50], frame: free_stream}
- "唐珍风场测风塔10m风向": {canonical_id: WMET_mast_wd_10m, unit: deg, valid_range: [0, 360], frame: geographic}
- "唐珍风场测风塔80m风速": {canonical_id: WMET_mast_ws_80m, unit: m/s, valid_range: [0, 50], frame: free_stream, note: "80m≈轮毂65-70m, 切变外推"}
- "唐珍风场测风塔80m风向": {canonical_id: WMET_mast_wd_80m, unit: deg, valid_range: [0, 360], frame: geographic}
- note: "🔴 与sec 2023重叠✓ 但 80m传感器不可信(80m<10m 63%/风向44.6°差/冬季ratio0.74) → 绝对功率曲线 INSUFFICIENT; 切变α不可由此塔(负值假); 仅10m+假设α弱估(带assumption). 单塔→per-turbine空间caveat(finding-89)叠加mast质量"
- cleaning:
- physical:
- - "温度类=-273.2 → NaN (绝对零度哨兵)"
- - "叶轮转速=-5.99 → NaN; 有功功率 clip[-100,1700]"
- - "标准状态 round取整 (滤过渡分数值)"
- semantic:
- - "环境/平均风速=机舱风 self_ref → 绝对功率曲线必用mast自由来流, 不用机舱风"
- - "理论功率=OEM上传 → 不作独立性能参考"
- - "报警1-6=状态寄存器(119/48/84高频)非真报警 → 故障用故障1-6+报警信息.xlsx"
- - "内置可利用率(昨日/总)死列 → 可用率状态派生(标准状态)"
- traps:
- - "★★ 345列假富: 仅79真可用, 262死/空(全部华锐1010状态量/功率限制百分比/内置可利用率/绝对风向/机舱位置-北) → 别信列存在必验population"
- - "★ 采样15秒≠列名'1秒平均'; 状态'标准状态'1-6非景泰转集团码空间(per场重解)"
- - "★ 多OEM机台表99台但仅华锐A+B~33台有数据; 华创C(33)/华锐变体ABB·Myse 无数据→不可分析"
- - "★ 机舱位置=累积非heading → 偏航误差候选(需mod360), 非昌平坳直接列"
- - "★ 无限电直接列(功率限制百分比死/标准状态无限电码) → 同步性判别器(昌平坳/景泰式)"
- - "★ 集距死(角度)→不平衡只能振动/变桨扭矩; mast单塔→per机绝对性能空间caveat(finding-89)"
- - "🔴🔴 mast陷阱(自逮): 看似'有重叠塔可做绝对功率曲线', 实则 80m传感器不可信(80m<10m 63%/风向差44.6°/冬ratio0.74=结冰?) → 绝对功率曲线仍 INSUFFICIENT(同昌平坳/金华山结局, 不同原因). 教训: 有mast≠mast可用, 必验切变物理性(80m应>10m)+双高度风向一致性"
|