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-03 與 dc-03b 其實在講同一個風險的兩個把手:
降能量靠電驛與光學偵測,降暴露靠遙控抽拉。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 側。 要跟中壓保護比對,必須先換算到一次側:
950 A 對 25 kA 的 Ik 完全無壓力。真正該檢查的是上游MVFeederUnit 的跳脫曲線容不容得下這 950 A / 0.01 s 的尖峰——那是協調問題,不是耐受容量問題。
對你的模型:這就是 dc-02 那條「拓撲上的容量一律用 kVA 傳遞,安培只在單一節點內部出現」的理由。任何把跨變壓器的安培拿來相加或比大小的邏輯都是 bug,值得用型別層級擋掉(KVA 型別 vs 節點內部的 Amps)。
Q4(應用). 某機房:兩路市電進線、都來自 A 變電所但走不同饋線;中壓側單母線、LSC1。它的冗餘實質上是什麼等級?
答案
三層都不成立,實質接近 N。
- 進線:同變電所 → 只有部分冗餘(防饋線故障,不防變電所故障)。變電所停就兩路一起掉。
- 拓撲:單母線不可維護 → 母線故障或母線保養都是全停。要 main-tie-main 或單母線分段才有 N+1 語意。
- 維護: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_id;position 要配 breaker_closed / earth_switch_closed 成複合狀態。
共同機制有三個:
- 值物件(value object)而非裸量:
Rating(value, condition),比較前強制換算到同一基準(ik_at(duration))。裸float欄位就是在邀請人做非法比較。 - 可查表的規則,而非硬編碼:
(cooling_type, temp_rise_class) → (warn, crit)、R1–R7 互鎖守衛表。查不到要拋錯,不能回傳預設值——沿用預設門檻正是dc-02要問 facility 的那個坑。 - 合法狀態集合要窮舉並驗證: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_factor,UtilitySource 只留 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.units 是 list[MVFeederUnit] 物件內含。dc-02 才剛叮嚀「不要寫死成 parent 物件」,dc-03 就內含了子物件。
收斂建議:加一個 DeviceRegistry(dict[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_at、interlock_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-01與dc-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 切換、發電機帶載,一次性且不可重現。