| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- # 数据契约 — 华锐 Sinovel SL1500/77 (景泰兴泉风电场, 大唐2025科研)
- # schema: docs/OEM_KB §3. 校验器: scripts/validate_contract.py. oem-onboard (loop farm#1) 2026-06-10.
- # 🔴 v2 重写: v1 错建在 10-min 清洗层(犯 feedback_onboard_from_raw_not_cleaned). 本版建在 秒级 sec2.
- meta:
- oem: 华锐 Sinovel
- model: SL1500/77
- topology: dfig_geared
- rated_kw: 1500
- rotor_d_m: 77
- hub_height_m: 65
- turbine_count: 30 # ✅ 读全机台表坐实 (非v1瞎写的16!)
- turbines: DJ01-DJ30 (全 SL1500/77, 1期, 甘肃海拔1705-1783m, COD 2008)
- benchmark_turbines: [DJ01, DJ05, DJ11, DJ14, DJ18, DJ19, DJ24, DJ28] # 机台表 标杆=是 共8台
- ground_truth:
- power_curve: "curv_power_hetong_jingtaixingquan.csv (合同曲线) + 功率曲线.xlsx"
- machine_info: "机组信息_风电场_jingtaixingquan.csv (30台全, 已读全)"
- event_codes: "风机事件代码定义表.xlsx (12.4MB, 状态码/事件解码 ground truth, 待解析)"
- met_mast: "测风塔数据.rar (1.8MB, 自由来流, 破机舱风自指/真地理偏航, 待解压7z)"
- spec_doc: "SL1500-77参数.docx + 说明.doc (待读)"
- data_layers:
- PRIMARY_sec: "数据转换及清洗/sec2/DJ01-DJ30.csv (47列, 10秒, 全30台, ~190-244MB/台). 实证DJ01=71.8万行 2023-12→2024-02(~84天)"
- raw_10s: "十秒数据(华锐77).rar (1.16GB, 原始10秒, 需7z)"
- raw_monthly: "2023年12月/2024年1/2月.rar (~900MB/月, 原始高频, 需7z)"
- agg_10min: "数据转换及清洗/DJ*.csv (51列10min) + min_scada*.zip — ⚠缺状态码/对风角度/振动, 且风向被污染成-4421野值, 仅辅助勿主用"
- sampling: {primary_s: 10, verified: "sec2 DJ01 时间diff中位=10s"}
- provenance: "oem-onboard loop 2026-06-10 v2; G-OEM scripts/jtxq_goem2_sec.py (DJ01+DJ05 秒级全量)"
- # 秒级 sec2 列 (47). G-OEM 实测见注.
- turbine:
- required: [有功功率, 环境风速, 转集团标准状态]
- columns:
- 有功功率: {canonical_id: WAPC_active_power, raw_unit: kW, valid_range: [-50, 1700]} # max1648(10s峰) p99=1561≈额定
- 环境风速: {canonical_id: WMET_wind_speed_nacelle, unit: m/s, valid_range: [0, 40], self_ref_risk: true} # 中位2.5=极低风场, 44%待机
- 环境风向:
- canonical_id: WMET_wind_direction
- frame: UNVERIFIED_nacelle_suspect # 🔴 range±180 中位0, corr(env-nac,对风角度)=-0.06低 → 疑nacelle-rel≈对风角度(非地理); 真地理需测风塔
- valid_range: [-180, 180]
- note: "≤-90 占5.5% 是合法负向角(±180frame)非哨兵; 秒级干净[-178,176] (10-min那层才被污成-4421)"
- 对风角度:
- canonical_id: WYAW_yaw_error
- unit: deg
- frame: nacelle_relative # ✅ 直接偏航误差! 发电态中位-0.40° IQR[-6.2,3.5]=对风良好, 绕风向-机舱自指
- valid_range: [-180, 180]
- 机舱位置:
- canonical_id: WYAW_nacelle_position
- frame: geographic_unwrapped # range[-449,489] 累积航向(缆绕), 29%<-90是负累积非哨兵; mod360+北偏移[TBD]
- valid_range: [-540, 540]
- 转集团标准状态:
- canonical_id: WTUR_status_group_std
- type: enum
- note: "★限电/可用率 ground truth. 13种: 101=发电(44.5%,P591) / 1=待机(43.8%,P0) / 601(6.6%,P0)=停? / 102·104=发电变体 / 201·202·302=各类停(P0). 需事件代码定义表.xlsx 解码"
- 风机子状态:
- canonical_id: WTUR_substatus_bitmask
- type: enum_suspect_bitmask # 22种 码1024/1536/1026/132096/263168/66560/4195328 = 疑位掩码(power-of-2组合), 用 status_code_decode_method
- 偏航状态: {canonical_id: WYAW_status, type: enum, note: "15种 码20=对风发电(47%)/21=待机(46%)/0/5/15..."}
- 频率: {canonical_id: WGRID_frequency, unit: Hz, valid_range: [45, 55]} # 中位49.9 电网
- 网侧A相电压: {canonical_id: WGRID_voltage_a, unit: V}
- 叶轮转速: {canonical_id: WROT_rotor_speed, unit: rpm}
- 发电机转速: {canonical_id: WGEN_speed, unit: rpm, valid_range: [-20, 1900]} # range[0,1890]
- 叶片1变桨角度: {canonical_id: WROT_pitch_angle_1, unit: deg, valid_range: [-5, 95]} # 集距(死指标, 见traps)
- 叶片1变桨力矩: {canonical_id: WROT_pitch_torque_1, unit: Nm}
- 齿轮箱油温: {canonical_id: WTRM_gearbox_oil_temp, unit: degC, valid_range: [-40, 120], sentinel: [-272.5, -273]}
- 发电机驱动侧轴承温度: {canonical_id: WGEN_bearing_temp_de, unit: degC, valid_range: [-40, 150]}
- X方向振动加速度: {canonical_id: WVIB_acc_x, note: "range[-16,4.6]; 振动健康(同明阳双轴), Y方向同"}
- 日发电量: {canonical_id: WAPC_energy_daily, unit: kWh}
- 总发电量: {canonical_id: WAPC_energy_total, unit: kWh, note: "累积, 差分得增量"}
- cleaning:
- physical:
- - "机舱位置 越界[-540,540] → NaN (累积航向, 但极端野值剔)"
- - "温度类 ≈-272.5/-273 → NaN (绝对零度哨兵)"
- - "风速 >40 → 尖峰剔"
- - "⚠ 方向类(环境风向/对风角度) ≤-90 是合法负向角, 勿当哨兵剔 (v1在10-min误判过)"
- semantic:
- - "限电/可用率 必用 转集团标准状态 (秒级), 非10-min(无此列)"
- - "叶片角度=集距死指标(测不了不平衡); 不平衡只能1P谐波(有X/Y振动可做)/光学"
- traps: # 🔴🔴 本场核心教训
- - "★★ onboard 必从秒级 sec2 起: 10-min清洗层缺 状态码/对风角度/振动/电网频率, 且把环境风向污染成-4421野值. 用10-min=做不了限电/可用率/偏航(feedback_onboard_from_raw_not_cleaned 又犯, 用户2026-06-10纠)"
- - "★ 30台非16: 必读全 机组信息csv (Import-Csv .Count), 勿读前5行假设 (feedback_read_all_farm_data_no_assume)"
- - "环境风向 frame 未定(±180中位0疑nacelle-rel), 但'对风角度'已是干净直接偏航误差(中位~0对风良好); 真地理绝对偏航零点需测风塔"
- - "风机子状态=位掩码(码1024=2^10/1536/132096), 解码用 reference_status_code_decode_method (binary状态列坐实枚举)"
- - "极低风场(env风中位2.5m/s, 44%待机码1) → cf必低是资源非缺陷; 待机≠故障"
- - "机舱风自指 NTF: 有测风塔可自校(待解压); 绝对功率曲线必自由来流"
|