(57)【要約】【課題】電池監視ユニットが電池パックから無線通信により電池情報を収集する構成において、電池情報が欠落することを防止する。【解決手段】各スレーブは、マスタコマンドの受信間隔値Ｔslaveと送信間隔期待値Ｔmasterとの比較に基づいてスレーブタイマをタイマ補正する。これにより、マスタコマンドを受信できずにスレーブタイマにより自立してタスクを実施する場合であっても、電池測定のタイミングを同期させることができる。【選択図】図３
2019221050.tif 000002
【特許請求の範囲】
【請求項１】
マスタ（２）とスレーブ（６）との無線通信によりスレーブ側の組電池（３）を構成する各電池ブロック（５）の状態を監視する電池監視システムであって、
前記マスタは、
マスタコマンドの送信時間となったことを計時するマスタタイマ（１５）と、
前記スレーブが今回および次回以降に実施する直近の複数回分のタスクを指定する情報を含んで前記マスタコマンドを生成するタスク管理部（１３）と、
前記送信時間となると前記マスタコマンドを前記スレーブに無線通信により少なくとも１回以上送信すると共に前記スレーブからのレスポンスを少なくとも１回以上受信するマスタ通信部（１４）とを有して構成され、
前記スレーブは、
前記マスタコマンドの受信に応じて前記タスクの開始時間であるタスク開始時間となったことを計時するスレーブタイマ（１０）と、
前記マスタコマンドの受信間隔の値であるコマンド受信間隔値を記憶する記憶部（１２）と、
前記コマンド受信間隔値と前記マスタコマンドの送信間隔の期待値であるコマンド送信間隔期待値との比較に基づいて前記スレーブタイマを補正するタイマ補正部（１１）と、
前記マスタコマンドに含まれているタスクが実施する処理を記憶する実施タスク記憶部（８）と、
前記電池ブロックの状態を測定する電池測定部（９）と、
前記マスタコマンドを受信すると前記実施タスク記憶部が記憶しているタスクを実施し、その処理の一つとして前記電池測定部により前記電池ブロックの状態を測定するタスク制御部（１２）と、
前記マスタから前記マスタコマンドを無線通信により受信すると共に前記電池ブロックの状態を示すレスポンスを前記マスタに送信するスレーブ通信部（７）とを有して構成され、
前記タスク制御部は、前記スレーブタイマの計時時間が所定の規定時間となるまでに前記マスタコマンドを受信できなかった場合は、前記スレーブタイマの補正された計時時間に従って前記実施タスク記憶部に記憶されている前記タスクを自立して実施する電池監視システム。
【請求項２】
前記タスク開始時間は、前記スレーブが前記タスクを実施するのに要するタスク所要時間より長い時間に設定されている請求項１に記載の電池監視システム。
【請求項３】
前記タスク管理部は、前記タスクを示すタスク番号を含んで前記マスタコマンドを生成し、
前記タスク制御部は、前記タスク番号に対応してタスクを記憶しており、前記タスク番号に対応したタスクを実施する請求項１または２に記載の電池監視システム。
【請求項４】
前記タスク管理部は、前記タスク番号に加えてタスク開始時間を含んで前記マスタコマンドを生成し、
前記タスク制御部は、前記タスク開始時間に従って前記タスクを実施する請求項３に記載の電池監視システム。
【請求項５】
前記タスク管理部は、前記タスク番号および前記タスク開始時間に加えて前記タスクを構成する処理および処理開始時間を含んで前記マスタコマンドを生成し、
前記タスク制御部は、前記処理開始時間に従って前記処理を実行する請求項４に記載の電池監視システム。
【請求項６】
前記タスク管理部は、前記タスク開始時間と前回生成した前記タスク開始時間との差分を含んで前記マスタコマンドを生成し、
前記タスク制御部は、前回受信した前記マスタコマンドに含まれる前記タスク開始時間に今回受信した前記マスタコマンドに含まれる前記差分を加算した時間に前記タスクを実施する請求項１から５のいずれか一項に記載の電池監視システム。
【請求項７】
前記タスク管理部は、前記マスタコマンドの送信間隔を示すタイマ情報を含んで前記マスタコマンドを生成し、
前記記憶部は、前記タイマ情報が示す送信間隔を前記コマンド送信間隔期待値として記憶する請求項１から６のいずれか一項に記載の電池監視システム。
【請求項８】
前記タスク制御部は、前記タスクを自立して実施してから一定期間内に前記マスタコマンドを受信した場合は、当該マスタコマンドによる指示を優先して前記タスクを実施する請求項１から７のいずれか一項に記載の電池監視システム。
【請求項９】
前記スレーブ通信部は、予備スロットを用いて前記レスポンスを再送信する請求項１から８のいずれか一項に記載の電池監視システム。
【請求項１０】
前記スレーブ通信部は、前記予備スロットを用いて前記レスポンスを再送信する場合は、１回目に送信したレスポンスとは異なる周波数チャネルで送信する請求項９に記載の電池監視システム。
【請求項１１】
前記スレーブ通信部は、今回のレスポンスに前回のレスポンスを付加して送信する請求項１から１０のいずれか一項に記載の電池監視システム。
【請求項１２】
前記タイマ補正部は、前記コマンド受信間隔値と前記コマンド送信間隔期待値との比較に基づいて計時時間の補正率または計時時間の誤差率を導出することで前記タスク開始時間を補正する請求項１から１１のいずれか一項に記載の電池監視システム。
【請求項１３】
前記タイマ補正部は、前記コマンド受信間隔値と前記コマンド送信間隔期待値との比較に基づいてタイマ速度を補正することで前記タスク開始時間を補正する請求項１から１１のいずれか一項に記載の電池監視システム。
【請求項１４】
前記タイマ補正部は、前記コマンド送信間隔期待値から前記コマンド受信間隔値を差し引いた差分に１未満の定数を乗算した値を前記マスタコマンド受信間隔値から減算することにより前記タスク開始時間を補正する請求項１から１１のいずれか一項に記載の電池監視システム。
【請求項１５】
前記タイマ補正部は、前記コマンド送信間隔期待値から前記コマンド受信間隔値を差し引いた差分に１未満の定数を乗算した値に所定の速度調整係数を加算した値をタイマ速度から減算することによりタイマ速度を補正する請求項１から１１のいずれか一項に記載の電池監視システム。
【請求項１６】
前記タイマ補正部は、前記コマンド受信間隔値を、前記マスタコマンドの受信間隔を複数回測定した平均値から求める請求項１から１５のいずれか一項に記載の電池監視システム。
【請求項１７】
前記タイマ補正部は、前記マスタコマンドを受信できなかった場合は、受信できなかったマスタコマンドの前後で受信できたマスタコマンドの受信間隔値から前記タスク開始時間を補正する請求項１から１６のいずれか一項に記載の電池監視システム。
【請求項１８】
前記タイマ補正部は、前記タスク開始時間の補正範囲を特定範囲に限定する請求項１から１７のいずれか一項に記載の電池監視システム。
【請求項１９】
前記タイマ補正部は、前記スレーブタイマの補正に要する演算時間をオフセット時間として前記スレーブタイマに設定する請求項１から１８のいずれか一項に記載の電池監視システム。
【請求項２０】
前記マスタは、前記マスタコマンドを異なる周波数で複数回送信し、
前記タイマ補正部は、１つ以上の前記マスタコマンドが受信できなかった場合は、前回またはそれ以前に受信した前記マスタコマンドに含まれる前記送信間隔期待値から前記スレーブタイマを補正する請求項１から１９のいずれか一項に記載の電池監視システム。
【請求項２１】
前記マスタコマンドの受信に応じた受信割り込みにより前記コマンド受信間隔値を記憶させるダイレクトメモリアクセスコントローラを備えた請求項１から２０のいずれか一項に記載の電池監視システム。
【請求項２２】
前記マスタコマンドの受信に応じた受信割り込みにより前記記憶部に前記コマンド受信間隔値を記憶させるハードウェアからなる専用回路を備えた請求項１から２０のいずれか一項に記載の電池監視システム。
【請求項２３】
前記マスタ通信部は、前記マスタコマンドを前記スレーブに無線通信により少なくとも１回送信し、
前記スレーブ通信部は、前記レスポンスを無線通信により少なくとも１回送信する請求項１から２２のいずれか一項に記載の電池監視システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電池監視システムに関する。
【背景技術】
【０００２】
無線通信にて電池パック内の例えば組電池の情報（以下、電池情報）を電池パックから外部の電池監視ユニットが収集する電池監視システムとしてロバスト性が高いシステムが提案されている（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】国際公開第２０１５／１８９８９８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１では、電池監視ユニットから電池測定指示を周波数チャネルの異なる複数のコマンドで実施しており、少なくとも１つのコマンドを受信できれば電池パックの組電池の測定を同時に開始することができるので、高精度に同期して組電池の状態を収集することができ、ロバスト性を高めることができる。
【０００５】
しかしながら、通信環境によっては電池監視ユニットからのコマンドを電池パックが受信できないことが想定される。その場合には、電池情報の取得が１周期分失われてしまうことに加えて、電池情報の欠落前後の情報も時間軸の関係が不明となる恐れがある。
【０００６】
本発明は上記事情に鑑みてなされたもので、その目的は、電池監視ユニットが電池パックから無線通信により電池情報を収集する構成において、電池情報が欠落することを防止できる電池監視システムを提供することにある。
【課題を解決するための手段】
【０００７】
請求項１の発明によれば、各スレーブ（６）は、コマンド受信間隔値とコマンド送信間隔期待値との比較に基づいてスレーブタイマ（１０）を補正する。これにより、各スレーブ（６）は、マスタコマンドを受信できない場合であっても、スレーブタイマ（１０）により自立してタスクを実施することで他のスレーブ（６）とタスクを同期して実施することができる。
【０００８】
また、マスタ（２）はスレーブ（６）が今回および次回以降に実施する直近の複数回分のタスク情報をマスタコマンドに含めて送信するので、各スレーブ６は、マスタコマンドを受信できない場合であっても前回またはそれ以前に受信したマスタコマンドに含まれているタスク情報に基づいて今回のタスクを確実に実施することができる。
【図面の簡単な説明】
【０００９】
【図１】第１実施形態における電池監視システムの構成を概略的に示すブロック図
【図２】電池パックの構成を模式的に示す図
【図３】スレーブによるタスクの実施を時間経過で示す図
【図４】スレーブによるスレーブタイマの補正を時間経過で示す図
【図５】スレーブによるタスクの実施時のオフセットを時間経過で示す図
【図６】マスタコマンドに含まれるタスク情報を示す図
【図７】タスク所要時間とタスク開始時間との関係を時間経過で説明する図
【図８】スレーブによる測定結果レスポンスのタイミングを示す図
【図９】スレーブの自立動作によるタスクの実施後にマスタコマンドを受信した場合の動作を時間経過で示す図
【図１０】第２実施形態におけるマスタコマンドに含まれるタスク情報を示す図
【図１１】第３実施形態におけるスレーブによるタスクの実施を時間経過で示す図
【図１２】第４実施形態におけるスレーブによる測定結果レスポンスの送信タイミングを時間経過で示す図
【図１３】第５実施形態におけるスレーブによる測定結果レスポンスの送信タイミングを時間経過で示す図
【図１４】第６実施形態におけるスレーブタイマの補正を時間経過で示す図
【図１５】第７実施形態におけるスレーブタイマの補正を時間経過で示す図
【図１６】第８実施形態におけるスレーブタイマの補正を時間経過で示す図
【図１７】第９実施形態におけるスレーブタイマの補正を時間経過で示す図
【図１８】第１０実施形態におけるスレーブタイマの補正を時間経過で示す図
【発明を実施するための形態】
【００１０】
（第１実施形態）
以下、第１実施形態について図１から図９を参照して説明する。
図２に示すように、電池監視システムは、電池パック１と電池監視ユニット２とから構成されている。電池パック１は、組電池３と組電池制御装置４とから構成されている。組電池制御装置４は、電池監視ユニット２からの指示に応じて組電池３の充電制御および放電制御を行うもので、組電池３の制御に必要な各種パラメータ（電圧、電流、温度など）を検出し、電池監視ユニット２に無線通信により通知する。電池監視ユニット２は、通知された各種パラメータを車両の各種制御を行う電子制御装置（ＥＣＵ）へ提供する。電池監視ユニット２をＥＣＵとして構成し、各ＥＣＵとネットワーク接続しても良い。
【００１１】
組電池３は、内燃機関と電動機とを動力源とした所謂ハイブリッド車（プラグインハイブリッド車を含む）や、電動機のみを動力源とした電気車両に搭載されるもので、電動機に電力供給する電源である。組電池３は、車両の減速時の回生ブレーキを利用して充電することが可能であり、車両の走行に伴って、充放電が繰り返し実行される。
組電池３がプラグインハイブリッド車や電気車両に搭載される場合は、家庭や所謂充電スタンドに設置された充電器により充電することも可能である。
【００１２】
組電池制御装置４は、電池監視ユニット２との間で無線通信によりデータの送受信を行う。組電池制御装置４と電池監視ユニット２との間で無線通信することにより通信配線を削減することができるので、削減した通信配線分の軽量化や、削減した通信配線分のスペースを電池のスペースとして使用することによる電池容量の拡大や、故障した電池の交換が容易となることによるサービス向上などを期待できる。
【００１３】
組電池制御装置４は、第１監視ＩＣ〜第ｎ監視ＩＣ（以下、スレーブと称する）６から構成されている。各スレーブ６は、組電池３において対応する電池ブロック５に個別に接続されており、組電池３から電力供給されて動作する。尚、図１では、各監視ＩＣ６を同一のＩＣ内に構成しているが、異なる複数のＩＣに分散して構成するようにしても良い。
【００１４】
図１に示すように、スレーブ６は、送受信部７、実施タスク記憶部８（記憶部に相当）、電池測定部９、スレーブタイマ１０、タイマ補正部１１、制御部１２（タスク制御部、記憶部に相当）から構成されており、電池監視ユニット（以下、マスタと称する）２から受信したコマンドに応じて対応する組電池３の電池ブロック５の電圧、電流、温度などの測定やデータの送信処理を行う。
【００１５】
制御部１２は、電池測定部９に対して電池監視制御に関わる指示を出力する。電池測定部９は、ＡＤ変換器を備えており、制御部１２からの指示に応じて検出対象の電池ブロック５の電圧、電流、温度などを測定し、それらの電池情報を制御部１２に出力する。
【００１６】
マスタ２は、制御部１３（タスク管理部に相当）、送受信部１４（マスタ通信部に相当）を有し、図３に示すように、スレーブ６が実施すべきタスクを含むマスタコマンドを生成して所定タイミングで送信し、各スレーブ６から送信されたデータを受信する。システムによっては、マスタコマンドを送信する場合、マスタコマンドの対象であるスレーブ６の識別情報とともに送信することが必要な場合もあり、この識別情報により、各スレーブ６は自身に送信されたマスタコマンドを受信することができる。制御部１３はマスタタイマ１５を有しており、マスタタイマ１５が後述するコマンド送信間隔値に達するとマスタコマンドを送信する。
【００１７】
スレーブ６は、マスタコマンドの受信に応じてタスクを実施する。タスクの処理の一つとして電池監視処理を実行し、その測定結果である電池情報を示すレスポンスをマスタ２に送信する。
【００１８】
ところで、通信環境によってはスレーブ６がマスタ２から送信されたマスタコマンドを受信できないことが想定される。その場合には、電池情報の取得が１周期分失われてしまう。また、電池情報の欠落前後の情報の時間軸の関係が不明となる恐れもある。
【００１９】
このような事情から、本実施形態では各スレーブ６は、スレーブタイマ１０を備えており、マスタコマンドを受信できない場合は、スレーブタイマ１０が規定のタスク開始時間になると自立的に電池状態の測定およびその他の処理を実施するように構成されている。本実施形態では、タスク開始時間はマスタ２がマスタコマンドを送信する間隔の期待値であるコマンド送信間隔期待値（以下、Ｔmasterと称する）に一致するように設定されているが、異なるように設定しても良い。
【００２０】
以上のような構成により、コマンド受信失敗時においてもスレーブ６は自立して動作可能になるが、下記２点の課題解決が必要となる。
（１）測定タイミングの同期……マスタコマンドを受信できない状態において他のスレーブ６との測定タイミングを合わせる必要がある。
（２）実施タスクの把握……マスタコマンドによる指示を受けられない場合でも実施するタスクおよびその開始時間を特定する必要がある。
【００２１】
上記２つの課題に対して、以下２点の対策を実施する。
（１）マスタコマンドによるタイマ補正
各スレーブ６は自らのスレーブタイマ１０で計測したマスタコマンドの受信間隔の値であるコマンド受信間隔値（以下、Ｔslaveと称する）と、Ｔmasterとのずれを用いて自らのスレーブタイマ１０を補正する。
（２）マスタコマンドによる実施タスクの事前通知
【００２２】
マスタコマンドにて今回実施するタスクに加えて、次回以降で実施予定のタスクを事前に送信しておく。これにより、マスタコマンドが受信できなかった場合でもスレーブ６は実施すべきタスクを前回またはそれ以前の受信結果から判断することができる。
【００２３】
（１）マスタコマンドによるタイマ補正について
スレーブ６は、ＴslaveとＴmasterとが一致するように設計されているが、マスタタイマ１５とスレーブタイマ１０とがクロック周期の誤差によりＴslaveがＴmasterからずれた場合は、そのずれを抑制するようにタイマ補正する。
【００２４】
タイマ補正の一例としては、図４に示すように、タスクの処理開始時間に補正係数（補正率に相当）Ｔslave／Ｔmasterを導出し、タスクの処理開始時間に乗算することでマスタタイマ１５とスレーブタイマ１０間のクロック誤差を補正することができる。補正係数を導出するのに代えてスレーブタイマ１０のカウント値の誤差率を導出し、スレーブタイマ１０のカウント値に乗算することでマスタタイマ１５とスレーブタイマ１０間のクロック誤差を補正するようにしても良い。
【００２５】
ここで、タスク開始時間を補正する場合、補正するための演算には一定の処理時間が必要であるため、補正したタスク開始時間を次のタスクの開始に直ちに反映することができない。そのため、図５に示すように、補正の演算結果が確定するまでの演算時間をオフセット時間として設定し、オフセット時間が終了したところでタスクの実施を開始することで次のタスクの開始に反映するようにしている。
【００２６】
（２）マスタコマンドによる実施タスクの事前通知について
マスタ２から各スレーブ６に送信されるマスタコマンドの通信フォーマットについて説明する。
【００２７】
図３に示すように、マスタ２は、各スレーブ６に対してマスタコマンドを送信する場合、ヘッダ、タスク情報、誤り検出または訂正符号（ＣＲＣ（Cyclic Redundancy Check）など）を含んだコマンドを生成して送信する。
タスク情報には、図６に示すように、今回のタスク♯１およびその処理開始時間と、次回以降のタスク♯２〜Ｎおよびその処理開始時間が含まれている。
【００２８】
上述したように、マスタコマンドにはタスクＮｏ．およびそのタスク開始時間を含めるが、常にタスクを周期的に実施するシステムではタスクＮｏ．のみでも良い。この場合、タスクを構成する各処理の内容およびタスク開始時間はシステムとしてスレーブ６に予め決めておく。
【００２９】
タスクとは図７に示すように連続して実施される一連の処理の集合体であり、電池監視処理としてスレーブ６が行うタスク情報として定義される。タスクはスレーブタイマ１０の値でタスク開始時間を規定されている。タスク開始時間はタスクを実際に実施するのに必要な処理所要時間よりも十分大きく設計する。つまり、マスタタイマ１５とスレーブタイマ１０とはクロック誤差を有しているのが通常であることから、想定される最大のクロック誤差を見込んで設計する。これは現在実施中のタスク処理中に次回実施予定のタスクの開始が重ならないようにするための工夫である。
【００３０】
また、タスクの先頭処理としては、同期性が求められる処理を実施するように設計されている。本実施形態では、タスクの先頭処理として、各スレーブ６の同期性が求められる電池測定処理である処理０が設定されているが、図８に示すように、電池測定処理以外の処理を先頭処理として設定しても良い。
【００３１】
尚、タスクとはスレーブ６が実施する電池監視処理に関する一連の処理のことであり、必ずしもソフトウェアのタスクを指すわけではなく、ハードウェアで処理されるものであっても良い。
【００３２】
（基本動作）
基本動作について説明する。
マスタ２は、図３に示すように、タスク情報を含むマスタコマンドをスレーブ６にマスタタイマ１５がタスク開始時間となると送信する。
【００３３】
スレーブ６は、受信したマスタコマンドのタスク情報を実施タスク記憶部８に記憶し、マスタコマンドの受信（マスタコマンドの受信完了時）に応じて当該マスタコマンドのタスク情報に従ってタスクを実施する。本実施形態では、タスク情報には今回および次回以降に実施する直近の複数回分のタスクＮｏ．およびその開始時間が含まれているので、スレーブ６は、タスクを実施する場合は、タスクＮｏ．に対応して予め記憶している処理をその処理開始時間に従って実行することでタスクを実施する。電池測定を実行した場合は、その測定結果である電池情報を示すレスポンスをマスタ２に送信する。レスポンスには、ヘッダ、タスクＮｏ．、測定結果である電池情報、ＣＲＣが含まれている。
【００３４】
（マスタコマンドを受信できない場合の動作）
各スレーブ６は、上述したようにマスタコマンドの受信に応じて電池測定を一斉に実施することで電池測定の同期性を担保しているが、通信環境によってはマスタコマンドを受信できないことが想定される（図３中に破線で示す）。この場合、スレーブタイマ１０がタスク開始時間（図３のＴstart3＝Ｔmaster）になってもマスタコマンドを受信できないことから、前回のマスタコマンドにより通知されたタスクＮｏ．のタスクを実施する。
【００３５】
スレーブ６は、タスクの先頭処理として同期性が求められる電池状態測定処理を実施し、その測定結果である電池情報を示すレスポンスを送信する。
即ち、電池測定部９は、制御部１２の指示に応じて電池状態の測定を行い、電池状態を測定後、タスクＮｏ．と電池情報を含む送信パケットをレスポンスとしてマスタ２へ送信する。このとき、時分割多重通信にて割り当てられた所定の送信スロットでマスタ２へ電池情報を示すレスポンスを送信する。レスポンデータにタスクＮｏ．を含めることにより電池測定処理のずれ等をマスタ２にて検知可能となる。
【００３６】
ここで、スレーブ６は、Ｔslaveを設定レジスタまたは該当するメモリ番地に記憶するが、このような処理を制御部１２の主体であるＣＰＵに対する割込処理で行う場合には、タイマ補正処理が適切に実行されない虞がある。つまり、マスタコマンドの受信に応じてＴslaveを記憶する処理を制御部１２のＣＰＵに対する割込みで実行させる場合にＣＰＵがビジーであったときは、Ｔslaveを記憶できないおそれがある。
【００３７】
そこで、タイマ補正処理のサイクルアキュレート化のため、ダイレクトメモリアクセス（ＤＭＡ）対応化させたり、ハードウェアからなる専用回路にて実装したりする。つまり、ＤＭＡコントローラや専用回路に受信割り込みを設定しておき、受信割り込みを受けたＤＭＡコントローラや専用回路はＴslaveを設定レジスタまたは該当するメモリ番地に記憶する。これにより、制御部１２のＣＰＵは、Ｔslaveを記憶する動作を実行することはないので、タスクを確実に実施することができる。
なお、図３では分かり易さのためマスタコマンドの受信に応じてタイマがプリセットされるようにしたが、プリセットされずにフリーランのカウンタであっても良い。
【００３８】
また、異常時（異常に短いコマンド間隔など）に意図しない補正時間を反映しないよう、有効な補正時間の範囲を設定しても良い。例えば、マスタ２とスレーブ６との間で想定される最大クロック誤差から補正量の有効範囲を設定するといったことが想定される。
以上のような構成は、以下で説明する第２実施形態以降でも適用可能である。
【００３９】
ところで、上述した説明では、Ｔmaster≧Ｔslaveとなるようにずれた場合を説明したが、図９に示すように、Ｔmaster＜Ｔslaveとなるようにずれた場合は、マスタコマンドを受信する以前にタスク開始時間（＝Ｔmaster）となり、スレーブタイマ１０により自立してタスクを実施した後に正規のマスタコマンドを受信することになる。
【００４０】
このような場合は、正規のマスタコマンドの受信に応じてスレーブタイマ１０をプリセットすると共に、コマンドに含まれるタスク情報を上書きする。つまり、スレーブ６は、マスタコマンドを受信できないことに応じて自立的にタスクの実施を開始するが、それ以後の一定期間内にマスタコマンドを受信した場合、このマスタコマンドは本来のマスタコマンドであると判定し、そのマスタコマンドを優先して実行するのである。
【００４１】
このような動作により、各スレーブ６は、Ｔmaster＜Ｔslaveのために自立してタスクの実施を開始した場合であっても、マスタコマンドの受信に応じてタスクを同期して実施することができる。この場合、今回受信した本来のマスタコマンドのタスク情報は前回受信したタスク情報と同一となり基本的には不要であるが、マスタ２が各スレーブ６に対するタスクを更新するような構成の場合は、今回受信した本来のマスタコマンドのタスク情報と前回受信したタスク情報とは異なることがあることから、スレーブ６はタスク情報の更新を確実に反映することが可能となる。
【００４２】
このような実施形態によれば、次のような効果を奏することができる。
各スレーブ６は、ＴslaveとＴmasterとの比較に基づいてスレーブタイマ１０を補正するので、マスタコマンドを受信できない場合であっても、スレーブタイマ１０により自立してタスクを実施することで他のスレーブ６とタスクを同期して実施することができる。
【００４３】
マスタ２はスレーブ６が今回および次回以降に実施する直近の複数回分のタスクを含んでマスタコマンドを生成して送信するので、各スレーブ６は、マスタコマンドを受信できない場合であっても前回受信したマスタコマンドに含まれているタスクに基づいて今回のタスクを確実に実施することができる。
【００４４】
各スレーブ６のタスク開始時間は、各スレーブ６がタスクを実際に実施するのに必要な処理所要時間よりも十分に大きくなるように設計されているので、現在のタスクの処理中に次のタスクの開始が重なってしまうことを確実に防止できる。
【００４５】
スレーブタイマ１０を補正する演算時間を見込んでタスクを実施するオフセット時間を設定するようにしたので、演算時間のためにタスクを実施できなくなる事態を確実に回避することができる。
【００４６】
スレーブ６は、マスタコマンドを受信できなくて自立してタスクを実施してから一定期間内にマスタコマンドを受信した場合は、当該マスタコマンドを優先して実行するので、タスク開始時間の同期性および情報の信頼性を高めることができる。
【００４７】
（第２実施形態）
第２実施形態について図１０を参照して説明する。この第２実施形態は、マスタコマンドのタスク情報として、各タスクを構成する処理およびその処理開始時間を含めることを特徴とする。
【００４８】
図１０に示すように、マスタコマンドのタスク情報には、今回のタスク♯１の処理０〜ｎ（図１０ではｎ＝４）およびその処理開始時間と、次回以降のタスク♯２〜Ｎの処理０〜ｎおよびその処理開始時間が含まれている。
【００４９】
各スレーブ６は、マスタコマンドを受信すると、マスタコマンドに含まれるタスク情報およびその処理開始時間を実施タスク記憶部８に記憶する。
各スレーブ６は、タスク開始時間となった場合は、タスクに対応して記憶している処理Ｎｏ．とその処理開始時間に従って処理を開始することでタスクを実施する。
【００５０】
尚、常に一定周期的にタスクを実施するシステムではマスタコマンドにタスクＮｏ．のみを含めても良く、タスクを構成する処理内容はシステムとして予め決めておいても良い。
また、タスク開始時間および処理開始時間の指定方法は必ずしもスレーブタイマ１０の絶対値ではなく、前の処理開始時間からの差分にすることで情報量を削減するようにしても良い。
【００５１】
このような実施形態によれば、次のような効果を奏することができる。
マスタコマンドのタスク情報として、タスクを構成する処理Ｎｏ．およびその処理開始時間を含むようにしたので、タスクや処理が更新するようなシステムに好適する。
【００５２】
（第３実施形態）
第３実施形態について図１１を参照して説明する。この第３実施形態は、マスタコマンドにマスタタイマ１５のタイマ情報および送信要求時間を含めることを特徴とする。
【００５３】
図１１に示すように、マスタコマンドには、マスタタイマ１５のタイマ情報および送信要求時間（レスポンス時間）が含まれている。タイマ情報とは、マスタ２に設定されているコマンド送信間隔値（以下、Ｔstart#mと称する）であり、この情報がスレーブ６にてＴmaster（＝Ｔstart）として設定される。
【００５４】
マスタ２が自己に設定されているコマンド送信間隔start#mをマスタコマンドに含めて送信すると、スレーブ６は、マスタコマンドから得たＴstart#mをＴmasterとし、ＴslaveとＴmasterとの比較に基づいてタイマ補正を実行する。つまり、マスタタイマ１５とスレーブタイマ１０とのクロック周期にずれがある場合は、そのずれを抑制するようにタイマ補正した上で、タスクを実施すると共に測定結果である電池情報を示すレスポンスを送信要求時間に送信する。
【００５５】
このような実施形態によれば、次のような効果を奏することができる。
マスタコマンドにマスタ自身のタイマ情報を含めるようにしたので、タスク開始時間を更新するようなシステムに好適する。
【００５６】
マスタコマンドに、スレーブ６が測定結果である電池情報をレスポンスする送信要求時間を含めるようにしたので、電池情報のレスポンスの送信タイミングを更新するようなシステムに好適する。
【００５７】
（第４実施形態）
第４実施形態について図１２を参照して説明する。この第４実施形態は、スレーブ６からマスタ２にレスポンスを再送信することを特徴とする。
【００５８】
スレーブ６がマスタコマンドを受信できなかった場合は、無線通信の通信環境が一時的に悪化している可能性が高いことから、スレーブ６からのレスポンスをマスタ２が受信できていない可能性が高い。
【００５９】
そこで、スレーブ６は、図１２に示すように、マスタコマンドを受信できないことに応じて自立的にタスクを実施した場合は、他のスレーブ６の送信スロットと重複しない空スロットにてレスポンスを再送信する。
【００６０】
この場合、１度目のレスポンスと再送信とで周波数チャネルを変更するのが望ましい。つまり、無線通信が遮断される原因が例えば電磁的ノイズの場合は、その電磁的ノイズの周波数帯域が遮断されることから、その周波数帯域と異なる周波数で無線通信を行うことで通信の可能性を高めることができる。
【００６１】
このようなレスポンスの追加を常に行うようにしても良い。
また、再送信は複数回行っても良く、さらに再送信する毎に周波数を変更するようにしても良い。
【００６２】
このような実施形態によれば、次のような効果を奏することができる。
スレーブ６は、マスタコマンドを受信できない場合は、予備スロットを用いてレスポンスを再送信するので、マスタ２が受信できなかった可能性のあるレスポンスを受信する可能性を高めることができる。
先に送信したレスポンスとは異なる周波数チャネルで送信するように構成した場合は、マスタ２が受信できなかったレスポンスを受信する可能性を一層高めることができる。
【００６３】
（第５実施形態）
第５実施形態について図１３を参照して説明する。この第５実施形態は、スレーブ６がレスポンスを再送信することを特徴とする。
【００６４】
スレーブ６がマスタコマンドを受信できなかった場合、スレーブ６からのレスポンスもマスタ２で受信できない可能性が高い。
そこで、スレーブ６は、図１３に示すように、マスタコマンドを受信できなかった場合は、前回のタスクで測定した結果を今回の結果に付加してマスタ２へレスポンスを送信する。
【００６５】
このようなレスポンスの付加を常に行うようにしても良い。
また、レスポンスは前回のレスポンスのみに限定されることなく複数回遡ったレスポンスを再送信するようにしても良い。何回前までのデータを含めてレスポンスするかは事前にシステムとして規定しておく、あるいはマスタコマンドにて指定できるものとする。
【００６６】
このような実施形態によれば、次のような効果を奏することができる。
スレーブ６は、マスタコマンドを受信できない場合は、前回送信したレスポンスを今回のレスポンスに付加して送信するので、マスタ２が受信できなかった可能性の高い前回のレスポンスを受信する可能性を高めることができる。
【００６７】
（第６実施形態）
第６実施形態について図１４を参照して説明する。この第６実施形態は、タイマ補正としてスレーブタイマ１０のタイマ速度を補正することを特徴とする。
【００６８】
スレーブ６のタスク処理はタスク開始時間がＴmasterとなるように設計されているので、図１４に示すように、スレーブ６で計測したＴslaveをもとにタイマ速度を速度調整係数（Ｔslave／Ｔmaster）倍してタイマ補正する。
尚、起動時に補正の第一段階として本実施形態のタイマ補正のタイマ速度調整を行い、その後は第１実施形態と同様のタイマ補正を行うなど組み合わせても良い。
【００６９】
このような実施形態によれば、次のような効果を奏することができる。
スレーブタイマ１０のタイマ補正としてタイマ速度を補正するようにしたので、第１実施形態と同様に、マスタコマンドを受信できずにスレーブタイマ１０により自立してタスクを実施する場合であっても、タスクを確実に実施可能となる。
【００７０】
（第７実施形態）
第７実施形態について図１５を参照して説明する。この第７実施形態は、Ｔslaveとして、過去の複数回のＴslaveの平均値を用いることを特徴とする。
【００７１】
各スレーブ６は、ＴslaveとＴmasterとの比較に基づいてスレーブタイマ１０をタイマ補正するが、Ｔslaveとして、図１５に示すように、過去のＴslaveの平均値を用いる。この場合、平均化方法は、ブロック平均や移動平均などいずれを用いても良い。
【００７２】
このような実施形態によれば、次のような効果を奏することができる。
スレーブ６は、過去の複数周期のＴslaveの平均値をタイマ補正に用いるので、突発的なＴslaveの突発的な変動に対する冗長性を高めることができる。
【００７３】
（第８実施形態）
第８実施形態について図１６を参照して説明する。この第８実施形態は、ＴslaveとＴmasterとの差分に基づいてタイマ補正することを特徴とする。
【００７４】
図１６に示すように、ＴmasterとＴslaveとの差分を定数α（＜１）倍した数値をタスク開始時間Ｔstartから減算することでタイマ補正するもので、Ｔstart（ｎ＋１）=Ｔstart（ｎ）−α×（Ｔmaster（ｎ）−Ｔslave（ｎ））で表すことができる。定数αとして適切な値を設定することにより、十分時間が経過した後はマスタ２の送信期間値に十分接近させることができ、なおかつ突発的なコマンド周期変動による影響を小さくすることが可能となる。
【００７５】
尚、α×（Ｔmaster（ｎ）−Ｔslave（ｎ））をＴstartから減算するのに代えて、次のような値をタイマ速度から減算しても良い。
タイマ速度（ｎ＋１）=タイマ速度（ｎ）−｛ｋ（ｎ）＋α×（Ｔmaster（ｎ）−Ｔslave（ｎ））｝但し、ｋ（ｎ）はｎ周期目におけるスレーブタイマ１０の速度調整係数である。
【００７６】
このような実施形態によれば、次のような効果を奏することができる。
スレーブ６は、ＴmasterとＴslaveとの差分をα倍した数値をＴstartから減算することでタイマ開始時間を調整したり、タイマ速度を調整したりすることでタイマ補正するので、タスク開始時間がＴslaveに収束するようにタイマ補正することができる。
【００７７】
（第９実施形態）
第９実施形態について図１７を参照して説明する。この第９実施形態は、マスタ２が複数コマンドを異なる複数の周波数チャネルで送信することを特徴とする。
【００７８】
各スレーブ６は、同一の周波数のマスタコマンドの受信間隔値であるＴslaveを測定する。つまり、タスク開始直前にマスタ２から送信される複数のマスタコマンドにはコマンド番号が振られており、スレーブ６は何番目のマスタコマンドを受信したのかが分かる。
スレーブ６は、図１７に示すように、Ｔslaveをスレーブタイマ１０で計測し、計測結果（Ｔ11、Ｔ22、Ｔ33）の平均値Ｔavをもとに以降のタスク開始時間をタイマ補正する。
【００７９】
ここで、スレーブ６は、何れかのマスタコマンドが受信できなかった場合は、受信できたマスタコマンド同士の間隔（図１７に示す例ではＴ2１）を使用する。
このとき、各マスタコマンドの間隔の比率は既知なので、正しいコマンド間隔の推定値はＴ22.est=Ｔ2１×Ｔmaster／（Ｔmaster−ｔ）のようにして求めることができる。これより、スレーブ６はＴ22.estをＴ22としてみなしてタイマ補正することができる。
【００８０】
このような実施形態によれば、次のような効果を奏することができる。
マスタ２とスレーブ６とが複数の周波数チャンネルを用いて無線通信する構成において、異なる周波数のマスタコマンドを受信可能な場合は、受信できたマスタコマンドからＴslaveを推定し、当該ＴslaveとＴmasterとの比較に基づいてタイマ補正するので、マスタコマンドを受信できない場合であってもタイマ補正を実行することができる。
【００８１】
（第１０実施形態）
第１０実施形態について図１８を参照して説明する。この第１０実施形態は、受信できなかったマスタコマンドの前後で受信できたマスタコマンドに対応するＴslaveと、当該受信できたマスタコマンドの送信間隔に対応するＴmasterとの比較に基づいてスレーブタイマ１０を補正することを特徴とする。
【００８２】
スレーブ６は、１つ以上のマスタコマンドを受信できなかった場合、前のマスタコマンドで通知されているコマンド送信時間に関する情報を期待値として、対応するコマンド受信間隔と比較してタイマ補正を行う。
【００８３】
具体的には、図１８に示すように、２つのマスタコマンドを受信できず、その前後のマスタコマンドを受信できていることから、Ｔslaveに対応するＴmasterは、Ｔstart1＋Ｔstart2＋Ｔstart3となり、ＴslaveとＴmaster（＝Ｔstart1＋Ｔstart2＋Ｔstart3）とを比較することになる。この場合、ＴslaveとＴmasterとのずれは３回分のずれを合計したものであることから、それを考慮してタイマ補正する。
【００８４】
このような実施形態によれば、次のような効果を奏することができる。
スレーブ６は、１つ以上のマスタコマンドを受信できなかった場合は、受信できなかったマスタコマンドの前後で受信できたマスタコマンドによるＴslaveと、当該Ｔslaveに対応したＴmasterとの比較に基づいてスレーブタイマ１０を補正するので、マスタコマンドを受信できない状態が継続した場合であっても、タイマ補正を実行することができる。
【００８５】
（その他の実施形態）
組電池として燃料電池に適用するようにしても良い。
マスタ２は、スレーブ６にマスタコマンドを無線通信により複数回送信するようにしても良い。
スレーブ６は、マスタ２にレスポンスを無線通信により複数回送信するようにしても良い。
【００８６】
マスタ２は、スレーブ６がマスタコマンドを受信できない場合は、マスタコマンドの送信周波数を変更するようにしても良い。
マスタ２とスレーブ６との間にマスタコマンドやレスポンスを中継する中継装置を設けるようにしても良い。
【００８７】
本開示は、実施形態に準拠して記述されたが、本開示は当該実施形態や構造に限定されるものではないと理解される。本開示は、様々な変形例や均等範囲内の変形をも包含する。加えて、様々な組み合わせや形態、さらには、それらに一要素のみ、それ以上、あるいはそれ以下、を含む他の組み合わせや形態をも、本開示の範疇や思想範囲に入るものである。
【符号の説明】
【００８８】
図面中、２はマスタ、５は電池ブロック、６はスレーブ、７は送受信部（スレーブ通信部、８は実施タスク記憶部、９は電池測定部、１０はスレーブタイマ、１１はタイマ補正部、１２は制御部（タスク制御部、記憶部）、１３は制御部（タスク管理部）、１４は送受信部（マスタ通信部）、１５はマスタタイマである。
【図１】
2019221050.tif 000003
【図２】
2019221050.tif 000004
【図３】
2019221050.tif 000005
【図４】
2019221050.tif 000006
【図５】
2019221050.tif 000007
【図６】
2019221050.tif 000008
【図７】
2019221050.tif 000009
【図８】
2019221050.tif 000010
【図９】
2019221050.tif 000011
【図１０】
2019221050.tif 000012
【図１１】
2019221050.tif 000013
【図１２】
2019221050.tif 000014
【図１３】
2019221050.tif 000015
【図１４】
2019221050.tif 000016
【図１５】
2019221050.tif 000017
【図１６】
2019221050.tif 000018
【図１７】
2019221050.tif 000019
【図１８】
2019221050.tif 000020