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