← Về trang chủ
Cơ bản IC 07 tháng 6, 2026 ⟳ 12 phút đọc

Biến đổi Laplace: từ phương trình vi phân đến phân tích mạch trong miền s

Tại sao mọi transfer function H(s) đều xuất phát từ một tính chất duy nhất của Laplace, cách mô hình R/L/C trong miền s kèm initial condition, và một ví dụ charge sharing có số đầy đủ.

laplacetransfer functionphân tích mạchRCsettling time
Nhận bài viết mới

Không spam. Chỉ bài kỹ thuật AMS đáng đọc — gửi qua email khi có bài mới.

Lần đầu mình phải tính settling time của một node trong mạch RC nhiều nhánh, mình ngồi viết phương trình vi phân bằng tay, ráp initial condition, rồi loay hoay giải nghiệm tổng quát cộng nghiệm riêng. Mất nửa buổi. Sau này nhìn lại mới thấy: nếu chuyển sang miền ss ngay từ đầu thì cả bài toán đó rút về vài dòng đại số.

Đó là toàn bộ lý do Laplace tồn tại trong cuộc sống của một AMS engineer. Mọi transfer function H(s)H(s) các bạn viết, mọi phân tích loop stability của PLL, mọi công thức settling time — tất cả đều mọc ra từ một tính chất duy nhất của biến đổi Laplace. Bài này mình đi từ tính chất đó, dựng mô hình R/L/C trong miền ss (có kèm initial condition), rồi giải một mạch thật bằng số cụ thể.

Bài viết đi qua

  • Tính chất duy nhất của Laplace mà engineer thực sự dùng
  • Mô hình R, C, L trong miền ss — kèm initial condition
  • Impedance vs admittance: chọn dạng nào khi nào
  • Ví dụ có số: charge sharing giữa hai tụ qua điện trở
  • Hai timescale ẩn trong bài toán — chỗ này quan trọng nhất
  • Process corner làm settling time giãn ra bao nhiêu
  • Bài học khi đụng switched-cap / charge pump

Tính chất duy nhất các bạn thực sự cần

Định nghĩa Laplace thì sách nào cũng có:

F(s)=0f(t)estdtF(s) = \int_0^\infty f(t)\, e^{-st}\, dt

Nhưng thành thật mà nói, đi làm các bạn gần như không bao giờ tính tích phân này bằng tay. Cái các bạn dùng mỗi ngày chỉ là một tính chất: đạo hàm trong miền thời gian biến thành phép nhân với ss trong miền ss.

L ⁣{dfdt}=sF(s)f(0)\mathcal{L}\!\left\{\frac{df}{dt}\right\} = sF(s) - f(0^-)

Để ý cái hạng f(0)f(0^-) — đó chính là giá trị ban đầu, và nó tự động chui vào lời giải. Đây là điểm ăn tiền: thay vì giải phương trình vi phân rồi gắn điều kiện đầu vào sau, Laplace nhét luôn initial condition vào bài toán đại số ngay từ bước đầu.

Phương trình vi phân là thứ làm mạch điện khó giải. Biến phép đạo hàm thành phép nhân ss, cả hệ phương trình vi phân của mạch rút về hệ phương trình đại số — thứ mà ai cũng giải được. Giải xong trong miền ss, biến đổi ngược về miền tt là có waveform.

Bài học: Toàn bộ sức mạnh của Laplace trong phân tích mạch nằm ở chỗ ”d/dt×sd/dt \rightarrow \times s, kèm theo initial condition”. Nắm chắc một dòng này là đủ để dựng mô hình mọi phần tử.

Mô hình R, C, L trong miền s

Ý tưởng: nếu mỗi phần tử có một quan hệ V(s)V(s)I(s)I(s) cố định, thì giải mạch trong miền ss y hệt như giải mạch điện trở thuần — chỉ KCL/KVL và đại số tuyến tính, không còn vi phân.

Điện trở — dễ nhất

Điện trở không có bộ nhớ, không có đạo hàm, nên Laplace không đổi gì cả:

V(s)=RI(s),I(s)=V(s)R=GV(s)V(s) = R\,I(s), \qquad I(s) = \frac{V(s)}{R} = G\,V(s)

Tụ điện — chỗ initial condition xuất hiện

Quan hệ thời gian của tụ:

iC(t)=CdvC(t)dti_C(t) = C\frac{dv_C(t)}{dt}

Áp tính chất đạo hàm vào:

IC(s)=C[sVC(s)vC(0)]=sCVC(s)CvC(0)I_C(s) = C\left[s\,V_C(s) - v_C(0)\right] = sC\,V_C(s) - C\,v_C(0)

Đọc công thức này như một mạch tương đương: dòng vào tụ gồm hai phần — một admittance sCsC (tụ “lý tưởng” trong miền ss) song song với một nguồn dòng CvC(0)C\,v_C(0) đại diện cho điện tích ban đầu. Đây là dạng admittance.

Còn nếu xuất phát từ quan hệ tích phân vC=(1/C)iCdtv_C = (1/C)\int i_C\,dt, ta được:

VC(s)=1sCIC(s)+vC(0)sV_C(s) = \frac{1}{sC}\,I_C(s) + \frac{v_C(0)}{s}

Lần này là một impedance 1/sC1/sC nối tiếp với một nguồn áp vC(0)/sv_C(0)/s (tức một bậc thang điện áp vC(0)v_C(0)). Đây là dạng impedance. Hai dạng mô tả cùng một con tụ — chỉ là biến đổi Norton ↔ Thévenin của nhau.

Tụ C trong miền s — dạng impedance (1/sC nối tiếp nguồn áp v(0)/s) và dạng admittance (sC song song nguồn dòng C·v(0))

Cuộn cảm — đối ngẫu của tụ

Cùng một logic. Quan hệ thời gian:

vL(t)=LdiL(t)dtv_L(t) = L\frac{di_L(t)}{dt}

Dạng impedance:

VL(s)=L[sIL(s)iL(0)]=sLIL(s)LiL(0)V_L(s) = L\left[s\,I_L(s) - i_L(0)\right] = sL\,I_L(s) - L\,i_L(0)

— tức impedance sLsL nối tiếp một nguồn áp LiL(0)L\,i_L(0). Dạng admittance:

IL(s)=1sLVL(s)+iL(0)sI_L(s) = \frac{1}{sL}\,V_L(s) + \frac{i_L(0)}{s}

— tức admittance 1/sL1/sL song song một nguồn dòng iL(0)/si_L(0)/s (bậc thang dòng iL(0)i_L(0)).

Gom lại thành một bảng tra cho gọn:

Phần tửImpedance Z(s)Z(s)Nguồn IC nối tiếpAdmittance Y(s)Y(s)Nguồn IC song song
RRRG=1/RG = 1/R
C1/sC1/sCáp vC(0)/sv_C(0)/ssCsCdòng CvC(0)C\,v_C(0)
LsLsLáp LiL(0)L\,i_L(0)1/sL1/sLdòng iL(0)/si_L(0)/s

Điểm cốt lõi: phần tử trữ năng lượng (C, L) luôn kéo theo một nguồn phụ đại diện cho initial condition. Bỏ quên nguồn này là nguồn gốc của 90% lỗi khi giải mạch quá độ.

Impedance hay admittance — chọn dạng nào

Quy tắc thực dụng:

  • Phần tử nối tiếp nhau → dùng dạng impedance, cộng ZZ lại như cộng điện trở.
  • Phần tử song song chung một node → dùng dạng admittance, cộng YY lại, rồi viết KCL tại node đó.

Trong AMS phần lớn thời gian các bạn viết KCL tại node (vì mạch toàn các nhánh đổ chung vào một node output), nên dạng admittance thường tiện hơn. Ví dụ ngay sau đây là một ca như vậy.

Ví dụ có số: charge sharing qua điện trở

Mạch thế này: tụ C1C_1 được nạp sẵn đến V0V_0, tụ C2C_2 đang xả hoàn toàn (điện tích ban đầu bằng 0). Tại t=0t = 0 ta đóng switch, nối C1C_1 vào cụm C2RC_2 \parallel R. Hỏi điện áp V(t)V(t) tại node output diễn biến ra sao.

Mình lấy số cụ thể để có cảm giác:

C1=1 pF,C2=1 pF,R=100 kΩ,V0=1 VC_1 = 1\ \text{pF}, \quad C_2 = 1\ \text{pF}, \quad R = 100\ \text{k}\Omega, \quad V_0 = 1\ \text{V} Mạch charge sharing — mạch gốc (C1 nạp sẵn V0, switch hở, C2 ∥ R) và tương đương miền s sau khi đóng switch: node out có 4 nhánh sC1, nguồn dòng C1·V0, sC2, 1/R xuống đất

Dựng phương trình trong miền s

Sau khi đóng switch, ba nhánh C1C_1, C2C_2, RR cùng đổ vào node output V(s)V(s). Vì là các nhánh song song chung node, mình dùng dạng admittance và viết KCL (tổng dòng rời node bằng 0):

  • Qua RR: V(s)/RV(s)/R
  • Qua C2C_2 (không có điện tích đầu): sC2V(s)sC_2\,V(s)
  • Qua C1C_1 (nạp sẵn V0V_0): sC1V(s)C1V0sC_1\,V(s) - C_1V_0 — chú ý nguồn dòng C1V0C_1V_0 bơm ngược vào node

Cộng lại:

V(s)R+sC2V(s)+sC1V(s)C1V0=0\frac{V(s)}{R} + sC_2\,V(s) + sC_1\,V(s) - C_1V_0 = 0

Gom vế:

V(s)(1R+sC1+sC2)=C1V0V(s)\left(\frac{1}{R} + sC_1 + sC_2\right) = C_1V_0

Cả con tụ nạp sẵn C1C_1 biến thành một nguồn kích C1V0C_1V_0 ở vế phải — đúng tinh thần “initial condition tự chui vào bài toán” đã nói ở đầu.

Giải đại số rồi biến đổi ngược

Rút V(s)V(s):

V(s)=C1V0sC1+sC2+1R=C1C1+C2V01s+1R(C1+C2)V(s) = \frac{C_1V_0}{sC_1 + sC_2 + \frac{1}{R}} = \frac{C_1}{C_1 + C_2}\,V_0 \cdot \frac{1}{\,s + \dfrac{1}{R(C_1 + C_2)}\,}

Đây là dạng K/(s+a)K/(s + a)biến đổi Laplace ngược cho ra đúng một hàm mũ giảm KeatK\,e^{-at}:

V(t)=C1C1+C2V0exp ⁣(tR(C1+C2))\boxed{\,V(t) = \frac{C_1}{C_1 + C_2}\,V_0 \cdot \exp\!\left(-\frac{t}{R(C_1 + C_2)}\right)\,}

Thay số

Hằng số nhân đầu (giá trị ngay sau khi đóng switch):

V(0+)=C1C1+C2V0=11+11 V=0.5 VV(0^+) = \frac{C_1}{C_1 + C_2}\,V_0 = \frac{1}{1 + 1}\cdot 1\ \text{V} = 0.5\ \text{V}

Hằng số thời gian:

τ=R(C1+C2)=100 kΩ×2 pF=200 ns\tau = R(C_1 + C_2) = 100\ \text{k}\Omega \times 2\ \text{pF} = 200\ \text{ns}

Vậy diễn biến là: điện áp nhảy tức thì từ 0 lên 0.5 V0.5\ \text{V} tại lúc đóng switch, rồi xả dần về 0 với τ=200 ns\tau = 200\ \text{ns} (coi như settle sau 5τ=1 μs\approx 5\tau = 1\ \mu\text{s}). Tại t=τt = \tau, V=0.5e1=0.184 VV = 0.5\,e^{-1} = 0.184\ \text{V}.

Đồ thị V(t): nhảy tức thì lên 0.5V tại t=0 (charge sharing theo tỉ số tụ) rồi xả theo hàm mũ với τ=200ns, đánh dấu điểm (200ns, 0.184V)

Hai timescale — chỗ quan trọng nhất

Để ý kỹ kết quả: bài toán có hai mốc thời gian hoàn toàn tách biệt.

  1. Bước nhảy lên 0.5 V — “tức thì”. Nó được quyết định chỉ bởi tỉ số tụ C1/(C1+C2)C_1/(C_1+C_2), hoàn toàn không phụ thuộc RR. Trong mô hình lý tưởng, điện tích phân chia ngay lập tức.

  2. Đường xả về 0 — chậm. Cái này mới do τ=RC\tau = RC quyết định.

Vì sao bước nhảy “tức thì”? Vì điện tích bảo toàn ngay khi đóng switch: tổng điện tích Q0=C1V0=1 pCQ_0 = C_1V_0 = 1\ \text{pC} phân bố lại trên tổng tụ C1+C2=2 pFC_1 + C_2 = 2\ \text{pF}, cho V=1 pC/2 pF=0.5 VV = 1\ \text{pC} / 2\ \text{pF} = 0.5\ \text{V}. Trong thực tế nó không thật sự bằng 0 thời gian — nó bị giới hạn bởi điện trở của chính con switch (vài chục Ω đến vài kΩ), nên hằng số thời gian charge sharing là Rsw(C1C2)R_\text{sw}(C_1\|C_2), cỡ vài ps đến vài ns — vẫn nhanh hơn rất nhiều so với 200 ns của đường xả qua RR.

Đây không phải chuyện học thuật. Cái “bước nhảy nhanh không lọc được” này chính là thứ làm khổ AMS engineer ở rất nhiều chỗ:

  • Charge injection / clock feedthrough trong sample-and-hold: khi switch tắt, một cục điện tích dump lên hold cap, gây bước nhảy điện áp tức thì — bạn không thể dùng RC loop để lọc nó vì nó nhanh hơn mọi RC trong mạch.
  • Kickback trong comparator: cùng cơ chế, một node bị đá một bước nhảy mà loop không kịp phản ứng.
  • Charge sharing trong switched-cap và trong charge pump của PLL: mỗi lần redistribute điện tích là một lần điện áp nhảy theo tỉ số tụ.

Một con số làm các bạn giật mình: năng lượng

Năng lượng trên C1C_1 trước khi share:

Ebefore=12C1V02=12(1 pF)(1 V)2=0.5 pJE_\text{before} = \tfrac{1}{2}C_1V_0^2 = \tfrac{1}{2}(1\ \text{pF})(1\ \text{V})^2 = 0.5\ \text{pJ}

Sau khi share (ngay tại 0+0^+, trước khi RR kịp xả gì):

Eafter=12(C1+C2)V(0+)2=12(2 pF)(0.5 V)2=0.25 pJE_\text{after} = \tfrac{1}{2}(C_1 + C_2)V(0^+)^2 = \tfrac{1}{2}(2\ \text{pF})(0.5\ \text{V})^2 = 0.25\ \text{pJ}

Mất đúng một nửa. Và điều kỳ lạ: dù điện trở switch nhỏ tới đâu, năng lượng mất vẫn y nguyên 0.25 pJ — RR nhỏ chỉ làm nó mất nhanh hơn chứ không mất ít hơn. Đây chính là “two-capacitor paradox”, và cũng là lý do nền tảng vì sao switched-cap circuit tiêu thụ công suất kiểu CV2fC V^2 f. Mỗi chu kỳ chuyển điện tích là một lần đốt năng lượng, không tránh được bằng cách làm switch “tốt hơn”.

Process corner làm settling time giãn bao nhiêu

Số nominal đẹp không nói lên điều gì cho tới khi check corner. Cả RRCC đều trôi theo process:

  • Poly/diffusion resistor: dung sai dễ tới ±20%\pm 20\%
  • MIM/MOM cap: cỡ ±10%\pm 10\%

τ=R(C1+C2)\tau = R(C_1 + C_2) tỉ lệ tích của hai đại lượng đó, ở corner xấu nhất (R cao, C cao):

τmax200 ns×1.20×1.10264 ns\tau_\text{max} \approx 200\ \text{ns} \times 1.20 \times 1.10 \approx 264\ \text{ns}

Settling 5τ5\tau nhảy từ 1 μs1\ \mu\text{s} (nominal) lên 1.32 μs\approx 1.32\ \mu\text{s} (slow corner). Nếu spec của các bạn là “node phải settle trong 1.1 μs1.1\ \mu\text{s}”, thì nominal pass mà slow corner fail. Đây đúng kiểu bug chỉ lộ ra sau khi có silicon nếu bạn chỉ ký số nominal.

Một điểm an ủi: bước nhảy charge sharing C1/(C1+C2)C_1/(C_1+C_2)tỉ số hai con tụ cùng loại, nên phần lớn process variation triệt tiêu — nó ổn định hơn nhiều so với τ\tau. Đây cũng là một nguyên tắc thiết kế chung trong AMS: thiết kế theo tỉ số thay vì theo giá trị tuyệt đối bất cứ khi nào có thể.

Bài học thiết kế

  • d/dt×sd/dt \rightarrow \times s là toàn bộ trò chơi. Nắm một tính chất đạo hàm, các bạn dựng được mô hình ss của mọi phần tử và biến mọi mạch quá độ thành đại số.
  • Phần tử trữ năng lượng luôn kéo theo một nguồn IC. Tụ nạp sẵn = nguồn dòng Cv(0)Cv(0) (admittance) hoặc nguồn áp v(0)/sv(0)/s (impedance). Quên nó là sai ngay.
  • Để ý hai timescale. Charge sharing (tức thì, theo tỉ số tụ) tách bạch với decay (chậm, theo RC). Cái bước nhảy nhanh là thứ loop không lọc được — gốc rễ của charge injection, kickback, droop.
  • Charge sharing luôn đốt năng lượng, không phụ thuộc switch tốt hay xấu — nền tảng của công suất CV2fCV^2f trong switched-cap.
  • Ký số phải ký ở corner. τ\tau giãn theo cả R lẫn C; thiết kế theo tỉ số tụ để bớt phụ thuộc process.

Tổng kết

  • Biến đổi Laplace biến phương trình vi phân của mạch thành đại số, và tự động nhét initial condition vào lời giải qua hạng f(0)f(0^-).
  • Mỗi phần tử có mô hình ss gọn (bảng tra ở trên); tụ và cuộn cảm luôn kèm một nguồn phụ cho điều kiện đầu.
  • Ví dụ charge sharing cho thấy rõ hai timescale tách biệt — và đó là insight đáng mang theo khi đụng switched-cap, sample-and-hold, hay charge pump của PLL.

Đọc tiếp:H(s)H(s) rồi, bước kế là đọc pole/zero của nó để biết hệ ổn định và đáp ứng theo thời gian ra sao — Control theory trực quan: pole, zero và step response. Khi áp tất cả vào một vòng lặp thật: PLL Loop Dynamics.

Tham khảo

  • Oppenheim & Willsky, Signals and Systems, Chương 9 (Laplace Transform) — chỗ để hiểu tại sao tính chất đạo hàm sF(s)f(0)sF(s) - f(0^-) đúng và region of convergence là gì. Đọc để vững gốc, không phải để tra công thức.

  • Razavi, Design of Analog CMOS Integrated Circuits, các chương về feedback & stability — góc nhìn dùng miền ss thực chiến trong AMS: pole/zero, phase margin, settling. Đây là nơi Laplace từ “môn toán” thành “công cụ ký tapeout”.

  • Bài toán charge sharing: ví dụ trong bài theo cách trình bày chuẩn của giáo trình lý thuyết mạch (network analysis) về “giải phương trình mạng có xét initial value” — mạch tụ nạp sẵn xả qua điện trở là bài kinh điển để minh họa Laplace có IC.