給電の中断を防ぐためのスマートなバッテリ・バックアップ【Part 3】バッテリ管理システム

概要

Open Compute Project(OCP)は、データ・センター向けの製品の設計とベスト・プラクティスを企業間で共有できるようにすることを目指しています。Open Rack Version 3(ORV3)は、そのOCPが公開した仕様です。同仕様に準拠するバッテリ・バックアップ・ユニット(BBU:Battery Backup Unit)では、バッテリ管理(バッテリ・マネージメント)システム(BMS:Battery Management System)が重要な役割を果たします。本稿では、そうしたBBU向けにアナログ・デバイセズが開発したリファレンス設計を紹介します。特に、その構成要素であるBMS用のモニタICとアルゴリズムに焦点を絞って解説を進めることにします。すべてのデータ・センターにおいて、BBUのBMSは、SOC(State of Charge)、SOH(State of Health)、電力の監視/調整を行うことにより、バッテリ・パックの安全性を確保します。BMSはデータ・センターにおける複雑かつ重要なコンポーネントであり、その設計と実装には細心の注意を払わなければなりません。

はじめに

アナログ・デバイセズが開発したBBUのリファレンス設計はどのようなものなのでしょうか。それについて理解する上では、BMSの機能や動作を把握することが重要になります。BMSは、バッテリの状態を監視(モニタリング)し、その結果を踏まえて調整を実施します。それにより、バッテリの各パラメータの値が安全な範囲内に維持されます。具体的には、バッテリ・スタックの電圧、温度、スタック全体の電流レベルなどを監視し、充電/放電サイクルを管理するということが行われます。堅牢性の高いBMSを実装すれば、システム・レベルのソリューションの効率と安全性を最適化することができます。また、システムの性能を最大化するためには、バッテリの寿命を最大限に延ばすことも必要です。気付かないうちに過充電や過放電が何度も繰り返されると、バッテリの状態は劣化して寿命が短くなります。この問題を回避するためには、バッテリのSOHを注意深く監視し、バッテリを適切に使用しなければなりません。そうすれば、バッテリの性能を最大限に引き出しつつ、本来の寿命が尽きるまでに停止したり故障したりするのを防ぐことができます。

バッテリ・スタック全体の状態を把握するためには、バッテリのSOCを正確に把握しなければなりません。バッテリの容量は時間の経過と共に減少しますが、放電が完全に行われると、そのスピードが加速する可能性があります。従って、バッテリの寿命を延ばすためには、バッテリの充電レベルを20%~80%の間に保つべきです。バッテリのSOCを把握することにより、BBUモジュールをより長い期間にわたって機能させることが可能になります。

SOHとSOC以外にも十分に理解しておくべきパラメータがあります。それがDOD(Depth of Discharge)です。再充電が可能なバッテリを使用する場合、DODは検討すべき重要な項目となります。DODというパラメータは、バッテリの容量に対する、1回の放電サイクルで消費される電力量の割合(%)を表します。一般に、バッテリの寿命を引き延ばすためには、DODが20%未満になるまでバッテリを放電するのは避けるべきだとされています。ただ、バッテリの中には、それ以上の放電を行っても深刻なダメージを受けることがないタイプのものも存在します。特定のバッテリに対して推奨されるDODの値については、製造元のガイドラインを参照してください。

また、バッテリのケミストリに関連する検討も欠かせません。BBUモジュールのリファレンス設計においても、熟慮の結果、リチウム・イオン・バッテリを選択しています。その理由の1つは、同バッテリが広く使用されている点にあります。また、同バッテリは、OCPのORV31で求められる要件にシームレスに適合します。その適合性を裏付ける根拠としては、同バッテリの優れた性質が挙げられます。具体的には、卓越したエネルギー密度を備えることと、非常に軽量であることが重要なポイントです。リチウム・イオン・バッテリのケミストリについて更に詳しく検討すると、より明確な理由が浮かび上がります。同バッテリの性能、安全性、特性、全体的な耐久性は、その組成によって実現されているからです。

BBUの設計にあたっては、もう1つ検討しなければならないことがあります。それは、セル・バランシングの機能についてです。セル・バランシングは、バッテリに関連する技術の中でも重要な概念だと言えます。効率的かつ高性能のバッテリに対する需要は高まり続けています。そうしたなか、最適なセル・バランシングを実現することがますます重要になっています。セル・バランシングのプロセスでは、バッテリ・パック内の個々のセルの電圧またはSOCを均等化するということが行われます。複数のセルから成るバッテリ・パックにおいて、各セルはそれぞれに異なる特性を備えています。また、時間の経過に伴って、ばらつきが生じる可能性もあります。製造上の許容誤差、セルの容量のばらつき、使用パターンの差異などの要因によって、セルのバランスが崩れる可能性があるということです。セルのバランスが崩れると、全体的なバッテリ容量の減少、効率の低下、更にはバッテリ・パックの早期の故障といった問題が生じるおそれがあります。これらの問題を回避するために、BBUの設計にはパッシブ・バランサが組み込まれます。パッシブなセル・バランシングでは、抵抗を使用することによって電圧レベルが高いセルから余剰のエネルギーを放出します。これは、比較的簡素で費用対効果の高い方法ですが、エネルギーの損失と発熱が生じる可能性があります。セル・バランシングの役割は、バッテリ・パック内の各セルを最適な状態で動作させることです。それにより、蓄電システムの全体的な効率と有用性を高められます。また、BBUモジュールの動作の持続可能性と信頼性の向上にも役立ちます。本稿で紹介するBBUのリファレンス設計では、BMS用のマイクロコントローラとして「MAX32625」を採用しています。同マイクロコントローラは、図1に示す構成で使用します。それにより、以下に示す2つの重要な処理が実現されます。

図1. BMS用のモニタIC(ADBMS6948)とBMS用のマイクロコントローラ(MAX32625)の接続

図1. BMS用のモニタIC(ADBMS6948)とBMS用のマイクロコントローラ(MAX32625)の接続

  1. BMS用のマルチセル・バッテリ・モニタ 「ADBMS6948」(以下、BMS用のモニタIC)との間で通信を行うことにより、セルの電圧、セルの温度、低電圧、過電圧、バッテリ・スタック全体の電流レベルに関するテレメトリ・データを取得します。
  2. BMS用のモニタICから収集したすべてのテレメトリ・データを、I2Cによる通信を介してメインのマイクロコントローラに伝送します。

BMS用のマイクロコントローラは、SPI(Serial Peripheral Interface)のプロトコルを介してBMS用のモニタIC(ADBMS6948)との間で通信を実施します。BMS用のマイクロコントローラから適切なコマンドのコードを送信することにより、BMS用のモニタICは、その動作を継続しつつテレメトリ・データを収集します。図2に示したように、BMS用のモニタICから収集したデータは、BMS用のマイクロコントローラに送信されて処理されます。

図2. BMS用のマイクロコントローラで行われる処理。同マイクロコントローラは、BMS用のモニタICに対してコマンドを送信します。この図は、データを収集/保存するまでの処理の流れを表しています。

図2. BMS用のマイクロコントローラで行われる処理。同マイクロコントローラは、BMS用のモニタICに対してコマンドを送信します。この図は、データを収集/保存するまでの処理の流れを表しています。

BMS用のマイクロコントローラには、もう1つ重要な役割があります。それは、収集したデータをメインのマイクロコントローラに送信することです。それらのデータは、充電/放電のアルゴリズムで活用されます。また、ファンの速度の制御にも使用されます。両マイクロコントローラの間のデータ転送は、I2Cベースの通信によって行われます。その際、メインのマイクロコントローラは、BMS用のマイクロコントローラのレジスタの値を読み出します。表1に、BMS用のマイクロコントローラのレジスタ・マップを示しました。

表1. BMS用のマイクロコントローラのレジスタ・マップ
レジスタ アドレス バイト長
CMD_Voltage 0x00 0x16
CMD_Temperature 0x01 0x08
CMD_SOC 0x02 0x16
CMD_Fan_Error 0x03 1
CMD_EOL 0x04 1
MD_Stop_Discharge 0x05 1
CMD_BMS_Fault 0xE0 0x06
CMD_Manufactured_Date 0xF0 0x07
CMD_Serial_Number 0xF1 0x07

BMS用のマイクロコントローラのレジスタは、現時点では読み取り専用であることに注意してください。各レジスタの値のうち、製造日とシリアル・ナンバーは1回だけ取得され、メインのマイクロコントローラの外付けEEPROMに保存されます。

セルの検出とバランシング

ここからは、セルを対象とする各種の処理について詳しく説明していきます。

セルの充電方式

一般に、セルの充電方式としては次の2つが使われます。1つは定電圧(CV:Constant Voltage)方式、もう1つは定電流(CC:Constant Current)方式です。これらは、充電プロセスを最適化してバッテリの寿命を延伸するために用いられます。

CV方式の充電

充電初期のフェーズではCV方式の充電が行われます。つまり、バッテリ・スタックに固定電圧を印加するということです。充電のプロセスが始まると、BBUモジュールは充電モードで動作します。44Vの安定した電圧レベルを維持しつつ、バッテリのSOCの上昇に伴って5Aの充電電流を徐々に減少させるといった処理が行われます。この方法は、過充電の防止という面で特に有用です。なぜなら、電圧が一定に保たれ、バッテリの安全な電圧範囲から外れることがないからです。バッテリ・スタックの電圧が37V~40V、またはあらかじめ定義された閾値に達した時点で、チャージャの動作については異なる充電フェーズに移行させることができます。例えば、その時点で充電電流を5Aから0.5Aに減少させるといった具合です。

CC方式の充電

CC方式の充電では、バッテリ・スタックの端子に固定値の充電電流を印加します。バッテリの電圧は徐々に上昇していきますが、その間の充電電流は5Aに固定されているといった具合です。この方法は、初期の充電レベルが低いバッテリ・スタックに対して急速充電を行いたい場合に特に有用です。また、この方法では、特定の電圧レベルに達するまではバッテリ・スタックに流れ込む電流量を確実に制御することになります。バッテリ・スタックの電圧が所定の値に達したら、充電プロセスを異なるフェーズに移行させることができます。例えば、固定の充電電流の値を5Aから2Aに減少させるといった具合です。あるいは、CC方式の充電からCV方式の充電に移行することも可能です。

多くの場合、BBUモジュールでバッテリ・スタックの充電を行う際には、CV方式の充電とCC方式の充電を組み合わせて使用します。そうすれば、最適な充電特性が得られるからです。その場合、初期のフェーズではCC方式によってバッテリにエネルギーを急速に供給し、続くフェーズではCV方式によって電圧を制限することで過充電を防ぐといったことが行われます。このような方法を採用することにより、効率的な充電を実施しつつバッテリの寿命を延ばすことができます。また、バッテリ・パックの安全性と性能を維持することが可能になります。BBUモジュールを開発する際には、CV方式とCC方式を併用する充電機構を適切に実装することが不可欠です。


セルの検出方法

BMSにおいては、セルの検出方法が極めて重要な要素になります。そのための回路は、バッテリ・パック内の個々のセルの電圧と状態を正確に把握することを目的として設計されます。セルの検出の実現手段としては、高度なセンシング回路と測定アルゴリズムを組み合わせたものが使用されます。それにより、個々のセルの電圧、温度、全体的な状態に関するリアルタイムのデータを収集することが可能になります。得られた情報に基づいて、充電、放電、バランシングの処理に関する意思決定が行われます。その結果、バッテリ・パックの最適な性能、安全性、寿命が確保されます。効果的なセルの検出手法は、現代的な蓄電システムの効率と信頼性を維持するための最も重要な要素だと言えます。

BMS用のモニタICであるADBMS6948の場合、バッテリ・スタックのセルの検出には11個のA/Dコンバータ(ADC)を使用できます。つまり、11個の差動セル入力に専用のものとして、それらを割り当てることが可能です。ここで、バッテリ・スタックが11S6Pの構成(直列に接続した11個のセルを6並列に接続)であったとします。その場合、バッテリ・スタックはBMS用のモニタICのADC(C-ADC)に対応するC0~C10ピンに接続します。C-ADCの入力電圧範囲は-2.5V~5.5V、サンプリング周波数は約4MHzであり、16ビットの結果(LSBは150μVに相当)が1ミリ秒ごとに生成されます。また、ADBMS6948は別のADC(S-ADC)を11個内蔵しています。これらは、11個の差動入力を対象として同時測定を行う場合に専用のものです。S-ADCとバッテリ・スタックの接続にはSピンと呼ばれるピンを使用します。S-ADCの入力電圧範囲は0V~5.5V、サンプリング周波数は約4MHzであり、13ビットの結果(LSBは1.6mVに相当)が8ミリ秒ごとに生成されます。S-ADCを使用すれば、C-ADCを使用するのとは全く異なる方法によって、セルの電圧の冗長測定を実現することができます。


パッシブなセル・バランシング

BMSでは、パッシブなセル・バランシングが一般的に使用されています。この手法では、個々のセルと並列に接続されたMOSFETとパッシブ・コンポーネント(特に抵抗)を組み合わせて使用します。これらのコンポーネントは、電圧ブリーダまたはエネルギー放出器としての役割を担います。つまり、高い電圧(または高いエネルギー状態)のセルから、制御された形で余剰のエネルギーを放出することを促進します。それにより、すべてのバッテリ・セルの電位(またはエネルギー状態)が徐々に均等化されます。結果として、長い期間にわたり電圧/エネルギーの均衡状態が維持されることになります。

バッテリ・パック内のセルのバランスが崩れると、BMSは電圧の高いセルを対象として放電の処理を行います。それによって均衡化が図られます。ADBMS6948の場合、個々のセルの放電にはS-ADCに対応するピンを使用できます。それらのピンに対応する内蔵MOSFETを使用してセルの放電が行われます。S-ADCに対応する各ピンは、個別に、またはPWM(Pulse Width Modulation)を使用して連続的に制御することができます。PWMA、PWMB、CFGBの各レジスタを設定すれば、BMS用のマイクロコントローラがスリープ・モードで動作している間にもセルの均衡化を図ることが可能です。


セルの充電にクーロン・カウンタを利用する

クーロン・カウンタは、主にバッテリや回路に流入/流出する電荷量(単位はC)を正確に測定するために使用されます。このような測定を行うことにより、バッテリ・スタックの充放電をよりきめ細かく制御することができます。その結果、より正確に容量を監視したり、効率を改善したり、バッテリ・スタックの寿命を引き延ばしたりすることが可能になります。

BMS用のモニタICであるADBMS6948には、クーロン・カウンタが集積されています。それにより、充電プロセスの最中にバッテリに流入する電荷の量を監視することができます。クーロン・カウンタは、集積型の電流センサーまたはチャージ・モニタとしても知られています。これを使用して、バッテリに流入/流出する総電荷量を測定します。セルを充電する際には、バッテリに供給される充電用の電荷の量がクーロン・カウンタによって監視されることになります。総電荷量は、バッテリに流れ込む電流を測定し、その値を時間で積分することによって算出されます。それによって、バッテリのSOCを推定することが可能になります。それに対応する形で充電用のアルゴリズムを実装すれば、充電のプロセスを最適化することができます。

上述したように、ADBMS6948のクーロン・カウンタの基本的な動作は、バッテリ・スタックに流入/流出する電流を時間で積分して総電荷量を算出することです。その流れを詳しく説明すると、以下のようになります。

  • 電流の測定:バッテリ・スタックに流入/流出する電流の値を測定します。この測定には電流センサーを使用します。電流センサーとしては、通常、バッテリ・スタックのロー・サイドに接続されるシャント抵抗などが使用されます。
  • 積分:ADBMS6948は、測定した電流値を時間で積分します。具体的には、一定の時間間隔の電流値を合計することにより、累積の電荷量を計算します。
  • 容量の計算:累積電荷量をAh単位またはC単位の値に変換します。それにより、バッテリ・スタックの残容量に関する情報を得ることができます。
  • 監視と表示:容量を算出する処理を行ったら、その結果をメインのマイクロコントローラに転送し、更なる処理を行うためにGUI(Graphical User Interface)に表示します。その情報は、バッテリの管理、SOCの判定、過充電/過放電の防止に役立ちます。

充電を行う際、クーロン・カウンタはセルに流れる電流を連続的に測定して時間積分を行います。バッテリの初期のSOCを把握しておけば、その初期値に積分で得た電荷量を加えることによって充電中のSOCを推定することができます。この推定処理は、過充電の防止に役立ちます。それだけでなく、温度、バッテリの使用年数、ケミストリなどに基づいて充電プロセスの最適化を行うアルゴリズムの実装が可能になります。

アナログ・デバイセズは、バッテリのセル・バランシングと寿命の最適化を実現するためのヒントを提供する記事を公開しています。セル・バランシングについては「パッシブ・セル・バランシングにより、全バッテリ・セルの電圧を均一化」と「バッテリのアクティブ・セル・バランシング」を参照してください。セルの特性評価については「残量ゲージ用にリチウム電池の特性を測定する方法」が役に立ちます。

まとめ

本稿で説明したとおり、BBUの構成要素としてBMS用のモニタICであるADBMS6948を採用すれば、非常に重要なメリットが得られます。同ICを使用して構成したBMSは、バッテリ・システム全体の性能、安全性、信頼性、寿命の改善につながる多数のメリットを提供します。優れたBMSを採用すれば、バッテリの性能を最適化することができます。具体的には、バッテリの寿命の延伸と容量の最大化を図ることが可能になり、蓄電能力を効率的に利用できることが保証されます。また、充電/放電のプロセスをアクティブに管理することが可能になることから、バッテリを損傷させるおそれのある過充電、過放電、過熱を防止できます。バッテリ・システムでは、安全性が特に重要な要件になります。ADBMS6948を採用したBMSには、熱暴走を防いで潜在的な危険性を最小限に抑えるための安全機能と監視機構が組み込まれていることになります。それらによって、過電流、過電圧、異常な温度に対する保護の機能を提供することで、バッテリ・システムと周辺環境の保護を実現することが可能になります。エネルギー効率を改善できることも、BMSが提供する主要なメリットの1つです。充電/放電のプロセスを最適化すれば、エネルギー損失を最小限に抑え、BBUの全体的な効率を高められます。このことは、コストの削減、環境に対する影響の緩和、利用可能なエネルギー資源の効率的な使用につながります。

BMSは、バッテリ・スタックのSOCとSOHを正確に監視/推定する役割も担います。それらの情報は、バッテリを適切に管理し、残余動作時間を計算して、保守や交換を計画する際に非常に役に立ちます。正確な測定/監視に向けて、BMSにクーロン・カウンタを実装することも重要です。それによって得られる情報は、様々なアプリケーションにおいてバッテリの管理を効率化し、その寿命を延伸するために不可欠な要素です。また、システムの信頼性を高め、予期せぬ故障の確率を下げることにもつながります。

アナログ・デバイセズはBMS用のモニタICとしてADBMS6948を提供しています。このICは、BBUに多大なメリットをもたらします。言い換えれば、同ICは、データ・センターの最大限の性能、安全性、信頼性を保証する上で重要な役割を果たします。システムの耐用期間を延ばすために、すべてのユーザが知っておくべき重要な情報を提供してくれます。

本連載のPart 4(次回)では、BBUシェルフの動作について解説することにします。具体的には、アナログ・デバイセズがGUIをどのように設計/実装しているのか説明します。また、ユーザはBBUシェルフの6つのBBUモジュールとどのように通信を行い、どのようにデータを収集すればよいのかを明らかにします。BBUシェルフ専用のマイクロコントローラとしての役割を果たすMAX32625の機能と動作についても解説する予定です。

なお、本連載のPart 1「給電の中断を防ぐためのスマートなバッテリ・バックアップ【Part1】電気設計と機械設計」では、BBUの電気設計と機械設計について説明しました。同Part 2「給電の中断を防ぐためのスマートなバッテリ・バックアップ【Part2】BBUのマイクロコントローラの機能と動作」では、メインのマイクロコントローラ上で稼働するソフトウェアについて詳細に解説しています。これら2つの記事も、ぜひ参考にしてください。

謝辞

1 David Sun「Open Rack/SpecsAndDesigns(Open Rack - 仕様と設計)」Open Compute Project..

著者

Christian Cruz

Christian Cruz

Christian Cruzは、アナログ・デバイセズ(フィリピン)のプロダクト・アプリケーション・スタッフ・エンジニアです。2020年に入社しました。現在は、コンスーマ/クラウド・ベース・インフラストラクチャ事業部門やシステム通信アプリケーション向けのパワー・マネージメント・ソリューションを担当。14年間にわたり、パワー・マネージメント・ソリューションの開発、AC/DC電力変換、DC/DC電力変換などを含むパワー・エレクトロニクスの設計や電源制御用ファームウェアの設計に携わってきました。ザ・イースト大学(フィリピン マニラ)で電子工学の学士号を取得しています。

Marvin Neil Cabueñas

Marvin Neil Cabueñas

Marvin Neil Solis Cabueñasは、アナログ・デバイセズのシニア・ソフトウェア・システム設計エンジニアです。パワー事業部門で様々なプロジェクトを担当。組み込みシステムのプログラミング、デジタル信号処理、シミュレーション用のモデリングなど、様々な分野における10年以上の経験を有しています。2021年に入社する前は、Azeus Systems Philippinesにシステム・エンジニアとして勤務。2014~2017年にはTechnistock, Philippinesでネットワーク・エンジニア、2017~2020年にはNokia Technology Center Philippinesで研究開発エンジニアとして業務に携わっていました。フィリピン マニラのデ・ラ・サール大学で電子工学の学士号を取得。現在は、フィリピン大学で電気工学の修士号の取得を目指しています。