| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120 |
- # 数据契约 — 明阳 MINGYANG MY2.0-104/80(S) 高原型 (云南大唐古城风电场, 24台 2MW)
- # schema: docs/OEM_KB §3. 校验器: scripts/validate_contract.py. oem-onboard 2026-07-12.
- # 复用: mingyang_my2_0_changpingao 语义参考 (同OEM MY2.0; changpingao用英文列名iGenPower, 古城用中文'平均X' → canonical语义复用非列名)。
- # 数据: per台 <GCn>.zip 内单CSV "GCn—2.0MW_原始数据_*.csv" (utf-8-sig, 82列, 明阳导出); 整年 2025-03~2026-02。
- # ★ 有 5高度实测测风塔 (大龙山 10/30/50/70/90m, masta EEE2252C001-003, 非预报) → 解锁绝对性能/NTF/达成率 (mast section 另接)。
- # 高原型: 平均空气密度 p50=0.96 (实证, 非标准1.225) → Cp/达成率须空密修正。
- schema_version: 2
- meta:
- oem: 明阳 MINGYANG
- model: MY2.0-104/80(S) 高原型
- rated_kw: 2000
- n_turbines: 24
- farm: gucheng
- site: 云南大唐古城 (高原型, 空密0.96)
- commissioned: 2017
- self_ref_risk: false # 有5高度实测塔(大龙山) → 绝对性能可做(NTF); 机舱风仍标self_ref但塔可替
- has_mast: true
- topology: DFIG_geared
- reuse_of: mingyang_my2_0_changpingao.yaml
- turbine_10min:
- sampling_s: 600
- columns:
- # 风机(机号列)/风机类型(恒值MY2.0MW)/Unnamed:81(空尾) 由 loader 处理不入契约 (海装模式)
- 时间: {role: timestamp}
- 平均功率: {canonical_id: WAPC_active_power, raw_unit: kW, to_canonical: 1, valid_range: [-100, 2200], observed_range: [0, 2051], sentinel: [], note: "额定2MW(p99 2025/max2051)"}
- 平均功率因数: {canonical_id: WGRI_power_factor, raw_unit: none, to_canonical: 1, valid_range: [-1, 1], observed_range: [-1, 1], sentinel: [-1], note: "-1=无效标记(153处)"}
- 平均无功功率: {canonical_id: WAPC_reactive_power, raw_unit: kvar, to_canonical: 1, valid_range: [-2200, 2200], observed_range: [-1, 1000], sentinel: [-1]}
- 平均发电机转速: {canonical_id: WGEN_speed, raw_unit: rpm, to_canonical: 1, valid_range: [-50, 2000], observed_range: [-1, 1751], sentinel: [], note: "高速侧DFIG med1172"}
- 平均桨叶1角度: {canonical_id: WROT_pitch_angle_1, raw_unit: deg, to_canonical: 1, valid_range: [-11, 95], observed_range: [-10, 92.3], sentinel: [], trap: "独立变桨; min-10=停机/顺桨过渡, 保留(非-99哨兵)"}
- 平均桨叶2角度: {canonical_id: WROT_pitch_angle_2, raw_unit: deg, to_canonical: 1, valid_range: [-11, 95], observed_range: [-10, 92], sentinel: []}
- 平均桨叶3角度: {canonical_id: WROT_pitch_angle_3, raw_unit: deg, to_canonical: 1, valid_range: [-11, 95], observed_range: [-10, 92], sentinel: []}
- 平均风速: {canonical_id: WMET_wind_speed_nacelle, raw_unit: mps, to_canonical: 1, valid_range: [0, 60], observed_range: [0, 19], sentinel: [], self_ref_risk: true, note: "机舱风; 绝对性能用大龙山塔替"}
- "平均风向(机舱)": {canonical_id: WMET_wind_direction_nacelle, raw_unit: deg, to_canonical: 1, valid_range: [-180, 360], observed_range: [-180, 360], sentinel: [], frame: "机舱相对; 对风偏差代理"}
- "平均风角度(对北)": {canonical_id: WMET_wind_direction_geo, raw_unit: deg, to_canonical: 1, valid_range: [0, 360], observed_range: [9.6, 353], sentinel: [], frame: "地理对北"}
- 平均l1电压: {canonical_id: WGRI_voltage_l1, raw_unit: V, to_canonical: 1, valid_range: [0, 900], observed_range: [0, 750], sentinel: []}
- 平均l2电压: {canonical_id: WGRI_voltage_l2, raw_unit: V, to_canonical: 1, valid_range: [0, 900], observed_range: [0, 750], sentinel: []}
- 平均l3电压: {canonical_id: WGRI_voltage_l3, raw_unit: V, to_canonical: 1, valid_range: [0, 900], observed_range: [0, 750], sentinel: []}
- 平均l1电流: {canonical_id: WGRI_current_l1, raw_unit: A, to_canonical: 1, valid_range: [0, 3000], observed_range: [0, 2000], sentinel: []}
- 平均l2电流: {canonical_id: WGRI_current_l2, raw_unit: A, to_canonical: 1, valid_range: [0, 3000], observed_range: [0, 2000], sentinel: []}
- 平均l3电流: {canonical_id: WGRI_current_l3, raw_unit: A, to_canonical: 1, valid_range: [0, 3000], observed_range: [0, 2000], sentinel: []}
- 平均机舱角度: {canonical_id: WYAW_nacelle_position, raw_unit: deg, to_canonical: 1, valid_range: [0, 360], observed_range: [0, 360], sentinel: []}
- 平均扭缆角度: {canonical_id: WYAW_cable_twist, raw_unit: deg, to_canonical: 1, valid_range: [-1080, 1080], observed_range: [-720, 720], sentinel: [-1], note: "解缆代理"}
- 平均机舱总角度: {canonical_id: WYAW_nacelle_total, raw_unit: deg, to_canonical: 1, valid_range: [-3600, 3600], observed_range: [-2000, 2000], sentinel: []}
- 平均有功功率设定值: {canonical_id: WAPC_power_setpoint, raw_unit: kW, to_canonical: 1, valid_range: [0, 2200], observed_range: [0, 2100], sentinel: []}
- 平均功率因数设定值: {canonical_id: WGRI_pf_setpoint, raw_unit: none, to_canonical: 1, valid_range: [-1, 1], observed_range: [-1, 1], sentinel: []}
- 平均转速设定值: {canonical_id: WGEN_speed_setpoint, raw_unit: rpm, to_canonical: 1, valid_range: [0, 2000], observed_range: [0, 1800], sentinel: []}
- # ★ PT100 采集失效哨兵 (2026-09-02 实测 + OEM 手册 M0100002783 §1.5):
- # 高侧: 手册载开路=3275.7℃(箱变3270.2); **10min 为均值故实测不等于该值** — 古城实测 GC8 室外 3268.30 / GC11 发电机V相 3090.75
- # 低侧: 实测饱和 −82.40(供水) / −77.40(回水), 手册未载
- # ⇒ 判据写 `>上界 或 <下界`, **禁写 ==3275.7**。全场 1076 槽越界集中 4/24 台, 见 outputs/gucheng/古城_GC9温度采集失效_2026-09-02.md
- # 现状: valid_range 已能把它们判 NaN, 故均值不受污染; 但事件被静默丢弃 —— 需要事件级留痕而非仅 clip 计数
- 平均室外温度: {canonical_id: WMET_ambient_temp, raw_unit: C, to_canonical: 1, valid_range: [-40, 55], observed_range: [-20, 40], sentinel: []}
- 平均轮毂温度: {canonical_id: WROT_hub_temp, raw_unit: C, to_canonical: 1, valid_range: [-40, 90], observed_range: [-20, 60], sentinel: []}
- 平均机舱温度: {canonical_id: WNAC_temp, raw_unit: C, to_canonical: 1, valid_range: [-40, 90], observed_range: [-10, 60], sentinel: []}
- 平均塔基温度: {canonical_id: WNAC_tower_base_temp, raw_unit: C, to_canonical: 1, valid_range: [-40, 90], observed_range: [-10, 60], sentinel: []}
- 平均机舱柜温度: {canonical_id: WNAC_cabinet_temp, raw_unit: C, to_canonical: 1, valid_range: [-40, 90], observed_range: [-10, 70], sentinel: []}
- 平均塔基柜温度: {canonical_id: WNAC_tower_cabinet_temp, raw_unit: C, to_canonical: 1, valid_range: [-40, 90], observed_range: [-10, 70], sentinel: []}
- 平均变压器温度: {canonical_id: WTRF_temp, raw_unit: C, to_canonical: 1, valid_range: [-40, 180], observed_range: [-10, 130], sentinel: []}
- 平均桨叶1电机温度: {canonical_id: WROT_pitch_motor_temp_1, raw_unit: C, to_canonical: 1, valid_range: [-40, 155], observed_range: [-10, 100], sentinel: []}
- 平均桨叶2电机温度: {canonical_id: WROT_pitch_motor_temp_2, raw_unit: C, to_canonical: 1, valid_range: [-40, 155], observed_range: [-10, 100], sentinel: []}
- 平均桨叶3电机温度: {canonical_id: WROT_pitch_motor_temp_3, raw_unit: C, to_canonical: 1, valid_range: [-40, 155], observed_range: [-10, 100], sentinel: []}
- 平均桨叶1电池箱温度: {canonical_id: WROT_pitch_batt_temp_1, raw_unit: C, to_canonical: 1, valid_range: [-40, 90], observed_range: [-10, 70], sentinel: []}
- 平均桨叶2电池箱温度: {canonical_id: WROT_pitch_batt_temp_2, raw_unit: C, to_canonical: 1, valid_range: [-40, 90], observed_range: [-10, 70], sentinel: []}
- 平均桨叶3电池箱温度: {canonical_id: WROT_pitch_batt_temp_3, raw_unit: C, to_canonical: 1, valid_range: [-40, 90], observed_range: [-10, 70], sentinel: []}
- 平均中控箱温度: {canonical_id: WNAC_ctrl_cabinet_temp, raw_unit: C, to_canonical: 1, valid_range: [-40, 90], observed_range: [-10, 70], sentinel: []}
- 平均桨叶1轴控箱温度: {canonical_id: WROT_pitch_axisctrl_temp_1, raw_unit: C, to_canonical: 1, valid_range: [-40, 90], observed_range: [-10, 70], sentinel: []}
- 平均桨叶2轴控箱温度: {canonical_id: WROT_pitch_axisctrl_temp_2, raw_unit: C, to_canonical: 1, valid_range: [-40, 90], observed_range: [-10, 70], sentinel: []}
- 平均桨叶3轴控箱温度: {canonical_id: WROT_pitch_axisctrl_temp_3, raw_unit: C, to_canonical: 1, valid_range: [-40, 90], observed_range: [-10, 70], sentinel: []}
- 平均桨叶1pmm散热器温度: {canonical_id: WROT_pitch_pmm_temp_1, raw_unit: C, to_canonical: 1, valid_range: [-40, 120], observed_range: [-10, 90], sentinel: []}
- 平均桨叶2pmm散热器温度: {canonical_id: WROT_pitch_pmm_temp_2, raw_unit: C, to_canonical: 1, valid_range: [-40, 120], observed_range: [-10, 90], sentinel: []}
- 平均桨叶3pmm散热器温度: {canonical_id: WROT_pitch_pmm_temp_3, raw_unit: C, to_canonical: 1, valid_range: [-40, 120], observed_range: [-10, 90], sentinel: []}
- 平均桨叶1pmc散热器温度: {canonical_id: WROT_pitch_pmc_temp_1, raw_unit: C, to_canonical: 1, valid_range: [-40, 120], observed_range: [-10, 90], sentinel: []}
- 平均桨叶2pmc散热器温度: {canonical_id: WROT_pitch_pmc_temp_2, raw_unit: C, to_canonical: 1, valid_range: [-40, 120], observed_range: [-10, 90], sentinel: []}
- 平均桨叶3pmc散热器温度: {canonical_id: WROT_pitch_pmc_temp_3, raw_unit: C, to_canonical: 1, valid_range: [-40, 120], observed_range: [-10, 90], sentinel: []}
- 平均主轴轴承a温度: {canonical_id: WTRM_main_bearing_temp_a, raw_unit: C, to_canonical: 1, valid_range: [-40, 100], observed_range: [6, 38], sentinel: []}
- 平均主轴轴承b温度: {canonical_id: WTRM_main_bearing_temp_b, raw_unit: C, to_canonical: 1, valid_range: [-40, 100], observed_range: [6, 40], sentinel: []}
- 平均齿轮箱油温: {canonical_id: WTRM_gbx_oil_temp, raw_unit: C, to_canonical: 1, valid_range: [-40, 120], observed_range: [11, 61], sentinel: []}
- 平均齿轮箱驱动端轴承温度: {canonical_id: WTRM_gbx_bearing_temp_de, raw_unit: C, to_canonical: 1, valid_range: [-40, 120], observed_range: [0, 80], sentinel: []}
- 平均齿轮箱非驱动端轴承温度: {canonical_id: WTRM_gbx_bearing_temp_nde, raw_unit: C, to_canonical: 1, valid_range: [-40, 120], observed_range: [0, 80], sentinel: []}
- 平均发电机驱动端轴承温度: {canonical_id: WGEN_de_bearing_temp, raw_unit: C, to_canonical: 1, valid_range: [-40, 150], observed_range: [0, 90], sentinel: []}
- 平均发电机非驱动端轴承温度: {canonical_id: WGEN_nde_bearing_temp, raw_unit: C, to_canonical: 1, valid_range: [-40, 150], observed_range: [0, 90], sentinel: []}
- 平均发电机u相温度: {canonical_id: WGEN_stator_u_temp, raw_unit: C, to_canonical: 1, valid_range: [-40, 180], observed_range: [0, 150], sentinel: [], note: "F级155阈"}
- 平均发电机v相温度: {canonical_id: WGEN_stator_v_temp, raw_unit: C, to_canonical: 1, valid_range: [-40, 180], observed_range: [0, 150], sentinel: []}
- 平均发电机w相温度: {canonical_id: WGEN_stator_w_temp, raw_unit: C, to_canonical: 1, valid_range: [-40, 180], observed_range: [0, 150], sentinel: []}
- 平均发电机冷风温度: {canonical_id: WGEN_cooling_temp, raw_unit: C, to_canonical: 1, valid_range: [-40, 130], observed_range: [-10, 90], sentinel: []}
- 平均桨叶1速度值: {canonical_id: WROT_pitch_rate_1, raw_unit: dps, to_canonical: 1, valid_range: [-20, 20], observed_range: [-15, 15], sentinel: []}
- 平均桨叶2速度值: {canonical_id: WROT_pitch_rate_2, raw_unit: dps, to_canonical: 1, valid_range: [-20, 20], observed_range: [-15, 15], sentinel: []}
- 平均桨叶3速度值: {canonical_id: WROT_pitch_rate_3, raw_unit: dps, to_canonical: 1, valid_range: [-20, 20], observed_range: [-15, 15], sentinel: []}
- 平均桨叶1电机电流: {canonical_id: WROT_pitch_motor_current_1, raw_unit: A, to_canonical: 1, valid_range: [-100, 100], observed_range: [-50, 50], sentinel: []}
- 平均桨叶2电机电流: {canonical_id: WROT_pitch_motor_current_2, raw_unit: A, to_canonical: 1, valid_range: [-100, 100], observed_range: [-50, 50], sentinel: []}
- 平均桨叶3电机电流: {canonical_id: WROT_pitch_motor_current_3, raw_unit: A, to_canonical: 1, valid_range: [-100, 100], observed_range: [-50, 50], sentinel: []}
- 平均转矩设定值: {canonical_id: WTRM_torque_setpoint, raw_unit: Nm, to_canonical: 1, valid_range: [-30000, 30000], observed_range: [0, 20000], sentinel: []}
- 平均大气压: {canonical_id: WMET_pressure, raw_unit: kPa, to_canonical: 1, valid_range: [50, 110], observed_range: [0, 0], sentinel: [0], trap: "全0=死列(压力传感未接/单位异常), CT-2跨机判死"}
- 平均空气密度: {canonical_id: WMET_air_density, raw_unit: kgm3, to_canonical: 1, valid_range: [0.7, 1.3], observed_range: [0.91, 1.02], sentinel: [], note: "高原型 p50=0.96 实证, Cp/达成率空密修正锚"}
- 平均净功率: {canonical_id: WAPC_net_power, raw_unit: kW, to_canonical: 1, valid_range: [-100, 2200], observed_range: [0, 2051], sentinel: []}
- 平均chopper模块温度: {canonical_id: WCNV_chopper_temp, raw_unit: C, to_canonical: 1, valid_range: [-40, 120], observed_range: [-10, 90], sentinel: []}
- 平均环境温度: {canonical_id: WMET_ambient_temp_2, raw_unit: C, to_canonical: 1, valid_range: [-40, 55], observed_range: [-20, 40], sentinel: [0], note: "★污染列(2026-07-16 verdict_sweep 逮): 50% exact-0 卡值(间歇未接), 与平均室外温度 corr仅0.18(非别名!早先note误标近同). 真环温=平均室外温度(WMET_ambient_temp, 0% zero, 季节平滑). 0=哨兵→NaN; 环温类判据必用室外温度, 勿用本列."}
- 平均并网柜温度: {canonical_id: WCNV_grid_cabinet_temp, raw_unit: C, to_canonical: 1, valid_range: [-40, 90], observed_range: [-10, 70], sentinel: []}
- 平均功率柜温度: {canonical_id: WCNV_power_cabinet_temp, raw_unit: C, to_canonical: 1, valid_range: [-40, 90], observed_range: [-10, 70], sentinel: []}
- 平均控制柜温度: {canonical_id: WNAC_control_cabinet_temp, raw_unit: C, to_canonical: 1, valid_range: [-40, 90], observed_range: [-10, 70], sentinel: []}
- 平均供水温度: {canonical_id: WTRM_cooling_supply_temp, raw_unit: C, to_canonical: 1, valid_range: [-40, 100], observed_range: [-10, 70], sentinel: []}
- 平均回水温度: {canonical_id: WTRM_cooling_return_temp, raw_unit: C, to_canonical: 1, valid_range: [-40, 100], observed_range: [-10, 70], sentinel: []}
- 平均网侧模块最高温度: {canonical_id: WCNV_grid_module_temp, raw_unit: C, to_canonical: 1, valid_range: [-40, 130], observed_range: [-10, 100], sentinel: []}
- 平均转子侧模块最高温度: {canonical_id: WCNV_rotor_module_temp, raw_unit: C, to_canonical: 1, valid_range: [-40, 130], observed_range: [-10, 100], sentinel: []}
- 平均网侧电抗器温度: {canonical_id: WCNV_grid_reactor_temp, raw_unit: C, to_canonical: 1, valid_range: [-40, 180], observed_range: [-10, 130], sentinel: []}
- 平均转子侧电抗器温度: {canonical_id: WCNV_rotor_reactor_temp, raw_unit: C, to_canonical: 1, valid_range: [-40, 180], observed_range: [-10, 130], sentinel: []}
- 平均湍流强度: {canonical_id: WMET_turbulence_intensity, raw_unit: frac, to_canonical: 1, valid_range: [0, 1], observed_range: [0, 0.33], sentinel: [], note: "明阳内置湍流代理 p50=0.09"}
- # mast 数据层 (大龙山测风塔, 单独 CSV 长表, NTF 时另接契约): 3masta(EEE2252C001-003) × 5高度(10/30/50/70/90m);
- # 列 data_time/masta_id/speed/direction/temperature/humidity/pressure/layer; 实测非预报(无'预报'列); 70/90m夹hub~80m;
- # speed 0-22.5. 绝对性能/NTF 用此塔替机舱风; 本契约管 turbine_10min, mast 另 section 待 NTF 分析时建。
- cleaning:
- physical: "valid_range clip→NaN; 桨叶-10保留(停机/顺桨非哨兵); 平均大气压全0死列(CT-2跨机判); 功率因数/无功/扭缆 -1哨兵→NaN"
- semantic: "无独立状态码列(状态/故障在收资故障码手册, 事件另表); 对风偏差=风向(机舱); 绝对性能用大龙山塔(70/90m)非机舱风"
- traps:
- - "82列宽表 utf-8-sig (非GBK; 明阳导出); per台 <GCn>.zip 内单CSV, 台号列'风机'=GCn—2.0MW"
- - "平均大气压全0=死列(压力未接/单位异常); 空气密度独立列有效(0.96高原) → 空密来自密度列非压力"
- - "高原型空密0.96 → Cp/绝对达成率须空密修正 (标准1.225差23%)"
- - "有5高度实测塔(大龙山) → 绝对性能/NTF可做(区别于海装无塔); 塔长表 masta_id×layer, 70/90m夹hub~80m"
- - "★平均环境温度(WMET_ambient_temp_2)=污染列非别名(2026-07-16修正): 50% exact-0卡值, 与室外温度corr仅0.18. 早先'近同'note经runtime证伪. 真环温唯一=平均室外温度. 教训: 契约observed_range/别名claim须runtime验(cleaning未清间歇0-卡)"
- - "桨叶速度值/电机电流/pmm/pmc散热器 = 明阳独立变桨系统丰富遥测 (三叶各一列)"
|