台以八翁畜牧糞尿集中處理中心。以一年 4,805 運轉小時的實測資料,用變點偵測、事件研究、分位數迴歸、梯度提升樹與自編碼器五種方法交叉檢驗。
ah2e_archive.deif
分析日 2026-08-13
結論先講:機組現在跑 285 kW 不是機器的極限,是 Redis 裡一個被改小的百分比。把它調回去,五種方法都找不到熱力上的反對理由——但「調回去會不會多發電」這題,現有的量測做不到,需要一支沼氣流量計。
現場 Redis 的 gen_on_cond.p98 = 84,控制暫存器當下寫入 87。原始程式碼的預設值是 98。
由 12 個運轉模式反推,DEIF 額定約 336 kW(待銘牌確認),98% 即 329 kW——正好等於 2025-12 至 2026-02 連續兩個月的實際中位數。
PELT 變點偵測在每日中位功率上找到 14 個分段,第二大的階躍就是 2026-02-28,−69 kW。 分鐘級資料把它定位到:02-27 20:50 最後一次以 328 kW 停機,02-28 16:17 以 260 kW 重啟。運轉時數連續、溫度全正常——不是故障,是有人改了設定。
把設定點提高 44 kW,三個保護溫度的變化都在 1 °C 上下,而餘裕有 10–16 °C:
排氣溫更反直覺——功率越高,排氣溫越低。事件研究 β=−0.22 °C/kW(Spearman ρ=−0.75, p=0.001;符號檢定 12/15, p=0.018),梯度提升樹的部分依賴曲線由 274→330 kW 下降 18.6 °C,分位數迴歸的 99 百分位由 683 °C 降到 558 °C。 這是稀薄燃燒燃氣引擎的正常物理:降載是靠關小增壓做到的,空氣少了,過量空氣係數往當量比靠,燃燒溫度就上去。
控制產氣量後,設定點對日發電量的效果是 −8.7 kWh/kW(p=0.52);事件研究是 −18.8(p=0.059)。兩個都不顯著,信賴區間橫跨零。
而且做不出來——功效分析顯示,以現有的日發電量變異(σ=2,337 kWh,中位數 5,167 kWh), 要用日對日的 A/B 試驗偵測 5% 的差異需要 2,566 天。 這就是沼氣流量計與 CH₄ 分析儀的量化理由:有了它們就能直接量「每 Nm³ CH₄ 發幾度電」, 同一晚做兩段階梯就能比較,把七年縮成一週。
| 問題 | 方法 | 為什麼是它 | 結果 |
|---|---|---|---|
| 運轉狀態有幾種? | 高斯混合模型(GMM)+BIC | 設定點是隱藏的離散變數,需要非監督地找出來 | 12 個模式,增壓每階 0.02 bar;r(增壓,功率)=0.955 |
| 什麼時候變的? | PELT 精確變點偵測(L2 成本) | 階躍不是漸變,需要能定位斷點而非平滑趨勢 | 14 段;最大兩次階躍 −93.5 / −69.0 kW |
| 功率影響排氣溫嗎? | 事件研究(前後各 3 天配對差分) | 觀察資料有季節與劣化混淆,差分把慢變因子消掉 | β=−0.217 °C/kW;ρ=−0.75(p=0.001) |
| 同上,非線性驗證 | 梯度提升樹+排列重要性+部分依賴 | 不預設線性,並可看其他 9 個變數積分掉後的邊際 | 測試 R²=0.52;274→330 kW 為 −18.6 °C |
| 安全上界在哪? | 分位數迴歸(τ=0.5/0.95/0.99) | 安全問的是「最壞情況」不是平均,分位數直接建上界 | 機油 99 百分位觸限需 579 kW |
| 還有什麼沒發現的? | 自編碼器(14→8→4→8→14)+孤立森林 | 完全無標籤,讓資料自己說哪幾天說不通 | 兩法名次相關 0.56;共識異常日見 §5 |
| 日發電量會變嗎? | 多元迴歸(HC3)+事件研究+功效分析 | 先問能不能答,再問答案是什麼 | 不顯著;要答需 2,566 天或裝流量計 |
一年份每日中位發電功率,與 PELT 找出的分段
藍線為每日中位總功率;橘線為變點演算法切出的分段水準。2026-02-28 之後再也沒有回到 320 kW 以上。
n = 367 天。分段懲罰項採 BIC 型,σ ≈ 7.1 kW。
把那次階躍放大到分鐘
2026-02-24 → 03-04,每分鐘取樣。02-27 晚間仍是 328 kW / 增壓 1.08 bar;02-28 傍晚重啟後變成 258–260 kW / 0.86 bar。
中間的低點是每日停機。增壓壓力同步由 1.08 掉到 0.86 bar,兩者一起變=設定被改,不是機器出力不足。
一年下來,每個設定點各跑了多久
以增壓壓力辨識設定點。320 kW 以上合計 1,051 小時實績——不是沒跑過。
滑過長條可看該設定點的排氣溫中位數與 99 百分位、缸套水最高值。
這是整份分析最重要的一張圖。橫軸是總功率,縱軸是排氣溫;三條線是分位數迴歸在環境溫 35 °C 下的中位數、95 與 99 百分位。
排氣溫的熱包絡:功率越高,上界越低
分位數迴歸,n = 28,830。99 百分位在 285 kW 時是 683 °C,在 329 kW 時只有 558 °C。
在 35 °C 下,99 百分位觸及 700 °C 所需的功率是 279 kW——也就是說,會撞到排氣溫上限的是現在這個低設定點,不是高設定點。橫軸只畫到 335 kW(資料實際涵蓋範圍);三條分位數各自獨立配適,在右端會出現輕微交叉,那是分位數迴歸的已知現象,不影響 τ=0.99 隨功率下降的結論。
三個保護溫度的餘裕:285 kW vs 329 kW
各為分位數迴歸 τ=0.99 在環境溫 35 °C 下的預測值;灰帶為到保護限值的距離。
兩個點幾乎重疊——把功率拉高 44 kW,保護溫度的 99 百分位變化都在 1 °C 內。
事件研究:15 次設定點切換前後的變化
每點是一次切換,橫軸為設定點變化,縱軸為排氣溫中位數變化(皆為前後各 3 天的差分)。
Spearman ρ = −0.754(p = 0.0012),符號檢定 12/15 反向(p = 0.018)。少數幾點(如 2025-10-10 的 +85 °C)是燃氣品質事件,不是功率造成的,所以 OLS 的信賴區間寬,但無母數檢定穩定顯著。
梯度提升樹的部分依賴:把其他 9 個變數積分掉之後
不預設任何函數形式;特徵刻意去掉增壓壓力,以免與功率共線而稀釋效果。
測試集 R² = 0.521。由 274 kW 到 330 kW,排氣溫下降 18.6 °C,與事件研究與分位數迴歸同號同量級。
把 12 個運轉訊號丟進一個 14→8→4→8→14 的自編碼器,不給任何標籤,看它重建不出來的是哪幾天。孤立森林獨立跑一次當交叉驗證(兩者名次相關 0.56)。
每日重建誤差(對數尺度)
未給任何事件標籤,模型自己把 2026-07-25 標成全年最異常的一天。
尖峰對應的多半是感測器故障日,而不是機械異常——這本身就是結論。
| 異常日 | 模型看到什麼 | 判讀 |
|---|---|---|
| 2026-07-25 | 功因讀到 −0.81,同時 g-kw 出現 65,424 kW 的 16-bit 溢位 | 量測故障 |
| 2026-05-16 / 05-19 | 機組在跑(283–287 kW),但排氣溫中位數 = 0 °C | 感測器掉線 |
| 2025-08-29 → 09-02 | 環境溫讀到 45–47 °C,缸套水最高 90 °C(全年最高) | 高溫事件+測點位置可疑 |
| 2026-01-04 | 一月份環境溫讀到 41 °C,中冷水 61 °C | 環境溫感測器不可信 |
| 2026-02-27 | 降載前最後一個完整運轉日 | 已知事件,模型抓到了 |
| 問題 | 規模 | 影響 |
|---|---|---|
沼氣袋高度 bgop-2 凍結(連續 ≥30 min 完全不變) | 901 h / 654 段 最長 63 h | 發電機自動開停機就是看這個訊號。凍結期間邏輯等於瞎跑 |
| 右排排氣溫掉線讀 0 | 123 h(2.6%) | 唯一的燃燒監控訊號 |
| 沼頂距超出物理範圍(<0 或 >9.9 m) | 1.29% | 同上 |
| 環境溫讀 ≥42 °C | 43 h | 疑為機房內溫度而非戶外,做 ISO 3046 降額校正前要確認測點 |
左排排氣溫 g-ex-gas-p 固定 −273 | 全期 | 感測器未接。V 型引擎只看得到一半 |
| 排氣背壓 | 沒有量 | 原廠與需求文件都列為關鍵限制參數 |
ah2e_archive 三個 collection 都沒有時間索引 | 442 GB 7,247 萬筆 | 每次歷史查詢都是全表掃描,一次要跑十幾分鐘 |
p98 從 98 改成 84。 若沒有正當理由,分階段調回:300 → 310 → 320 kW,每階觀察三個發電夜。320 kW 有 334 小時實績(含高溫 104 小時)。g-air-inlet-p 中位數低於 1.00 bar 而現場沒有刻意降載,就代表機組被限縮了。這種事不該再六個月沒人發現。ah2e_archive 的三個 collection 加時間索引(或用 _id 的 ObjectId 範圍代替時間過濾——本分析就是這樣做的)。337 kW 以上全年只有 19 小時實績,不足以下結論。建議在燃氣品質穩定的同一晚,依 320 → 330 → 340 → 350 kW 各持續 30 分鐘, 中止條件為:缸套水 > 93 °C/機油溫 > 99 °C/中冷水 > 70 °C/任一相電流 > 520 A/瞬時排氣溫 > 700 °C/任何 DEIF 告警位元變 1。