- 直列バッテリスタックの個々のセル電圧の測定
- 個々のセル電圧を測定するための差動回路
- 回路図
- EasyEDAを使用したPCBの設計と製造
- オンラインでのサンプルの計算と注文
- 電圧監視回路のテスト
- Arduinoを使用したリチウム電池電圧の測定
- Arduinoのプログラミング
- 個々のセル電圧表示が機能している
電気自動車の走行距離と性能は、バッテリーパックの容量と効率によって異なります。バッテリーパックを完全な状態に維持することは、バッテリー管理システム(BMS)の責任です。BMSは、EV内の洗練されたユニットであり、セルの監視、セルのバランス調整、さらには温度変化からの保護など、多くのアクティビティを実行します。このバッテリー管理システムの記事ですでに十分に学習しているので、ここで初めての場合はチェックしてください。
何かをするために、BMSの最初のステップは、リチウムバッテリーパック内のセルの現在のステータスを知ることです。これは、パック内のセルの電圧と電流(場合によっては温度も)を測定することによって行われます。これらの2つの値でのみ、BMSはSOCまたはSOHを計算し、セルバランシングなどを実行できます。したがって、セルの電圧と電流の測定は、単純なパワーバンクやラップトップバッテリー、EV /のような複雑なパックなどのBMS回路にとって不可欠です。太陽電池。
この記事では、リチウム電池パックで使用されているセルの個々のセル電圧を測定する方法を学習します。このプロジェクトのために、直列に接続された4つのリチウム18650セルを使用してバッテリーパックを形成し、オペアンプを使用して単純な回路を設計し、個々のセル電圧を測定して、Arduinoを使用してLCD画面に表示します。
直列バッテリスタックの個々のセル電圧の測定
直列接続されたバッテリーのパック内の個々のセル電圧を測定する際の問題は、基準点が同じままであるということです。下の写真は同じことを示しています
簡単にするために、上記のように4つのセルすべてが4Vの電圧レベルにあると仮定します。ここで、Arduinoのようなマイクロコントローラーを使用してセル電圧を測定する場合、もう一方の端がグランドに接続されているため、最初のセルの電圧を測定するのに問題はありません。ただし、他のセルについては、前のセルと一緒にそのセルの電圧を測定する必要があります。たとえば、4番目のセルの電圧を測定する場合は、4つのセルすべての電圧を一緒に測定します。これは、基準点を地面から変更できないためです。
したがって、個々の電圧を測定するのに役立つ追加の回路をここに導入する必要があります。大まかな方法は、分圧器を使用して電圧レベルをマッピングしてから測定することですが、この方法では、読み取り値の分解能が0.1V以上に低下します。したがって、このチュートリアルでは、オペアンプ差動回路を使用して各セル端子間の差を測定し、個々の電圧を測定します。
個々のセル電圧を測定するための差動回路
差動アンプとして動作するとき、オペアンプがその反転ピンと非反転ピンに提供される2つの電圧値の差を与えることはすでに知っています。したがって、4つのセル電圧を測定するためには、以下に示すように3つの差動オペアンプが必要です。
この画像は表現のみを目的としていることに注意してください。実際の回路にはより多くのコンポーネントが必要であり、この記事の後半で説明します。第一オペアンプO1措置2の電圧ND 2との差分演算することにより細胞NDセル端子と1番目の(8-4)であるセル端末。同様に、オペアンプO2とO3は、それぞれ3番目と4番目のセル電圧を測定します。最初のセルは直接測定できるため、オペアンプは使用していません。
回路図
リチウム電池パックのマルチセル電圧を監視するための完全な回路図を以下に示します。回路はEasyEDAを使用して設計されており、PCBの製造にも同じものを使用します。
ご覧のとおり、回路には2つのクアッドパッケージレールツーレール高電圧オペアンプOPA4197があり、どちらもパックの合計電圧で駆動されます。一方のIC(U1)は、メイクバッファ回路(電圧フォロワ)として使用され、もう一方のIC(U2)は、差動増幅器回路を形成するために使用されます。セルが個別にロードされるのを防ぐためにバッファ回路が必要です。これは、単一のセルから電流を消費するのではなく、パック全体を形成するだけです。バッファ回路の入力インピーダンスは非常に高いため、セルから電力を引き出すことなく、セルから電圧を読み取るために使用できます。
IC U1の4つのオペアンプはすべて、4つのセルの電圧をそれぞれバッファリングするために使用されます。セルからの入力電圧にはB1 +からB4 +のラベルが付けられ、バッファリングされた出力電圧にはB1_OutからB4_Outのラベルが付けられます。次に、このバッファされた電圧は、上記のように個々のセル電圧を測定するために微分増幅器に送信されます。差動アンプのゲインが1に設定されているため、すべての抵抗の値は1Kに設定されています。任意の抵抗値を使用できますが、抵抗R13とR14を除いて、すべて同じ値である必要があります。これらの2つの抵抗は、バッテリーのパック電圧を測定するための分圧器を形成し、測定されたセル電圧の合計と比較できるようにします。
Rail to Rail、高電圧オペアンプ
上記の回路では、2つの理由から、OPA4197のようなレールツーレール高電圧オペアンプを使用する必要があります。両方のオペアンプICは、最大(4.3 * 4)17.2Vのパック電圧で動作するため、オペアンプは高電圧を処理できる必要があります。また、バッファ回路を使用しているため、バッファの出力は4番目のセル端子のパック電圧と等しくなければなりません。つまり、出力電圧はオペアンプの動作電圧と等しくなければなりません。したがって、レールを使用する必要があります。レールオペアンプ
レールツーレールオペアンプが見つからない場合は、ICを単純なLM324に交換できます。このICは高電圧を処理できますが、レールツーレールとして機能することはできないため、U1オペアンプICの最初のピンに10kのプルアップ抵抗を使用する必要があります。
EasyEDAを使用したPCBの設計と製造
回路の準備ができたので、それを製造する時が来ました。私が使用しているオペアンプはSMDパッケージでしか入手できないため、回路用のPCBを製造する必要がありました。そのため、いつものように、EasyEDAと呼ばれるオンラインEDAツールを使用してPCBを製造しました。これは、フットプリントのコレクションが豊富でオープンソースであるため、非常に使いやすいためです。
PCBを設計した後、低コストのPCB製造サービスでPCBサンプルを注文できます。また、電子部品の在庫が豊富で、ユーザーがPCBの注文と一緒に必要な部品を注文できる、部品調達サービスも提供しています。
回路とPCBを設計する際に、回路とPCBの設計を公開して、他のユーザーがそれらをコピーまたは編集して作業を活用できるようにすることもできます。また、この回路の回路とPCBのレイアウト全体を公開しました。確認してください。以下のリンク:
easyeda.com/CircuitDigest/Multicell-Voltage-measuring-for-BMS
「レイヤー」ウィンドウからレイヤーを選択することにより、PCBの任意のレイヤー(トップ、ボトム、トップシルク、ボトムシルクなど)を表示でき ます。最近、彼らは3Dビューオプションも導入したので 、EasyEDAの3Dビューボタンを使用して、製造後のマルチセル電圧測定PCBの外観を表示することもでき ます。
オンラインでのサンプルの計算と注文
このリチウム電池電圧測定回路の設計が完了したら、 JLCPCB.comからPCBを注文できます。 JLCPCBからPCBを注文するには、ガーバーファイルが必要です。 PCBのガーバーファイルをダウンロードするには、EasyEDAエディターページの[Generate Fabrication File]ボタンをクリックし、そこからガーバーファイルをダウンロードするか、下の画像に示すように[Order atJLCPCB]をクリックします。これにより、JLCPCB.comにリダイレクトされます。ここで、注文するPCBの数、必要な銅層の数、PCBの厚さ、銅の重量、さらにはPCBの色を選択できます(以下に示すスナップショットのように)。
JLCPCBボタンで注文をクリックすると、JLCPCB Webサイトに移動します。ここでは、すべての色で2ドルの非常に低いレートで任意のカラーPCBを注文できます。ビルド時間も非常に短く、DHLで3〜5日で48時間です。基本的に、注文から1週間以内にPCBを入手できます。さらに、彼らはまたあなたの最初の注文のために輸送の20ドルの割引を提供しています。
PCBを注文した後、PCB の 製造進捗状況 を日付と時刻 で確認 できます。アカウントページに移動し、下の画像に示すように、PCBの下にある[ProductionProgress]リンクをクリックして確認します。
PCBを注文して数日後、下の写真に示すように、PCBサンプルを素敵なパッケージに入れました。
トラックとフットプリントが正しいことを確認した後。PCBの組み立てを進め、Arduino NanoとLCDを配置するためにメスのヘッダーを使用して、他のプロジェクトで必要になったときに後で削除できるようにしました。完全に はんだ付けされたボード は以下のようになります
電圧監視回路のテスト
すべてのコンポーネントをはんだ付けした後、バッテリーパックをボードのH1コネクタに接続するだけです。将来、誤って接続を変更しないように、接続ケーブルを使用しました。ショートの原因となり、バッテリーや回路に永久的な損傷を与える可能性があるため、間違った方法で接続しないように十分注意してください。テストに使用したバッテリーパックを搭載したPCBを以下に示します。
次に、H2端子のマルチメータを使用して、個々の販売電圧を測定します。端子には、現在測定されているセル電圧を識別するための番号が付けられています。ここで、回路が機能していると結論付けることができます。しかし、もっと面白くするために、LCDを接続し、Arduinoを使用してこれらの電圧値を測定し、LCD画面に表示してみましょう。
Arduinoを使用したリチウム電池電圧の測定
ArduinoをPCBに接続する回路を以下に示します。ArduinoNanoをLCDに接続する方法を示しています。
PCBのヘッダーピンH2は、上記のようにArduinoボードのアナログピンに接続する必要があります。アナログピンA1〜A4は、それぞれ4つのセル電圧を測定するために使用され、ピンA0はP1のヘッダーピンv 'に接続されています。このv 'ピンは、パックの総電圧を測定するために使用できます。また、P1の1番目のピンをArduinoのVinピンに接続し、P1の3番目のピンをArduinoのグランドピンに接続して、バッテリーパックでArduinoに電力を供給します。
バッテリーパックの4つのセル電圧とパック電圧をすべて測定し、LCDに表示するプログラムを作成できます。さらに面白くするために、4つのセル電圧すべてを追加し、その値を測定されたパック電圧と比較して、実際に電圧を測定している距離を確認しました。
Arduinoのプログラミング
完全なプログラムは、このページの最後にあります。プログラムは非常にシンプルで、アナログ読み取り機能を使用してADCモジュールを使用してセル電圧を読み取り、LCDライブラリを使用して計算された電圧値をLCDに表示します。
float Cell_1 = analogRead(A1)*(5.0 / 1023.0); //最初のセル電圧を測定します 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であり、ArduinoのA0ピンを介して測定された実際の電圧は15.22Vであることがわかります。したがって、差は100mVであり、悪くはありません。これらのタイプの回路は、パワーバンクやラップトップのバッテリーのように、より少ない数のリーに使用できます。電気自動車のBMSは、100mVの誤差でさえ許容できないため、LTC2943のような特殊なタイプのICを使用します。それにもかかわらず、価格が制約となる小規模回路でそれを行う方法を学びました。
セットアップの完全な動作は、以下にリンクされているビデオで見つけることができます。あなたがプロジェクトを楽しんで、それから何か役に立つことを学んだことを願っています。質問がある場合は、コメントセクションに残すか、フォーラムを使用してより迅速に返信してください。