(57)【特許請求の範囲】
【請求項１】
ドライバ操作による指示量とエンジンの状態量とに基づいてエンジンの制御量を生成する制御ロジック部と、
エンジンを模擬して制御量から状態量を計算するモデル部と、
前記モデル部が出力する状態量と実エンジンの状態量とを選択的に前記制御ロジック部に提供する状態量選択部と、
前記モデル部が実エンジンの２倍よりも高速で動作するよう前記モデル部の処理速度を管理する処理速度管理部と、
実エンジンの運転サイクルごとに、前記モデル部の特定気筒の運転サイクルが終了した瞬間の前記モデル部の各気筒の内部計算状態を記憶しておき、実エンジンの運転サイクルが終了したとき前記モデル部の各気筒の内部計算状態を記憶されている内部計算状態に置換し、実エンジンの次の運転サイクル開始と同時に前記モデル部を置換された各気筒の内部計算状態から運転させる同期管理部とを備え、
前記モデル部は内部計算状態を記憶したことに影響を受けることなくそのまま計算を続行し、ここで計算された各気筒の状態量は各気筒の次の運転サイクルのための制御量計算に使用されることを特徴とするモデルベースエンジン制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、モデルと実エンジンとの同期をずれさせることなく予測制御が実現できるモデルベースエンジン制御装置に関する。
【背景技術】
【０００２】
自動車の内燃機関（以下、エンジンという）では、排気ガス性能向上、燃費向上、エンジン性能向上という多岐にわたる要求を総合的に満たすべく、点火系（ガソリンエンジンの場合）、燃料系、空気系を中心に電子制御が行われる。この電子制御のために、自動車にはマイクロコンピュータからなるエンジン制御装置（Engine Control Unit；ＥＣＵ）が搭載される。ＥＣＵは、ＥＣＵが記憶しているプログラムに従い、ドライバ操作から得られる指示量に応じ、センサで検出した瞬時ごとのエンジンの状態量を目標値と比較し、エンジン状態が前述の諸要求に対して最適となるようにアクチュエータに出力を行う。
【０００３】
近年、マイクロコンピュータの演算能力の急速な向上に伴い、制御対象プラント（例えば、エンジン）の振る舞いを数式やマップからなるソフトウェアで表したモデルをＥＣＵに組み込み、このモデルをソフトウェア処理で動作させて状態量を計算し、この計算で得た状態量を用いて制御対象プラントを制御するモデルベース制御が普及しつつある。
【０００４】
図３に示されるように、モデルベースエンジン制御装置（ＥＣＵ）３１は、ドライバ操作による指示量とエンジンの状態量とに基づいてエンジンの制御量を生成する制御ロジック部３２と、エンジンを模擬して制御量から状態量を計算するモデル部３３と、モデル部３３が出力する状態量と実エンジン３４の状態量とを選択的に制御ロジック部３２に提供する状態量選択部３５と、実エンジン３４の複数のセンサ３６から状態量を入力し、実エンジン３４の複数のアクチュエータ３７に対して制御量に基づく駆動信号を出力するＩ／Ｏポート３８と、ドライバ操作による指示量を制御ロジック部３２に入力するインタフェース（図示せず）と、モデル部３３が実エンジン３４と等速、すなわちリアルタイムで動作するようモデル部３３の処理速度を管理する処理速度管理部３９とを備える。
【０００５】
なお、センサ３６とアクチュエータ３７は、実エンジン３４に密着して示されているが、エンジン以外の部位に配置されるものも含んでおり、自動車に搭載される公知の全てのセンサとアクチュエータを表している。
【０００６】
このモデルベースエンジン制御装置３１では、制御ロジック部３２からの制御量が実エンジン３４とモデル部３３の両方に与えられ、理想的にはモデル部３３が実エンジン３４と等しい挙動を示すことにより、モデル部３３が出力する状態量が実エンジン３４の状態量に等しい。このとき、実エンジン３４では計測困難な状態量についても、モデル部３３が出力する状態量から検出可能となる。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００２−４９２８号公報
【特許文献２】特開２０１１−６４１３０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
モデルベースエンジン制御装置３１は、リアルタイムでエンジン制御を行う必要がある。しかし、制御ロジック部３２がセンサ３６またはモデル部３３の状態量を入力してから制御量を出力するまでに、処理を実行するための相応の時間が必要になる。制御ロジック部３２の制御内容が複雑かつ高度になると、それに応じて処理時間が長くなり、リアルタイムに処理ができなくなる。
【０００９】
これに対し、本発明者は、モデル部３３をリアルタイムよりも高速で動作させることで、センサ３６が実エンジン３４の状態量を検出するより前に状態量を予測し、その予測された状態量に基づいて制御ロジック部３２が制御量を生成することで、実エンジン３４に与える制御量がリアルタイムに間に合うという予測制御を目指している。
【００１０】
しかし、予測制御では、モデル部３３がリアルタイムよりも高速で動作するため、実エンジン３４とモデル部３３が同時に０°ＣＡ（クランク角度）から動作を開始したとすると、実エンジン３４が今回の運転サイクルを終えるよりも前にモデル部３３が今回の運転サイクルを終えて次回の運転サイクルに進んでしまう。このように、モデル部３３が実エンジン３４より先行動作することで、実エンジン３４とモデル部３３に運転サイクルのずれが生じる。
【００１１】
本発明者は、予測制御を実用化するには、実エンジン３４とモデル部３３の運転サイクルのずれ（同期ずれ）を解消すること、すなわち、実エンジン３４とモデル部３３の同期が必要となると思い至った。以下、図４を用いて同期ずれを詳しく説明する。
【００１２】
図４に示されるように、実エンジン３４では、周期Ｔごとにクランク角度が７２０°ＣＡ進む。したがって、実エンジン３４の１サイクル目は、時間０から時間Ｔまでにクランク角度が０°ＣＡから７２０°ＣＡまで進み、終了する。２サイクル目は、時間Ｔから時間２Ｔまでにクランク角度が０°ＣＡから７２０°ＣＡまで進み、終了する。
【００１３】
多気筒エンジンでは、各気筒の運転行程に位相差がある。例えば、直列６気筒では１２０°ＣＡごとの位相差がある。したがって、各気筒において制御量が必要となるタイミングが１２０°ＣＡずつ異なる。実エンジン３４の各気筒にクランク軸上の並び順の番号＃１〜＃６を付したとき、各番号の気筒の制御量タイミングは、隣接した気筒で燃焼行程が続かないよう、実クランク角度１２０°ＣＡ（時間Ｔ／６）おきに、＃１、＃５、＃３、＃６、＃２、＃４、＃１、…という順序となる。
【００１４】
一方、モデル部３３では、気筒ごとの振る舞いを計算しており、気筒＃１についての計算が時間０から始まるとすると、気筒＃５以降についての計算はモデル上で１２０°ＣＡずつ遅れて始まる。
【００１５】
ここで、モデル部３３の動作速度が実エンジン３４（リアルタイム）の２倍とすると、同じ時間内にモデル上でのクランク角度は実クランク角度の２倍進む。
【００１６】
このように、モデル部３３が実エンジン３４の２倍の速度で運転されると、実エンジン３４が１サイクル目を終了する時間Ｔには、モデル部３３では気筒＃１について２サイクル目まで終了する。気筒＃１に注目すると、モデル部３３の気筒＃１の１サイクル目が終了して状態量が得られてから、実エンジン３４の気筒＃１の制御量タイミングである時間Ｔまでに時間的余裕があるので、制御ロジック部３２は制御量の出力を制御量タイミングに十分に間に合わせることができる。しかし、モデル部３３の気筒＃１の２サイクル目が終了してから実エンジン３４の気筒＃１の制御量タイミングである時間２Ｔまでは時間が大きく離れており、しかも、時間２Ｔ以前にモデル部３３の気筒＃１は３サイクル目が既に終了している。このように、時間経過に伴いモデル部３３と実エンジン３４の運転サイクルのずれが大きくなる。
【００１７】
この対策とし、仮に、対象とするエンジンが単気筒エンジンであるならば、随時、モデル部３３の運転を停止させ、実エンジン３４の運転サイクルが進んでからモデル部３３の運転を開始させることにより、モデル部３３を実エンジン３４に同期させるようにしても問題ない。これは、単気筒エンジンではクランク角度と運転行程が１対１で対応しているためである。
【００１８】
しかし、複数の気筒を持ち、各気筒で運転状態が異なる多気筒エンジンにおいては先行動作するモデル部３３とリアルタイムで動作する実エンジン３４との同期をとるのは容易でない。
【００１９】
多気筒エンジンでは、各気筒の状態は、位相差を持ちつつ相互に影響し合う。また、各気筒の状態は、過去の状態から現在の状態が決まるという時間的連続性を有する。このため、気筒ごとに独立して状態量計算を停止させることはできず、また、任意時点の状態を切り出してその状態だけを利用することはできない。
【００２０】
このように、モデル部３３を実エンジン３４より高速で動作させると、モデル部３３と実エンジン３４との同期ずれが生じるが、多気筒エンジンでは、同期ずれを解消するのが困難であるため、予測制御が困難となる。
【００２１】
そこで、本発明の目的は、上記課題を解決し、モデルと実エンジンとの同期をずれさせることなく予測制御が実現できるモデルベースエンジン制御装置を提供することにある。
【課題を解決するための手段】
【００２２】
上記目的を達成するために本発明のモデルベースエンジン制御装置は、ドライバ操作による指示量とエンジンの状態量とに基づいてエンジンの制御量を生成する制御ロジック部と、エンジンを模擬して制御量から状態量を計算するモデル部と、前記モデル部が出力する状態量と実エンジンの状態量とを選択的に前記制御ロジック部に提供する状態量選択部と、前記モデル部が実エンジンの２倍よりも高速で動作するよう前記モデル部の処理速度を管理する処理速度管理部と、実エンジンの運転サイクルごとに、前記モデル部の特定気筒の運転サイクルが終了した瞬間の前記モデル部の各気筒の内部計算状態を記憶しておき、実エンジンの運転サイクルが終了したとき前記モデル部の各気筒の内部計算状態を記憶されている内部計算状態に置換し、実エンジンの次の運転サイクル開始と同時に前記モデル部を置換された各気筒の内部計算状態から運転させる同期管理部とを備え、前記モデル部は内部計算状態を記憶したことに影響を受けることなくそのまま計算を続行し、ここで計算された各気筒の状態量は各気筒の次の運転サイクルのための制御量計算に使用されるものである。
【発明の効果】
【００２３】
本発明は次の如き優れた効果を発揮する。
【００２４】
（１）モデルと実エンジンとの同期をずれさせることなく予測制御が実現できる。
【図面の簡単な説明】
【００２５】
【図１】本発明の一実施形態を示すモデルベースエンジン制御装置の構成図である。
【図２】本発明のモデルベースエンジン制御装置における実エンジンとモデル部のタイミングチャートである。
【図３】従来のモデルベースエンジン制御装置の構成図である。
【図４】従来のモデルベースエンジン制御装置を予測制御しようとする場合の実エンジンとモデル部のタイミングチャートである。
【発明を実施するための形態】
【００２６】
以下、本発明の一実施形態を添付図面に基づいて詳述する。
【００２７】
図１に示されるように、本発明に係るモデルベースエンジン制御装置（ＥＣＵ）１は、ドライバ操作による指示量とエンジンの状態量とに基づいてエンジンの制御量を生成する制御ロジック部２と、エンジンを模擬して制御量から状態量を計算するモデル部３と、モデル部３が出力する状態量と実エンジン４の状態量とを選択的に制御ロジック部２に提供する状態量選択部５と、モデル部３が実エンジン４の２倍よりも高速で動作するようモデル部３の処理速度を管理する処理速度管理部６と、実エンジン４の運転サイクルごとに、モデル部３の特定気筒の運転サイクルが終了した瞬間のモデル部３の内部計算状態を記憶しておき、実エンジン４の運転サイクルが終了したときモデル部３の内部計算状態を記憶されている内部計算状態に置換し、実エンジン４の次の運転サイクル開始と同時にモデル部３を置換された内部計算状態から運転させる同期管理部７とを備える。
【００２８】
ここで、モデル部３の内部計算状態とは、計算の進行に伴って変化する全ての数値の瞬時値のことであり、より具体的には、メモリに格納されている変数値、ＣＰＵレジスタの内容、ＣＰＵステータス、プログラムカウンタ値などが含まれる。
【００２９】
図１の実エンジン４は、図３の実エンジン３４と同じであり、図１のセンサ８とアクチュエータ９は、図３のセンサ３６とアクチュエータ３７と同様に、自動車に搭載される公知の全てのセンサとアクチュエータを表している。図１のＩ／Ｏポート１０は、図３のＩ／Ｏポート３８と同じである。
【００３０】
本発明のモデルベースエンジン制御装置１は、モデルベース制御においてモデル部３を実エンジン４よりも先行動作させ、予測した状態量に基づくエンジン制御、いわゆる予測制御を実施するものである。予測制御に際し、従来のモデルベースエンジン制御装置３１では先行するモデル部３３の運転サイクルが時間経過に伴い実エンジン３４の運転サイクルから乖離していくという問題があったので、これを解決し、かつ、各気筒相互の影響及び時間的連続性を維持するため、本発明では、モデル部３を停止させることなく運転し、実エンジン４の運転サイクルごとにモデル部３の内部計算状態を過去に戻すことで実エンジン４に同期させるようになっている。
【００３１】
以下、モデルベースエンジン制御装置１の動作を説明する。
【００３２】
図２に示されるように、実エンジン４とモデル部３が同時に０°ＣＡから動作を開始したとする（実際には、それ以前から継続して動作している）。実エンジン４では、１サイクル目は、時間０から時間Ｔまでにクランク角度が０°ＣＡから７２０°ＣＡまで進み、終了する。２サイクル目は、時間Ｔから時間２Ｔまでにクランク角度が０°ＣＡから７２０°ＣＡまで進み、終了する。３サイクル目以降も同様である。
【００３３】
これに対し、処理速度管理部６は、モデル部３が実エンジン４の２倍の速度で動作するようモデル部３の処理速度を管理する。モデル部３が実エンジン４の２倍の速度で運転されることにより、モデル部３による気筒＃１の１サイクル目の状態量計算は、実エンジン４の１サイクル目の終了時間Ｔより早く終了する。モデル部３が気筒＃１の１サイクル目の状態量を出力すると、状態量選択部５は、モデル部３が出力する状態量を選択して制御ロジック部２に提供する。これにより、制御ロジック部２は、実エンジン４の２サイクル目に備えて気筒＃１に対する制御量計算を開始する。
【００３４】
同期管理部７は、気筒＃１の１サイクル目が終了したときのモデル部３の内部計算状態を記憶しておく。その後、同期管理部７は、実エンジン４の１サイクル目が終了したとき（時間Ｔ）、モデル部３の内部計算状態を記憶されている内部計算状態に置換し、実エンジン４の２サイクル目の開始と同時にモデル部３を置換された内部計算状態から運転させる。したがって、モデル部３は、時間Ｔから気筒＃１の２サイクル目を運転することになる。
【００３５】
モデル部３による気筒＃１の２サイクル目の状態量計算は、実エンジン４の２サイクル目の終了時間２Ｔより早く終了する。モデル部３が気筒＃１の２サイクル目の状態量を出力すると、状態量選択部５は、モデル部３が出力する状態量を選択して制御ロジック部２に提供する。これにより、制御ロジック部２は、実エンジン４の３サイクル目に備えて気筒＃１に対する制御量計算を開始する。
【００３６】
同期管理部７は、気筒＃１の２サイクル目が終了したときのモデル部３の内部計算状態を記憶しておく。その後、同期管理部７は、実エンジン４の２サイクル目が終了したとき（時間２Ｔ）、モデル部３の内部計算状態を記憶されている内部計算状態に置換し、実エンジン４の３サイクル目の開始と同時にモデル部３を置換された内部計算状態から運転させる。したがって、モデル部３は、時間２Ｔから気筒＃１の３サイクル目を運転することになる。
【００３７】
各気筒に関する状態量全計算について説明すると、モデル部３では、気筒＃１についての計算が時間ｔ０から始まるとすると、気筒＃５以降についての計算はモデル上で１２０°ＣＡに相当する時間ずつ遅れて始まる。
【００３８】
気筒＃１の１サイクル目が終了した時間ｔ１に、モデル部３の内部計算状態が記憶される。気筒＃１に関して記憶される内部計算状態は１サイクル目の終了（＝２サイクル目の開始）の状態である。気筒＃５に関する内部計算状態は、１サイクル目が大半終わった状態、気筒＃３に関する内部計算状態は、１サイクル目が半分以上終わった状態、気筒＃６に関する内部計算状態は、１サイクル目が半分終わった状態、気筒＃２に関する内部計算状態は、１サイクル目が半分未満終わった状態、気筒＃４に関する内部計算状態は、１サイクル目が始まって間もない状態である。
【００３９】
モデル部３は、同期管理部７が内部計算状態を記憶したことに影響を受けることなく、そのまま計算を続行する。したがって、時間ｔ１以降は、気筒＃１の２サイクル目、気筒＃２〜＃６の１サイクル目の残りと２サイクル目の一部が計算される。ここで計算された気筒＃２〜＃６の１サイクル目の状態量は、制御ロジック部２に提供され、各気筒＃２〜＃６の２サイクル目のための制御量計算に使用される。
【００４０】
その後、時間ｔ２において内部計算状態が置換されると、全気筒に関して時間ｔ２までの計算内容は失われ、気筒＃１に関する内部計算状態は２サイクル目の開始の状態、気筒＃５に関する内部計算状態は１サイクル目が大半終わった状態、気筒＃３に関する内部計算状態は１サイクル目が半分以上終わった状態、気筒＃６に関する内部計算状態は１サイクル目が半分終わった状態、気筒＃２に関する内部計算状態は１サイクル目が半分未満終わった状態、気筒＃４に関する内部計算状態は１サイクル目が始まって間もない状態に戻ることになる。モデル部３は、置換された内部計算状態から運転され、気筒＃１の２サイクル目と気筒＃２〜＃６の１サイクル目の残りの計算が再開されることになる。
【００４１】
気筒＃１の２サイクル目が終了した時間ｔ３には、モデル部３の内部計算状態が記憶され、モデル部３は、そのまま計算を続行する。計算された状態量は、３サイクル目のための制御量計算に使用される。その後、時間ｔ４において内部計算状態が置換され、以下、同様の繰り返しとなる。
【００４２】
以上説明したように、本発明のモデルベースエンジン制御装置１によれば、実エンジン４の運転サイクルごとに、モデル部３の特定気筒の運転サイクルが終了した瞬間のモデル部３の内部計算状態を記憶しておき、実エンジン４の運転サイクルが終了したときモデル部３の内部計算状態を記憶されている内部計算状態に置換し、実エンジン４の次の運転サイクル開始と同時にモデル部３を置換された内部計算状態から運転させるようにしたので、モデル部３を停止させることなく運転し、実エンジン４の運転サイクルごとにモデル部３の内部計算状態を過去に戻すことでモデル部３を実エンジン４に同期させることができる。これにより、モデル上のクランク角度の進行に沿って全気筒の状態量計算が並列で実行されるようになり、各気筒相互の影響が失われることがなくなる。また、各気筒の状態の時間的連続性が失われることがなくなる。この結果、モデル部３の実機模擬精度が向上する。
【００４３】
本実施形態では、モデル部３が実エンジン４の２倍の速度で動作するものとしたが、丁度２倍である必要はなく、実エンジン４の２倍より高速であればよい。モデル部３が実エンジン４の２倍より高速で動作すると、図２の時間ｔ１〜ｔ４は左へ移動する。この場合も、時間ｔ１に記憶されたモデル部３の内部計算状態が時間Ｔで置換され、内部計算状態が元に戻ることになる。また、時間Ｔより後は気筒＃１の２サイクル目が終了した時間に、モデル部３の内部計算状態が記憶される。
【符号の説明】
【００４４】
１  モデルベースエンジン制御装置
２  制御ロジック部
３  モデル部
４  実エンジン
５  状態量選択部
６  処理速度管理部
７  同期管理部
【図１】
0005879894.tif 000002
【図３】
0005879894.tif 000003
【図２】
0005879894.tif 000004
【図４】
0005879894.tif 000005