| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 |
- # 数据契约 — 锅冲风电场 (湖南 郴州, 华电) — OEM未定 混装额定 10台 — 最薄场 (10列)
- # OEM=未定 (禁猜): 文件名 F1297 = 项目/收资代码, 非机型; 数据内无控制器/平台/机型标签列;
- # 通道命名 = 纯中文聚合列 (风速mean/std/min/max, 发电量min/max, 首发故障码, 有功mean) 无 OEM 指纹可比
- # → 不匹配库内任一已知OEM。功率曲线文件机型码 SE168335/SI-20050/SI-20056 (见 mixed_fleet),
- # 实名报告前须业主铭牌 + 每台机型清单确认。
- # ★ mixed_fleet (data-first, scratchpad 逐台 plateau/max 实测): 本场 10 台 混装 ≥2 额定等级:
- # - 小机 (T1,2,5,6,9): 高风 plateau ~3660-3710kW, max ~3715-3750kW (5台)
- # - 大机 (T3,4,7,8,10): p99 ~4290-5428kW, max ~5488-5745kW (5台)
- # 交付 3 条功率曲线机型码/额定: SE168335=3350kW / SI-20050=5000kW / SI-20056=5600kW
- # (10.5-11 m/s 达额定, 3-20 m/s, 1.105 空气密度)。5×3350+5×5600≈44.75MW ≈ 场铭牌 44.8MW。
- # ⚠ 每台↔机型精确映射 = INSUFFICIENT (SCADA 无机型列; 小机 plateau3700 > SE168335曲线3350 =
- # 曲线可能是担保/降额值非nameplate)。禁据 plateau 硬派机型出定谳。单一全场 rated 不适用 →
- # 契约 rated_kw=null; 有功 valid_range 上界按最大机 (5600+boost); per台额定见分析层。
- # ★ min vs min-new (data-first 逐台比对, 头号问题已核; scratchpad_wms*.py + intake_scan dups):
- # T3/4/7/8/10: 两版 sha256 逐字节相同 (冗余, 用其一)。
- # T1/2/5/6/9: min-new **系统性删除近额定高功率行** — 每台删除的 10-min 有效功率行数 == 该台被删的
- # ≥3000kW 行数, 一一对应 (T1 -428=-428hi, T2 -841=-841hi, T5 -72=-72hi, T6 -416=-416hi, T9 -779=-779hi;
- # 被删行皆 风速~9-10m/s 有功~3400-3590kW 合理近额定生产点, 非坏值)。min ⊇ min-new (10-min 有效行),
- # 共有行值差仅 float 末位 (0.598116666666667 vs ..69)。→ **min 更完整, min-new 损坏 (丢功率曲线
- # 最关键近额定段, 用之会低估达成率)。用 min, 禁 min-new, 禁合并双份。**
- # [勘误] 早前 stub 结论 "用 min-new(再导版, 差异=浮点+0.3%NaN)" = 错: 那 0.3% NaN 恰是被删的近额定
- # 高功率行 (最有价值), 非噪声 → 本契约翻转为 min。装配 scripts/guochong_assemble.py 读 min。
- # G-OEM 实证 (2026-07-17, scratchpad_wms*.py; 10台 min/*.xlsx 全跑):
- # 格式=直读 xlsx 单 Sheet1 (非转置); 122806 行/台 = 两类记录交织:
- # ①全行(有功notna): 精确 10-min 栅格 :00/:10/:20/:30/:40/:50, 携全部聚合通道 = 原生10-min层
- # (每台 ~20640 行, 时间==floor10 100%, 无重复)。
- # ②std行(仅风速std notna): 窗内分钟级子样 (每窗 ~5 个, 分钟不规则 :05-09/:11-19/... 非全10分钟)
- # → 仅携 风速std, 派生窗内湍流代理 ws_std_intrawindow_mean + n_std_intrawindow(min_valid门)。
- # 真采样率: 原生分析层 = 600s (全行栅格; 禁全局median — 全序列 median60s 是 std行伪采样, 误导)。
- # dt 模式每10-min块 [300,60,60,60,60,60] 循环 (全序列 60s×102165 + 300s×20432)。
- # [勘误] 早前 stub "真采样率1分钟" 不精确: 分钟行仅携风速std, 功率/风速/发电量/故障码全在10-min全行。
- # 时间: 本地(UTC+8) 10-min 标签 (栅格起点); 窗 2025-01-01 00:00 ~ 05-24 (~4.8 月, 非全年)。
- # 台号: 文件名 F1297_<N>#; 内部 '风机' 列 = "<N>#" (与文件号一致, data-first 已核) → id=turbine_id="<N>#"。
- # 哨兵: 未见哨兵家族 — 风速/发电量/有功 min 均物理 (风速0=静风, 有功-0.07=idle自耗真值,
- # 发电量 min≈681159=counter起点非哨兵); 首发故障码 0=正常态非哨兵; 无 -99/-999/9999/-274.15。
- # self_ref: 风速=机舱风速计 (无测风塔; 场内无 mast 层) → 绝对功率曲线/Cp/达成率 INSUFFICIENT。
- # 发电量: min/max = 10-min 窗内累计 kWh counter 的最小/最大读数; counter 单调不减
- # (T7 monotonic_frac=1.000, span~5.0M kWh); (max-min)=区间发电量 ≈ 有功mean×(1/6)h
- # (94 vs 95.9 / 101 vs 102.6 / 125 vs 126.7 自洽) → 装配派生 energy_10min=max-min。
- # 首发故障码: 12 个离散码 (0=99% 正常; 2448/2450/2451 族=941/8/87, 7/13/207/250/312/3816/3830/10000
- # 稀疏); 事件解码表未交付 → role:status, 语义 INSUFFICIENT (可作停机/限电分段候选, 码义待业主)。
- # 风向/偏航: 无风向列、无机舱位置列、无转速列、无环境温度列 → yaw/对风/风玫瑰/齿比拓扑 全不可做
- # (伪地理三件套 N/A: 无任何方向通道)。
- schema_version: 2
- meta:
- oem: "未定 (无控制器/机型标签列; F1297=项目码非机型; 通道无OEM指纹; 待业主铭牌确认)"
- model: "未定 混装 (功率曲线机型码 SE168335/SI-20050/SI-20056; 每台↔机型映射 INSUFFICIENT)"
- rated_kw: null
- rated_note: "混装额定, 单一标量不适用 (data-first): 小机T1/2/5/6/9 max~3750 / 大机T3/4/7/8/10 max~5488-5745; 交付3曲线 3350/5000/5600kW; 5×3350+5×5600≈44.75MW≈场铭牌44.8MW; per台额定 UNVERIFIED"
- n_turbines: 10
- n_with_data: 10
- farm: guochong
- site: 湖南 郴州 锅冲风电场 (华电湖南郴州 44.8MW)
- topology: "未定 (无转速/齿比通道; 齿轮箱内窥镜报告示齿箱 → 疑齿驱, UNVERIFIED)"
- owner: "UNVERIFIED (湖南华电郴州风力发电有限公司; 铭牌未交付)"
- self_ref_risk: true
- data_source_used: min
- mixed_fleet:
- small: {turbines: ["1#","2#","5#","6#","9#"], obs_plateau_kw: "3660-3710", obs_max_kw: "3715-3750"}
- large: {turbines: ["3#","4#","7#","8#","10#"], obs_p99_kw: "4290-5428", obs_max_kw: "5488-5745"}
- power_curves_delivered: {SE168335: 3350, "SI-20050": 5000, "SI-20056": 5600}
- caveat: "分母按机型/等级; 型内独立; 不 pool 达成率/功率曲线; 每台机型 SCADA 不可判 → 待铭牌"
- windows:
- turbine_10min: "2025-01-01 00:00 ~ 2025-05-24 10:30 (~4.8月; 每台 ~20640 原生10-min行)"
- data_quality:
- 薄场: "10列: 无部件温/无环温/无桨距/无油压/无三相电流电压/无风向/无机舱位置/无转速 → 温度NBM/⑥冷臂/⑦变频器/three_blade/yaw/齿比 全不可做; 仅 功率曲线达成率(相对,分机型)/可用率/发电量/湍流代理/故障码分段 有价值; 组件健康诊断 INSUFFICIENT"
- self_ref: "风速=机舱风速计无塔 → 绝对达成率/Cp INSUFFICIENT (3空气密度功率曲线xlsx=担保曲线非实测塔)"
- min_vs_new: "用 min (min-new 系统删T1/2/5/6/9近额定≥3000kW行=损坏); T3/4/7/8/10两版sha256同"
- sampling: "原生分析层600s(全行栅格); 分钟行仅携风速std(伪采样勿当采样率); 禁全局median"
- energy: "发电量(min/max)=累计kWh counter极值(单调); 区间=派生energy_10min=max-min≈有功×1/6h"
- fault_code: "首发故障码=12码status(0=99%); 事件解码表未交付→语义INSUFFICIENT; 勿平均"
- turbine_10min:
- sampling_s: 600
- machine_col: turbine_id
- required: ["有功功率(mean)", "风速(mean)"]
- columns:
- "时间": {role: timestamp, canonical_id: TIME_local, note: "本地(UTC+8) 10-min 栅格起点; 全行时间==floor10min 100%"}
- "风速(mean)": {valid_range: [0, 60], observed_range: [0.0, 19.53], sentinel: [], self_ref_risk: true, canonical_id: WMET_HorWdSpd, note: "机舱风速计 self_ref; 无测风塔 → 绝对功率曲线/Cp/达成率 INSUFFICIENT"}
- "风速(min)": {valid_range: [0, 60], observed_range: [0.0, 9.66], sentinel: [], canonical_id: WMET_HorWdSpd_min, note: "10-min 窗内风速最小"}
- "风速(max)": {valid_range: [0, 70], observed_range: [0.0, 50.15], sentinel: [], canonical_id: WMET_HorWdSpd_max, note: "10-min 窗内阵风最大 (max50.15 极值, 界内保留)"}
- "有功功率(mean)": {valid_range: [-100, 6200], observed_range: [-0.07, 5744.83], sentinel: [], canonical_id: WTUR_W, note: "混装rated上界按最大机(5600+boost)设; 负值-0.07=idle自耗真值; 界外>6200→NaN非clamp"}
- "发电量(min)": {valid_range: [0, 20000000], observed_range: [681159, 7294525], sentinel: [], canonical_id: WTUR_kWh_counter_min, note: "累计寿命kWh counter窗内最小读数 (单调不减非区间; 区间用energy_10min)"}
- "发电量(max)": {valid_range: [0, 20000000], observed_range: [681159, 7294532], sentinel: [], canonical_id: WTUR_kWh_counter_max, note: "累计kWh counter窗内最大读数"}
- "energy_10min": {valid_range: [-5, 1200], observed_range: [0, 954], sentinel: [], canonical_id: WTUR_kWh_10min, note: "派生=发电量(max-min)=区间发电量kWh; ≈有功mean×1/6h(自洽); 大机上限≈5600/6≈933"}
- "首发故障码(max)": {role: status, observed_range: [0, 10000], sentinel: [], canonical_id: WTUR_faultcode, note: "12码离散(0=99%正常; 2448/2450/2451族+7/13/207/250/312/3816/3830/10000); 解码表未交付→语义INSUFFICIENT; role:status勿平均; 停机/限电分段候选"}
- "ws_std_intrawindow_mean": {valid_range: [0, 20], observed_range: [0, 8.91], sentinel: [], canonical_id: WMET_HorWdSpd_ti_proxy, note: "派生=窗内分钟级风速std均值(湍流代理); 仅~5/10分钟子样→部分窗代理, min_valid见 n_std_intrawindow"}
- "n_std_intrawindow": {role: meta, observed_range: [0, 5], sentinel: [], canonical_id: WMET_ti_n_samples, note: "窗内std子样数(min_valid门): 多数=5; 0=无子样(ws_std代理NaN不可信)"}
- cleaning:
- physical: "valid_range 界外→NaN (apply_contract_gate, 非clamp); 无哨兵家族 (sentinel 全空); 发电量=累计counter界宽[0,2e7]勿误NaN"
- semantic: "风速=机舱self_ref (绝对性能INSUFFICIENT); 发电量min/max=累计counter非区间 (区间用energy_10min=max-min); 首发故障码=status离散码勿平均(解码表未交付); ws_std_intrawindow_mean=窗内~5分钟std派生湍流代理(部分窗, n_std<5降信)"
- per_turbine_liveness: "分析前必 per台 liveness 闸 (表头有列≠有活信号); 混装额定→功率类判据必先分小机/大机组 (fleet-relative 跨额定等级污染, memory relative-criterion-batch-blindness); 每台额定 per-turbine 定"
- traps:
- - "最薄场 (10列): 无部件温度(齿箱/发电机/轴承/绕组)/无环温/无桨距/无油压/无三相电流电压/无风向/无机舱位置/无转速 → 温度NBM(temp-nbm)/冷臂dP(⑥)/变频器温(⑦)/三叶桨距(pitch-error)/偏航(yaw-*)/齿比拓扑 全部不可做; 仅 功率曲线(相对)+可用率+发电量+湍流代理+故障码分段 有价值。诚实标: 组件健康诊断 INSUFFICIENT。"
- - "self_ref: 风速=机舱风速计, 无测风塔/mast层 → 绝对功率曲线/Cp/达成率 INSUFFICIENT (power-curve-ntf verdict 天然降级); 只可做同型机群相对筛查 (须先按小机/大机分组)。"
- - "mixed_fleet: 10台混≥2额定等级 (小~3.75MW / 大~5.0-5.6MW); 单一全场 rated 不适用, rated_kw=null; 功率/发电量/相对欠发判据禁跨等级比 (relative-criterion-batch-blindness); 每台↔机型 SCADA不可判 → 待铭牌。"
- - "min vs min-new: min-new 损坏 (系统删T1/2/5/6/9近额定≥3000kW行, 删数==高功率删数一一对应); T3/4/7/8/10两版sha256同。用 min, 禁 min-new, 禁合并 (data-first scratchpad_wms*.py + intake_scan dups=5)。早前 stub '用min-new' 勘误翻转。"
- - "采样双率陷阱: 全序列 t.diff median=60s 是 std行伪采样 (每窗~5个分钟std子样, 仅携风速std); 原生分析层=600s全行栅格 (携全通道)。禁全局median当采样率; 分析用全行(有功notna)层。"
- - "发电量语义: min/max = 累计寿命 kWh counter 窗内极值 (单调, T7 span~5M), 非区间发电量; 区间=派生 energy_10min=max-min ≈ 有功×1/6h。误当区间量会把 counter 绝对值(~7M)当发电量。"
- - "首发故障码: 事件解码表未交付 → 12码语义 INSUFFICIENT; 2448族(941)最频, 10000可能comms/特殊值; 停机/限电分段可用码变化点, 但不得据码义出确诊 (curtailment-screen 须码义或三证)。"
- - "非数据资料未用于SCADA: 齿轮箱内窥镜检查报告.pdf (gold件但无对应SCADA部件温可对齐→用不上); 尽调报告zip/功率曲线rar 见 survey.skipped。"
|