| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- # 数据契约 — 华锐 Sinovel SL1500/82 (昌西一风电场, 大唐2025科研)
- # schema: docs/OEM_KB §3. 校验器: scripts/validate_contract.py. 由 oem-onboard skill 产出 2026-06-06.
- # ⚠ 厂家=华锐Sinovel 据型号 SL1500 推断, 待 收资docx/备注sheet 确认 (不诉诸memory).
- meta:
- oem: 华锐 Sinovel (待文档确认)
- model: SL1500/82
- topology: dfig_geared # 3级齿轮 1/104, 发电机额定1520kW (机型参数sheet)
- rated_kw: 1500
- rotor_d_m: 82
- cut_in_ms: 2.7
- rated_wind_ms: 10.5
- cut_out_ms: 25
- source_farm: 昌西一 (33台, F001-F033)
- ground_truth: # 本场自带 (onboard 大优势)
- power_curve: "xlsx 功率曲线表 (双密度: 场站1.059 / 标准1.225)"
- status_enum: "configs/fault_dicts/sinovel_sl1500_status_codes.csv (14态)"
- event_codes: "xlsx 机组事件代码 + 原始收资/机组事件记录.zip"
- sampling: {default_s: 600, caveat: "本场清洗后均匀10-min; 另有秒级数据(cxy_sec)"}
- provenance: "oem-onboard 2026-06-06; 探 cxy_min/F002.csv n=56301 + 原始 *.xls 52列"
- # raw 列名: 原始 *.xls 用带单位中文名 (有功功率[kw]); 清洗后 cxy_min 用 canonical 中文
- turbine:
- required: [有功功率, 风速]
- columns:
- 有功功率:
- canonical_id: WAPC_active_power
- raw_unit: kW # ✓ 实测 max 1520≈额定, 非瓦特 (无1000×陷阱)
- valid_range: [-50, 1700] # 小负=寄生功耗(正常); 上限留齿轮箱额定1700
- 风速:
- canonical_id: WMET_wind_speed_nacelle
- unit: m/s
- valid_range: [0, 40] # ★ 实测尖峰到76(>生存59.5) → 门40 剔尖峰
- self_ref_risk: true # 机舱风, 功率曲线自指 (finding 89)
- 绝对风向:
- canonical_id: WYAW_yaw_error
- unit: deg
- frame: nacelle # 🔴★ 名"绝对"实为 nacelle-frame (range ±173°, p50 -1.6)
- valid_range: [-180, 180]
- note: "名实不符(D2): 不可当地理风向作扇区; 偏航只能nacelle-frame, 同finding-89/floris陷阱"
- 机舱位置:
- canonical_id: WYAW_nacelle_position
- unit: deg
- frame: geographic_unwrapped # range -471~505 = 累积航向(缆绕圈) → 需 mod360+北偏移标定
- note: "可恢复地理 = (机舱位置 mod360)+北偏移[TBD]; +绝对风向=地理风向(上finding-89门槛)"
- 发电机转速:
- canonical_id: WGEN_speed
- unit: rpm
- valid_range: [-20, 1850] # 停机怠速噪声小负(p1=-3.5)正常; 大负尖峰(-597)才异常
- spike_below: -50 # < -50 = 传感器尖峰 (cleaning 剔)
- 桨距角1:
- canonical_id: WROT_pitch_angle_1
- unit: deg
- valid_range: [-2, 92]
- 齿轮箱油温:
- 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]
- sentinel: [-272.5, -273]
- 环境温度:
- canonical_id: WMET_ambient_temp
- unit: degC
- valid_range: [-45, 50] # 机型参数: 运行 -30~+45
- cleaning:
- physical:
- - "温度类 ≈-272.5/-273(绝对零度) → NaN (传感器空值, 非真冷)"
- - "风速 >40 → 尖峰剔 (生存59.5, 持续不可能)"
- - "发电机转速 <0 → NaN (负尖峰)"
- semantic:
- - "有功功率 小负值 = 待机寄生功耗, 非坏值"
- - "绝对风向 = 机舱相对, 勿当地理 (名实不符)"
- status_enum_ref: configs/fault_dicts/sinovel_sl1500_status_codes.csv
- traps:
- - "绝对风向 名实不符: '绝对'实为nacelle-frame ±180° (D2). 误当地理扇区=finding-89类错"
- - "温度哨兵=-272.5(≈绝对零度), 非-99/9999. 分位数才揪出, 盲扫-99会漏"
- - "机舱位置 unwrapped累积(±500非0-360), 需mod360. 不同于阜山(那个-5~10彻底坏)"
- - "风速尖峰到76>生存风速, 必上限门"
- - "机舱风系统性低读: 机舱/自由来流风速比 NTF=0.77(读低23%!) → 机舱风口径绝对功率曲线假高145%, 且排名错(误判台42最差). 接测风塔自由来流后: 机群96%保证(真), 真最差台49(78%). 绝对功率曲线必用自由来流(测风塔), 机舱风只可机群相对. (2026-06-06实证, 同finding89)"
|