(57)【要約】【課題】内燃機関の燃料噴射制御において、時間同期タスクと回転角同期タスクとの間の整合性を維持しつつ、メモリ消費や処理負荷を抑制することができる技術を提供する。【解決手段】本発明に係る内燃機関制御装置は、クランク角が所定角度に達すると、燃料噴射量を更新することを禁止するフラグをセットし、フラグがセットされている間は燃料噴射量を計算する処理を実施せず、燃料噴射を完了すると前記フラグをクリアする。【選択図】図４
2018162756.tif 000002
【特許請求の範囲】
【請求項１】
内燃機関を制御する内燃機関制御装置であって、
前記内燃機関を制御する動作を実装した制御プログラムを実行する演算装置、
前記制御プログラムを格納した記憶装置、
前記演算装置が前記制御プログラムを実行する際に一時的に使用するデータを格納する揮発性メモリ、
を備え、
前記記憶装置は、前記制御プログラムとして、
前記内燃機関が燃焼室の内部に対して噴射する燃料の噴射量を所定の時間間隔ごとに計算するとともにその計算結果を前記揮発性メモリに対して格納する時間同期タスクを実装した、時間同期プログラム、
前記内燃機関が備えるクランクの回転角が所定角度に達するごとに、前記時間同期プログラムにしたがって計算した前記噴射量を前記揮発性メモリから取得し、その取得した噴射量にしたがって燃料噴射を実行する回転角同期タスクを実装した、回転角同期プログラム、
を格納しており、
前記回転角同期タスクはさらに、
前記回転角が前記所定角度に達すると、前記噴射量を前記揮発性メモリに対して格納することを禁止するフラグをセットする処理、
前記噴射量にしたがって燃料噴射が完了すると前記フラグをクリアする処理、
を実装しており、
前記演算装置は、前記時間同期プログラムを実行している間において、前記フラグがセットされている場合は、前記噴射量を計算するとともにその計算結果を前記揮発性メモリに対して格納する処理を実施しない
ことを特徴とする内燃機関制御装置。
【請求項２】
前記時間同期プログラムは、前記時間同期タスクにおいて、前記揮発性メモリが有する記憶領域のうちあらかじめ定められた所定領域に対して前記噴射量の計算結果を格納するように実装されており、
前記回転角同期プログラムは、前記回転角同期タスクにおいて、前記フラグがセットされている間に前記所定領域から前記噴射量の計算結果を読み取るように実装されている
ことを特徴とする請求項１記載の内燃機関制御装置。
【請求項３】
前記記憶装置はさらに、前記内燃機関制御装置を初期化する初期化タスクを実装した初期化プログラムを格納しており、
前記初期化プログラムは、前記初期化タスクにおいて、前記回転角が前記所定角度に達したとき前記フラグをセットするとともに、前記噴射量を所定の時間間隔ごとに計算して前記揮発性メモリに格納する処理を実装しており、
前記演算装置は、前記初期化プログラムを実行している間において、前記フラグがセットされている場合は、前記噴射量を計算するとともにその計算結果を前記揮発性メモリに対して格納する処理を実施しない
ことを特徴とする請求項１記載の内燃機関制御装置。
【請求項４】
前記内燃機関は、１回の燃焼サイクルにおいて燃料を複数回噴射することができるように構成されており、
前記時間同期タスクは、前記内燃機関の１回の燃焼サイクルにおける燃料の各回の噴射量を計算する処理を実装しており、
前記演算装置は、前記時間同期タスクにしたがって、前記各回の噴射量を前記所定の時間間隔ごとに計算するとともにその計算結果を前記揮発性メモリに対して格納し、
前記演算装置は、前記回転角同期プログラムを実行する際には、前記揮発性メモリから前記各回の噴射量を取得し、その取得した噴射量にしたがって燃料を噴射する処理を実行する
ことを特徴とする請求項１記載の内燃機関制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、内燃機関を制御する技術に関する。
【背景技術】
【０００２】
内燃機関の制御においては、燃料を多段噴射する際の各段の噴射量を定時タスクによって演算し、他方で実際の噴射はエンジンの燃焼サイクルに合わせてクランク角が所定角度に達したとき実施される。すなわち、噴射量を演算する処理は時間同期タスクによって実施し、噴射処理は回転角同期タスクによって実施している。
【０００３】
下記特許文献１は、上記のような制御手法にともなう課題を解決する手法を開示している。同文献の００１６は、『定時処理で算出されるエンジン制御のパラメータは、所定の周期で算出され、書き換えられる。一方、エンジン制御の回転同期処理で使用されるパラメータは、燃焼サイクルの所定のタイミングで参照されたパラメータである。定時処理の周期と、燃焼サイクルは、同期していないため、同じパラメータであっても値が異なる場合がある。そのため、多段噴射の切り替えによって、エンジンを好適に制御することができない場合があった。』という課題を提示している。さらに同文献の００１８は、その解決手段として、『上記目的を達成するために、本発明は、第１の段数の燃料噴射から第２の段数の燃料噴射へ切り替える要求があり、かつ、筒内噴射エンジンのすべての気筒が前記第２の段数の燃料噴射を実施するための条件を満たしている状態を示すスタンバイ状態であるか否かを判定する判定部と、前記スタンバイ状態である場合、前記第２の段数の燃料噴射に応じて、前記筒内噴射エンジンを制御する制御部と、を備えるようにしたものである。』という構成を開示している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１６−０５３３２２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１のような従来技術において、時間同期タスクは、あらかじめ時間同期タスクに対して割り当てられたＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）領域へ、噴射量の演算結果を書き込む。回転角同期タスクは、そのＲＡＭ領域から、あらかじめ回転角同期タスクに対して割り当てられたＲＡＭ領域へ、噴射量の演算結果をコピーし、そのコピーした値を用いて噴射を制御する。各タスクが自身専用の記憶領域を用いるのは、他のタスクによって値が上書されることを防ぐためである。
【０００６】
したがって従来技術においては、同じ燃料噴射量について、時間同期タスクと回転角同期タスクが２重に記憶領域を消費し、かつ記憶領域間でデータをコピーするための処理負荷がかかっていることになる。
【０００７】
本発明は、上記のような課題に鑑みてなされたものであり、内燃機関の燃料噴射制御において、時間同期タスクと回転角同期タスクとの間の整合性を維持しつつ、メモリ消費や処理負荷を抑制することができる技術を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明に係る内燃機関制御装置は、クランク角が所定角度に達すると、燃料噴射量を更新することを禁止するフラグをセットし、フラグがセットされている間は燃料噴射量を計算する処理を実施せず、燃料噴射を完了すると前記フラグをクリアする。
【発明の効果】
【０００９】
本発明に係る内燃機関制御装置によれば、内燃機関の燃料噴射制御において、噴射量を適正に制御するとともに、メモリ消費や処理負荷を抑制することができる。
【図面の簡単な説明】
【００１０】
【図１】火花点火内燃機関とその制御装置の構成図である。
【図２】エンジンコントロールユニット９の構成図である。
【図３】時間同期プログラム１０３１と回転角同期プログラム１０３２の従来の動作を説明する図である。
【図４】実施形態１における時間同期プログラム１０３１と回転角同期プログラム１０３２の動作を説明する図である。
【図５】時間同期タスクの従来の動作を説明するフローチャートである。
【図６】回転角同期タスクの従来の動作を説明するフローチャートである。
【図７】実施形態１における時間同期タスクの動作を説明するフローチャートである。
【図８】実施形態１における回転角同期タスクの動作を説明するフローチャートである。
【図９】燃料噴射処理における各信号の状態遷移を説明するタイムチャートである。
【図１０】エンジンコントロールユニット９の初期化時における各信号の状態遷移を説明するタイムチャートである。
【発明を実施するための形態】
【００１１】
＜実施の形態１＞
図１は、本発明における火花点火内燃機関とその制御装置の構成図である。以下、筒内噴射式火花点火内燃機関を用いて説明するが、本発明は、ポート噴射式火花点火内燃機関や、筒内噴射とポート噴射の両方を備えたデュアル噴射式火花点火内燃機関においても、適用することができる。
【００１２】
エンジン１は、ピストン２、吸気バルブ３、排気バルブ４を備えている。吸気は、空気流量計（ＡＦＭ）１７を通過して絞り弁１６に入り、分岐部であるコレクタ１４より、吸気管１０、吸気バルブ３を介してエンジン１の燃焼室１８に供給される。燃料は、インジェクタ５から、エンジン１の燃焼室１８に噴射供給され、点火コイル７と点火プラグ６により点火される。燃焼後の排気ガスは、排気バルブ４を介して排気管１１に排出される。排気管１１は、排気ガス浄化のための三元触媒１２を備えている。
【００１３】
エンジンコントロールユニット９（内燃機関制御装置）には、エンジン１のクランク角度センサ１５の信号、ＡＦＭ１７の空気量信号、排気ガス中の空燃比を検出する空燃比センサ１３の信号、アクセル開度センサ１９のアクセル開度等の信号が入力される。エンジンコントロールユニット９は、アクセル開度センサ１９の信号に基づき、（ａ）エンジンへの要求トルク算出、（ｂ）アイドル状態判定、などを実施する。エンジンコントロールユニット９は、エンジン１に必要な吸入空気量を算出し、それに見合った開度信号を絞り弁１６に出力する。エンジンコントロールユニット９は、インジェクタ５に対して燃料噴射信号を出力し、点火プラグ６に対して点火信号を出力する。
【００１４】
エンジン１に取り付けられたノックセンサ８は、エンジン１の異常燃焼時に発生する異音（ノッキング）を検出する。エンジンコントロールユニット９は、その検出結果に基づき点火信号をフィードバック制御する。
【００１５】
図２は、エンジンコントロールユニット９の構成図である。エンジンコントロールユニット９は、入出力インターフェース（Ｉ／Ｆ）１００、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０１、ＲＡＭ１０２、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１０３、バス１０４を備える。入出力Ｉ／Ｆ１００は、センサ類１０６とインジェクタ類１０７に接続されている。ＲＡＭ１０２は、ＣＰＵ１０１が一時的に用いる情報を記憶する揮発性メモリである。ＲＯＭ１０３は、内燃機関を制御するための制御プログラムとして、後述する時間同期プログラム１０３１、回転角同期プログラム１０３２、初期化プログラム１０３３を格納している。ＣＰＵ１０１は、これらプログラムを実行する。バス１０４は、各デバイスを相互接続する。
【００１６】
ＣＰＵ１０１は、入出力Ｉ／Ｆ１００を通じてセンサ類１０６から各部の検出結果を入力として取り込み、制御プログラムを実行することにより各制御を実施する。演算結果やセンサ類１０６からの入力は、ＲＡＭ１０２に一時保管される。ＣＰＵ１０１は、ＲＡＭ１０２が格納しているデータ（例えば後述する各段の燃料噴射量）を用いて、入出力Ｉ／Ｆ１００を通じてインジェクタ類１０７を制御する。以下では記載の便宜上、各制御プログラムを動作主体として説明する場合があるが、実際にこれら制御プログラムを実行するのはＣＰＵ１０１であることを付言しておく。
【００１７】
図３は、時間同期プログラム１０３１と回転角同期プログラム１０３２の従来の動作を説明する図である。以下では時間同期プログラム１０３１が実装している処理を時間同期タスクと呼び、回転角同期プログラム１０３２が実装している処理を回転角同期タスクと呼ぶ。以下図３にしたがって、従来の燃料噴射制御における課題を説明する。
【００１８】
時間同期タスクは、あらかじめ設定された周期ごとに、燃料噴射量を演算する。図３に示す例においては、４段の噴射量Ａ〜Ｄを周期毎に計算し、その結果をＲＡＭ１０２のうちあらかじめ時間同期タスクに対して割り当てられた記憶領域に格納する。各回の演算結果を区別するため、Ａ〜Ｄに数字の連番を付した。噴射量Ａ〜Ｄの合計は、１回の燃焼サイクルにおいて供給すべき燃料量合計と合致するように計算される。燃料噴射量を時間同期タスクによって更新するのは、適正な噴射量が時々刻々変化するので、常に適正な噴射量の値を保持しておく必要があるからである。
【００１９】
回転角同期タスクは、クランク回転角が所定角度に達した時点で、燃料噴射処理を開始する。回転角同期タスクが噴射処理を実施している間に時間同期タスクが燃料噴射量を更新してしまうと、噴射開始時点において想定している噴射量とは異なる値が上書され、燃料噴射を正しく実施することができない。そこで回転角同期タスクは、燃料噴射を開始する時点（クランク角が所定角度に達した時点）において、噴射量の値を、あらかじめ回転角同期タスクに対して割り当てられているＲＡＭ１０２上の記憶領域へコピーして使用する。これにより、燃料噴射を実施している間は各段の正しい噴射量を参照することができる。
【００２０】
図３に示す従来の噴射量制御においては、噴射量の整合性を維持するために同じ噴射量の値を時間同期タスクと回転角同期タスクがそれぞれ重複して保持するので、記憶領域を余分に消費することに加えて、噴射量をコピーするための演算負荷が必要になる。さらに回転角同期タスクが燃料噴射を実施している間も時間同期タスクが噴射量を更新し続けるので、その演算負荷は不要な処理であることになる。
【００２１】
図４は、本実施形態１における時間同期プログラム１０３１と回転角同期プログラム１０３２の動作を説明する図である。回転角同期タスクは、燃料噴射処理を開始する時点（クランク角が所定角度に達した時点）において、燃料噴射量を更新することを禁止する旨を指示するフラグを、ＲＡＭ１０２上の適当な領域に格納する。回転角同期タスクは、燃料噴射が完了するとそのフラグをクリアする（例えばフラグを格納している記憶領域のデータを削除する、クリアされた旨を表す値を格納する、など）。
【００２２】
時間同期タスクは、従来と同様に所定周期ごとに燃料噴射量を更新する処理を実装している。ただし回転角同期タスクにより上記フラグがセットされている間は、燃料噴射量を更新・格納する処理を実施しない（例えばスキップする）。これにより、回転角同期タスクが燃料噴射を実施している間は、燃料噴射量の値が更新されることなく同じ値を維持することになる。したがって、燃料噴射中に噴射量が上書更新されるおそれはないので、回転角同期タスクは、時間同期タスクが演算した燃料噴射量の値をコピーする必要はない。すなわち回転角同期タスクは、時間同期タスクが燃料噴射量を格納した記憶領域からその値を直接読み取って用いることができる。
【００２３】
図５は、時間同期タスクの従来の動作を説明するフローチャートである。時間同期タスクは、所定周期ごとに本フローチャートを実施する。ステップＳ１１において時間同期タスクは、１燃焼サイクル内における多段燃料噴射の段数を算出する。ステップＳ１２において時間同期タスクは、算出した段ごとに燃料噴射量を算出する。
【００２４】
図６は、回転角同期タスクの従来の動作を説明するフローチャートである。回転角同期タスクは、クランク角が所定角度に達するごとに本フローチャートを実施する。ステップＳ２１において回転角同期タスクは、噴射段数と燃料噴射量を記述したデータを、あらかじめ回転角同期タスクに対して割り当てられたＲＡＭ１０２上の記憶領域にコピーする。ステップＳ２２において回転角同期タスクは、次の噴射タイミングにおける燃料噴射量をセットする。ステップＳ２３において回転角同期タスクは、次の噴射タイミングに到達したか否かを判定する。各段の噴射タイミングもクランク角を基準として判定することができる（図８においても同様）。次の噴射タイミングに到達した場合はステップＳ２４において燃料を噴射し、到達していなければ本ステップを再実施する。ステップＳ２５において回転角同期タスクは、エンジン１の１燃焼サイクルにおける全段数を噴射し終えたか否かを判定する。全段数を噴射していない場合はステップＳ２２に戻り、噴射し終えた場合は本フローチャートを終了する。
【００２５】
図７は、本実施形態１における時間同期タスクの動作を説明するフローチャートである。時間同期タスクは、所定周期ごとに本フローチャートを実施する。ステップＳ３１において時間同期タスクは、図４で説明した更新禁止フラグがクリアされているか否かを判定する。クリアされている場合はステップＳ３２へ進み、セットされている場合はステップＳ３２以降を実施しない（例えばフラグがクリアされるまで待機する、本フローチャートをいったん終了する、など）。ステップＳ３２以降は図５のステップＳ１１以降と同様である。
【００２６】
図８は、本実施形態１における回転角同期タスクの動作を説明するフローチャートである。回転角同期タスクは、クランク角が所定角度に達するごとに本フローチャートを実施する。ステップＳ４１において回転角同期タスクは、次の噴射タイミングに到達したか否かを判定する。到達していない場合は本ステップにおいて待機し、到達した場合はステップＳ４２において１段目の噴射であるか否かを判定する。１段目の噴射である場合はステップＳ４３において燃料噴射値の更新を禁止するフラグをセットする。ステップＳ４４において回転角同期タスクは、時間同期タスクがステップＳ３３において算出した燃料噴射量を参照する。ステップＳ４５において回転角同期タスクは、燃料噴射処理を実施する。ステップＳ４６において回転角同期タスクは、エンジン１の１燃焼サイクルにおける全段数を噴射し終えたか否かを判定する。全段数を噴射していない場合はステップＳ４１に戻り、噴射し終えた場合はステップＳ４７において更新禁止フラグをクリアする。
【００２７】
図９は、燃料噴射処理における各信号の状態遷移を説明するタイムチャートである。横軸は時間を表す。図９（Ａ）（Ｂ）（Ｃ）は、回転角同期タスクが使用するフラグと信号の値を示す。図９（Ｄ）（Ｅ）は、時間同期タスクが使用するフラグと信号の値を示す。図９（Ａ）の縦軸は、クランク角センサが検出する回転角が所定角度に達したか否かを示す値である。図９（Ｂ）の縦軸は、更新禁止フラグの値である。図９（Ｃ）の縦軸は、燃料噴射信号の値を示している。図９（Ｄ）の縦軸は、時間同期タスクを起動するタイミングを表す周期信号の値である。図９（Ｅ）は、燃料噴射量を計算する処理を実施している期間を示す。
【００２８】
回転角同期タスクは、クランクの回転角が所定角度に到達したとき燃料噴射を開始し、１段目の噴射時に更新禁止フラグの値を０から１に変更する。回転角同期タスクは、多段噴射の全段数を噴射すると、更新禁止フラグの値を１から０に変更する。時間同期タスクは、更新禁止フラグの値が１である間は、燃料噴射量を計算する処理を実施しない。これにより、燃料噴射量を計算する処理の演算負荷を軽減することができる。
【００２９】
＜実施の形態１：まとめ＞
本実施形態１に係るエンジンコントロールユニット９は、回転角同期タスクが燃料噴射を開始するとき更新禁止フラグをセットし、同フラグがセットされている間は時間同期タスクが燃料噴射量を計算・格納する処理を実施しない。これにより、燃料噴射量を計算する処理の演算負荷を抑制できる。
【００３０】
本実施形態１に係るエンジンコントロールユニット９は、時間同期タスクがＲＡＭ１０２上の所定の記憶領域に格納した燃料噴射量を、回転角同期タスクにおいてコピーすることなく直接参照する。これにより、従来のように燃料噴射量をコピーする処理を削減できるので、メモリ消費量やコピーにともなう演算負荷を抑制できる。
【００３１】
＜実施の形態２＞
エンジンコントロールユニット９が起動するとき、ＣＰＵ１０１は初期化プログラム１０３３を実行することによりエンジンコントロールユニット９を初期化する。このときスタータモータがエンジン１を回転させることにより、クランク角も変化する。初期化タスクにおいてクランク角の変化を取得することにより、時間同期タスクと同様に燃料噴射量を計算することができる。本発明の実施形態２では、初期化タスクが燃料噴射量を計算する場合における動作例を説明する。その他構成は実施形態１と同様である。
【００３２】
図１０は、エンジンコントロールユニット９の初期化時における各信号の状態遷移を説明するタイムチャートである。初期化タスクは時間同期タスクと同様に、所定周期ごとに燃料噴射量を計算する。ただし時間同期タスクとは異なり、自ら更新禁止フラグをセットおよびクリアする。また燃料噴射処理を自ら実施する。これにより、初期化処理においても運転開始後と同様に燃料を噴射することができる。
【００３３】
初期化タスクが完了した後、時間同期タスクが燃料噴射量を計算する前に燃料噴射タイミングに達した（クランク角が所定角度に達した）場合であっても、初期化タスクがその過程において燃料噴射量を既に計算しているので、回転角同期タスクは正しい燃料噴射量を用いることができる。
【００３４】
初期化タスクが図１０のように燃料噴射量を計算しない場合、エンジン１の回転状態によっては、時間同期タスクを実行するタイミングに達する前に燃料噴射タイミングに達する（クランク角が所定角度に達する）可能性がある。そうすると、回転角同期タスクが用いるべき燃料噴射量が未だ計算されていないので、回転角同期タスクは例えば既定の燃料噴射量を用いるなどの例外処理をしなければならない。本実施形態２によれば、そのような場合であっても適切な燃料噴射量を用いることができる。
【００３５】
＜本発明の変形例について＞
本発明は上記実施形態に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施形態の構成の一部を他の実施形態の構成に置き換える事が可能であり、また、ある実施形態の構成に他の実施形態の構成を加えることも可能である。また、各実施形態の構成の一部について他の構成の追加・削除・置換をすることができる。
【符号の説明】
【００３６】
１：エンジン
２：ピストン
３：吸気バルブ
４：排気バルブ
５：インジェクタ
６：点火プラグ
７：点火コイル
８：ノックセンサ
９：エンジンコントロールユニット
１０：吸気管
１１：排気管
１２：三元触媒
１３：空燃比センサ
１４：コレクタ
１５：クランク角度センサ
１６：絞り弁
１７：空気流量計（ＡＦＭ）
１８：燃焼室
１９：アクセル開度センサ
１００：入出力インターフェース（Ｉ／Ｆ）
１０１：ＣＰＵ
１０２：ＲＡＭ
１０３：ＲＯＭ
１０４：バス
１０６：センサ類
１０７：インジェクタ類
【図１】
2018162756.tif 000003
【図２】
2018162756.tif 000004
【図３】
2018162756.tif 000005
【図４】
2018162756.tif 000006
【図５】
2018162756.tif 000007
【図６】
2018162756.tif 000008
【図７】
2018162756.tif 000009
【図８】
2018162756.tif 000010
【図９】
2018162756.tif 000011
【図１０】
2018162756.tif 000012