(57)【要約】【課題】吸気脈動が大きい運転領域での吸気量の演算精度を向上する。【解決手段】マスフロー方式で演算した第１吸気量に対するスロットルスピード方式で演算した第２吸気量の偏差量の学習値である偏差量学習値の学習に際して、脈動小判定時の第１吸気量ＭＣ１に対する補正後第２吸気量（＝ＭＣ２＋ＤＥＶ［ｉ］）のずれ量ＤＩに応じた偏差量学習値ＤＥＶ［ｉ］の学習（Ｓ３６０、Ｓ３７０）を、学習完了前（Ｓ３３０：ＮＯ）には吸気管圧力ＰＭが第１下限値ＰＭＧＬ以上の領域で（Ｓ３５０：ＹＥＳ）、学習完了後（Ｓ３３０：ＹＥＳ）には吸気管圧力ＰＭが第１下限値ＰＭＧＬよりも高い第２下限値ＰＭＧＨ以上の領域で（Ｓ３４０：ＹＥＳ）、それぞれ行うようにした。【選択図】図７
2020060158.tif 000002
【特許請求の範囲】
【請求項１】
エンジンの吸気量を演算するとともに、同吸気量の演算値に基づき燃料噴射量を決定してインジェクタの燃料噴射制御を行うエンジン制御装置において、
エアフローメータの吸気流量の検出値に基づいて吸気量を演算する第１吸気量演算処理と、
前記吸気流量の検出値を用いずに、吸気管圧力の検出値、及びスロットル開度のうちのいずれか一方に基づいて前記吸気量を演算する第２吸気量演算処理と、
前記エンジンの吸気通路内の吸気脈動が大きい状態にあるか否かを判定する判定処理と、
前記第１吸気量演算処理による前記吸気量の演算値を第１吸気量とするとともに、前記第２吸気量演算処理による前記吸気量の演算値を第２吸気量としたとき、前記判定処理において前記吸気脈動が大きい状態にないと判定されているときに前記第１吸気量に対する前記第２吸気量の偏差量を演算する偏差量演算処理と、
前記判定処理において前記吸気脈動が大きい状態にないと判定されているときには前記第１吸気量を前記吸気量の演算値として設定するとともに、前記判定処理において前記吸気脈動が大きい状態にあると判定されているときには前記第２吸気量に前記偏差量を加えた和である補正後第２吸気量を前記吸気量の演算値として設定する演算方式切替処理と、
を行い、
且つ前記偏差量演算処理では、前記第１吸気量に対する前記補正後第２吸気量のずれ量に応じて値の更新を行うことで前記偏差量の学習値である偏差量学習値を学習するとともに、前記偏差量学習値の学習完了前には前記吸気脈動が発生するエンジン運転領域である脈動領域を含む第１学習領域において前記ずれ量に応じた前記偏差量学習値の学習を行い、且つ前記偏差量学習値の学習完了後には前記脈動領域を含む領域であって前記第１学習領域よりも狭い第２学習領域において前記ずれ量に応じた前記偏差量学習値の学習を行う
エンジン制御装置。
【請求項２】
前記偏差量学習値、前記第１学習領域、及び前記第２学習領域は、エンジン回転数に応じて区分けされた複数の回転数域毎にそれぞれ個別に設定されており、
且つ前記偏差量学習値の学習の完了の有無は、前記複数の回転数域のそれぞれにおいて個別に判定されている
請求項１に記載のエンジン制御装置。
【請求項３】
前記偏差量学習値の学習の完了は、前記第２学習領域における前記ずれ量に基づいて判定されている
請求項１又は２に記載のエンジン制御装置。
【請求項４】
前記第２学習領域で前記エンジンが運転されているときに前記ずれ量の絶対値が規定の収束判定値以下であるか否かの判定を規定の判定周期毎に行い、
且つ前記ずれ量の絶対値が前記収束判定値以下であると判定された回数が規定の学習完了判定値以上となった場合に前記偏差量学習値の学習が完了したと判定する
請求項３に記載のエンジン制御装置。
【請求項５】
前記第１学習領域は、吸気管圧力が規定の第１下限値以上の領域とされ、且つ前記第２学習領域は、前記吸気管圧力が前記第１下限値よりも高い第２下限値以上の領域とされている
請求項１〜４の何れか１項に記載のエンジン制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、エンジンの吸気量を演算するとともに、同吸気量の演算値に基づき燃料噴射量を決定してインジェクタの燃料噴射制御を行うエンジン制御装置に関する。
【背景技術】
【０００２】
気筒内で燃焼する混合気の空燃比（空気に対する燃料の質量比率）を適切に制御するには、エンジンの吸気量を、すなわち気筒内に流入する吸気の質量を正確に把握する必要がある。従来、吸気量の演算方式として、マスフロー方式、スピードデンシティ方式、及びスロットルスピード方式の３つの方式が知られている。マスフロー方式では、吸気通路におけるスロットルバルブよりも上流側の部分に設置されたエアフローメータにより検出した吸気流量から吸気量を演算する。スピードデンシティ方式では、吸気通路におけるスロットルバルブよりも下流側の部分に設置された吸気管圧力センサにより吸気管圧力を検出するとともに、その吸気管圧力とエンジン回転数とに基づき推定した吸気流量から吸気量を演算する。さらに、スロットルスピード方式では、スロットル開度とエンジン回転数とに基づき推定した吸気流量から吸気量を演算する。
【０００３】
通常は、これら３つの演算方式の中でマスフロー方式が、エンジンの定常運転時の吸気量を最も精度良く演算することができる。ただし、エンジンの各気筒は、吸気弁の開閉に応じて間欠的に吸気を吸入しているため、吸気通路の吸気の流れは脈動を伴ったものとなる。そしてそうした吸気脈動の影響は、エアフローメータの検出値にも表れるため、吸気脈動の大きいエンジンの運転領域では、マスフロー方式よりもスピードデンシティ方式やスロットルスピード方式の方が高い精度で吸気量を演算できる場合がある。これに対して従来、特許文献１に見られるように、吸気脈動が小さいときにはマスフロー方式により吸気量を演算し、吸気脈動が大きいときにはスピードデンシティ方式又はスロットルスピード方式により吸気量を演算するように、吸気脈動の大小に応じて演算方式を切り替えつつ吸気量を演算するエンジン制御装置が提案されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１３−２２１４１８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
スピードデンシティ方式及びスロットルスピード方式では、推定した吸気流量から吸気量を演算しているため、吸気流量の推定に誤差があると、その演算値にも誤差が生じてしまう。上記従来のエンジン制御装置では、吸気脈動が大きくなったときにそうした誤差が生じていると、空燃比が目標とする値から乖離してエンジンの排気性能の低下を招く虞がある。
【課題を解決するための手段】
【０００６】
上記課題を解決するエンジン制御装置は、エンジンの吸気量を演算するとともに、同吸気量の演算値に基づき燃料噴射量を決定してインジェクタの燃料噴射制御を行うものであって、エアフローメータの吸気流量の検出値に基づいて吸気量を演算する第１吸気量演算処理と、同吸気流量の検出値を用いずに、吸気管圧力の検出値、及びスロットル開度のうちのいずれか一方に基づいて吸気量を演算する第２吸気量演算処理と、吸気通路内の吸気脈動が大きい状態にあるか否かを判定する判定処理と、を行っている。
【０００７】
第１吸気量演算処理では、エアフローメータの吸気流量の検出値に基づいたマスフロー方式の吸気量の演算が行われる。第２吸気量演算処理では、吸気管圧力の検出値に基づいたスピードデンシティ方式の吸気量の演算、又はスロットル開度に基づいたスロットルスピード方式の吸気量の演算が行われる。ここで、第１吸気量演算処理による吸気量の演算値を第１吸気量とするとともに、第２吸気量演算処理による吸気量の演算値を第２吸気量とする。このとき、上記エンジン制御装置は更に、判定処理において吸気脈動が大きい状態にないと判定されているときに第１吸気量に対する第２吸気量の偏差量を演算する偏差量演算処理と、判定処理において吸気脈動が大きい状態にないと判定されているときには第１吸気量を吸気量の演算値として設定するとともに、判定処理において吸気脈動が大きい状態にあると判定されているときには第２吸気量に偏差量を加えた和である補正後第２吸気量を吸気量の演算値として設定する演算方式切替処理と、を行っている。
【０００８】
上記エンジン制御装置では、判定処理により吸気脈動が大きい状態にないと判定（以下、脈動小判定と記載する）されているときには、エアフローメータの吸気流量の検出精度は低下しておらず、その検出値に基づく第１吸気量演算処理での第１吸気量の演算の精度も高いと考えられる。そこで、上記エンジン制御装置では、脈動小判定時には、マスフロー方式で演算した第１吸気量を吸気量の演算値として演算される。また、このときの第１吸気量が正確な値であるとすれば、第１吸気量に対する第２吸気量の偏差は、第２吸気量の演算値の誤差となる。上記エンジン制御装置では、偏差量演算処理において、脈動小判定時の第１吸気量に対する第２吸気量の偏差量を演算している。
【０００９】
一方、判定処理により吸気脈動が大きい状態にあると判定（以下、脈動大判定と記載する）されているときには、エアフローメータの吸気流量の検出精度が低下して、第１吸気量の演算精度も低下する。このときの上記エンジン制御装置では、脈動小判定時に演算した上記偏差量を第２吸気量に加えた和である補正後第２吸気量が吸気量の演算値として演算される。すなわち、このときには、脈動小判定時に確認された第２吸気量の誤差分の補償を、第２吸気量に施した値が吸気量の演算値として演算される。したがって、上記エンジン制御装置によれば、吸気脈動が大きい運転領域での吸気量の演算精度を向上できる。
【００１０】
さらに上記エンジン制御装置での偏差量演算処理では、第１吸気量に対する補正後第２吸気量のずれ量に応じて値の更新を行うことで偏差量の学習値である偏差量学習値を学習している。吸気量の演算値に偏差量学習値が反映されるのは、吸気脈動が発生するエンジン運転領域である脈動領域となる。脈動領域とその脈動領域から離れた運転領域とでは、第１吸気量と第２吸気量との偏差量が異なる場合がある。よって、学習精度を確保するには、偏差量学習値を学習する運転領域を脈動領域近傍の運転領域に限定することが望ましい。しかしながら、そうした場合、学習機会が限定されてしまい偏差量学習値の学習が完了する迄に長い時間を要してしまう虞がある。
【００１１】
そこで、上記エンジン制御装置での偏差量演算処理では、偏差量学習値の学習完了前には吸気脈動が発生するエンジン運転領域である脈動領域を含む第１学習領域においてずれ量に応じた偏差量学習値の学習を行い、且つ偏差量学習値の学習完了後には脈動領域を含む領域であって第１学習領域よりも狭い第２学習領域においてずれ量に応じた偏差量学習値の学習を行っている。そのため、学習完了前には、学習機会を確保して学習完了に要する時間を短縮する一方で、学習完了後には高い精度で学習を行うことが可能となる。そのため、偏差量学習値の学習を好適に行うことができる。
【００１２】
演算方式の違いによる第１吸気量と第２吸気量の偏差量がエンジン回転数により異なった量となることがある。こうした場合には、偏差量学習値、第１学習領域、及び第２学習領域を、エンジン回転数に応じて区分けされた複数の回転数域毎にそれぞれ個別に設定するとともに、偏差量学習値の学習の完了の有無を、複数の回転数域のそれぞれにおいて個別に判定するとよい。
【００１３】
偏差量学習値の学習は、脈動領域でのずれ量が十分小さい値となるまで値が更新されれば、完了したと判定することができる。一方、上記のように、演算方式の違いによる第１吸気量と第２吸気量の偏差量が、脈動領域に近い運転領域と脈動領域からはられた運転領域とでは異なった量となることがある。そのため、偏差量学習値の学習の完了の有無の判定を第１学習領域全体で行うと、脈動領域から離れた運転領域で判定が行われ、脈動領域に近い運転領域では十分にずれ量が小さくなっていない状態で学習が完了したと判定される可能性がある。その点、偏差量学習値の学習の完了は第２学習領域におけるずれ量に基づいて判定すれば、学習完了前の偏差量学習値の学習を第１学習領域で行いつつも、同学習の完了を適切に判定できるようになる。
【００１４】
ちなみに、学習の完了の有無の判定は、例えば次の態様で行うことができる。すなわち、第２学習領域でエンジンが運転されているときにずれ量の絶対値が規定の収束判定値以下であるか否かの判定を規定の判定周期毎に行う。そして、ずれ量の絶対値が収束判定値以下であると判定された回数が規定の学習完了判定値以上となった場合に偏差量学習値の学習が完了したと判定する。
【００１５】
なお、第１学習領域及び第２学習領域は、例えば次のように吸気管圧力に基づいて範囲を設定することができる。すなわち、第１学習領域を吸気管圧力が規定の第１下限値以上の領域とし、且つ第２学習領域を、吸気管圧力が第１下限値よりも高い第２下限値以上の領域とする。
【図面の簡単な説明】
【００１６】
【図１】第１実施形態のベースとなるエンジン制御装置の構成を模式的に示す略図。
【図２】同エンジン制御装置が実行する燃料噴射量の制御に係る処理の流れを示すブロック図。
【図３】同エンジン制御装置が実行する吸気量演算処理の流れを示すブロック図。
【図４】同エンジン制御装置が脈動判定処理において使用する脈動率の演算態様を示すグラフ。
【図５】上記エンジン制御装置が脈動判定処理に際して実行する脈動判定ルーチンのフローチャート。
【図６】同エンジン制御装置における吸気量演算処理の実施態様の一例を示すタイムチャート。
【図７】第１実施形態のエンジン制御装置が実行する偏差量学習ルーチンのフローチャート。
【図８】偏差量学習ルーチンにおいて演算される偏差量学習値の更新量とずれ量との関係を示すグラフ。
【図９】同実施形態のエンジン制御装置における偏差量学習領域の設定態様を示すグラフ。
【図１０】同実施形態のエンジン制御装置が実行する学習完了判定ルーチンのフローチャート。
【図１１】同実施形態のエンジン制御装置における学習完了判定の実施態様の一例を示すタイムチャート。
【図１２】制御モードの切替を行うエンジンの一例の構成を模式的に示す図。
【図１３】制御モードの切替を行うエンジンにおける負荷率を用いた偏差量学習領域の設定態様を示すグラフ。
【図１４】制御モードの切替を行うエンジンでのスロットル開度を用いた偏差量学習領域の設定態様を示すグラフ。
【図１５】制御モードの切替を行うエンジンでの吸気管圧力を用いた偏差量学習領域の設定態様を示すグラフ。
【発明を実施するための形態】
【００１７】
ここではまず、第１実施形態のエンジン制御装置の元になったエンジン制御装置について説明する。第１実施形態のエンジン制御装置は、この元になったエンジン制御装置（以下、前提構成と記載する）に改良を加えたものとなっている。
【００１８】
図１に示すように、前提構成のエンジン制御装置が適用されるエンジン１０の吸気通路１１の最上流部には、吸気中の塵等をろ過するエアクリーナ１２が設けられている。吸気通路１１におけるエアクリーナ１２よりも下流側の部分には、吸気流量を検出するエアフローメータ１３が設けられている。さらに吸気通路１１におけるエアフローメータ１３よりも下流側の部分には、吸気通路１１の吸気流量を調整するための弁であるスロットルバルブ１４が設けられている。スロットルバルブ１４の近傍には、同スロットルバルブ１４を開閉駆動するためのスロットルモータ１５と、スロットルバルブ１４の開度（スロットル開度ＴＡ）を検出するためのスロットルセンサ１６と、が設けられている。
【００１９】
吸気通路１１におけるスロットルバルブ１４よりも下流側の部分には、エンジン１０の各気筒に吸気を分配するための分枝管であるインテークマニホールド（以下、インマニ１７と記載する）が設けられている。インマニ１７の各分枝管は、気筒別の吸気ポート１８を介して各気筒の燃焼室１９にそれぞれ接続されている。各気筒の吸気ポート１８には、同吸気ポート１８を通って燃焼室１９に流入する吸気中に燃料を噴射するインジェクタ２０がそれぞれ設けられている。また、各気筒の燃焼室１９には、内部に流入した燃料と吸気との混合気を放電により点火する点火装置２１がそれぞれ設けられている。なお、各気筒には、エンジン１０の出力軸であるクランクシャフト２２の回転に連動して開閉する吸気弁２３、及び排気弁２４がそれぞれ設けられている。そして、吸気弁２３の開弁に応じて吸気ポート１８から燃焼室１９に吸気が流入し、排気弁２４の開弁に応じて燃焼室１９から排気が排出される。
【００２０】
エンジン１０は、エンジン制御装置としての電子制御ユニット２５により制御されている。電子制御ユニット２５は、エンジン制御に係る各種の演算処理を行う演算処理回路２６と、制御用のプログラムやデータを記憶したメモリ２７とを備えている。そして、電子制御ユニット２５には、上述のエアフローメータ１３、スロットルセンサ１６に加え、吸気温度ＴＨＡを検出する吸気温度センサ２８、大気圧ＰＡを検出する大気圧センサ２９、及びクランクシャフト２２の回転角（クランク角ＣＲＮＫ）を検出するクランク角センサ３０などの各種センサの検出信号が入力されている。そして、電子制御ユニット２５は、それらセンサの検出信号に基づき、スロットルモータ１５、インジェクタ２０、点火装置２１などのアクチュエータを制御することで、エンジン１０の各種制御を行っている。なお、電子制御ユニット２５は、クランク角センサ３０によるクランク角ＣＲＮＫの検出結果からエンジン回転数ＮＥを演算している。
【００２１】
図２に、インジェクタ２０の燃料噴射量の制御に係る電子制御ユニット２５の処理の流れを示す。燃料噴射量の制御に際して電子制御ユニット２５はまず、吸気量演算処理Ｐ１において、エアフローメータ１３の吸気流量の検出値であるＡＦＭ検出吸気量ＧＡ、スロットル開度ＴＡ、エンジン回転数ＮＥに基づき、エンジン１０の吸気量を演算する。この吸気量演算処理Ｐ１で演算する吸気量（以下、吸気量演算値ＭＣと記載する）は、燃焼室１９での燃焼に供される空気の質量の推定値を表している。続いて、電子制御ユニット２５は、噴射量決定処理Ｐ２において、吸気量演算処理Ｐ１で演算した吸気量演算値ＭＣに基づき、燃焼室１９で燃焼する混合気の空燃比が目標とする値となるように燃料噴射量ＱＩＮＪを決定する。そして、電子制御ユニット２５は、インジェクタ駆動処理Ｐ３において、燃料噴射量ＱＩＮＪ分の燃料噴射を行うように各気筒のインジェクタ２０を駆動する。
【００２２】
図３に、吸気量演算処理Ｐ１に係る電子制御ユニット２５の処理の流れを示す。吸気量演算処理Ｐ１は、第１吸気量演算処理Ｐ４、第２吸気量演算処理Ｐ５、判定処理Ｐ６、偏差量演算処理Ｐ７、及び演算方式切替処理Ｐ８の各処理を通じて実行されている。
【００２３】
第１吸気量演算処理Ｐ４では、エアフローメータ１３の吸気流量の検出値であるＡＦＭ検出吸気量ＧＡとエンジン回転数ＮＥとに基づく吸気量の演算が行われる。具体的には、第１吸気量演算処理Ｐ４では、ＡＦＭ検出吸気量ＧＡをエンジン回転数ＮＥで割った商に規定の係数Ｋを掛けた積（＝Ｋ×ＧＡ／ＮＥ）を定常運転時の吸気量の値として求めている。そして、その定常運転時の吸気量に追従しつつ緩変化する値として吸気量を演算している。すなわち、第１吸気量演算処理Ｐ４では、エアフローメータ１３の吸気流量の検出値を用いた、いわゆるマスフロー方式による吸気量の演算が行われる。以下の説明では、第１吸気量演算処理Ｐ４による吸気量の演算値を第１吸気量ＭＣ１と記載する。
【００２４】
第２吸気量演算処理Ｐ５では、スロットル開度ＴＡとエンジン回転数ＮＥとに基づく吸気量の演算が行われる。具体的には、第２吸気量演算処理Ｐ５では、スロットル開度ＴＡとエンジン回転数ＮＥとに基づき吸気流量を推定するとともに、その吸気流量の推定値（推定吸気流量ＧＡ＊）をエンジン回転数ＮＥで割った商に上記係数Ｋを掛けた積（＝Ｋ×ＧＡ＊／ＮＥ）を定常運転時の吸気量の値として求めている。そして、その定常運転時の吸気量に追従しつつ緩変化する値として吸気量を演算している。すなわち、第２吸気量演算処理Ｐ５では、エアフローメータ１３の吸気流量の検出値の代わりに、スロットル開度ＴＡ及びエンジン回転数ＮＥに基づく吸気流量の推定値を用いた、いわゆるスロットルスピード方式による吸気量の演算が行われる。以下の説明では、第２吸気量演算処理Ｐ５による吸気量の演算値を第２吸気量ＭＣ２と記載する。
【００２５】
判定処理Ｐ６では、吸気通路１１内の吸気脈動が大きい状態にあるか否かの判定が行われる。判定処理Ｐ６の詳細については後述する。
偏差量演算処理Ｐ７では、判定処理Ｐ６において吸気脈動が大きい状態にないとの判定（以下、脈動小判定と記載する）がなされているときに、第１吸気量ＭＣ１に対する第２吸気量ＭＣ２の偏差量ＤＥＶを演算する。具体的には、偏差量演算処理Ｐ７では、脈動小判定時に、第１吸気量ＭＣ１から第２吸気量ＭＣ２を引いた差を求めるとともに、その差が偏差量ＤＥＶの更新後の値となるように偏差量ＤＥＶの値を更新する。なお、判定処理Ｐ６において吸気脈動が大きい状態にあるとの判定（以下、脈動大判定と記載する）がなされているときには、偏差量演算処理Ｐ７は実施されず、偏差量ＤＥＶの値が保持される。
【００２６】
演算方式切替処理Ｐ８では、脈動小判定時には、第１吸気量ＭＣ１を吸気量演算値ＭＣの値として設定する。また、演算方式切替処理Ｐ８では、脈動大判定時には、第２吸気量ＭＣ２に偏差量ＤＥＶを加えた和である補正後第２吸気量ＭＣ３（＝ＭＣ２＋ＤＥＶ）を吸気量演算値ＭＣの値として設定する。
【００２７】
続いて、判定処理Ｐ６の詳細を説明する。判定処理Ｐ６には、図４に示すような、規定の期間ＴにおけるＡＦＭ検出吸気量ＧＡの最大値ＧＭＡＸ、最小値ＧＭＩＮ、及び平均値ＧＡＶＥが用いられる。なお、期間Ｔは、吸気脈動の周期よりも長い時間となるように設定されている。
【００２８】
図５に、判定処理Ｐ６において実行される脈動判定ルーチンのフローチャートを示す。本ルーチンの処理は、エンジン１０の運転中、吸気量の演算周期毎に電子制御ユニット２５により繰り返し実行される。
【００２９】
本ルーチンの処理が開始されると、まずステップＳ１００において、脈動率ＲＴＥの演算が行われる。脈動率ＲＴＥの値は、上述したＡＦＭ検出吸気量ＧＡの最大値ＧＭＡＸから最小値ＧＭＩＮを引いた差を平均値ＧＡＶＥで割った商（＝（ＧＭＡＸ−ＧＭＩＮ）／ＧＡＶＥ）として演算されている。続いて、ステップＳ１１０において、脈動率ＲＴＥの値が規定の脈動大判定値α以上であるか否かが判定される。
【００３０】
脈動率ＲＴＥの値が脈動判定値α以上の場合（Ｓ１１０：ＹＥＳ）、ステップＳ１２０に処理が進められ、そのステップＳ１２０において、脈動大フラグＦがセットされる。さらにこの場合には、ステップＳ１３０においてカウンタＣＯＵＮＴの値が０にリセットされた後、今回の本ルーチンの処理が終了される。脈動大フラグＦは、判定処理Ｐ６の判定結果を示すフラグであって、脈動大判定時にはセットされ、脈動小判定時にはクリアされる。上述の偏差量演算処理Ｐ７、及び演算方式切替処理Ｐ８では、こうした脈動大フラグＦがセットされているか否かにより、判定処理Ｐ６の判定結果を確認している。
【００３１】
一方、脈動率ＲＴＥの値が脈動大判定値α未満の場合（Ｓ１１０：ＮＯ）、ステップＳ１４０に処理が進められる。そして、ステップＳ１４０において、脈動大フラグＦがセットされているか否かが判定される。ここで、脈動大フラグＦがセットされていなければ（Ｓ１４０：ＮＯ）、上述のステップＳ１３０に処理が進められ、そのステップＳ１３０においてカウンタＣＯＵＮＴの値が０にリセットされた後、今回の本ルーチンの処理が終了される。一方、脈動大フラグＦがセットされている場合には（Ｓ１４０：ＹＥＳ）、ステップＳ１５０に処理が進められる。
【００３２】
ステップＳ１５０に処理が進められると、そのステップＳ１５０においてカウンタＣＯＵＮＴの値のインクリメントが行われる。そして、続くステップＳ１６０において、インクリメント後のカウンタＣＯＵＮＴの値が規定の脈動オフ判定値β以上であるか否かが判定される。このときのカウンタＣＯＵＮＴの値が脈動オフ判定値β未満である場合には（Ｓ１６０：ＮＯ）、そのまま今回の本ルーチンの処理が終了される。これに対してカウンタＣＯＵＮＴの値が脈動オフ判定値β以上である場合には（Ｓ１６０：ＹＥＳ）、ステップＳ１７０において脈動大フラグＦがクリアされた後、今回の本ルーチンの処理が終了される。
【００３３】
以上の脈動判定ルーチンにおいて脈動大フラグＦは、脈動大判定値α未満の値から同脈動大判定値α以上の値へと脈動率ＲＴＥの値が増加したときに、クリアされた状態からセットされた状態へと切り替えられる。また、脈動大フラグＦは、脈動率ＲＴＥが脈動大判定値α未満であり、且つカウンタＣＯＵＮＴの値が脈動判定値β以上となったときにセットされた状態からクリアされた状態に切り替えられる。一方、カウンタＣＯＵＮＴの値は、脈動率ＲＴＥが脈動大判定値α未満であって、且つ脈動大フラグＦがセットされている場合にインクリメントされ、それ以外の場合には０にリセットされる。すなわち、カウンタＣＯＵＮＴの値のインクリメントは、脈動率ＲＴＥが脈動大判定値α以上の値から脈動大判定値α未満の値に低下したときに開始され、その後、脈動率ＲＴＥが脈動大判定値α以上となるか、脈動大フラグＦがクリアされるか、のいずれかとなるまで継続される。そして、このときのカウンタＣＯＵＮＴの値のインクリメントは脈動判定ルーチンの実行毎に行われ、さらに脈動判定ルーチンは吸気量の演算周期毎に実行される。よって、脈動大フラグＦのセットからクリアへの切替は、脈動率ＲＴＥが脈動大判定値α以上の値から脈動大判定値α未満の値に低下し、且つその後、脈動率ＲＴＥが脈動大判定値α未満の値となっている状態が一定の時間継続したときに行われる。
【００３４】
続いて、以上説明したエンジン制御装置の作用効果を説明する。
図６に、このエンジン制御装置における吸気量演算処理Ｐ１の実施態様の一例を示す。
エンジン１０の吸気通路１１では、吸気弁２３の間欠的な開弁により、吸気の脈動が発生する。エンジン１０の高負荷運転時等には、こうした吸気脈動が大きくなり、その影響がエアフローメータ１３の検出結果に表れる。そのため、吸気脈動が大きい状態にあるときには、エアフローメータ１３の検出精度が低下する。
【００３５】
一方、マスフロー方式による吸気量の演算は、エアフローメータ１３の吸気流量の検出値（ＡＦＭ検出吸気量ＧＡ）に基づいて行われる。そのため、吸気脈動が大きい状態にあってエアフローメータ１３の検出精度が低下すると、マスフロー方式による吸気量の演算精度も低下する。
【００３６】
これに対して、このエンジン制御装置では、判定処理Ｐ６において吸気脈動が大きい状態にあるか否かを判定している。そして、脈動小判定時にはマスフロー方式により吸気量を演算する一方、脈動大判定時にはスロットルスピード方式により吸気量を演算するようにしている。
【００３７】
図６の場合、時刻ｔ１までは判定処理Ｐ６により脈動小判定がなされており、脈動大フラグＦはクリアされている。そして、時刻ｔ１に判定処理Ｐ６の判定結果が脈動小判定から脈動大判定に切り替わり、その時刻ｔ１以降は脈動大フラグＦがセットされた状態となっている。脈動小判定中は、エアフローメータ１３の検出精度は低下しておらず、第１吸気量演算処理Ｐ４での第１吸気量ＭＣ１の演算精度も高いと考えられる。そこで、前提構成のエンジン制御装置では、脈動小判定中は、第１吸気量ＭＣ１を吸気量演算値ＭＣの値として演算するようにしている。
【００３８】
また、脈動小判定中の第１吸気量ＭＣ１が正確な値であるとすると、このときの第１吸気量ＭＣ１に対する第２吸気量ＭＣ２の偏差量ＤＥＶ分の誤差が、第２吸気量ＭＣ２の演算値に生じていることになる。前提構成のエンジン制御装置では、偏差量演算処理Ｐ７において、脈動小判定中にそうした偏差量ＤＥＶの演算を行っている。
【００３９】
一方、脈動小判定から脈動大判定に切り替わると、エアフローメータ１３の検出精度が低下して、第１吸気量演算処理Ｐ４による第１吸気量ＭＣ１の演算精度も低下する。このときの上記エンジン制御装置では、脈動小判定時に演算した偏差量ＤＥＶを第２吸気量ＭＣ２に加算した和である補正後第２吸気量ＭＣ３を、吸気量演算値ＭＣの値として演算している。すなわち、脈動小判定時の偏差量ＤＥＶの演算結果から確認された第２吸気量ＭＣ２の誤差を補償した値が、脈動大判定時の吸気量演算値ＭＣの値として演算されている。そのため、吸気脈動が大きい状態にあるときにも、吸気量演算値ＭＣを精度良く演算できる。
【００４０】
また、第１吸気量ＭＣ１に対する第２吸気量ＭＣ２の偏差が偏差量ＤＥＶの値として適切に設定されていれば、時刻ｔ１における第１吸気量ＭＣ１と、第２吸気量ＭＣ２に偏差量ＤＥＶを加えた和である補正後第２吸気量ＭＣ３とは同値となる。そのため、上記エンジン制御装置によれば、演算方式の切替前後の吸気量演算値ＭＣの値に段差が生じることを抑えられる。
【００４１】
（第１実施形態）
続いて、以上説明した前提構成に対する第１実施形態のエンジン制御装置の相違点を説明する。本実施形態のエンジン制御装置では、偏差量演算処理Ｐ７において、エンジン運転中の第１吸気量ＭＣ１に対する補正後第２吸気量ＭＣ３のずれ量ＤＩに基づき、同ずれ量ＤＩが小さくなる側に値を更新することで偏差量ＤＥＶの学習値である偏差量学習値の学習を行っている。また、本実施形態では、偏差量学習値の学習を、エンジン回転数に応じて区分けされた複数の偏差量学習領域毎にそれぞれ個別に学習している。
【００４２】
図７に、偏差量学習値の学習にかかる偏差量学習ルーチンのフローチャートを示す。本ルーチンの処理は、エンジン１０の運転中、吸気量の演算周期毎に電子制御ユニット２５により繰り返し実行される。
【００４３】
本ルーチンの処理が開始されると、まずステップＳ３００において、学習実行条件が成立しているか否かが判定される。そして、学習実行条件が不成立の場合（ＮＯ）には、そのまま今回の本ルーチンの処理が終了される。本実施形態では、（１）エンジン１０の暖機が完了していること、（２）エンジン１０の運転条件の変化が大きい過渡時ではないこと、及び（３）センサやアクチュエータ系に異常がないこと、のすべてが満たされていることが学習実行条件の成立要件となっている。
【００４４】
学習実行条件が成立している場合（Ｓ３００：ＹＥＳ）には、ステップＳ３１０に処理が進められ、そのステップＳ３１０において、脈動小判定時であるか否かが判定される。具体的には、ここでの判定は、図５の脈動大フラグＦに基づいて行われている。すなわち、脈動大フラグＦがクリアされている場合には脈動小判定時であると判定され、脈動大フラグＦがセットされている場合には脈動小判定時ない（脈動大判定時である）と判定される。そして、脈動小判定時である場合（ＹＥＳ）にはステップＳ３２０に処理が進められ、脈動小判定時でない場合（ＮＯ）、すなわち脈動大判定時にはそのまま今回の本ルーチンの処理が終了される。
【００４５】
なお、本実施形態では、エンジン１０の運転領域を、エンジン回転数に応じて複数の回転数域に区分けしている。そして、回転数域のそれぞれにおいて個別に偏差量ＤＥＶの学習を行っている。本実施形態では、５つの回転数域を設定した場合を例として説明する。そして、以下の説明では、５つの回転数域を、エンジン回転数ＮＥの小さい側から順に、回転数域［１］、回転数域［２］、回転数域［３］、回転数域［４］、回転数域［５］とそれぞれ記載する。また、「ｉ」を１、２、３、４、５のうちのいずれかとしたとき、回転数域［ｉ］に対応した偏差量ＤＥＶの学習値を偏差量学習値ＤＥＶ［ｉ］と記載する。
【００４６】
ステップＳ３２０に処理が進められると、そのステップＳ３２０において、エンジン１０が現在運転中の回転数域の特定が行われる。なお、以下の説明では、エンジン１０が現在運転中の回転数域を現回転数域と記載する。そして、続くステップＳ３３０において、現回転数域［ｉ］に対応した学習完了フラグＦＧ［ｉ］がセットされているか否かが判定される。学習完了フラグＦＧ［ｉ］は、回転数域［ｉ］毎、すなわち偏差量学習値ＤＥＶ［ｉ］毎にそれぞれ個別に設定されている。そして、学習完了フラグＦＧ［ｉ］は、セットされた状態にあることをもって対応する回転数域［ｉ］の偏差量学習値ＤＥＶ［ｉ］の学習が完了していることを、クリアされた状態にあることをもって対応する回転数域［ｉ］の偏差量学習値ＤＥＶ［ｉ］の学習が完了していないことをそれぞれ示すフラグとなっている。こうした学習完了フラグＦＧ［ｉ］の状態は、後述する学習完了判定ルーチンの処理において操作される。
【００４７】
現回転数域の学習完了フラグＦＧ［ｉ］がクリアされている場合（Ｓ３３０：ＮＯ）、すなわち現回転数域［ｉ］の偏差量学習値ＤＥＶ［ｉ］の学習が完了していない場合には、ステップＳ３５０において吸気管圧力ＰＭが規定の第１下限値ＰＭＧＬ以上であるか否かが判定される。吸気管圧力ＰＭが第１下限値ＰＭＧＬ以上の場合（ＹＥＳ）にはステップＳ３６０に処理が進められ、吸気管圧力ＰＭが第１下限値ＰＭＧＬ未満の場合（ＮＯ）にはそのまま今回の本ルーチンの処理が終了される。なお、第１下限値ＰＭＧＬには、エアフローメータ１３の検出精度の低下を招く程度の大きい吸気脈動が発生するエンジン１０の運転領域である脈動領域における吸気管圧力ＰＭの最小値よりも低い圧力が値として設定されている。
【００４８】
これに対して、現回転数域の学習完了フラグＦＧ［ｉ］がセットされている場合（Ｓ３３０：ＹＥＳ）、すなわち現回転数域の偏差量学習値ＤＥＶ［ｉ］の学習が完了している場合には、ステップＳ３４０において、吸気管圧力ＰＭが規定の第２下限値ＰＭＧＨ以上であるか否かが判定される。そして、吸気管圧力ＰＭが第２下限値ＰＭＧＨ以上の場合（ＹＥＳ）にはステップＳ３６０に処理が進められ、吸気管圧力ＰＭが第２下限値ＰＭＧＨ未満の場合（ＮＯ）にはそのまま今回の本ルーチンの処理が終了される。なお、第２下限値ＰＭＧＨには、脈動領域における吸気管圧力ＰＭの最小値よりも低く、且つ第１下限値ＰＭＧＬよりも高い圧力が値として設定されている。
【００４９】
ステップＳ３４０又はステップＳ３５０での判定の結果、ステップＳ３６０に処理が進められた場合には、そのステップＳ３６０において、第１吸気量ＭＣ１に対する第２吸気量ＭＣ２の差から現回転数域の偏差量学習値ＤＥＶ［ｉ］を引いた値（＝ＭＣ１−ＭＣ２−ＤＥＶ［ｉ］）が、すなわち第１吸気量ＭＣ１に対する補正後第２吸気量ＭＣ３（＝ＭＣ２＋ＤＥＶ［ｉ］）の差がずれ量ＤＩの値として演算される。そして、続くステップＳ３７０において、ずれ量ＤＩに基づいて現回転数域の偏差量学習値ＤＥＶ［ｉ］の更新が行われた後、今回の本ルーチンの処理が終了される。このときの偏差量学習値ＤＥＶ［ｉ］の更新量ΔＤＥＶは、ずれ量ＤＩと学習完了フラグＦＧ［ｉ］の状態とにより決定される。
【００５０】
図８には、学習完了フラグＦＧ［ｉ］がクリアされている場合の偏差量学習値ＤＥＶ［ｉ］の更新量ΔＤＥＶとずれ量ＤＩとの関係が実線で示されている。また、同図８には、学習完了フラグＦＧ［ｉ］がセットされている場合の偏差量学習値ＤＥＶ［ｉ］の更新量ΔＤＥＶとずれ量ＤＩとの関係が点線で示されている。同図に示される値εは、収束判定値であり、学習完了判定ルーチンでの偏差量学習値ＤＥＶ［ｉ］の学習完了の判定に用いられる。
【００５１】
ずれ量ＤＩの絶対値が収束判定値εを超過する領域では、学習完了フラグＦＧ［ｉ］がセット、クリアのいずれの状態にあっても、ずれ量ＤＩの値が同じであれば同じ値が更新量ΔＤＥＶの値として設定される。具体的には、この領域における更新量ΔＤＥＶの値は、次のような値となるように設定される。すなわち、ずれ量ＤＩの値を収束判定値εから次第に増加させていったときの更新量ΔＤＥＶの値は、ずれ量ＤＩの増加と共に増加していく値となるように設定される。また、ずれ量ＤＩの値を「−ε」から次第に減少させていったときの更新量ΔＤＥＶの値は、ずれ量ＤＩの減少と共に減少していく値となるように設定される。
【００５２】
これに対して、ずれ量ＤＩが０を超え、且つ「ε」以下の領域では、学習完了フラグＦＧ［ｉ］がクリアされている場合には規定の正の値「ζ１」が、学習完了フラグＦＧ［ｉ］がセットされている場合には「ζ１」よりも小さい正の値である「ζ２」が、それぞれ更新量ΔＤＥＶの値として設定される。また、ずれ量ＤＩが０未満、且つ「−ε」以上の領域では、学習完了フラグＦＧ［ｉ］がクリアされている場合には「−ζ１」が、学習完了フラグＦＧ［ｉ］がセットされている場合には「−ζ１」よりも大きい（絶対値が小さい）負の値である「−ζ２」が、それぞれ更新量ΔＤＥＶの値として設定される。なお、ずれ量ＤＩが０の場合には、学習完了フラグＦＧ［ｉ］の状態に関わらず、０が更新量ΔＤＥＶの値として設定される。
【００５３】
以上の偏差量学習ルーチンでは、脈動小判定時の第１吸気量ＭＣ１に対する補正後第２吸気量ＭＣ３のずれ量ＤＩに応じて値の更新を行うことで偏差量学習値ＤＥＶ［ｉ］の学習が行われる。また偏差量学習ルーチンでは、こうした脈動小判定時におけるずれ量ＤＩに応じた偏差量学習値ＤＥＶ［ｉ］の学習を行うエンジン１０の運転領域である偏差量学習領域が、偏差量学習値ＤＥＶ［ｉ］の学習完了の有無により切り替えられるようになっている。
【００５４】
図９に、本実施形態での偏差量学習領域の設定を示す。同図の線Ｌは、エンジン１０の運転領域におけるエンジン回転数毎の吸気管圧力の最高値を示している。また、同図にハッチングで示された脈動領域は、エアフローメータ１３の検出精度の低下を招く程度の大きい吸気脈動が発生するエンジン１０の運転領域を表している。
【００５５】
上述のように偏差量学習ルーチンでは、偏差量学習値ＤＥＶ［ｉ］の学習完了前（Ｓ３３０：ＮＯ）には、吸気管圧力ＰＭが第１下限値ＰＭＧＬ以上の場合（Ｓ３５０：ＹＥＳ）に、ステップＳ３６０及びステップＳ３７０でのずれ量ＤＩに応じた偏差量学習値ＤＥＶ［ｉ］の値の更新が行われる。これに対して偏差量学習値ＤＥＶ［ｉ］の学習完了後（Ｓ３３０：ＹＥＳ）には、吸気管圧力ＰＭが第２下限値ＰＭＧＨ（＞ＰＭＧＬ）以上の場合に、ステップＳ３６０及びステップＳ３７０でのずれ量ＤＩに応じた偏差量学習値ＤＥＶ［ｉ］の値の更新が行われる。また、第１下限値ＰＭＧＬ及び第２下限値ＰＭＧＨは、脈動領域における吸気管圧力ＰＭの最小値よりも低い圧力が値として設定されている。ここで、各回転数域［ｉ］における吸気管圧力ＰＭが第１下限値ＰＭＧＬ以上の領域を各回転数域［ｉ］における第１学習領域とし、各回転数域［ｉ］における吸気管圧力ＰＭが第２下限値ＰＭＧＨ以上の領域を各回転数域［ｉ］における第２学習領域とする。本実施形態では、各回転数域［ｉ］でのずれ量ＤＩに応じた偏差量学習値ＤＥＶ［ｉ］の学習は、偏差量学習値ＤＥＶ［ｉ］の学習完了前には脈動領域を含む第１学習領域において、偏差量学習値ＤＥＶ［ｉ］の学習完了後には脈動領域を含む領域であって第１学習領域よりも狭い第２学習領域において、それぞれ行われるようになっている。
【００５６】
図１０に、学習完了判定ルーチンのフローチャートを示す。本ルーチンの処理は、エンジン１０の運転中、規定の判定周期毎に電子制御ユニット２５により繰り返し実行される。
【００５７】
本ルーチンの処理が開始されると、まずステップＳ４００において、現回転数域［ｉ］の学習完了フラグＦＧ［ｉ］がクリアされているか否かが判定される。そして、学習完了フラグＦＧ［ｉ］がクリアされている場合（ＹＥＳ）にはステップＳ４１０に処理が進められ、学習完了フラグＦＧ［ｉ］が既にセットされている場合（ＮＯ）にはそのまま今回の本ルーチンの処理が終了される。
【００５８】
ステップＳ４１０に処理が進められると、そのステップＳ４１０において、吸気管圧力ＰＭが上述の規定値ＰＭＧＨ以上であるか否かが判定される。そして、吸気管圧力ＰＭが規定値ＰＭＧＨ以上の場合（ＹＥＳ）にはステップＳ４２０に処理が進められ、そうでない場合（ＮＯ）にはそのまま今回の本ルーチンの処理が終了される。
【００５９】
ステップＳ４２０に処理が進められると、そのステップＳ４２０において、ずれ量ＤＩの絶対値が収束判定値ε以下の値となっているか否かが判定される。そして、ずれ量ＤＩの絶対値が収束判定値ε以下の場合（ＹＥＳ）にはステップＳ４３０に、そうでない場合（ＮＯ）にはステップＳ４６０に、それぞれ処理が進められる。
【００６０】
ステップＳ４３０に処理が進められると、そのステップＳ４３０において、回転数域［ｉ］毎に設定された判定用カウンタＧＣＮＴ［ｉ］のカウントアップが行われる。すなわち、更新前の値に１を加えた和が更新後の値となるように判定用カウンタＧＣＮＴの値が更新される。続いてステップＳ４４０において、判定用カウンタＧＣＮＴ［ｉ］が学習完了判定値ι以上の値となっているか否かが判定される。そして、判定用カウンタＧＣＮＴ［ｉ］が完了判定値ι以上の値である場合（ＹＥＳ）にはステップＳ４５０に処理が進められ、そうでない場合（ＮＯ）にはそのまま今回の処理が終了される。ステップＳ４５０に処理が進められた場合には、そのステップＳ４５０において現回転数域［ｉ］の学習完了フラグＦＧ［ｉ］がセットされた後、今回の本ルーチンの処理が終了される。
【００６１】
一方、ステップＳ４６０に処理が進められると、そのステップＳ４６０において、ずれ量ＤＩの絶対値が乖離判定値ηを超過する値となっているか否かが判定される。乖離判定値ηには収束判定値εよりも大きい値が設定されている。ここで、ずれ量ＤＩの絶対値が乖離判定値ηを超過している場合（ＹＥＳ）にはステップＳ４７０に処理が進められ、そうでない場合（ＮＯ）にはそのまま今回の処理が終了される。ステップＳ４７０に処理が進められた場合には、そのステップＳ４７０において判定用カウンタＧＣＮＴ［ｉ］の値が０にリセットされた後、今回の本ルーチンの処理が終了される。
【００６２】
図１１に、上記学習完了判定ルーチンによる偏差量学習値ＤＥＶ［ｉ］の学習完了判定の実施態様の一例を示す。偏差量学習値ＤＥＶ［ｉ］の学習は、吸気脈動に応じた吸気量の演算方式の切替に際して吸気量の演算値に段差が生じないようにするため、第１吸気量ＭＣ１に対する補正後第２吸気量ＭＣ３とのずれ量ＤＩが十分小さくなるように行われる。本実施形態では、学習完了判定ルーチンにおいて、第１吸気量ＭＣ１に対する補正後第２吸気量ＭＣ３のずれ量ＤＩの絶対値が収束判定値ε以下であるか否かを規定の演算周期毎に行っている。そして、ずれ量ＤＩの絶対値が収束判定値ε以下と判定された回数を示す判定用カウンタＧＣＮＴ［ｉ］の値が学習完了判定値ι以上となったことを条件に、偏差量学習値ＤＥＶ［ｉ］の学習が完了したと判定している。
【００６３】
同図における時刻ｔ１以降の期間には、第１吸気量ＭＣ１に対する補正後第２吸気量ＭＣ３のずれ量ＤＩの絶対値が収束判定値ε以下まで減少した状態となっている。ただし、本実施形態では、ずれ量ＤＩの絶対値が収束判定値ε以下、且つ吸気管圧力ＰＭが第２下限値ＰＭＧＨ以上の場合に判定用カウンタＧＣＮＴ［ｉ］の値をカウントアップするようにしている。すなわち、判定用カウンタＧＣＮＴ［ｉ］のカウントアップを第２学習領域でのみ行うようにしている。そのため、ずれ量ＤＩの絶対値が収束判定値ε以下となっていても、吸気管圧力ＰＭが第２下限値ＰＭＧＨ未満となっている時刻ｔ１から時刻ｔ２までの期間、及び時刻ｔ３から時刻ｔ４までの期間には、判定用カウンタＧＣＮＴ［ｉ］の値は保持されている。そして、ずれ量ＤＩの絶対値が収束判定値ε以下、且つ吸気管圧力ＰＭが第２下限値ＰＭＧＨ以上の状態でのカウントアップにより判定用カウンタＧＣＮＴ［ｉ］の値が学習完了判定値ιに達した時刻ｔ５に、学習が完了したとして学習完了フラグＦＧ［ｉ］をセットしている。
【００６４】
このように本実施形態では、第２学習領域でエンジン１０が運転されているときにずれ量ＤＩの絶対値が規定の収束判定値ε以下であるか否かの判定が規定の判定周期毎に行われ、ずれ量ＤＩの絶対値が収束判定値ε以下であると判定された回数が判定用カウンタＧＣＮＴの値として記録される。そして、判定用カウンタＧＣＮＴの値が、すなわちずれ量ＤＩの絶対値が収束判定値ε以下であると判定された回数が規定の学習完了判定値ι以上となった場合に偏差量学習値ＤＥＶ［ｉ］の学習が完了したと判定している。なお、こうした偏差量学習値ＤＥＶ［ｉ］の学習の完了の有無の判定は、回転数域［ｉ］のそれぞれにおいて個別に実施されている。
【００６５】
本実施形態の作用及び効果について説明する。
本実施形態のエンジン制御装置では、脈動小判定時には、第１吸気量演算処理Ｐ４によりエアフローメータ１３の検出結果に基づき演算された第１吸気量ＭＣ１を吸気量演算値ＭＣの値として演算している。これに対してエアフローメータ１３の検出精度が低下する脈動大判定時には、補正後第２吸気量ＭＣ３を吸気量演算値ＭＣの値として演算している。補正後第２吸気量ＭＣ３は、第２吸気量演算処理Ｐ５によりエアフローメータ１３の検出結果を用いずに演算された第２吸気量ＭＣ２に偏差量学習値ＤＥＶ［ｉ］を加えた和として求められている。そして、脈動小判定時の第１吸気量ＭＣ１に対する補正後第２吸気量ＭＣ３のずれ量ＤＩに応じて値の更新を行うことで偏差量学習値ＤＥＶ［ｉ］を学習している。
【００６６】
このように偏差量学習値ＤＥＶ［ｉ］は、脈動大判定時の吸気量演算値ＭＣの演算に用いられる。すなわち、偏差量学習値ＤＥＶ［ｉ］が吸気量演算値ＭＣに反映されるのは、脈動領域であるエンジン１０の高負荷運転領域に限られる。一方、演算方式の違いによる第１吸気量ＭＣ１、第２吸気量ＭＣ２の偏差は、エンジン１０の運転領域により異なるため、軽負荷運転領域と高負荷運転領域とでは、偏差量学習値ＤＥＶ［ｉ］の学習結果に違いが生じる可能性がある。よって、学習精度を確保するには、偏差量学習値ＤＥＶ［ｉ］の学習を高負荷運転領域でのみ行うことが望ましい。しかしながら、偏差量学習値ＤＥＶ［ｉ］の学習は、脈動小判定時に行う必要があり、高負荷運転領域だけでは学習機会が限定されてしまう。そのため、偏差量学習値ＤＥＶ［ｉ］の学習を第２学習領域だけで行うと、学習が完了する迄に要する時間が長くなりやすい。
【００６７】
その点、本実施形態では、偏差量学習値ＤＥＶ［ｉ］の学習完了前には、脈動領域から離れた軽負荷運転領域も含んだ第１学習領域において偏差量学習値ＤＥＶ［ｉ］の学習を行うようにしている。そのため、学習機会を確保して、学習完了迄に要する時間を短縮できる。一方、学習完了後にも、エアフローメータ１３の検出特性やスロットルバルブ１４の開度特性などの経時変化により、第１吸気量ＭＣ１と第２吸気量ＭＣ２との偏差量が変化する。こうした経時変化は長い時間を掛けて緩やかに進行するため、学習機会があまりなくても、偏差量学習値ＤＥＶ［ｉ］の値をその変化に追従させられる。そこで、本実施形態では、学習完了後には、第２学習領域だけで偏差量学習値ＤＥＶ［ｉ］の学習を行うようにしている。このように本実施形態では、偏差量学習値ＤＥＶ［ｉ］の学習を行うエンジン１０の運転領域として、学習完了前には学習機会を確保するために広い領域を設定する一方で、学習完了後には学習精度を確保するために狭い領域を設定している。そのため、偏差量学習値ＤＥＶ［ｉ］の学習を好適に行うことができる。
【００６８】
上述のように演算方式の違いによる第１吸気量ＭＣ１と第２吸気量ＭＣ２との偏差量はエンジン１０の運転領域により異なるため、脈動領域から離れた運転領域ではずれ量ＤＩが十分に小さくなっていても、脈動領域に近い運転領域ではずれ量ＤＩが未だ十分に縮小していない場合が生じうる。その点、本実施形態では、学習完了前には第１学習領域で偏差量学習値ＤＥＶ［ｉ］の学習を行う一方で、学習完了の判定は第２学習領域でのみ行っているため、学習完了迄に要する時間を短縮しながらも、学習完了の判定を精度良く行うことができる。
【００６９】
本実施形態は、以下のように変更して実施することができる。本実施形態及び以下の変更例は、技術的に矛盾しない範囲で互いに組み合わせて実施することができる。
・上記実施形態では、エンジン回転数ＮＥに応じて区分けされた５つの回転数域［ｉ］のそれぞれにおいて個別に偏差量学習値ＤＥＶ［ｉ］の学習を行う場合を説明したが、回転数域［ｉ］の数は適宜に変更してもよい。また、回転数域の区分けを行わず、単一の偏差量学習値を使用するようにしてもよい。
【００７０】
・上記実施形態では、第２吸気量演算処理Ｐ５における第２吸気量ＭＣ２の演算を、スロットル開度ＴＡ及びエンジン回転数ＮＥに基づく吸気流量の推定値を用いた、いわゆるスロットルスピード方式により行っていた。こうした第２吸気量ＭＣ２の演算を、吸気管圧力ＰＭ及びエンジン回転数ＮＥの検出結果に基づく吸気流量の推定値を用いた、いわゆるスピードデンシティ方式により行うようにしてもよい。
【００７１】
・上記実施形態では、エンジン回転数ＮＥに関わらず、第２下限値ＰＭＧＨを固定した値としていた。エンジン回転数ＮＥにより脈動領域の下限となる吸気管圧力ＰＭが異なる場合などには、第２下限値ＰＭＧＨを回転数域［ｉ］毎に変えるようにしたり、エンジン回転数ＮＥにより変化する値として第２下限値ＰＭＧＨを設定するようにしたり、してもよい。
【００７２】
・上記実施形態では、第１学習領域及び第２学習領域の範囲をエンジン回転数ＮＥと吸気管圧力ＰＭとにより規定していたが、エンジン負荷率ＫＬやスロットル開度ＴＡのようなエンジン負荷に相関するパラメータを吸気管圧力ＰＭの代わりに用いて第１学習領域及び第２学習領域の範囲を規定するようにしてもよい。
【００７３】
（第２実施形態）
車載等のエンジンでは、運転者の手動操作により、エンジンの制御モードの切替が行われるものがある。こうしたエンジンでは、制御モードにより、エンジンの制御内容が変わり、その結果として脈動領域が変化することがある。本実施形態では、こうした制御モードの切替を行うエンジンにおける第２学習領域の設定態様について説明する。
【００７４】
図１２に、制御モードの切替を行うエンジン１００の一例の構成を示す。同図に示すように、エンジン１００は、排気の一部を吸気中に再循環する排気再循環（ＥＧＲ）システムを備えている。ＥＧＲシステムは、排気通路３１と吸気通路１１におけるスロットルバルブ１４よりも下流側の部分（例えば吸気マニホールド１７）とを連通するＥＧＲ通路３２を備えている。ＥＧＲ通路３２には、同ＥＧＲ通路３２を通って吸気中に再循環される排気（ＥＧＲガス）を冷却するＥＧＲクーラ３３と、ＥＧＲガスの流量を調整するための流量調整弁であるＥＧＲバルブ３４とが設けられている。また、エンジン１０には、吸気弁２３のバルブタイミング（開閉弁時期）を可変とする可変動弁機構３５が設けられている。
【００７５】
同エンジン１００では、運転席に設けられたスイッチの操作により、エンジン１００の制御モードとして、燃費モードとパワーモードとを選択できるようになっている。燃費モードは、高負荷運転時にも大量のＥＧＲガスを導入することで、エンジン１００の燃費を向上する制御モードとなっている。これに対して、パワーモードは、高負荷運転時のＥＧＲガスの導入量を抑えて、その分、燃焼室１９に導入する空気量を増やすことで、エンジン１００の最大出力を増大する制御モードとなっている。
【００７６】
なお、パワーモードでは、高負荷運転時に、吸気弁２３の閉弁時期が吸気下死点よりも遅い時期となるように可変動弁機構３５を制御している。吸気弁２３の閉弁時期を吸気下死点よりも遅い時期とすると、吸気下死点から吸気弁２３の閉弁までの期間に燃焼室１９に導入された吸気の一部が吸気通路１１に押し戻されて、その分、吸気管圧力ＰＭが高くなる。そのため、燃費モードでは、ＥＧＲガスの大量導入に必要な吸気負圧を確保するため、高負荷運転時における吸気弁２３の閉弁時期がパワーモードの場合よりも早い時期となるように可変動弁機構３５を制御している。
【００７７】
こうしたエンジン１００では、ＥＧＲバルブ３４の開度や吸気弁２３のバルブタイミングも吸気量を決める要素となる。そのため、このエンジン１００に適用する場合の第１吸気量演算処理Ｐ４では、ＡＦＭ検出吸気量ＧＡ及びエンジン回転数ＮＥに加え、ＥＧＲバルブ３４の開度及び吸気弁２３のバルブタイミングにも基づいて第１吸気量ＭＣ１を演算するとよい。また、第２吸気量演算処理Ｐ５では、スロットル開度ＴＡ及びエンジン回転数ＮＥに加え、ＥＧＲバルブ３４の開度及び吸気弁２３のバルブタイミングにも基づいて第２吸気量ＭＣ２を演算するとよい。
【００７８】
本実施形態でも、第１実施形態の場合と同様に、脈動小判定時には第１吸気量ＭＣ１に対する補正後第２吸気量ＭＣ２のずれ量ＤＩに応じて偏差量学習値ＤＥＶ［ｉ］を学習し、脈動大判定時にはその偏差量学習値ＤＥＶ［ｉ］を用いて吸気量を演算するようにしている。また、偏差量学習値ＤＥＶ［ｉ］の学習を行う運転領域を、学習完了に応じて第１学習領域から第２学習領域に切り替えている。
【００７９】
なお、上述のように、第２学習領域の範囲を規定するエンジン負荷の指標値としては、吸気管圧力ＰＭの他、エンジン負荷率ＫＬやスロットル開度ＴＡを用いることが可能である。ただし、上記のような制御モードの切替を行うエンジン１００の場合には、第２学習領域の範囲の設定に際して、制御モードによる脈動領域の変化を考慮する必要がある。以下の説明では、吸気管圧力ＰＭ、エンジン負荷率ＫＬ、及びスロットル開度ＴＡのいずれかをエンジン負荷の指標値とし、そのエンジン負荷の指標値とエンジン回転数ＮＥとをそれぞれ座標軸とした直交座標系に脈動領域の範囲を描いたときの脈動領域におけるエンジン負荷の指標値の下限値とエンジン回転数ＮＥとの関係を示す線を脈動領域境界線と記載する。また、上記直交座標系に第２学習領域の範囲を描いたときの第２学習領域における上記エンジン負荷の指標値の下限値とエンジン回転数ＮＥとの関係を示す線を学習切替線と記載する。
【００８０】
ここではまず、制御モードの切替を行うエンジン１００において、エンジン負荷率ＫＬを用いて第２学習領域の範囲を規定する場合について説明する。
吸気脈動によるエアフローメータ１３の検出精度の低下は、吸気弁２３の開閉に応じた燃焼室１９への間欠的なガス（吸気＋ＥＧＲガス）の流入により生じた吸気ポート１８内の圧力変動がエアフローメータ１３の設置箇所まで吸気通路１１を遡上することで発生する。エンジン回転数ＮＥが同じであれば、吸気ポート１８内の圧力変動は、吸気ポート１８を流れるガスの流量（以下、ポート流量）が多いほど大きくなる。一方、エンジン回転数ＮＥ及びエンジン負荷率ＫＬを一定としたときのポート流量は、ＥＧＲガスの導入量が多い分、パワーモード時よりも燃費モード時の方が多くなる。そのため、エンジン回転数ＮＥを一定としたときの脈動領域におけるエンジン負荷率ＫＬの下限値は、燃費モード時の方がパワーモード時よりも小さい値となる。一方、第２学習領域は、脈動領域近傍の高負荷運転領域となるように設定する必要がある。そのため、上記のような制御モードの切替を行うエンジン１００において、エンジン負荷率ＫＬを用いて第２学習領域を規定する場合には、制御モードによる脈動領域の変化に応じて、第２学習領域の範囲も制御モードにより切り替える必要がある。図１３には、この場合のパワーモード時及び燃費モード時の脈動領域境界線Ｌ１，Ｌ２、それらに応じて第２学習領域を設定したときのパワーモード時及び燃費モード時の学習切替線Ｌ３，Ｌ４の設定態様の一例が示されている。
【００８１】
続いて、制御モードの切替を行うエンジン１００において、スロットル開度ＴＡを用いて第２学習領域の範囲を規定する場合について説明する。エンジン回転数ＮＥ及びスロットル開度ＴＡを一定としたときのポート流量は、ＥＧＲガスの導入量が多い分、パワーモード時よりも燃費モード時の方が多くなる。よって、エンジン回転数ＮＥを一定としたときの脈動領域におけるスロットル開度ＴＡの下限値は、燃費モード時の方がパワーモード時よりも小さい値となる。そのため、この場合にも、制御モードによる脈動領域の変化に応じて、第２学習領域の範囲も制御モードにより切り替える必要がある。図１４には、この場合のパワーモード時及び燃費モード時の脈動領域境界線Ｌ５，Ｌ６、及びそれらに応じて第２学習領域を設定したときのパワーモード時及び燃費モード時の学習切替線Ｌ７，Ｌ８の設定態様の一例が示されている。
【００８２】
最後に、制御モードの切替を行うエンジン１００において、吸気管圧力ＰＭを用いて第２学習領域の範囲を規定する場合について説明する。ポート流量は、エンジン回転数ＮＥと吸気管圧力ＰＭとによりほぼ一義的に定まるため、脈動領域の下限値となる吸気管圧力ＰＭとエンジン回転数ＮＥとの関係は制御モードが変わっても変化しない。そのため、この場合には、第２学習領域の範囲を制御モードにより切り替える必要はないことになる。すなわち、エンジン回転数ＮＥと吸気管圧力ＰＭとでエンジン１００の運転領域を規定した場合には、パワーモード及び燃費モードのいずれの制御モードにおいても、脈動領域の範囲は同じとなるため、第２学習領域として共通の範囲を設定できることになる。図１５には、この場合の脈動領域境界線Ｌ９、及びその脈動領域境界線Ｌ９に応じて第２学習領域を設定したときの学習切替線Ｌ１０の設定態様の一例が示されている。同図に示すように、この場合には、パワーモード及び燃費モードの双方の制御モードでの脈動領域境界線Ｌ９及び学習切替線Ｌ１０は、それぞれ共通となる。
【符号の説明】
【００８３】
１０，１００…エンジン、１１…吸気通路、１２…エアクリーナ、１３…エアフローメータ、１４…スロットルバルブ、１５…スロットルモータ、１６…スロットルセンサ、１７…吸気マニホールド、１８…吸気ポート、１９…燃焼室、２０…インジェクタ、２１…点火プラグ、２２…クランクシャフト、２３…吸気弁、２４…排気弁、２５…電子制御ユニット（エンジン制御装置）、２６…演算処理回路、２７…メモリ、２８…吸気温度センサ、２９…大気圧センサ、３０…クランク角センサ、３１…排気通路、３２…ＥＧＲ通路、３３…ＥＧＲクーラ、３４…ＥＧＲバルブ、３５…可変動弁機構、Ｐ１…吸気量演算処理、Ｐ２…噴射量決定処理、Ｐ３…インジェクタ駆動処理、Ｐ４…第１吸気量演算処理、Ｐ５…第２吸気量演算処理、Ｐ６…判定処理、Ｐ７…偏差量演算処理、Ｐ８…演算方式切替処理。
【図１】
2020060158.tif 000003
【図２】
2020060158.tif 000004
【図３】
2020060158.tif 000005
【図４】
2020060158.tif 000006
【図５】
2020060158.tif 000007
【図６】
2020060158.tif 000008
【図７】
2020060158.tif 000009
【図８】
2020060158.tif 000010
【図９】
2020060158.tif 000011
【図１０】
2020060158.tif 000012
【図１１】
2020060158.tif 000013
【図１２】
2020060158.tif 000014
【図１３】
2020060158.tif 000015
【図１４】
2020060158.tif 000016
【図１５】
2020060158.tif 000017