Chọn mạch BMS cho khối pin 3S, 4S, 7S: tính nSmP, dòng BMS, cầu chì, dây cân bằng, nhiệt độ
Chọn mạch BMS cho khối pin 3S, 4S, 7S: tính số cell nối tiếp, song song, dòng BMS, cầu chì, tiết diện dây; đấu dây cân bằng đúng thứ tự; cảm biến nhiệt, tản nhiệt; kiểm tra BMS mới.
Bài này hướng dẫn chọn mạch BMS cho các khối pin lithium hay tự làm: 3S (12 V), 4S (12,8 V LiFePO4 hoặc 14,8 V Li-ion), 7S (24 V). Nội dung gồm tính số cell nối tiếp, song song từ điện áp, dòng, dung lượng cần dùng; chọn dòng BMS, cầu chì, tiết diện dây; đấu dây cân bằng đúng thứ tự; đặt cảm biến nhiệt; kiểm tra BMS mới trước khi dùng. Bài có script Python tính cấu hình khối pin.
BMS là gì, bên trong có gì, ngưỡng bảo vệ, cân bằng thụ động và chủ động, cổng chung và cổng riêng có ở bài BMS là gì cùng cụm chủ đề; bài này đi thẳng vào chọn và lắp.
1. Chọn cấu hình nSmP
- Số cell nối tiếp (S) quyết định điện áp: điện áp danh định ÷ 3,6 V với Li-ion, ÷ 3,2 V với LiFePO4. Thiết bị 12 V dùng 3S Li-ion hoặc 4S LiFePO4; 24 V dùng 7S Li-ion hoặc 8S LiFePO4.
- Số cell song song (P) lấy số lớn hơn giữa hai điều kiện: đủ dung lượng (Ah cần ÷ Ah mỗi cell) và đủ dòng (dòng tải ÷ dòng xả liên tục cho phép của mỗi cell). Thiết bị dòng lớn với cell dung lượng cao, dòng xả thấp thì số P do dòng quyết định. Cách chọn cell theo dòng xả có ở bài chọn cell 18650 theo dòng xả cùng cụm.
- Các cell trong khối phải cùng loại, cùng dung lượng, cùng tuổi, nội trở gần nhau; ghép nối tiếp, song song tính thế nào có ở bài ghép pin 18650 nối tiếp, song song.

2. Script tính khối pin, BMS, cầu chì, dây
# PYWORLD.VN - Thiết kế khối pin và chọn BMS: số cell nối tiếp (S), song song (P), dòng BMS, cầu chì, tiết diện dây, bộ sạc
# PYWORLD.VN - Mức dây và cầu chì là mức thận trọng cho dây đồng ngắn trong không khí; tra thông số của đúng dây, cầu chì khi làm thật
# PYWORLD.VN - Ví dụ: python thiet_ke_khoi_pin.py --dien-ap 24 --dong 10 --dung-luong 10 --cell-mah 2500 --cell-dong 20
"""Từ điện áp, dòng, dung lượng cần có, tính cấu hình khối pin nSmP và thông số BMS, dây, cầu chì."""
from __future__ import annotations
import argparse
import math
LOAI = {"li-ion": (3.6, 4.2, 3.0), "lifepo4": (3.2, 3.65, 2.5)} # danh định, sạc đầy, hết pin (V/cell)
# Tiết diện dây đồng (mm²) và dòng liên tục thận trọng (A) cho đoạn dây ngắn, đặt thoáng
DAY = [(0.5, 3), (0.75, 6), (1.0, 8), (1.5, 12), (2.5, 18), (4.0, 25), (6.0, 32), (10.0, 45)]
CAU_CHI = [3, 5, 7.5, 10, 15, 20, 25, 30, 40, 50, 60, 80, 100]
def thiet_ke(dien_ap: float, dong: float, dung_luong_ah: float, loai: str, cell_mah: int, cell_dong: float) -> list[str]:
dd, day, het = LOAI[loai]
s = max(1, round(dien_ap / dd))
p_dung_luong = math.ceil(dung_luong_ah * 1000 / cell_mah)
p_dong = math.ceil(dong / cell_dong)
p = max(p_dung_luong, p_dong)
bms = math.ceil(dong * 1.3)
cau_chi = next((c for c in CAU_CHI if c >= dong * 1.25), CAU_CHI[-1])
day_mm2 = next((mm2 for mm2, a in DAY if a >= cau_chi), None)
ra = [f"Can {dien_ap:g} V, {dong:g} A, {dung_luong_ah:g} Ah; cell {loai} {cell_mah} mAh, toi da {cell_dong:g} A/cell",
f" Cau hinh {s}S{p}P = {s * p} cell (P theo dung luong {p_dung_luong}, theo dong {p_dong})",
f" Dien ap khoi: danh dinh {s * dd:.1f} V, sac day {s * day:.1f} V, het pin {s * het:.1f} V",
f" Dung luong {p * cell_mah / 1000:.1f} Ah, nang luong khoang {s * dd * p * cell_mah / 1000:.0f} Wh",
f" BMS {s}S {loai}, dong lien tuc tu {bms} A; bo sac {s * day:.1f} V",
f" Cau chi {cau_chi:g} A gan cuc duong khoi pin; day dong tu {day_mm2 if day_mm2 else '>10'} mm2"]
if p_dong > p_dung_luong:
ra.append(" Luu y: so cell song song do DONG quyet dinh, khong phai dung luong")
return ra
def main() -> None:
ap = argparse.ArgumentParser(description=__doc__)
ap.add_argument("--dien-ap", type=float, help="dien ap danh dinh can, V")
ap.add_argument("--dong", type=float, help="dong tai lien tuc, A")
ap.add_argument("--dung-luong", type=float, help="dung luong can, Ah")
ap.add_argument("--loai", choices=list(LOAI), default="li-ion")
ap.add_argument("--cell-mah", type=int, default=2500)
ap.add_argument("--cell-dong", type=float, default=10, help="dong lien tuc toi da moi cell, A")
a = ap.parse_args()
if a.dien_ap is None:
vi_du = [(11.1, 3, 5, "li-ion", 2500, 10), (12.8, 8, 12, "lifepo4", 6000, 12), (25.2, 12, 10, "li-ion", 2500, 20)]
for v in vi_du:
print("\n".join(thiet_ke(*v)))
return
print("\n".join(thiet_ke(a.dien_ap, a.dong, a.dung_luong, a.loai, a.cell_mah, a.cell_dong)))
if __name__ == "__main__":
main()

- Dòng BMS: lấy dư khoảng 30 % so với dòng tải liên tục. BMS ghi "20 A" thường là dòng chịu được khi có tản nhiệt tốt; lắp trong hộp kín thì nên dư nhiều hơn.
- Dòng đỉnh: động cơ, máy khoan, inverter có dòng khởi động gấp nhiều lần; xem ngưỡng quá dòng và thời gian trễ trong thông số BMS, nếu không BMS sẽ ngắt mỗi lần khởi động.
- Cầu chì đặt gần cực dương khối pin, bảo vệ dây khi có chập trước BMS hoặc khi MOSFET của BMS hỏng ở trạng thái dẫn. Chọn khoảng 1,25 lần dòng tải, và nhỏ hơn khả năng chịu dòng của dây.
- Dây: bảng trong script là mức thận trọng cho dây đồng ngắn, đặt thoáng; dây silicone chịu nhiệt chịu được dòng cao hơn. Dây dài thì tính thêm sụt áp.
3. Đấu dây cân bằng đúng thứ tự

- B− là âm của cả khối, B1 là điểm nối cell 1 với cell 2, B2 là điểm nối cell 2 với cell 3…, B+ là dương của cả khối. Khối 3S có 4 dây cân bằng, 4S có 5, 7S có 8.
- Trước khi cắm giắc vào BMS, đo điện áp từng chân so với B−: phải tăng đều khoảng một cell mỗi bậc (khoảng 3,7 V với Li-ion đang ở giữa mức pin). Sai thứ tự, thiếu dây, đảo dây là lý do hay gặp nhất làm hỏng IC bảo vệ.
- Thứ tự thường được nhà sản xuất khuyên: nối dây âm lớn B− trước, cắm giắc cân bằng sau cùng. Tháo thì làm ngược lại.
- Khối nhiều cell song song: dây cân bằng nối vào thanh nối chung của cả nhóm song song đó, không cần dây riêng cho từng cell.
4. Nhiệt độ: cảm biến và tản nhiệt
- BMS có cảm biến nhiệt (NTC) thì dán đầu NTC vào giữa các cell, chỗ nóng nhất, cố định bằng băng keo chịu nhiệt; treo NTC ngoài không khí thì BMS đo sai.
- Pin Li-ion không nên sạc dưới khoảng 0 °C; BMS có NTC cài ngưỡng nhiệt thấp sẽ chặn sạc khi lạnh. Ở Việt Nam hay gặp phía ngược lại: khối pin trong hộp kín đặt ngoài nắng quá nóng.
- MOSFET của BMS tỏa nhiệt theo bình phương dòng: áp mặt tản nhiệt vào vỏ hộp kim loại, chừa đường cho nhiệt thoát, không quấn BMS kín trong lớp màng co cùng các cell.
5. Kiểm tra và lắp

Sau khi lắp: đo điện áp giữa P+ và P− (nhiều BMS mới cần cắm sạc một lần để mở đầu ra), thử tải nhỏ trước, rồi tải thật; theo dõi nhiệt độ BMS trong lần chạy đầu. Sạc bằng bộ sạc đúng điện áp (12,6 V cho 3S Li-ion, 14,6 V cho 4S LiFePO4, 29,4 V cho 7S Li-ion). Với khối pin nhỏ sạc từ cổng 5 V Type-C có thể dùng mạch sạc tăng áp 2S–4S, đấu như bài mạch sạc pin 2S, 3S, 4S từ Type-C; cell 18650 nhỏ lẻ lắp gọn bằng khay pin 18650.
6. Lỗi hay gặp
| Hiện tượng | Nguyên nhân thường gặp | Cách xử lý |
|---|---|---|
| BMS nóng, ngắt khi chạy lâu | Dòng gần định mức, tản nhiệt kém | BMS dòng lớn hơn; áp tản nhiệt vào vỏ |
| Ngắt ngay khi bật máy | Dòng khởi động vượt ngưỡng quá dòng; tụ lớn của inverter | BMS dòng đỉnh cao hơn; mạch nạp trước (pre-charge) |
| Khối pin tụt nhanh ở cuối | Một nhóm cell yếu chạm ngưỡng quá xả trước | Đo từng nhóm; thay nhóm yếu, ghép lại cell đều nhau |
| Sạc không đầy | Cell lệch, cân bằng thụ động quá chậm | Sạc cân bằng từng cell một lần; BMS cân bằng chủ động cho khối lớn |
| Hỏng BMS lúc cắm giắc | Sai thứ tự dây cân bằng | Đo từng chân trước khi cắm |
| Đứt cầu chì khi chạy bình thường | Cầu chì nhỏ hơn dòng thật | Đo dòng thật; chọn cầu chì khoảng 1,25 lần |
7. Xem thêm
- Mạch sạc pin 2S, 3S, 4S từ Type-C 5 V: đấu dây và vì sao vẫn cần BMS
- Ghép pin 18650 nối tiếp, song song
- Công suất điện, nhiệt tỏa ra và dung lượng pin: W, mAh, Wh
Bài cùng cụm chủ đề: BMS là gì; nội trở pin; chọn cell 18650 theo dòng xả.
Xem thêm