(57)【特許請求の範囲】
【請求項１】
内燃機関の運転状態に応じて変化する状態量の情報を状態量センサから取得する情報取得部と、
前記情報取得部によって取得された情報に基づいて、前記内燃機関を制御するための制御量を演算する演算部と、
を備え、
前記演算部は、
前記状態量が設定領域内にあるか否かを判定する領域判定部と、
前記設定領域内にあると判定された状態量である領域内状態量を入力値として、ニューラルネットワークによって前記制御量を演算する第１演算部と、
前記設定領域外にあると判定された状態量である領域外状態量を入力値として、前記制御量を演算する第２演算部と、
を有しており、
前記第２演算部は、
前記領域外状態量に基づいて、前記設定領域内にある前記状態量である参考状態量を選択し、
前記参考状態量を入力値として前記ニューラルネットワークによって、前記ニューラルネットワークの出力値としての参考制御量を演算し、
前記参考制御量に基づいて、前記領域外状態量に対応する前記制御量を演算する
内燃機関の制御装置。
【請求項２】
前記第２演算部は、
前記参考状態量として、前記領域外状態量に最も近い状態量を選択する
請求項１に記載の内燃機関の制御装置。
【請求項３】
前記第２演算部は、
前記状態量を座標軸として有するｎ次元空間において、
前記参考状態量として、前記領域内状態量のうち前記領域外状態量との距離が最小となる状態量を選択する
請求項２に記載の内燃機関の制御装置。
【請求項４】
前記第２演算部は、
前記領域外状態量に対応する前記制御量として、前記参考制御量をそのまま出力する
請求項１から請求項３までのいずれか１項に記載の内燃機関の制御装置。
【請求項５】
前記第２演算部は、
前記領域外状態量と、前記領域内状態量のうちの特定の状態量とを通る１次関数を演算し、
前記参考状態量として、前記特定の状態量及び前記特定の状態量以外の前記１次関数上の状態量を選択し、
前記特定の状態量及び前記特定の状態量以外の前記１次関数上の状態量を入力値として前記ニューラルネットワークによって前記参考制御量を演算し、
前記参考制御量を近似する関数である近似関数を演算し、前記近似関数に前記領域外状態量を代入することにより前記領域外状態量に対応する前記制御量を演算する
請求項１から請求項３までのいずれか１項に記載の内燃機関の制御装置。
【請求項６】
前記第２演算部は、
複数の前記１次関数を演算し、複数の前記近似関数を演算し、複数の前記参考制御量を演算し、前記領域外状態量に対応する複数の前記制御量を演算し、前記演算された複数の制御量を統計的に演算する
請求項５に記載の内燃機関の制御装置。
【請求項７】
前記設定領域は、前記状態量を座標軸として有するｎ次元空間において、前記ニューラルネットワークの学習に用いられる教師入力データの存在する密度が基準密度以上である領域として設定される
請求項１に記載の内燃機関の制御装置。
【請求項８】
内燃機関の運転状態に応じて変化する状態量の情報を状態量センサから取得する情報取得処理と、
前記情報取得処理において取得された情報に基づいて、前記内燃機関を制御するための制御量を演算する演算処理と、
をコンピュータに実行させる内燃機関の制御プログラムであって、
前記演算処理は、
前記状態量が設定領域内にあるか否かを判定する領域判定処理と、            
前記設定領域内にあると判定された状態量である領域内状態量を入力値として、ニューラルネットワークによって前記制御量を演算する第１演算処理と、
前記設定領域外にあると判定された状態量である領域外状態量を入力値として、前記制御量を演算する第２演算処理と、
を含んでおり、
前記第２演算処理は、
前記領域外状態量に基づいて、前記設定領域内にある前記状態量である参考状態量を選択し、
前記参考状態量を入力値として前記ニューラルネットワークによって、前記ニューラルネットワークの出力値としての参考制御量を演算し、
前記参考制御量に基づいて、前記領域外状態量に対応する前記制御量を演算する処理を含む
内燃機関の制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、内燃機関の運転状態に応じて変化する状態量に基づいて、内燃機関を制御するための制御量を演算する内燃機関の制御装置及び制御プログラムに関する。
【背景技術】
【０００２】
近年、内燃機関の燃費向上及びエミッション低減に対する要求が高くなっている。そのため、内燃機関のより精密な制御が要求されるようになってきている。内燃機関の制御を精密に行うためには、内燃機関のより多くの状態量を考慮して制御量を演算する必要がある。
【０００３】
従来のエンジン制御におけるデータ推定方法では、ファジィニューラル回路網を用いてエンジンの状態を表す制御パラメータのデータが推定される。このとき、ファジィニューラル回路網には、推定の対象となる制御パラメータのデータとは異なる種類の複数の制御パラメータのデータが入力される（例えば、特許文献１参照）。つまり、従来のデータ推定方法では、内燃機関の複数の状態量がファジィニューラル回路網に入力されることにより、内燃機関の制御量が演算される。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平１１−３４３９１６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ファジィニューラル回路網を精度良く学習させるためには、十分な数の教師データが必要である。しかし、上記のような従来のデータ推定方法によれば、学習時にファジィニューラル回路網に入力される教師データの個数は考慮されていないので、内燃機関の性能限界付近では、以下の理由により教師データが不足してしまう虞がある。
【０００６】
内燃機関の性能限界付近とは、機関回転数が極めて高い状態にある場合、冷却水温が極めて高い状態にある場合、吸気弁の開閉タイミングが大きく進角又は遅角された状態にある場合等を指す。また、教師データは、内燃機関の運転テスト又はシミュレーションの結果から得られる内燃機関の状態量と制御量との組合せである。一例を挙げると、教師データの状態量は、機関回転数、吸入空気温度、及び吸排気弁の開閉タイミングであり、これらの状態量に対する制御量は、吸入空気量である。
【０００７】
内燃機関の性能限界付近では、気筒内の混合気の燃焼が不安定になり、内燃機関の性能を十分に発揮させることができなくなることがある。従って、この場合、内燃機関の運転状態を表す状態量に対する内燃機関の制御量が正確に計測されないことがある。正確に計測されない制御量に関する計測結果は、ファジィニューラル回路網の教師データとして利用することができない。以上が内燃機関の性能限界付近において教師データが不足してしまう理由である。
【０００８】
ファジィニューラル回路網による学習の精度は、教師データが少ないほど低くなる傾向があるため、内燃機関の性能限界付近における学習の精度が低下する虞がある。従って、内燃機関の制御精度が低下する虞がある。
【０００９】
この発明は、上記のような課題を解決するために為されたものであり、内燃機関の制御精度の低下を抑制することができる内燃機関の制御装置及び制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
この発明に係る内燃機関の制御装置は、内燃機関の運転状態に応じて変化する状態量の情報を状態量センサから取得する情報取得部と、情報取得部によって取得された情報に基づいて、内燃機関を制御するための制御量を演算する演算部と、を備え、演算部は、状態量が設定領域内にあるか否かを判定する領域判定部と、設定領域内にあると判定された状態量である領域内状態量を入力値として、ニューラルネットワークによって制御量を演算する第１演算部と、設定領域外にあると判定された状態量である領域外状態量を入力値として、制御量を演算する第２演算部と、を有しており、第２演算部は、領域外状態量に基づいて、設定領域内にある状態量である参考状態量を選択し、参考状態量を入力値としてニューラルネットワークによって参考制御量を演算し、参考制御量に基づいて、領域外状態量に対応する制御量を演算する。
【発明の効果】
【００１１】
この発明に係る内燃機関の制御装置及び制御プログラムによれば、内燃機関の制御精度の低下を抑制することができる。
【図面の簡単な説明】
【００１２】
【図１】実施の形態１に係る内燃機関の制御装置を示す構成図である。
【図２】図１に示した演算部が利用するニューラルネットワークを示す構成図である。
【図３】図２に示したニューラルネットワークに学習させる学習装置を示す構成図である。
【図４】図３に示した学習装置の動作を説明するための図である。
【図５】図１に示した制御装置が実行する制御量演算ルーチンを示すフローチャートである。
【図６】図１に示した制御装置の動作を説明するための図である。
【図７】実施の形態２に係る内燃機関の制御装置が実行する制御量演算ルーチンを示すフローチャートである。
【図８】実施の形態２に係る内燃機関の制御装置の動作を説明するための図である。
【図９】実施の形態２に係る内燃機関の制御装置の動作を説明するための図である。
【図１０】実施の形態３に係る内燃機関の制御装置が実行する制御量演算ルーチンを示すフローチャートである。
【図１１】実施の形態３に係る内燃機関の制御装置の動作を説明するための図である。
【図１２】実施の形態３に係る内燃機関の制御装置の動作を説明するための図である。
【図１３】実施の形態１〜３の内燃機関の制御装置の各機能を実現する処理回路の第１の例を示す構成図である。
【図１４】実施の形態１〜３の内燃機関の制御装置の各機能を実現する処理回路の第２の例を示す構成図である。
【発明を実施するための形態】
【００１３】
以下、実施の形態について、図面を参照して説明する。
実施の形態１．
図１は、実施の形態１に係る内燃機関の制御装置を示す構成図である。図１に示したように、実施の形態１に係る内燃機関の制御装置１０は、機能ブロックとして、情報取得部２０と演算部３０とを備えている。情報取得部２０は、内燃機関の運動状態に応じて変化する状態量の情報を状態量センサ４０から取得する。
【００１４】
状態量センサ４０は、例えば、クランク角センサ、エアフロメータ、吸気温度センサ、水温センサ、空燃比センサを含んでいる。クランク角センサは、内燃機関のクランクシャフトの回転角を検出する。エアフロメータは、内燃機関の吸気通路に設けられ、吸入空気量を検出する。吸気温度センサは、吸気通路に設けられ、吸入空気の温度を検出する。水温センサは、内燃機関のシリンダブロックに設けられ、冷却水の温度を検出する。空燃比センサは、内燃機関の排気通路に設けられ、排気ガスの空燃比を検出する。
【００１５】
演算部３０は、情報取得部２０によって取得された情報に基づいて、内燃機関を制御するための制御量を演算する。ここで、内燃機関を制御するための制御量とは、複数のアクチュエータ５０のうちの少なくとも１つのアクチュエータ５０の制御量にあたる。これらのアクチュエータ５０は、内燃機関に設けられている。また、アクチュエータ５０としては、燃料噴射弁、点火装置、可変バルブタイミング機構、スロットルモータ等が挙げられる。
【００１６】
次に、演算部３０が利用するニューラルネットワーク及びニューラルネットワークの学習方法について説明する。図２は、演算部３０が利用するニューラルネットワークを示す構成図である。ニューラルネットワーク６０は、公知のフィードフォワードニューラルネットワークにより構成されている。以下、ニューラルネットワーク６０はＮＮ６０と略称される。
【００１７】
図２に示したように、ＮＮ６０は、入力層６１、第１中間層６２、第２中間層６３、第３中間層６４及び出力層６５を有している。ＮＮ６０は、これらの各層のユニットが隣接層間で互いに結合された構造を有している。ＮＮ６０において、入力層に入力した情報は複数のユニットを出力層に向かって一方向に伝播する。これらのユニットは、一般的にノード又はニューロンとも表現されることがある。
【００１８】
入力層６１は、状態量Ａ及び状態量Ｂに対応して２つのユニット６１１及び６１２を有している。第１中間層６２、第２中間層６３及び第３中間層６４は、それぞれ５つのユニットを有している。
【００１９】
第１中間層６２から第３中間層６４までの中の１つのユニットは、当該ユニット自身の層の直前の層に存在するすべてのユニットから出力された値にそれぞれ重み係数を乗算するとともにバイアスを加算する処理を行う。当該ユニットは、これらすべての処理された値を非線形関数又は恒等関数により表される活性化関数に代入し、得られた値を出力する。
【００２０】
ＮＮ６０に学習させるとき、内燃機関の運転テスト又はシミュレーションの結果から得られる内燃機関の状態量と制御量との組合せが、教師データとして予め多数準備される。得られた内燃機関の状態量は、ＮＮ６０の入力データに相当し、以下の説明において教師入力データと称される。得られた内燃機関の制御量は、ＮＮ６０の出力データに相当し、以下の説明において教師出力データと称される。
【００２１】
図３は、ＮＮ６０に学習させる学習装置を示す構成図である。図３に示したように、学習装置７０は、教師データ密度演算部７１、密度判定部７２、設定領域決定部７３、ＮＮ６０及び誤差計算部７４を有している。
【００２２】
教師データ密度演算部７１には、教師入力データ８１が入力される。図４に示したように、状態量Ａを横軸とし、状態量Ｂを縦軸とする２次元空間において、教師入力データ８１が黒丸で示されたように分布している場合を考える。
【００２３】
教師データ密度演算部７１は、この２次元空間を複数の基準小範囲に分割する。基準小範囲は、横幅がｗ１、縦幅がｗ２の矩形の範囲である。横幅ｗ１及び縦幅ｗ２は、予め一定値に設定されている。教師データ密度演算部７１は、各基準小範囲内に存在する教師入力データ８１の個数、即ち、教師データ密度ＴＤを検出する。
【００２４】
次に、密度判定部７２は、各教師データ密度ＴＤが、基準密度Ｔｓｔ以上であるか否かを判定する。図４に示した例では、基準密度Ｔｓｔは４である。
【００２５】
設定領域決定部７３は、密度判定部７２による判定結果に基づいて、教師データ密度ＴＤが基準密度Ｔｓｔ以上であると判定された基準小範囲の集合を設定領域９０に決定する。このように、設定領域９０は、状態量を座標軸として有するｎ次元空間において、ＮＮ６０の学習に用いられる教師入力データ８１の存在する密度ＴＤが基準密度Ｔｓｔ以上である領域として設定される。なお、ｎは正の整数である。そして、設定領域決定部７３は、「設定領域９０内にあると判定された教師入力データ」、即ち、「領域内状態量」をＮＮ６０に出力する。
【００２６】
ＮＮ６０では、入力層６１に領域内状態量が入力され、各ユニットにおいて演算が行われた後、演算された制御量が出力層６５から誤差計算部７４に出力される。誤差計算部７４には、ＮＮ６０において演算された制御量と、教師出力データ８２とが入力される。誤差計算部７４は、誤差関数を用いて、演算された制御量と教師出力データ８２との間の誤差を計算する。誤差計算部７４は、上記誤差をＮＮ６０にフィードバックする。ＮＮ６０は、誤差関数の値が最小となるように、ＮＮ６０の各ユニットの重み係数及びバイアスを調整する。なお、この調整方法は、誤差逆伝播法又はバックプロパゲーション法として知られている。
【００２７】
学習装置７０は、この結果に基づいて、状態量Ａ及び状態量Ｂと、設定領域９０との関係を規定したルックアップテーブルを作成し、演算部３０内の図示しないメモリに記憶する。
【００２８】
再び、図１を参照しながら、演算部３０の動作について説明する。演算部３０は、領域判定部３１と、第１演算部３２と、第２演算部３３とを有している。
【００２９】
領域判定部３１は、状態量Ａ及び状態量Ｂと、設定領域９０との関係を規定したルックアップテーブルを参照して、入力された状態量が設定領域９０内にあるか否かを判定する。領域判定部３１は、入力された状態量が設定領域９０内にあると判定した場合、状態量を第１演算部３２に出力する。一方、領域判定部３１は、入力された状態量が設定領域９０内にない、即ち、設定領域９０外にあると判定した場合、状態量を第２演算部３３に出力する。
【００３０】
第１演算部３２は、設定領域９０内にあると判定された状態量である領域内状態量を入力値として、ＮＮ６０によって内燃機関の制御量を演算する。そして、第１演算部３２は、演算された制御量を内燃機関のアクチュエータ５０に出力する。
【００３１】
第２演算部３３は、設定領域９０外にあると判定された状態量である領域外状態量を入力値として、内燃機関の制御量を演算する。より具体的に述べると、第２演算部３３は、以下の３つの演算を順に実行する。
（１）第２演算部３３は、領域外状態量に基づいて、設定領域９０内にある状態量である参考状態量を選択する。言い換えると、第２演算部３３は、領域外状態量に基づいて領域内状態量の中から少なくとも１つの状態量を参考状態量として選択する。
（２）第２演算部３３は、選択された参考状態量を入力値としてＮＮ６０によって参考制御量を演算する。
（３）第２演算部３３は、演算された参考制御量に基づいて、領域外状態量に対応する制御量を演算する。
【００３２】
そして、第１演算部３２及び第２演算部３３は、演算結果を内燃機関のアクチュエータ５０に出力する。
【００３３】
次に、第２演算部３３の動作をより詳細に説明する。図５は、第２演算部３３が実行する制御量演算ルーチンを示すフローチャートである。図５のルーチンは、領域判定部３１によって、入力された状態量が領域外状態量であると判定される毎に実行されるようになっている。
【００３４】
第２演算部３３は、図５のルーチンを開始すると、まず、ステップＳ１０５において領域外状態量を取得する。次いで、第２演算部３３は、ステップＳ１１０において、参考状態量として、取得された領域外状態量に最も近い状態量を選択する。言い換えると、第２演算部３３は、状態量を座標軸として有するｎ次元空間において、参考状態量として、領域内状態量のうち、領域外状態量との距離が最小となる状態量を選択する。
【００３５】
図６は、状態量Ａを横軸とし、状態量Ｂを縦軸とする２次元空間における設定領域と領域外状態量との関係を示した図である。図６において、設定領域９０の境界Ｒ１が破線で表されている。境界Ｒ１上の点Ｒｐは、領域内状態量の１つを表している。設定領域９０の外側の点Ｏｕｔ１は、入力された領域外状態量を表している。図６から理解されるように、設定領域９０内の点のうち、点Ｏｕｔ１との距離が最小となる点は、境界Ｒ１上に存在する。
【００３６】
点Ｒｐの２次元空間上の座標を（Ａｒ１，Ｂｒ１）と表し、点Ｏｕｔ１の２次元空間上の座標を（Ａｏｕｔ１，Ｂｏｕｔ１）と表すと、点Ｒｐと点Ｏｕｔ１との距離Ｄは、以下の（１）式にて表される。
【００３７】
【数１】
0006896037.tif 000002
【００３８】
ところで、状態量Ａの取り得る値の範囲の大きさと、状態量Ｂの取り得る値の範囲の大きさとは、異なることが多い。例えば、状態量Ａが状態量Ｂと比べて極めて大きい値である場合、距離Ｄは状態量Ａの影響をより多く受けることになる。言い換えると、この場合、距離Ｄは値Ａｒ１の変化に対してより敏感となる。そこで、（１）式における各座標軸と平行な成分（Ａｏｕｔ１−Ａｒ１）及び（Ｂｏｕｔ１−Ｂｒ１）は、各状態量が取り得る最大値と最小値との差分値を用いて正規化される。この正規化された距離Ｄは、以下、「ユークリッド距離Ｄｅｕ」と定義される。
【００３９】
状態量Ａの最大値をＡｍａｘ、状態量Ａの最小値をＡｍｉｎ、状態量Ｂの最大値をＢｍａｘ、状態量Ｂの最小値をＢｍｉｎとすると、点Ｏｕｔ１と点Ｒｐとの間のユークリッド距離Ｄｅｕは、以下の（２）式にて表される。
【００４０】
【数２】
0006896037.tif 000003
【００４１】
第２演算部３３は、ユークリッド距離Ｄｅｕが最小となるように、値Ａｒ１及びＢｒ１を決定する。この場合、座標（Ａｒ１，Ｂｒ１）は、境界Ｒ１の頂点に存在する領域内状態量Ｉｎ１１の座標と一致する。つまり、第２演算部３３は、参考状態量として領域内状態量Ｉｎ１１を選択する。第２演算部３３は、値Ａｒ１及びＢｒ１を決定するために、例えば、局所探索法を用いる。
【００４２】
局所探索法において、ある解ｘに加える小さな修正操作を行うことにより得られる解の集合Ｎ（ｘ）は近傍と称される。局所探索法は、適当な初期解から開始して、現在の解ｘよりもよい解ｘ′が近傍Ｎ（ｘ）内に存在すれば、ｘをｘ′と置換する操作を可能な限り繰り返す方法である。近傍Ｎ（ｘ）内に、よりよい解が存在しなくなると局所探索が終了する。このような局所探索法は公知であるため、詳細な説明は省略される。
【００４３】
次いで、第２演算部３３は、ステップＳ１１５において、参考状態量Ｉｎ１１を入力値としてＮＮ６０によって参考制御量ＮＮｏ１１を演算する。つまり、参考制御量ＮＮｏ１１は、選択された参考状態量をＮＮ６０に入力させたときに得られる出力である。
【００４４】
次いで、第２演算部３３は、ステップＳ１２０において、領域外状態量に対応する制御量として、演算された参考制御量をそのまま出力する。この理由は以下のとおりである。
【００４５】
内燃機関の制御量は、一般的に状態量に対して非線形な関係を有している。つまり、制御量の変化の度合いは、状態量の大きさによって異なる。しかし、互いに近接する２つの状態量に対応するそれぞれの制御量同士は比較的近い値となる傾向がある。従って、領域外状態量に対応する制御量は、領域外状態量の近傍に存在する領域内状態量に対応する制御量で近似することができる。
【００４６】
このように、ユークリッド距離Ｄｅｕが最小となる参考状態量Ｉｎ１１に対応する参考制御量ＮＮｏ１１は、領域外状態量Ｏｕｔ１に対応する制御量に近い量であると推定される。
【００４７】
以上、説明したように、実施の形態１の内燃機関の制御方法は、情報取得ステップと、演算ステップと、を含んでいる。さらに、演算ステップは、領域判定ステップと、第１演算ステップと、第２演算ステップとを含んでいる。
【００４８】
情報取得ステップは、内燃機関の運転状態に応じて変化する状態量の情報を状態量センサ４０から取得するステップである。演算ステップは、情報取得ステップにおいて取得された情報に基づいて、内燃機関を制御するための制御量を演算するステップである。領域判定ステップは、状態量が設定領域内にあるか否かを判定するステップである。第１演算ステップは、設定領域内にあると判定された状態量である領域内状態量を入力値として、ニューラルネットワークによって制御量を演算するステップである。第２演算ステップは、設定領域外にあると判定された状態量である領域外状態量を入力値として制御量を演算するステップである。
【００４９】
第２演算ステップは、さらに、以下の第１から第３のステップを含んでいる。第１のステップは、領域外状態量に基づいて、設定領域内にある状態量である参考状態量を選択するステップである。第２のステップは、参考状態量を入力値としてニューラルネットワークによって参考制御量を演算するステップである。第３のステップは、参考制御量に基づいて、領域外状態量に対応する制御量を演算するステップである。
【００５０】
また、実施の形態１の内燃機関の制御プログラムは、上記の内燃機関の制御方法をコンピュータに実行させるプログラムである。
【００５１】
即ち、内燃機関の制御プログラムは、情報取得処理と、演算処理とをコンピュータに実行させるプログラムである。さらに、演算処理は、領域判定処理と、第１演算処理と、第２演算処理とを含んでいる。
【００５２】
情報取得処理は、内燃機関の運転状態に応じて変化する状態量の情報を状態量センサ４０から取得する処理である。演算処理は、情報取得処理において取得された情報に基づいて、内燃機関を制御するための制御量を演算する処理である。領域判定処理は、状態量が設定領域内にあるか否かを判定する処理である。第１演算処理は、設定領域内にあると判定された状態量である領域内状態量を入力値として、ニューラルネットワークによって制御量を演算する処理である。第２演算処理は、設定領域外にあると判定された状態量である領域外状態量を入力値として制御量を演算する処理である。
【００５３】
第２演算処理は、さらに、以下の第１から第３の処理を含んでいる。第１の処理は、領域外状態量に基づいて、設定領域内にある状態量である参考状態量を選択する処理である。第２の処理は、参考状態量を入力値としてニューラルネットワークによって参考制御量を演算する処理である。第３の処理は、参考制御量に基づいて、領域外状態量に対応する制御量を演算する処理である。
【００５４】
上記のように、実施の形態１の内燃機関の制御装置１０及び内燃機関の制御プログラムによれば、内燃機関の制御精度の低下を抑制することができる。
【００５５】
また、第２演算部３３は、参考状態量として、領域外状態量Ｏｕｔ１に最も近い状態量を選択する。このため、内燃機関の制御精度の低下をより抑制することができる。
【００５６】
また、第２演算部３３は、状態量Ａ及び状態量Ｂを座標軸として有する２次元空間において、参考状態量として、領域内状態量のうち領域外状態量Ｏｕｔ１との距離が最小となる状態量を選択する。このため、内燃機関の制御精度の低下をより抑制することができる。
【００５７】
また、第２演算部３３は、領域外状態量Ｏｕｔ１に対応する制御量として、参考制御量をそのまま出力する。このため、簡易な方法で内燃機関の制御精度の低下を抑制することができる。
【００５８】
また、設定領域９０は、状態量Ａ及び状態量Ｂを座標軸として有する２次元空間において、ＮＮ６０の学習に用いられる教師データ密度ＴＤが基準密度Ｔｓｔ以上である領域として設定される。このため、ＮＮ６０に高精度な学習をさせることができる。
【００５９】
実施の形態２．
次に、実施の形態２に係る内燃機関の制御装置について説明する。実施の形態２に係る内燃機関の制御装置は、第２演算部３３が、複数の参考制御量についての１つの近似関数から領域外状態量Ｏｕｔ１に対応する制御量を演算する点において、実施の形態１に係る内燃機関の制御装置１０と異なっている。
【００６０】
実施の形態２に係る内燃機関の制御装置において、第２演算部３３は、領域外状態量と、領域内状態量のうちの特定の状態量とを通る１次関数を演算する。次に、第２演算部３３は、参考状態量として、特定の状態量及び特定の状態量以外の１次関数上の状態量を選択する。さらに、第２演算部３３は、特定の状態量及び特定の状態量以外の１次関数上の状態量を入力値としてＮＮ６０によって参考制御量を演算する。次いで、第２演算部３３は、参考制御量を近似する関数である近似関数を演算する。そして、第２演算部３３は、近似関数に領域外状態量を代入することにより領域外状態量に対応する制御量を演算する。
【００６１】
以下、図面を参照しながら具体的に説明する。図７は、実施の形態２に係る内燃機関の制御装置の第２演算部３３が実行する制御量演算ルーチンを示すフローチャートである。図７のルーチンは、領域判定部３１によって、入力された状態量が領域外状態量であると判定される毎に実行されるようになっている。
【００６２】
第２演算部３３は、図７のルーチンを開始すると、以下のステップＳ２０５からステップＳ２３５までの処理を順に実行する。
【００６３】
ステップＳ２０５において、第２演算部３３は、領域外状態量を取得する。
【００６４】
ステップＳ２１０において、第２演算部３３は、参考状態量として、領域内状態量のうち、領域外状態量との距離が最小となる状態量を選択する。
【００６５】
図８は、参考状態量を選択するための方法を説明するための図である。図８に示した設定領域９０は、図６に示した設定領域９０と同様に定義された領域である。よって、この場合、領域内状態量のうち、領域外状態量Ｏｕｔ１との間のユークリッド距離Ｄｅｕが最小となる状態量はＩｎ１１である。従って、第２演算部３３は、参考状態量としてＩｎ１１を選択する。
【００６６】
ステップＳ２１５において、第２演算部３３は、領域外状態量Ｏｕｔ１と参考状態量Ｉｎ１１とを通る１次関数ｆ１を導出する。
【００６７】
ステップＳ２２０において、第２演算部３３は、領域内状態量のうち、１次関数ｆ１上の点を参考状態量として選択する。この場合、第２演算部３３は、参考状態量Ｉｎ１１から、１次関数ｆ１に沿って領域外状態量Ｏｕｔ１から遠ざかる方向に、状態量Ａ軸方向の変化量δ１に相当する量だけ変化させたときの状態量を、参考状態量Ｉｎ１２として選択する。さらに、第２演算部３３は、参考状態量Ｉｎ１２から、１次関数ｆ１に沿って領域外状態量Ｏｕｔ１から遠ざかる方向に、状態量Ａ軸方向の変化量δ１に相当する量だけ変化させたときの状態量を、参考状態量Ｉｎ１３として選択する。
【００６８】
ステップＳ２２５において、第２演算部３３は、選択された参考状態量Ｉｎ１１、Ｉｎ１２及びＩｎ１３を入力値としてＮＮ６０によって参考制御量を演算する。
【００６９】
図９は、参考状態量とこれらに対応するＮＮ６０の出力である参考制御量、及び参考制御量の近似関数を示した図である。図９に示したように、第２演算部３３は、参考状態量Ｉｎ１１をＮＮ６０に入力し、ＮＮ６０により演算されてＮＮ６０から出力された量ＮＮｏ１１を参考制御量として決定する。同様に、第２演算部３３は、参考状態量Ｉｎ１２及びＩｎ１３をそれぞれＮＮ６０に入力し、ＮＮ６０から出力された量ＮＮｏ１２及びＮＮｏ１３を参考制御量として決定する。
【００７０】
ステップＳ２３０において、第２演算部３３は、演算された参考制御量ＮＮｏ１１、ＮＮｏ１２及びＮＮｏ１３についての近似関数ｇ１を導出する。即ち、第２演算部３３は、ＮＮ６０の出力を目的変数とし、状態量Ａ及び状態量Ｂを説明変数とする近似関数ｇ１を導出する。より具体的に述べると、第２演算部３３は、近似関数ｇ１を以下の（３）式にて表される１次関数として導出する。
【００７１】
ｇ１＝ｃ０＋ｃ１・Ａ＋ｃ２・Ｂ      …（３）
【００７２】
ここで、ｃ０、ｃ１及びｃ２は、近似関数ｇ１の係数である。Ａは状態量Ａの値、Ｂは状態量Ｂの値である。第２演算部３３は、例えば、最小二乗法により、係数ｃ０、ｃ１及びｃ２を算出することにより近似関数ｇ１を求める。
【００７３】
ステップＳ２３５において、第２演算部３３は、領域外状態量Ｏｕｔ１を近似関数ｇ１に入力して得られた解Ｅｓｔ１を領域外状態量Ｏｕｔ１に対応する制御量として決定する。
【００７４】
この理由は、以下のとおりである。前述したように、内燃機関の制御量は、一般的に状態量に対して非線形な関係を有しているので、制御量の変化の度合いは、状態量の大きさによって異なる。しかし、２つの状態量が互いに近接する場合、２つの状態量に対応するそれぞれの制御量の変化の度合いの違いは比較的小さくなる傾向がある。従って、領域外状態量に対応する制御量は、領域外状態量の近傍に存在する領域内状態量に対応する制御量の変化の度合いを利用することによって精度良く演算される。
【００７５】
このような内燃機関の制御装置及び制御プログラムでは、第２演算部３３は、領域外状態量Ｏｕｔ１と、領域内状態量のうちの特定の状態量Ｉｎ１１とを通る１次関数ｆ１を演算する。次いで、第２演算部３３は、参考状態量として、特定の状態量Ｉｎ１１と、特定の状態量以外の１次関数ｆ１上の状態量Ｉｎ１２及びＩｎ１３とを選択する。
【００７６】
さらに、第２演算部３３は、特定の状態量Ｉｎ１１と、特定の状態量以外の１次関数上の状態量Ｉｎ１２及びＩｎ１３とを入力値としてＮＮ６０によって参考制御量ＮＮｏ１１、ＮＮｏ１２及びＮＮｏ１３を演算する。そして、第２演算部３３は、参考制御量を近似する関数である近似関数ｇ１を演算し、近似関数ｇ１に領域外状態量Ｏｕｔ１を代入することにより領域外状態量Ｏｕｔ１に対応する制御量Ｅｓｔ１を演算する。このため、領域外状態量Ｏｕｔ１に対応する制御量と参考状態量に対応する制御量とが異なっている場合であっても、内燃機関の制御精度の低下を抑制することができる。
【００７７】
実施の形態３．
次に、実施の形態３に係る内燃機関の制御装置について説明する。実施の形態３に係る内燃機関の制御装置において、第２演算部３３は、複数の１次関数を演算し、複数の近似関数を演算する。さらに、第２演算部３３は、複数の参考制御量を演算し、領域外状態量に対応する複数の制御量を演算し、演算された複数の制御量を統計的に演算する。実施の形態３に係る内燃機関の制御装置は、このような点において、実施の形態１及び２に係る内燃機関の制御装置と異なっている。従って、以下、上記相違点を中心に説明する。
【００７８】
図１０は、実施の形態３の内燃機関の制御装置の第２演算部３３が実行する制御量演算ルーチンを示すフローチャートである。図１０のルーチンは、領域判定部３１によって、入力された状態量が領域外状態量であると判定される毎に実行されるようになっている。
【００７９】
第２演算部３３は、図１０のルーチンが開始すると、以下のステップＳ３０５からステップＳ３４０までの処理を順に実行する。
【００８０】
ステップＳ３０５において、第２演算部３３は、領域外状態量を取得する。
【００８１】
ステップＳ３１０において、第２演算部３３は、境界Ｒ１上の２点Ｉｎ１１及びＩｎ２１を２つの参考状態量として選択する。
【００８２】
図１１は、参考状態量を選択するための方法を説明するための図である。図１１に示した設定領域９０は、図６に示した設定領域９０と同様に定義された領域である。よって、この場合、領域内状態量のうち、領域外状態量Ｏｕｔ１との間のユークリッド距離Ｄｅｕが最小となる状態量はＩｎ１１である。従って、第２演算部３３は、参考状態量としてＩｎ１１を選択する。
【００８３】
さらに、第２演算部３３は、選択された参考状態量Ｉｎ１１から、境界Ｒ１に沿って領域外状態量Ｏｕｔ１から遠ざかる方向に、状態量Ａ軸方向の変化量δ２に相当する量だけ変化させたときの状態量を、もう１つの参考状態量Ｉｎ２１として選択する。
【００８４】
ステップＳ３１５において、第２演算部３３は、領域外状態量と２つの参考状態量とをそれぞれ通る１次関数ｆ１及びｆ２を導出する。
【００８５】
ステップＳ３２０において、第２演算部３３は、領域内状態量のうち、１次関数ｆ１及びｆ２上の点を参考状態量として選択する。
【００８６】
この場合、第２演算部３３は、参考状態量Ｉｎ１１から、１次関数ｆ１に沿って領域外状態量Ｏｕｔ１から遠ざかる方向に、状態量Ａ軸方向の変化量δ１に相当する量だけ変化させたときの状態量を、参考状態量Ｉｎ１２として選択する。さらに、第２演算部３３は、参考状態量Ｉｎ１２から、１次関数ｆ１に沿って領域外状態量Ｏｕｔ１から遠ざかる方向に、状態量Ａ軸方向の変化量δ１に相当する量だけ変化させたときの状態量を、参考状態量Ｉｎ１３として選択する。
【００８７】
第２演算部３３は、参考状態量Ｉｎ２１から、１次関数ｆ２に沿って領域外状態量Ｏｕｔ１から遠ざかる方向に、状態量Ａ軸方向の変化量δ１に相当する量だけ変化させたときの状態量を、参考状態量Ｉｎ２２として選択する。さらに、第２演算部３３は、参考状態量Ｉｎ２２から、１次関数ｆ２に沿って領域外状態量Ｏｕｔ１から遠ざかる方向に、状態量Ａ軸方向の変化量δ１に相当する量だけ変化させたときの状態量を、参考状態量Ｉｎ２３として選択する。
【００８８】
ステップＳ３２５において、第２演算部３３は、選択された参考状態量Ｉｎ１１、Ｉｎ１２、Ｉｎ１３、Ｉｎ２１、Ｉｎ２２及びＩｎ２３を入力値としてＮＮ６０によって参考制御量を演算する。
【００８９】
図１２は、参考状態量とこれらに対応するＮＮ６０の出力である参考制御量、及び参考制御量の近似関数を示した図である。図１２に示したように、第２演算部３３は、参考状態量Ｉｎ１１をＮＮ６０に入力し、ＮＮ６０により演算されてＮＮ６０から出力された量ＮＮｏ１１を参考制御量として決定する。同様に、第２演算部３３は、参考状態量Ｉｎ１２、Ｉｎ１３、Ｉｎ２１、Ｉｎ２２及びＩｎ２３をそれぞれＮＮ６０に入力し、ＮＮ６０から出力された値ＮＮｏ１２、ＮＮｏ１３、ＮＮｏ２１、ＮＮｏ２２及びＮＮｏ２３を参考制御量として決定する。
【００９０】
ステップＳ３３０において、第２演算部３３は、演算された参考制御量ＮＮｏ１１、ＮＮｏ１２及びＮＮｏ１３についての近似関数ｇ１と、参考制御量ＮＮｏ２１、ＮＮｏ２２及びＮＮｏ２３についての近似関数ｇ２とをそれぞれ導出する。第２演算部３３は、近似関数ｇ１及びｇ２をＮＮ６０の出力を目的変数とし、状態量Ａ及び状態量Ｂを説明変数とする１次関数として導出する。近似関数ｇ１及びｇ２は（３）式にて表される関数である。
【００９１】
ステップＳ３３５において、第２演算部３３は、領域外状態量Ｏｕｔ１を近似関数ｇ１及びｇ２に入力して、それぞれ得られた解Ｅｓｔ１及びＥｓｔ２を算出する。
【００９２】
ステップＳ３４０において、第２演算部３３は、２つの解Ｅｓｔ１とＥｓｔ２の平均値を領域外状態量に対応する制御量として決定する。
【００９３】
このような内燃機関の制御装置及び制御プログラムでは、第２演算部３３は、複数の１次関数ｆ１及びｆ２を演算し、複数の近似関数ｇ１及びｇ２を演算する。さらに、第２演算部３３は、複数の参考制御量を演算し、領域外状態量Ｏｕｔ１に対応する複数の制御量Ｅｓｔ１及びＥｓｔ２を演算し、演算された複数の制御量Ｅｓｔ１及びＥｓｔ２を統計的に演算する。このため、領域外状態量Ｏｕｔ１に対応する制御量と参考状態量に対応する制御量とが異なっている場合であっても、内燃機関の制御精度の低下をより抑制することができる。
【００９４】
なお、実施の形態３において、第２演算部３３は、２つの近似関数ｇ１及びｇ２を算出し、２つの解Ｅｓｔ１及びＥｓｔ２を算出したが、３つ以上の近似関数を算出してもよい。
【００９５】
さらに、実施の形態３において、第２演算部３３は、算出された２つの解Ｅｓｔ１及びＥｓｔ２を平均化することにより、領域外状態量Ｏｕｔ１に対応する制御量を演算した。しかし、第２演算部３３は、２つの解Ｅｓｔ１及びＥｓｔ２の最大値、最小値、加重平均等の統計処理により領域外状態量Ｏｕｔ１に対応する制御量を演算してもよい。
【００９６】
また、実施の形態３において、変化量δ２は、状態量Ａ軸方向の変化量として設定されていたが、状態量Ｂ軸方向の変化量として設定されてもよい。言い換えると、変化量δ２は、ｎ次元空間のいずれの軸方向の変化量として設定されてもよい。
【００９７】
また、実施の形態２及び３において、変化量δ１及びδ２は、一定値でもよいし、領域外状態量Ｏｕｔ１の大きさ及びユークリッド距離Ｄｅｕの大きさに応じた変数でもよい。変化量δ１は、目的の演算精度に合わせて調整されればよい。
【００９８】
また、実施の形態２及び３において、変化量δ１は、状態量Ａ軸方向の変化量であったが、状態量Ｂ軸方向の変化量であってもよい。言い換えると、変化量δ１は、ｎ次元空間のいずれの軸方向の変化量であってもよい。
【００９９】
また、実施の形態２及び３において、参考状態量は、１つの１次関数上において３点選択されたが、少なくとも２点が選択されればよい。
【０１００】
また、実施の形態１〜３において、参考状態量は、領域内状態量のうち、ユークリッド距離Ｄｅｕを最小にする状態量として選択されていた。しかし、参考状態量は、領域外状態量のｎ次元空間中の位置に応じたルックアップテーブルによって予め設定されてもよい。
【０１０１】
また、実施の形態１〜３において、基準小範囲、横幅ｗ１及び縦幅ｗ２は一定値に定められていたが、状態量Ａ及び状態量Ｂの大きさに応じた値であってもよい。
【０１０２】
また、状態量Ａ及び状態量Ｂの２つのパラメータを座標軸とした２次元空間上において、設定領域９０外の状態量の値に対して制御量を演算した。しかし、ＮＮ６０に入力するパラメータとして状態量をｎ個使用する場合には、ｎ次元空間において同様の方法により制御量を演算してもよい。
【０１０３】
また、設定領域の設定方法は、上記の方法に限定されない。例えば、設定領域は、以下の手順で設定されてもよい。
（１）学習装置は、準備された教師データをすべて用いてＮＮ６０に学習させる。
（２）学習装置は、学習済みのＮＮ６０に教師入力データを入力し、ＮＮ６０の出力データと教師出力データとを用いてＮＮ６０の演算精度を算出する。
（３）学習装置は、算出された演算精度が目標の演算精度を満足するような教師入力データの範囲を設定領域として設定する。
【０１０４】
また、複数の状態量のうちの１つについて、実際に使用される運転領域の全域を網羅する教師データが収集されたことにより、当該状態量の範囲を制限する必要がないと判明した場合、当該状態量を設定領域のパラメータから省いてもよい。これによれば、設定領域９０の設定が簡素化され、学習装置の演算負荷が低減される。
【０１０５】
また、演算部３０の利用するニューラルネットワークの構成は、上記の構成に限定されない。演算部３０は、例えば、畳み込みニューラルネットワーク、再帰型ニューラルネットワーク等を利用してもよい。また、ニューラルネットワークの学習方法は、上記の学習方法に限定されない。
【０１０６】
また、実施の形態１〜３の内燃機関の制御装置１０の各機能は、処理回路によって実現される。図１３は、実施の形態１〜３の内燃機関の制御装置１０の各機能を実現する処理回路の第１の例を示す構成図である。第１の例の処理回路１００は、専用のハードウェアである。
【０１０７】
また、処理回路１００は、例えば、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）、ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）、又はこれらを組み合わせたものが該当する。また、制御装置１０の各機能それぞれを個別の処理回路１００で実現してもよいし、各機能をまとめて処理回路１００で実現してもよい。
【０１０８】
また、図１４は、実施の形態１〜３の内燃機関の制御装置１０の各機能を実現する処理回路の第２の例を示す構成図である。第２の例の処理回路２００は、プロセッサ２０１及びメモリ２０２を備えている。
【０１０９】
処理回路２００では、内燃機関の制御装置１０の機能は、ソフトウェア、ファームウェア、又はソフトウェアとファームウェアとの組み合わせにより実現される。ソフトウェア及びファームウェアは、プログラムとして記述され、メモリ２０２に格納される。プロセッサ２０１は、メモリ２０２に記憶されたプログラムを読み出して実行することにより、各機能を実現する。
【０１１０】
メモリ２０２に格納されたプログラムは、上述した各部の手順又は方法をコンピュータに実行させるものであるとも言える。ここで、メモリ２０２とは、例えば、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、フラッシュメモリ、ＥＰＲＯＭ（Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  ａｎｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）等の、不揮発性又は揮発性の半導体メモリである。また、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、ＤＶＤ等も、メモリ２０２に該当する。
【０１１１】
なお、上述した各部の機能について、一部の専用のハードウェアで実現し、一部をソフトウェア又はファームウェアで実現するようにしてもよい。
【０１１２】
このように、処理回路は、ハードウェア、ソフトウェア、ファームウェア、又はこれらの組み合わせによって、上述した各部の機能を実現することができる。
【符号の説明】
【０１１３】
１０  内燃機関の制御装置、２０  情報取得部、３０  演算部、３１  領域判定部、３２  第１演算部、３３  第２演算部、４０  状態量センサ、６０ニューラルネットワーク（ＮＮ）、７０  学習装置、８１  教師入力データ、９０  設定領域、Ｏｕｔ１  領域外状態量。
【図１】
0006896037.tif 000004
【図２】
0006896037.tif 000005
【図３】
0006896037.tif 000006
【図４】
0006896037.tif 000007
【図５】
0006896037.tif 000008
【図６】
0006896037.tif 000009
【図７】
0006896037.tif 000010
【図８】
0006896037.tif 000011
【図９】
0006896037.tif 000012
【図１０】
0006896037.tif 000013
【図１１】
0006896037.tif 000014
【図１２】
0006896037.tif 000015
【図１３】
0006896037.tif 000016
【図１４】
0006896037.tif 000017