JP5776671B2 - 内燃機関の制御装置 - Google Patents

内燃機関の制御装置 Download PDF

Info

Publication number
JP5776671B2
JP5776671B2 JP2012261224A JP2012261224A JP5776671B2 JP 5776671 B2 JP5776671 B2 JP 5776671B2 JP 2012261224 A JP2012261224 A JP 2012261224A JP 2012261224 A JP2012261224 A JP 2012261224A JP 5776671 B2 JP5776671 B2 JP 5776671B2
Authority
JP
Japan
Prior art keywords
engine
calculation
cores
core
parallel
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2012261224A
Other languages
English (en)
Other versions
JP2014105678A (ja
Inventor
寛之 杉原
寛之 杉原
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toyota Motor Corp
Original Assignee
Toyota Motor Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toyota Motor Corp filed Critical Toyota Motor Corp
Priority to JP2012261224A priority Critical patent/JP5776671B2/ja
Publication of JP2014105678A publication Critical patent/JP2014105678A/ja
Application granted granted Critical
Publication of JP5776671B2 publication Critical patent/JP5776671B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、内燃機関の制御装置に係り、詳しくは、マルチコアプロセッサを搭載した内燃機関の制御装置に関する。
従来、複数のプロセッサを搭載した演算装置が知られている。特開2006−344162号公報(以下、特許文献1)に記載されているものも、そのような演算装置の1つである。特許文献1に記載されている演算装置は、複数のプロセッサを用いて並列処理を行う際に、消費電力量情報に基づいて複数のプロセッサによる消費電力量の合計が最小となるように、複数のプロセッサに対する割り付けと、動作周波数および電圧の設定を行うことができるようにしたものである。
特開2006−344162号公報
近年においては、1つのCPUに複数のコアを搭載した演算装置、すなわちマルチコアプロセッサの使用が自動車用エンジン制御の分野でも検討されている。エンジンに搭載されるアクチュエータの数と種類は益々増えており、それらアクチュエータの制御目標値を演算するためには、マルチコアプロセッサの高い処理能力が有望だからである。
但し、上述したようなマルチコアプロセッサの演算手法を単純に自動車用エンジン制御に適用することができるとは限らない。すなわち、マルチコアプロセッサでは複数のコアにタスクを分配して並列に処理することが可能であるが、そのタスク分配の手法の如何によってはエンジンの運転を適切に制御することができないことも想定される。例えば、エンジンの燃焼異常が発生した場合には、これを回避するためのアクチュエータの制御目標値を優先的に演算することが求められるが、この際の演算タスクを複数のコアに分配して並列に処理することとすると、コア間の同期通信に時間を要してしまい異常の回避が遅れるおそれがある。
本発明は、上述のような課題に鑑みてなされたもので、内燃機関に燃焼異常が発生した場合に、これを回避するための演算を高速度で実現することのできる内燃機関の制御装置を提供することを目的とする。
第1の発明は、上記の目的を達成するため、内燃機関の制御装置において、
複数のコアが搭載されたマルチコアプロセッサを用いて内燃機関の1又は複数のアクチュエータの制御入力値を演算する内燃機関の制御装置において、
前記制御入力値の演算に関わる複数のタスクを前記マルチコアプロセッサの複数のコアに分散して割り当てて、前記複数のコア間で同期通信を行いつつ並列に演算処理する並列演算手段と、
前記内燃機関に燃焼異常が起きた場合に、前記並列演算手段による演算処理を禁止して、前記複数のタスクの中で当該燃焼異常を回避するために優先すべき前記制御入力値の演算に関わるタスクを、前記複数のコアの中から選択された第1のコアに割り当てて演算処理する異常時演算手段と、
を備えることを特徴としている。
第2の発明は、第1の発明において、
前記異常時演算手段は、稼働中の前記第1のコアの演算周波数を高くする手段を含むことを特徴としている。
第3の発明は、第1または第2の発明において、
前記燃焼異常は、ノッキング、プレイグニッション及び失火の何れかを含むことを特徴としている。
第1の発明によれば、内燃機関に燃焼異常が発生した場合に、これを回避するために優先すべき制御入力値の演算に関わるタスクが単一のコア(第1のコア)に割り当てられる。このため、本発明によれば、コア間の同期通信を必要とすることなく燃焼異常回避のための制御入力値を演算することができるので、異常回避への応答性を有効に向上させることが可能となる。
第2の発明によれば、内燃機関に燃焼異常が発生した場合に、稼働中の第1コアの演算周波数が高くされる。このため、本発明によれば、燃焼異常回避のための制御入力値の演算を更に高速度で行うことが可能となる。
第3の発明によれば、燃焼異常としてノッキング、プレイグニッション及び失火の何れかが発生した場合に、コア間の同期通信を必要とすることなく燃焼異常回避のための制御入力値を演算することができるので、異常回避への応答性を有効に向上させることが可能となる。
本実施の形態の並列計算装置の構成の概略を示す図である。 本実施の形態の並列計算装置の通常時の計算手法について説明するための図である。 エンジン回転数とエンジン負荷とを引数とした運転条件格子空間を示す図である。 図3に示す運転条件格子空間における動作点の近傍を拡大して示した図である。 通常時の並列演算のルーチンを示すフローチャートである。 本実施の形態の並列計算装置の燃焼異常時の計算手法について説明するための図である。 本発明の実施の形態1において実行されるルーチンのフローチャートである。 本発明の実施の形態1において回避モード時に実行されるルーチンのフローチャートである。 本発明の実施の形態2において実行されるルーチンのフローチャートである。 本発明の実施の形態2において回避モード時に実行されるルーチンのフローチャートである。 本発明の実施の形態3において実行されるルーチンのフローチャートである。 本発明の実施の形態3において回避モード時に実行されるルーチンのフローチャートである。
実施の形態1.
本発明の実施の形態1について図を参照して説明する。
本実施の形態1の並列計算装置は、マルチコアプロセッサを用いてエンジン制御にかかるアクチュエータの制御目標値を演算する並列計算装置である。本実施の形態の並列計算装置が適用される自動車エンジンの種類や構造に限定はない。例えば、ガソリンエンジン、ディーゼルエンジン、自然吸気エンジン、過給エンジン等、様々な自動車エンジンに適用することができる。また、本実施の形態の並列計算装置が演算する制御目標値の種類や数にも限定はない。例えば、スロットル、点火装置、可変バルブタイミング装置、インジェクタ、EGR装置、ウエストゲートバルブ等、様々なアクチュエータの制御目標値の演算に適用することができる。尚、本実施の形態では、過給機付きのガソリンエンジンの並列計算装置を例に説明する。
図1は、本実施の形態の並列計算装置の構成の概略を示す図である。本実施の形態の並列計算装置100は、エンジン2の備えるECUの機能の一部として実現される。並列計算装置100には、エンジン2に備えられる複数のセンサからエンジンの運転状態や運転環境に関する各種の情報が入力される。並列計算装置100はそれらの情報に基づいて各アクチュエータに指示する操作量(制御目標値)を演算する。並列計算装置100は4つのコア10A,10B,10C,10D(以下、これらを特に区別しないときは単に「コア10」と称する)が搭載されたマルチコアタイプの並列計算装置である。図示は省略するが、各コア10はキャッシュつきのCPUとローカルメモリとを備え、ローカルメモリには、CPUで実行される各種プログラムとそのプログラムの実行時に使用される各種のデータが記憶されている。コア10同士はバス(図示省略)で接続されており、バスを経由してコア10間での同期通信が行われる。尚、本実施の形態の並列計算装置100では4つのコアが搭載されたマルチコアプロセッサについて説明するが、並列計算装置100は、更に複数のコアが搭載された所謂メニーコアプロセッサとして構成されていてもよい。
[実施の形態の1動作]
次に、本実施の形態1の動作について説明する。本実施の形態にかかる並列計算装置100は、いわゆるモデルベース制御によってエンジン2を制御するものであり、モデル予測を多用して、上述した複数のアクチュエータの制御目標値を計算する。具体的には、エンジン2から並列計算装置100には、EGR率、過給圧、点火時期、エンジン回転数及びエンジン負荷を含む各種の情報が取り込まれる。並列計算装置100は、取り込んだ情報に基づき、EGRバルブの操作量であるEGRバルブ開度、ウエストゲートバルブの操作量であるウエストゲートバルブ開度及び点火装置の操作量である点火時期SA等をそれぞれ計算し、エンジン2に出力する。
図2は、本実施の形態の並列計算装置の通常時の計算手法について説明するための図である。この図に示すように、エンジン2に燃焼異常等が発生していない通常時においては、並列計算装置100において複数のコア10を用いた並列演算処理が行われる。具体的には、複数のアクチュエータの制御目標値を算出するための演算のタスクがこれらのコア10に分配される。各コア10では、コア間での同期通信を行いつつ割り当てられたタスクの演算処理を実行する。ここで、複雑なエンジン挙動をモデル化する際には、エンジン特性をより高精度に記述可能な表現形式を用いてモデル化することが重要となる。そこで、本実施の形態の並列計算装置100では、ポリトープ表現形式を用いてエンジン挙動のモデル化を行うこととしている。以下、ポリトープ表現形式を用いたモデリング手法について詳細に説明する。
並列計算装置100は、協調制御のための目標値追従コントローラを備えている。目標値追従コントローラは、エンジン2の状態量であるEGR率、過給圧および点火時期の各推定値がそれぞれの目標値に追従するように各アクチュエータの操作量を計算する。以下の式(1)は、目標値追従コントローラの制御側を示す方程式である。尚、次式(1)において、“u”はエンジン2への制御入力としての入力変数ベクトルである。入力変数ベクトルには操作量であるEGRバルブ開度、ウエストゲートバルブ開度及び点火時期等が含まれる。“x”は状態量としての状態変数ベクトルであり、“r”はその目標値ベクトルである。状態変数ベクトルにはEGR率、過給圧及び点火時期の各推定値が含まれる。“v”は目標値ベクトルに対する状態変数ベクトルの追従誤差を積分して得られる積分ベクトルである。“K”は係数行列であり、“ρ”はエンジン回転数とエンジン負荷とによって変化するスケジューリングパラメータである。
Figure 0005776671
図3は、エンジン回転数とエンジン負荷とを引数とした運転条件格子空間を示す図である。この図に示すとおり、運転条件格子空間は、エンジン回転数を横軸、エンジン負荷を縦軸とした2次元空間が所定の幅で格子状に区切られている。ここで、図3に示す運転条件格子空間上において、エンジン回転数およびエンジン負荷の観測量が位置する点(以下、「動作点」と称する)の属する格子空間の4つの頂点をそれぞれ端点1、端点2、端点3、端点4とした場合を考える。図4は、図3に示す運転条件格子空間における動作点の近傍を拡大して示した図である。この場合、動作点と各端点との横方向および縦方向の距離の比率をα,βを用いて図3のように表したとき、動作点における入力変数ベクトルuは、次式(2)で表される。
Figure 0005776671
上式(2)によれば、動作点に近い端点ほど、大きな重みをかけることができる。上式(2)のような表現形式をポリトープ表現形式という。このように、ポリトープ表現形式による演算によれば、動作点が格子内の内分点に位置した場合であっても、入力変数ベクトルuを高精度に計算することが可能となる。
ところで、上述したようなポリトープ表現形式の演算をエンジンのモデルベース制御に用いる場合においては、演算処理時間の長期化が問題となる。すなわち、サンプリングレートが速いエンジン制御の特殊性に鑑みると、上述したような演算負荷の高い行列計算を逐次処理した場合に、指定したサンプリング時間内に演算処理を終わらすことができないことも想定される。
そこで、本実施の形態の並列計算装置100では、上式(2)の演算において、複数のコアを用いた並列演算処理を行うこととする。上式(2)の演算を展開して整理すると次式(3)が導き出される。
Figure 0005776671
上式(3)における入力変数ベクトルu〜uは、端点1〜端点4におけるそれぞれの入力変数ベクトルを示しており、これらの演算は互いに独立している。そこで、本実施の形態の並列計算装置100では、入力変数ベクトルu,u,u,uの各々の演算を、各コア10にそれぞれ割り当てて並列に演算することとする。演算された入力変数ベクトルu〜uは、複数のコアの中から選択された演算負荷の低いコア(以下、「空きコア」と称する。図2ではコア10Aが相当)に集められる。空きコアでは、集められた入力変数ベクトルu〜u、および上式(2)に従い別途演算されたスケジューリングパラメータρ1〜ρ4を上式(3)に代入することにより、動作点における入力変数ベクトルuが算出される。
このように、本実施の形態の並列計算装置100によれば、互いに独立した入力変数ベクトルu〜uの各々の演算を複数のコアを用いて並列に演算することができる。これにより、ポリトープ表現形式を用いたモデルベース制御において、演算負荷の軽減および演算の高速化を有効に図ることが可能となる。
図5は、通常時のルーチンを示すフローチャートである。尚、図5に示すルーチンは、エンジン2が通常運転中であると判定された場合に実行されるルーチンであるが、この点については後述する。
図5に示すルーチンでは、先ず、現在の運転条件として、エンジン回転数とエンジン負荷とが検出される(ステップS100)。次に、上記ステップS100において検出された運転条件の動作点が、エンジン回転数とエンジン負荷とを引数とした運転条件格子空間上のどのセル(格子)に属するかが判定される(ステップS102)。ここでは、具体的には、現在の運転条件の属するセルを形成する4つの端点が特定される。
次に、現在状態が取得される(ステップS104)。ここでは、エンジンの状態量としての過給圧、EGR率及び点火時期が取得されるとともに、これら状態量の各追従誤差の積分値がそれぞれ算出される。
また、上記ステップS102の処理の後は、現在運転条件の内分点計算が行われる(ステップS106)。ここでは、具体的には、上記ステップS102において特定された4つの端点のそれぞれと現在の運転条件の動作点との距離に応じた重みを反映させるための値として、上式(2)に示すスケジューリングパラメータρ1〜ρ4が算出される。
次に、上記ステップS104において取得された現在状態を用いて、上式(3)に示す4つ端点の入力変数ベクトルu〜uが複数のコア10のそれぞれで演算される(ステップS108)。ここでは、具体的には、入力変数ベクトルuの演算がコア10Aに、入力変数ベクトルuの演算がコア10Bに、入力変数ベクトルuの演算がコア10Cに、そして入力変数ベクトルuの演算がコア10Dに、それぞれ割り当てられる。各コア10では、割り当てられた演算がそれぞれ並列に実行される。
次に、空きコアが探索される(ステップS110)。ここでは、具体的には、エンジン回転数予測から各コア10の演算負荷を予測し、最も演算負荷の低いコアが空きコアとして設定される。次に、現在の運転条件における最終制御入力として、動作点での入力変数ベクトルが算出される(ステップS112)。ここでは、具体的には、コア間で同期通信を行うことにより、上記ステップS108において並列に演算された入力変数ベクトルu〜u、および上記ステップS106において算出されたスケジューリングパラメータρ1〜ρ4が、上記ステップS110において特定された空きコアに集められる。そして、空きコアでは、集められた入力変数ベクトルu〜u、およびρ1〜ρ4を上式(3)に代入することにより、動作点における制御入力である入力変数ベクトルuが算出される。
このように、本実施の形態の並列計算装置100によれば、エンジン2の通常時において、演算負荷が高いとされる各端点での制御入力計算が複数のコア10を用いて並列に演算される。これにより、演算負荷を有効に軽減することができるので、演算の高速化及び高精度化を図ることが可能となる。
次に、本実施の形態の並列計算装置の特徴的動作であるエンジン2の燃焼異常時の並列計算手法について説明する。図6は、本実施の形態の並列計算装置の燃焼異常時の計算手法について説明するための図である。この図に示すように、本実施の形態の並列計算装置100では、エンジン2にノッキング等の燃焼異常等が発生したことを検知した場合に、複数のコア10の中から選択された1つのコア(以下、「メインコア」と称する。図ではコア10Aが相当)において異常回避に影響の大きい操作量(ここでは点火時期SA)の計算が行われる。メインコア10Aでは、他のコアとの同期通信を行うことなく点火時期SAを計算するためのタスクを順次実行し、算出された点火時期SAをエンジン2へ出力する。一方、複数のコア10の中の残りのコア(以下、「サブコア」と称する。図ではコア10B〜10Dが相当)では、異常回避が完了した直後に備えて、上述した通常運転時の並列演算と同様の手法を用いて全ての操作量が並列演算される。但し、異常回避が完了するまでは、演算された操作量がエンジン2へ出力されることはない。このような計算手法によれば、ノッキング等の燃焼異常が発生した場合に、異常回避のために優先すべき制御入力値がメインコア10Aによって高速に演算されるので、異常回避行動を迅速に実施することが可能となる。また、サブコア10B〜10Dでは、異常回避直後に備えて全ての制御入力値を演算して待機することとしているので、異常回避完了直後に通常時の制御入力値を迅速にエンジン2へ出力することが可能となる。
[実施の形態1の具体的処理]
次に、図7を参照して、本実施の形態1の具体的処理について説明する。図7は、本発明の実施の形態1において実行されるルーチンのフローチャートである。尚、図7に示すルーチンは、エンジン2の運転中に繰り返し実行されるものとする。
図7に示すルーチンでは、先ず、ノックセンサ等により検出された情報に基づいて、回避すべきノッキングの発生有無が判定される(ステップS200)。その結果、ノッキングの発生がないと判定された場合には、通常モードが選択され、通常の並列計算が実行される(ステップS202)。ここでは、具体的には、図5に示すルーチンが呼び出されて実行される。
一方、上記ステップS200において、ノッキングが発生したと判断された場合には、迅速なノッキング回避が必要と判断されて、異常回避のための並列計算(回避モード)が実行される(ステップS204)。ここでは、具体的には、図8に示すルーチンが呼び出されて実行される。図8は、回避モード時に実行されるルーチンのフローチャートである。図8に示すルーチンでは、先ず、現在の運転条件として、エンジン回転数とエンジン負荷とが検出される(ステップS300)。次に、メインコア10Aでは、点火時期SAが計算され(ステップS302)、演算結果がエンジン2に指示される(ステップS304)。
また、上記ステップS300の処理の後は、上記ステップS302〜S304の処理と並行して、サブコア10B〜10Dにおいて全ての制御入力値の計算が行われる。具体的には、上記ステップS102〜S112と同様の処理がサブコア10B〜10Dを用いて実行される(ステップS306〜S316)。
上記ステップS304およびS316の処理の後には、ノックセンサ等により検出された情報に基づいて、ノッキングの回避が完了したか否かが判定される(ステップS318)。その結果、未だノッキングが回避されていないと判定された場合には、ステップS300に移行して本ルーチンが再度実行される。一方、上記ステップS318においてノッキングが回避されたと判定された場合には、次のステップに移行し、上記ステップS316において計算された制御入力値がエンジン2へ出力される。
このように、本実施の形態の並列計算装置100は、ノッキングによる燃焼異常時に異常回避のために優先すべき点火時期SAの計算を1つのコア(メインコア10A)にて実行する。これにより、異常回避に必要な制御入力値を他のコアとの同期通信を行うことなく迅速に計算して出力することができる。
ところで、上述した実施の形態の並列計算装置100では、ノッキングによる燃焼異常時に異常回避のために優先すべき点火時期SAの計算を1つのコア(メインコア10A)にて実行することとしているが、この際の演算速度を更に高めるために演算周波数を変化させることとしてもよい。具体的には、例えば、駆動電圧を制御して演算周波数を変化させることのできる周波数・電圧制御ユニットを各コア10に備えることとし、ノッキングによる燃焼異常時にメインコア10Aの周波数・電圧制御ユニットを操作して演算周波数を高めることとすればよい。これにより、異常回避の応答性を更に高めることが可能となる。
また、上述した実施の形態の並列計算装置100では、複数のコア10を用いた並列計算において、ポリトープ表現形式を用いたモデリング手法を採用しているが、他の演算手法により演算タスクを分配して並列計算を行うこととしてもよい。例えば、エンジン回転数に同期して使用コア数が増えるようにタスクを分配することとしてもよい。
また、上述した実施の形態1では、並列計算装置100が、上記ステップS202の処理を実行することにより、第1の発明における「並列演算手段」が、上記ステップS204の処理を実行することにより、第1の発明における「異常時演算手段」が、それぞれ実現されている。
実施の形態2.
本発明の実施の形態2について図を参照して説明する。
[実施の形態2の特徴]
本実施の形態2の並列計算装置は、エンジン2に発生する回避すべき燃焼異常として、プレイグニッション(以下、「プレイグ」とも称する)が発生した場合の並列計算手法に特徴を有している。以下、フローチャートを参照して、本実施の形態2の具体的処理について説明する。図9は、本発明の実施の形態2において実行されるルーチンのフローチャートである。尚、図9に示すルーチンは、エンジン2の運転中に繰り返し実行されるものとする。
図9に示すルーチンでは、先ず、回避すべきプレイグの発生有無が判定される(ステップS400)。その結果、プレイグの発生がないと判定された場合には、通常モードが選択され、通常の並列計算が実行される(ステップS402)。ここでは、具体的には、図5に示すルーチンが呼び出されて実行される。
一方、上記ステップS400において、プレイグが発生したと判断された場合には、迅速なプレイグ回避が必要と判断されて、異常回避のための並列計算(回避モード)が実行される(ステップS404)。ここでは、具体的には、図10に示すルーチンが呼び出されて実行される。図10は、回避モード時に実行されるルーチンのフローチャートである。図10に示すルーチンでは、先ず、現在の運転条件として、エンジン回転数とエンジン負荷とが検出される(ステップS500)。次に、メインコア10Aでは、プレイグを回避するべく動作線(エンジン2の出力特性に基づいて予め定められた特性線)が修正される(ステップS502)。そして、修正後の動作線を実現するための制御入力値として、スロットル開度およびシフトが算出され(ステップS504)、算出された制御入力値がエンジン2に指示される(ステップS506)。
また、上記ステップS500の処理の後は、上記ステップS502〜S506の処理と並行して、サブコア10B〜10Dにおいて全ての制御入力値の計算が行われる。具体的には、上記ステップS306〜S314と同様の処理が実行される(ステップS508〜S518)。
上記ステップS506およびS518の処理の後には、プレイグの回避が完了したか否かが判定される(ステップS520)。その結果、未だプレイグが回避されていないと判定された場合には、ステップS500に移行して本ルーチンが再度実行される。一方、上記ステップS520においてプレイグが回避されたと判定された場合には、次のステップに移行し、上記ステップS518において計算された制御入力値がエンジン2へ出力される(ステップS522)。
このように、本実施の形態の並列計算装置100は、プレイグによる燃焼異常時に異常回避のために優先すべき制御入力値の計算を1つのコア(メインコア10A)にて実行する。これにより、異常回避に必要な制御入力値を他のコアとの同期通信を行うことなく迅速に計算して出力することができる。
ところで、上述した実施の形態の並列計算装置100では、プレイグによる燃焼異常時に異常回避のために優先すべき制御入力値の計算を1つのコア(メインコア10A)にて実行することとしているが、この際の演算速度を更に高めるために演算周波数を変化させることとしてもよい。具体的には、例えば、駆動電圧を制御して演算周波数を変化させることのできる周波数・電圧制御ユニットを各コア10に備えることとし、プレイグによる燃焼異常時にメインコア10Aの周波数・電圧制御ユニットを操作して演算周波数を高めることとすればよい。これにより、異常回避の応答性を更に高めることが可能となる。
また、上述した実施の形態の並列計算装置100では、複数のコア10を用いた並列計算において、ポリトープ表現形式を用いたモデリング手法を採用しているが、他の演算手法により演算タスクを分配して並列計算を行うこととしてもよい。例えば、エンジン回転数に同期して使用コア数が増えるようにタスクを分配することとしてもよい。
また、上述した実施の形態2では、並列計算装置100が、上記ステップS402の処理を実行することにより、第1の発明における「並列演算手段」が、上記ステップS404の処理を実行することにより、第1の発明における「異常時演算手段」が、それぞれ実現されている。
実施の形態3.
本発明の実施の形態3について図を参照して説明する。
[実施の形態3の特徴]
本実施の形態3の並列計算装置は、エンジン2に発生する回避すべき燃焼異常として、失火が発生した場合の並列計算手法に特徴を有している。以下、フローチャートを参照して、本実施の形態3の具体的処理について説明する。図11は、本発明の実施の形態2において実行されるルーチンのフローチャートである。尚、図11に示すルーチンは、エンジン2の運転中に繰り返し実行されるものとする。
図11に示すルーチンでは、先ず、回避すべき失火の発生有無が判定される(ステップS600)。その結果、失火の発生がないと判定された場合には、通常モードが選択され、通常の並列計算が実行される(ステップS602)。ここでは、具体的には、図5に示すルーチンが呼び出されて実行される。
一方、上記ステップS600において、失火が発生したと判断された場合には、迅速な失火回避が必要と判断されて、異常回避のための並列計算(回避モード)が実行される(ステップS604)。ここでは、具体的には、図12に示すルーチンが呼び出されて実行される。図12は、回避モード時に実行されるルーチンのフローチャートである。
図12に示すルーチンでは、先ず、現在の運転条件として、エンジン回転数とエンジン負荷とが検出される(ステップS700)。次に、ステップS702〜S708では、メインコア10Aにおいて失火を回避するための制御目標値の計算が行われる。具体的には、先ず、エンジン負荷と所定の閾値とを比較することにより、発生した失火が軽負荷時のものか否かが判定される(ステップS702)。その結果、軽負荷時の失火であると判定された場合には、次のステップに移行し、スロットル開度を開側に変化させるともにトルクコンバータを調整するための制御入力値がエンジン2へ指示される(ステップS704)。一方、上記ステップS702において軽負荷失火ではないと判定された場合には、次のステップに移行し、空燃比A/Fが目標通りか否かが判定される(ステップS706)。その結果、A/Fが目標通りである場合には、点火時期SAを進角させるための制御入力値がエンジン2へ指示され(ステップS708)、目標A/Fが目標より燃料リッチである場合には、スロットル開度が開側に変化させるための制御入力値がエンジン2へ指示され(ステップS710)、目標A/Fが目標より燃料リーンである場合には、燃料噴射量を増量されるための制御入力値がエンジン2へ指示される(ステップS714)。
また、上記ステップS700の処理の後は、上記ステップS702〜S714の処理と並行して、サブコア10B〜10Dにおいて全ての制御入力値の計算が行われる。具体的には、上記ステップS306〜S314と同様の処理が実行される(ステップS714〜S724)。
上記ステップS704、S708、S710またはS712の処理およびステップS724の処理の後には、失火の回避が完了したか否かが判定される(ステップS726)。その結果、未だ失火が回避されていないと判定された場合には、ステップS700に移行して本ルーチンが再度実行される。一方、上記ステップS726において失火が回避されたと判定された場合には、次のステップに移行し、上記ステップS724において計算された制御入力値がエンジン2へ出力される(ステップS728)。
このように、本実施の形態の並列計算装置100は、失火による燃焼異常時に異常回避のために優先すべき制御入力値の計算を1つのコア(メインコア10A)にて実行する。これにより、異常回避に必要な制御入力値を他のコアとの同期通信を行うことなく迅速に計算して出力することができる。
ところで、上述した実施の形態の並列計算装置100では、失火による燃焼異常時に異常回避のために優先すべき制御入力値の計算を1つのコア(メインコア10A)にて実行することとしているが、この際の演算速度を更に高めるために演算周波数を変化させることとしてもよい。具体的には、例えば、駆動電圧を制御して演算周波数を変化させることのできる周波数・電圧制御ユニットを各コア10に備えることとし、失火による燃焼異常時にメインコア10Aの周波数・電圧制御ユニットを操作して演算周波数を高めることとすればよい。これにより、異常回避の応答性を更に高めることが可能となる。
また、上述した実施の形態の並列計算装置100では、複数のコア10を用いた並列計算において、ポリトープ表現形式を用いたモデリング手法を採用しているが、他の演算手法により演算タスクを分配して並列計算を行うこととしてもよい。例えば、エンジン回転数に同期して使用コア数が増えるようにタスクを分配することとしてもよい。
また、上述した実施の形態1−3では、燃焼異常の態様として、ノッキング、プレイグおよび失火を例に説明したが、他の燃焼異常が発生した場合にも本発明の計算手法を適用することができる。
また、上述した実施の形態1では、並列計算装置100が、上記ステップS602の処理を実行することにより、第1の発明における「並列演算手段」が、上記ステップS604の処理を実行することにより、第1の発明における「異常時演算手段」が、それぞれ実現されている。
2 エンジン
10 コア
100 並列計算装置

Claims (3)

  1. 複数のコアが搭載されたマルチコアプロセッサを用いて内燃機関の1又は複数のアクチュエータの制御入力値を演算する内燃機関の制御装置において、
    前記制御入力値の演算に関わる複数のタスクを前記マルチコアプロセッサの複数のコアに分散して割り当てて、前記複数のコア間で同期通信を行いつつ並列に演算処理する並列演算手段と、
    前記内燃機関に燃焼異常が起きた場合に、前記並列演算手段による演算処理を禁止して、前記複数のタスクの中で当該燃焼異常を回避するために優先すべき前記制御入力値の演算に関わるタスクを、前記複数のコアの中から選択された第1のコアに割り当てて演算処理する異常時演算手段と、
    を備えることを特徴とする内燃機関の制御装置。
  2. 前記異常時演算手段は、稼働中の前記第1のコアの演算周波数を高くする手段を含むことを特徴とする請求項1記載の内燃機関の制御装置。
  3. 前記燃焼異常は、ノッキング、プレイグニッション及び失火の何れかを含むことを特徴とする請求項1または2記載の内燃機関の制御装置。
JP2012261224A 2012-11-29 2012-11-29 内燃機関の制御装置 Expired - Fee Related JP5776671B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012261224A JP5776671B2 (ja) 2012-11-29 2012-11-29 内燃機関の制御装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012261224A JP5776671B2 (ja) 2012-11-29 2012-11-29 内燃機関の制御装置

Publications (2)

Publication Number Publication Date
JP2014105678A JP2014105678A (ja) 2014-06-09
JP5776671B2 true JP5776671B2 (ja) 2015-09-09

Family

ID=51027390

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012261224A Expired - Fee Related JP5776671B2 (ja) 2012-11-29 2012-11-29 内燃機関の制御装置

Country Status (1)

Country Link
JP (1) JP5776671B2 (ja)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05143388A (ja) * 1991-11-15 1993-06-11 Nec Corp 並列処理プログラムのサスペンド方式
JP5169429B2 (ja) * 2008-04-18 2013-03-27 富士ゼロックス株式会社 画像処理装置
WO2010109609A1 (ja) * 2009-03-25 2010-09-30 トヨタ自動車株式会社 処理装置及び車両用エンジン制御装置
JP5291556B2 (ja) * 2009-07-03 2013-09-18 株式会社日立製作所 電力系統安定化装置の演算割付方法
JP5515792B2 (ja) * 2010-01-28 2014-06-11 トヨタ自動車株式会社 内燃機関制御装置

Also Published As

Publication number Publication date
JP2014105678A (ja) 2014-06-09

Similar Documents

Publication Publication Date Title
EP2187026B1 (en) Controller of internal combustion engine
JP4241864B2 (ja) 車両駆動ユニットの制御装置
CN111396210B (zh) 天然气发动机的控制方法、装置、存储介质及处理器
US9581094B2 (en) Control device for internal combustion engine
US20160090929A1 (en) Controlling device for internal combustion engine
EP3097294B1 (en) Control device forn an internal combustion engine
JP5273183B2 (ja) 内燃機関の制御装置
JP2013228859A (ja) プラント制御装置
US20160123250A1 (en) Device for controlling internal combustion engine
EP2734721B1 (en) Control device for internal combustion engine
CN112761803A (zh) 燃气喷射瞬态补偿方法、装置、车辆及存储介质
CN102777276B (zh) 催化剂起燃期间基于来自后催化剂氧传感器的输出控制燃料输送的系统和方法
JP2010190196A (ja) 車両駆動ユニットの制御装置
JP5776671B2 (ja) 内燃機関の制御装置
EP3147488B1 (en) Internal-combustion-engine control device
JP2009210426A (ja) エンジン制御パラメータの適合方法および適合装置
JP2012013637A (ja) エンジン制御パラメータの適合方法及び適合装置
JP5817578B2 (ja) 内燃機関の制御装置
JP5751344B2 (ja) 内燃機関の制御装置
JP5853752B2 (ja) 内燃機関の制御装置
JP2009046988A (ja) 内燃機関の制御装置
JP4748044B2 (ja) 内燃機関の点火時期制御装置
JP5737135B2 (ja) 内燃機関の制御装置
JP5326998B2 (ja) 内燃機関の制御装置
JP2009162199A (ja) 内燃機関の制御装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20141028

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150528

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20150609

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150622

R151 Written notification of patent or utility model registration

Ref document number: 5776671

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

LAPS Cancellation because of no payment of annual fees