以下、図面を参照して本発明の実施形態について説明する。
〔第1実施形態〕
まず、本発明の第1の実施形態について説明する。図1は、本発明の第1の実施形態に係る、二次電池の充電率(SOC)推定を行うモデル(SOC推定モデル)を学習により生成する機械学習装置の構成を示す図である。この機械学習装置100は、二次電池102の状態を表す所定の状態変数の測定値から当該二次電池102のSOCを推定するモデルを、学習により生成する。このモデルは、例えばニューラルネットワークで構成される。
二次電池102は、電源装置104により充電され、負荷106への通電を行うことで放電する。二次電池102に対し電源装置104からの充電を行うか負荷106への放電を行うかの選択は、二次電池102の端子への接続を電源装置104と負荷106との間で切り替える切替スイッチ108により行われる。切替スイッチ108と二次電池102との間には、特性測定器110が挿入されている。
特性測定器110は、電圧計、電流計、及び温度計などで構成されており、二次電池102の端子間の電圧E(ボルト、V)、二次電池102に流れ込むか又は流れ出す電流I(アンペア、A)、及び二次電池102の筺体表面の温度T(℃)、を少なくとも含む、二次電池102の所定の状態変数の現在の値を測定する。
以下において、二次電池102の入力電圧E及び入力電流Iとは、二次電池102の充電時における上記の電圧E及び電流Iをいうものとする。また、二次電池102の出力電圧E及び出力電流Iとは、二次電池102の充電時における上記の電圧E及び電流Iをいうものとする。
学習管理装置112は、例えばコンピュータであり、オペレータからの指示により動作を開始し、電源装置104への電源出力の開始及び停止の指示、並びに、切替スイッチ108への切替動作の指示を行う。
この学習管理装置112は、例えば、人間であるオペレータからの指示が入力されると、まず、二次電池102をゼロ充電状態から限界充電状態(それ以上充電できない限界の状態)まで充電する際の二次電池102への総入力電力量を計測し、当該計測した総入力電力量(すなわち、限界充電状態での充電残量)と、二次電池102の定格充電容量と、に基づいて、限界充電状態でのSOC値を算出する。SOC値は、例えば、充電残量が定格充電容量に等しい状態を100%として、次式のように算出されるものとすることができる。
充電残量÷定格充電容量×100(%) (1)
学習管理装置112は、上記計測した充電残量及び算出したSOC値を機械学習装置100へ送信する。機械学習装置100は、学習管理装置112から受信した充電残量及び又はSOC値に基づき、その後の放電動作において繰り返し測定する二次電池102の出力電圧Eおよび出力電流Iから、当該二次電池102の現在の充電残量とSOC値を算出する。
具体的には、学習管理装置112は、まず、切替スイッチ108に指示して二次電池102を負荷106へ接続し、当該二次電池102を放電させてゼロ充電状態とする。ゼロ充電状態となったか否かは、上記放電の際に特性測定器110により測定される二次電池102の出力電圧Eから判断され得る。すなわち、出力電圧Eが所定の電圧以下となったときに、二次電池102がゼロ充電状態になったものと判断することができる。
その後、学習管理装置112は、切替スイッチ108に指示して二次電池102を電源装置104に接続すると共に、電源装置104に指示して電源の出力を開始させ、二次電池102を限界充電状態まで充電する。例えば、学習管理装置112は、入力電流Iが所定の電流値未満となったときに、二次電池102が限界充電状態になったものと判断することができる。
学習管理装置112は、二次電池102の充電期間中において、特性測定器110により二次電池102の出力電圧Eおよび出力電流Iを所定の時間間隔Δtで計測し、時間Δtの期間内に二次電池102に入力された電力量(E×I×Δt)を、ゼロ充電状態から限界充電状態までの期間について積算して、総入力電力量を充電残量として算出する。そして、上記算出した充電残量を定格充電容量で除算して、現在のSOC値を算出する。
算出した現在の充電残量及びSOC値を機械学習装置100へ送信した後、学習管理装置112は、切替スイッチ108を切り替えて、二次電池102から負荷106への放電を開始し、機械学習装置100にSOC推定の学習を開始させる。
具体的には、学習管理装置112は、切替スイッチ108を切り替えて二次電池102の放電を開始したときに、放電開始通知を機械学習装置100へ送信する。
機械学習装置100は、放電開始通知を受信したことに応じて、二次電池102のSOC推定についての学習を開始する。具体的には、機械学習装置100は、特性測定器110により、所定の時間間隔Δtで、放電中の二次電池102の出力電圧E、出力電流I、及び温度Tを繰り返し計測し、それぞれの計測時におけるSOC値を算出する。そして、計測した出力電圧E、出力電流I、温度Tと、算出したSOC値とで構成される訓練データに基づき、学習を行ってSOC推定のモデルを生成する。学習の詳細については後述する。上記それぞれの計測時におけるSOC値は、放電開始通知を受信したときの、二次電池102の充電残量及びSOC値と、繰り返し計測される二次電池102の出力電圧E及び出力電流Iと、当該繰り返し計測の時間間隔Δtから算出され得る。
機械学習装置100にSOC推定の学習を開始させた後、学習管理装置112は、特性測定器110から取得される二次電池102の出力電流Iが所定の値未満となったときに、二次電池102の放電動作を終了して充電動作を開始する。すなわち、学習管理装置112は、切替スイッチ108に指示して二次電池102を電源装置104へ接続する。学習管理装置112は、二次電池102の充電動作を開始したときは、充電開始通知を機械学習装置100へ送信する。以下、放電開始通知が送信されてから充電開始通知が送信されるまでの期間を放電サイクルという。
機械学習装置100は、学習管理装置112から充電開始通知を受信することに応じて、SOC推定の学習を中断し、特性測定器110により、所定の時間間隔で、充電中の二次電池102の入力電圧Eおよび入力電流Iを繰り返し計測する。機械学習装置100は、入力電圧Eおよび入力電流Iを計測する毎に、現在における二次電池102の充電残量を算出する。
その後、学習管理装置112は、特性測定器110により計測される二次電池102の入力電流が所定の値未満となったときに、切替スイッチ108に指示して二次電池102を負荷106へ接続し、放電開始通知を機械学習装置100へ送信する。以下、充電開始通知が送信されてから放電開始通知が送信されるまでの期間を充電サイクルという。
機械学習装置100は、学習管理装置112から放電開始通知を受信したことに応じて、直前に算出した二次電池102の充電残量から、二次電池102の現在のSOC値を算出する。そして、機械学習装置100は、算出したSOC値を用いて、再び、今回の放電サイクルにおけるSOC推定の学習を開始する。
その後は、機械学習装置100は、学習管理装置112により開始される放電サイクル及び充電サイクルに応じて、二次電池102のSOC推定の学習を繰り返し、所定の終了条件が満たされたときに、当該学習を終了する。機械学習装置100は、学習を終了したときは、学習管理装置112へ学習終了通知を送信する。学習終了通知を受信した学習管理装置112は、動作を終了する。
機械学習装置100は、演算装置120と、記憶装置122を備える。記憶装置122は、例えば、揮発性及び又は不揮発性の半導体メモリ、及び又はハードディスク装置等により構成される。演算装置120は、例えば、CPU(Central Processing Unit)等のプロセッサを備えるコンピュータである。演算装置120は、プログラムが書き込まれたROM(Read Only Memory)、データの一時記憶のためのRAM(Random Access Memory)等を有する構成であってもよい。そして、演算装置120は、機能要素又は機能ユニットとして、状態観測部130と、充電率算出部132と、訓練データ生成部134と、モデル学習部136と、を備える。
演算装置120が備えるこれらの機能要素は、例えば、コンピュータである演算装置120がプログラムを実行することにより実現される。なお、上記コンピュータ・プログラムは、コンピュータ読み取り可能な任意の記憶媒体に記憶させておくことができる。これに代えて、演算装置120が備える上記機能要素の全部又は一部を、それぞれ一つ以上の電子回路部品を含むハードウェアにより構成することもできる。
状態観測部130は、学習管理装置112から放電開始通知を受信したことに応じて特性測定器110からの測定値の取得を開始し、二次電池102の所定の状態変数である少なくとも電圧E、電流I、及び温度T(例えば、二次電池102の筺体表面の温度)を、所定の観測タイミングで繰り返し取得する。本実施形態では、所定の観測タイミングは、所定の時間間隔で到来する時刻である。すなわち、状態観測部130は、二次電池102の上記状態変数の測定値を、所定の時間間隔で繰り返し取得する。
また、状態観測部130は、上記所定の時間間隔で取得した上記状態変数の測定値のそれぞれを、所定の時間間隔で充電率算出部132および訓練データ生成部134へ送信する。
充電率算出部132は、状態観測部130から状態変数の測定値を受信する毎に、当該受信した測定値と、学習管理装置112から放電開始通知を受信したときの二次電池102の充電残量と、に基づき、二次電池102の現在の充電残量及びSOC値を算出する。上記「放電開始通知を受信したときの二次電池102の充電残量」は、初回の放電サイクルの開始時に学習管理装置112から受信する充電残量、又は、前回の充電サイクルの終了直前(学習管理装置112からの放電開始通知の、前回の受信の直前)に充電率算出部132が算出した充電残量であり得る。
訓練データ生成部134は、機械学習装置100が放電開始通知を受信してから充電開始通知を受信するまでの放電サイクルにおいて、状態観測部130が二次電池102の状態変数である出力電圧E、出力電流I、及び温度Tについての測定を行う毎に、今回の測定で得られた各状態変数の実測値と、当該今回の測定で得られた実測値に応じて充電率算出部132が算出した今回の上記SOC値と、で構成される訓練データを生成する。そして、訓練データ生成部134は、生成した訓練データを、時系列順に、すなわち、状態変数の測定順に、記憶装置122へ記憶する。
また、訓練データ生成部134は、記憶装置122に記憶した訓練データに基づき、時系列に連続する第1所定数の訓練データによりそれぞれ構成される複数の訓練データセットを生成する。訓練データ生成部134における訓練データセットの生成については、後述において更に説明する。
モデル学習部136は、訓練データ生成部134が生成する訓練データセットを用いて、二次電池102の充電率を推定するモデル140を学習により生成し、生成したモデル140を記憶装置122に記憶する。このモデル140は、例えばリカレント・ニューラルネットワーク(再帰型ニューラルネットワーク、RNN、Recurrent Neural Network)を用いて構成される。モデル学習部136は、学習の終了条件として、例えば学習に用いた訓練データセットの数が所定数に達したときに、モデル140についての学習を終了する。
図2は、モデル学習部136において学習される、RNNを用いたモデル140の構成を示す図である。モデル140を構成するニューラルネットワークは、入力層202と、中間層204と、出力層206と、で構成される。ここで、入力層202は、訓練データに含まれる電圧E、電流I、温度Tの3つの状態変数で構成される3次元の特徴ベクトルを入力データx(t)として受け取る。ここに、tは、例えば、時系列に並んだ複数の訓練データの中の一の訓練データを識別するインデックスである。
中間層204は、入力層202に今回入力された今回の入力データx(t)と、入力層202に前回入力された前回の入力データx(t-1)等から生成される中間層h(t-1)と、に基づいて今回の中間出力htを算出する。これにより、モデル140は、RNNとして構成される。なお、図2に示すU、V、及びWは、それぞれ、入力層202から中間層204への重み行列、中間層204から出力層206への重み行列、及び前回の中間層204(すなわち、h(t-1))から今回の中間層204(すなわち、h(t))への重み行列である。
入力層202には、時系列に連続する第1所定数の訓練データのそれぞれが、当該時系列の順に入力される。これにより、モデル140は、第1所定数の訓練データが表す状態変数の履歴ないし変化過程をも加味して、現在のSOCの推定を行うものとして構成されることとなる。
二次電池102の現在のSOCは、それまでの二次電池102の状態変化の結果であることから、上記RNNを用いて構成されるモデル140は、従来の、リカレントでない(すなわち、再帰的でない)ニューラルネットワークを用いたモデルに比べて高精度にSOC推定を行い得る。
なお、モデル140を構成するRNNは、中間層204としてLSTM(ロング・ショート・ターム・メモリ、Long Short Term Memory)又はGRU(ゲート付き回帰型ユニット、Gated recurrent unit)を含むものであるものとすることができる。
訓練データ生成部134は、上述のとおり、記憶装置122に記憶された一連の訓練データから、時系列に連続する第1所定数の訓練データを抽出し、当該抽出した第1所定数の時系列順の訓練データにより、RNNで構成されるモデル140を学習するための訓練データセットを複数生成する。
特に、本実施形態に係る機械学習装置100の訓練データ生成部134は、例えば状態観測部130により状態変数が観測されるにつれて、直前に生成した訓練データセットの末尾の第2所定数の訓練データを先頭の訓練データとして含む次の訓練データセットを生成する。
すなわち、訓練データ生成部134は、直前に生成した訓練データセットに含まれる時系列順の訓練データのうち時系列的に末尾の部分を構成する第2所定数の前記訓練データを、時系列的に先頭の訓練データとして含む次の訓練データセットを生成する。
本実施形態では、例えば、第2所定数は、第1所定数(例えば50)から1を減じて算出される数(例えば49)である。訓練データ生成部134は、例えば、直前に生成した訓練データセットを構成する時系列の訓練データのうち時系列的に先頭の1個の訓練データを除く他の前記訓練データを全て含む次の訓練データセットを生成する。
訓練データ生成部134は、また、生成した複数の訓練データセットを、それらの先頭の訓練データに係る状態変数の測定時刻が時系列となる順に、モデル学習部136へ順次入力する。
図3は、訓練データ生成部134における訓練データセットの生成について説明するための説明図である。図3には、状態観測部130により所定の観測タイミングで(本実施形態では、所定の時間間隔で)取得された二次電池102の状態変数の測定値が、最上行のタイトル行を除く第1行から下へ向かって時刻順に(すなわち、時系列順に)、表形式で示されている。実線枠で示された表の第1列、第2列、及び第3列は、それぞれ、二次電池102の出力電流I、出力電圧E、及び温度Tの測定値である。表の左側の列は、各行に示された状態変数の測定値の測定時刻であり、その更に左側の列は、各行に示された測定値を識別するための行番号である。ここで、上記測定時刻は、例えば、図3においては年/月/日/時:分で示されている。なお、記憶装置122には、上記観測時刻及び番号も、状態変数の各測定値に関連付けて記憶させておくものとすることができる。
観測時刻の列の値から理解されるように、図示の場合においては、状態観測部130は、例えば時間間隔Δt=10分で状態変数を繰り返し測定している。ただし、これは一例であって、時間間隔Δtは、これ以外の任意の値とすることができる。例えば、時間間隔Δtは、10ミリ秒から10分までの範囲の任意の値とすることができ、又はこれ以外の範囲の値とすることもできる。また、時間間隔Δtは、一の放電サイクルにおいて必ずしも一定値である必要はなく、所定の範囲で変動してもよい。
状態観測部130が、第1所定数(=50)と同じ数の最初の50回の状態変数の測定を終えると、記憶装置122には、番号1から50までの最初の50個の訓練データが記憶される。これに応じて、訓練データ生成部134は、時系列に並んだ訓練データの最初の区間300(符号300が付された図示太線の両端矢印線が示す番号1から50までの時系列区間)の50個の訓練データにより最初の訓練データセットを生成し、当該生成した訓練データセットをモデル学習部136に入力する。
モデル学習部136は、上記入力された最初の訓練データセットに含まれる50個の訓練データに基づき、当該50個の訓練データが示す時系列の50個の状態変数と、時系列的に最後の(すなわち、番号50の)訓練データに含まれるSOC値と、を用いて第1回目の学習(学習のための1回目の誤差が算出される)を行う。
次に、訓練データ生成部134は、状態観測部130が51番目の状態変数の測定を行うと、記憶装置122に番号51の新たな訓練データを追加して保存する。また、訓練データ生成部134は、新たな訓練データを追加したときは、その前に生成された訓練データセットの時系列的に末尾を構成する49個の訓練データ、すなわち、番号2から50までの訓練データセットに、新たに追加した番号51の訓練データを追加して、区間302(すなわち、番号2から51までの時系列区間)の50個の訓練データにより2つ目の訓練データセットを生成する。これにより、その前に生成された(最初の)訓練データセットの時系列的に末尾を構成する49個の訓練データを含む次の(2つ目の)訓練データセットが生成される。訓練データ生成部134は、生成した2つ目の訓練データセットをモデル学習部136へ入力する。
モデル学習部136は、上記入力された2つ目の訓練データセットに含まれる50個の訓練データが示す50個の時系列の状態変数と、時系列的に最後の(番号51の)訓練データに含まれるSOC値と、を用いて第2回目の学習(2回目の誤差が算出される)を行う。
以降は、上記と同様に、訓練データ生成部134は、状態観測部130が状態変数の測定を新たに行う毎に、記憶装置122に新たな訓練データを追加すると共に、その前の訓練データセットの末尾を構成する49個の訓練データを先頭の訓練データとして含み且つ当該新たな訓練データを末尾に含む次の訓練データセットを順次生成して、モデル学習部136へ入力する。また、上記と同様に、モデル学習部136は、入力された訓練データセットに含まれる50個の訓練データが示す50個の時系列の状態変数と、時系列的に最後の訓練データに含まれるSOC値と、を用いて順次学習を行う。
モデル学習部136は、上記のように、50個の時系列の訓練データから、RNNで構成されるモデル140についての1回の入力を行う。図4は、この1回の入力を模式的に示したものである。中間層204は、図2に示すように、今回の入力x(t)とその前の学習での出力h(t-1)から、今回の出力h(t)を生成する。したがって、モデル140は、50個の訓練データをそれぞれ入力とする仮想的な50個の中間層である隠れ層204-1から204-50を含むものとなる。
なお、図示において、入力層202-1から202-49は、隠れ層204-1から204-49のそれぞれに、対応する訓練データの状態変数を入力する仮想的な入力層である。また、図示においては、訓練データセットを構成する50個の、時系列順のそれぞれの訓練データが、x(t-49)、x(t-48)、・・・x(t)で示され、対応する隠れ層の出力が、h(t-49)、h(t-48)、…、h(t)で示されている。また、図4には、モデル140の学習に用いる教師データとしての、各訓練データセットを構成する時系列順の最後の訓練データに含まれるSOCが、SOC(t)として示されている。ここに、tは、図3に示す表の番号欄の番号に対応する。これにより、RNNについての、一般的なバックプロパゲーション法による学習が行われる。
そして、上記学習により、モデル140は、現在tのSOCをその前の直近の第1所定数(本実施形態では50個)の状態変数から推定するモデルとして生成される。
上記の構成を有する機械学習装置100では、過去の入力に基づく中間出力を再帰的に用いる、いわゆるRNNで構成されるモデル140を生成するように学習が行われる。このため、機械学習装置100では、リカレントでない(すなわち、再帰的でない)ニューラルネットワークを用いる従来の学習に比べて、状態変数の過去の変遷の結果としてのSOCを高精度に推定するモデルを生成することができる。
また、機械学習装置100では、学習に用いられる第1所定数の訓練データで構成される現在の訓練データセットは、その前の学習に用いられた訓練データセットの時系列的に末尾を構成する第2所定数の訓練データを、当該現在の訓練データセットにおける時系列的に先頭の訓練データとして含む。これにより、機械学習装置100では、更に高い精度でSOCの推定を行い得る。
すなわち、従来のRNNの学習では、当該学習に用いられる複数の訓練データセットは、一般に、同一の訓練データの時系列シーケンスを互いに重複して含まないように構成される。これにより、それぞれの訓練データセットは個々に独立な内容を含むものとなるので、例えば人間が発する直近の発話文言のシーケンスから次に発話される文言を推定するようなRNNの学習においては、様々な発話文言のシーケンスに対応し得るロバストな推定を行うことのできるモデルが生成され得る。
これに対し、二次電池の現在のSOCは、それまでの二次電池の状態変化(具体的には、上記状態変数の値の変化)、特に、直近の所定期間における状態変化の結果として、連続的に変化するものであるので、上記従来のRNNの学習のように、重複した訓練データシーケンスを含まない個々独立した訓練データセットを用いた学習では、SOC推定の精度に限界が生じ得る。
上述した実施形態の機械学習装置100では、モデル学習部136に与えられる現在の訓練データセットは、その前の学習に用いられた訓練データセットの時系列的に末尾を構成する第2所定数の訓練データを、当該現在の訓練データセットにおける時系列的に先頭の訓練データとして含むので、全体として二次電池102の状態変化のデータをシームレスに含んだ複数の訓練データセットを用いて学習が行われることとなる。その結果、機械学習装置100では、従来に比べて、二次電池102のSOCを高精度で推定し得るモデル140を生成することが可能となる。
次に、機械学習装置100における処理について、図5に示すフロー図を参照して説明する。この処理は、機械学習装置100の電源がオンされたときに開始する。処理を開始すると、まず、機械学習装置100の状態観測部130は、放電開始通知を受信したか否かを判断する(S100)。放電開始通知は、当該放電開始通知の送信時点における二次電池102の充電残量とSOC値と共に、例えば学習管理装置112から受信される。状態観測部130は、放電開始通知を受信していないときは(S100、NO)、ステップS100に戻って放電開始通知を受信するのを待機する。
一方、放電開始通知を受信したときは(S100、YES)、状態観測部130は、記憶装置122に記憶されている訓練データを全て消去した後、特性測定器110からの、二次電池102の状態変数についての測定値の取得を開始する(S102)。すなわち、状態観測部130は、新たな放電サイクルの開始時点で、以前の放電サイクルにおける訓練データを破棄する。これにより、充電サイクルを挟む2つの異なる放電サイクルからの訓練データが一つの訓練データセットの中に混在するのを避けて、一の放電サイクルにおける連続した放電動作における訓練データを用いて学習が行われることとなる。
なお、上述したように、この状態変数には、二次電池102の端子間の電圧E、電流I、温度Tが含まれる。状態観測部130は、ステップS102において状態変数の測定値(以下、状態変数測定値)の取得を開始した後は、例えば、所定の時間間隔Δtで、当該測定値を繰り返し取得する。
次に、充電率算出部132は、状態観測部130が新たな状態変数測定値を取得したか否かを判断する(S104)。そして、新たな状態変数測定値を取得していないときは(S104、NO)、ステップS104に戻って新たな状態変数測定値が取得されるの待機する。一方、状態変数測定値が取得されたときは(S104、YES)、充電率算出部132は、当該取得された状態変数測定値に基づき、二次電池102の現在のSOCを算出する(S106)。
次に、訓練データ生成部134は、状態観測部130が取得した状態変数測定値と充電率算出部132が算出した二次電池102の現在のSOCとを含む訓練データを生成して、記憶装置122に時系列順に記憶する(S108)。この場合において、訓練データ生成部134は、例えば、記憶装置122に記憶する訓練データのそれぞれについて、当該訓練データを訓練データセットの生成に用いたか否かを示す使用済みフラグを設けて記憶装置122に記憶しておくものとすることができる。使用済みフラグは、例えば、対応する訓練データが記憶されたときに、当該訓練データが未使用であることを示す0にリセットされ、その後、その訓練データが訓練データセットに用いられたときに、1にセットされる。
次に、訓練データ生成部134は、前回生成した訓練データセットがあるか否かを判断する(S110)。例えば、訓練データ生成部134は、記憶装置122に記憶されているいずれかの訓練データについての使用済みフラグが1(使用済み)であるときは、前回生成した訓練データセットがあるものと判断することができる。
そして、前回生成した訓練データセットがないときは(すなわち、最初の訓練データセットを生成する前であるときは)(S110、NO)、訓練データ生成部134は、記憶装置122に第1所定数の訓練データが記憶されたか否かを判断する(S112)。そして、第1所定数の訓練データが記憶されていないときは(S112、NO)、処理をステップS104に戻して上記の処理を繰り返す。
一方、記憶装置122に第1所定数の訓練データが記憶されているときは(S112、YES)、訓練データ生成部134は、記憶装置122に記憶されている時系列の第1所定数の訓練データを用いて最初の訓練データセットを生成して、当該生成した最初の訓練データセットをモデル学習部136へ送信する(S114)。
一方、ステップS110において、前回生成した訓練データセットがあるときは(S110、YES)、訓練データ生成部134は、記憶装置122に記憶されている訓練データから、第1所定数の時系列の訓練データで構成される次の訓練データセットであって、前回生成した訓練データセットの末尾の第2所定数の時系列の訓練データを先頭の訓練データとして含む訓練データセットを生成できるか否かを判断する。すなわち、上記次の訓練データセットに必要な数の新たな訓練データ(すなわち、第1所定数から第2所定数を減じて得られる数の新たな訓練データ)が記憶装置122に記憶されているか否かを判断する(S116)。そして、当該必要な数の新たな訓練データが無く、次の訓練データセットを生成できないときは(S116、NO)、訓練データ生成部134は、ステップS104に処理を戻す。
一方、上記必要な数の新たな訓練データが記憶されており、次の訓練データセットを生成できるときは(S116、YES)、訓練データ生成部134は、前回生成した訓練データセットの末尾の第2所定数の時系列の訓練データに、新たな訓練データを時系列順に付加して、第1所定数の訓練データで構成される次の訓練データセットを生成する(S118)。訓練データ生成部134は、当該生成した次の訓練データセットをモデル学習部136へ送信する。
モデル学習部136は、訓練データ生成部134から訓練データセットを受信したことに応じて、受信した訓練データセットを用いてモデル140についての学習を行う(S120)。続いて、モデル学習部136は、充電開始通知を受信したか否かを判断する(S122)。そして、充電開始通知を受信したときは(S122、YES)、モデル学習部136は、ステップS100に処理を戻す。
一方、充電開始通知を受信していないときは(S122、NO)、モデル学習部136は、学習終了条件が満たされたか否かを判断する(S124)。この終了条件は、上述したように、例えば、学習に用いた訓練データセットの数が所定数に達したこと、であるものとすることができる。
そして、学習終了条件が満たされていないときは(S124、NO)、モデル学習部136は、ステップS104に処理を戻す。一方、学習終了条件が満たされたときは(S124、YES)、モデル学習部136は、本処理を終了する。
〔第2実施形態〕
次に、本発明の第2の実施形態について説明する。図6は、本発明の第2の実施形態に係る、二次電池のSOCを推定する充電率推定装置の構成を示す図である。この充電率推定装置600は、例えば、移動体である車両602に搭載される。車両602は、二次電池604を備え、当該二次電池604により給電される駆動モータ606により駆動されて走行する。
ここで、車両602は、本実施形態では、例えば電気自動車であるが、これには限られない。車両602は、自動二輪車、電動自転車、電車、トロリーバス、モータボートなどの、陸及び又は海における移動体であって、当該移動体内に二次電池を備える任意の移動体であるものとすることができる。
充電率推定装置600は、第1の実施形態に係る機械学習装置100により二次電池604のSOC推定に関する学習が行われたモデル140である学習済みモデル666を用い、車両602の走行に応じて変化する二次電池604のSOC値を推定する。
二次電池604は、切替スイッチ610を介して、内燃機関612により駆動される発電機614又は二次電池604にとっての負荷である駆動モータ606と、選択的に接続される。二次電池604と切替スイッチ610との間には、二次電池604の端子間の電圧E、当該端子に流れる電流I、及び二次電池604の温度T、を少なくも含む、当該二次電池604の状態変数を測定するための、特性測定器616が設けられている。特性測定器616は、例えば、電圧センサ、電流センサ、および温度センサ等で構成される。
また、切替スイッチ610と駆動モータ606との間には、二次電池604から駆動モータ606への供給する電力を制御するモータコントローラ618が設けられている。切替スイッチ610、内燃機関612、及びモータコントローラ618は、後述する走行制御装置628により制御される。
充電率推定装置600は、例えばCAN(Control Area Network)通信規格に準拠した通信を行うための車載ネットワークバス620を介して、TCU(Telematics Control Unit)622、操作検知装置624、測定制御装置626、及び走行制御装置628と、通信可能に接続されている。
TCU622は、車両602の外部の通信装置と、例えばインターネット等の通信ネットワークを介して通信するための、無線送受信機で構成される。
操作検知装置624は、車両602の運転者が操作するアクセルペダルおよびブレーキペダルの踏み込み量をそれぞれ検知するアクセルペダルセンサ630およびブレーキペダルセンサ632からセンサ信号を取得し、アクセルペダルおよびブレーキペダルの踏み込み量についての踏み込み量情報を、車載ネットワークバス620を介して走行制御装置628へ送信する。
測定制御装置626は、特性測定器616により、二次電池604の状態変数としての、当該二次電池604の出力電圧E、出力電流I、及び当該二次電池604の温度Tの測定値を取得する。測定制御装置626は、取得したこれら状態変数の測定値を、車載ネットワークバス620を介して、充電率推定装置600および走行制御装置628へ送信する。
走行制御装置628は、二次電池604についてのSOC推定値を充電率推定装置600から取得すると共に、アクセルペダルおよびブレーキペダルについての踏み込み量情報を操作検知装置624から取得する。走行制御装置628は、取得したSOC推定値および踏み込み量情報に基づき、二次電池604の充放電動作を切り替えると共に、駆動モータ606による車両602の走行を制御する。
具体的には、走行制御装置628は、処理装置640と、記憶装置642と、NW通信装置(ネットワーク通信装置)644と、を備える。記憶装置642は、例えば、揮発性及び又は不揮発性の半導体メモリ、及び又はハードディスク装置等により構成される。NW通信装置644は、車載ネットワークバス620を介して充電率推定装置600等の他の装置と通信するための通信装置であり、例えばCAN通信規格に準拠した通信を行うCANトランシーバである。
処理装置640は、例えば、CPU等のプロセッサを備えるコンピュータである。処理装置640は、プログラムが書き込まれたROM、データの一時記憶のためのRAM等を有する構成であってもよい。そして、処理装置640は、機能要素又は機能ユニットとして、充放電制御部646と、走行制御部648と、を備える。
処理装置640が備えるこれらの機能要素は、例えば、コンピュータである処理装置640がプログラムを実行することにより実現される。なお、上記コンピュータ・プログラムは、コンピュータ読み取り可能な任意の記憶媒体に記憶させておくことができる。これに代えて、処理装置640が備える上記機能要素の全部又は一部を、それぞれ一つ以上の電子回路部品を含むハードウェアにより構成することもできる。
充放電制御部646は、操作検知装置624から取得するアクセルペダルについての踏み込み量情報に基づき、アクセルペダルが踏み込まれたことが検知されたときは、切替スイッチ610を切り替えて、二次電池604から駆動モータ606への給電、したがって二次電池604の放電動作を開始する。その際、充放電制御部646は、二次電池604の放電動作を開始した旨の通知である放電開始通知を、走行制御部648へ送ると共に、NW通信装置644により車載ネットワークバス620を介して充電率推定装置600へ送る。
また、充放電制御部646は、操作検知装置624から取得するブレーキペダルについての踏み込み量情報に基づき、ブレーキペダルが踏み込まれたことを検知した場合において、充電率推定装置600から取得されたSOC推定値が所定の値未満であるときは、切替スイッチ610の接続状態および内燃機関612の回転数を制御して、発電機614から二次電池604への充電動作を開始する。充放電制御部646は、発電機614から二次電池604への充電動作を開始したときは、当該充電動作を開始した旨を通知する充電開始通知を、走行制御部648へ送ると共に、車載ネットワークバス620を介して充電率推定装置600へ送信する。
走行制御部648は、充放電制御部646から放電開始通知を受信してから充電開始通知を受信するまでの期間において、操作検知装置624から取得するアクセルペダルについての踏み込み量情報に基づき、モータコントローラ618を制御して、駆動モータ606に発生させるトルク(具体的には、駆動モータ606に印加する電圧及び通電する電流)を制御する。
充電率推定装置600は、処理装置660と、記憶装置662と、NW通信装置(ネットワーク通信装置)664と、を備える。記憶装置662は、例えば、揮発性及び又は不揮発性の半導体メモリ、及び又はハードディスク装置等により構成される。記憶装置662は、学習済みモデル666(具体的には、学習済みモデル666の構成データ)を記憶する。学習済みモデル666は、第1の実施形態に係る機械学習装置100により二次電池604と同型の(すなわち、二次電池604と同一の構成を有する)二次電池102についてのSOC推定に関する学習が行われたモデル140である。この学習済みモデル666は、記憶装置662に予め記憶されるか、又は車両602の外部に置かれたサーバからTCU622を介して受信されて記憶装置662に記憶される。
NW通信装置664は、車載ネットワークバス620を介して走行制御装置628等の他の装置と通信するための通信装置であり、例えばCAN通信規格に準拠した通信を行うCANトランシーバである。
処理装置660は、例えば、CPU等のプロセッサを備えるコンピュータである。処理装置660は、プログラムが書き込まれたROM、データの一時記憶のためのRAM等を有する構成であってもよい。そして、処理装置660は、機能要素又は機能ユニットとして、充電率推定部668を備える。
処理装置660が備える上記機能要素は、例えば、コンピュータである処理装置660がプログラムを実行することにより実現される。なお、上記コンピュータ・プログラムは、コンピュータ読み取り可能な任意の記憶媒体に記憶させておくことができる。これに代えて、処理装置660が備える上記機能要素の全部又は一部を、それぞれ一つ以上の電子回路部品を含むハードウェアにより構成することもできる。
充電率推定部668は、走行制御装置628から放電開始通知を受信したことに応じて、二次電池604の状態変数の測定値のセットを、測定制御装置626を介して特性測定器616から所定の時間間隔で取得し、当該取得した状態変数の測定値セットを、時系列順に、記憶装置662に記憶する。この状態変数の測定値セットには、少なくとも、二次電池604の出力電圧E、出力電流I、温度Tの測定値が含まれる。
充電率推定部668は、また、記憶装置662に時系列順に記憶した状態変数の測定値セットから、直近の第1所定数の測定値セットを抽出する。そして、充電率推定部668は、抽出した直近の第1所定数の状態変数の測定値セットに基づき、記憶装置662に記憶されている学習済みモデル666を用いて、二次電池604の現在のSOC値を推定する。また、充電率推定部668は、上記推定したSOC値を、NW通信装置664を用いて、車載ネットワークバス620を介して走行制御装置628へ送信する。
〔第3実施形態〕
次に、本発明の第3の実施形態について説明する。図7は、本発明の第3の実施形態に係る充電率推定システムの構成を示す図である。この充電率推定システム700は、第1の実施形態に係る機械学習装置100を備えた第1の移動体である少なくとも一つの車両702と、第2の実施形態に係る充電率推定装置600を備える少なくとも一つの第2の移動体である車両602と、を備える。
ここで、車両702および車両602は、本実施形態では、例えば電気自動車であるが、これには限られない。車両702および車両602は、それぞれ、自動二輪車、電動自転車、電車、トロリーバス、モータボートなどの、陸及び又は海における移動体であって、当該移動体内に二次電池を備える任意の移動体であるものとすることができる。
充電率推定システム700は、また、通信ネットワーク704を介して車両702および車両602に対し通信可能に接続されたモデル管理サーバ706を備える。通信ネットワーク704は、例えばインターネットであり得る。なお、図7には、充電率推定システム700を構成する車両として、車両602及び車両702がそれぞれ2台示されているが、これには限られない。充電率推定システム700を構成する車両602及び702は、それぞれ少なくとも1台あればよく、例えば2台以上の任意の同じ数又は互いに異なる数であるものとすることができる。
図8は、第1の移動体である車両702の構成を示す図、図9は、モデル管理サーバ706の構成を示す図である。なお、図7ないし図9において、図1ないし図6に示す構成要素と同じ構成要素については、図1ないし図6における符号と同じ符号を用いて示すものとし、上述した図1ないし図6についての説明を援用する。
図8を参照し、第1の移動体である車両702は、図6に示す第2の実施形態に係る車両602と同様の構成を有するが、充電率推定装置600を備えず、図1に示す第1の実施形態に係る機械学習装置100を備える点が異なる。機械学習装置100は、NW通信装置(ネットワーク通信装置)800を介して車載ネットワークバス620に接続されている。これにより、機械学習装置100は、車載ネットワークバス620を介して、測定制御装置626、走行制御装置628等の他の装置と通信可能に接続されている。NW通信装置800は、NW通信装置644等と同様に、例えばCAN通信規格に準拠した通信を行うCANトランシーバである。
機械学習装置100は、特性測定器110に代えて特性測定器616から、少なくとも二次電池604の出力電圧E、出力電流I、及び温度Tを含む状態変数の測定値を、測定制御装置626を介して取得する。また、機械学習装置100は、学習管理装置112に代えて、走行制御装置628から、充電開始通知および放電開始通知を受信する。また、機械学習装置100は、二次電池604の規格値である定格充電容量についての情報が、記憶装置662に予め保存されているものとする。これにより機械学習装置100は、車両602の走行に伴って、状態観測部130により二次電池604の状態変数の測定値を所定の観測タイミングで取得すると共に、充電率算出部132により当該二次電池604の充電率を算出する。
また、機械学習装置100は、状態観測部130により二次電池604の状態変数の測定値が新たに取得されるにつれて、訓練データ生成部134により訓練データセットを生成する。モデル学習部136は、当該生成される訓練データセットに基づいて、SOC推定についての学習を行ってモデル140を生成する。機械学習装置100は、学習が完了したモデル140を、TCU622を介してモデル管理サーバ706へ送信する。なお、二次電池604の充電残量算出の基準となる、機械学習装置100の動作開始時点における二次電池604の充電残量は、例えば、車両602のメンテナンスを行う工場において、機械学習装置100の記憶装置122に与えられ、充電率算出部132がこれを参照するものとすることができる。
図9を参照し、モデル管理サーバ706は、処理装置900と、記憶装置902と、通信装置904と、を備える。通信装置904は、通信ネットワーク704を介して車両602及び702と通信するための無線通信装置及び又は有線通信装置である。記憶装置902は、例えば、揮発性及び又は不揮発性の半導体メモリ、及び又はハードディスク装置等により構成される。記憶装置902には、車両702から受信するモデル140の、SOCの推定精度を評価するための評価用データ906が予め記憶されている。この評価データは、例えば、二次電池604及び車両602及び又は車両702の典型特性に基づいてシミュレーションにより作成されたもの、又は車両602及び又は車両702における実測データに基づいて作成されたものとすることができる。
処理装置900は、例えば、CPU等のプロセッサを備えるコンピュータである。処理装置900は、プログラムが書き込まれたROM、データの一時記憶のためのRAM等を有する構成であってもよい。そして、処理装置900は、機能要素又は機能ユニットとして、モデル取得部910と、モデル評価部912と、モデル配信部914と、を備える。
処理装置900が備えるこれらの機能要素は、例えば、コンピュータである処理装置900がプログラムを実行することにより実現される。なお、上記コンピュータ・プログラムは、コンピュータ読み取り可能な任意の記憶媒体に記憶させておくことができる。これに代えて、処理装置900が備える上記機能要素の全部又は一部を、それぞれ一つ以上の電子回路部品を含むハードウェアにより構成することもできる。
モデル取得部910は、第1の移動体である車両702が備える機械学習装置100が学習したモデル140を、通信装置904及び通信ネットワーク704を介して取得する。また、モデル評価部912は、上記取得したモデル140の充電率の予測精度を、記憶装置902が記憶する評価用データ906を用いて算出する。モデル配信部914は、モデル評価部912が算出した上記予測精度が所定の精度以上であるときに、モデル評価部912が評価した当該モデル140を、通信装置904により、通信ネットワーク704を介して、第2の移動体である車両602が備える充電率推定装置600へ送信する。車両602の充電率推定装置600の処理装置660は、受信したモデル140を学習済みモデル666として記憶装置662に記憶し、当該記憶した学習済みモデル666を用いて、二次電池604のSOC値を推定する。
上記の構成を有する充電率推定システム700は、車両702の実際の走行における二次電池604の放電動作時の測定値に基づいて学習されたモデル140のうち、SOCの予測精度が所定の精度以上であるモデルを他の車両602に配信するので、車両用途において精度の良いSOC推定を行い得るモデルを、車両間で共有することができる。
なお、モデル管理サーバ706のモデル配信部914は、上記に代えて又はこれに加えて、複数の車両702からそれぞれ取得されるモデル140のうちから、モデル評価部912における評価において充電率の予測精度が最も高い一のモデルを選択して、車両602へ送信するものとすることができる。例えば、モデル配信部914は、一のモデル140を車両602へ送信した後に車両702から他のモデル140を取得した場合において、モデル評価部912における当該取得したモデル140の評価におけるSOC予測精度が、送信済のモデル140について過去に行った評価の予測精度より高いときは、上記取得したモデル140を車両602へ更に送信してもよい。この場合、車両602の充電率推定装置600は、更に送信されたモデル140により、記憶装置662に記憶している学習済みモデル666を更新することができる。
なお、車両702は、一旦学習が終了したモデル140をモデル管理サーバ706へ送信した後に、当該モデル140の学習を継続し、例えば、所定の数の新たな訓練データセットを用いた学習が終了する毎に、学習したモデル140を再びモデル管理サーバ706へ送信してもよい。この学習の継続は、モデル管理サーバ706からの指示により行うものとすることができる。これにより、充電率推定システム700では、SOC精度の最も高いモデル140を送信した車両702に対し、当該モデル140の更なる学習を指示して、当該車両702において更にSOC推定精度の高いモデル140の実現を試みることができる。
なお、本発明は上記実施形態の構成に限られるものではなく、その要旨を逸脱しない範囲において種々の態様において実施することが可能である。
例えば、上述した実施形態では、一例として、機械学習装置100は、二次電池102の放電サイクルにおいて所定の観測タイミングで取得された状態変数測定値から当該二次電池102の放電動作時におけるSOCを推定するモデル140を生成するものとしたが、これには限られない。機械学習装置100は、二次電池102の充電サイクルにおいて所定の観測タイミングで取得される状態変数(この場合には、少なくとも二次電池102の入力電圧E、入力電流I、温度Tで構成される)測定値から当該二次電池102の充電動作時におけるSOC値を推定するモデルを生成するものとしてもよい。そのようなモデルは、モデル140とは異なる別個のモデルとして生成されるものとしてもよいし、入力される状態変数測定値のシーケンスから充電動作時及び放電動作時の双方の場合のSOC値を推定する統括的なモデル140として生成されるものとしてもよい。
そのような統括的なモデル140は、充電サイクル及び放電サイクルのそれぞれにおいて取得された状態変数測定値を用いて生成される、充電サイクル及び放電サイクルのそれぞれについての訓練データセットを用いて、充電時及び放電時のそれぞれについての学習を行うことで生成され得る。ここで、訓練データセットは、上述の実施形態の訓練データセットと同様に、第1所定数の時系列の訓練データで構成され、訓練データセットの時系列的に末尾の第2所定数の訓練データが、次の訓練データセットの時系列的に先頭の訓練データを構成するように生成される。この場合には、充電サイクルにおける訓練データは、二次電池604への入力電圧E、入力電流I、及び温度Tで構成される。
また、この場合には、第2の実施形態及び又は第3の実施形態に係る充電率推定装置600の充電率推定部668は、機械学習装置100において二次電池604の充電サイクル及び又は放電サイクルでの状態変数を用いた学習により生成されたモデル140である学習済みモデル666を用いるものとすることができる。すなわち、充電率推定部668は、測定制御装置626を介して取得される二次電池604の電圧E(出力電圧及び入力電圧を含む)、電流I(出力電流及び入力電流を含む)、及び温度Tの、第1所定数の測定値セットに基づき、学習済みモデル666を用いて、二次電池604の放電動作時及び又は充電動作時におけるSOC値を推定するよう構成され得る。
また、上述した実施形態では、一例として、訓練データセットを構成する訓練データの個数である第1所定数を50とし、一の訓練データセットの時系列的に末尾の訓練データであって次の訓練データセットの時系列的に先頭を構成する訓練データの個数である第2所定数を49であるものとしたが、これには限られない。第1所定数は、2以上の任意の数であるものとすることができ、第1所定数は、第2所定数未満の任意の数であるものとすることができる。この場合において、第2所定数は、第1所定数の数に近いほど、時系列に生成される複数の訓練データセットは、二次電池102、604について取得される時系列の訓練データをシームレスに含むものとなり、モデル140におけるSOC推定精度をより向上することができる。モデル140におけるSOC推定精度を向上する観点からは、第2所定数は、第1所定数の1/3以上であることが好ましく、1/2以上であることが更に好ましく、また、本実施形態のように、第1所定数から1を減じた数であることが最も好ましい。
また、上述した実施形態では、訓練データは、二次電池102等について測定された状態変数の測定値と、当該測定値が測定されたときに算出されたSOC値と、により構成されるものとしたが、これには限られない。機械学習装置100のモデル学習部136では、訓練データセットを構成する末尾の訓練データが含むSOC値のみを教師データとして用いるので、当該訓練データセットを構成する他の訓練データには、SOC値は含まれなくてもよい。例えば、充電率算出部132が算出するSOC値は、第1所定数の訓練データで構成される訓練データセットの末尾に対応する訓練データにのみ付加されるか、又は当該末尾に対応する訓練データに対応付けられた別のデータとして記憶装置122に記憶されるものとしてもよい。
また、上述した第1の実施形態では、学習終了条件として、単に学習に用いた訓練データセットの数が所定数を超えたときに学習を終了するものとしたが、これには限られない。例えば、二次電池102を限界まで充電したときのSOC値を当該二次電池102の劣化指標とし、当該劣化指標が様々な値を持つ場合において、及び又は、様々な環境温度下において、所定数の訓練データセットを用いた学習を行うものとすることができる。これにより、二次電池102の劣化の程度や二次電池102の環境温度に依存し得る、当該二次電池102の放電特性を加味したSOC推定を行い得るモデル140を生成することができる。
また、上述した実施形態では、二次電池102等の状態変数の測定値が取得されるにつれて、RNNを用いたモデル140についての学習が行われるものとしたが、これには限られない。例えば、第1の実施形態に係る機械学習装置100では、訓練データ生成部134は、放電サイクルの開始から終了までの間に取得される状態変数測定値から、一連の訓練データを生成して記憶装置122に記憶しておいてもよい。機械学習装置100は、その放電サイクルにおける最後の状態変数測定値を用いた訓練データを記憶装置122に記憶した後で、当該記憶された訓練データを用いて、一連の訓練データセットを生成して、モデル学習部136へ出力するものとすることができる。
また、上述した実施形態では、訓練データを構成する二次電池102の状態変数として、これら二次電池の端子間の電圧E、電流I、温度Tを用いるものとしたが、これには限られない。訓練データを構成する状態変数は、これらに加えて、例えば二次電池102の内部インピーダンスと用いるものとしてもよい。
また、上述した実施形態では、SOC(充電率)は、二次電池102の定格充電容量まで充電された状態、すなわち、充電残量が定格充電容量に等しい場合を100%とするものとしたが(式(1)参照)、これには限られない。例えば、その時々の限界充電状態まで充電された状態でSOCを100%とし、次式で算出されるものとしてもよい。
(現在の充電残量)÷(限界充電状態での充電残量)×100(%) (2)
また、上述した実施形態では、充電率推定装置600は、車両602に搭載されて、当該車両602を駆動する駆動モータ606への給電を行う二次電池604のSOCを推定するものとしたが、これには限られない。充電率推定装置600は、二次電池を用いる任意の乗り物、装置、設備、建物等において、当該二次電池のSOCを推定するよう構成され得る。
以上説明したように、上述した機械学習装置100は、二次電池102の放電量および充電量を実測して二次電池102のSOC(充電率)を算出する充電率算出部132と、二次電池102の、電圧E、電流I、及び温度Tを含む二次電池102の状態変数を所定の観測タイミング(例えば、所定の時間間隔Δt)で繰り返し観測する状態観測部130と、を備える。また、機械学習装置100は、観測した上記観測タイミング毎の状態変数の測定値によりそれぞれ構成される訓練データを、状態変数の観測タイミング順に第1所定数(例えば50個)だけ時系列に並べた訓練データセットを生成する訓練データ生成部134を備える。
さらに、機械学習装置100は、当該生成された訓練データセットに従って、二次電池102の状態変数の時系列データから現在の二次電池102のSOCを推定するモデル140を学習により生成するモデル学習部136を備える。ここで、訓練データ生成部134は、訓練データセットの末尾の第2所定数(例えば49個)の時系列の訓練データを先頭の訓練データとして含む次の訓練データセットを生成する。そして、訓練データ生成部134は、生成した複数の上記訓練データセットを、それらの先頭の訓練データに係る状態変数の観測タイミングが時系列となる順に、モデル学習部136へ順次入力する。
この構成によれば、全体として二次電池102の状態変化のデータをシームレスに含んだ複数の訓練データセットを用いて、第1所定数の時系列の状態変数(訓練データ)から現在の一のSOCを推定するモデルが生成されるので、二次電池102のSOCを、従来に比べて高精度に推定することができる。すなわち、従来技術のように二次電池を加速劣化させることなく、実使用状態又はこれに近い状態における特性測定値(すなわち、状態変数の測定値)から、SOCを精度良く推定し得るモデルを効率的に生成することができる。
また、機械学習装置100では、上記第2所定数は、上記第1所定数から1を減じて算出される数である。訓練データ生成部134は、訓練データセットを構成する時系列の訓練データのうち先頭の訓練データを除く他の訓練データを全て含む次の訓練データセットを生成するよう構成されている。この構成によれば、SOC推定精度をより向上することができる。
また、機械学習装置100では、モデル140は、時系列データを処理するRNN(リカレントニューラルネットワーク)で構成される。この構成によれば、複数の時系列の状態変数(訓練データ)から現在の一のSOCを推定するモデル140を効果的に生成することができる。
また、モデル140を構成するRNNの中間層204は、LSTM(ロング・ショート・ターム・メモリ)またはGRU(ゲート付き回帰型ユニット)で構成される。この構成によれば、複数の時系列の状態変数(訓練データ)から現在の一のSOCを推定するモデル140をより効果的かつ効率的に生成することができる。
また、機械学習装置100は、二次電池102の電圧E、電流I、及び温度Tを含む二次電池102の状態変数を所定の観測タイミングで繰り返し観測するステップ(S102、S104)と、二次電池102の、現在までの放電量および充電量を算出して二次電池102の充電率を算出するステップ(S106)と、を含む機械学習方法を実行する。この機械学習方法は、また、上記観測した観測タイミング毎の状態変数の測定値によりそれぞれ構成される訓練データを、上記状態変数の観測タイミング順に第1所定数だけ時系列に並べた訓練データセットを生成するステップ(S108からS118)と、上記生成された訓練データセットに従って、二次電池の状態変数の時系列データから現在の二次電池102の充電率を推定するモデル140を学習により生成するステップ(S120、S124)と、を備える。さらに、この機械学習法方法では、上記訓練データセットを生成するステップは、訓練データセットの末尾の第2所定数の時系列の訓練データを先頭の訓練データとして含む次の訓練データセットを生成し(S118)、生成した複数の前記訓練データセットを、それらの先頭の前記訓練データに係る状態変数の観測タイミングが時系列となる順に、前記モデルを生成するステップの入力とする(S120)。
この構成によれば、全体として二次電池102の状態変化のデータをシームレスに含んだ複数の訓練データセットを用いて、第1所定数の時系列の状態変数(訓練データ)から現在の一のSOCを推定するモデルが生成されるので、二次電池102のSOCを、従来に比べて高精度に推定することができる。すなわち、従来技術のように二次電池を加速劣化させることなく、実使用状態又はこれに近い状態における特性測定値(すなわち、状態変数の測定値)から、SOCを精度良く推定し得るモデルを効率的に生成することができる。
また、上述した第2の実施形態に係る充電率推定装置600は、機械学習装置100により生成されるか又は当該機械学習装置100が実行する機械学習方法における学習により生成された、モデル140である学習済みモデル666を備える。また、充電率推定装置600は、学習済みモデル666を用い、所定の観測タイミングで繰り返し観測される二次電池604の電圧E、電流I、及び温度Tを含む二次電池604の状態変数の時系列データから二次電池604の現在のSOCを推定する充電率推定部668を備える。
この構成によれば、二次電池102のSOCを従来に比べて高精度に推定することのできる充電率推定装置を実現することができる。
また、上述した第3の実施形態に係る充電率推定システム700は、機械学習装置100を備えた第1の移動体である車両702と、充電率推定装置600を備える第2の移動体である車両602と、車両702および車両602に対し通信可能に接続されたモデル管理サーバ706と、を備える。モデル管理サーバ706は、処理装置900を備える。処理装置900は、モデル取得部910により、第1の移動体である車両702が備える機械学習装置100が学習により生成したモデル140を取得する。また、処理装置900は、モデル評価部912により、当該取得したモデルのSOCの予測精度を、所定の評価用データを用いて算出する。そして、処理装置900は、モデル配信部914により、上記算出した予測精度が所定の精度以上であるときに、モデル140を車両602が備える充電率推定装置600へ送信する。
この構成によれば、車両用途において精度の良いSOC推定を行い得るモデル140を、車両間で共有して、任意の車両において精度の高いSOC推定に基づく車両制御を行うことができる。