# 远景 SC-1 (EN136) 对照系资源包 — windcms 插件底料 **来源**: `远景4MW.rar` (7.28GB, 龙源如东试验场SC扩建 2014-15 调机资料); 全树 `/Volumes/BIG/风电数据/远景4MW_SC1参考包/`; 解析过程与依据 = 同目录 `_digest_copy/远景4MW_digest/远景4MW包_资产地图.md` (补充1-14)。 ## ★ 证据规矩 (2026-09-02 双线互拆后的终局立场) 本包与九宫口 EN15 包两条线连续互相质证后, **双方各自建的判别器与显著性论证全部被拆掉**, 只剩三条站得住: **(a) 证据分级 = 二维正交** | 证据强度 | 含义 | |---|---| | `实机回读` | 从控制器实际读回 — **本包无一条** | | `模板值·生效` | 硬件存在, 仅作设计意图 | | `模板值·空置` | 硬件不存在, 禁引 | 用途维度: `阈值锚` / `分组依据` / `仅存档` — **模板值作阈值锚不合格, 作分组依据完全合格**(例: 前6台与后21台润滑占空比差2.4倍, 不分组则 fleet-relative 直接失效)。 **(b) 跳变模式编码 — ★已被 GE ground truth 证伪 (2026-09-02), 仅保留描述性用法** 曾定为"模式不同 ⇒ 排除无条件驱动"。九宫口以 GE 2008模板↔2009实机(528参数, 原生 Source 属性)检验, **裁决 FALSE**, 三条独立失效路径: - (i) 差异基率 4.6% ⇒ 随机对"都没跳"≈91%, 检验几乎总返回无信息肯定 - (ii) **同机制参数分别整定, 跳变本就不成组**(PID Kp/Ki/Kd、死区 Inc/Dec、偏航三件套各自单独跳) ⇒ "A 变 B 不变"证伪不了 A→B - (iii) 影子/分支参数(`_BAA`)把"值挪了分支"读成"值变了" - **对称缺口**: 门关值不动 ⇒ 零跳变行为全变(假阴性); 门关值精确 ⇒ 像活值实未生效(假阳性) ⇒ **本包 golden_by_batch 的 9 条差异只保留描述性事实(哪些参数在哪个批次边界取值不同), 所有"谁驱动谁"读法已撤回。** 跳变模式表只可用于**列出差异**, 不可用于**推断因果**, 无论证实还是证伪。 **(c) 一条负结果 — 划定整类资料的证据上限** > **OEM 调试包给的是设计意图, 不是任何一台机的活值。两库均无一条够得上 `实机回读`。想要活值只能靠现场控制器回读或从 SCADA 反推。** 两条线独立走到同一结论。**这个负结果比中途任何一条正向发现都可靠 —— 它是双方互相拆完之后的剩余。** **高复发错误 (同日两线各复发一次)**: "我有很多条证据" ⇄ 真相"我把一件事数了很多遍"。 前置筛: 看这批证据是否**同向、等幅、成套**。详见 memory `scada-residual-claim-discipline` n+4。 **(d) 第四证据等级 — `模板值·行为验证`** (2026-09-02 九宫口提出, 双线采纳) 模板值经**足量实测行为**确认在该机群生效。就"这台机实际怎么动"这个问题, **不弱于实机回读**(回读是一台一次快照; 行为验证是 N台×M次动作的统计)。 - `行为验证·精确复现`: 如 EN15 33台×22710次顺桨斜坡中位全等 2.0000/极差 0.0000 ⇒ **零离散本身是独立信息, 排除了"per台现场整定"** - `行为验证·近似`: 如本包 43 阶跃稳态 3.45-3.46 vs 设定 3.5 (98.6%, ±1.5%) — 单台单次, 不能反推"未被改动" - **边界**: ①仅对**有行为签名**的参数成立(速率/使能有; **温度阈值除非真触发过否则无签名** ← 最大限制, 而我们最关心的恰是这类) ②限该机群该时段 ③需足够样本与测量精度 **(e) 证据强弱取决于问的是什么问题** — 纠正前几轮的过度收缩 | 问题 | 模板值的地位 | |---|---| | "这个平台怎么设计的"(同源/血统/概念继承) | **正本, 最强证据** | | "这台机实际怎么动"(运行态/阈值锚) | **弱, 须行为验证** | 同一份模板值, 在同源考证里最强, 在整定值引用里最弱。**降级从来不是无条件的, 必须连着问题一起说。** **(f) 计数的边界 — 描述性 vs 推断性** - ❌ **推断性计数**(从条数推断强度: "N 条参数支持 ⇒ 可信"): **必须先归并** —— 参数间常有函数依赖(如 TEZ 全族 = 塔频的函数)、同表同次整定; 不归并就是"把一件事数了很多遍" - ✅ **描述性计数**(描述覆盖面: "查了 256 条, 0 条出现 per 批次变化"): 每条各自的事实, 不作显著性声明, 无需归并 - **判据**: 问"若把 N 换成 N/5, 结论会变吗?" — 会变 ⇒ 推断性(危险); 不变 ⇒ 描述性(安全) - **对策做成动作**: 报"N 条支持"前, 先跑一遍"这 N 条里有几条是彼此的函数/同一张表/同一次整定" > 实证: 双线当日就此错误互相提醒 ≥3 轮后仍第 4 次复发 —— **知道规矩不足以避免它**, 因为犯错时的自我描述是"看有多少参数符合规律"而非"数证据", 换个动机描述就绕过了自查。 ## ⚠️ 使用前必读 — 可迁性实测结论 (2026-09-02 独立验证) 本包源自 **EN136 / SC-1 4MW 海上 · 鼠笼全功率 · 电动变桨(Moog) · 2014-15 调试期**。 我方真实远景场多为 **1.5-2.2MW 陆上 DFIG(2021-2025)**。实测可迁性: | 内容 | 可迁性 | 依据 | |---|---|---| | 状态码字典 | **45.5%**(码)/61.8%(事件量) | 王家湾490码×714万事件基准; EN15包达83.9% ⇒ **陆上1.5MW场应优先用EN15包** | | SC-1 独有码 | **禁用** | 相对EN15的3个边际码逐条核对全是**同号异义 false friend** | | **齿箱油池**温阈 (70/75℃) | ✅ 可迁 | 油品物理限(VG320族), 与容量无关。**实测背书**: 神木66台整年发电态 >70℃ 命中 **10/66台(15%)** = 选择性 = 正常判据形态 | | **齿箱中间轴**温阈 (70/75℃) | ❌ **不可用 — 本包该行部件归属错乱** | 神木远景66台: 70阈 **66/66命中**(判据误用签名) / 85阈 **1/66**(全场无命中) / 同一70阈用在油池 **10/66、样本0.1%**(正常形态) ⇒ **数没错, 贴错部件**。根因: 齿箱轴承族四行 cn 标签与 golden_kk 值**双重互换**(InterNDE golden=90 vs DE golden=75, 与 default 恰相反) ⇒ **该族禁引, 中间轴真值 70~85 之间 INSUFFICIENT**。⚠ 与明阳无关: 神木明阳 33 台**没有中间轴通道** | | 发电机/定子温阈 | ❌ 不可迁 | High跨20℃; 鼠笼全功率 vs DFIG 热设计不同类 | | 变桨 RTS 错误码 | ⚠ 仅Moog场 | 天仁/其他变桨场 100% 无效 | | 控制律参数 | ⚠ 查 Enable 位 | 多数先进载荷回路模板里=0(未启用); "参数存在≠功能启用" | | 基线数值 | ❌ 只迁形态 | 调机期轻载态, 绝对值不可外推 | **★ fleet 命中率闸 (2026-09-02 由上表实测逼出)**: 任何 OEM 阈值落到我方数据前, 先算 **fleet 命中率** —— **>50% 命中 ⇒ 判该阈不可迁**(不可能全场同时越限, 只能是尺子不对)。选择性命中(10-30%)才是正常判据形态。**该闸尚未落进 `scripts/verdict_sweep.py`, 属已知缺口。** **三条铁律**: ①引用任何阈值前先查该参数的 **Enable 位** 与**四值列离散带**; ②只在 SC-1 出现的码判 INSUFFICIENT; ③五列同值 ≠ 跨场验证过(43.4% 参数五列同值, 更可能是模板从未调过)。 完整验证过程与被证伪的设想: `docs/reference/远景SC1参考包_应用能力验证报告.md` ## 文件 | 文件 | 内容 | 规模 | |---|---|---| | status_codes.json | 状态码合并字典: 设计表(双语触发条件+BP/YP+复位条件/模式+故障等级) ∪ 2015 SCADA 语言表 | 1295 码 | | param_dict.json | 参数字典(双语注释/单位/默认值/单台个性化标志/SC1值列+盱眙遗留列[非4MW机型,禁作分场值]) + KK Golden 模板值 | 765+115 | | operation_modes.json | 官方 26 态枚举 (DFIG系=软件预留未用; PitchMove=周期变桨活动位) | 26 | | bp_semantics.json | BP 刹车程序阶梯 + 族映射 + 安全链规则 (BP200/210=安全链级) | 35 级 | | channels.json | 三层通道: wDataLogger57 / CeLogger185 / SCADA主变量65 + 命名规范 | 307 | | identity.json | 平台身份全卡 (传动链/发电机/变频器/变桨/偏航/CMS/柜体两代/IP设备类段/双编号映射对) | — | | **control_law_params_rtw.json** | 核控控制律参数全集 (RTW/Simulink, 解码器 scripts/decode_envision_rtw.py) | 379 | | golden_by_batch.json | 四批次分段 Golden (1~6/7~11/12/13~27, 9 差异=批次代际图谱; 12台=自研柜试点) | 4×872 | | pitch_rts_error_codes.json | Moog 变桨 RTS 错误码 (ID-LOC 制, 跨机型通用 1.5MW≡4MW) | 103 | | baselines.json | 调机期基线 (变桨43阶跃/偏航56脉冲/多系统/扭振阈值/结构谱带) | — | ## windcms 接入约定 - **插件给过不过, 不给模型判级通道**: 判据实现方读本包数值在插件内计算 verdict, 不把阈值裸喂模型 (真机测试五类错之"阈值误读") - **脱敏**: 本包 sensitivity=internal。公开模式输出: 判据名/实测值可见, **数值门槛与特征频率→▪**; 交付前 `Hz` 与 `≥/≤` 双 grep 必零 (WINDCMS_INTERNAL=1 才露数) - 状态码查询序: status_codes.json (触发条件级) → 不中再落 SCADA 语言层 ## 使用铁律 1. 包内参数=**下装模板≠单台活值** (现场 ADS 手改不回写, 实证 800→1300rpm) 2. 2014-15 快照, 现役数值必有演化 — 引用标"模板值" 3. 调机期录波跳机多为**降阈值人造** (Operation Attactment 实证) 4. 台号归属**四重对齐** (文件名/内部Name/IP尾号/序号映射); 双编号: IP=远景编号, K号=业主机位 5. 基线只迁形态与相对判据, 不迁绝对数值 ## sc1_sim.html — 整机联调台 (2026-09-05) 单文件页面, **源码内零 OEM 数值** —— 全部参数运行时从本目录 JSON 读 (`control_law_params_rtw` / `param_dict` / `baselines` / `identity` / `operation_modes` / `bp_semantics`)。 **必须经 http 同源打开** (`python3 -m http.server` 于本目录), file:// 会被 CORS 拦 —— 这是刻意的。 页内有「公开模式」开关, 一键把所有数值掩成 ▪▪▪, 只留结构与行为。 **13 个机制板块**按 SC-1 自己的参数集重列(未搬 EN15 的清单): 塔共振禁区(PLC 生效/RTW TEZ 未使能两套并存) · 塔阻尼双通道(fore-aft 走变桨含功率滞环 / side-side 走转矩且 Enable=0) · 传动链扭振+陷波(定标未锚, 只用比值) · 额定以下最优增益查表 · 额定以上 PI 按桨角线性调度 · 变桨速率分级 · 刹车程序三套编号并存 · LVRT 双分支 · 后备电池路径 · ALC 独立变桨 · 叶片摆振滤波 · 限电损失表 · DFIG 死块。 **停机动力学对录波回归 (2026-09-05 实跑, 逐段残差全 0)**: | 程序 | 仿真逐段速率 °/s | `baselines` 录波锚 | 残差 | |---|---|---|---| | BP51 | 1 / 2 | 1.0 / 2.0 | 0 / 0 | | BP100 | 3 / 1 / 3.5 | 3 / 1 / 3.5 | 0 / 0 / 0 | | BP200 | 4.005 | 4.005 | 0 | **闭环压力测试**: 8/10/12/14/18/24 m/s 各 1800 仿真秒 (TI 12%), **零自发跳闸**; 稳态转速 1550~1551 vs 额定 1550; 桨距随风单调 0.1°→31.1°; 额定以上功率封顶 ≈4220 kW。 ⚠ **caveat (必须随页走)**: - 页内**不出现「真值」二字**; 参数集自标 evidence_grade = **模板值**, 本包无一条够得上"实机回读"。 - 气动 Cp(λ,β) 经验式、转子半径、折算惯量 J、阻力系数、起停风门、**以及变桨 PI 的标度 KSCALE** 均为**仿真常数, 非 OEM 参数, 不可外引**。KSCALE 之所以是拟合的: **RTW 的 Kp/Ti 单位未锚** (与 `Con_DRVDamper_Freq` 等同属"定标未锚"一族) ⇒ **本页增益绝对值不可引用, 只有"Kp 随桨角线性增大"这个形状来自参数集**。 - 实跑逮到并已修的两个真 bug: ①首版 Cp 用以 λ=8.2 为心的高斯 ⇒ 低 λ 时 Cp≈0, **机组永远自启动不了**(卡 95 rpm); ②变桨 PI **积分饱和** —— 并网发生在远低于额定的转速上, 误差长期为大负值使 integ 卷到 −248 并锁死, 之后在额定附近摆并被湍流推过超速阈。 ★**②的首次"验证通过"是观察窗不够长造成的假通过** —— 短窗会把发散读成稳定; 现改为 6 风速 × 1800s 长窗压力测试。