以下、図面を参照しつつ、本発明の実施の形態について説明する。以下の説明では、同一の部品には同一の符号が付されている。それらの名称および機能も同じである。したがってそれらについての詳細な説明は繰返さない。
図1は、本実施の形態におけるエンジン1の概略構成を示す図である。本実施の形態において、エンジン1は、たとえば、コモンレール式のディーゼルエンジンを一例として説明する。しかしながら、エンジン1としては、その他の形式のエンジン(たとえば、ガソリンエンジン等)であってもよい。
エンジン1は、エンジン本体10と、エアクリーナ20と、インタークーラ26と、吸気マニホールド28と、過給機30と、排気マニホールド50と、排気処理装置56と、排気再循環装置(以下、EGR(Exhaust Gas Recirculation)装置と記載する)60と、制御装置200と、クランク角度センサ202と、エアフローメータ208と、燃料ポンプ210と、燃料フィルタ212と、燃料タンク214とを備える。
エンジン本体10は、複数の気筒12と、コモンレール14と、複数のインジェクタ16とを含む。本実施の形態においては、エンジン1は、直列4気筒エンジンを一例として説明するが、その他の気筒レイアウト(たとえば、V型あるいは水平型)のエンジンであってもよい。
複数のインジェクタ16は、複数の気筒12の各々に設けられ、その各々がコモンレール14に接続されている燃料噴射装置である。燃料タンク214に貯留された燃料は、燃料フィルタ212を経由して燃料ポンプ210によって所定圧まで加圧されてコモンレール14へ供給される。コモンレール14に供給された燃料は複数のインジェクタ16の各々から所定のタイミングで噴射される。複数のインジェクタ16は、制御装置200からの制御信号IJ1〜IJ4に基づいて動作する。
エアクリーナ20は、エンジン1の外部から吸入される空気から異物を除去する。エアクリーナ20には、第1吸気管22の一方端が接続される。
第1吸気管22の他方端には、過給機30のコンプレッサ32の吸気流入口に接続される。コンプレッサ32の吸気流出口には、第2吸気管24の一方端が接続される。コンプレッサ32は、第1吸気管22から流通する空気を過給して第2吸気管24に供給する。コンプレッサ32の詳細な動作については後述する。
第2吸気管24の他方端には、インタークーラ26の一方端が接続される。インタークーラ26は、第2吸気管24を流通する空気を冷却する空冷式あるいは水冷式の熱交換器である。
インタークーラ26の他方端には、第3吸気管27の一方端が接続される。第3吸気管27の他方端には、吸気マニホールド28が接続される。吸気マニホールド28は、エンジン本体10の複数の気筒12の各々の吸気ポートに連結される。なお、吸気マニホールド28の上流には、たとえば、排気マニホールド50からEGR装置60を経由して還流する排気(以下、吸気通路に還流される排気をEGRガスとも記載する)を吸気マニホールド28に流通させるための吸気絞り弁が設けられていてもよい。
排気マニホールド50は、エンジン本体10の複数の気筒12の各々の排気ポートに連結される。排気マニホールド50には、第1排気管52の一方端が接続される。第1排気管52の他方端は、過給機30のタービン36の排気流入口に接続される。そのため、各気筒の排気ポートから排出される排気は、排気マニホールド50に集められた後、第1排気管52を経由してタービン36に供給される。
タービン36の排気流出口には、第2排気管54の一方端が接続される。第2排気管54には、排気処理装置56の入口部が接続される。排気処理装置56は、たとえば、酸化触媒(DOC:Diesel Oxidation Catalyst)や、排気に含まれる粒子状物質(以下、PM(Particulate Matter)と記載する。)を捕集するPM除去フィルタ等を含む。
排気処理装置56の出口部には、第3排気管58の一方端が接続される。第3排気管58の他方端には、触媒などの排気から特定の成分を除去する追加の排気処理装置やマフラー等が接続される。そのため、タービン36から排出された排気は、第2排気管54、排気処理装置56、第3排気管58、各種触媒およびマフラー等を経由して車外に排出される。
第3吸気管27と排気マニホールド50とは、エンジン本体10を経由せずにEGR装置60によって接続される。EGR装置60は、EGRバルブ62と、EGRクーラ64と、EGR通路66とを含む。EGR通路66は、第3吸気管27と排気マニホールド50とを接続する。EGRバルブ62と、EGRクーラ64とは、EGR通路66の途中に設けられる。
EGRバルブ62は、制御装置200からの制御信号に応じて、EGR通路66を流通するEGRガスの流量を調整する。
EGRクーラ64は、たとえば、EGR通路66を流通するEGRガスを冷却する水冷式あるいは空冷式の熱交換器である。排気マニホールド50内の排気がEGR装置60を経由してEGRガスとして吸気側に戻されることによって気筒内の燃焼温度が低下され、NOxの生成量が低減される。
過給機30は、コンプレッサ32と、タービン36とを含む。コンプレッサ32のハウジング内にはコンプレッサホイール34が収納され、タービン36のハウジング内にはタービンホイール38が収納される。コンプレッサホイール34とタービンホイール38とは、連結軸42によって連結され、一体的に回転する。そのため、コンプレッサホイール34は、タービンホイール38に供給される排気の排気エネルギーによって回転駆動される。
エンジン1の動作は、制御装置200によって制御される。制御装置200は、各種処理を行なうCPU(Central Processing Unit)と、プログラムおよびデータを記憶するROM(Read Only Memory)およびCPUの処理結果等を記憶するRAM(Random Access Memory)等を含むメモリと、外部との情報のやり取りを行なうための入・出力ポート(いずれも図示せず)とを含む。
入力ポートには、上述したセンサ類(たとえば、クランク角度センサ202およびエアフローメータ208等)が接続される。出力ポートには、制御対象となる機器(たとえば、複数のインジェクタ16および燃料ポンプ210等)が接続される。
制御装置200は、各センサおよび機器からの信号、ならびにメモリに格納されたマップおよびプログラムに基づいて、エンジン1が所望の運転状態となるように各種機器を制御する。なお、各種制御については、ソフトウェアによる処理に限られず、専用のハードウェア(電子回路)により処理することも可能である。また、制御装置200には、時間の計測を行うためのタイマー回路(図示せず)が内蔵されている。
クランク角度センサ202は、エンジン1のクランクシャフトの回転角度(以下、クランク角度と記載する)CAを検出する。クランク角度センサ202は、検出したクランク角度CAを示す信号を制御装置200に送信する。
より具体的には、たとえば、エンジン1のクランクシャフトには、円盤形状のタイミングロータが固定される。タイミングロータには、回転中心を中心として所定の角度毎に円周方向に沿って複数の歯部が設けられる。クランク角度センサ202は、たとえば、タイミングロータの歯部に対向する位置に設けられる。クランク角度センサ202は、クランクシャフトの回転時において、タイミングロータが所定の角度だけ回転する毎に歯部とのエアギャップの変化に応じて増減する電圧信号を制御装置200に出力する。制御装置200は、電圧信号の増減によってタイミングロータが所定の角度だけ回転することを検出することができる。なお、タイミングロータの所定の位置(たとえば、所定の気筒における上死点に対応する位置)においては、隣接する歯部間の間隔が他の歯部間の間隔よりも長く設定される。制御装置200は、間隔が長く設定された歯部に対応した電圧信号の増減を検出することによってタイミングロータの回転位置が所定の位置であることを検出することができる。なお、クランク角度センサ202としては、少なくともクランク角度が検出できればよく、特に上述した構成に限定されるものではない。
エアフローメータ208は、第1吸気管22に導入される新気の流量(吸入空気量)Qinを検出する。エアフローメータ208は、検出した吸入空気量Qinを示す信号を制御装置200に送信する。
燃料タンク214は、複数のインジェクタ16に供給するための燃料を貯留する。燃料ポンプ210は、制御装置200からの制御信号に応じて動作し、燃料タンク214に貯留される燃料をコモンレール14に圧送する。燃料ポンプ210と燃料タンク214との間の燃料が流通する通路には燃料フィルタ212が設けられる。燃料フィルタ212は、流通する燃料に含まれる異物を捕集する。
以上のような構成を有するエンジン1においては、制御装置200は、エンジン1の運転中に、エンジン1のクランク角度の変化時間に基づいてエンジン回転数NEを算出する。制御装置200は、算出されたエンジンン回転数に基づいて燃料噴射量の要求値を算出し、算出された要求値を用いて燃料噴射量を最終的に決定する。制御装置200は、各気筒に対応づけられた所定のクランク角度間にこれらの処理を行なう。
以下に、各気筒に対して行なわれる燃料噴射制御の一例について図2を用いて説明する。図2は、燃料噴射制御の一例を説明するための図である。
図2の上段には、燃料噴射制御の対象となる気筒の変化が示される。図2の中段には、クランク角度CAの変化が示される。図2の下段には、クランク角度CAに対応づけられた処理の一例が示される。
本実施の形態においては、たとえば、4つの気筒に対して点火順序にしたがって「0」〜「3」の気筒番号を設定するものとする。また、制御装置200は、「0」〜「3」の気筒の各々に対してクランクシャフトが180CAだけ回転する間に、瞬時NE(後述する)の算出処理(以下、第1算出処理と記載する)と、燃料噴射量の要求値の算出処理(以下、第2算出処理と記載する)と、気筒別の燃料噴射量の算出処理(以下、第3算出処理と記載する)と、噴射指令処理とを燃料噴射制御として実行するものとする。
より具体的には、制御装置200は、180CAのクランク角度の範囲を30CAずつの複数の区間に区分し、上述の処理の各々を複数の区間のうちのいずれかに割り当てて実行する。なお、以下の説明において複数の区間の各々の始点となるクランク角度CAに対して#0、#3、#6、#9、#12および#15と称するものとする。したがって、たとえば「0」の気筒の複数の区間は、#0〜#3の区間と、#3〜#6の区間と、#6〜#9の区間と、#9〜#12の区間と、#12〜#15の区間と、#15〜「1」の気筒の#0の区間とを含む。なお、#9に対応するクランク角度は、気筒の上死点(TDC:Top Dead Center)に対応するクランク角度であるものとする。
制御装置200は、たとえば、クランク角度センサ202からクランク角度を示す信号が入力されることで燃料噴射制御の各処理を実行する。具体的には、制御装置200は、クランク角度が「0」の気筒の#0に対応するクランク角度になる場合に、直前の所定のクランク角度範囲におけるクランク角度の変化時間からエンジン回転数(以下、瞬時NEとも記載する)を算出する処理を第1算出処理として実行する。制御装置200は、算出された瞬時NEを用いて燃料噴射量の要求値を算出する処理を第2算出処理として実行する。そして、制御装置200は、クランク角度が「0」の気筒の#3に対応するクランク角度になる場合に、算出された燃料噴射量の要求値を用いて「0」の気筒に対応する燃料噴射量(以下、気筒別燃料噴射量と記載する)を算出する処理を第3算出処理として実行する。その後、制御装置200は、クランク角度が「0」の気筒の#6以降に対応するクランク角度になる場合に、算出された気筒別燃料噴射量に従った噴射指令処理を実行する。
制御装置200は、クランク角度が「1」の気筒の#0に対応するクランク角度になる場合、「1」の気筒に対して上述の燃料噴射制御の各処理を実行する。その後に、制御装置200は、クランク角度が「2」の気筒の#0に対応するクランク角度になる場合には、「2」の気筒に対して上述の燃料噴射制御の各処理を実行する。そして、制御装置200は、クランク角度が「3」の気筒の#0に対応するクランク角度になる場合には、「3」の気筒に対して上述の燃料噴射制御の各処理を実行する。
しかしながら、上述した燃料噴射制御の各処理が所定のクランク角度間で行なわれるため、エンジン回転数が高回転領域になると所定のクランク角度間の変化時間が短くなり、たとえば、上述の燃料噴射制御の各処理の他に優先度の高い割り込み処理が実行されると、上述の燃料噴射制御の各処理を行なう期間を十分に確保できない場合がある。
図3は、エンジン1の高回転時と低回転時とにおける燃料噴射制御の処理の一例を説明するための図である。図3(A)は、エンジン1の低回転時(たとえば、エンジン回転数NEが2000rpmである場合)における燃料噴射制御の処理の一例を説明するための図である。図3(B)は、エンジン1の高回転時(たとえば、エンジン回転数NEが4000rpmである場合)における燃料噴射制御の処理の一例を説明するための図である。
図3(A)の(1)に示すように、制御装置200は、エンジン1の低回転時において、クランク角度CAが「0」の気筒の#0に対応するクランク角度になる場合に、第1算出処理を実行する。そして、図3(A)の(2)に示すように、第1算出処理によって算出された瞬時NEを用いて第2算出処理を実行する。図3(A)の(3)に示すように、その後に、制御装置200は、クランク角度CAが「0」の気筒の#3に対応するクランク角度になる場合に、第2算出処理によって算出された燃料噴射量の要求値を用いて第3算出処理を実行し、気筒別燃料噴射量を算出する。エンジン1の低回転時においては、第2算出処理が完了した時点からクランク角度CAが#3に対応するクランク角度になる時点までの期間に余裕がある。
一方、図3(B)の(1)および(2)に示すように、制御装置200は、エンジン1の高回転時においても同様に、クランク角度CAが「0」の気筒の#0に対応するクランク角度になる場合に、第1算出処理と第2算出処理とを実行する。そして、図3(B)の(3)に示すように、制御装置200は、クランク角度CAが「0」の気筒の#3に対応するクランク角度になる場合に、第3算出処理を実行する。しかしながら、たとえば、エンジン回転数が2倍になる場合には、クランク角度CAが#0に対応するクランク角度から#3に対応するクランク角度まで変化する時間が半分になるため、第2算出処理が完了した時点からクランク角度CAが#3に対応するクランク角度になる時点までの期間が短くなる。
そのため、たとえば、第2算出処理中に第2算出処理よりも優先度の高い割り込み処理(たとえば、クランク角度CAを算出する処理等)が実行される場合には、第2算出処理を実行する期間を十分に確保できない場合がある。
図4は、エンジン1の高回転時と低回転時とにおける燃料噴射制御の処理中に実行される割り込み処理について説明するための図である。図4(A)は、エンジン1の低回転時(たとえば、エンジン回転数NEが2000rpmである場合)における燃料噴射制御の処理中に実行される割り込み処理について説明するための図である。図4(B)は、エンジン1の高回転時(たとえば、エンジン回転数NEが4000rpmである場合)における燃料噴射制御の処理中に実行される割り込み処理について説明するための図である。
図3(A)を用いて説明したように、エンジン1の低回転時においては、第2算出処理の完了時点からクランク角度CAが#3に対応するクランク角度になる時点までの期間に余裕がある。そのため、図4(A)に示すように、第2算出処理中に高優先の割り込み処理が実行された場合(すなわち、第2算出処理が中断され、高優先の割り込み処理が完了した後に第2算出処理が再開された場合)でも第2算出処理の実施期間が十分に確保される。
一方、図3(B)を用いて説明したように、エンジン1の高回転時においては、第2算出処理の完了時点からクランク角度CAが#3に対応するクランク角度になる移転までの期間に余裕がない。そのため、図4(B)に示すように、第2算出処理中に第2算出処理よりも優先度の高い割り込み処理が実行された場合に、第2算出処理の実施期間を十分に確保できない場合がある。そのため、このような高回転状態が継続すると、第2算出処理が実行できない状態が継続する可能性があり、適切な気筒別燃料噴射量を算出できない状態が継続する可能性がある。
そこで、本実施の形態においては、制御装置200は、クランク角度CAが#0に対応するクランク角度から#3に対応するクランク角度まで変化するまでの間に第1算出処理を実行し、クランク角度CAが#3に対応するクランク角度に変化するときに第3算出処理を実行し、第2算出処理をクランク角度CAに関係なく定期的に実行するものとする。
このようにすると、燃料噴射量の要求値を決定する第2算出処理についてはクランク角度に関係なく定期的に実行されるので、クランク角度CAが#0に対応するクランク角度から#3に対応するクランク角度まで変化する期間内に第2算出処理を行なう期間を確保する必要がなくなる。そのため、エンジン回転数NEが高回転領域であって、さらに他の優先度の高い割り込み処理が実行される場合でも第2算出処理を実行する期間を十分に確保することができる。
以下に、図5および図6を参照して、本実施の形態における制御装置200で実行される処理について説明する。図5および図6は、いずれも制御装置200において実行される処理の一例を示すフローチャートである。
図5および図6のフローチャートに示される処理は、所定の制御周期毎にメインルーチン(図示せず)から呼び出されて実行される。より具体的には、制御装置200は、クランク角度センサ202からクランク角度を示す信号を受信した場合に図5に示す処理を実行する。さらに、制御装置200は、タイマーにより計測される計測時間が所定時間(たとえば、数ミリ秒)に到達する毎に図6に示す処理を図5に示す処理の割り込み処理として実行する。ただし、制御装置200は、瞬時NEの算出中あるいは気筒別燃料噴射量の算出中においては、瞬時NEの算出完了後あるいは気筒別燃料噴射量の算出後に図6に示す処理を実行するものとする。また、瞬時NEの算出処理や気筒別燃料噴射量の算出処理は、図6に示す処理よりも優先して実行されるものとする。すなわち、制御装置200は、図6に示す処理の実行中においては、図6に示す処理を中断して瞬時NEの算出処理や気筒別燃料噴射量の算出処理を実行し、算出処理の完了後に中断していた図6に示す処理を再開するものとする。
図5を参照して、ステップ(以下、ステップをSと記載する)100にて、制御装置200は、クランク角度CAが#0に対応するクランク角度であるか否かを判定する。制御装置200は、たとえば、クランク角度が「0」〜「3」のいずれかの気筒の#0に対応するクランク角度であるか否かを判定する。クランク角度CAが#0に対応するクランク角度であると判定される場合(S100にてYES)、処理はS102に移される。
S102にて、制御装置200は、瞬時NEを算出する。制御装置200は、#0に対応するクランク角度を終点とする直前の予め定められたクランク角度間(たとえば、60CA間)におけるクランク角度の変化時間を算出し、算出された変化時間を用いて算出されるエンジン回転数NEを瞬時NEとして算出する。
S104にて、制御装置200は、算出された瞬時NEをメモリの所定の記憶領域に記憶させる。制御装置200は、過去の履歴と今回値とを含む複数個の瞬時NEを記憶してもよいし、あるいは、記憶された瞬時NEの前回値を瞬時NEの今回値で更新してもよい。なお、クランク角度CAが#0に対応するクランク角度でないと判定される場合(S100にてNO)、処理はS106に移される。
S106にて、制御装置200は、クランク角度CAが#3に対応するクランク角度であるか否かを判定する。制御装置200は、たとえば、クランク角度CAが「0」〜「3」のいずれかの気筒の#3に対応するクランク角度であるか否かを判定する。クランク角度CAが#3に対応するクランク角度であると判定される場合(S106にてYES)、処理はS108に移される。
S108にて、制御装置200は、燃料噴射量の要求値を取得する。制御装置200は、メモリの所定の記憶領域に記憶された燃料噴射量の要求値を読み出すことによって燃料噴射量の要求値を取得する。
S110にて、制御装置200は、気筒別燃料噴射量を算出する。制御装置200は、たとえば、クランク角度CAから燃料噴射制御の対象気筒が「0」〜「3」の気筒のうちのいずれの気筒であるかを特定し、特定された気筒に対応した補正処理を実行することによって気筒別燃料噴射量を算出する。補正処理は、燃料噴射量の要求値に対して各気筒別に実施された学習処理を反映した補正係数を乗算する処理であってもよいし、燃料噴射量の要求値に対して各気筒別に実施された学習処理を反映した補正量を加算する処理であってもよい。各気筒別に実施される学習処理としては、たとえば、微小噴射量に対するエンジン回転数NEの回転変動量に基づいて各気筒のインジェクタ16からの実燃料噴射量と燃料噴射量の指令値とのずれを補正する処理などの周知の学習処理が含まれる。
S112にて、制御装置200は、噴射指令を実行する。より具体的には、制御装置200は、エンジン1の運転状態に応じて噴射時期および噴射回数を決定し、決定された噴射時期および噴射回数に従って噴射指令を実行する。なお、噴射時期としては、少なくとも#6に対応するクランク角度から次の点火順序となる気筒の#0に対応するクランク角度までの間に単数箇所あるいは複数箇所設定される。
なお、クランク角度CAが#3に対応するクランク角度でないと判定される場合(S106にてNO)、処理は終了される。なお、本実施の形態において、瞬時NEを算出する処理が「第1処理」に相当し、気筒別燃料噴射量を算出する処理が「第3処理」に相当する。
図6を参照して、S200にて、制御装置200は、エンジン1の要求トルクを取得する。制御装置200は、たとえば、アクセル開度や車速等に基づいて要求トルクを算出することによってエンジン1の要求トルクを取得する。
S202にて、制御装置200は、瞬時NEを取得する。制御装置200は、メモリの所定の記憶領域に記憶される瞬時NEの最新値を読み出すことによって瞬時NEを取得する。
S204にて、制御装置200は、要求トルクと瞬時NEとを用いて燃料噴射量の要求値を算出する。制御装置200は、たとえば、要求トルクと瞬時NEと燃料噴射量の要求値との関係を示すマップを用いて燃料噴射量の要求値を算出する。要求トルクと瞬時NEと燃料噴射量の要求値との関係を示すマップは、たとえば、実験等により適合され、予め作成され、制御装置200のメモリに記憶される。
S206にて、制御装置200は、S204にて算出された燃料噴射量の要求値に対してなまし処理を実行する。具体的には、制御装置200は、前回の燃料噴射量から、S204にて算出された燃料噴射量の要求値への変化の大きさが変化上限値を超える場合には、変化の大きさを変化上限値に制限した値を燃料噴射量の要求値とする処理を実行する。
S208にて、制御装置200は、燃料噴射量の上限ガードを設定する。制御装置200は、たとえば、エンジン1のトルク制約や、エンジン1に連結される変速機等のトルク容量や、車速等に基づいて燃料噴射量の上限ガードを設定する。
S210にて、制御装置200は、最終的な燃料噴射量の要求値を算出する。制御装置200は、たとえば、なまし処理後の燃料噴射量の要求値と燃料噴射量の上限ガードとを比較した結果に基づいて最終的な燃料噴射量の要求値を算出する。制御装置200は、たとえば、なまし処理後の燃料噴射量の要求値が燃料噴射量の上限ガードよりも小さい場合には、なまし処理後の燃料噴射量の要求値を最終的な燃料噴射量の要求値として算出する。あるいは、制御装置200は、たとえば、なまし処理後の燃料噴射量の要求値が上限ガードよりも大きい場合には、上限ガードの値を最終的な燃料噴射量の要求値として算出する。なお、本実施の形態において図6に示す処理が「第2処理」に相当する。
以上のような構造およびフローチャートに基づく制御装置200の動作について図7および図8を参照しつつ説明する。
図7および図8は、いずれも本実施の形態における燃料噴射制御の処理の一例を説明するための図である。なお、図7の(1)および図8の(1)に示すように、たとえば、クランク角度CAが「3」の気筒の#0に対応するクランク角度になる時点において、「3」の気筒の燃料噴射制御に用いられる瞬時NEの値NE(n−1)が算出されているものとする。
図7の(2)に示すように、クランク角度CAが「0」の気筒の#0に対応するクランク角度になる場合に(S100にてYES)、瞬時NEの値NE(n)が算出される(S102)。算出された瞬時NEの値NE(n)は、制御装置200のメモリに記憶される(S104)。
図7の(a)に示すように、クランク角度CAが「0」の気筒の#0に対応するクランク角度になった時点よりも後の時間t(n)にて、図6に示す処理が実行される。この場合、要求トルクが取得され(S200)、制御装置200のメモリから瞬時NEの値NE(n)が取得される(S202)。さらに、要求トルクと瞬時NEの値NE(n)とを用いて燃料噴射量の要求値が算出され(S204)、算出された燃料噴射量の要求値に対してなまし処理が実行される(S206)。そして、燃料噴射量の上限ガードが設定されると(S208)、なまし処理された燃料噴射量の要求値と上限ガードとの比較結果に基づいて燃料噴射量の要求値Q1(n)が算出される(S210)。
図7の(3)に示すように、クランク角度CAが「0」の気筒の#3に対応するクランク角度になる時点に(S106にてYES)、制御装置200のメモリから燃料噴射量の要求値Q1(n)が取得され(S108)、取得された燃料噴射量の要求値Q1(n)に対して「0」の気筒に対応した補正処理が行なわれることによって気筒別燃料噴射量Q2(n)が算出される(S110)。そして、#6に対応するクランク角度以降において算出された気筒別燃料噴射量Q2(n)を用いた噴射指令が実行される(S112)。その後、図7の(b)に示すように、時間t(n+1)にて、再度図6に示す処理が実行され、燃料噴射量の要求値Q1(n+1)が算出される。
一方、図8の(a)に示すように、クランク角度CAが「0」の気筒の#0に対応するクランク角度になる時点よりも前に、時間t(n)になる場合に、図6に示す処理が実行される。
しかしながら、図8の(2)に示すように、図6の示す処理の実行中に、クランク角度CAが「0」の気筒の#0に対応するクランク角度になる場合(S100にてYES)、図6に示す処理が中断され、図5に示す処理が実行される。そのため、瞬時NEの値NE(n)が算出され(S102)、算出された瞬時NEの値NE(n)が制御装置200のメモリに記憶される(S104)。
その後、図6に示す処理が再開され、燃料噴射量の要求値Q1(n)が算出される(S210)。この場合、燃料噴射量の要求値Q1(n)は、瞬時NEの値NE(n−1)を用いて算出される。
そして、図8の(3)に示すように、クランク角度CAが「0」の気筒の#3に対応するクランク角度になると(S106にてYES)、算出された燃料噴射量の要求値Q1(n)が取得され(S108)、気筒別燃料噴射量が算出され(S110)、噴射指令が実行される(S112)。
なお、この処理の実行中においては、時間t(n+1)になっても図6に示す処理は直ちに実行されず、気筒別燃料噴射量Q2(n)が算出された後に実行され、燃料噴射量の要求値Q1(n+1)が算出される(S210)。この場合、燃料噴射量Q1(n+1)は、瞬時NEの値NE(n)を用いて算出される。
上述のように、燃料噴射量の要求値を算出する処理がクランク角度CAの変化に関係なく、定期的に実行されることによって、エンジン回転数NEが高回転領域であっても、燃料噴射量の要求値を算出する期間が確保される。
以上のようにして、本実施の形態に係るエンジンの制御装置によると、燃料噴射量の要求値を決定する第2処理についてはクランク角度に関係なく定期的に実行され、第3処理においては、直近に実行された第2処理において算出された燃料噴射量の要求値を用いて燃料噴射量が決定される。そのため、クランク角度CAが#0に対応するクランク角度から#3に対応するクランク角度まで変化する期間内に第2処理を行なう期間を確保する必要がなくなる。そのため、エンジン回転数NEが高回転領域であって、さらに他の優先度の高い割り込み処理が実行される場合でも第2処理を実行する期間を十分に確保することができる。したがって、エンジン回転数が高回転領域である場合でも燃料噴射量を算出する処理を行なう期間を十分に確保するエンジンの制御装置を提供することができる。
以下、変形例について説明する。
上述の実施の形態では、エンジン1が4気筒のエンジンである場合を一例としクランクシャフトが720度回転する場合(1サイクル)において、180CAの範囲が1気筒当りの燃料噴射制御の処理が行なわれるクランク角度の区間として設定されるものとして説明したが、エンジン1の気筒数として4気筒のエンジンに特に限定されるものではない。たとえば、エンジン1としては3気筒エンジンであってもよいし、6気筒エンジンであってもよい。
特に、エンジン1が6気筒エンジンである場合には、1サイクルにおいて、120CAの範囲が1気筒当りの燃料噴射制御の処理が行なわれるクランク角度の区間として設定される。この場合、4気筒のエンジンに比べて燃料噴射制御に用いられるクランク角度の範囲が小さくなる。そのため、多気筒エンジンに対して本発明を適用することによって、高回転時においても燃料噴射量を算出する処理を行なう期間を十分確保することができる。
さらに上述の実施の形態では、第3処理においては、直近に実行された第2処理において算出された燃料噴射量の要求値を用いて燃料噴射量が決定されるものとして説明したが、直近に実行された第2処理において算出された燃料噴射量の要求値が前回以前の瞬時NEを用いて算出される場合には、燃料噴射量として少量の燃料噴射量が決定されることによって、燃料噴射量が不足する可能性がある。そのため、たとえば、燃料噴射量の下限ガードを設定してもよい。
以下、図9を参照して、この変形例における制御装置200で実行される処理について説明する。図9は、変形例に係る制御装置において実行される処理の一例を示すフローチャートである。
なお、図9フローチャートのS100〜S108,S112の処理は、以下に説明する点を除き、図5のフローチャートのS100〜S108,S112の処理とそれぞれ同様の処理である。そのため、その詳細な説明は繰り返さない。
S104にて瞬時NEが記憶された後や、S100にてクランク角度CAが#0に対応するクランク角度でないと判定される場合(S100にてNO)、処理はS150に移される。
S150にて、制御装置200は、クランク角度CAが#3に対応するクランク角度の所定クランク角度前であるか否かを判定する。所定クランク角度は、少なくとも以下に説明する瞬時NEを用いた燃料噴射量の下限ガードの算出が十分に可能となるように設定される。クランク角度CAが#3に対応するクランク角度の所定クランク角度前であると判定される場合(S150にてYES)、処理はS152に移される。
S152にて、制御装置200は、燃料噴射量の下限ガードを算出する。制御装置200は、メモリの所定の記憶領域に記憶される瞬時NEの最新値を読み出して、読み出された瞬時NEを用いて燃料噴射量の下限ガードを算出する。制御装置200は、たとえば、瞬時NEと燃料噴射量の下限ガードとの関係を示すマップを用いて燃料噴射量の下限ガードを算出する。瞬時NEと燃料噴射量の下限ガードとの関係を示すマップは、たとえば、実験等により適合され、予め作成され、制御装置200のメモリに記憶される。制御装置200は、算出した燃料噴射量の下限ガードをメモリの所定の記憶領域に記憶する。
S152の処理後や、S150にてクランク角度CAが#3に対応するクランク角度の所定クランク角度前でないと判定される場合(S150にてNO)、処理はS106に移される。
S108にて、燃料噴射量の要求値が取得されると、処理はS154に移される。S154にて、制御装置200は、燃料噴射量の下限ガードを取得する。すなわち、制御装置200は、メモリの所定の記憶領域に記憶される燃料噴射量の下限ガードを読み出すことによって燃料噴射量の下限ガードを取得する。
S156にて、制御装置200は、気筒別燃料噴射量を算出する。制御装置200は、たとえば、クランク角度CAから気筒が「0」〜「3」の気筒のうちのいずれの気筒であるかを特定し、特定された気筒に対応した補正処理を実行することによって気筒別燃料噴射量を算出する。なお、補正処理については上述したとおりであるため、その詳細な説明は繰り返さない。さらに、制御装置200は、算出された気筒別燃料噴射量と燃料噴射量の下限ガードとの比較結果に基づいて最終的な気筒別燃料噴射量を算出する。制御装置200は、たとえば、算出された気筒別燃料噴射量が燃料噴射量の下限ガードよりも大きい場合には、算出された気筒別燃料噴射量を最終的な気筒別燃料噴射量として算出する。制御装置200は、たとえば、算出された気筒別燃料噴射量が燃料噴射量の下限ガードよりも小さい場合には、燃料噴射量の下限ガードの値を最終的な気筒別燃料噴射量として算出する。
以上のような構造およびフローチャートに基づく制御装置200の動作について図10および図11を参照しつつ説明する。
図10および図11は、いずれも変形例における燃料噴射制御の処理の一例を説明するための図である。なお、図10の(1)および図11の(1)に示すように、たとえば、クランク角度が「3」の気筒の#0に対応するクランク角度になる時点において、「3」の気筒の燃料噴射制御に用いられる瞬時NEの値NE(n−1)が算出されているものとする。
図10の(2)に示すように、クランク角度CAが「0」の気筒の#0に対応するクランク角度になる場合に(S100にてYES)、瞬時NEの値NE(n)が算出される(S102)。算出された瞬時NEの値NE(n)は、制御装置200のメモリに記憶される(S104)。
図10の(a)に示すように、クランク角度CAが「0」の気筒の#0に対応するクランク角度になった時点よりも後の時間t(n)にて、図6に示す処理が実行され、燃料噴射量の要求値Q1(n)が算出される(S210)。
図10の(3)に示すように、クランク角度CAが「0」の気筒の#3に対応するクランク角度の所定クランク角度前である場合に(S150にてYES)、瞬時NEの値NE(n)を用いて燃料噴射量の下限ガードが算出される(S152)。
図10の(4)に示すように、クランク角度CAが「0」の気筒の#3に対応するクランク角度になる時点に(S106にてYES)、制御装置200のメモリから燃料噴射量の要求値Q1(n)が取得され(S108)、燃料噴射量の下限ガードが取得され(S154)、気筒別燃料噴射量Q2(n)が算出される(S156)。そして、#6に対応するクランク角度以降において算出された気筒別燃料噴射量Q2(n)を用いた噴射指令が実行される(S112)。その後、図10の(b)に示すように、時間t(n+1)にて、再度図6に示す処理が実行され、燃料噴射量の要求値Q1(n+1)が算出される。
一方、図11の(a)に示すように、クランク角度CAが「0」の気筒の#0に対応するクランク角度になる時点よりも前に、時間t(n)になる場合に、図6に示す処理が実行される。
しかしながら、図11の(2)に示すように、図6の示す処理の実行中に、クランク角度CAが「0」の気筒の#0に対応するクランク角度になる場合(S100にてYES)、図6に示す処理が中断され、図9に示す処理が実行される。そのため、瞬時NEの値NE(n)が算出され(S102)、算出された瞬時NEの値NE(n)が制御装置200のメモリに記憶される(S104)。
その後、図6に示す処理が再開され、燃料噴射量の要求値Q1(n)が算出される(S210)。この場合、燃料噴射量の要求値Q1(n)は、瞬時NEの値NE(n−1)を用いて算出される。
そして、図11の(3)に示すように、クランク角度CAが「0」の気筒の#3に対応するクランク角度の所定クランク角度前である場合に(S150にてYES)、瞬時NEの値NE(n)を用いて燃料噴射量の下限ガードが算出される(S152)。
図11の(4)に示すように、クランク角度CAが「0」の気筒の#3に対応するクランク角度になると(S106にてYES)、算出された燃料噴射量の要求値Q1(n)が取得され(S108)、燃料噴射量の下限ガードが取得され(S154)、気筒別燃料噴射量が算出され(S156)、噴射指令が実行される(S112)。
このようにすると、上述のとおり燃料噴射量の要求値を算出する期間を十分に確保することができるとともに、算出される燃料噴射量の要求値が前回以前の瞬時NEを用いて算出される場合にも、燃料噴射量が不足することを抑制することができる。
なお、上記した変形例は、その全部または一部を組み合わせて実施してもよい。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。