| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- # 数据契约 — 远景 ENVISION EN87-1500 (王家湾风电场, 1.5MW)
- # schema: docs/OEM_KB §3. 校验器: scripts/validate_contract.py. oem-onboard 第12家OEM家族 (远景, 2026-06-08).
- # 源: scripts/wjw_{survey,survey2,goem,sentinel}.py. 收资表自带: 官方状态码表(0-6) + 功率曲线×2(场站1.031/标准1.225密度) + 风机列表 + 事件日志(33台SC描述) = ground truth 齐.
- # ✅ 步5分析 DONE (2026-06-09, scripts/wjw_s5_p1{a..f}/p2{a..c}.py, 报告 outputs/wangjiawan/王家湾_步5_分析.md, Critic审核过):
- # 绝对性能=INSUFFICIENT(塔57D离阵, finding-89量化ratio0.90→1.23 corr+0.73); W030不能拒绝达合同(唯一半绝对锚±15%);
- # 可用率[定论]中位91.3%(W008 76%/W029 82%最低); 偏航[定论]无偏(+0.6°); 故障归因[INSUFFICIENT]SC=D4陷阱待停机区间重建;
- # 性能排名被N-S选址梯度混淆(解释65%), W006弱欠发候选(低cf+正常可用率).
- meta:
- oem: 远景能源 ENVISION
- model: EN87-1500
- topology: unverified # 远景多为双馈/半直驱; 收资表未给传动型式, 待手册. 暂不假设
- rated_kw: 1500
- rotor_diameter_m: 87
- hub_height_m: 80
- altitude_m: 1200 # 陕西高原 → 场站密度 1.031 (低)
- source_farm: 王家湾 (陕西; 33台 W001-W033, COD 2021-12)
- units_count: 33
- benchmark_turbines: [W001, W002, W003, W024] # 收资表风机列表'是否标杆风机'=是 (实4台; 步5 audit 补 W024)
- sampling:
- yearly_10min_s: 600 # 王家湾风场风机10分钟平均值数据.zip; 396 csv(per台per月); 全年2022-12→2023-12; 34列; utf-8; 机台id在文件名(W\\d+)非列内
- sec_s: 20 # 王家湾风场风机秒级数据.zip (收资需求:≤20s); + 振动秒级数据.zip
- note: "10min机台id=文件名W001-033(非列); 事件日志=2023年风机状态及运行记录.zip(33台 WJW01-33, Jan-Nov2023, SC描述自述)"
- ground_truth:
- status_enum: configs/fault_dicts/envision_en87_status_enum.csv # 官方0-6 (5=并网发电)
- power_curve: "收资表 sheet '功率曲线表' ×2: 场站实际密度1.031 + 标准1.225 (v-P表, 额定1500); ★合同曲线在手→可做绝对性能(破finding89天花板)"
- event_log: "2023年风机状态及运行记录.zip (33台, SC标志/SC名字/SC描述自述事件; ⚠风速*10/桨距*10 编码)"
- met_mast: "王家湾风场2023测风塔数据.zip (待验时间窗与SCADA重叠)"
- # ============ 10-min 层 (34列; 机台id=文件名) ============
- turbine:
- required: [发电机有功功率, 风速]
- columns:
- 发电机有功功率:
- canonical_id: WAPC_active_power
- unit: kW # ✓ 实测 max1574≈额定1500+裕量, 非瓦特; min-20=寄生
- valid_range: [-50, 1700]
- 风速:
- canonical_id: WMET_wind_speed_nacelle
- unit: m/s # ✓ raw m/s (p50 5.54); ⚠事件日志层是'风速*10'(分层编码差异!)
- valid_range: [0, 40]
- self_ref_risk: true # 机舱风, 功率曲线自指; 真曲线用测风塔/合同曲线
- 机舱中轴线与风向夹角:
- canonical_id: WYAW_yaw_error
- unit: deg
- frame: nacelle # ✓ ±180 偏航误差, 中位0.6°对风良好 (range实测±96)
- valid_range: [-180, 180]
- 风向:
- canonical_id: WMET_wind_direction_geo
- unit: deg
- frame: geographic # ✓ 0-360 真地理 (range[13,347]) → 10min即可做偏航(rare)
- valid_range: [0, 360]
- 发电机转速: {canonical_id: WGEN_speed, unit: rpm, valid_range: [-50, 2000]} # 小负=停机噪声
- 主轴转速: {canonical_id: WROT_rotor_speed, unit: rpm, valid_range: [0, 20]} # max17.4(额定~17)
- "1#桨叶片角度": {canonical_id: WROT_pitch_1, unit: deg, valid_range: [-5, 95], note: "p50 1.3; 罕见坏点<0.01%物理门clip"}
- "2#桨叶片角度": {canonical_id: WROT_pitch_2, unit: deg, valid_range: [-5, 95]}
- "3#桨叶片角度": {canonical_id: WROT_pitch_3, unit: deg, valid_range: [-5, 95]}
- 实际扭矩: {canonical_id: WTUR_torque, unit: unverified, valid_range: [-1000, 12000], note: "单位未坐实(Nm?), p50 1417"}
- 舱外温度: {canonical_id: WMET_ambient_temp, unit: degC, valid_range: [-40, 55], note: "罕见坏点-1752/-376等<0.01%, 物理门NaN"}
- 主轴承外圈温度: {canonical_id: WTRM_main_bearing_temp, unit: degC, valid_range: [-30, 100]}
- 齿轮箱油池温度: {canonical_id: WTRM_gearbox_oil_temp, unit: degC, valid_range: [-30, 100]}
- 发电机驱动端轴承温度: {canonical_id: WGEN_bearing_temp_de, unit: degC, valid_range: [-30, 120]}
- "机舱侧向振动(已滤波)": {canonical_id: WNAC_vib_lateral, unit: unverified, valid_range: [0, 5]}
- "机舱轴向振动(已滤波)": {canonical_id: WNAC_vib_axial, unit: unverified, valid_range: [0, 5]}
- 风机状态转发:
- canonical_id: WSLG_turbine_state_10min_avg
- semantic: "⚠⚠ 10min均值陷阱! 18%非整数(1.2/3.33), max12≠官方0-6码 → 不可当state enum. 状态分析用事件日志(SC)或秒级raw"
- "1#桨设定叶片角度": {canonical_id: WROT_pitch_setpoint_blade1, unit: deg, scale: 0.01, valid_range: [-500, 9100]} # ★原值×100(度); ÷100得度; 控制器指令值非实测. 2026-09-02 订正, 原判"编码坏"作废
- "2#桨设定叶片角度": {canonical_id: WROT_pitch_setpoint_blade2, unit: deg, scale: 0.01, valid_range: [-500, 9100]} # ★原值×100(度); ÷100得度; 控制器指令值非实测. 2026-09-02 订正, 原判"编码坏"作废
- "3#桨设定叶片角度": {canonical_id: WROT_pitch_setpoint_blade3, unit: deg, scale: 0.01, valid_range: [-500, 9100]} # ★原值×100(度); ÷100得度; 控制器指令值非实测. 2026-09-02 订正, 原判"编码坏"作废
- dead_or_unusable:
- 机舱角度: "★累积未展开位置(非0-360, 实测-1780~1020含扭缆): 非哨兵, 但非heading → 方向用'风向'"
- 偏航角度: "★累积未展开位置(实测-1580~963): 非heading → 偏航对风用'机舱中轴线与风向夹角'"
- note_10min: "34列富(桨距×3/偏航误差/地理风向/state/振动/扭矩/全温度); 机台id在文件名W001-033."
- cleaning:
- physical:
- - "温度类罕见坏点(-1752/-376/-206/1263等, <0.01%) ∉物理界 → NaN (非系统哨兵, 各列不同)"
- - "桨叶片角度罕见越界<0.01% → clip; 桨设定叶片角度×3 **非坏列, ×100定标**(÷100后 -3.00~90.26°) — 原'92%越界'系用度数量程验×100原值所致"
- - "机舱角度/偏航角度 = 累积位置(>360) 非坏值, 但勿当heading; 方向用'风向'(geographic)"
- semantic:
- - "风机状态转发=10min均值(非整数/max12) 勿当enum → 用事件日志SC/秒级raw state(官方0-6)"
- - "风速=10min raw m/s, 但事件日志风速*10/桨距*10 → 分层编码必各验"
- - "机舱风(风速)自指 → 真功率曲线用合同曲线(收资表×2密度)+测风塔自由来流"
- traps:
- - "★机台id在文件名(W001-033)非数据列; 读必从filename解析"
- - "★分层编码不一致: 10min风速=raw m/s; 事件日志风速*10/桨距*10"
- - "★★桨设定叶片角度×3 **非损坏, 系×100定标**(2026-09-02 同法复验神木订正; 原判'92%损坏→弃'作废): 发电态165.4万行/33台 三桨回归 斜率0.991/截距-0.15°/残差p95 0.59° 全过; ÷100后 min=-3.00 med=1.87 max=90.26°(顺桨位); 与本契约已知'事件日志桨距*10'同属分层编码族. 用前÷100"
- - "★机舱角度/偏航角度=累积未展开(含扭缆>360), 非0-360 heading"
- - "★风机状态转发=10min均值(18%小数, max12) ≠ 官方状态码0-6 → enum用事件日志/秒级"
- - "★收资表'风机列表'sheet 是16384列畸形宽表(读必usecols限列)"
- - "✓ 合同功率曲线×2(1.031场站/1.225标准)在手 → 绝对性能可做(多数场缺, 破finding89)"
|