- 직렬 배터리 스택에서 개별 셀 전압 측정
- 개별 셀 전압을 측정하는 차동 회로
- 회로도
- Easy EDA를 사용한 PCB 설계 및 제작
- 온라인으로 샘플 계산 및 주문
- 전압 모니터링 회로 테스트
- Arduino를 사용하여 리튬 전지 전압 측정
- Arduino 프로그래밍
- 개별 셀 전압 디스플레이 작동
전기 자동차의 주행 거리와 성능은 배터리 팩의 용량과 효율성에 따라 달라집니다. 배터리 팩을 완전한 상태로 유지하는 것은 배터리 관리 시스템 (BMS)의 책임입니다. BMS는 전지 모니터링, 균형 조정, 심지어 온도 변화로부터 보호하는 것과 같은 많은 활동을 수행하는 EV의 정교한 장치입니다. 이 배터리 관리 시스템 기사에서 이미 충분히 배웠으므로 여기에서 새로운 지 확인하십시오.
무엇이든하기 위해 BMS 의 첫 번째 단계 는 리튬 배터리 팩에있는 셀의 현재 상태를 아는 것입니다. 이는 팩에있는 셀의 전압과 전류 (때로는 온도도)를 측정하여 수행됩니다. 이 두 가지 값으로 만 BMS는 SOC 또는 SOH를 계산하고 셀 밸런싱 등을 수행 할 수 있습니다. 따라서 셀의 전압과 전류를 측정하는 것은 모든 BMS 회로에 매우 중요합니다. 단순한 파워 뱅크 나 랩톱 배터리 또는 EV /처럼 복잡한 팩입니다. 태양 전지.
이 기사에서는 리튬 배터리 팩에 사용되는 셀의 개별 셀 전압을 측정하는 방법에 대해 알아 봅니다. 이 프로젝트를 위해 직렬로 연결된 4 개의 리튬 18650 셀을 사용 하여 배터리 팩을 구성하고 연산 증폭기를 사용하여 간단한 회로를 설계하여 개별 셀 전압을 측정하고 Arduino를 사용하여 LCD 화면에 표시합니다.
직렬 배터리 스택에서 개별 셀 전압 측정
직렬로 연결된 배터리 팩에서 개별 셀 전압을 측정 할 때의 문제는 기준점이 동일하게 유지된다는 것입니다. 아래 그림은 동일합니다.
간단하게하기 위해 위에 표시된대로 4 개의 셀 모두가 4V의 전압 레벨에 있다고 가정합니다. 이제 Arduino와 같은 마이크로 컨트롤러를 사용하여 셀 전압을 측정 하면 다른 쪽 끝이 접지에 연결되어 있기 때문에 첫 번째 셀 의 전압을 측정하는 데 문제가 없습니다. 그러나 다른 셀의 경우 이전 셀과 함께 해당 셀의 전압을 측정해야합니다. 예를 들어 4 번째 셀의 전압을 측정 할 때 4 개의 셀 모두의 전압을 함께 측정합니다. 기준점을지면에서 변경할 수 없기 때문입니다.
따라서 여기에 개별 전압을 측정하는 데 도움이 될 추가 회로를 도입해야합니다. 대략적인 방법은 전위 분배기를 사용하여 전압 레벨을 매핑 한 다음 측정하는 것이지만이 방법은 판독 값의 해상도를 0.1V 이상으로 줄입니다. 따라서이 튜토리얼에서는 Op-Amp 차동 회로를 사용하여 각 셀 단자 간의 차이를 측정하여 개별 전압을 측정합니다.
개별 셀 전압을 측정하는 차동 회로
차동 증폭기로 작동 할 때 이미 Op-Amp가 반전 핀과 비 반전 핀에 제공되는 두 전압 값의 차이를 제공한다는 것을 알고 있습니다. 따라서 4 개의 셀 전압을 측정하려면 아래와 같이 3 개의 차동 연산 증폭기가 필요합니다.
이 이미지는 표현 용입니다. 실제 회로에는 더 많은 구성 요소가 필요하며이 기사의 뒷부분에서 설명합니다. 제 1 연산 증폭기 (O1) 는 2 차 셀 단자와 1 차 셀 단자 (8-4) 의 차이를 계산 하여 2 차 셀 의 전압을 측정한다. 유사하게, 연산 증폭기 O2 및 O3 측정 3 번째 와 4 번째의 셀 전압 각각. 첫 번째 셀에는 직접 측정 할 수 있으므로 연산 증폭기를 사용하지 않았습니다.
회로도
리튬 배터리 팩에서 멀티 셀 전압 을 모니터링 하기위한 전체 회로도 가 아래에 나와 있습니다. 회로는 EasyEDA를 사용하여 설계되었으며 PCB를 제작할 때도이를 사용할 것입니다.
보시다시피 두 개의 쿼드 패키지 레일 투 레일 고전압 연산 증폭기 OPA4197이 회로에 모두 총 팩 전압으로 구동됩니다. 하나의 IC (U1)는 전압 팔로워라고하는 버퍼 회로를 만드는 데 사용되며 다른 IC (U2)는 차동 증폭기 회로를 형성하는 데 사용됩니다. 셀이 개별적으로로드되는 것을 방지하기 위해 버퍼 회로가 필요합니다. 즉, 단일 셀에서 전류를 소비하지 않고 전체 팩을 형성해야합니다. 버퍼 회로는 입력 임피던스가 매우 높기 때문에 전력을 끌어 오지 않고도 셀에서 전압을 읽는 데 사용할 수 있습니다.
IC U1의 모든 연산 증폭기 4 개는 각각 4 개 셀의 전압을 버퍼링하는 데 사용됩니다. 셀의 입력 전압은 B1 +에서 B4 +로 레이블이 지정되고 버퍼링 된 출력 전압은 B1_Out에서 B4_Out으로 레이블이 지정됩니다. 이 버퍼링 된 전압은 위에서 설명한대로 개별 셀 전압을 측정하기 위해 차동 증폭기로 전송됩니다. 차동 증폭기의 이득이 1로 설정되었으므로 모든 저항의 값은 1K로 설정됩니다. 모든 저항 값을 사용할 수 있지만 저항 R13 및 R14를 제외하고 모두 동일한 값이어야합니다. 이 두 저항은 배터리의 팩 전압을 측정하는 전위 분배기를 형성하여 측정 된 셀 전압의 합계와 비교할 수 있습니다.
Rail to Rail, 고전압 Op-Amp
위의 회로에서는 두 가지 이유로 인해 OPA4197과 같은 Rail to Rail 고전압 연산 증폭기를 사용해야합니다. 두 연산 증폭기 IC는 모두 최대 (4.3 * 4) 17.2V의 팩 전압으로 작동하므로 연산 증폭기는 고전압을 처리 할 수 있어야합니다. 또한 버퍼 회로를 사용하고 있기 때문에 버퍼의 출력은 4 번째 셀 단자 의 팩 전압과 같아야합니다. 즉, 출력 전압이 연산 증폭기의 작동 전압과 같아야하므로 레일을 사용하여 레일 연산 증폭기
레일 투 레일 연산 증폭기를 찾을 수없는 경우 IC를 간단한 LM324로 교체 할 수 있습니다. 이 IC는 고전압을 처리 할 수 있지만 레일 투 레일 역할을 할 수 없으므로 U1 Op-Amp IC의 첫 번째 핀에 10k의 풀업 저항을 사용해야합니다.
Easy EDA를 사용한 PCB 설계 및 제작
이제 회로가 준비되었으므로 제작할 차례입니다. 내가 사용하는 Op-Amp는 SMD 패키지로만 제공되기 때문에 회로 용 PCB를 제작해야했습니다. 따라서 항상 그렇듯이 EasyEDA라는 온라인 EDA 도구를 사용하여 PCB를 제작했습니다. 풋 프린트가 훌륭하고 오픈 소스이기 때문에 사용이 매우 편리하기 때문입니다.
PCB를 설계 한 후 저렴한 PCB 제조 서비스를 통해 PCB 샘플을 주문할 수 있습니다. 또한 전자 부품 재고가 많고 사용자가 PCB 주문과 함께 필요한 부품을 주문할 수있는 부품 소싱 서비스를 제공합니다.
회로 및 PCB를 설계하는 동안 다른 사용자가 복사 또는 편집하고 작업의 이점을 얻을 수 있도록 회로 및 PCB 설계를 공개 할 수도 있습니다. 또한이 회로에 대해 전체 회로 및 PCB 레이아웃을 공개했습니다. 아래 링크:
easyeda.com/CircuitDigest/Multicell-Voltage-measuring-for-BMS
'Layers'창에서 레이어를 선택하여 PCB의 모든 레이어 (Top, Bottom, Topsilk, Bottomsilk 등)를 볼 수 있습니다. 최근에는 EasyEDA 의 3D보기 버튼을 사용하여 제작 후 PCB가 어떻게 보이는지에 대한 멀티 셀 전압 측정 PCB도 볼 수 있도록 3D보기 옵션도 도입했습니다.
온라인으로 샘플 계산 및 주문
이 리튬 셀 전압 측정 회로 의 설계를 완료 한 후 JLCPCB.com을 통해 PCB를 주문할 수 있습니다. JLCPCB에서 PCB를 주문하려면 Gerber File이 필요합니다. PCB의 Gerber 파일을 다운로드하려면 EasyEDA 편집기 페이지에서 Generate Fabrication File 버튼을 클릭 한 다음 거기에서 Gerber 파일을 다운로드하거나 아래 이미지와 같이 JLCPCB에서 주문을 클릭 할 수 있습니다. 그러면 아래에 표시된 스냅 샷과 같이 주문하려는 PCB 수, 필요한 구리 레이어 수, PCB 두께, 구리 무게 및 PCB 색상을 선택할 수있는 JLCPCB.com으로 리디렉션됩니다.
JLCPCB 버튼에서 주문을 클릭하면 JLCPCB 웹 사이트로 이동하여 모든 색상에 대해 $ 2 인 매우 저렴한 가격으로 모든 색상 PCB를 주문할 수 있습니다. 그들의 빌드 시간은 또한 3-5 일의 DHL 배송으로 48 시간 인 매우 적습니다. 기본적으로 주문 후 일주일 이내에 PCB를 받게됩니다. 또한 첫 주문에 대해 배송비 $ 20 할인을 제공합니다.
PCB 주문 후 날짜와 시간으로 PCB 생산 진행 상황 을 확인할 수 있습니다. 계정 페이지로 이동하여 아래 이미지와 같이 PCB 아래의 "생산 진행"링크를 클릭하여 확인합니다.
PCB를 주문한 후 며칠 후 아래 그림과 같이 멋진 포장재로 PCB 샘플을 얻었습니다.
트랙과 발자국이 올바른지 확인한 후. PCB 조립을 진행했고 암 헤더를 사용하여 Arduino Nano와 LCD를 배치하여 나중에 다른 프로젝트에 필요할 때 제거 할 수 있도록했습니다. 완전히 납땜 된 보드 는 다음과 같습니다.
전압 모니터링 회로 테스트
모든 부품을 납땜 한 후 배터리 팩을 보드의 H1 커넥터에 연결하기 만하면됩니다. 나는 우연히 미래에 연결을 변경하지 않도록 연결 케이블을 사용했습니다. 합선을 일으키고 배터리 나 회로를 영구적으로 손상시킬 수 있으므로 잘못된 방법으로 연결하지 않도록주의하십시오. 테스트에 사용한 배터리 팩이있는 PCB는 다음과 같습니다.
이제 H2 터미널의 멀티 미터를 사용하여 개별 판매 전압을 측정합니다. 단자에는 전류가 측정되는 셀 전압을 식별하기 위해 숫자가 표시되어 있습니다. 여기에서 회로가 작동하고 있다는 결론을 내릴 수 있습니다. 그러나 더 흥미롭게 만들기 위해 LCD를 연결하고 Arduino를 사용하여 이러한 전압 값을 측정하고 LCD 화면에 표시합니다.
Arduino를 사용하여 리튬 전지 전압 측정
Arduino를 PCB에 연결하는 회로는 다음과 같습니다. Arduino Nano를 LCD에 연결하는 방법을 보여줍니다.
PCB의 헤더 핀 H2는 위와 같이 Arduino 보드의 아날로그 핀에 연결되어야합니다. 아날로그 핀 A1 ~ A4는 각각 4 개의 셀 전압을 측정하는 데 사용되며 핀 A0은 P1의 헤더 핀 v '에 연결됩니다. 이 v '핀은 전체 팩 전압을 측정하는 데 사용할 수 있습니다. 또한 P1의 첫 번째 핀을 Arduino의 Vin 핀에 연결하고 P1의 세 번째 핀을 Arduino의 접지 핀에 연결하여 배터리 팩으로 Arduino에 전원을 공급했습니다.
배터리 팩의 4 개 셀 전압과 팩 전압을 모두 측정하여 LCD에 표시하는 프로그램을 작성할 수 있습니다. 더 흥미롭게 만들기 위해 4 개의 셀 전압을 모두 추가하고 값을 측정 된 팩 전압과 비교하여 실제로 전압을 측정하는 정도를 확인했습니다.
Arduino 프로그래밍
전체 프로그램은이 페이지 끝에서 찾을 수 있습니다. 프로그램은 매우 간단합니다. 아날로그 읽기 기능을 사용하여 ADC 모듈을 사용하여 셀 전압을 읽고 LCD 라이브러리를 사용하여 LCD에 계산 된 전압 값을 표시합니다.
float Cell_1 = analogRead (A1) * (5.0 / 1023.0); // 1 차 셀 전압 측정 lcd.print ("C1:"); lcd.print (Cell_1);
위의 스 니펫에서 셀 1의 전압을 측정하고 5/1023을 곱하여 0 ~ 1023 ADC 값을 실제 0 ~ 5V로 변환했습니다. 그런 다음 계산 된 전압 값을 LCD에 표시합니다. 마찬가지로 우리는 4 개의 셀 모두와 전체 배터리 팩에 대해서도이 작업을 수행합니다. 또한 가변 총 전압을 사용하여 모든 셀 전압을 합산하여 아래와 같이 LCD에 표시했습니다.
float Total_Voltage = Cell_1 + Cell_2 + Cell_3 + Cell_4; // 측정 된 전압 값 4 개를 모두 추가합니다. lcd.print ("Total:"); lcd.print (Total_Voltage);
개별 셀 전압 디스플레이 작동
회로와 코드가 준비되면 코드를 Arduino 보드에 업로드하고 파워 뱅크를 PCB에 연결합니다. 이제 LCD는 아래 그림과 같이 4 개 셀 모두의 개별 셀 전압을 표시해야합니다.
보시다시피 셀 1 ~ 4에 표시된 전압은 각각 3.78V, 3.78V, 3.82V 및 3.84V입니다. 그래서 저는 멀티 미터를 사용하여이 셀의 실제 전압을 확인했습니다. 그 차이는 아래 표에 나와 있습니다.
측정 된 전압 |
실제 전압 |
3.78V |
3.78V |
3.78V |
3.78V |
3.82V |
3.81V |
3.84V |
3.82V |
보시다시피 우리는 셀 1과 2에 대해 정확한 결과를 얻었지만 셀 3과 4에 대해 200mV만큼 높은 오류가 있습니다. 이것은 우리의 설계에서 예상되는 것 같습니다. 연산 증폭기 미분기 회로를 사용하고 있기 때문에 셀 수가 증가하면 측정 된 전압의 정확도가 낮아집니다.
그러나이 오류는 수정 된 오류이며 프로그램에서 샘플 판독 값을 취하고 오류를 수정하기 위해 승수를 추가하여 수정할 수 있습니다. 다음 LCD 화면에서 측정 된 전압과 전위 분배기를 통해 측정 된 실제 팩 전압의 합을 볼 수도 있습니다. 동일한 내용이 아래에 나와 있습니다.
측정 된 전압의 합은 15.21V이고 아두 이노의 A0 핀을 통해 측정 된 실제 전압은 15.22V입니다. 따라서 차이는 나쁘지 않은 100mV입니다. 이러한 유형의 회로는 전원 은행이나 노트북 배터리와 같이 적은 수의 리에 사용할 수 있습니다. 전기 자동차 BMS는 100mV의 오차도 허용되지 않기 때문에 LTC2943과 같은 특수 유형의 IC를 사용합니다. 그럼에도 불구하고 우리는 가격이 제약되는 소규모 회로에 대해이를 수행하는 방법을 배웠습니다.
설정의 전체 작업은 아래 링크 된 비디오에서 찾을 수 있습니다. 프로젝트를 즐겼고 유용한 정보를 얻었기를 바랍니다. 질문이 있으면 댓글 섹션에 남겨 두거나 포럼을 사용하여 더 빠른 답변을 받으세요.