図1は、本発明の一実施例としての電池監視システム20の構成の概略を示す構成図である。実施例の電池監視システム20は、電池10や走行用のモータと共に電気自動車やハイブリッド自動車などに搭載され、図示するように、複数の電池セルが直列に接続されて構成される電池(バッテリ)10の状態を監視するn(≧2)個の監視ユニット22[1]〜22[n]と、n個の監視ユニット22[1]〜22[n]の制御を行なう制御ユニット40と、を備える。なお、図1では、監視ユニット22[1]〜22[n]のそれぞれで監視する電池セルの数は、3つとしたが、1つや2つ,4つ以上としてもよい。
監視ユニット22[1]〜22[n]は、それぞれ、CPUやROM,RAMを有するマイクロプロセッサ(図示せず)と、通信回路24[1]〜24[n]と、監視回路26[1]〜26[n]と、Logic回路30[1]〜30[n]と、を備える。通信回路24[1]〜24[n]と監視回路26[1]〜26[n]とは、互いに独立した回路として構成されている。通信回路24[1]〜24[n]と制御ユニット40の通信回路42とは、通信回路42,通信回路24[1]〜24[n],通信回路42の順にリング型の通信経路(トポロジ)を構成するように接続されている。監視回路26[1]〜26[n]は、それぞれ、スイッチング素子27[1]〜27[n]と、スイッチング素子27[1]〜27[n]に並列に接続された抵抗素子28[1]〜28[n]と、を備える。スイッチング素子27[1]〜27[n]は、それぞれ、例えばフォトモスリレーとして構成されている。実施例では、スイッチング素子27[1]〜27[n]は、ノーマリーオフとして構成されているものとした。抵抗素子28[1]〜28[n]は、それぞれ、抵抗値が値R[1]〜R[n]に形成されている。監視回路26[1]〜26[n]は、制御ユニット40の電源回路44に対して互いに直列に接続されている。Logic回路30[1]〜30[n]は、通信回路24[1]〜24[n]からの制御指令に応じてスイッチング素子27[1]〜27[n]を駆動する(オンオフする)。
制御ユニット40は、CPUやROM,RAMを有するマイクロプロセッサ(図示せず)と、通信回路42と、電源回路44と、電圧モニタ48と、を備える。電源回路44は、電圧が値V0の電源45と、電源45の正極側に接続されると共に抵抗値が値R0の抵抗素子46と、を備える。電圧モニタ48は、電源回路44の端子間の電圧Vaを検出する。
この電池監視システム20では、監視ユニット22[1]〜22[n]は、それぞれ電池10における監視対象の電池セルに異常が生じたときには、その旨をリング型の通信経路を介して制御ユニット40に送信する。制御ユニット40は、この情報に基づいて電池10が正常であるか否かを判定する(把握する)。
次に、こうして構成された電池監視システム20の動作、特に、監視ユニット22[1]〜22[n]の通信回路24[1]〜24[n]が正常であるか否かを診断する際の動作について説明する。実施例では、監視ユニット22[k](k:1〜n)の通信回路24[k]が正常であるか否かの診断として、通信回路24[k]が直前のユニットの通信回路から指令を受信できるか否かを診断するものとした。なお、「直前のユニットの通信回路」は、「k」が1のときには、制御ユニット40の通信回路42を意味し、「k」が2〜nのうちの何れかのときには、監視ユニット22[k−1]の通信回路24[k−1]を意味する。図2は、制御ユニット40のCPU(図示せず)により実行される診断処理ルーチンの一例を示すフローチャートである。このルーチンは、監視ユニット22[1]〜22[n]の通信回路24[1]〜24[n]の全てが正常であるときに定期的に実行される。なお、スイッチング素子27[1]〜27[n]は、上述したように、ノーマリーオフとして構成されているものとした。また、スイッチング素子27[1]〜27[n]のオンのときの抵抗値は値0であるものとした。
図2の診断処理ルーチンが実行されると、制御ユニット40のCPUは、監視ユニット22[1]〜22[n]の監視回路26[1]〜26[n]のスイッチング素子27[1]〜27[n]の全てがオンとなるように全SWオン指令を通信回路42から送信する(ステップS100)。監視ユニット22[1]〜22[n]の通信回路24[1]〜24[n]の全てが正常であれば、制御ユニット40の通信回路42からの全SWオン指令は、通信回路24[1]〜24[n]を経由して制御ユニット40の通信回路42に戻る。また、監視ユニット22[1]〜22[n]は、それぞれ、通信回路24[1]〜24[n]で全SWオン指令を受信すると、Logic回路30[1]〜30[n]によりスイッチング素子27[1]〜27[n]をオンとする。
監視ユニット22[1]〜22[n]の通信回路24[1]〜24[n]の全てが正常であるときには、通信回路24[1]〜24[n]の全てがそれぞれの直前のユニットから全SWオン指令を受信し、スイッチング素子27[1]〜27[n]の全てがオンとなる。このときには、監視回路26[1]〜26[n]のそれぞれにおける電流経路は、スイッチング素子27[1]〜27[n]となる。したがって、電源回路44の端子間の電圧Vaは、値0となる。
監視ユニット22[1]の通信回路24[1]が異常であるときには、通信回路24[1]〜24[n]の全てがそれぞれの直前のユニットの通信回路から全SWオン指令を受信しない(できない)。このため、スイッチング素子27[1]〜27[n]の全てがオフで保持される。このときには、監視回路26[1]〜26[n]のそれぞれにおける電流経路は、抵抗素子28[1]〜28[n]となる。したがって、電源回路44の端子間の電圧Vaは、抵抗素子28[1]〜28[n]の抵抗値R[1]〜R[n]と電源回路44の抵抗素子46の抵抗値R0とを用いて式(1)により得られる値となる。
また、監視ユニット22[n]の通信回路24[n]が異常であるときには、監視ユニット22[1]〜22[n−1]の通信回路24[1]〜24[n−1]が直前の監視ユニットの通信回路から全SWオン指令を受信するが、監視ユニット22[n]の通信回路24[n]が直前の監視ユニットの通信回路から全SWオン指令を受信しない。このため、スイッチング素子27[1]〜27[n−1]がオンとなると共にスイッチング素子27[n]がオフで保持される。このときには、監視回路26[1]〜26[n]のそれぞれにおける電流経路は、スイッチング素子27[1]〜27[n−1]および抵抗素子28[n]となる。したがって、電源回路44の端子間の電圧Vaは、式(2)により得られる値となる。
同様に、監視ユニット22[k](k=2〜n−1のうちの何れか)の通信回路24[k]が異常であるときには、監視ユニット22[1]〜22[k−1]の通信回路24[1]〜24[k−1]が直前の監視ユニットの通信回路から全SWオン指令を受信するが、監視ユニット22[k]〜22[n]の通信回路24[k]〜24[n]が直前の監視ユニットの通信回路から全SWオン指令を受信しない。このため、スイッチング素子27[1]〜27[k−1]がオンとなると共にスイッチング素子27[k]〜27[n]がオフで保持される。このときには、監視回路26[1]〜26[n]のそれぞれにおける電流経路は、スイッチング素子27[1]〜27[k−1]および抵抗素子28[k]〜28[n]となる。したがって、電源回路44の端子間の電圧Vaは、式(3)により得られる値となる。
ステップS100で全SWオン指令を通信回路42から送信すると、電圧モニタ48から電源回路44の端子間の電圧Vaを入力し(ステップS110)、入力した電源回路44の端子間の電圧Vaが値0であるか否かを判定する(ステップS120)。そして、電圧Vaが値0であるときには、監視ユニット22[1]〜22[n]の通信回路24[1]〜24[n]の全てが正常であると判定して(ステップS130)、本ルーチンを終了する。
ステップS120で電源回路44の端子間の電圧Vaが値0でないときには、電源回路44の端子間の電圧Vaを比較用電圧Varefに設定し(ステップS140)、通信回路24[1]〜24[n]のうち診断対象の通信回路に対応する対象番号iに値1を設定し(ステップS150)、監視ユニット22[i]のスイッチング素子27[i]だけがオフとなるようにSW[i]オフ指令を通信回路42から送信する(ステップS160)。SW[i]オフ指令を監視ユニット22[i]の通信回路24[i]が正常に受信すると、Logic回路30[i]によりスイッチング素子27[i]をオフとする。
そして、電圧モニタ48から電源回路44の端子間の電圧Vaを入力し(ステップS170)、入力した電源回路44の端子間の電圧Vaを比較用電圧Varefと比較する(ステップS180)。いま、対象番号iが値1のときを考えている。ステップS100の処理によりスイッチング素子27[1]がオンとなった後にステップS160の処理によりスイッチング素子27[1]がオフとなったときには、監視回路26[1]における電流経路がスイッチング素子27[1]から抵抗素子28[1]に切り替わるから、電源回路44の端子間の抵抗値が大きくなり、電源回路44の端子間の電圧Vaが比較用電圧Varefよりも高くなる。一方、ステップS100,S160の処理でスイッチング素子27[1]がオフで保持された(ノーマリーオフのままである)ときには、監視回路26[1]のそれぞれにおける電流経路が抵抗素子28[1]で保持されるから、電源回路44の端子間の抵抗値が変化せず、電圧Vaが比較用電圧Varefと同一となる。したがって、電源回路44の端子間の電圧Vaと比較用電圧Varefとを比較することにより、監視ユニット22[1]の通信回路24[1]が正常であるか否かを判定することができるのである。電源回路44の端子間の電圧Vaが閾値Varefと同一であるときには、監視ユニット22[i](i=1)の通信回路24[i]が異常であると判定して(ステップS230)、本ルーチンを終了する。
ステップS180で電源回路44の端子間の電圧Vaが閾値Varefよりも高いときには、監視ユニット22[i](i=1)の通信回路24[i]が正常であると判定し(ステップS190)、対象番号iが値nと等しいか否かを判定し(ステップS200)、対象番号iが値nよりも小さいときには、ステップS100の処理と同様に、全SWオン指令を通信回路42から送信し(ステップS210)、対象番号iを値1だけインクリメントして(ステップS220)、ステップS160に戻る。
すると、上述したように、監視ユニット22[i]についてのSW[i]オフ指令を通信回路42から送信し(ステップS160)、電圧モニタ48から電源回路44の端子間の電圧Vaを入力し(ステップS170)、入力した電源回路44の端子間の電圧Vaを比較用電圧Varefと比較する(ステップS180)。こうしたステップS210,S220,S160〜S180の処理により、上述の監視ユニット22[1]の通信回路24[1]が正常であるか否かの判定処理と同様に、監視ユニット22[i](i:2〜n)の通信回路24[i]が正常であるか否かの判定処理を行なうことができる。
ステップS180で電源回路44の端子間の電圧Vaが比較用電圧Varefと同一であるときには、監視ユニット22[i]の通信回路24[i]が異常であると判定して(ステップS230)、本ルーチンを終了する。一方、電源回路44の端子間の電圧Vaが閾値Varefよりも高いときには、監視ユニット22[i]の通信回路24[i]が正常であると判定し(ステップS190)、対象番号iが値nと等しいか否かを判定する(ステップS200)。
こうしてステップS210,S220,S160〜200の処理を繰り返し実行して、ステップS200で対象番号iが値nに等しいと判定すると、本ルーチンを終了する。なお、ステップS110で電源回路44の端子間の電圧Vaが値0でないときには、監視ユニット22[1]〜22[n]の通信回路24[1]〜24[n]のうちの何れかが異常であると考えられるから、基本的には、ステップS200で対象番号iが値nに等しいと判定する前に、ステップS180,S230で監視ユニット22[1]〜22[n]の通信回路24[1]〜24[n]の何れかについて異常であると判定する(異常の監視ユニット(通信回路)を特定する)ことになる。
以上説明した実施例の電池監視システム20では、監視ユニット22[1]〜22[n]の通信回路24[1]〜24[n]と制御ユニット40の通信回路42とがリング型の通信経路を構成するように接続されており、監視ユニット22[1]〜22[n]の監視回路26[1]〜26[n]が制御ユニット40の電源回路44に対して互いに直列に接続されている。そして、制御ユニット40は、全SWオン指令やSW[i]オフ指令を通信回路42から送信したときの電源回路44の端子間の電圧Vaに基づいて、監視ユニット22[1]〜22[n](通信回路24[1]〜24[n])のうちの何れかが異常であるときにその特定を行なう。このようにして、監視ユニット22[1]〜22[n](通信回路24[1]〜24[n])のうちの何れかが異常であるときにその特定を行なうことができる。
実施例の電池監視システム20では、制御ユニット40は、全SWオン指令を通信回路42から送信したときの電源回路44の端子間の電圧Vaに基づいて、監視ユニット22[1]〜22[n](通信回路24[1]〜24[n])の全てが正常であるか否かを判定するものとした。しかし、制御ユニット40は、全SWオン指令を通信回路42から送信したときにその全SWオン指令が通信回路24[1]〜24[n]を経由して通信回路42に戻ってくるか否かを判定することにより、監視ユニット22[1]〜22[n](通信回路24[1]〜24[n])の全てが正常であるか否かを判定するものとしてもよい。
実施例の電池監視システム20では、制御ユニット40は、図2の診断処理ルーチンを実行するものとした。しかし、制御ユニット40は、図2の診断処理ルーチンのステップS120以降の処理を実行するのに代えて、ステップS110で入力した電源回路44の端子間の電圧Vaを用いて、直接に、監視ユニット22[1]〜22[n](通信回路24[1]〜24[n])の全てが正常であるか否かの判定、および、監視ユニット22[1]〜22[n](通信回路24[1]〜24[n])のうちの何れかが異常であるときにその特定を行なうものとしてもよい。これは、図2の診断処理ルーチンのステップS100の処理を実行したとき、即ち、全SWオン指令を通信回路42から送信したときの電源回路44の端子間の電圧Vaが、上述したように、監視ユニット22[1]〜22[n](通信回路24[1]〜24[n])の全てが正常であるか否かに応じて異なると共に、監視ユニット22[1]〜22[n](通信回路24[1]〜24[n])のうちの何れかが異常であるときにはその異常の監視ユニット(通信回路)に応じて異なるためである。
実施例の電池監視システム20では、制御ユニット40は、図2の診断処理ルーチンを実行するものとした。しかし、制御ユニット40は、図2の診断処理ルーチンに代えて、図3の診断処理ルーチンを実行するものとしてもよい。なお、この変形例では、スイッチング素子27[1]〜27[n]は、ノーマリーオンとして構成されているものとした。
図3の診断処理ルーチンが実行されると、制御ユニット40のCPUは、監視ユニット22[1]〜22[n]の監視回路26[1]〜26[n]のスイッチング素子27[1]〜27[n]の全てがオフとなるように全SWオフ指令を通信回路42から送信する(ステップS100b)。監視ユニット22[1]〜22[n]の通信回路24[1]〜24[n]の全てが正常であれば、制御ユニット40の通信回路42からの全SWオフ指令は、通信回路24[1]〜24[n]を経由して制御ユニット40の通信回路42に戻る。また、監視ユニット22[1]〜22[n]は、それぞれ、通信回路24[1]〜24[n]で全SWオフ指令を受信すると、Logic回路30[1]〜30[n]によりスイッチング素子27[1]〜27[n]をオフとする。
監視ユニット22[1]〜22[n]の通信回路24[1]〜24[n]の全てが正常であるときには、通信回路24[1]〜24[n]の全てがそれぞれの直前のユニットから全SWオフ指令を受信し、スイッチング素子27[1]〜27[n]の全てがオフとなる。このときには、監視回路26[1]〜26[n]のそれぞれにおける電流経路は、抵抗素子28[1]〜28[n]となる。したがって、電源回路44の端子間の電圧Vaは、上述の式(1)により得られる値となる。
監視ユニット22[1]の通信回路24[1]が異常であるときには、通信回路24[1]〜24[n]の全てがそれぞれの直前のユニットの通信回路から全SWオフ指令を受信しない(できない)。このため、スイッチング素子27[1]〜27[n]の全てがオンで保持される。このときには、監視回路26[1]〜26[n]のそれぞれにおける電流経路は、スイッチング素子27[1]〜27[n]となる。したがって、電源回路44の端子間の電圧Vaは、値0となる。
また、監視ユニット22[n]の通信回路24[n]が異常であるときには、監視ユニット22[1]〜22[n−1]の通信回路24[1]〜24[n−1]が直前の監視ユニットの通信回路から全SWオフ指令を受信するが、監視ユニット22[n]の通信回路24[n]が直前の監視ユニットの通信回路から全SWオフ指令を受信しない。このため、スイッチング素子27[1]〜27[n−1]がオフとなると共にスイッチング素子27[n]がオンで保持される。このときには、監視回路26[1]〜26[n]のそれぞれにおける電流経路は、抵抗素子28[1]〜28[n−1]およびスイッチング素子27[n]となる。したがって、電源回路44の端子間の電圧Vaは、式(4)により得られる値となる。
同様に、監視ユニット22[k](k=2〜n−1のうちの何れか)の通信回路24[k]が異常であるときには、監視ユニット22[1]〜22[k−1]の通信回路24[1]〜24[k−1]が直前の監視ユニットの通信回路から全SWオフ指令を受信するが、監視ユニット22[k]〜22[n]の通信回路24[k]〜24[n]が直前の監視ユニットの通信回路から全SWオフ指令を受信しない。このため、スイッチング素子27[1]〜27[k−1]がオフとなると共にスイッチング素子27[k]〜27[n]がオンで保持される。このときには、監視回路26[1]〜26[n]のそれぞれにおける電流経路は、抵抗素子28[1]〜28[k−1]およびスイッチング素子27[k]〜27[n]となる。したがって、電源回路44の端子間の電圧Vaは、式(5)により得られる値となる。
ステップS100で全SWオフ指令を通信回路42から送信すると、電圧モニタ48から電源回路44の端子間の電圧Vaを入力し(ステップS110b)、入力した電源回路44の端子間の電圧Vaが正常値(上述の式(1)により得られる値)であるか否かを判定する(ステップS120b)。そして、電源回路44の端子間の電圧Vaが正常値であるときには、監視ユニット22[1]〜22[n]の通信回路24[1]〜24[n]の全てが正常であると判定して(ステップS130b)、本ルーチンを終了する。
ステップS120bで電源回路44の端子間の電圧Vaが正常値でないときには、電源回路44の電圧Vaを比較用電圧Varefに設定し(ステップS140b)、対象番号iに値1を設定し(ステップS150b)、監視ユニット22[i]のスイッチング素子27[i]だけがオンとなるようにSW[i]オン指令を通信回路42から送信する(ステップS160b)。SW[i]オン指令を監視ユニット22[i]の通信回路24[i]が正常に受信すると、Logic回路30[i]によりスイッチング素子27[i]をオンとする。
そして、電圧モニタ48から電源回路44の端子間の電圧Vaを入力し(ステップS170b)、入力した電源回路44の端子間の電圧Vaを比較用電圧Varefと比較する(ステップS180b)。いま、対象番号iが値1のときを考えている。ステップS100bの処理によりスイッチング素子27[1]がオフとなった後にステップS160bの処理によりスイッチング素子27[1]がオンとなったときには、監視回路26[1]における電流経路が抵抗素子28[1]からスイッチング素子27[1]に切り替わるから、電源回路44の端子間の抵抗値が小さくなり、電源回路44の端子間の電圧Vaが比較用電圧Varefよりも低くなる。一方、ステップS100b,S160bの処理でスイッチング素子27[1]がオンで保持された(ノーマリーオンのままである)ときには、監視回路26[1]のそれぞれにおける電流経路がスイッチング素子27[1]で保持されるから、電源回路44の端子間の抵抗値が変化せず、電源回路44の端子間の電圧Vaが比較用電圧Varefと同一となる。したがって、電圧Vaと比較用電圧Varefとを比較することにより、監視ユニット22[1]の通信回路24[1]が正常であるか否かを判定することができるのである。電源回路44の端子間の電圧Vaが閾値Varefと同一であるときには、監視ユニット22[i](i=1)の通信回路24[i]が異常であると判定して(ステップS230b)、本ルーチンを終了する。
ステップS180bで電源回路44の端子間の電圧Vaが閾値Varefよりも低いときには、監視ユニット22[i](i=1)の通信回路24[i]が正常であると判定し(ステップS190b)、対象番号iが値nと等しいか否かを判定し(ステップS200b)、対象番号iが値nよりも小さいときには、ステップS100bの処理と同様に、全SWオフ指令を通信回路42から送信し(ステップS210b)、対象番号iを値1だけインクリメントして(ステップS220b)、ステップS160bに戻る。
すると、上述したように、監視ユニット22[i]についてのSW[i]オン指令を通信回路42から送信し(ステップS160b)、電圧モニタ48から電源回路44の端子間の電圧Vaを入力し(ステップS170b)、入力した電源回路44の端子間の電圧Vaを比較用電圧Varefと比較する(ステップS180b)。こうしたステップS210b,S220b,S160b〜S180bの処理により、上述の監視ユニット22[1]の通信回路24[1]が正常であるか否かの判定処理と同様に、監視ユニット22[i](i:2〜n)の通信回路24[i]が正常であるか否かの判定処理を行なうことができる。
ステップS180bで電源回路44の端子間の電圧Vaが比較用電圧Varefと同一であるときには、監視ユニット22[i]の通信回路24[i]が異常であると判定して(ステップS230b)、本ルーチンを終了する。一方、電源回路44の端子間の電圧Vaが閾値Varefよりも低いときには、監視ユニット22[i]の通信回路24[i]が正常であると判定し(ステップS190b)、対象番号iが値nと等しいか否かを判定する(ステップS200b)。
こうしてステップS210b,S220b,S160b〜200bの処理を繰り返し実行して、ステップS200bで対象番号iが値nに等しいと判定すると、本ルーチンを終了する。なお、ステップS110bで電源回路44の端子間の電圧Vaが正常値(式(1)により得られる値)でないときには、監視ユニット22[1]〜22[n]の通信回路24[1]〜24[n]のうちの何れかが異常であると考えられるから、基本的には、ステップS200bで対象番号iが値nに等しいと判定する前に、ステップS180b,S230bで監視ユニット22[1]〜22[n]の通信回路24[1]〜24[n]の何れかについて異常であると判定する(異常の監視ユニット(通信回路)を特定する)ことになる。
制御ユニット40によって図3の診断処理ルーチンを実行する場合でも、図2の診断処理ルーチンを実行する場合と同様に、監視ユニット22[1]〜22[n](通信回路24[1]〜24[n])のうちの何れかが異常であるときにその特定を行なうことができる。
この変形例では、制御ユニット40は、全SWオフ指令を通信回路42から送信したときの電源回路44の端子間の電圧Vaに基づいて、監視ユニット22[1]〜22[n](通信回路24[1]〜24[n])の全てが正常であるか否かを判定するものとした。しかし、制御ユニット40は、全SWオフ指令を通信回路42から送信したときにその全SWオフ指令が通信回路24[1]〜24[n]を経由して通信回路42に戻ってくるか否かを判定することにより、監視ユニット22[1]〜22[n](通信回路24[1]〜24[n])の全てが正常であるか否かを判定するものとしてもよい。
また、この変形例では、制御ユニット40は、図3の診断処理ルーチンを実行するものとした。しかし、制御ユニット40は、図3の診断処理ルーチンのステップS120b以降の処理を実行するのに代えて、ステップS110bで入力した電源回路44の端子間の電圧Vaを用いて直接に、監視ユニット22[1]〜22[n](通信回路24[1]〜24[n])の全てが正常であるか否かの判定、および、監視ユニット22[1]〜22[n](通信回路24[1]〜24[n])のうちの何れかが異常であるときにその特定を行なうものとしてもよい。これは、図3の診断処理ルーチンのステップS100bの処理を実行したとき、即ち、全SWオフ指令を通信回路42から出力したときの電源回路44の端子間の電圧Vaが、上述したように、監視ユニット22[1]〜22[n](通信回路24[1]〜24[n])の全てが正常であるか否かに応じて異なると共に、監視ユニット22[1]〜22[n](通信回路24[1]〜24[n])のうちの何れかが異常であるときにはその異常の監視ユニット(通信回路)に応じて異なるためである。
実施例の電池監視システム20では、図1に示したように、監視ユニット22[1]〜22[n]の監視回路26[1]〜26[n]が制御ユニット40の電源回路44に対して互いに直列に接続されるものとした。しかし、図4の変形例の電池監視システム120に示すように、監視ユニット22[1]〜22[n]の監視回路26[1]〜26[n]が制御ユニット40の電源回路44に対して互いに並列に接続されるものとしてもよい。電池監視システム120は、この点を除いて、電池監視システム20と同一のハード構成である。したがって、同一部分については同一の符号を付し、詳細な説明は省略する。
この電池監視システム120では、監視ユニット22[1]〜22[n]のスイッチング素子27[1]〜27[n]の全てがオフのときには、監視回路26[1]〜26[n]のそれぞれにおける電流経路は、抵抗素子28[1]〜28[n]となる。したがって、電源回路44の端子間の電圧Vaは、式(6)により得られる値となる。また、スイッチング素子27[1]〜27[n]のうちの少なくとも1つがオンのときには、監視回路26[1]〜26[n]のそれぞれにおける電流経路は、オンのスイッチング素子(監視回路)となる。このとき、オフのスイッチング素子(監視回路)には電流が流れない。したがって、電子回路44の端子間の電圧Vaは、値0となる。これを踏まえて、電池監視システム120では、制御ユニット40は、図2や図3の診断処理ルーチンに代えて、図5の診断処理ルーチンを実行する。なお、この変形例では、スイッチング素子27[1]〜27[n]は、ノーマリーオフとして構成されているものとした。
図5の診断処理ルーチンが実行されると、制御ユニット40のCPUは、対象番号iに値1を設定し(ステップS300)、監視ユニット22[i]のスイッチング素子27[i]だけがオンとなるようにSW[i]オン指令を通信回路42から送信し(ステップS310)、電圧モニタ48から電源回路44の端子間の電圧Vaを入力し(ステップS320)、入力した電源回路44の端子間の電圧Vaが値0であるか否かを判定する(ステップS330)。
ステップS330で電源回路44の端子間の電圧Vaが値0でないときには、監視ユニット22[i](i=1)についてのSW[i]オン指令に応じて監視ユニット22[i]のスイッチング素子27[i]がオンにならなかったと判断できる。そして、監視ユニット22[i]の通信回路24[i]が異常であると判定して(ステップS390)、本ルーチンを終了する。
ステップS330で電源回路44の端子間の電圧Vaが値0であるときには、監視ユニット22[i](i=1)についてのSW[i]オン指令に応じて監視ユニット22[i]のスイッチング素子27[i]がオンとなったと判断できる。そして、監視ユニット22[i]の通信回路[i]が正常であると判定し(ステップS340)、対象番号iが値nと等しいか否かを判定し(ステップS350)、対象番号iが値nよりも小さいときには、図3のルーチンのステップS100bの処理と同様に、全SWオフ指令を通信回路42から送信し(ステップS360)、対象番号iを値1だけインクリメントして(ステップS370)、ステップ310に戻る。
すると、上述したように、監視ユニット22[i]についてのSW[i]オフ指令を通信回路42から送信し(ステップS310)、電圧モニタ48から電源回路44の端子間の電圧Vaを入力し(ステップS320)、入力した電源回路44の端子間の電圧Vaが値0であるか否かを判定する(ステップS330)。こうしたステップS360,S370,S310〜S330の処理により、上述の監視ユニット22[1]の通信回路24[1]が正常であるか否かの判定処理と同様に、監視ユニット22[i](i:2〜n)の通信回路24[i]が正常であるか否かの判定処理を行なうことができる。
ステップS330で電源回路44の端子間の電圧Vaが値0でないときには、監視ユニット22[i]の通信回路24[i]が異常であると判定して(ステップS390)、本ルーチンを終了する。一方、電源回路44の端子間の電圧Vaが値0であるときには、監視ユニット22[i]の通信回路[i]が正常であると判定し(ステップS340)、対象番号iが値nと等しいか否かを判定する(ステップS350)。
こうしてステップS360,S370,S310〜350の処理を繰り返し実行して、ステップS350で対象番号iが値nに等しいと判定すると、監視ユニット22[1]〜22[n]の通信回路24[1]〜24[n]の全てが正常であると判定して(ステップS380)、本ルーチンを終了する。
このようにして、監視ユニット22[1]〜22[n](通信回路24[1]〜24[n])の全てが正常であるか否かの判定、および、監視ユニット22[1]〜22[n](通信回路24[1]〜24[n])のうちの何れかが異常であるときにその特定を行なうことができる。
実施例の電池監視システム20では、図1のハード構成で、制御ユニット40によって、図2または図3の診断処理ルーチンを実行するものとした。しかし、図1のハード構成で、制御ユニット40によって、図6の通信経路異常時処理ルーチンを実行するものとしてもよい。このルーチンは、通信経路が異常であるとき(監視ユニット22[1]〜22[n](通信回路24[1]〜24[n])のうちの何れかが異常であるとき)に実行される。なお、通信経路が正常であるか異常であるかの判定は、図2または図3の診断処理ルーチンを定期的に実行することによって行なったり、制御ユニット40の通信回路42から何らかの指令を送信したときに監視ユニット22[1]〜22[n]の通信回路24[1]〜24[n]を経由して通信回路42にその指令が戻って来るか否かを判定することによって行なったりすることができる。また、監視ユニット22[k](k:1〜n)では、電池10における監視対象の電池セルが正常であるときには、スイッチング素子27[k]をオンとし、監視対象の電池セルが異常であるときには、スイッチング素子27[k]をオフとするものとした。
図6の通信経路異常時処理ルーチンが実行されると、制御ユニット40のCPUは、電圧モニタ48から電源回路44の端子間の電圧Vaを入力し(ステップS400)、入力した電源回路44の端子間の電圧Vaが値0であるかそれよりも高いかを判定する(ステップS410)。
監視ユニット22[1]〜22[n]の全てで監視対象の電池セルが正常であるときには、スイッチング素子27[1]〜27[n]の全てがオンとなるから、電源回路44の端子間の電圧Vaは値0となる。一方、監視ユニット22[1]〜22[n]のうちの何れかの監視ユニットで監視対象の電池セルが異常であるときには、その何れかの監視ユニットのスイッチング素子がオフとなるから、電源回路44の端子間の電圧Vaは値0よりも高くなる。したがって、電圧Vaが値0であるかそれよりも高いかを判定することにより、電池10(複数の電池セルの全て)が正常であるか否かを判定することができる。
ステップS410で電源回路44の端子間の電圧Vaが値0のときには、電池10が正常であると判定し(ステップS420)、車両の走行(退避走行)を許可して(ステップS430)、ステップS400に戻る。一方、ステップS410で電源回路44の端子間の電圧Vaが値0よりも高いときには、電池10が異常であると判定し(ステップS440)、車両の走行(退避走行)を禁止して(ステップS450)、本ルーチンを終了する。このようにして、電池10が正常であるか否かを判定し、車両の走行(退避走行)を許可するか禁止するかを選択することができる。
この変形例では、制御ユニット40は、図6の通信経路異常時処理ルーチンを実行するものとした。しかし、制御ユニット40は、図6の通信経路異常時処理ルーチンに代えて、図7の通信経路異常時処理ルーチンを実行するものとしてもよい。この場合、監視ユニット22[k](k:1〜n)では、電池10における監視対象の電池セルが正常であるときには、スイッチング素子27[k]をオフとし、監視対象の電池セルが異常であるときには、スイッチング素子27[k]をオンとするものとした。
図7の通信経路異常時処理ルーチンが実行されると、制御ユニット40のCPUは、電圧モニタ48から電圧Vaを入力し(ステップS400b)、入力した電圧Vaが値Va1に等しいかそれよりも低いかを判定する(ステップS410b)。ここで、値Va1としては、上述の式(1)の左辺を「Va」から「Va1」に置き換えたものにより得られる値が用いられる。
監視ユニット22[1]〜22[n]の全てで監視対象の電池セルが正常であるときには、スイッチング素子27[1]〜27[n]の全てがオフとなるから、電源回路44の端子間の電圧Vaは値Va1となる。一方、監視ユニット22[1]〜22[n]のうちの何れかの監視ユニットで監視対象の電池セルが異常であるときには、その何れかの監視ユニットのスイッチング素子がオンとなるから、電源回路44の端子間の電圧Vaは値Va1よりも低くなる。したがって、電圧Vaが値Va1に等しいかそれよりも低いかを判定することにより、電池10(複数の電池セルの全て)が正常であるか否かを判定することができる。
ステップS410bで電源回路44の端子間の電圧Vaが値Va1に等しいときには、電池10が正常であると判定し(ステップS420b)、車両の走行(退避走行)を許可して(ステップS430b)、ステップS400bに戻る。一方、ステップS410bで電源回路44の端子間の電圧Vaが値Va1よりも低いときには、電池10が異常であると判定し(ステップS440b)、車両の走行(退避走行)を禁止して(ステップS450b)、本ルーチンを終了する。このようにして、電池10が正常であるか否かを判定し、車両の走行(退避走行)を許可するか禁止するかを選択することができる。
上述の変形例の電気監視システム120では、図4のハード構成で、制御ユニット40によって、図5の診断処理ルーチンを実行するものとした。しかし、図4のハード構成で、制御ユニット40によって、上述の図7の通信経路異常時処理ルーチンを実行するものとしてもよい。この場合、監視ユニット22[k](k:1〜n)では、電池10における監視対象の電池セルが正常であるときには、スイッチング素子27[k]をオフとし、監視対象の電池セルが異常であるときには、スイッチング素子27[k]をオンとするものとした。
図4のハード構成で制御ユニット40によって図7の通信経路異常時処理ルーチンを実行する場合、監視ユニット22[1]〜22[n]の全てで監視対象の電池セルが正常であるときには、スイッチング素子27[1]〜27[n]の全てがオフとなるから、電源回路44の端子間の電圧Vaは値V1となる。一方、監視ユニット22[1]〜22[n]のうちの何れかの監視ユニットで監視対象の電池セルが異常であるときには、その何れかの監視ユニットのスイッチング素子がオンとなるから、電源回路44の端子間の電圧Vaは値Va1よりも低くなる、具体的には、値0となる。したがって、図1のハード構成で制御ユニット40によって図7の通信経路異常時処理ルーチンを実行する場合と同様に考えることができる。
実施例の主要な要素と課題を解決するための手段の欄に記載した発明の主要な要素との対応関係について説明する。実施例では、監視ユニット22[1]〜22[n]が「複数の監視ユニット」に相当し、制御ユニット40が「制御ユニット」に相当し、通信回路24[1]〜24[n]が「通信回路」に相当し、監視回路26[1]〜26[n]が「監視回路」に相当し、電源回路44が「電源回路」に相当する。
なお、実施例の主要な要素と課題を解決するための手段の欄に記載した発明の主要な要素との対応関係は、実施例が課題を解決するための手段の欄に記載した発明を実施するための形態を具体的に説明するための一例であることから、課題を解決するための手段の欄に記載した発明の要素を限定するものではない。即ち、課題を解決するための手段の欄に記載した発明についての解釈はその欄の記載に基づいて行なわれるべきものであり、実施例は課題を解決するための手段の欄に記載した発明の具体的な一例に過ぎないものである。
以上、本発明を実施するための形態について実施例を用いて説明したが、本発明はこうした実施例に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において、種々なる形態で実施し得ることは勿論である。