Cụ thể là sao vậy anh, tôi không hiểu tại sao lại không thể chạy vòng hở khi không tải.
Nếu không có vấn đề gì về hàn thì việc tôi thấy điện áp, dòng điện đầu vào và đầu ra thu thập bởi ADC không chính xác có phải là do thuật toán xử lý dữ liệu của ADC gây ra hay không? Bởi vì khi tôi sửa một số đoạn mã xử lý số liệu thì sai số đã giảm đi đáng kể.
Tự tìm hiểu nguyên lý của bộ tăng áp đi, dưới đây là câu trả lời từ AI:
Tóm lại, bộ biến đổi Boost (tăng áp) khi hoạt động trong điều kiện không tải (không có tải) và vòng hở (không có mạch phản hồi điều khiển) sẽ dẫn đến điện áp đầu ra tăng lên vô hạn, cuối cùng làm cháy tụ điện, linh kiện công tắc hoặc diode.
Dưới đây là phân tích sâu về cơ sở vật lý đằng sau hiện tượng này:
1. Hiệu ứng tích lũy năng lượng “chỉ tăng không giảm”
Mạch Boost hoạt động theo hai giai đoạn:
- Giai đoạn nạp: Linh kiện công tắc dẫn, cuộn cảm L tích trữ năng lượng.
- Giai đoạn xả: Linh kiện công tắc ngắt, cuộn cảm L giải phóng năng lượng đã tích và cộng thêm với nguồn V_{in}, sạc chung cho tụ điện đầu ra C.
Trong điều kiện có tải bình thường, năng lượng mà cuộn cảm truyền sang tụ mỗi chu kỳ sẽ bị tải tiêu thụ hết, từ đó đạt được trạng thái cân bằng năng lượng.
Nhưng trong điều kiện không tải, dòng tải bằng 0. Điều này có nghĩa là năng lượng được “bơm” từ cuộn cảm vào tụ ở mỗi chu kỳ chuyển mạch không thể đi đâu. Theo công thức năng lượng tích trữ trong tụ E = \frac{1}{2}CV^2, năng lượng liên tục tích tụ khiến điện áp V chắc chắn sẽ tăng mãi không ngừng.
2. Phân tích mô hình toán học
Trong trạng thái lý tưởng (chế độ dẫn liên tục CCM), công thức điện áp đầu ra của bộ biến đổi Boost là:
(trong đó D là độ rộng xung - duty cycle)
- Trạng thái vòng hở: Nghĩa là độ rộng xung D cố định (ví dụ D=0.5).
- Xung đột giữa lý thuyết và thực tế: Công thức lý thuyết chỉ đúng khi hệ thống ở trạng thái cân bằng động. Tuy nhiên, khi không tải, do không có dòng điện đầu ra, mạch sẽ chuyển sang chế độ dẫn gián đoạn (DCM). Trong chế độ DCM, nếu độ rộng xung cố định và tải tiến tới vô cùng lớn, điện áp đầu ra lý thuyết sẽ tiến tới vô cực.
3. Hậu quả nghiêm trọng
Do trong mạch thực tế không tồn tại điện áp “vô hạn”, hệ thống sẽ sụp đổ khi đạt đến giới hạn vật lý:
- Tụ điện bị đánh thủng: Điện áp làm việc định mức (VDC) của tụ lọc đầu ra bị vượt quá, dẫn đến tụ nổ hoặc ngắn mạch.
- Hư hỏng linh kiện công tắc / diode: Điện áp V_{ds} của MOSFET hoặc điện áp ngược chịu đựng của diode bị đánh thủng.
- Phản hồi thất bại: Mặc dù bạn nói là “vòng hở”, nhưng ngay cả khi có mạch phản hồi, nếu tốc độ phản hồi không đủ nhanh hoặc không thiết kế bảo vệ quá áp (OVP), các xung điện áp nhọn sinh ra trong khoảnh khắc không tải cũng đủ gây hư hỏng nghiêm trọng.
Tổng kết và các biện pháp phòng ngừa
| Đặc điểm | Biểu hiện | Kết quả |
|---|---|---|
| Truyền năng lượng | Bắt buộc “bơm” năng lượng vào đầu ra mỗi chu kỳ | Điện tích liên tục tích tụ trên tụ điện |
| Phản hồi điện áp | Thiếu (vòng hở), không thể giảm độ rộng xung để hạ áp | Điện áp mất kiểm soát |
| Kết cục cuối cùng | Điện áp vượt quá giới hạn chịu đựng của linh kiện | Cháy hỏng phần cứng |
Giải pháp trong thực tế kỹ thuật:
- Điều khiển vòng kín: Sử dụng bộ điều khiển PWM, khi phát hiện điện áp tăng cao thì tự động giảm độ rộng xung D.
- Tải giả (Dummy Load): Mắc song song một điện trở lớn ở đầu ra để đảm bảo luôn có dòng tiêu thụ nhỏ, tiêu tán năng lượng dư thừa ngay cả khi không tải.
- Bảo vệ quá áp (OVP): Thêm mạch kẹp điện áp ở cấp độ phần cứng.
Thông tin bạn cung cấp quá ít, không thể trả lời được, không có hình ảnh, không có dữ liệu, cũng không mô tả chi tiết (bạn đã sửa đổi những gì?)…
Gợi ý đọc thêm: https://bbs.eeclub.top/t/topic/109
Việc thiết kế các tham số bù vòng điều khiển số cho mạch Buck-Boost kỹ thuật số dựa trên STM32G474 là một quá trình chuyển đổi từ thiết kế miền liên tục (tương tự) sang miền rời rạc (số). STM32G474 rất phù hợp với việc điều khiển nguồn kỹ thuật số tần số cao nhờ bộ định thời độ phân giải cao (HRTIM) và bộ gia tốc toán học tích hợp (FMAC/CORDIC).
Việc tính toán và thiết kế các tham số bù vòng điều khiển số thường được chia thành các bước chính sau:
Bước 1: Xác định mô hình tín hiệu nhỏ của tầng công suất (miền s)
Trước tiên, bạn cần biết hàm truyền thời gian liên tục G_{vd}(s) (hàm truyền từ điều khiển đến điện áp ngõ ra) của đối tượng điều khiển (tầng công suất Buck-Boost).
Đối với bộ chuyển đổi Buck-Boost đồng bộ 4 transistor, thường có ba chế độ hoạt động khác nhau, mỗi chế độ có hàm truyền riêng:
- Chế độ Buck: Là hệ thống pha cực tiểu, tồn tại hai cực LC và một zero do ESR của tụ lọc đầu ra.
- Chế độ Boost / Buck-Boost: Là hệ thống phi pha cực tiểu, ngoài các cực LC và zero ESR, còn tồn tại zero nằm nửa mặt phẳng phải (RHPZ).
- RHPZ làm tăng độ trễ pha đồng thời tăng biên độ, rất dễ gây mất ổn định hệ thống.
- Tần số của RHPZ thường được tính bằng công thức: f_{RHPZ} = \frac{R_{load} \cdot (1-D)^2}{2 \pi L}.
Điểm quan trọng: Tần số cắt vòng kín (bandwidth) f_c của bạn phải được thiết kế thấp hơn 1/5 đến 1/3 tần số RHPZ trong trường hợp xấu nhất để đảm bảo đủ dự trữ pha.
Bước 2: Thiết kế bộ bù tương tự (miền s)
Sau khi xác định được G_{vd}(s), hãy đặt tần số cắt mục tiêu f_c (thường bằng 1/10 tần số switching f_{sw}) và dự trữ pha mong muốn (thường từ 45^\circ đến 60^\circ).
- Điều khiển chế độ điện áp (VMC): Thường cần bộ bù Type III (tương đương PID, cung cấp hai cực và hai zero), nhằm bù lại sự sụt pha 180^\circ do cộng hưởng LC.
- Chế độ dòng điện đỉnh / dòng điện trung bình (CMC): Vòng dòng điện sẽ hạ bậc cuộn cảm về hệ thống bậc nhất, vòng ngoài điều khiển điện áp thường chỉ cần bộ bù Type II (tương đương PI).
Giả sử dùng bộ điều khiển PI, hàm truyền miền liên tục như sau:
Bước 3: Chuyển đổi sang dạng rời rạc (từ miền s → miền z)
Bộ vi điều khiển không thể xử lý trực tiếp các biểu thức miền s, vì vậy cần rời rạc hóa chúng sang miền z. Phương pháp rời rạc hóa phổ biến là phép biến đổi song tuyến (biến đổi Tustin), vì nó bảo toàn khá tốt đặc tính tần số.
Áp dụng công thức biến đổi Tustin:
(trong đó T_s là chu kỳ lấy mẫu của vòng điều khiển)
Thay biểu thức trên vào G_c(s), ta thu được hàm truyền bộ bù số G_c(z).
Bước 4: Đưa về phương trình sai phân (triển khai bằng C)
Chuyển đổi G_c(z) thành phương trình sai phân trong miền thời gian — đây chính là logic mã thực tế chạy trên STM32G474. Với bộ điều khiển PI kiểu tăng lượng, phương trình sai phân chuẩn sau khi suy diễn là:
- e[n]: Sai lệch hiện tại giữa điện áp đo ADC và điện áp chuẩn.
- e[n-1]: Sai lệch ở chu kỳ trước.
- u[n]: Giá trị điều khiển hiện tại (giá trị so sánh để tạo độ rộng xung HRTIM).
- u[n-1]: Giá trị điều khiển ở chu kỳ trước.
Bước 5: Hiệu chỉnh hệ số khuếch đại phần cứng STM32G474
Trong hệ thống số, các giá trị K_p và K_i mà bạn tính toán không thể dùng trực tiếp từ kết quả tương tự, mà cần đưa vào các hệ số khuếch đại lượng tử hóa ADC và khuếch đại chuyển đổi PWM:
- Hệ số khuếch đại ADC (K_{ADC}): Ví dụ dùng ADC 12 bit, điện áp tham chiếu 3.3V, tỉ lệ chia áp hồi tiếp là K_{div}, thì mối quan hệ giữa giá trị ADC và điện áp thực tế là:K_{ADC} = \frac{2^{12} - 1}{3.3} \cdot K_{div}
- Hệ số khuếch đại PWM (K_{PWM}): HRTIM trên G474 có độ phân giải rất cao (~170ps). Nếu giá trị thanh ghi chu kỳ HRTIM là PER, thì mối quan hệ giữa độ rộng xung và giá trị điều khiển là:K_{PWM} = \frac{PER}{1.0}
Các tham số cuối cùng ghi vào MCU là K_{p\_digital} và K_{i\_digital} cần được hiệu chỉnh theo hệ số khuếch đại toàn hệ thống:
Gợi ý tối ưu lập trình cho STM32G474
- Tính toán số nguyên cố định: Để phản ứng nhanh nhất có thể, hãy tránh dùng
float(dù G474 có FPU). Nên dùng định dạng số nguyên cố định như Q15 hoặc Q31, kết hợp với hàmarm_pid_q31trong thư viện CMSIS-DSP, hoặc tận dụng FMAC (bộ gia tốc toán học lọc) trên G474 để phần cứng tự động tính toán bù PI/Type III. - Cơ chế kích hoạt ADC: Dùng sự kiện đặc biệt từ HRTIM (thường là điểm giữa chu kỳ PWM) để kích hoạt cứng ADC, giúp tránh nhiễu switching. Cách này gọi là “blanking” hoặc lấy mẫu dòng trung bình.
Cảm ơn đại ca, thì ra là vậy
- Tự mình xem lại kỹ hơn chiều dương và âm của điện áp tạo ra khi dòng điện đi qua điện trở mẫu
- Tự tìm hiểu về nguyên lý và cách tính toán mạch khuếch đại vi sai dùng bộ khuếch đại thuật toán (cơ sở điện tử tương tự)
Tôi hình như không nhớ nhầm đâu, 1. Chiều dòng điện phải là VOUT+ → tải → VOUT- → GND → VIN- → VIN+, đúng không? 2. Khi dùng khuếch đại vi sai, nếu R47 = R39 và R43 = R41 thì đầu ra sẽ là Vout = R47/R43 × (0 - VIN-). Hơn nữa, khi gộp R41 và R39 lại thì rõ ràng đây chính là một mạch khuếch đại đảo.
Anh em, cách hiểu của bạn về mạch vòng dòng điện bên ngoài hơi ngược một chút đó. Nguồn điện được cung cấp từ VIN, dòng điện đi vào từ VIN+, chạy qua mạch và đến GND, sau đó bắt buộc phải đi qua R13 từ GND trở về VIN- để hoàn thành mạch về cực âm của nguồn bên ngoài. Vì chiều dòng điện là từ GND → VIN-, nên so với GND (0V), điện áp tại VIN- thực chất là một điện áp âm!
Vì tín hiệu đầu vào là điện áp âm, bộ khuếch đại thuật toán được dùng ở chế độ khuếch đại đảo pha, do đó điện áp ngõ ra V_{out} = -62 \times (\text{điện áp âm}), âm nhân âm thành dương, nên điện áp mà ADC đọc được sẽ là điện áp dương.
Còn về việc bạn phát hiện điện trở mắc song song ở chân 5, quan sát rất tinh tế! Đó là vì trở kháng tương đương nhìn vào đầu đảo pha (chân 6) bằng 100Ω song song với 6.2kΩ. Để loại bỏ sai số do dòng điện thiên áp đầu vào của bộ khuếch đại tạo ra, đầu không đảo pha (chân 5) cũng cần được mắc một điện trở tương đương như vậy xuống mass. Trong kỹ thuật điện tử tương tự, cái này gọi là điện trở cân bằng, là biện pháp tiêu chuẩn nhằm nâng cao độ chính xác khi lấy mẫu.
Nhưng nếu làm như vậy thì từ góc nhìn của chân 5, hai điện trở này rõ ràng là mắc song song, và điện trở tương đương sau khi mắc song song mới chính là điện trở được nối vào chân 5.
Đã học cơ sở kỹ thuật điện tử tương tự chưa?
Tìm hiểu về đường đi kiểu Kelvin.
Tôi bỗng nhiên hiểu ra rồi anh lớn! Vì dòng điện qua điện trở mẫu ở đầu vào chảy từ GND ra và đi đến VIN-, nên VIN- là một giá trị âm, điện áp âm. Do đó, đầu vào không đảo được nối với GND (0V), đầu vào đảo nối với VIN-. Còn điện trở 6.2K phía trên là cách mắc tiêu chuẩn của khuếch đại vi sai, chỉ là về hình thức hai điện trở này đều nối mass, R41 và R39 trông giống như mắc song song, nên nói đây là bộ khuếch đại đảo cũng không sai.
Tôi muốn hỏi một chút, cách cấp điện của nó không phải có hai loại sao: một là cấp điện qua cổng C, hai là qua cổng DC, lại còn có chip giả mạo điện áp, ba chân cấu hình đều để hở, mặc định giả mạo thành 20V. Như vậy có nghĩa là nguồn điện chỉ có thể dùng bộ sạc 100W hỗ trợ 20V/5A hoặc bộ chuyển đổi nguồn có cổng DC với điện áp trên 12V để cấp điện cho bo mạch đúng không?
Tối đa giả mạo được 20V, không phải chỉ có thể giả mạo 20V, nếu bộ sạc không hỗ trợ 20V sẽ giảm xuống các mức thấp hơn, ví dụ như 15V/12V.
À à, nghĩa là chip giả mạo hỗ trợ mức điện áp tối đa 20V, nhưng cũng có thể dùng với điện áp thấp hơn 20V, chỉ cần không dưới 12V, nếu không sẽ không thể hạ áp xuống 12V qua chip buck cấp một để cung cấp điện cho mạch điều khiển cầu bán phần và quạt nhỏ.
Vâng
À này, khi cậu làm dự án này có gặp vấn đề gỡ lỗi lớn nào không, có thể trình bày kỹ một chút được không? Hãy nêu vài vấn đề gỡ lỗi lớn hoặc dễ mắc phải.
(bài viết đã bị tác giả xóa)
Tại sao buckpwm lại là period-buck
còn boost thì là boost?
Có cần thực hiện dịch pha 180 độ không? Đã hỏi dpseek rồi nhưng vẫn chưa chắc chắn, mong được giải đáp.

