JOVANA
Library Glossary Getting Started Three Levels Fields How it works Mission
Join the mission
All guides

降壓、升壓與降升壓:三大核心轉換器

三種拓樸,每種一顆電感。有了它們,你幾乎能把任何一個直流電壓變成另一個——降下來、升上去、或翻成負的——而且幾乎不浪費任何熱。這是每一個筆電充電器、手機、電動車、資料中心跳動的核心。我們會從同一個概念推導出全部三種:電感討厭突然的變化,所以就讓它把切碎的東西平均掉。

為什麼電感是那個秘密配方

上一個階梯你學會了用 PWM 去切碎一個電壓:每個週期讓開關導通一段比例 D 的時間,其餘時間關掉。那個方波的平均值恰好是 D · Vin——一個你能用軟體去轉的旋鈕。但微控制器沒辦法靠一個每秒在 12 V 和 0 V 之間猛烈跳動十萬次的方波運作。我們需要把它平均成平滑的直流。你大可以直接在切碎器兩端放一顆大電容,但開關會把巨大的電流尖峰灌進去,然後燒掉。優雅的解法是先在路徑上放一顆電感

電感的定義性定律是 V = L · (dI/dt):跨在它兩端的電壓決定它的電流*能多快*變化,從不決定電流*有多大*。流過電感的電流就像一個沉重飛輪的轉速——你能讓它轉快或轉慢,但只能緩慢地來。所以當我們的開關把一個電壓拍到電感上時,電流不會跳;它會斜升,是一條斜率為 (V/L) 的直線。把電壓反向,斜坡就往另一邊傾。電感悄悄地把一個猛烈的*電壓*方波,變成了一個溫和的*電流*三角波。那個三角波,再由一顆小小的輸出電容平滑掉,就是你乾淨的直流——而且幾乎沒有任何能量被燒掉,因為理想的開關和理想的電感都不耗散功率。

降壓:把電壓降下來,Vout = D·Vin

降壓轉換器拿一個高電壓,做出一個低電壓。想像一顆電感,輸入側有一個開關,開關節點下方掛著一顆二極體。一共只有兩種狀態,它們每個週期輪流上場。

  1. 開關導通(導通時間 D·T)。開關把 Vin 接到電感上。跨在電感上的電壓是 (Vin − Vout),為正,所以電感電流以 (Vin − Vout)/L 的斜率斜升。能量湧入電感的磁場,再流向負載和輸出電容。二極體被逆向偏壓——它只是旁觀。
  2. 開關關閉(關閉時間 (1−D)·T)。開關打開。但電感的電流沒辦法瞬間停下——它有慣性。為了繼續流動,它把開關節點拉到地*以下*,直到二極體導通、提供一條回流路徑。此時電感兩端是 −Vout,所以它的電流以 −Vout/L 的斜率斜降,仍持續餵著負載。這就是二極體在續流

現在來看那個致命的論證。在穩態下,電感電流每個週期必須回到它一開始的位置——否則它會無限增長,元件就會炸掉。這意味著它在導通時間獲得的電流,必須等於它在關閉時間失去的電流。這就是伏秒平衡:一個週期內跨在電感上的平均電壓為零。把它寫出來,整個轉換器就在一行裡掉出來:

BUCK CONVERTER — step-down

        Switch          L
  Vin --o/ o----+-----[ inductor ]----+---- Vout
                |                      |
              [diode]              [ Cout ]   --> load
                |                      |
               GND --------------------+----- GND

  ON  (D*T)   : node = Vin   ->  VL = Vin - Vout   (current ramps UP)
  OFF ((1-D)T): node ~ 0     ->  VL = -Vout        (current ramps DOWN)

  Volt-second balance (avg VL = 0):
        (Vin - Vout) * D  +  (-Vout) * (1 - D)  =  0
         Vin*D - Vout*D - Vout + Vout*D         =  0
         Vin*D = Vout
  ============================================
        Vout = D * Vin        (D between 0 and 1, so Vout <= Vin)
  ============================================

  Inductor-current waveform (continuous conduction):

   I |        /\        /\        /\
     |      /    \    /    \    /          <- triangle ripple
     |    /        \/        \/    ... around average = I_load
     +----------------------------------> t
        |<-on->|<-off->|
兩種狀態,一顆電感。伏秒平衡給出 Vout = D·Vin——純粹用軟體去控制電壓。

升壓:把電壓升上去,Vout = Vin/(1−D)

一個電路怎麼能在沒有變壓器的情況下,做出比它的供電*更高*的電壓?這個把戲比它看起來更古老——它就是線圈點燃火星塞的方法。升壓轉換器把同樣三個零件重新排列:現在電感*橫跨*在輸入端,開關把它的遠端短路到地。

  1. 開關導通。開關把電感的遠端接地,於是整個 Vin 跨在電感上。電流猛烈斜升(斜率 Vin/L),電感儲存能量——它正在把飛輪上緊。二極體被逆向偏壓,所以此刻只靠輸出電容撐著負載。還沒有東西到達輸出。
  2. 開關關閉。開關打開,電感的電流無處可去,只能穿過二極體進入輸出。為了維持電流流動,電感翻轉自己的電壓,並*把它疊加在 Vin 之上*——兩個電壓串聯堆起來。於是輸出看到的是 Vin 加上電感變出來的那一份,這就是 Vout 爬到 Vin 之上的方法。

再次套用伏秒平衡。導通時間電感看到 Vin;關閉時間它看到 (Vin − Vout),為負。把平均設為零,升壓定律就現身了——而且要留意它的獠牙:當 D 趨近 1 時,Vout 朝無窮大飆去。

BOOST CONVERTER — step-up

          L                  diode
  Vin --[ inductor ]---+------|>|------+---- Vout (> Vin)
                       |               |
                    Switch          [ Cout ]  --> load
                       o               |
                       |               |
                      GND -------------+----- GND

  ON  (D*T)   : far end = 0    ->  VL = Vin           (store energy)
  OFF ((1-D)T): diode conducts ->  VL = Vin - Vout    (dump to output)

  Volt-second balance:
        Vin * D  +  (Vin - Vout) * (1 - D)  =  0
        Vin - Vout + Vout*D                 =  0
        Vin = Vout * (1 - D)
  ============================================
        Vout = Vin / (1 - D)      (D->1 gives Vout->infinity)
  ============================================

   D=0.0 -> Vout = Vin       (1x)
   D=0.5 -> Vout = 2 * Vin    (2x)
   D=0.8 -> Vout = 5 * Vin    (5x)
   D=0.9 -> Vout = 10 * Vin   (10x !!)
電感在導通時間儲能,再於關閉時間與 Vin 串聯傾倒。Vout = Vin/(1−D)。

降升壓:兩個方向都行,輸出翻轉

有時候你沒辦法保證自己究竟需要升還是降。一顆鋰電池在放電時會從 4.2 V 垮到 3.0 V——但你的電路想要穩定的 3.3 V,這個值*低於*滿電、又*高於*空電。降壓到不了它輸入之上,升壓也到不了輸入之下。你需要一個兩者都能做的拓樸:降升壓轉換器

經典的反相降升壓再一次把零件重新接線:開關在高側,電感接地,二極體指向「錯誤」的方向、通往一個負的輸出。導通時間,開關把 Vin 整個壓在電感上(儲能、輸出隔離,和升壓的充電相完全一樣)。關閉時間,電感穿過二極體續流進輸出電容——但由於它的接線方式,它把電流*推出*輸出節點,於是輸出變成負的。伏秒平衡給出一條既非純降壓也非純升壓、而是兩者混血的定律:

INVERTING BUCK-BOOST

        Switch              diode
  Vin --o/ o----+------+      |<|----+---- Vout  (NEGATIVE!)
                |      |             |
              [ L ]  (node)      [ Cout ]  --> load
                |                    |
               GND ------------------+----- GND

  ON  : VL = Vin            (store; output isolated)
  OFF : VL = Vout           (inductor freewheels to output)

  Volt-second balance:
        Vin * D  +  Vout * (1 - D)  =  0
  ============================================
        Vout = -Vin * D / (1 - D)
  ============================================

   D < 0.5  ->  |Vout| < Vin   (acting like a BUCK)
   D = 0.5  ->  |Vout| = Vin    (unity, inverted)
   D > 0.5  ->  |Vout| > Vin   (acting like a BOOST)

  One knob D spans the whole range — below, at, and above Vin.
D=0.5 以下它降壓,以上它升壓;輸出大小平滑地跨過 Vin——但是反相的。

實作範例:5 V → 3.3 V 的降壓

我們來實際算一個。你有一條 5 V 的 USB 電軌,需要在 500 kHz 的切換頻率下給微控制器 3.3 V、1 A。兩個問題決定一切:工作週期是多少、電感要用多大?工作週期幾乎是一行就解決;電感則由你願意容忍多少紋波——電流的晃動——來決定。

WORKED EXAMPLE: 5 V -> 3.3 V buck, Iout = 1 A, fsw = 500 kHz

  STEP 1 — Duty cycle (ideal)
     Vout = D * Vin   ->   D = Vout / Vin = 3.3 / 5.0 = 0.66
     So the switch is ON 66% of each 2 us period:
         T   = 1 / 500 kHz = 2.0 us
         Ton = D * T       = 1.32 us
         Toff= (1-D) * T   = 0.68 us

  STEP 2 — Pick an inductor for a target ripple
     Rule of thumb: ripple current dIL ~ 30% of Iout = 0.3 A
     During OFF-time the inductor sees -Vout and ramps DOWN:
         dIL = (Vout / L) * Toff
     Solve for L:
         L = (Vout * Toff) / dIL
           = (3.3 V * 0.68 us) / 0.3 A
           = 2.244 uV.s / 0.3 A
           ~ 7.5 uH        ->  pick a standard 6.8 or 10 uH part

  STEP 3 — Sanity-check the ripple with a 10 uH part
         dIL = (Vout / L) * Toff = (3.3 / 10e-6) * 0.68e-6
             = 0.22 A   (about 22% of 1 A -- comfortable)
     Inductor current swings 1.0 A +/- 0.11 A, i.e. 0.89 A to 1.11 A.

  STEP 4 — Output-cap ripple voltage (why the rail is still clean)
     dVout ~ dIL / (8 * fsw * Cout)
           = 0.22 / (8 * 500e3 * 22e-6)
           ~ 2.5 mV    (a 22 uF ceramic -> millivolt-clean 3.3 V)
D 由 Vout/Vin 得出;L 由關閉時間的斜坡和 20–30% 的紋波預算定出;Cout 把剩下的擦乾淨。

留意這個設計邏輯。工作週期定電壓電感定紋波。較大的電感意味著較平的電流三角形(紋波較小),但元件較慢、較笨重、較貴;較小的電感便宜又靈敏,卻會帶來紋波、去操勞電容。20–30% 的紋波法則是整個產業收斂出來的甜蜜點——電流擺動足夠大、讓轉換器保持反應靈敏,又夠小、讓輸出電容能把它擦成毫伏級。

三種轉換器,同一個心智模型

退一步,三種拓樸就塌縮成同一個故事。每一個都只是一顆電感、一個開關、一顆二極體、一顆電容,用三種不同的方式接起來。每一個都服從同一條鐵律——伏秒平衡——而那一條方程式,套用三次,就吐出了全部三條轉移函數。工作週期 D 是那唯一的旋鈕;接線方式決定 D 為你買到降壓、升壓、還是兩者。

THE THREE CORE CONVERTERS AT A GLANCE

  Topology       Transfer function     Range          Output sign
  -----------    ------------------    -----------    -----------
  BUCK           Vout = D * Vin        <= Vin         same (+)
  BOOST          Vout = Vin / (1-D)    >= Vin         same (+)
  BUCK-BOOST     Vout = -Vin*D/(1-D)   any |V|        inverted (-)

  All three: one inductor, one switch, one diode, one cap.
  All three: derived from  avg(V across L over one cycle) = 0.
  All three: D set by a feedback loop watching the real output.
同樣的零件、同樣的定律、三種接線。把這張表精通,SMPS 資料手冊讀起來就像句子。

這三種就是功率轉換的字母。把一顆變壓器栓進升壓,你就得到返馳式(電氣隔離——你的手機充電器就是這樣把市電擋在你的手之外)。把降壓反過來跑,它就變成升壓(雙向,就像電動車既驅動馬達、又回收煞車能量)。把它們堆疊、交錯,你就能供電給一顆 1000 A 的伺服器 CPU。下一個階梯我們把它做成一個產品:我們把其中一個核心包進迴授迴路、一個閘極驅動器、保護電路,以及一個真正的交換式電源供應器控制器——把三條方程式,變成一塊你能拿在手上的電路板。