| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- # 数据契约 — 烟台文登风电场 (farm#9'=队列"文登一期", 大唐) — 华锐 SINOVEL SL1500/77, 1.5MW DFIG geared
- # schema: docs/OEM_KB §3. 校验器: scripts/validate_contract.py
- # 🔴 数据来源: F:\datang\泽库风电场\scada_秒级\文登{1-20,21-33}号秒级.zip (3场grab-bag, 见TASKS farm#9; 文登SCADA误存泽库folder)
- # 🔴 无机台表(泽库收资表是泽库的66台, 非文登) → OEM从数据签名坐实(昌平坳式): 功率rated1500 + 叶轮转速-5.99哨兵(华锐signature, 同唐珍) + 15秒华锐导出 + zip需WinRAR(华锐式) + 山东海边 → 华锐SL1500/77[高置信, 非机台表确认]
- meta:
- farm: 烟台文登风电场 (队列 文登一期)
- farm_code: WD
- oem: 华锐风电 SINOVEL (数据签名坐实, 无机台表)
- model: SL1500/77 (1.5MW DFIG geared; 山东烟台海边; 华锐SL1500数据签名高置信; /77转子径=同型泽库推定非文登机台表)
- topology: dfig_geared
- rated_kw: 1500 # 功率 max1563.92
- rotor_diameter_m: 77
- hub_height_m: 80 # 推定(泽库同型80m); 无文登机台表
- n_turbines_with_data: 33 # A1-A33 (秒级2zip: 1-20 + 21-33)
- n_turbines_nameplate: 33 # 无机台表, 以SCADA台数为准
- province: 山东
- benchmark: [A1, A17, A21] # 暂定(无机台表标杆)
- sampling: {sec_s: 15, min_s: 600} # 实测15秒 (同唐珍华锐)
- windows: {sec: "2023 (A1验Jan起)", min: "2023 (文登10min.zip 33台)"}
- met_mast: absent # 🔴 泽库folder的mast是泽库的(不同场不同址) → 文登无mast → 绝对功率曲线靠OEM设计曲线(SL1500/77, 泽库收资表同型可借), 相对/表观; 无自由来流
- power_curve_table: model_design # 🟡 泽库收资表 SL1500/77 设计曲线(同型, ρ1.222海边) 可作设计参照; 非文登实测
- event_table: present_inline # 实时报警1-8 + 实时故障1-8 (寄存器) + 故障电流
- encoding: gbk
- reuse: "华锐SL1500/77 物理语义复用 唐珍/景泰兴泉; ⚠ schema不同(文登=119列全名导出, 异唐珍345列原始/景泰47列转集团) 必重映射; 状态码PLC状态per场重解"
- provenance: "WinRAR解(7z未装) → scripts/wd_goem.py(119列/15秒/值域), wd_goem2.py(PLC状态/偏航/集距死)"
- data_note: "🔴 zip需WinRAR(Python压缩法不支持, 同唐珍); 1台~685MB(33台~22GB解压) → 清洗后台+清临时CSV"
- # ============ sec 层 (119列富; 15秒; 33台) ============
- turbine_sec:
- required: [功率, 风速, PLC状态]
- columns:
- 时间: {canonical_id: timestamp, parse: datetime, note: "15秒"}
- 设备名: {canonical_id: WTUR_id}
- 功率: {canonical_id: WAPC_active_power, unit: kW, valid_range: [-100, 1650], note: "max1563 rated1500"}
- 变频器功率: {canonical_id: WCNV_power, unit: kW, note: "≈功率"}
- 理论功率: {canonical_id: WTUR_theoretical_power, self_ref_risk: true, note: "OEM上传, 不作独立性能"}
- 无功功率: {canonical_id: WAPC_reactive_power, unit: kVar}
- 风速: {canonical_id: WMET_wind_speed_nacelle, unit: m/s, valid_range: [0, 40], self_ref_risk: true}
- "5分钟平均风速": {canonical_id: WMET_wind_speed_5min, unit: m/s}
- 风向: {canonical_id: WMET_wind_direction_rel, unit: deg, frame: nacelle_relative, valid_range: [-180, 180], note: "±180 nacelle-rel"}
- 叶轮转速: {canonical_id: WROT_speed, unit: rpm, valid_range: [0, 25], sentinel: [-5.99], note: "发电~14, 华锐signature哨兵-5.99"}
- 发电机转速: {canonical_id: WGEN_speed, unit: rpm, valid_range: [0, 2000], note: "发电~1442, max1857"}
- 机舱位置: {canonical_id: WYAW_nacelle_position_cumulative, note: "累积[-124,481]非heading"}
- 机舱位置偏差:
- canonical_id: WYAW_error
- note: "🟢 偏航偏差 = 要求机舱位置−机舱位置(demanded−actual, corr0.9999); 但要求机舱位置由vane派生 → 与原始vane(风向)corr0.915, 均值=vane静态偏置(控制环不抹气动偏置, raw坐实). → 偏航per机静态偏置可做(fleet-0.02°全±0.6°良好); 异和风/唐珍/吉山/高本山INSUFFICIENT. ⚠非'直接vane散布'(瞬时IQR±4°系跟踪残差)"
- PLC状态:
- canonical_id: WTUR_state
- status_enum_ref: configs/fault_dicts/sinovel_sl1500_77_wendeng_plc_enum.csv
- semantic: "★主状态(cross-tab坐实): 7=发电68%(P379/gen1442/pitch0)/4=低风待机顺桨25%(pitch90)/5=就绪转子转5.5%/10·13·0=停机过渡顺桨; ⚠分数值=15秒边界取整artifact"
- "PLC子状态": {canonical_id: WTUR_substate, note: "0-49 细分"}
- 变频器状态: {canonical_id: WCNV_state, note: "0-7"}
- 偏航状态: {canonical_id: WYAW_state, note: "1-21"}
- 叶片1角度: {canonical_id: WROT_pitch_1, unit: deg, valid_range: [-2, 92], note: "🔴集距死(per-blade spread 0.000°)"}
- 叶片2角度: {canonical_id: WROT_pitch_2, unit: deg}
- 叶片3角度: {canonical_id: WROT_pitch_3, unit: deg}
- 叶片1扭矩: {canonical_id: WROT_pitch_torque_1, note: "★per-blade变桨扭矩(-12.4/-10.9/-11.0)→角度集距死但扭矩可做叶片不平衡候选(唐珍式)"}
- 叶片2扭矩: {canonical_id: WROT_pitch_torque_2}
- 叶片3扭矩: {canonical_id: WROT_pitch_torque_3}
- 驱动方向振动: {canonical_id: WNAC_vibration_drive, note: "🟢振动(发电态中位0.6, max15193量纲待定); +非驱动方向振动"}
- 非驱动方向振动: {canonical_id: WNAC_vibration_nondrive}
- 齿轮箱油温: {canonical_id: WTRM_gearbox_oil_temp, unit: degC, sentinel: [-273.2]}
- 齿轮箱轴承温度1: {canonical_id: WTRM_gearbox_bearing_temp_1, unit: degC, sentinel: [-273.2], note: "主齿轮箱轴承温度死(0), 用1/2(~40活)"}
- 齿轮箱轴承温度2: {canonical_id: WTRM_gearbox_bearing_temp_2, unit: degC, sentinel: [-273.2]}
- 发电机驱动侧轴承温度: {canonical_id: WGEN_bearing_de_temp, unit: degC, sentinel: [-273.2]}
- 发电机非驱动侧轴承温度: {canonical_id: WGEN_bearing_nde_temp, unit: degC, sentinel: [-273.2]}
- 发电机温度1: {canonical_id: WGEN_winding_temp_1, unit: degC, sentinel: [-273.2], note: "+温度2/3, 电感温度"}
- 机侧变频器IGBT温度: {canonical_id: WCNV_igbt_temp_gen, unit: degC, note: "+网侧IGBT/电感温度, 各柜温度"}
- 电网频率: {canonical_id: WGRID_frequency, unit: Hz, valid_range: [0, 55], note: "49.86; +3相电压电流"}
- 总发电量: {canonical_id: WTUR_total_energy, unit: kWh, note: "累积; +日发电量"}
- 实时故障1: {canonical_id: WTUR_fault_1, note: "实时故障1-8寄存器 + 实时报警1-8 + 故障电流 → 故障Pareto候选"}
- cleaning:
- physical:
- - "温度类 -273.2 → NaN; 叶轮转速 -5.99 → NaN; 功率 clip[-100,1650]"
- - "PLC状态 round取整(滤15秒边界分数值)"
- - "版本/分度比例/参数 等死列(nuniq=1)不纳入"
- semantic:
- - "风速=机舱风 self_ref → 绝对性能靠OEM设计曲线(无mast自由来流); 表观相对带caveat"
- - "🟢 机舱位置偏差=直接偏航误差 → 偏航per机偏置可报(异多数华锐场)"
- - "集距死(角度)→叶片不平衡靠per-blade扭矩+振动"
- - "无内置可利用率 → PLC状态派生(7发电/4低风待机/停机分项); 限电同步性判别器"
- traps:
- - "★★ 3场grab-bag: 文登SCADA误存泽库folder; 无文登机台表→OEM数据签名derive(非机台表确认)"
- - "★ 采样15秒; zip需WinRAR; 1台685MB(33台22GB)→清洗管理临时文件"
- - "★ 119列富但仍有死列(版本/分度比例/齿轮箱主轴承温度0/偏航功率)→必nuniq验"
- - "🟢 机舱位置偏差=可用直接偏航(罕见); 集距死→扭矩+振动做不平衡"
- - "🔴 无文登mast(泽库mast非本场)→绝对达成率靠设计曲线非自由来流, INSUFFICIENT级hedge"
|