# 数据契约 — 国电联合动力 GUP UP2000 2MW DFIG (红阳, 贵州大唐) # 复用基 = gup_up2000_fengxiang.yaml (联合动力同OEM); 本场 §1.2 实证 override (2026-07-08, A03 proof) # ⚠ 草案: 待 contract_lint(CT-1) + validate_contract(CT-2) 过门 meta: oem: 国电联合动力 GUP model: UP2000 2MW (机型/叶轮径 待收资表确认) topology: dfig_geared rated_kw: 2000 source_farm: 红阳 (贵州大唐) reuse_base: gup_up2000_fengxiang.yaml (语义/陷阱复用; 单位/新通道本场重验) layout: format: ".csv (A03..A26); 2表头行(中文名/英文码) + rows: 时间,值...19列" time_format: "YYYY-MM-DD HH:MM:SS" sampling: layers: "10min(15台/2023.04-2024.04 满12月≈100%密度) / 秒级(1台 EEE2539_202405)" caveat: "10min 满窗(优于枫香26%); 秒级仅单台单月" # ---- 机组 SCADA (raw 列名 = 英文码; §1.2 A03 实证) ---- turbine: required: [UNIT.CI_PcsActivePower, UNIT.CI_WindSpeed1, SCADAUSE.CI_RotorSpeed] columns: UNIT.CI_PcsActivePower: # 变频器有功 (主功率) canonical_id: WAPC_active_power raw_unit: W # ✅实证 max 2184600 → W to_canonical: "/1000" valid_range_canonical: [-100, 2200] block_if_raw_exceeds: 50000 UNIT.CI_IprRealPower: # 电能质量模块检测有功 (交叉核) canonical_id: WAPC_active_power_pq raw_unit: W to_canonical: "/1000" note: "与 PcsActivePower 交叉验; 择一作达成率分子, 声明口径" SCADAUSE.CI_RotorSpeed: canonical_id: WROT_rotor_speed raw_unit: rpm # ✅实证 max 16.2 = rpm (同枫香10min) valid_range: [0, 20] UNIT.CI_PcsMeasuredGeneratorSpeed: { canonical_id: WGEN_generator_speed, unit: rpm, valid_range: [0, 2000] } UNIT.CI_PitchPositionA1: canonical_id: WROT_pitch_1 raw_unit: rad # ✅实证 max 1.76 = rad ★★ 异于枫香(度)! 照搬差57× (§1.2 陷阱) to_canonical: "*57.2958" valid_range_canonical: [-3, 100] note: "★ 仅 A1 单叶 (无A2/A3) → 无三叶不平衡; 单位=rad(同阜山, 非枫香度)" UNIT.CI_WindSpeed1: { canonical_id: WMET_wind_speed_nacelle, unit: m/s, valid_range: [0, 40], self_ref_risk: true } UNIT.CI_WindSpeed2: { canonical_id: WMET_wind_speed_nacelle2, unit: m/s, valid_range: [0, 40], note: "双风速计交叉" } UNIT.CI_YawError1: canonical_id: WYAW_yaw_error raw_unit: rad to_canonical: "*57.2958" frame: nacelle valid_range_canonical: [-180, 180] note: "⚠ A03 实测 max 4.71 rad(>π) → 待核 wrap/量程; nacelle-frame 不作地理" # ---- 温度 (红阳10min 富: 低速轴+主轴+油槽 枫香10min缺) ---- UNIT.CI_GearboxInputShaftTemperature: { canonical_id: WGBX_lss_shaft_temp, unit: degC, valid_range: [-20, 90], note: "低速轴(输入轴); 枫香须秒级才有" } UNIT.CI_GearboxOilSumpTemperature: { canonical_id: WGBX_oil_temp, unit: degC, valid_range: [-20, 90] } UNIT.CI_GearboxOutputShaftTemperature: { canonical_id: WGBX_hss_bearing_temp, unit: degC, valid_range: [-20, 110] } UNIT.CI_GeneratorBearingTemperatureA: { canonical_id: WGEN_bearing_de, unit: degC, valid_range: [-20, 100] } UNIT.CI_GeneratorBearingTemperatureB: { canonical_id: WGEN_bearing_nde, unit: degC, valid_range: [-20, 100] } UNIT.CI_GeneratorWindingTemperatureU1: { canonical_id: WGEN_winding_u, unit: degC, valid_range: [-20, 155], note: "仅U相, 无三相不对称判据" } UNIT.CI_MainBearingRotorSideTemperature: { canonical_id: WMBR_main_bearing_temp, unit: degC, valid_range: [-20, 90], note: "主轴叶轮侧; 枫香10min缺" } UNIT.CI_NacelleAirTemperature: { canonical_id: WNAC_air_temp, unit: degC, valid_range: [-40, 70] } UNIT.CI_OutsideAirTemperature: { canonical_id: WMET_ambient_temp, unit: degC, valid_range: [-40, 55] } UNIT.CI_NacellePosition: { canonical_id: WYAW_nacelle_position, frame: "[待验]" } # ---- 测风雷达 (10-200m) — ✅实证: 仅点表, 未见时序数据 ---- mast: status: "[待核] 仅 测风雷达点表.xlsx, 未见雷达时序数据 → 绝对功率曲线大概率 INSUFFICIENT (同枫香mast陷阱); onboard 时确认是否有雷达实测时序" # ---- 故障 (非 section, 用 _ref 键) ---- fault_codes_ref: source: "联合动力SCADA故障列表.xlsx = 码字典(Name/Alarm Level/Reset), 非事件时序" caveat: "10min 层无状态/故障码列 → D4/D5 occurrence(Pareto/MTBF) 须另找事件日志或状态列" cleaning: physical: - "功率 raw W → /1000 kW; raw>50000 未换算 = BLOCK" - "★变桨=rad(本场) → *57.3 得度; 勿套枫香(度)" - "对风 rad*57.3; max>π 待核 wrap" semantic: - "机型/叶轮径待收资表确认后定分机型口径" traps: - "功率=瓦特 (同枫香/阜山)" - "★变桨单位: 红阳=rad, 枫香=度 — 同OEM同层不同场单位变, 照搬差57× (§1.2 跨场重验实证)" - "仅A1单叶 → 无三叶不平衡; 测风雷达仅点表 → 绝对性能待核"