跳轉到

變壓器(Transformer)

市電進線 進來的是中壓(台灣常見 22.8 kV 或 11.4 kV),伺服器吃的是 220/380 V。變壓器就是中間那一階。它沒有活動零件,卻是電力鏈上唯一會改變「單位」的節點——上游的安培和下游的安培差一個數量級,不能相加。它同時決定下游短路電流有多大,往下所有斷路器的規格都得跟著走。

六格

拓撲位置

上游中壓開關設備(MV switchgear),下游低壓主配電盤(dc-07)→ UPS(dc-08)→ PDU(dc-11)。機房通常不只一階:主變壓器在受電室,PDU 內建變壓器是第二階。台灣若一次降到 380/220 V,PDU 可能不含變壓器——這直接改變模型裡電力鏈的層數

容量單位

kVA(不是 kW)——變壓器只搬視在功率。銘牌值量測於環境 40 °C、正弦波負載,機房兩個條件都不成立,所以實際可用 = 銘牌 × 降載係數

冗餘表達

N+1 不是把負載除以 2,兩台各自都要能單獨扛全載。2N 則是兩條獨立路徑各吃自己那條的全載。

遙測介面

乾式與油浸式的點位完全不同,這對建模很重要:

型式 主要點位 告警門檻
乾式 dry 繞組溫度(熱電偶/NC 溫度開關)、風扇啟停 180–200 °C
油浸 liquid 頂層油溫、繞組溫度指示器 WTI、油位、壓力釋放 60–90 °C(油溫)

共通點位是二次側電壓/電流/kVA/負載率,協定多為 Modbus RTU/TCP 加乾接點。油浸式另有溶解氣體分析 DGA(抽油樣化驗,絕緣劣化早期指標)——那是人工週期性資料,不是即時串流,你的 pipeline 要有第三種資料型態容納它(時序、事件、人工採樣)。

故障域

它掉了下游整段全黑,沒有秒級自動繞道。UPS 撐住 IT 幾分鐘,但冷卻多半不在 UPS 上。更關鍵的是交期以週甚至月計——MTTR 極長,在可用性計算裡的權重遠大於故障率。

維護特性

紅外線熱像(帶電可做)、清潔與鎖固扭力(需停電)、油浸式加驗油。NEMA 提到機房不能停,維護時線路常保持帶電——「維護中」不等於「已隔離」,兩個狀態要分開。

關鍵數字與計算

一、kVA 換安培

三相:I = kVA × 1000 ÷ (√3 × V)

實例:1500 kVA、二次側 380 V(台灣三相四線)

I = 1,500,000 ÷ (1.732 × 380) ≈ 2,279 A

⚠️ 地區差異:英文資料幾乎都算 480 V,同樣 1500 kVA 只有 1,804 A。電流差 21 %,匯流排與電纜規格完全不同,美規數字不能照抄。台灣的低壓側常見是三相四線 380/220 V,也有 220/110 V 的場合,設計前一定要確認自己這座是哪一種。

二、阻抗 %Z 決定下游短路電流

可用短路電流 ≈ 二次側額定電流 ÷ %Z(小數)

多數配電變壓器 %Z 落在 2–8 %(NEMA 引 10 CFR 431.192)。取 5.75 %:

2,279 ÷ 0.0575 ≈ 39,600 A ≈ 39.6 kA

這就是下游斷路器 kAIC 的最低門檻。 麻煩的是:機房規格書上那些「聽起來都是好事」的要求,每一項都會壓低 %Z、把短路電流推高——

規格選擇 對 %Z 的影響
銅繞組(而非鋁) 降低
低溫升(80 °C 而非 150 °C) 降低
高 K-factor 降低
實際負載率低(機房常態) 降低

也就是說,你把變壓器規格開得越漂亮,下游斷路器就得買越貴的。這是一個真實的系統級取捨,不是這台設備的私事。

三、溫升等級與環境溫度

銘牌容量的前提是環境 40 °C。溫升等級是「滿載時繞組比環境高幾度」:

型式 標準溫升等級
乾式 dry-type 80 / 115 / 150 °C
油浸式 liquid-filled 55 / 65 °C

低溫升機同容量下體積大、貴、但壽命餘裕高,且常被用在受限空間(電氣室、地下電室、有空調的房間)。實務上的意義:

150 °C 溫升 + 40 °C 環境 = 繞組可到 190 °C
80 °C 溫升 + 40 °C 環境 = 繞組只到 120 °C

這也解釋了為什麼乾式的告警門檻在 180–200 °C——那是對照 150 °C 溫升機設的。如果你買的是 80 °C 溫升機卻沿用 180 °C 門檻,那顆告警形同不存在。⚠️ 這是最容易被沿用預設值害到的地方。

四、降載後的可用容量

最低銘牌 kVA = 需求 kVA ÷ (k_溫度 × k_海拔 × k_諧波)

實例:需求 972 kVA、諧波係數 0.90、其餘為 1

972 ÷ 0.90 = 1,080 kVA

選 1250 kVA。注意不能選 1000 kVA(1000 × 0.9 = 900 < 972)。環境超過 40 °C 或海拔超過 1000 m 時還要再各乘一個係數。

「算出來卡在兩個標準規格之間」很常見,這也是資料模型要同時存銘牌值與降載值的原因:報表要顯示哪一個,取決於問題是「我買了多少」還是「我能用多少」。

五、空載損失是永遠在燒的

損失分兩塊:空載損失(鐵損,只要通電就有,與負載完全無關)與負載損失(銅損,正比於 I²)。

示意數字(實際請查銘牌):1500 kVA 乾式,空載 3.5 kW、滿載銅損 15 kW。35 % 負載時:

總損失 = 3.5 + 15 × 0.35² ≈ 3.5 + 1.84 ≈ 5.3 kW

三件事從這個算式掉出來:

  1. 這 5.3 kW 是設施耗電但不是 IT 耗電,全進 PUE 分子
  2. 2N 架構下那台「閒置」的變壓器照樣在燒 3.5 kW——冗餘不是免費的,而且是 24×7 的固定成本
  3. DOE 2016 效率標準的量測點是低壓乾式 35 % 負載、油浸式 50 %(不是滿載),因為設備長期在部分負載運轉;500–1500 kVA 乾式的效率甜區約在 30–50 %

第 3 點反過來是容量規劃的提醒:變壓器不是「用越滿越划算」——負載率 90 % 時效率反而比 40 % 差,還逼你必須指定 K-factor。

六、投入湧流與斷路器協調

變壓器通電瞬間鐵芯殘磁會造成電流尖峰,NEMA 給的量級是:

25 × 額定電流,持續 0.01 秒
或 12 × 額定電流,持續 0.1 秒

以上面那台 2,279 A 算,湧流可到 約 57,000 A(瞬間)。斷路器/熔絲的跳脫曲線必須容得下這個尖峰,否則一送電就跳。

這在機房比別的場合重要得多,因為機房的變壓器會反覆斷電再送電:維護、commissioning、市電中斷、切換開關動作。一般廠房可能一年一次,機房可能一個月好幾次。每一次都是一次考驗協調設定的機會。

常見誤解

  1. 以為容量夠就等於能供這麼多負載,但實際上銘牌是 40 °C 正弦波條件下的值。機房負載幾乎全非線性(UPS 整流器、伺服器電源),要嘛降載 0.85–0.90,要嘛買 K-factor 機。直接拿銘牌規劃機櫃數會超載。

  2. 以為 N+1 是兩台各扛一半,但實際上每台都必須能單獨扛全載。N+1 買的是「可以拆一台下來」,不是「兩台分工」。這個誤解會讓容量計算錯一倍。

  3. 以為 %Z 是效率指標、越低越好,但實際上它同時決定二次側短路電流。%Z 減半、短路電流加倍,下游每顆斷路器的 kAIC 要求跟著上升。它是系統參數,不是這台設備的私事。

來源分歧:諧波到底有多嚴重

  • NEMA US 80017-2023(產業標準文件):諧波對變壓器壽命「影響很小」,真正決定壽命的是絕緣溫度,而溫度主要由負載率驅動。只有負載達 80 % 以上才需指定 K4 / K9 / K13。
  • 廠商與顧問文獻(Eaton、CalcPanel 等):機房負載本質非線性(UPS 六脈整流輸入、伺服器電源),一律建議 K-13 / K-20,或對標準機施加 0.85–0.90 降載。K-factor 機的做法是用多股個別絕緣細導體壓低渦流損、升級鐵芯材料、並加大中性線匯流排以承受三倍調和波(3rd / 9th / 15th 同相疊加在中性線上)。

兩邊其實不完全矛盾——分歧點在「你的變壓器會被操到幾分滿」,那是設計決策不是物理事實。差價不小,所以這是該問設計單位的題目。真要精算,ANSI/IEEE C57.110 有依實際諧波組成算降載係數的方法。

對資料模型的意涵

  1. 它是電力鏈上唯一的單位轉換節點,兩側都要顯性表達primary_voltage / secondary_voltage / rated_kva / impedance_pct拓撲上的容量一律用 kVA 傳遞,不要用安培——安培跨過變壓器就失去可比性,任何把上下游安培相加的邏輯都是 bug。這條約束值得寫成型別層級的保護(例如容量欄位一律用同一個 KVA 型別,安培只在單一節點內部出現)。

  2. 銘牌值與可用值分開,可用值一律用算的。rated_kvatemp_rise_classk_factorambient_design_c,把 usable_kva 做成 computed property。降載後的數字硬寫成欄位,日後改一個係數就得全表回填——這是 topic-01(銘牌 vs 降載 vs 實測)的第一次實戰。

  3. 告警門檻屬於設備型式,不能是全域常數。 油浸式 60–90 °C 就要叫,乾式 180–200 °C 才叫;而乾式的門檻還要再依溫升等級調整(80 °C 溫升機不該沿用 150 °C 機的門檻)。所以門檻應該是一張可查表的 (cooling_type, temp_rise_class) → (warning, critical),不是硬編碼。同一條規則套錯型式,一種永遠不觸發、一種永遠在叫。

  4. impedance_pct 是跨設備約束的來源,不是裝飾欄位。 它算出的短路電流要能拿去驗證下游斷路器的 kaic_rating。這是模型第一次出現「A 的欄位決定 B 的合法性」——值得做成一條可執行的驗證規則,而不是留在單線圖的註解裡。同理,湧流倍數要能拿去驗證上游保護的跳脫曲線。

  5. no_load_loss_kw 應該必填,否則備援設備被當成 0 耗電,PUE 與容量報表都會偏樂觀。它讓「閒置」在模型裡有非零成本——這觀念之後在 UPS、冰水主機都會重複。另外 DGA 是第三種資料型態:時序、事件之外還有人工週期性採樣(有採樣日、送驗單位、報告檔案,沒有固定間隔),塞進 time-series DB 會很難用,早點決定它住哪裡。

該問 facility 的問題

  1. 主變壓器幾台、各多少 kVA、%Z 是多少?照這個算出來的二次側短路電流是多少,下游斷路器的 kAIC 有沒有覆蓋?
  2. 乾式還是油浸式、溫升等級幾度?溫度告警門檻現在設幾度、是誰設的?有沒有可能沿用了 150 °C 溫升機的預設值?
  3. 有沒有指定 K-factor?如果沒有,設計負載率預估落在多少?(接上面的來源分歧)
  4. 斷路器/熔絲的跳脫曲線有沒有針對投入湧流做過協調?commissioning 期間會反覆送電,這個設定會被測到。

動手練習(30–40 分鐘)

延續 dc-01 的 UtilitySource,往下游接一個節點。

任務:實作 Transformer,並寫出「短路電流 vs 下游斷路器」的驗證規則。

from dataclasses import dataclass

# 門檻查表:不要硬編碼在告警邏輯裡
TEMP_THRESHOLDS = {
    ("dry", 150): (180.0, 200.0),
    ("dry", 115): (150.0, 170.0),   # 自行推估,實際依銘牌
    ("dry", 80):  (115.0, 135.0),
    ("liquid", 65): (85.0, 95.0),
    ("liquid", 55): (75.0, 85.0),
}

@dataclass
class Transformer:
    id: str
    upstream_id: str              # 接到 UtilitySource.id,之後會改指向 MV switchgear
    rated_kva: float
    primary_voltage: float        # 22800
    secondary_voltage: float      # 380
    impedance_pct: float          # 5.75
    cooling_type: str             # "dry" | "liquid"
    temp_rise_class: int          # 150 | 115 | 80 | 65 | 55
    k_factor: int | None = None   # None = 標準型,需諧波降載
    no_load_loss_kw: float = 0.0
    full_load_loss_kw: float = 0.0

    @property
    def secondary_fla(self) -> float:
        """二次側額定電流"""
        ...  # TODO

    @property
    def available_fault_current(self) -> float:
        ...  # TODO

    @property
    def inrush_peak_a(self) -> float:
        """25 倍額定,0.01 秒"""
        ...  # TODO

    @property
    def usable_kva(self) -> float:
        """k_factor 為 None 時套 0.90 諧波降載"""
        ...  # TODO

    @property
    def temp_alarm_threshold(self) -> tuple[float, float]:
        """查 TEMP_THRESHOLDS,查不到要爆炸而不是回傳預設值"""
        ...  # TODO

    def loss_at_load_kw(self, load_ratio: float) -> float:
        """空載損失 + 銅損 × load_ratio²"""
        ...  # TODO


def validate_downstream_breaker(tx: Transformer, breaker_kaic: float) -> tuple[bool, str]:
    """遮斷容量夠不夠?回傳 (是否合格, 理由)"""
    ...  # TODO

驗收標準——用 1500 kVA / 380 V / 5.75 % / dry / 150 °C 溫升 / 空載 3.5 kW / 滿載銅損 15 kW:

檢查項 期望值
secondary_fla ≈ 2279 A
available_fault_current ≈ 39.6 kA
inrush_peak_a ≈ 57,000 A
usable_kva(k_factor=None) 1350 kVA
temp_alarm_threshold (180, 200)
同一台改成 temp_rise_class=80 (115, 135),不是 (180, 200)
loss_at_load_kw(0.35) ≈ 5.3 kW
loss_at_load_kw(0.0) 3.5 kW(閒置也在燒)
validate_downstream_breaker(tx, 35_000) 不合格
validate_downstream_breaker(tx, 50_000) 合格

加分題一:寫 check_n_plus_one(load_kva, transformers),驗證「每台都能單獨扛全載」——不是把負載除以台數。用兩台 1250 kVA 扛 972 kVA 需求(含 0.9 降載)測試,看你的函式會不會誤判。

加分題二:讓 temp_alarm_threshold 在查表失敗時丟例外,然後刻意建一台 ("dry", 100) 的變壓器。這個「查不到就爆炸」的設計比回傳預設值重要得多——沿用預設門檻正是本卡「該問 facility」第 2 題在追的那個坑。

這段 code 不會丟掉。你的模型現在有兩個節點:UtilitySource → Transformerdc-03MV switchgear)會插進它們中間,所以 upstream_id 請保持成 id 參照,不要寫死成 parent 物件——你會需要在既有兩點之間插入節點而不改動兩端

自我檢核

Q1. 1000 kVA、二次側 380 V、%Z = 4 %。二次側額定電流與可用短路電流各是多少?

答案

I = 1,000,000 ÷ (1.732 × 380) ≈ 1,519 A 短路電流 = 1,519 ÷ 0.04 ≈ 38,000 A = 38 kA 這台比 1500 kVA / 5.75 % 那台容量小、短路電流卻差不多——因為 %Z 更低。容量大小不能拿來推短路電流,一定要看 %Z。

Q2. N+1 的兩台變壓器,總負載 800 kVA,每台銘牌至少要多少?

答案

每台都要 ≥ 800 kVA(再加降載與裕度),不是 400 kVA。任一台退出時另一台要獨力扛全載。除以台數是這題最常見的錯法,會讓整套容量規劃錯一倍。

Q3. 「乾式告警 180–200 °C、油浸式 60–90 °C,而且乾式還要看溫升等級」這件事,會讓你的資料模型長出什麼?

答案

至少四樣:cooling_typetemp_rise_class 兩個分類欄位、一張 (型式, 溫升等級) → (warning, critical)查表、以及查不到時要拋錯而非回傳預設值的規則。 延伸:這是「告警門檻屬於設備型式而非系統」的第一個例子。ASHRAE 熱環境 class(topic-08)、UPS 電池溫度、冰水機出水溫度都會重複同一結構——現在把它做成可查表的設計,之後就不用重寫。


下一張dc-03 中壓開關設備(已完成)→ 接著 dc-03b LSC 分級與互鎖