市電進線與受電設施(Utility Feed / Service Entrance)¶
電力進入機房的第一站。電業(台灣是台電)的電纜拉進廠區,經受電設施進來——這台開關設備提供主過流保護、保護電驛、計費電錶,並且可以隔離以便維護。
它最重要的身分不是「一台設備」,而是責任分界點:從它之後,可用性由你自己負責;在它之前,你只能祈禱。這也讓它成為你整個電力資料模型裡唯一一個你不擁有的節點。
六格¶
拓撲位置¶
上游:電業變電所(你不擁有、看不到、管不到)
下游:變壓器(dc-02)→ 中壓開關設備(dc-03)→ 低壓主配電盤(dc-07)
這是電力鏈的根節點。之後所有的容量計算、故障域分析,都是從這裡往下展開的樹。
容量單位¶
契約容量(kW 或 kVA)與受電電壓(kV)。
契約容量是你跟電業簽的用電上限——它是整座機房容量規劃的最外層天花板。所有下游設備加起來能拉多少電,最後都撞在這個數字上。
⚠️ 地區差異,不要照抄英文資料:查到的資料多寫美國情境(進線 12–34.5 kV,降壓到 480 V)。台灣的供電電壓等級與契約制度不同,必須問你們自己的受電電壓與契約容量,不能沿用美規數字。
冗餘表達¶
雙迴路進線(dual utility feed)。Tier III 級的要求是兩路獨立進線、從不同方向進廠、接到主開關設備的不同區段,使得一路故障不影響另一路。
但這裡有個陷阱(見下方「常見誤解」):兩條 feed 不等於兩個獨立來源。
遙測介面¶
由受電盤的保護電驛與電錶提供。常見協定 Modbus TCP;中壓保護電驛也可能走 IEC 61850(變電所自動化的標準)。
| 點位 | 型態 | 用途 |
|---|---|---|
| 三相電壓 / 電流 | 類比,秒~分級 | 供電品質、不平衡偵測 |
| 實功 kW / 視在功率 kVA | 類比 | 需量管理、PUE 分子 |
| 功率因數 | 類比 | 是否會被電業罰款 |
| 頻率 | 類比 | 電網穩定度 |
| 最高需量 | 累積值,月結 | 契約容量是否超約 |
| 事故記錄 / 波形擷取 | 事件觸發,單筆大 | 事後分析「那一下到底發生什麼」 |
| 斷路器開閉狀態 | 數位 | 拓撲即時狀態 |
故障域¶
市電全失 → 觸發 ATS(dc-04)切換到發電機(dc-05),中間的空窗由 UPS(dc-08)撐住。
關鍵認知:市電掉是設計內的正常情境,不是災難。 真正的災難是「市電掉了而且備援鏈沒有全部動起來」。所以這一格真正要記住的不是「市電會掉」,而是「市電掉了之後,那條備援鏈的每一環有沒有動」——這決定了你的告警設計要監控的是市電本身,還是切換動作的成功與否。
維護特性¶
電業側的計畫性停電通常事前通知,你有時間準備(提前起發電機、暫停高風險作業)。
你自己的受電盤保養則需要斷電或轉到另一路——這是雙迴路進線除了防故障之外的第二個理由,也是 concurrent maintainability(可同時維護)這個概念在電力鏈最上游的第一次出現。
關鍵數字與計算¶
一、為什麼電業要用高壓送電
輸電損失與電流平方成正比:
在傳輸功率 P = V × I 固定的前提下,把電壓提高 10 倍,電流降為 1/10,損失降為 1/100。這就是為什麼長距離用幾十甚至幾百 kV,到你家門口才降壓。
二、kVA 與 kW 的差別(這個一定要搞懂)
實例:契約容量 2,000 kVA,功率因數 0.95
也就是說,你簽了 2,000 kVA 不代表能用 2,000 kW。少掉的 100 kW 不是被誰偷走,是無效功率在電網與設備之間來回震盪。功率因數太低電業會罰款,這是機房要裝功因改善設備的原因。
三、契約容量往下推
假設可用 1,900 kW,PUE 設計值 1.4:
若單櫃設計 8 kW:
這個數字就是你整座機房的容量天花板,而它完全由最上游那紙契約決定。往下每一層(變壓器、UPS、PDU、rack PDU)只會讓這個數字更小,不會更大。
常見誤解¶
-
以為雙迴路進線就是雙來源,但實際上兩路可能來自同一個變電所(甚至同一條饋線)。變電所故障時兩路一起掉——那是假冗餘。真正的獨立要求來自不同變電所,至少不同饋線。
-
以為市電中斷是要極力避免的異常,但實際上它是設計內的預期情境,整條備援鏈就是為它存在的。你的系統該告警的不是「市電掉了」,而是「市電掉了但發電機沒起來」或「切換超過預期秒數」。 把前者設成 critical 只會製造雜訊。
-
以為契約容量就是可用容量,但實際上要先乘功率因數(變成 kW),再除以 PUE(扣掉冷卻與損耗),才是真正給 IT 用的電。中間至少縮水三成。
對資料模型的意涵¶
-
根節點要能表達「不受你控制」。
UtilitySource需要owned: false之類的旗標。你的可用性計算從這裡起算,但它的 MTBF 你拿不到,只能引用電業公佈的統計值——這種「已知的未知」應該顯性存在於模型裡,而不是假裝它跟其他設備一樣可計算。 -
獨立性必須是可查詢的屬性,不是註解。 光記「有兩條 feed」不夠,要記
substation_id與feeder_id。否則你的系統會把假冗餘算成真冗餘,然後在報表上顯示綠燈。 這是這張卡最重要的一個設計結論。 -
事故記錄是 time-series 以外的第二種資料型態。 保護電驛的波形擷取是事件觸發、非等間隔、單筆很大(可能幾百 KB)。你的 pipeline 不能只設計一條 time-series 路徑,還要有一條 event/blob 路徑。這個決定越早做越好,事後補很痛。
-
契約容量是
Site層級欄位,不是設備層級。 而且它應該同時存 kVA 與目標功率因數,讓系統能自己算出 kW 上限,而不是把換算後的數字硬寫進去。
該問 facility 的問題¶
- 我們是幾路進線?分別來自哪個變電所、哪條饋線?(這題決定我們是真冗餘還是假冗餘,也是這三題裡最重要的)
- 受電電壓與契約容量各是多少?超約的罰則怎麼算?功率因數的罰則門檻在哪?
- 受電盤的保護電驛是什麼廠牌型號?它的事故記錄能不能被外部系統讀走,還是只能到現場插筆電?
動手練習(30–40 分鐘)¶
NetBox 的電力模型從 PowerPanel 才開始——它假設上游不歸你管。但你是自建自營,這一段得自己補。今天就補最上面那一節。
任務:寫出 UtilitySource 與 UtilityFeed 的 model,並實作一個「真冗餘判定」函式。
from dataclasses import dataclass
@dataclass
class UtilitySource:
id: str
substation_id: str # 來自哪個變電所
feeder_id: str # 哪一條饋線
contract_kva: float
target_power_factor: float
owned: bool = False # 永遠是 False,顯性標記「不受你控制」
@property
def usable_kw(self) -> float:
return self.contract_kva * self.target_power_factor
def is_truly_redundant(feeds: list[UtilitySource]) -> tuple[bool, str]:
"""數量 ≠ 獨立性。回傳 (是否真冗餘, 理由)"""
# TODO: 你來實作
...
驗收標準——你的函式要能正確判定這三組輸入:
| 輸入 | 期望結果 |
|---|---|
| 兩條 feed,不同變電所 | 真冗餘 |
| 兩條 feed,同變電所、不同饋線 | 部分冗餘(防饋線故障,不防變電所故障) |
| 兩條 feed,同變電所、同饋線 | 假冗餘,應該告警 |
加分題:讓 usable_kw 能再吃一個 pue 參數,算出 IT 端實際可用瓦數,並用本卡「關鍵數字與計算」第三段的數字驗證你算出 1,357 kW。
這段 code 不會丟掉——它是你未來真實 schema 的第一塊。之後每張卡的練習會往下接(變壓器接在
UtilitySource下游、UPS 再接下去),六週後你會有一份自己長出來的電力鏈模型。
自我檢核¶
Q1. 為什麼電業要用高壓長距離輸電?用一句話加一個公式回答。
答案
因為輸電損失 P_loss = I² × R 與電流平方成正比。傳輸功率固定時,電壓提高 10 倍則電流降為 1/10,損失降為 1/100。
Q2. 契約容量 3,000 kVA、功率因數 0.9、PUE 1.5,IT 端實際可用多少 kW?
答案
3,000 × 0.9 = 2,700 kW(可用實功)
2,700 ÷ 1.5 = 1,800 kW(IT 可用)
原始數字縮水了 40%。 這就是為什麼不能拿契約容量直接規劃機櫃數。
Q3. 你的資料模型要記什麼欄位,才能分辨「真雙迴路」與「假雙迴路」?
答案
每條 feed 都要記 substation_id 與 feeder_id。冗餘判定不能只看 feed 的數量,要看這兩個欄位是否相異。
延伸:同樣的邏輯之後會重複出現在 UPS(並機 vs 獨立)、冷卻(同一台冰水主機供的兩台 CRAH)——「數量 ≠ 獨立性」是整個冗餘建模的核心約束。
下一張:dc-02 變壓器