跳轉到

2026-W31 週報:電力鏈的前四個節點

第一份週報。本週產出 4 張卡,全部落在第一輪「電力鏈」的最上游段——從你不擁有的那個節點開始,走到第一個會改變單位的節點為止。

本週卡片

標題 這張卡最關鍵的一個事實
dc-01 市電進線與受電設施 兩條 feed 不等於兩個來源——沒記 substation_id / feeder_id,你的系統會把假冗餘算成綠燈
dc-02 變壓器 %Z 不是這台設備的私事——它決定二次側短路電流,往下每顆斷路器的 kAIC 都被它綁住
dc-03 中壓開關設備 — 額定與保護 kA 沒有時間就不是規格——25 kA 3 s 換算到 1 s 是 43.3 kA,比標示 40 kA 1 s 的那台強
dc-03b LSC 分級與抽出式斷路器互鎖 採購當天勾錯一個分類欄位,十五年改不回來——LSC1 光計畫保養就吃掉四個 9 預算的 55 倍

串起來

一、線的形狀,以及學習順序與拓撲順序的錯位

實際電力流向是:

UtilitySource (dc-01)  ← 你不擁有,責任分界點
MV Switchgear (dc-03)  ← 第一個你能操作的節點,也是第一個「一對多」
        ↓  (每一路 = 一個 MVFeederUnit,dc-03b 講的就是這一格)
Transformer (dc-02)    ← 唯一改變「單位」的節點
LV 主配電盤 (dc-07,未寫)

但你寫卡的順序是 dc-01 → dc-02 → dc-03 → dc-03b——dc-03 是後來插進已經接好的 dc-01 → dc-02 中間的。這不是排程失誤,是這週最有價值的一次意外演練:dc-02 那張卡當時就交代了「upstream_id 請保持成 id 參照,不要寫死成 parent 物件」,理由正是「你會需要在既有兩點之間插入節點而不改動兩端」。三天後就真的發生了。往後 dc-04 ATS 還會再插一次、dc-10 STS 又一次——電力鏈的建模一定是插入式的,不是追加式的。

二、往下傳的東西有三種,方向不一樣

這四張卡真正串起來的,是三條沿著同一條線傳播、但方向與性質都不同的約束:

(1)容量:由上往下,只會縮水。 dc-01 的契約容量是最外層天花板(2,000 kVA × PF 0.95 = 1,900 kW ÷ PUE 1.4 ≈ 1,357 kW IT),dc-02 再乘降載係數(k_factor=None 時 ×0.90),每一層只減不增。天花板在最上游那紙合約,往下每個節點都只是在花它。

(2)故障電流:兩個獨立的源頭,在開關設備這裡碰頭。 這是本週最容易搞混、也最值得記住的一點——中壓側和低壓側的短路電流是兩件事

  • 中壓側電業決定:Isc = MVA_sc ÷ (√3 × V),500 MVA @ 22.8 kV ≈ 12.7 kA → 決定 dc-03 櫃體的 Ik 要多大
  • 低壓側變壓器 %Z 決定:2,279 A ÷ 5.75% ≈ 39.6 kA → 決定 dc-07 以下每顆斷路器的 kAIC

dc-03 站在兩者的交界。往上它被電業的短路容量規格化,往下它什麼也決定不了——因為 dc-02 的 %Z 才是低壓側的統治者。所以「機房越大就要選電流更大的中壓櫃」是錯的:10 MVA @ 22.8 kV 只有 253 A,630 A 匯流排綽綽有餘,綁住選型的是 Ik 與 IAC

(3)維護後果:由下往上決定,卻由上往下擴散。 dc-03b 的 LSC 是掛在單一 functional unit 上的屬性,但它的後果會沿著線往下淹:一格 LSC1 的饋線間隔要保養 → 整盤停 → 掛在下面的 dc-02 變壓器停 → 再往下全黑。一個採購規格欄位,變成機櫃層級的停機小時數。 12 格 × 4 h = 48 h/年,是四個 9 全年預算(52.6 分鐘)的 55 倍。

三、掉一個會怎樣——四種性質完全不同的失效

節點掉了 性質 你的系統該做的事
dc-01 市電 設計內。ATS 切發電機,UPS 撐空窗 告警的不是「市電掉了」,是「市電掉了但備援鏈沒全動」。前者設 critical 只製造雜訊
dc-02 變壓器 災難級但慢。下游全黑、無秒級繞道、交期以週月計 MTTR 極長,在可用性計算裡權重遠大於故障率。備品策略比監控重要
dc-03 匯流排 災難級且廣。整段饋線同時失電 只有 87B 能在 10–30 週波清除,過流協調要 30–60 週波
dc-03b 互鎖失效 延後爆炸。不停電,風險留到下次有人操作 故障域是人與時間,不是電路。年度驗證要「逐條測它真的會擋」,不是看它還在

四、還有一條平行的人身安全線

dc-03dc-03b 其實在講同一個風險的兩個把手:

電弧傷害 ≈ 入射能量 × 暴露時間
             ↑ dc-03      ↑ dc-03b
        (清除時間 0.5s → 0.065s,降到 1/8)(24 次抽拉/年 × 2 分鐘 = 48 人·分鐘)

降能量靠電驛與光學偵測,降暴露靠遙控抽拉。IAC 分級一個都不解決——它只保護櫃外的人、不縮短清除時間,而且測試前提是門關著。

五、四張卡其實是同一個母題的四種變形

這是本週最該帶走的東西——單一欄位無法承載一個事實

這個數字不能脫離什麼
dc-01 feed 的數量不能脫離 substation_id / feeder_id(數量 ≠ 獨立性)
dc-02 銘牌 kVA 不能脫離 40 °C 與正弦波條件
dc-03 kA 不能脫離時間(I²t),IAC 不能脫離標準(IEC vs IEEE)
dc-03b 位置 不能脫離斷路器與接地開關(16 組合裡 6 種物理不可能)

四次都是同一個結論:把它存成單一欄位,就是一個 bug。 這個母題之後還會出現在 UPS runtime(綁放電率)、冰水主機 RT(綁進出水溫)、ASHRAE class(綁溫濕度範圍)。

自我測驗

Q1(事實回憶). 一面 12 格的中壓開關設備,每格斷路器每年保養 4 小時。LSC1 與 LSC2B 各造成幾小時的「全盤」停電?

答案

LSC1 = 48 h/年,LSC2B = 0 h/年。 LSC1 開任一可及隔室就得停掉其他 functional unit → 12 次保養 = 12 次全盤停電 × 4 h = 48 h。LSC2B 匯流排、相鄰間隔、該回路電纜都能維持帶電 → 全盤停電 0 h,每次只影響該饋線自己那 4 h。 48 ÷ 8760 = 0.548% → 可用度上限 99.452%,而四個 9 的全年預算只有 52.6 分鐘。這是計畫性停電,跟故障率無關,可靠度工程救不回來。

Q2(事實回憶). 一座 10 MVA 的機房,中壓側 22.8 kV。匯流排電流是多少?為什麼中壓櫃的選型不是被這個數字綁住?

答案

10,000,000 ÷ (1.732 × 22,800) ≈ 253 A — 630 A 匯流排綽綽有餘。 綁住選型的是 Ik(短時耐受,且必須成對標時間)與 IAC(內部電弧分級),不是 Ir。 陷阱:拿低壓側的直覺套過來會抓錯重點——同樣一台 1500 kVA 變壓器,二次側 380 V 就是 2,279 A,是中壓側的九倍。這正是「安培跨過變壓器就失去可比性」的具體體感。

Q3(應用). 1500 kVA / 22.8 kV → 380 V 的變壓器,dc-02 算出投入湧流約 57,000 A。有人拿這個數字去比對上游中壓櫃的 Ik = 25 kA,說「湧流超過耐受、櫃子選小了」。他錯在哪?正確的數字是多少?

答案

他把低壓側的安培拿去跟中壓側的規格比。 57,000 A 是用二次側額定電流 2,279 A × 25 倍算出來的,它發生在 380 V 側。 要跟中壓保護比對,必須先換算到一次側

一次側額定 I = 1,500,000 ÷ (1.732 × 22,800) ≈ 38 A
湧流 ≈ 38 × 25 ≈ 950 A
950 A 對 25 kA 的 Ik 完全無壓力。真正該檢查的是上游 MVFeederUnit 的跳脫曲線容不容得下這 950 A / 0.01 s 的尖峰——那是協調問題,不是耐受容量問題。 對你的模型:這就是 dc-02 那條「拓撲上的容量一律用 kVA 傳遞,安培只在單一節點內部出現」的理由。任何把跨變壓器的安培拿來相加或比大小的邏輯都是 bug,值得用型別層級擋掉(KVA 型別 vs 節點內部的 Amps)。

Q4(應用). 某機房:兩路市電進線、都來自 A 變電所但走不同饋線;中壓側單母線、LSC1。它的冗餘實質上是什麼等級?

答案

三層都不成立,實質接近 N。

  1. 進線:同變電所 → 只有部分冗餘(防饋線故障,不防變電所故障)。變電所停就兩路一起掉。
  2. 拓撲:單母線不可維護 → 母線故障或母線保養都是全停。要 main-tie-main 或單母線分段才有 N+1 語意。
  3. 維護:LSC1 → 連保養單一饋線都得全盤停電。

這三件事是獨立的削弱,任何一個成立都不夠。 對你的模型:冗餘判定不能是單一 boolean,必須是跨層 AND——feed 獨立性 AND 母線拓撲 AND lsc_category 全部通過才算數。只查其中一層,報表照樣顯示綠燈。

Q5(建模判斷). 本週四張卡各自指向同一個設計結論。指出這個結論,並說明你的 schema 該用什麼共同機制去落實它。

答案

結論:單一欄位無法承載一個事實。數字必須帶著它的量測條件一起存。

四個實例:ik_ka 要配 ik_duration_s(I²t);rated_kva 要配 ambient_design_c / temp_rise_class;feed 數量要配 substation_id / feeder_idposition 要配 breaker_closed / earth_switch_closed 成複合狀態。

共同機制有三個:

  1. 值物件(value object)而非裸量Rating(value, condition),比較前強制換算到同一基準(ik_at(duration))。裸 float 欄位就是在邀請人做非法比較。
  2. 可查表的規則,而非硬編碼(cooling_type, temp_rise_class) → (warn, crit)、R1–R7 互鎖守衛表。查不到要拋錯,不能回傳預設值——沿用預設門檻正是 dc-02 要問 facility 的那個坑。
  3. 合法狀態集合要窮舉並驗證:16 種組合只有 10 種合法。三個獨立欄位 = 資料庫允許 6 種物理不可能的狀態被寫入。所有變更都得過 try_transition() 這個唯一入口。

本週的 model code 連貫性檢視

你現在有四張卡累積下來的 UtilitySource → MVSwitchgear/MVFeederUnit → Transformer。整體方向是對的,但已經出現五處會在 dc-04 之前咬到你的漂移,建議這週末花 20 分鐘收斂:

🔴 1. contract_kva 放錯層級(卡片自己前後矛盾)

dc-01 的「對資料模型的意涵」第 4 點明寫「契約容量是 Site 層級欄位,不是設備層級」,但同一張卡的練習 code 把 contract_kva 放在 UtilitySource 上。

收斂建議:拆成 Site.contract_kva + Site.target_power_factorUtilitySource 只留 substation_id / feeder_id / owned。否則兩路進線各有一個 contract_kva,加總會得到兩倍的假天花板。

🔴 2. 同一條邊存在兩端(會不同步)

MVFeederUnit.downstream_id → Transformer.id,同時 Transformer.upstream_id → MVFeederUnit.id同一條邊被記了兩次,任何一邊改動就會不一致。

收斂建議:邊由下游節點單獨持有(只留 upstream_id),下游清單改成從 registry 反查的 computed property。這條規則在 dc-04 ATS(兩個上游)會立刻被考驗——ATS 需要 upstream_ids: list[str],如果邊還存在兩端,切換時的狀態一致性會非常難維護。

🟡 3. 關係風格混用:id 參照 vs 物件內含

Transformer.upstream_id 是字串參照,但 MVSwitchgear.unitslist[MVFeederUnit] 物件內含dc-02 才剛叮嚀「不要寫死成 parent 物件」,dc-03 就內含了子物件。

收斂建議:加一個 DeviceRegistrydict[str, Node]),全部改 id 參照,units 改成 unit_ids: list[str]trace_upstream() 本來就需要 registry 才寫得出來——現在補比之後補便宜。

🟡 4. 容量欄位命名每張卡都不同

contract_kva(dc-01)/ rated_kva(dc-02)/ 無(dc-03)。任何「沿著拓撲加總容量」的走訪都得對每個型別寫一個 if

收斂建議:定義一個共同介面 capacity_kva property(各類別自己實作),走訪只認這個名字。usable_kw 保留在 UtilitySource 上當報表用,但不要參與拓撲傳遞——dc-02 說得很清楚,拓撲一律傳 kVA。

🟡 5. dc-03b 的卡片結論跑在它自己的骨架前面

卡片的「對資料模型的意涵」要求 position_source / breaker_state_source(各帶時戳與品質旗標,才能表達 TOC/MOC 矛盾)、interlock_verified_atinterlock_defeated,但練習骨架裡一個都沒有,只有裸的 position / breaker_closed

收斂建議:骨架簡化是教學需要,沒問題——但現在就把這三個欄位補上去,因為 TOC/MOC 矛盾偵測是 dc-04 ATS 切換驗證的同一種結構(ATS 也有位置回授與實際電流不一致的問題)。到那時再回頭改會動到已寫好的狀態機。

優先序:1 和 2 先修(會產生錯誤數字),3–5 可以併到 dc-04 那天一起做。

間隔複習

尚無。

本軌跡起始於 2026-07-28,本週(W31)是第一週,兩週前(W29)與四週前(W27)都還沒有卡片。

排程從這裡開始生效:

週次 抽兩週前 抽四週前
W32 尚無 尚無
W33 W31 的卡(dc-01 ~ dc-03b) 尚無
W34 W32 尚無
W35 W33 W31 的卡

也就是說,本週這四張卡會在 W33 與 W35 各被抽考一次。這是整份週報對長期記憶貢獻最大的機制,兩次都不要跳過。

本週該問 facility 的問題

四張卡共提出 13 個問題,去重後選 3 個下週真的拿去問人的。挑選標準是「現在問還來得及改,晚問就固化了」——機房還在施工中,這個窗口不會太久。

Q1 — 問 機電設計單位 / 台電業務窗口

「我們是幾路進線?分別來自哪一個變電所、哪一條饋線?另外,台電給的 22.8 kV 側短路容量是幾 MVA?」

為什麼是這題:一次拿到兩個模型欄位。前半決定 substation_id / feeder_id——沒有它,你的冗餘報表會把假冗餘顯示成綠燈(dc-01 最重要的設計結論)。後半是 dc-03 驗證櫃體 Ik 餘裕的唯一輸入,而且電業擴充變電所會讓這個數字變大,要順帶問「有沒有擴充計畫」。

Q2 — 問 開關設備供應商(經機電設計單位轉)

「中壓櫃每一格的 LSC 等級分別是什麼、隔板是 PM 還是 PI?IAC 是依 IEC 62271-200 還是 IEEE C37.20.7 測的、標到哪幾面、幾 kA 幾秒?型式試驗報告能不能給我一份?」

為什麼是這題這是本週唯一「錯過就十五年改不掉」的題目。 LSC 是採購當天固化的屬性,LSC1 光計畫保養就吃掉四個 9 預算的 55 倍。

問法上的兩個地雷dc-03b 的兩處來源分歧):

  • 不要問「這是不是 metal-clad」。metal-clad 是 IEEE 的構造規範,LSC 是 IEC 的後果分類,IEC 62271-200 已廢除 metal-clad 這組分類。業務會說「metal-clad 就是 LSC2B」,那是換算不過去的。
  • 規格要寫到後綴。只寫「LSC2」,供應商可能交沒有獨立斷路器隔室的櫃子而仍然合規。要寫 LSC2B + PM
  • 跟現場溝通時用「五防」(台灣/CNS 用語),寫規格書時用互鎖條列——IEC 文件裡搜 "five prevention" 是搜不到的。

Q3 — 問 控制系統承包商 / 電驛設定承包商

「主變壓器是乾式還是油浸、溫升等級幾度?現在的溫度告警門檻設幾度、是誰設的?另外,受電盤與中壓櫃的保護電驛是什麼型號,事故記錄(COMTRADE 波形)能不能被外部系統讀走,還是只能到現場插筆電?」

為什麼是這題:這兩件事直接決定你的監控系統做不做得出來,而且都是「沿用預設值」的高風險區。

  • 若買的是 80 °C 溫升機卻沿用 150 °C 機的 180 °C 門檻,那顆告警形同不存在
  • COMTRADE 能否外讀決定你的 pipeline 要不要開第二條 event/blob 路徑dc-01dc-03 都指向這個結論)。這個架構決定越早做越好,事後補很痛。

這週沒選上、但別忘記的

  • 入射能量計算報告dc-03):要對方提出實際計算,不是只交 IAC 型式試驗證明——前者才回答「人站在櫃前會怎樣」。有遙控抽拉裝置嗎?dc-03b
  • 變壓器 %Z 與下游 kAIC 是否覆蓋dc-02):等 Q1 拿到短路容量後一起問,會問得更精準。
  • 投入湧流的跳脫曲線協調dc-02):commissioning 期間會反覆送電,這個設定一定會被測到。

下週

  • 佇列下一張:dc-04 自動切換開關 ATS——它會是第一個有兩個上游的節點,上面第 2、3 點的收斂建議最好在那之前做完。
  • dc-03b 加分題那條 CONNECTED → 分閘 → TRANSIT → TEST → 合接地 → TRANSIT → REMOVED六步序列,跟 ATS 的切換序列是同一種結構。這週把狀態機寫紮實,下週會省很多事。
  • ⚠️ commissioning 隨時可能開始。一旦開始就中斷佇列,全部時間投進去——整廠斷電測試、UPS 切換、發電機帶載,一次性且不可重現。