【解決手段】実施形態に係る制御装置は、算出部と、判定部と、補正部と、更新部とを備える。算出部は、入力データについてニューラルネットワークに基づいて演算を行い、入力データに関する状態が第1の状態である確率値を算出する。判定部は、算出部で算出した確率値を第1閾値と比較することで、状態が第1の状態であるか否かを判定する。補正部は、判定部による判定の際に、補正値に基づいて、確率値と第1閾値の少なくとも一方を補正する。更新部は、状態が第1の状態である際の入力データを、算出部への入力データとして入力し、その際に算出部によって算出された確率値に基づいて補正値を更新する。
【発明を実施するための形態】
【0009】
以下、添付図面を参照して、本願の開示する制御装置および補正方法の実施形態を詳細に説明する。なお、以下に示す実施形態により本発明が限定されるものではない。
【0010】
まず、
図1を用いて実施形態に係る制御装置および補正方法の概要について説明する。
図1は、補正方法の概要を示す図である。なお、実施形態に係る補正方法は、
図1に示す制御装置1によって実行される。
【0011】
図1に示すように、実施形態に係る制御装置1は、例えば、エンジン100から入力される各種センサの入力データに基づいて状態が第1の状態である確率値を学習モデルに基づいて算出する。より詳細には、制御装置1は、学習モデルを用いたニューラルネットワークに基づく演算処理を行うことで、第1の状態である確率値(スコア)を算出する。
【0012】
本実施形態では、制御装置1が、第1の状態として、エンジン100が各気筒内部の失火やノッキングである確率を算出する場合について説明するが、第1の状態は失火やノッキングに限定されるものではない。
【0013】
すなわち、実施形態に係る制御装置1は、入力データについて第1の状態である確率値をニューラルネットワークに基づく演算処理によって算出し、かかる確率値と第1閾値とを比較することで、第1の状態であるか否かを判定する。
【0014】
また、例えば、エンジン100は、図示しない車両に搭載され、車両の駆動源として機能する。このような場合、例えば、エンジン100や、エンジン100の状態を検出するセンサには、個体差が生じる場合がある。
【0015】
この場合に、制御装置1に入力される入力データについても、個体差が生じることとなる。このため、制御装置1によって導出される確率値の正確性が損なわれるおそれがある。
【0016】
一方で、上記の個体差にあわせて学習モデルを補正すると、膨大なコストや時間が掛かるため、好ましくない。特に、学習モデルを車両に搭載する場合、学習モデル毎に安全性のテストを行う必要があり、膨大なコストが掛かる。
【0017】
そこで、実施形態に係る補正方法では、再学習等を行って学習モデルの補正を行うことをせず、学習モデルに基づいて算出した確率値を補正することとした。
【0018】
具体的には、
図1に示すように、実施形態に係る補正方法では、サンプルデータDsに基づいて学習モデルを用いて確率値Pを算出する(ステップS1)。ここで、サンプルデータDsは、例えば、ノッキング時のノック信号やエンジン回転数等の、学習モデルに入力データとして設定されているエンジンの運転状態を示す複数種類のデータで構成される入力データである。すなわち、サンプルデータDsは、第1の状態である際の入力データの一例である。
【0019】
このため、サンプルデータDsに基づく確率値Pは、100%となるはずである。しかしながら、
図1に示すように、学習モデルによって、確率値Pが「80%」と算出された場合、実際の確率と、学習モデルによって求まる確率値Pには、20%の乖離がある。
【0020】
実施形態に係る補正方法は、差分である「20%」を補正値Cとして更新する(ステップS2)。なお、補正値Cは、差分である必要はなく、割合を示す係数であってもよい。その後、実施形態に係る補正方法は、入力データに基づいて算出した確率値Pに対して、毎回、補正値Cで補正することで、確率値Pを適切に補正することが可能となる。
【0021】
また、実施形態に係る補正方法において、補正値Cに基づいて、第1閾値を補正することにしてもよいし、あるいは、確率値Pおよび第1閾値の双方を補正することにしてもよい。
【0022】
また、エンジン100の運転状態(エンジン回転数や吸入空気量など)に基づいて、運転領域を複数領域に分割し、分割した領域毎に異なる補正値Cを用いて補正することにしてもよい。この場合、領域毎に補正値Cを算出することで、各運転状態に応じて、確率値Pを適切に補正することが可能となる。
【0023】
このように、実施形態に係る補正方法では、学習モデルではなく、確率値Pを補正する。これにより、学習モデルを全ての車両で共通して用いることが可能となる。したがって、実施形態に係る補正方法によれば、学習モデルの誤差を容易に修正することができる。
【0024】
なお、サンプルデータDsの入力は、エンジン100の運転状態をノックが発生する状態に変化させることで、学習モデルに対応する入力データを入力する構成でもよいし、学習モデルへの入力系統として、通常の制御時の入力データを入力する系統と、更新時に使用する更新用のデータを入力する系統の2系統を設けて、通常制御時と更新時とで入力経路を切り替える構成であってもよい。
【0025】
次に、
図2を用いて実施形態に係る制御装置1の構成例について説明する。
図2は、制御装置1のブロック図である。なお、
図2には、センサ群101を併せて示す。センサ群101は、エンジン100の内部状態を検出するセンサの総称である。
【0026】
上述のように、制御装置1が、ノッキングを検出する場合、センサ群101には、クランク角センサ、ノックセンサなどが含まれる。なお、センサ群101は、上記の例に限られず、確率値Pの算出対象に応じて、適宜変更することが可能である。
【0027】
図2に示すように、制御装置1は、制御部2と、記憶部3とを備える。制御部2は、算出部21と、補正部22と、判定部23と、更新部24と、送信部25とを備える。記憶部3は、学習モデル31と、補正値情報32とを記憶する。
【0028】
制御部2は、例えば、CPU(Central Processing Unit)、ROM(Read Only Memory)、RAM(Random Access Memory)、HDD(Hard Disk Drive)、入出力ポートなどを有するコンピュータや各種の回路を含む。
【0029】
コンピュータのCPUは、例えば、ROMに記憶されたプログラムを読み出して実行することによって、制御部2の算出部21、補正部22、判定部23、更新部24および送信部25として機能する。
【0030】
また、制御部2の算出部21、補正部22、判定部23、更新部24および送信部25の少なくともいずれか一部または全部をASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等のハードウェアで構成することもできる。
【0031】
また、記憶部3は、例えば、RAMやHDDに対応する。RAMやHDDは、学習モデル31、補正値情報32や各種プログラムの情報を記憶することができる。なお、制御装置1は、有線や無線のネットワークで接続された他のコンピュータや可搬型記録媒体を介して上記したプログラムや各種情報を取得することとしてもよい。
【0032】
学習モデル31は、入力データを解析し、深層学習等の機械学習によって生成された学習モデルである。
【0033】
補正値情報32は、補正値Cに関する情報である。例えば、補正値情報32は、所定のタイミングで更新される。
【0034】
制御部2は、センサ群101から入力される入力データに基づいて入力データが第1の状態にある確率値Pを算出するとともに、所定のタイミングで確率値Pの補正値Cを更新する。
【0035】
算出部21は、入力データについてニューラルネットワークに基づいて演算を行い、入力データに関する状態が第1の状態である確率値を算出する。具体的には、算出部21は、学習モデル31に基づいて入力データが第1の状態である確率値Pを算出する。
【0036】
また、算出部21は、上記のサンプルデータDsに対応する第1の状態である際の入力データを学習モデル31へ入力し、サンプルデータDsに基づく確率値Pを算出することも可能である。
【0037】
補正部22は、後述する判定部23による判定の際に、後述する更新部24によって更新される補正値Cに基づいて、確率値Pと第1閾値の少なくとも一方を補正する。
図3は、補正後の確率値P´の模式図である。
【0038】
図3に示すように、補正後の確率値P´は、例えば、確率値Pに対して補正値Cを加算した値となる。すなわち、補正部22は、算出部21によって算出された確率値Pに補正値Cを加算することで、確率値Pを補正することとなる。
【0039】
これにより、センサ群101の個体差に基づく、学習モデル31の誤差を容易に修正することが可能となる。なお、
図3に示す例では、補正部22が、確率値Pを補正する場合について説明したが、第1閾値を補正することにしてもよい。
【0040】
図2の説明に戻り、判定部23について説明する。判定部23は、算出部21によって算出された確率値Pを第1閾値と比較することで、状態が第1の状態であるか否かを判定する。
【0041】
本実施形態において、判定部23は、補正部22によって補正された確率値P´と、第1閾値を比較することで、状態が第1の状態であるか否かを判定する。例えば、判定部23は、確率値P´が第1閾値を上回る場合に、第1の状態であると判定し、確率値P´が第1閾値を下回る場合に、第1の状態でないと判定する。
【0042】
また、判定部23は、補正部22によって、第1閾値が補正された場合、補正後の第1閾値と、算出部21によって算出された確率値Pとを比較することで、第1の状態であるか否かを判定する。
【0043】
このように、判定部23は、補正部22による補正結果に基づいて、状態が第1の状態であるか否かを判定する。これにより、判定結果の精度を向上させることが可能となる。また、本実施形態では、補正部22は、簡便な処理で、確率値Pまたは第1閾値を補正することができる。したがって、学習モデル31の誤差を容易に修正することが可能となる。
【0044】
更新部24は、状態が第1の状態である際の入力データを、算出部21への入力データとして入力し、その際に算出部21によって算出された確率値Pに基づいて補正値Cを更新する。
【0045】
すなわち、更新部24は、第1の状態であるサンプルデータDsを算出部21への入力データとして入力する。このとき、更新部24は、例えば、エンジン100を制御するエンジンECU(Electronic Control Unit)に対して、第1の状態の発生を指示することで、第1の状態であるサンプルデータDsを取得することが可能である。
【0046】
そして、更新部24は、サンプルデータDsを算出部21へ入力すると、算出部21は、サンプルデータDsを学習モデル31に入力することで、第1の状態である確率値Pを算出する。
【0047】
ここで、センサ群101の取り付け位置等に個体差がない場合には、かかる確率値Pは、基本的に100%を示す。したがって、更新部24は、例えば、100%から確率値Pを差し引いた値を補正値Cとして算出し、記憶部3の補正値情報32を更新する。
【0048】
なお、サンプルデータDsは、1種類である必要はなく、複数種類であってもよい。この場合、例えば、複数のサンプルデータDsの結果を平準化して補正値Cを算出することとすればよい。
【0049】
また、上述のように、エンジン100の運転領域を複数領域に分割し、分割した領域ごとに異なる補正値Cを算出するようにしてもよい。この場合、補正部22は、補正値情報32を参照し、運転領域毎に異なる補正値Cを用いて、確率値Pを補正する。これにより、運転領域毎に適切に確率値Pを補正することができるので、第1の状態であるか否かを精度よく判定することが可能となる。
【0050】
送信部25は、補正部22によって補正された後の確率値P´が所定条件を満たす場合に、入力データを外部装置へ送信し、確率値Pの算出を依頼する。具体的には、送信部25は、例えば、第1の状態である確率値P´が例えば、60〜40%である場合に、すなわち、第1の状態を確率値P´から判定し難い場合に、外部装置へ確率の算出を依頼する。
【0051】
図4は、送信部25による一連の処理を示す図である。
図4に示すように、例えば、送信部25は、確率値P´が所定条件を満たしたときの入力データをクラウド50へ送信する。
【0052】
クラウド50には、学習モデルXが格納されており、クラウド50は、学習モデルXにより確率値を算出する。学習モデルXは、学習モデル31に比べて、信頼度が高く、また、データ容量が大きい学習モデルである。
【0053】
すなわち、制御装置1は、学習モデルXを用いて確率値を算出することで、より信頼度の高く確率値を得ることができる。また、この際、各制御装置1には、簡素な学習モデル(低容量、低処理負荷)を格納しておけばよいので、制御装置1の製品コストを抑えることができる。
【0054】
そして、制御装置1は、クラウド50から学習モデルXを用いて算出された確率値を取得し、かかる確率値に基づいて第1の状態であるか否かの判定を行うことになる。なお、更新部24は、クラウド50から送信された確率値と、学習モデル31を用いて算出した確率値Pとの差分に基づき、補正値Cを更新することにしてもよい。
【0055】
すなわち、クラウド50側で算出された確率値をサンプルデータDsと見做すこともできる。これにより、補正値Cをより細かく補正することが可能となる。
【0056】
次に、
図5および
図6を用いて、実施形態に係る制御装置1が実行する処理手順について説明する。
図5および
図6は、制御装置1が実行する処理手順を示すフローチャートである。なお、
図5では、補正値Cを更新する一連の処理手順について説明する。
【0057】
図5に示すように、制御装置1は、まず、補正値Cの更新タイミングか否かを判定し(ステップS1)、更新タイミングと判定した場合(ステップS101,Yes)、第1の状態の発生を指示する(ステップS102)。
【0058】
続いて、制御装置1は、第1の状態にあるサンプルデータDsに基づいて第1の状態である確率値Pを算出する(ステップS103)。続いて、制御装置1は、ステップS103にて算出した確率値Pに基づき、補正値Cを算出する(ステップS104)。
【0059】
続いて、制御装置1は、ステップS104にて算出した補正値Cに基づいて記憶部3の補正値情報32を補正する。また、制御装置1は、ステップS101の判定処理において、更新タイミングと判定しなかった場合(ステップS101,No)、そのまま処理を終了する。
【0060】
次に、
図6を用いて、制御装置1が、通常制御時において、第1の状態であるか否かを判定するまでの一連の処理について説明する。
【0061】
図6に示すように、まず、制御装置1は、入力データを取得すると(ステップS201)、入力データに基づいて、第1の状態である確率値Pを算出する(ステップS202)。
【0062】
続いて、制御装置1は、
図5に示す処理手順にて更新した補正値Cに基づいて、確率値Pまたは第1閾値を補正する(ステップS203)。続いて、制御装置1は、補正した確率値P´または第1閾値に基づいて、第1の状態であるか否かを判定して(ステップS204)、処理を終了する。
【0063】
上述したように、実施形態に係る制御装置1は、算出部21と、判定部23と、補正部22と、更新部24とを備える。算出部21は、入力データについてニューラルネットワークに基づいて演算を行い、入力データに関する状態が第1の状態である確率値Pを算出する。判定部23は、算出部21で算出した確率値Pを第1閾値と比較することで、状態が第1の状態であるか否かを判定する。
【0064】
補正部22は、判定部23による判定の際に、補正値Cに基づいて、確率値Pと第1閾値の少なくとも一方を補正する。更新部24は、状態が第1の状態である際の入力データを、算出部21への入力データとして入力し、その際に算出部21によって算出された確率値Pに基づいて補正値Cを更新する。
【0065】
したがって、実施形態に係る制御装置1によれば、学習モデルの誤差を容易に修正することができる。
【0066】
ところで、上述した実施形態では、制御装置1がエンジン100の状態を算出する場合について説明したが、これに限定されるものではない。すなわち、制御装置1は、エンジン100以外の内部状態を学習モデルに基づき、推定するものであってもよい。
【0067】
さらなる効果や変形例は、当業者によって容易に導き出すことができる。このため、本発明のより広範な様態は、以上のように表しかつ記述した特定の詳細および代表的な実施形態に限定されるものではない。したがって、添付の特許請求の範囲および、その均等物によって定義される統括的な発明の概念の精神または範囲から逸脱することなく、様々な変更が可能である。