| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- # 飞尺角 东方电气 FD116A 2.0MW ×24 (F01-F24; min/层23台缺F17) — WINDDATA 新总盘首个 onboard 样板
- # 复用 dec_fd116a OEM 语义 (源 dec_fd116a_2000_liangshuiquan.yaml), 但导出格式不同→自有列映射
- # G-OEM 实证: scratchpad/fcj_goem.py + frame验 (2026-07-06)
- # ⭐ DEC frame病解: 绝对风向 & 机舱位置 皆地理绝对 (发电态差 中位0.2°/std19° = 对风角) → 回填 OEM_KB
- schema_version: 2
- meta:
- oem: 东方电气 DEC
- model: FD116A
- rated_kw: 2000
- n_turbines: 24 # 机台表24(F01-F24); min/层有数据23(缺F17); scada/min层24
- farm: feichijiao
- site: 云南飞尺角 (大龙山三期, 海拔~2000m, 103.8E/23.9N)
- commissioned: 2017
- contract_curve: 收资表功率曲线表 双密度 0.96(场站高海拔)/1.225(标准), 额定2000 (待OCR锚风速)
- windows: {min_10min: "2024-01-01~2025-01-01 (全年)", scada_min: "2023-06~ (8列/GBK, 少)", zip_10min: "TCS10MData 全24台 (格式待解, 疑GBK)"}
- self_ref_risk: true # 风速=机舱风速计; 测风塔登记未交付 → 绝对达成率须担保曲线, 禁机舱风
- reuse_of: dec_fd116a_2000_liangshuiquan.yaml # 同OEM同型; 语义复用, 列名不可套(飞尺角单表头带单位 vs 凉水泉双行表头平均值列族)
- turbine_10min: # onboarding 层 = min/F*.csv (18列, UTF-8单表头, dt=600s实证)
- sampling_s: 600
- columns:
- 时间: {role: timestamp}
- "Unnamed: 1": {role: drop, valid_range: [0, 0], observed_range: [0, 0], trap: "空占位列(CSV空表头, 非空率0%), 读入即弃"}
- "有功功率(kW)": {raw_unit: kW, to_canonical: 1, valid_range: [-100, 2200], observed_range: [-22, 2046], sentinel: []}
- "桨叶角度(°)": {raw_unit: deg, to_canonical: 1, valid_range: [-5, 95], observed_range: [-1, 91.6], sentinel: [-99], trap: "集距(单叶角), -99哨兵(稀疏); 三叶不平衡须振动不可靠此列"}
- "风速(m/s)": {raw_unit: mps, to_canonical: 1, valid_range: [0, 60], observed_range: [0, 19.6], sentinel: [], trap: "机舱风速计 self_ref, 禁做绝对Cp/达成率"}
- "绝对风向(°)": {raw_unit: deg, to_canonical: 1, valid_range: [0, 360], observed_range: [8.8, 360], frame: "地理绝对(实证与机舱位置差发电态中位0.2/std19=对风角); DEC frame病此型=地理[解凉水泉悬案]", trap: "环量均值病: 0/360跨越处均值无效, circular法"}
- "低速轴转速(rpm)": {raw_unit: rpm, to_canonical: 1, valid_range: [0, 25], observed_range: [0, 13.2], sentinel: []}
- "环境温度(℃)": {raw_unit: C, to_canonical: 1, valid_range: [-45, 55], observed_range: [-4, 27], sentinel: []}
- "机舱温度(℃)": {raw_unit: C, to_canonical: 1, valid_range: [-40, 80], observed_range: [5.5, 39], sentinel: []}
- "机舱位置(°)": {raw_unit: deg, to_canonical: 1, valid_range: [0, 360], observed_range: [0, 359.5], frame: "地理绝对(见绝对风向); 对风角=绝对风向−机舱位置"}
- "发电机转速(rpm)": {raw_unit: rpm, to_canonical: 1, valid_range: [0, 2200], observed_range: [0, 1201], sentinel: [], note: "DFIG~1200rpm; 齿比≈发电机/低速轴≈91"}
- "齿轮箱高速轴轴承(风轮侧)温度(℃)": {raw_unit: C, to_canonical: 1, valid_range: [-40, 120], observed_range: [22, 82], sentinel: []}
- "齿轮箱高速轴轴承(电机侧)温度(℃)": {raw_unit: C, to_canonical: 1, valid_range: [-40, 120], observed_range: [10, 73], sentinel: []}
- "齿轮箱油池温度(℃)": {raw_unit: C, to_canonical: 1, valid_range: [-40, 120], observed_range: [7, 57], sentinel: []}
- "发电机V相定子绕组温度(℃)": {raw_unit: C, to_canonical: 1, valid_range: [-40, 180], observed_range: [4.8, 115.5], sentinel: [], note: "仅V相(单相); F级155阈"}
- "发电机前轴承温度(℃)": {raw_unit: C, to_canonical: 1, valid_range: [-40, 150], observed_range: [5, 69], sentinel: []}
- "发电机后轴承温度(℃)": {raw_unit: C, to_canonical: 1, valid_range: [-40, 150], observed_range: [3, 69], sentinel: []}
- "主控控制字1()": {role: state_enum, dead_channel: true, valid_range: [0, 0], observed_range: [0, 0], trap: "min/层跨23机全0=死列(无状态码); 限电/停机型/事件须单独事件数据(收资表'机组状态事件数据'单独交付)"}
- # 以下 6 列跨台不齐 (CT-2 组装暴露, F1 无但他台有):
- "首发故障码地址()": {role: state_enum, raw_unit: code, to_canonical: 1, valid_range: [0, 99999], observed_range: [0, 1048], trap: "故障码地址(非码本体), 22/23台稀疏; 配FD116A故障手册解码 (同凉水泉'首发故障码地址'266常值病)"}
- "主轴轴承1(前轴承)温度(℃)": {raw_unit: C, to_canonical: 1, valid_range: [-40, 120], observed_range: [2, 45], sentinel: [], note: "21/23台有 (主轴承前, DEC 10min层含主轴温=优于凉水泉)"}
- "主轴轴承2(后轴承)温度(℃)": {raw_unit: C, to_canonical: 1, valid_range: [-40, 120], observed_range: [2, 64], sentinel: [], note: "21/23台有 (主轴承后)"}
- "电缆扭角(°)": {raw_unit: deg, to_canonical: 1, valid_range: [-1200, 1200], observed_range: [-538, 794], sentinel: [], note: "18/23台; 解缆/扭缆代理 (同凉水泉电缆扭角)"}
- "齿轮箱转速(rpm)": {raw_unit: rpm, to_canonical: 1, valid_range: [0, 2200], observed_range: [0, 1201], sentinel: [], note: "仅1/23台额外仪表, 稀疏列"}
- "齿轮箱进油口温度(℃)": {raw_unit: C, to_canonical: 1, valid_range: [-40, 120], observed_range: [3, 66], sentinel: [], note: "仅1/23台额外仪表, 稀疏列"}
- cleaning:
- physical: "valid_range clip→NaN (apply_contract_gate); 桨叶角度 -99哨兵→NaN; Unnamed:1 弃列"
- semantic: "主控控制字1 死列(全0) → 限电/停机型判据须外部事件数据; 绝对风向 circular; 对风角=绝对风向−机舱位置"
- traps:
- - "同OEM(DEC FD116A)不同导出格式: 飞尺角单表头带单位 vs 凉水泉双行表头74列(平均值/最大/最小列族) → 契约列名不可直接套凉水泉, 仅语义复用"
- - "min/层缺F17(23/24台有数据); scada/min(2023-06,8列GBK)+10min zip(TCS10MData 全24台,格式待解)另存"
- - "测风塔收资表登记未交付 → 绝对功率曲线无自由来流锚(机舱风self_ref); 达成率用担保曲线(功率曲线表待OCR)"
- - "主控控制字1全0死列 → 无SCADA状态码; 限电识别须外部事件/故障码表"
- - "高海拔~2000m空气密度~0.96 → Cp/达成率须空密修正 (同凉水泉高海拔族)"
|