(57)【特許請求の範囲】
【請求項１】
内燃機関における燃料の噴射量を制御する制御装置であって、
第１の演算部（１１１）と、第２の演算部（１１２）と、前記第２の演算部がアクセスする格納部（１１４）とを備え、
前記第１の演算部は、
前記燃料の目標噴射量を算出する目標噴射量算出手段（１１１１）と、
前記第２の演算部により算出される前記噴射量の補正値を取得し、当該取得した前記補正値により前記目標噴射量を補正した後の指令噴射量に基づいて、前記噴射量を制御する噴射量制御手段（１１１２）と、を有し、
前記格納部は、前記補正値を格納し、
前記第２の演算部は、前記補正値を算出し、前記格納部に格納された前記補正値を更新する補正値更新手段（１１２１）を有し、
前記補正値更新手段は、少なくとも前記第１の演算部が前記補正値を取得するときには、前記補正値の更新を中止する、ことを特徴とする制御装置。
【請求項２】
前記内燃機関は複数の気筒を有しており、
前記格納部は、前記補正値の更新を許可するか否かを示す許可フラグを、前記複数の気筒ごとに前記補正値と対応させて格納し、
前記補正値更新手段は、前記複数の気筒の内、前記燃料を噴射する前記気筒が変更された場合に、その変更に対応させて前記許可フラグを、前記補正値の更新を許可しない不許可状態に変更することで、前記補正値の更新を中止する、請求項１記載の制御装置。
【請求項３】
前記噴射量制御手段は、前記複数の気筒の内、前記燃料を噴射する前記気筒を特定する噴射気筒情報を出力し、
前記補正値更新手段は、前記噴射気筒情報の出力に応じて前記燃料を噴射する前記気筒が変更されたことを認識した場合に、少なくとも前記燃料を噴射する前記気筒に対応付けられた前記許可フラグを、前記不許可状態に変更する、請求項２記載の制御装置。
【請求項４】
前記補正値更新手段は、前記燃料を噴射する前記気筒、及び前記燃料を噴射する前記気筒に続いて前記燃料を噴射する少なくとも一つの前記気筒にそれぞれ対応付けられた前記許可フラグを、前記不許可状態に変更する、請求項３記載の制御装置。
【請求項５】
前記格納部は、前記気筒ごとに対応付けて前記許可フラグを格納する領域を、前記気筒数分のリングバッファ領域として確保し、
前記補正値更新手段は、前記噴射気筒情報の出力があった場合に、前記許可フラグを格納する前記リングバッファ領域を、それぞれの前記許可フラグを基準にして前記気筒の噴射順が一つ後になる方向にずらす、請求項３又は４に記載の制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、内燃機関における燃料の噴射量を制御する制御装置に関する。
【背景技術】
【０００２】
車両のエンジン等には燃料の噴射量を制御する制御装置が搭載されており、運転状況等に応じてエンジンに燃料を供給している。しかし、制御装置が同じ噴射量を指令しても、製造上のばらつきや、物理的な劣化などにより、噴射量には、ばらつきが発生する。噴射量の制御誤差が大きくなると、燃費の低下やエミッションの悪化につながる。このような問題に対処するため、噴射量のばらつきを補正することが行われているが、補正値の精度をより向上させるために多くの計算が必要であり、制御装置の処理能力を高めることが要求される。下記特許文献１には、処理能力を高めるために、複数の演算装置を備えた車両用制御装置が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１３−１７１５４７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
複数の演算装置が、共有メモリのデータにアクセスする場合には、同時アクセスに伴う競合を防止するために、演算装置のアクセスや更新を一時的に制限する排他制御を組み込むことが一般的に行われている。この場合、排他制御によってアクセスや更新が制限される演算装置では、処理待ちが発生してしまう。上記特許文献１の車両用制御装置は、排他制御による待ち時間を解消するために、データを冗長化して管理している。
【０００５】
しかしながら、演算装置の数に合わせてデータを冗長化すると、ＲＡＭ（Random Access Memory）等の記憶容量を、本来必要となる容量の倍以上確保しなければならず、コストが嵩む要因になる。
【０００６】
本発明はこのような課題に鑑みてなされたものであり、その目的は、処理能力を向上させつつ、記憶容量の増加を抑えることができる制御装置を提供することである。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明に係る制御装置は、内燃機関における燃料の噴射量を制御する制御装置であって、第１の演算部（１１１）と、第２の演算部（１１２）と、前記第２の演算部がアクセスする格納部（１１４）とを備え、前記第１の演算部は、前記燃料の目標噴射量を算出する目標噴射量算出手段（１１１１）と、前記第２の演算部により算出される前記噴射量の補正値を取得し、当該取得した前記補正値により前記目標噴射量を補正した後の指令噴射量に基づいて、前記噴射量を制御する噴射量制御手段（１１１２）と、を有し、前記格納部は、前記補正値を格納し、前記第２の演算部は、前記補正値を算出し、前記格納部に格納された前記補正値を更新する補正値更新手段（１１２１）を有する。前記補正値更新手段は、少なくとも前記第１の演算部が前記補正値を取得するときには、前記補正値の更新を中止する。
【０００８】
このような構成を採用することで、第１の演算部において、目標噴射量算出手段が、燃料の目標噴射量を算出し、噴射量制御手段が、格納部から取得した補正値を用いて目標噴射量を補正した後の指令噴射量に基づいて、燃料の噴射量を制御することができ、第２の演算部において、補正値更新手段が、燃料の噴射量の補正値を算出し、格納部に格納された補正値を更新する一方、少なくとも第１の演算部が補正値を取得するときには、補正値の更新を中止することができる。これにより、噴射量を算出して制御する処理と、噴射量の補正値を更新する処理とを、並行して実行することができるため、処理能力を向上させることができ、さらに、第１の演算部が格納部から補正値を取得するときには、第２の演算部による補正値の更新が中止されるため、データを冗長化しなくても、第１の演算部と第２の演算部との間の競合を防止することができる。
【発明の効果】
【０００９】
本発明によれば、処理能力を向上させつつ、記憶容量の増加を抑えることができる制御装置を提供することができる。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施形態に係る燃料噴射制御装置をＥＣＵに組み込んだ場合の構成を例示する図である。
【図２】ＣＰＵ１１１の動作を説明するための図である。
【図３】ＣＰＵ１１２の動作を説明するための図である。
【図４】許可フラグの状態を説明するための図である。
【図５】ＣＰＵ１１２の動作を説明するための図である。
【図６】補正値の更新状況を説明するためのタイミングチャートである。
【図７】変形例におけるリングバッファを説明するための図である。
【図８】変形例におけるリングバッファを説明するための図である。
【発明を実施するための形態】
【００１１】
以下、添付図面を参照しながら本発明の実施の形態について説明する。説明の理解を容易にするため、各図面において同一の構成要素に対しては可能な限り同一の符号を付し、重複する説明は省略する。
【００１２】
図１を参照して、本発明の実施形態に係る燃料噴射制御装置について説明する。図１は、燃料噴射制御装置を、車両に搭載されるＥＣＵ（Engine Control Unit）１のマイクロコンピュータ（以下、「マイコン」という）１１に適用した場合の概略構成図である。
【００１３】
燃料噴射制御装置であるマイコン１１は、ＣＰＵ（Central Processing Unit）１１１（第１の演算部）と、ＣＰＵ１１２（第２の演算部）と、ＣＰＵ１１１のメモリとして機能するＲＡＭ１１３と、ＣＰＵ１１２のメモリとして機能するＲＡＭ１１４（格納部）と、ＲＯＭ（Read Only Memory）１１５と、入出力回路１１６と、バス１１７と、を備える。ＲＡＭ１１３及びＲＡＭ１１４は、ＣＰＵ１１１及びＣＰＵ１１２の両方からアクセス可能である。マイコン１１は、電源回路１０を介してバッテリ２から供給される電力により動作する。
【００１４】
ＣＰＵ１１１及びＣＰＵ１１２は、例示的に、ＲＯＭ１１５に記憶されたプログラムを実行し、入出力回路１１６を介して受信する各種センサの検出値や、ＲＡＭ１１３及びＲＡＭ１１４に展開されるデータ等を処理して、エンジン（内燃機関）に噴射する燃料の噴射量等の制御値や補正値を算出し、入出力回路１１６及びドライバ回路１２を介して制御値を送出することで、インジェクタ５の燃料噴射量等を制御する。各種センサとしては、例えば、クランク角センサ３、燃料圧センサ４、及びアクセルセンサ６がある。
【００１５】
ＣＰＵ１１１は、機能構成として、目標噴射量算出部（目標噴射量算出手段）１１１１と、噴射量制御部（噴射量制御手段）１１１２とを有する。ＣＰＵ１１２は、機能構成として、補正値更新部（補正値更新手段）１１２１を有する。
【００１６】
本実施形態では、以下において、ＥＣＵを搭載する車両のエンジンが４気筒である場合について説明するが、エンジンの気筒数は、４気筒であることには限定されない。
【００１７】
ＣＰＵ１１１の目標噴射量算出部１１１１は、気筒ごとに、燃料の目標噴射量を算出する。以下に、具体的に説明する。最初に、目標噴射量算出部１１１１は、クランク角センサ３の検出値に基づいて、噴射対象の気筒を特定する。続いて、目標噴射量算出部１１１１は、アクセルセンサ６の検出値に基づいて、特定した気筒における燃料の目標噴射量を算出する。
【００１８】
ＣＰＵ１１１の噴射量制御部１１１２は、算出された目標噴射量を、噴射量の補正値で補正することで、指令噴射量を算出する。この噴射量の補正値は、後述するように、ＣＰＵ１１２で算出され、図１に示すように、気筒ごとに判別可能な状態でＲＡＭ１１４に格納される。
【００１９】
噴射量制御部１１１２は、ＲＡＭ１１４に格納されている補正値を取得する。
【００２０】
噴射量制御部１１１２は、算出した指令噴射量を、インジェクタ５に送出する。これにより、インジェクタ５が指令噴射量に応じた燃料を噴射することになる。指令噴射量は、例えば、目標噴射量と補正値とを乗算することで算出する。
【００２１】
噴射量制御部１１１２は、指令噴射量をインジェクタ５に送出するときに、ＣＰＵ１１２に対して、噴射イベント情報（噴射気筒情報）を通知する。この噴射イベント情報には、気筒識別番号が含まれる。ＣＰＵ１１２は、噴射イベント情報を受信することで、噴射対象の気筒が変更されたことを認識することができる。
【００２２】
ＣＰＵ１１２の補正値更新部１１２１は、気筒ごとに、噴射量の補正値を算出し、ＲＡＭ１１４に格納されている補正値を更新する。噴射量の補正値は、例えば、前回の指令噴射量を噴射した時の燃料圧センサの検出値（圧力値）を、前回の指令噴射量に対応する理想燃料圧力値で除算することで算出する。
【００２３】
補正値更新部１１２１は、ＲＡＭ１１４の補正値を更新する際に、許可フラグの内容に応じて更新するか否かを決定する。図１に示すように、ＲＡＭ１１４には、気筒ごとの補正値に対応付けて許可フラグが格納される。この許可フラグには、補正値の更新を許可するか否かを示す情報（例えば、ＯＮ／ＯＦＦ）が格納される。
【００２４】
例示的に、気筒１の補正値を算出した場合について説明する。この場合、補正値更新部１１２１は、ＲＡＭ１１４の気筒１の補正値に対応する許可フラグが“ＯＮ”であるときに、ＲＡＭ１１４の気筒１の補正値を、算出した補正値で更新する。一方、補正値更新部１１２１は、ＲＡＭ１１４の気筒１の補正値に対応する許可フラグが“ＯＦＦ”であるときには、ＲＡＭ１１４の気筒１の補正値を更新しない。
【００２５】
補正値更新部１１２１は、ＣＰＵ１１１から、噴射イベント情報を受信した場合に、その噴射イベント情報に含まれる気筒識別番号に基づいて、噴射対象の気筒を特定し、ＲＡＭ１１４の噴射対象気筒番号を変更する。補正値更新部１１２１は、特定した気筒と、その次に噴射対象となる気筒とにそれぞれ対応するＲＡＭ１１４の許可フラグを、それぞれ“ＯＦＦ”にする。
【００２６】
なお、本実施形態では、許可フラグを“ＯＦＦ”にする対象を、特定した気筒に加え、その特定した気筒に続いて噴射する一つの気筒にする場合について説明するが、これに限定されない。特定した気筒に加え、その特定した気筒に続いて噴射する複数の気筒を対象としてもよい。対象とする複数の気筒数は、全体の気筒数や、ＣＰＵの処理能力等に応じて、任意に設定できる。
【００２７】
次に、図２を参照して、ＣＰＵ１１１が噴出量制御処理を実行する際の動作について説明する。
【００２８】
最初に、目標噴射量算出部１１１１は、クランク角センサ３の検出値に基づいて、噴射対象の気筒を特定する（ステップＳ１０１）。
【００２９】
続いて、目標噴射量算出部１１１１は、アクセル開度をアクセルセンサ６から取得する（ステップＳ１０２）。
【００３０】
続いて、目標噴射量算出部１１１１は、上記ステップＳ１０２で取得したアクセル開度に基づいて、上記ステップＳ１０１で特定した気筒における燃料の目標噴射量を算出する（ステップＳ１０３）。
【００３１】
続いて、噴射量制御部１１１２は、ＲＡＭ１１４から噴射量の補正値を取得する（ステップＳ１０４）。
【００３２】
続いて、噴射量制御部１１１２は、上記ステップＳ１０３で算出した目標噴射量を、上記ステップＳ１０４で取得した補正値を用いて補正することで、指令噴射量を算出する（ステップＳ１０５）。
【００３３】
続いて、噴射量制御部１１１２は、上記ステップＳ１０５で算出した指令噴射量をインジェクタ５に送出する（ステップＳ１０６）。
【００３４】
続いて、噴射量制御部１１１２は、ＣＰＵ１１２に対して、噴射イベント情報を通知する（ステップＳ１０７）。
【００３５】
次に、図３を参照して、噴射イベント情報を受信したときのＣＰＵ１１２の動作について説明する。
【００３６】
最初に、補正値更新部１１２１は、ＣＰＵ１１１から、噴射イベント情報を受信すると（ステップＳ２０１）、その噴射イベント情報に含まれる気筒識別番号に基づいて、噴射対象の気筒を特定する（ステップＳ２０２）。
【００３７】
続いて、補正値更新部１１２１は、上記ステップＳ２０２で特定した気筒と、その次に噴射対象となる気筒とにそれぞれ対応するＲＡＭ１１４の許可フラグを、それぞれ“ＯＦＦ”にする（ステップＳ２０３）。
【００３８】
次に、図４を参照して、噴射対象の気筒に応じて設定される各気筒の許可フラグの状態について説明する。ここで、噴射するときには、気筒識別番号の昇順に噴射対象となり、一番大きい“４”の次は“１”が噴射対象となる。以降、これを繰り返しながら噴射することとする。
【００３９】
図４に示すように、噴射対象気筒の気筒識別番号が“１”である場合には、“気筒１”及び“気筒２”の許可フラグが“ＯＦＦ”となり、“気筒３”及び“気筒４”の許可フラグが“ＯＮ”となる。これは、“気筒１”が噴射しているときには、“気筒１”と、その次に噴射する“気筒２”とが、補正値を更新できない状態になることを表している。
【００４０】
同様に、噴射対象気筒の気筒識別番号が“２”である場合には、“気筒１”及び“気筒４”の許可フラグが“ＯＮ”となり、“気筒２”及び“気筒３”の許可フラグが“ＯＦＦ”となる。これは、“気筒２”が噴射しているときには、“気筒２”と、その次に噴射する“気筒３”とが、補正値を更新できない状態になることを表している。
【００４１】
また、噴射対象気筒の気筒識別番号が“３”である場合には、“気筒１”及び“気筒２”の許可フラグが“ＯＮ”となり、“気筒３”及び“気筒４”の許可フラグが“ＯＦＦ”となる。これは、“気筒３”が噴射しているときには、“気筒３”と、その次に噴射する“気筒４”とが、補正値を更新できない状態になることを表している。
【００４２】
また、噴射対象気筒の気筒識別番号が“４”である場合には、“気筒１”及び“気筒４”の許可フラグが“ＯＦＦ”となり、“気筒２”及び“気筒３”の許可フラグが“ＯＮ”となる。これは、“気筒４”が噴射しているときには、“気筒４”と、その次に噴射する“気筒１”とが、補正値を更新できない状態になることを表している。
【００４３】
次に、図５を参照して、噴射量の補正値を算出して更新するときのＣＰＵ１１２の動作について説明する。ここで、ＣＰＵ１１２は、ＣＰＵ１１１の噴出量制御処理と並行して、以下の補正値更新処理を行う。補正値更新処理では、“気筒１”から“気筒４”までを、順次、処理対象にする手順を繰り返し行うこととする。
【００４４】
最初に、補正値更新部１１２１は、処理対象気筒の圧力値を燃料圧センサ４から取得する（ステップＳ３０１）。
【００４５】
続いて、補正値更新部１１２１は、上記ステップＳ３０１で取得した圧力値を用いて、処理対象気筒の噴射量の補正値を算出する（ステップＳ３０２）。
【００４６】
続いて、補正値更新部１１２１は、処理対象気筒に対応する許可フラグが“ＯＮ”であるか否かを判定する（ステップＳ３０３）。この判定結果がＮＯである場合には、処理対象気筒の今回の補正値更新処理を終了する。
【００４７】
一方、上記ステップＳ３０３の判定結果がＹＥＳである場合には、処理対象気筒に対応するＲＡＭ１１４の補正値を、上記ステップＳ３０２で算出した補正値で更新する（ステップＳ３０４）。そして、処理対象気筒の今回の補正値更新処理を終了する。なお、この後は、引き続き、次の気筒の上記補正値更新処理を開始することになる。
【００４８】
次に、図６を参照して、補正値の更新が許可／不許可されるタイミングについて説明する。
【００４９】
図６（１）は、噴射対象の気筒を示す波形である。図６（２）は、補正値の算出対象となる気筒を示す波形である。図６（３）は、気筒１の許可フラグの状態を示す波形であり、図６（４）は、気筒１の補正値の状態を示す波形である。図６（５）は、気筒２の許可フラグの状態を示す波形であり、図６（６）は、気筒２の補正値の状態を示す波形である。図６（７）は、気筒３の許可フラグの状態を示す波形であり、図６（８）は、気筒３の補正値の状態を示す波形である。図６（９）は、気筒４の許可フラグの状態を示す波形であり、図６（１０）は、気筒４の補正値の状態を示す波形である。
【００５０】
時間ｔ１において、補正値の算出対象気筒（２）である“気筒１”の補正値が算出されたときには、気筒１の許可フラグ（３）が“ＯＦＦ”であるため、気筒１の補正値（４）は更新されない。
【００５１】
時間ｔ４において、補正値の算出対象気筒（２）である“気筒２”の補正値が算出されたときには、気筒２の許可フラグ（３）が“ＯＮ”であるため、気筒２の補正値（６）は、算出された補正値で更新される。
【００５２】
時間ｔ６において、補正値の算出対象気筒（２）である“気筒３”の補正値が算出されたときには、気筒３の許可フラグ（７）が“ＯＮ”であるため、気筒３の補正値（８）は、算出された補正値で更新される。
【００５３】
上述したように、実施形態における燃料噴射制御装置によれば、ＣＰＵ１１１において、目標噴射量算出部１１１１が、燃料の目標噴射量を算出し、噴射量制御部１１１２が、ＲＡＭ１１４から取得した補正値を用いて目標噴射量を補正した後の指令噴射量に基づいて、燃料の噴射量を制御することができ、ＣＰＵ１１２において、補正値更新部１１２１が、噴射量の補正値を算出し、ＲＡＭ１１４に格納された補正値を更新する一方、ＣＰＵ１１１が補正値を取得するときには、補正値更新部１１２１による補正値の更新を中止させることができる。
【００５４】
これにより、噴射量制御処理と、補正値更新処理とを、並行して実行することができるため、処理能力を向上させることができる。また、ＣＰＵ１１１がＲＡＭ１１４に格納された補正値を取得するときには、ＣＰＵ１１２による補正値の更新が中止されるため、データを冗長化しなくても、ＣＰＵ１１１とＣＰＵ１１２との間の競合を防止することができる。
【００５５】
それゆえ、実施形態に係る燃料噴射制御装置によれば、処理能力を向上させつつ、記憶容量の増加を抑えることができる。
【００５６】
なお、上述した実施の形態は、単なる例示に過ぎず、実施の形態に明示していない種々の変形や技術の適用を排除するものではない。すなわち、本発明は、その趣旨を逸脱しない範囲で様々な形態に変形して実施することができる。例えば、上述した実施の形態が備える各要素は、技術的に可能な限りにおいて組み合わせることができ、これらを組み合わせたものも本発明の特徴を含む限り本発明の範囲に包含される。
【００５７】
また、上述した実施形態では、許可フラグを、図１に示すように、気筒ごとの補正値に対応付けて格納しているが、許可フラグの格納方法は、これに限定されない。例えば、図７及び図８に示すように、許可フラグを気筒数分のリングバッファ領域に格納することとしてもよい。
【００５８】
図７は、噴射対象気筒が“１”であるときに、各気筒“１”、“２”、“３”、“４”に対応するリングバッファ領域に、許可フラグの値としてそれぞれ“ＯＦＦ”、“ＯＦＦ”、“ＯＮ”、“ＯＮ”が格納されている状態を示すものである。図８は、噴射対象気筒が“２”であるときに、各気筒“１”、“２”、“３”、“４”に対応するリングバッファ領域に、許可フラグの値としてそれぞれ“ＯＮ”、“ＯＦＦ”、“ＯＦＦ”、“ＯＮ”が格納されている状態を示すものである。
【００５９】
図８は、図７のリングバッファ領域の内容を、紙面上、時計回り方向に一つ（コマ）ずらしたものである。このように、許可フラグをリングバッファ領域に格納することで、許可フラグを格納するリングバッファ領域をずらすことで、気筒と許可フラグとの対応関係を変更することが可能となる。
【００６０】
したがって、この場合、補正値更新部１１２１は、ＣＰＵ１１１から噴射イベント情報を受信したときに、許可フラグを格納するリングバッファ領域を、時計回り方向に一つずらすこととで、気筒と許可フラグとの対応関係を、図４に示す対応関係と同様に管理することができる。
【００６１】
また、上述した実施形態では、ＣＰＵ１１２が、噴射イベント情報を受信したときに、噴射対象気筒とその次に噴射対象となる気筒とにそれぞれ対応する許可フラグを“ＯＦＦ”にしているが、許可フラグを“ＯＦＦ”にするタイミングは、これに限定されない。少なくともＣＰＵ１１１が、ＲＡＭ１１４から補正値を取得するときに、許可フラグが“ＯＦＦ”になっていればよい。
【００６２】
例えば、ＣＰＵ１１１が、ＲＡＭ１１４から補正値を取得するときに、その取得に先だって、気筒識別番号（噴射気筒情報）をＣＰＵ１１２に送信し、ＣＰＵ１１２が、その気筒識別番号に基づいて特定される気筒に対応する許可フラグを“ＯＦＦ”にしてから、ＣＰＵ１１１が補正値を取得することとしてもよい。これにより、少なくともＣＰＵ１１１が補正値を取得するときには、補正値の更新を中止させることが可能となる。
【符号の説明】
【００６３】
１：ＥＣＵ
３：クランク角センサ
４：燃料圧センサ
５：インジェクタ
６：アクセルセンサ
１１：マイクロコンピュータ
１１１、１１２：ＣＰＵ
１１３、１１４：ＲＡＭ
１１１１：目標噴射量算出部
１１１２：噴射量制御部
１１２１：補正値更新部
【図１】
0006281463.tif 000002
【図２】
0006281463.tif 000003
【図３】
0006281463.tif 000004
【図４】
0006281463.tif 000005
【図５】
0006281463.tif 000006
【図６】
0006281463.tif 000007
【図７】
0006281463.tif 000008
【図８】
0006281463.tif 000009