(57)【要約】【課題】内燃機関に供給される燃料中の金属物質の割合を高い精度にて推定することが可能な制御装置を提供すること。【解決手段】装置３００は、燃料タンク４７ａからインジェクタ４６へ燃料を供給する燃料供給管４７ｃに配設され且つ金属物質を除去する金属除去フィルタ（フィルタ）４７ｄと、フィルタを迂回するバイパス管４７ｅと、燃料がフィルタを通過する通過状態と燃料がバイパス管を通過する迂回状態とに状態を切り替え可能な切替弁４７ｆと、を備える内燃機関１００に適用される。装置は第１の期間にて切替弁の状態を通過状態に設定するとともにノッキングの発生しやすさの程度を表す状態量を取得し、且つ、第２の期間にて切替弁の状態を迂回状態に設定するとともに同状態量を取得する。装置は第１の期間における状態量と第２の期間における状態量とに基づいて燃料中の金属物質の割合を推定する。【選択図】図２
2009114933.tif 000002
【特許請求の範囲】
【請求項１】
燃料を貯留する燃料タンクを備えるとともに、
燃焼室と、前記燃料タンク内の燃料を同燃焼室へ供給するための燃料通路と、が形成され、且つ、同燃焼室にて同燃料通路を介して供給された燃料を含む混合ガスに点火して同混合ガスを燃焼させることにより出力軸を回転駆動するように構成された内燃機関に適用される内燃機関の制御装置であって、
ノッキングの発生しやすさの程度を表す状態量を取得する状態量取得手段と、
前記燃料通路内に配設され且つ同燃料通路内を通過する燃料中の金属物質を除去するように構成されるとともに、同燃料中の同金属物質を除去する除去状態と同燃料中の同金属物質を除去しない非除去状態とに状態を切り替え可能に構成された金属除去手段と、
所定の検査条件が成立している期間のうちの第１の検査期間にて前記金属除去手段の状態を前記除去状態に設定し且つ同検査条件が成立している期間のうちの同第１の検査期間以外の期間である第２の検査期間にて同金属除去手段の状態を前記非除去状態に設定するとともに、同第１の検査期間にて前記状態量取得手段により取得された前記状態量と同第２の検査期間にて同状態量取得手段により取得された同状態量とに基づいて前記燃料通路内を通過する燃料中の前記金属物質の割合を推定する金属物質割合推定手段と、
を備える内燃機関の制御装置。
【請求項２】
請求項１に記載の内燃機関の制御装置であって、
前記燃料通路を通過した燃料の量である通過燃料量を取得する通過燃料量取得手段と、
前記推定された金属物質の割合と、前記取得された通過燃料量と、に基づいて前記金属除去手段が劣化した程度を表す物理量を推定する劣化度推定手段と、
を備える内燃機関の制御装置。
【請求項３】
請求項１又は請求項２に記載の内燃機関の制御装置であって、
ノッキングの程度を表す指標値を取得するノッキング指標値取得手段と、
前記取得された指標値が所定の強度閾値以上である場合、前記混合ガスに点火する時期である点火時期を所定遅角量だけ遅角側に補正する点火時期補正手段と、
を備え、
前記状態量取得手段は、前記状態量として前記補正された点火時期を表す量を取得するように構成された内燃機関の制御装置。
【請求項４】
請求項１乃至請求項３のいずれか一項に記載の内燃機関の制御装置において、
前記検査条件は、前記燃料タンクへ新たに燃料が供給されてから前記金属物質割合推定手段により前記燃料中の金属物質の割合が推定されるまでの期間においてのみ成立する条件である内燃機関の制御装置。
【請求項５】
請求項１乃至請求項４のいずれか一項に記載の内燃機関の制御装置において、
前記検査条件は、前記内燃機関に対して要求される負荷が全負荷近傍の極高負荷閾値よりも高負荷側の負荷であるという極高負荷条件が成立している場合に成立する条件である内燃機関の制御装置。
【請求項６】
請求項３に記載の内燃機関の制御装置であって、
前記検査条件は、前記内燃機関に対して要求される負荷が全負荷近傍の極高負荷閾値よりも軽負荷側の中高負荷閾値よりも高負荷側の負荷であるという中高負荷条件が成立している場合に成立する条件であり、
前記点火時期補正手段は、前記取得された指標値が前記強度閾値よりも小さい場合に前記点火時期を所定進角量だけ進角側に補正するように構成され、且つ、前記検査条件が成立していない期間にて同補正された点火時期が第１の進角限界時期よりも進角側の時期である場合に同補正された点火時期を同第１の進角限界時期に設定するとともに同検査条件が成立している期間にて同補正された点火時期が同第１の進角限界時期よりも進角側の第２の進角限界時期よりも進角側の時期である場合に同補正された点火時期を同第２の進角限界時期に設定するように構成された内燃機関の制御装置。
【請求項７】
請求項１乃至請求項４のいずれか一項に記載の内燃機関の制御装置であって、
前記検査条件は、前記内燃機関に対して要求される負荷が所定の負荷閾値よりも高負荷側の負荷であるという負荷条件及び所定の検査要求条件の両方が成立している場合に成立する条件であり、
前記内燃機関は、変速機を有する車両に搭載され、
前記検査要求条件が成立していない期間にて前記変速機の変速比を第１の変速比に設定し、一方、同検査要求条件が成立している期間にて同変速比を同第１の変速比よりも低い第２の変速比に設定する変速比設定手段を備える内燃機関の制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、燃焼室へ供給される燃料中の金属物質を除去するように構成された内燃機関の制御装置に関する。
【背景技術】
【０００２】
内燃機関に供給される燃料は、ノッキングの発生を抑制するために、金属酸化物又は有機金属化合物等の金属化合物、金属、又は、金属イオン等の金属物質を含むことがある。
【０００３】
このような燃料が燃焼室に供給されると、燃料中の金属物質は、点火プラグや排気通路内に配設された排ガス浄化用触媒装置内の触媒等に付着する。その結果、点火プラグに付着した金属物質を電流が流れることにより、予定していない位置にて火花（異常な火花）が発生する虞がある。また、触媒に付着した金属物質により排ガス浄化用触媒装置内の流路が狭くなって排気抵抗が過大となる虞がある。
【０００４】
そこで、従来の内燃機関は、燃料中の金属物質を除去する金属除去フィルタを備える。この金属除去フィルタは、燃料を貯留する燃料タンクから燃焼室へ燃料を供給するための燃料通路内に配設される。この内燃機関によれば、金属除去フィルタが燃料通路を通過する燃料中の金属物質を除去するので、内燃機関を構成する部材（点火プラグや排ガス浄化用触媒装置等）に付着する金属物質の量を低減することができる（例えば、特許文献１を参照。）。
【特許文献１】特開２００６−１０５０９２号公報
【発明の開示】
【０００５】
ところで、金属除去フィルタに燃料中から除去した金属物質が蓄積することにより、金属除去フィルタは劣化する（即ち、燃料中の金属物質を除去する効率が低下する）。従って、燃料中の金属物質の割合を推定するとともに推定した金属物質の割合に基づいて金属除去フィルタが劣化した程度を推定することにより、金属除去フィルタを交換すべき時期を運転者に通知することが好適であると考えられる。しかしながら、燃料中の金属物質の割合（即ち、金属除去フィルタが劣化した程度）を高い精度にて推定する技術は知られていない。
【０００６】
従って、本発明の目的の一つは、内燃機関に供給される燃料中の金属物質の割合を高い精度にて推定することが可能な制御装置を提供することにある。
【０００７】
かかる目的を達成するため本発明に係る制御装置は、
燃料を貯留する燃料タンクを備えるとともに、
燃焼室と、前記燃料タンク内の燃料を同燃焼室へ供給するための燃料通路と、が形成され、且つ、同燃焼室にて同燃料通路を介して供給された燃料を含む混合ガスに点火して同混合ガスを燃焼させることにより出力軸を回転駆動するように構成された内燃機関に適用される。
【０００８】
更に、本発明に係る制御装置は、
ノッキングの発生しやすさの程度を表す状態量を取得する状態量取得手段と、
前記燃料通路内に配設され且つ同燃料通路内を通過する燃料中の金属物質を除去するように構成されるとともに、同燃料中の同金属物質を除去する除去状態と同燃料中の同金属物質を除去しない非除去状態とに状態を切り替え可能に構成された金属除去手段と、
所定の検査条件が成立している期間のうちの第１の検査期間にて前記金属除去手段の状態を前記除去状態に設定し且つ同検査条件が成立している期間のうちの同第１の検査期間以外の期間である第２の検査期間にて同金属除去手段の状態を前記非除去状態に設定するとともに、同第１の検査期間にて前記状態量取得手段により取得された前記状態量と同第２の検査期間にて同状態量取得手段により取得された同状態量とに基づいて前記燃料通路内を通過する燃料中の前記金属物質の割合を推定する金属物質割合推定手段と、を備える。
ここで、金属物質は、金属酸化物又は有機金属化合物等の金属化合物、金属、及び、金属イオンのうちの少なくとも一つである。
【０００９】
燃料中の金属物質の割合が高くなるほど、ノッキングの発生しやすさの程度は小さくなる（即ち、ノッキングは発生しにくくなる）。従って、金属物質が除去された燃料を燃焼させた場合におけるノッキングの発生しやすさの程度は、金属物質が除去されていない燃料を燃焼させた場合よりも燃料中の金属物質の割合に応じた大きさだけ大きくなる。
【００１０】
従って、上記構成のように、燃料から金属物質を除去する第１の検査期間にて取得された状態量と、燃料から金属物質を除去しない第２の検査期間にて取得された状態量と、に基づいて燃料中の金属物質の割合を推定すれば、燃料中の金属物質の割合を高い精度にて推定することができる。
【００１１】
この結果、例えば、燃料中の金属物質の割合に基づいて金属除去手段が劣化した程度を推定するように制御装置が構成された場合、金属除去手段が劣化した程度をより高い精度にて推定することができる。また、推定された金属物質の割合に応じて点火時期を変更するように制御装置が構成された場合、点火時期をより適切な時期に設定することができる。一方、燃料中の金属物質の割合が所定の閾値よりも高いときにその旨を運転者に通知するように制御装置が構成された場合、より適切な時期にてその旨を通知することができる。
【００１２】
この場合、上記制御装置は、
前記燃料通路を通過した燃料の量である通過燃料量を取得する通過燃料量取得手段と、
前記推定された金属物質の割合と、前記取得された通過燃料量と、に基づいて前記金属除去手段が劣化した程度を表す物理量を推定する劣化度推定手段と、
を備えることが好適である。
【００１３】
金属除去手段に流入した金属物質の量は、金属除去手段が劣化した程度をよく表し、金属物質の割合と通過燃料量とに基づいて推定することができる。従って、上記構成によれば、金属除去手段が劣化した程度を表す物理量（例えば、金属除去手段に蓄積した金属物質の量）を高い精度にて推定することができる。この結果、例えば、金属除去手段が劣化した程度が所定の基準値よりも大きいときに金属除去手段の交換を促す旨を運転者に通知するように制御装置が構成された場合、より適切な時期にてその旨を通知することができる。また、内燃機関を運転するための点火時期等の制御量を金属除去手段が劣化した程度に基づいて設定するように制御装置が構成された場合、制御量をより適切な量に設定することができる。
【００１４】
この場合、上記制御装置は、
ノッキングの程度を表す指標値を取得するノッキング指標値取得手段と、
前記取得された指標値が所定の強度閾値以上である場合、前記混合ガスに点火する時期である点火時期を所定遅角量だけ遅角側に補正する点火時期補正手段と、
を備え、
前記状態量取得手段は、前記状態量として前記補正された点火時期を表す量を取得するように構成されることが好適である。
ここで、点火時期を表す量は、点火時期そのものであってもよいし、所定遅角量であってもよい。
【００１５】
これによれば、ノッキングが発生しやすいほど、点火時期がより遅角側の時期に設定される。従って、点火時期を表す量は、ノッキングの発生しやすさの程度をよく表す。従って、上記構成のように、状態量として補正された点火時期を表す量を取得することにより、燃料中の金属物質の割合を高い精度にて推定することができる。
【００１６】
この場合、前記検査条件は、前記燃料タンクへ新たに燃料が供給されてから前記金属物質割合推定手段により前記燃料中の金属物質の割合が推定されるまでの期間においてのみ成立する条件であることが好適である。
【００１７】
燃料タンクへ新たに燃料が供給されなければ、燃料中の金属物質の割合は変化しない。従って、燃料中の金属物質の割合が一度推定された後は、燃料タンクへ新たに燃料が供給されない限り、金属物質の割合を推定する必要はない。従って、上記構成によれば、無駄に金属物質の割合の推定が行われることを回避することができるので、燃料から金属物質を除去しない期間（第２の検査期間）が無駄に設けられることを回避することができる。この結果、内燃機関を構成する部材（点火プラグや排ガス浄化用触媒装置等）に付着する金属物質の量が過大となることを回避することができる。
【００１８】
この場合、前記検査条件は、前記内燃機関に対して要求される負荷が全負荷近傍の極高負荷閾値よりも高負荷側の負荷であるという極高負荷条件が成立している場合に成立する条件であることが好適である。
【００１９】
内燃機関に対して要求される負荷（要求負荷）が極高負荷閾値よりも軽負荷側の負荷である場合、金属物質が除去された燃料が燃焼に供されても、ノッキングは殆ど発生しない。従って、第１の検査期間にて取得される状態量と、第２の検査期間にて取得される状態量と、の差が極めて小さくなる。その結果、燃料中の金属物質の割合の推定精度が低下する。
【００２０】
一方、要求負荷が極高負荷閾値よりも高負荷側の負荷である場合、ノッキングが発生しやすくなるので、第１の検査期間にて取得される状態量と、第２の検査期間にて取得される状態量と、の差が相対的に大きくなる。従って、上記構成によれば、燃料中の金属物質の割合をより高い精度にて推定することができる。
【００２１】
また、本発明による他の制御装置において、
前記検査条件は、前記内燃機関に対して要求される負荷が「全負荷近傍の極高負荷閾値よりも軽負荷側の中高負荷閾値」よりも高負荷側の負荷であるという「中高負荷条件」が成立している場合に成立する条件であり、
前記点火時期補正手段は、前記取得された指標値が前記強度閾値よりも小さい場合に前記点火時期を所定進角量だけ進角側に補正するように構成され、且つ、前記検査条件が成立していない期間にて同補正された点火時期が第１の進角限界時期よりも進角側の時期である場合に同補正された点火時期を同第１の進角限界時期に設定するとともに同検査条件が成立している期間にて同補正された点火時期が同第１の進角限界時期よりも進角側の第２の進角限界時期よりも進角側の時期である場合に同補正された点火時期を同第２の進角限界時期に設定するように構成されることが好適である。
【００２２】
上述した制御装置においては、要求負荷が極高負荷閾値よりも高負荷側の負荷となるまで、検査条件が成立しないので燃料中の金属物質の割合が推定されない。従って、金属物質の割合が推定される前に、金属除去手段が劣化する程度が過大となる虞があった。これに対し、上記構成によれば、要求負荷が極高負荷閾値よりも軽負荷側の中高負荷閾値よりも高負荷側の負荷である場合に検査条件が成立するので、早期に検査条件が成立する可能性を高めることができる。
【００２３】
更に、取得された指標値が強度閾値よりも小さい場合に点火時期が進角側に補正される。これにより、点火時期を、ノッキングが発生しない範囲において可能な限り進角側の時期に設定することができる。加えて、検査条件が成立していない期間において、補正された点火時期が第１の進角限界時期（例えば、内燃機関の出力が最大となる点火時期）よりも進角側の時期である場合、補正された点火時期は第１の進角限界時期に設定される。これにより、点火時期が過度に進角側の時期に設定されることを防止することができる。この結果、ノッキングが発生しない範囲において可能な限り内燃機関の出力を大きくすることができる。
【００２４】
ところで、要求負荷が極高負荷閾値よりも軽負荷側の負荷である場合、点火時期が第１の進角限界時期に設定されても、ノッキングは殆ど発生しない。従って、検査条件が成立している期間においても、点火時期が第１の進角限界時期までしか進角され得ないと、第２の検査期間（金属物質が燃料から除去されない期間）にてノッキングが発生する時期まで点火時期が進角されない。従って、第２の検査期間において取得される「点火時期を表す量」は、金属物質の割合を十分に反映した値にならない。その結果、燃料中の金属物質の割合を高い精度にて推定することはできない。
【００２５】
一方、点火時期がより進角側の時期に設定されるほど、ノッキングは発生しやすくなる。そこで、上記構成のように、検査条件が成立している期間において、進角限界時期を第１の進角限界時期よりも進角側の第２の進角限界時期に設定することにより、検査条件が成立している期間においては、点火時期が第１の進角限界時期よりも進角側の時期に設定され得る。
【００２６】
これにより、要求負荷が極高負荷閾値よりも軽負荷側の負荷であっても、第２の検査期間においてノッキングが発生する時期まで点火時期が進角され得る。従って、第２の検査期間において取得される「点火時期を表す量」は、金属物質の割合を十分に反映した値になる。この結果、上記構成によれば、燃料中の金属物質の割合の推定精度を十分に高く維持しながら、早期に検査条件が成立する可能性を高めることができる。即ち、燃料中の金属物質の割合を十分に高い精度にて且つ早期に推定することができる。
【００２７】
一方、本発明による他の制御装置であって、
前記検査条件は、前記内燃機関に対して要求される負荷が所定の負荷閾値よりも高負荷側の負荷であるという負荷条件及び所定の検査要求条件の両方が成立している場合に成立する条件であり、
前記内燃機関は、変速機を有する車両に搭載され、
前記検査要求条件が成立していない期間にて前記変速機の変速比を第１の変速比に設定し、一方、同検査要求条件が成立している期間にて同変速比を同第１の変速比よりも低い第２の変速比に設定する変速比設定手段を備えることが好適である。
【００２８】
これによれば、検査要求条件が成立していない期間にて変速機の変速比が第１の変速比に設定される。一方、検査要求条件が成立している期間にて変速比が第１の変速比よりも低い（高速側の）第２の変速比に設定される。これにより、検査要求条件が成立している期間においては、検査要求条件が成立していない場合よりも内燃機関の要求負荷が高負荷側の負荷になる。この結果、早期に負荷条件が成立することにより検査条件が早期に成立する可能性を高めることができる。従って、検査条件が成立しないために燃料中の金属物質の割合が推定されない状態が継続する可能性を低減することができる。
【発明を実施するための最良の形態】
【００２９】
＜第１実施形態＞
以下、本発明による制御装置の各実施形態について図面を参照しながら説明する。図１は、車両ＶＨに搭載された内燃機関１００及び変速機２００にこの制御装置（電気制御装置）３００を適用したシステムの概略構成を示している。
【００３０】
内燃機関１００は、ガソリン燃料噴射式且つ火花点火式の多気筒（４気筒）内燃機関である。内燃機関１００は、混合ガスを形成し形成した混合ガスを燃焼させることにより出力軸としてのクランク軸ＣＳを回転駆動するように構成されている。なお、内燃機関１００の詳細については、後述する。
【００３１】
変速機２００は、クランク軸ＣＳを回転駆動する力を車輪へ伝達するための駆動軸としてのプロペラ軸ＰＳを、クランク軸ＣＳの回転に伴って回転駆動するように構成されている。変速機２００は、クランク軸ＣＳの回転速度をプロペラ軸ＰＳの回転速度により除した値である変速比を連続的に変更可能な無段変速機である。変速機２００は、制御装置３００からの指示信号に応じて、変速比を変更するようになっている。
【００３２】
次に、内燃機関１００の詳細について図２を参照しながら説明を続ける。なお、図２は、一の気筒の断面のみを示しているが、他の気筒も同様な構成を備えている。
【００３３】
内燃機関１００は、４サイクル運転方式により運転されるように構成されている。４サイクル運転方式は、排気上死点ＴＤＣ１から吸気下死点ＢＤＣ１までの吸気行程、吸気下死点ＢＤＣ１から圧縮上死点ＴＤＣ２までの圧縮行程、圧縮上死点ＴＤＣ２から膨張下死点ＢＤＣ２までの膨張行程及び膨張下死点ＢＤＣ２から排気上死点ＴＤＣ１までの排気行程の４つの行程からなる燃焼サイクルを各気筒が繰り返す運転方式である。内燃機関１００は、４つの気筒の燃焼サイクルの位相が１つの行程に対応する大きさ（後述するクランク角度にて１８０°）ずつ異なるように構成されている。
【００３４】
内燃機関１００は、シリンダブロック、シリンダブロックロワーケース及びオイルパン等を含むシリンダブロック部２０と、シリンダブロック部２０の上に固定されるシリンダヘッド部３０と、シリンダブロック部２０に燃料と空気とを含む混合ガスを供給（導入）するための吸気系統４０と、シリンダブロック部２０からの排ガスを外部に放出するための排気系統５０と、を含んでいる。
【００３５】
シリンダブロック部２０は、シリンダ２１、ピストン２２、コンロッド２３及びクランク軸ＣＳを含んでいる。ピストン２２はシリンダ２１内を往復動し、ピストン２２の往復動がコンロッド２３を介してクランク軸ＣＳに伝達され、これによりクランク軸ＣＳが回転駆動させられるようになっている。シリンダ２１、ピストン２２のヘッド及びシリンダヘッド部３０は、燃焼室２５を形成している。
【００３６】
シリンダヘッド部３０は、燃焼室２５に連通した吸気ポート３１、吸気ポート３１を開閉する吸気弁３２、吸気弁３２を駆動する吸気弁駆動機構を構成する可変吸気タイミング装置３３、燃焼室２５に連通した排気ポート３４、排気ポート３４を開閉する排気弁３５、排気弁３５を駆動するエキゾーストカムシャフト３６、点火プラグ３７、及び、点火プラグ３７に与える高電圧を発生するイグニッションコイルを含むイグナイタ３８を備えている。なお、点火プラグ３７及びイグナイタ３８は、燃焼室２５にて火花を発生することにより燃焼室２５内に形成された混合ガスに点火する点火手段を構成している。
【００３７】
可変吸気タイミング装置３３は、インテークカムシャフトを含む。可変吸気タイミング装置３３は、アクチュエータ３３ａによって駆動されることによりインテークカムシャフトの位相角であるカムシャフト位相角を連続的に変更するように構成されている。
【００３８】
吸気系統４０は、各気筒の吸気ポート３１にそれぞれ連通する独立した複数の通路及びそれらの通路を上流側にて集合させる集合部を形成するインテークマニホールド４１、インテークマニホールド４１の集合部側の端部に接続されたサージタンク４２、サージタンク４２に一端が接続され吸気ポート３１とインテークマニホールド４１とサージタンク４２とともに吸気通路を形成する吸気ダクト４３、エアフィルタ４４、スロットル弁４５、燃料噴射手段としてのインジェクタ４６、及び、燃料供給部４７を備えている。
【００３９】
エアフィルタ４４及びスロットル弁４５は、吸気ダクト４３の上流側の端部から下流（サージタンク４２）に向けて順に吸気ダクト４３に配設されている。スロットル弁４５は、吸気ダクト４３に回転可能に支持されている。スロットル弁４５は、スロットル弁アクチュエータ４５ａにより駆動（制御）されることによって、開度（スロットル弁開度ＴＡ）を調整して吸気ダクト４３の通路断面積を調整するようになっている。
【００４０】
インジェクタ４６は、燃料供給部４７に接続されていて、燃料供給部４７から燃料（ガソリン）が供給されるようになっている。インジェクタ４６は、指示信号に応答して、供給された燃料を吸気ポート３１内に噴射することにより燃焼室２５内へ燃料を供給するようになっている。
【００４１】
燃料供給部４７は、燃料タンク４７ａと、燃料ポンプ４７ｂと、燃料供給管４７ｃと、金属除去フィルタ４７ｄと、バイパス管４７ｅと、切替弁４７ｆと、を備える。なお、金属除去フィルタ４７ｄ、バイパス管４７ｅ、及び、切替弁４７ｆは、金属除去手段を構成している。
【００４２】
燃料タンク４７ａは、内燃機関１００の外部から供給された燃料（ガソリン）を貯留するようになっている。燃料ポンプ４７ｂは、プレッシャレギュレータを内蔵したインタンク式のポンプである。燃料ポンプ４７ｂは、燃料供給管４７ｃに接続されている。燃料ポンプ４７ｂは、燃料タンク４７ａ内に貯留されている燃料を燃料供給管４７ｃへ送り出すことにより燃料供給管４７ｃ内の燃料の圧力を一定に維持するようになっている。
【００４３】
燃料供給管４７ｃは、燃料ポンプ４７ｂとインジェクタ４６とを接続する。
このような構成により、燃料ポンプ４７ｂ、燃料供給管４７ｃ、インジェクタ４６及び吸気ポート３１は、燃料タンク４７ａ内の燃料を燃焼室２５へ供給するための燃料通路を形成している。
【００４４】
金属除去フィルタ４７ｄは、図３に示したように、燃料供給管４７ｃに配設されている。金属除去フィルタ４７ｄは、２つの濾紙４７ｄ１，４７ｄ１と、複数の金属物質吸着部材４７ｄ２と、を備える。
【００４５】
一方の濾紙４７ｄ１は、金属除去フィルタ４７ｄのうちの上流側の端部を構成している。他方の濾紙４７ｄ１は、金属除去フィルタ４７ｄのうちの下流側の端部を構成している。各濾紙４７ｄ１は、液体を通過させるとともに、液体中の異物（塵及び金属物質等）を捕集するようになっている。
【００４６】
各金属物質吸着部材４７ｄ２は、金属物質を吸着する部材である。各金属物質吸着部材４７ｄ２は、粒状に形成されている。本例では、各金属物質吸着部材４７ｄ２は、金属イオンを吸着するキレート樹脂からなる。金属物質吸着部材４７ｄ２は、濾紙４７ｄ１と濾紙４７ｄ１との間に充填されている。
【００４７】
再び図２を参照すると、バイパス管４７ｅの一端は、金属除去フィルタ４７ｄよりも上流側の位置（上流側接続位置）において切替弁４７ｆを介して燃料供給管４７ｃに接続されている。バイパス管４７ｅの他端は、金属除去フィルタ４７ｄよりも下流側の位置（下流側接続位置）にて燃料供給管４７ｃに接続されている。即ち、バイパス管４７ｅは、金属除去フィルタ４７ｄを迂回する通路を形成している。
【００４８】
切替弁４７ｆは、三方弁である。切替弁４７ｆは、上流側接続位置にて燃料供給管４７ｃに配設されている。切替弁４７ｆは、指示信号に応答して、フィルタ通過状態と、フィルタ迂回状態と、に状態が切り替わるようになっている。
【００４９】
ここで、フィルタ通過状態は、「燃料供給管４７ｃのうちの上流側接続位置よりも上流側の部分（燃料供給管上流部）４７ｃ１」と「燃料供給管４７ｃのうちの上流側接続位置と下流側接続位置との間の部分（燃料供給管中流部）４７ｃ２」とが連通し且つ「燃料供給管上流部４７ｃ１」と「バイパス管４７ｅ」とが遮断される状態である。また、フィルタ迂回状態は、「燃料供給管上流部４７ｃ１」と「燃料供給管中流部４７ｃ２」とが遮断され且つ「燃料供給管上流部４７ｃ１」と「バイパス管４７ｅ」とが連通する状態である。
【００５０】
以上のような構成により、切替弁４７ｆの状態がフィルタ通過状態に設定された場合、燃料ポンプ４７ｂにより送り出された燃料は、金属除去フィルタ４７ｄを通過した後、インジェクタ４６へ到達する。従って、燃料中の金属物質が金属除去フィルタ４７ｄにより捕集されることにより、燃料から金属物質が除去される。即ち、切替弁４７ｆの状態がフィルタ通過状態に設定されることは、金属除去手段の状態が燃料から金属物質を除去する除去状態に設定されることに対応している。
【００５１】
一方、切替弁４７ｆの状態がフィルタ迂回状態に設定された場合、燃料ポンプ４７ｂにより送り出された燃料は、金属除去フィルタ４７ｄを通過することなくバイパス管４７ｅを通過してインジェクタ４６へ到達する。従って、燃焼室２５へ供給される燃料には、金属物質が含まれる。即ち、切替弁４７ｆの状態がフィルタ迂回状態に設定されることは、金属除去手段の状態が燃料から金属物質を除去しない非除去状態に設定されることに対応している。
【００５２】
排気系統５０は、各気筒の排気ポート３４にそれぞれ連通する独立した複数の通路及びそれらの通路を下流側にて集合させる集合部を形成するエキゾーストマニホールド５１、エキゾーストマニホールド５１の集合部側の端部に接続され且つ排気ポート３４とエキゾーストマニホールド５１とともに排気通路を形成する排気管５２及び排気管５２に配設された三元触媒装置５３を備えている。
【００５３】
一方、このシステムは、熱線式のエアフローメータ６１、スロットルポジションセンサ６２、カムポジションセンサ６３、クランクポジションセンサ６４、アクセル開度センサ６５、ノックセンサ６６、フロート式の燃料残量計６７、車速センサ６８、及び、警告灯６９を備えている。
【００５４】
エアフローメータ６１は、エアフィルタ４４とスロットル弁４５との間の吸気ダクト４３に配設されている。エアフローメータ６１は、吸気ダクト４３内を通過する空気の流量（即ち、吸気流量）を検出し、吸気流量Ｇａを表す信号を出力するようになっている。
【００５５】
スロットルポジションセンサ６２は、スロットル弁４５の開度（スロットル弁開度）を検出し、スロットル弁開度ＴＡを表す信号を出力するようになっている。
【００５６】
カムポジションセンサ６３は、インテークカムシャフトが３６０°だけ回転する（即ち、クランク軸ＣＳが７２０°だけ回転する）間に３回だけ生じるパルスを有する信号（Ｇ２信号）を出力するようになっている。この３つのパルスは、第１のパルスと、第１のパルスが生じてからインテークカムシャフトが９０°だけ回転する（即ち、クランク軸ＣＳが１８０°だけ回転する）と生じる第２のパルスと、第２のパルスが生じてからインテークカムシャフトが９０°だけ回転すると生じる第３のパルスと、からなる。即ち、第３のパルスが生じてからインテークカムシャフトが１８０°だけ回転すると再び第１のパルスが生じる。
【００５７】
クランクポジションセンサ６４は、クランク軸ＣＳが１０°回転する毎に生じる幅狭のパルスを有するとともにクランク軸ＣＳが３６０°回転する毎に生じる幅広のパルスを有する信号を出力するようになっている。この信号は、１分間にクランク軸ＣＳが３６０°だけ回転する回数を表すエンジン回転速度を取得するために使用される。
【００５８】
アクセル開度センサ６５は、運転者によって操作されるアクセルペダルＡＰの操作量を検出し、アクセルペダルの操作量（アクセルペダル操作量）Accpを表す信号を出力するようになっている。
ノックセンサ６６は、シリンダブロック部２０の振動Ｖｃを検出し、振動Ｖｃを表す信号を出力するようになっている。この信号は、ノッキングの程度を表す指標値（ノッキングの発生に関係するノッキング指標値）としてのノッキング強度ＳＮを算出するために使用される。
【００５９】
燃料残量計６７は、燃料ポンプ４７ｂに設けられている。燃料残量計６７は、燃料タンク４７ａ内に貯留されている燃料の量（燃料残量）Ｆａを表す信号を出力するようになっている。
車速センサ６８は、車両の速度である車速Ｖを検出し、検出された車速Ｖを表す信号を出力するようになっている。
【００６０】
警告灯（警報手段）６９は、指示信号に応答して点灯することにより、金属除去フィルタ４７ｄの交換を促す旨を表す情報を運転者に通知するようになっている。
【００６１】
電気制御装置３００は、互いにバスにより接続されたＣＰＵ３０１、ＣＰＵ３０１が実行するプログラム、テーブル（ルックアップテーブル、マップ）、定数等のデータを保持するようにそれらのデータを予め記憶したＲＯＭ３０２、ＣＰＵ３０１の指示に応じてデータを一時的に保持するＲＡＭ３０３、内燃機関１００が運転されている状態にてデータを記憶するとともに記憶したデータを内燃機関１００の運転が停止している間も保持するバックアップＲＡＭ３０４及びＡＤコンバータを含むインターフェース３０５等からなるマイクロコンピュータである。インターフェース３０５は、前記センサ６１〜６８と接続され、ＣＰＵ３０１にセンサ６１〜６８からの信号を供給するとともに、ＣＰＵ３０１の指示に応じて可変吸気タイミング装置３３のアクチュエータ３３ａ、イグナイタ３８、インジェクタ４６、スロットル弁アクチュエータ４５ａ、切替弁４７ｆ、警告灯６９、及び、図１に示した変速機２００に指示信号（駆動信号）を送出するようになっている。
【００６２】
＜作動の概要＞
次に、上記のように構成された電気制御装置３００の作動の概要について説明する。
【００６３】
電気制御装置３００は、内燃機関１００の始動時に切替弁４７ｆの状態をフィルタ通過状態に設定する（即ち、金属除去手段の状態を除去状態に設定する。）。これにより、燃料は金属除去フィルタ４７ｄを通過した後にインジェクタ４６から噴射される。その結果、燃料から金属物質の殆どが除去されるので、内燃機関１００を構成する部材に付着する金属物質の量を低減することができる。
【００６４】
また、電気制御装置３００は、内燃機関１００の始動時、燃料残量計６７により検出された燃料残量Ｆａが前回の内燃機関１００の運転が停止した時点の燃料残量Ｆａｏｌｄよりも増加している（即ち、燃料タンク４７ａへ新たに燃料が供給された）か否かを判定する。
【００６５】
そして、電気制御装置３００は、燃料タンク４７ａに新たな燃料が供給されたと判定し且つ内燃機関１００に対して要求される負荷（要求負荷、本例では、要求トルクＴｑ）が全負荷近傍の極高負荷閾値よりも高負荷側の負荷となった場合、切替弁４７ｆの状態をフィルタ迂回状態に設定する（即ち、金属除去手段の状態を非除去状態に設定する。）。これにより、燃料は金属除去フィルタ４７ｄを通過することなくインジェクタ４６から噴射される。その結果、金属物質が含まれた燃料が燃焼室２５へ供給されるので、金属除去手段の状態が除去状態に設定された場合よりもノッキングが発生しにくくなる。
【００６６】
ところで、この電気制御装置３００は、ノックセンサ６６により検出される振動Ｖｃに基づいて算出されるノッキング強度ＳＮが強度閾値ＳＮｔｈ以上となった場合、点火時期ＳＡをより遅角側に補正する。一方、算出されるノッキング強度ＳＮが強度閾値ＳＮｔｈよりも小さい場合、点火時期ＳＡをより進角側に補正する。即ち、点火時期ＳＡは、ノッキングが発生しない範囲において可能な限り進角側の時期となるように、ノッキング強度ＳＮに基づいて補正される。
【００６７】
従って、金属除去手段の状態が非除去状態に設定されている期間において、点火時期ＳＡは、金属除去手段の状態が除去状態に設定された場合よりも進角側の時期に変更されていく。その後、点火時期ＳＡが略一定になると、制御装置は、点火時期ＳＡを非除去時点火時期ＳＡｎｒｓとして保持する。
【００６８】
次いで、電気制御装置３００は、切替弁４７ｆの状態をフィルタ通過状態に設定する（即ち、金属除去手段の状態を除去状態に設定する。）。これにより、燃料から金属物質が除去されるので、切替弁４７ｆの状態がフィルタ迂回状態に設定される場合よりもノッキングが発生しやすくなる。従って、点火時期ＳＡは、上記保持された非除去時点火時期ＳＡｎｒｓよりも遅角側の時期に変更されていく。その後、点火時期ＳＡが略一定になると、制御装置は、点火時期ＳＡを除去時点火時期ＳＡｒｓとして保持する。
【００６９】
ところで、上述したように、点火時期ＳＡは、ノッキングが発生しない範囲において可能な限り進角側の時期となるように、ノッキング強度ＳＮに基づいて補正される。従って、点火時期ＳＡは、ノッキングが発生しやすいほどより遅角側の時期に設定される。即ち、点火時期ＳＡは、ノッキングの発生しやすさの程度をよく表す。また、燃料中の金属物質の割合に応じて、ノッキングの発生しやすさの程度は変化する。
【００７０】
そこで、電気制御装置３００は、保持された非除去時点火時期ＳＡｎｒｓと、保持された除去時点火時期ＳＡｒｓと、の差に基づいて燃料通路内を通過する燃料中の金属物質の割合（金属物質割合）Ｒｍを推定する。従って、この電気制御装置３００によれば、金属物質割合Ｒｍを高い精度にて推定することができる。
【００７１】
一方、電気制御装置３００は、燃料が燃料タンク４７ａへ最後に供給されてから現時点までに使用（噴射）された燃料の量（燃料使用量）τｔｏｔを算出する。そして、電気制御装置３００は、推定した金属物質割合Ｒｍと、算出した燃料使用量τｔｏｔと、に基づいて金属除去フィルタ４７ｄに蓄積した金属物質の総量（総蓄積量）のうちの、燃料が燃料タンク４７ａへ最後に供給されてから現時点までに使用された燃料によって蓄積した金属物質の量（新規蓄積量）ＤＡｍｔを推定する。
【００７２】
電気制御装置３００は、燃料が燃料タンク４７ａへ最後に供給されるまでに既に金属除去フィルタ４７ｄに蓄積していた金属物質の量（既蓄積量）Ａｍｔに、推定した新規蓄積量ＤＡｍｔを加えた総蓄積量Ａｍｔ＋ＤＡｍｔが閾値量Ａｍｔｔｈ以上となった場合、警告灯６９を点灯させる。これにより、金属除去フィルタ４７ｄの交換を促す旨を表す情報が運転者に通知される。
【００７３】
そして、燃料が燃料タンク４７ａへ新たに供給されると、電気制御装置３００は、既蓄積量Ａｍｔを、直前に算出した総蓄積量Ａｍｔ＋ＤＡｍｔに置換することにより既蓄積量Ａｍｔを更新する。
【００７４】
このようにして、本制御装置によれば、金属物質割合Ｒｍを高い精度にて推定することができるので、金属除去フィルタ４７ｄが劣化した程度を表す総蓄積量Ａｍｔ＋ＤＡｍｔを高い精度にて推定することができる。この結果、適切な時期にて、金属除去フィルタ４７ｄの交換を促す旨を表す情報を運転者に通知することができる。
【００７５】
＜作動の詳細＞
次に、電気制御装置３００の実際の作動について、図４〜図１５を参照しながら説明する。
先ず、燃料が燃料タンク４７ａへ新たに供給されてから最初に内燃機関１００が運転される場合から説明する。この場合、内燃機関１００の運転が開始することを希望する運転者は、内燃機関１００を始動させるためにイグニッション・スイッチＩＳをオフ状態からオン状態へ切り替える。これにより、内燃機関１００の運転が開始する。
【００７６】
（新規燃料供給判定）
ＣＰＵ３０１は、図４にフローチャートにより示した新規燃料供給判定ルーチンを、内燃機関１００の運転が開始した時点にて１回だけ実行するようになっている。
【００７７】
従って、内燃機関１００の運転が開始すると、ＣＰＵ３０１は、ステップ４００から処理を開始してステップ４０５に進み、燃料残量計６７により検出された燃料残量Ｆａを読み込む。次いで、ＣＰＵ３０１は、ステップ４１０に進んで、上記ステップ４０５にて読み込んだ燃料残量Ｆａが前回燃料残量Ｆａｏｌｄよりも多いか否かを判定する。ここで、前回燃料残量Ｆａｏｌｄは、イグニッション・スイッチＩＳがオン状態からオフ状態へと変更された時（即ち、内燃機関１００の運転が停止した時点）に実行される図示しないルーチンにより、その時点にて検出され且つバックアップＲＡＭ３０４に格納される燃料残量Ｆａである。
【００７８】
この状態においては、内燃機関１００の運転が停止している間に燃料が追加されているので、燃料残量Ｆａは、前回燃料残量Ｆａｏｌｄよりも多い。従って、ＣＰＵ３０１は、ステップ４１０にて「Ｙｅｓ」と判定してステップ４１５に進み、検査要求フラグＸｅｄａの値を「１」に設定する。
【００７９】
ここで、検査要求フラグＸｅｄａは、燃料タンク４７ａへ新たに燃料が供給されてから、燃料通路内を通過する燃料中の金属物質の割合（金属物質割合）Ｒｍが未だ推定されていないか否かを表すフラグであって、その値が「１」であれば推定されていないことを示し、一方、「０」であれば推定されていることを示す。
【００８０】
検査要求フラグＸｅｄａの値は、本ルーチンにおいて燃料タンク４７ａへ新たに燃料が供給されたと判定された場合に「１」に設定され、一方、後述する通り、金属物質割合Ｒｍの推定が完了した直後に「０」に設定される（図１１のステップ１１２０を参照。）。また、検査要求フラグＸｅｄａの値は、内燃機関１００の運転が開始してから最初に実行される図示しない初期化ルーチンにおいて「０」に設定される。即ち、検査要求フラグＸｅｄａの値は、燃料タンク４７ａへ新たに燃料が供給されてから金属物質割合Ｒｍが推定されるまでの期間においてのみ「１」に設定される。
【００８１】
次いで、ＣＰＵ３０１は、ステップ４２０に進んで、バックアップＲＡＭ３０４に保持されている既蓄積量Ａｍｔに、バックアップＲＡＭ３０４に保持されている新規蓄積量ＤＡｍｔを加えた値Ａｍｔ＋ＤＡｍｔを、既蓄積量Ａｍｔとして設定する。
【００８２】
ここで、既蓄積量Ａｍｔは、燃料が燃料タンク４７ａへ最後に供給された時点にて金属除去フィルタ４７ｄに蓄積している金属物質の量の推定値である。また、新規蓄積量ＤＡｍｔは、燃料が燃料タンク４７ａへ最後に供給されてから現時点までに使用された燃料によって金属除去フィルタ４７ｄに蓄積した金属物質の量の推定値である。
【００８３】
また、既蓄積量Ａｍｔ及び新規蓄積量ＤＡｍｔは、後述するように、前回の内燃機関１００の運転が停止した時点（即ち、燃料が燃料タンク４７ａへ新たに供給される直前の時点）にてバックアップＲＡＭ３０４に保持された値である。
【００８４】
従って、この時点にて、既蓄積量Ａｍｔに新規蓄積量ＤＡｍｔを加えた値Ａｍｔ＋ＤＡｍｔは、前回の内燃機関１００の運転が停止した時点にて算出されていた最新の総蓄積量の推定値である。ここで、総蓄積量は、金属除去フィルタ４７ｄに蓄積している金属物質の総量である。即ち、値Ａｍｔ＋ＤＡｍｔは、現時点にて金属除去フィルタ４７ｄに蓄積している金属物質の総量の推定値である。なお、既蓄積量Ａｍｔは、金属除去フィルタ４７ｄが交換された場合に「０」に設定されるようになっている。この設定は、作業者が金属除去フィルタ４７ｄを交換した後、電気制御装置３００に接続された図示しないリセットスイッチを１回だけオフからオンへ変更することによりなされる。
【００８５】
次いで、ＣＰＵ３０１は、ステップ４２５に進んで、燃料使用量τｔｏｔを「０」に設定する。ここで、燃料使用量τｔｏｔは、燃料が燃料タンク４７ａへ最後に供給されてから現時点までに使用（噴射）された燃料の量（総量）の推定値である。なお、燃料使用量τｔｏｔは、燃料通路を通過した燃料の量である通過燃料量の推定値であると言うこともできる。
【００８６】
現時点は、燃料が燃料タンク４７ａへ新たに供給された時点である。従って、燃料使用量τｔｏｔが「０」に設定される。なお、燃料使用量τｔｏｔは、金属除去フィルタ４７ｄが交換された場合にも、前述したリセットスイッチの操作に基づいて「０」に設定されるようになっている。また、燃料使用量τｔｏｔは、内燃機関１００の運転が停止する時点にてバックアップＲＡＭ３０４に保持されるようになっている。
そして、ＣＰＵ３０１はステップ４９９に進んで本ルーチンを一旦終了する。
【００８７】
（変速比設定）
更に、ＣＰＵ３０１は、変速機２００の変速比Ｒを設定するため、図５にフローチャートにより示した変速比設定ルーチンを、いずれかの気筒が膨張下死点ＢＤＣ２を迎える毎に実行するようになっている。
【００８８】
従って、所定のタイミングになると、ＣＰＵ３０１は、ステップ５００から処理を開始してステップ５０５に進み、車速センサ６８により検出された車速Ｖを読み込む。次いで、ＣＰＵ３０１は、ステップ５１０に進んで、アクセル開度センサ６５により検出されたアクセルペダル操作量Accpを読み込む。
【００８９】
そして、ＣＰＵ３０１は、ステップ５１５に進んで、車速Ｖ及びアクセルペダル操作量Accpと目標機関出力Ｐｏとの関係を規定するテーブルMapPo、上記ステップ５０５にて読み込んだ車速Ｖ及び上記ステップ５１０にて読み込んだアクセルペダル操作量Accpに基づいて目標機関出力Ｐｏを決定する。
【００９０】
ここで、テーブルMapPoは、車速Ｖが高くなるほど求められる目標機関出力Ｐｏが大きくなるように、且つ、アクセルペダル操作量Accpが大きくなるほど求められる目標機関出力Ｐｏが大きくなるように、予め設定されている。
【００９１】
また、以下の説明において、MapX(a,b)と表記されるテーブルは、変数a及び変数bと値Xとの関係を規定するテーブルを意味することとする。また、値XをテーブルMapX(a,b)に基づいて求めるとは、値Xを現時点の変数a及び現時点の変数bと、テーブルMapX(a,b)と、に基づいて求める（決定する）ことを意味することとする。なお、変数は１つであってもよく３つ以上であってもよい。
【００９２】
次いで、ＣＰＵ３０１は、ステップ５２０に進んで、テーブルMapR(V,Accp)に基づいて変速比Ｒを決定する。
ここで、テーブルMapRは、車速Ｖが高くなるほど求められる変速比Ｒが低くなるように、且つ、アクセルペダル操作量Accpが大きくなるほど求められる変速比Ｒが高くなるように、予め設定されている。
そして、ＣＰＵ３０１はステップ５９９に進んで本ルーチンを一旦終了する。
【００９３】
（制御量決定）
加えて、ＣＰＵ３０１は、図６にフローチャートにより示した制御量決定ルーチンを、図５の変速比設定ルーチンに続いて実行するようになっている。
【００９４】
従って、変速比設定ルーチンの実行が終了すると、ＣＰＵ３０１は、ステップ６００から処理を開始してステップ６０５に進み、上記ステップ５０５にて読み込んだ車速Ｖに上記ステップ５２０にて設定された変速比Ｒを乗じた値Ｖ・Ｒに更に所定の係数Ｋを乗じた値Ｋ・Ｖ・Ｒに、エンジン回転速度の目標値である目標エンジン回転速度ＮＥを設定する。ここで、係数Ｋは、車輪の直径に応じて定められる値である。
【００９５】
次いで、ＣＰＵ３０１は、ステップ６１０に進んで、上記ステップ５１５にて設定された目標機関出力Ｐｏを上記ステップ６０５にて設定された目標エンジン回転速度ＮＥにより除した値Ｐｏ／ＮＥに更に所定の係数Ｌを乗じた値Ｌ・Ｐｏ／ＮＥに、内燃機関１００に対して要求される出力トルクである要求トルク（要求負荷）Ｔｑを設定する。ここで、係数Ｌは、気筒の数及び内燃機関１００の出力性能に応じて定められる値である。
【００９６】
そして、ＣＰＵ３０１は、ステップ６１５に進んで、テーブルMapTA(Tq,NE)に基づいてスロットル弁開度ＴＡを決定する。ここで、テーブルMapTAは、要求トルクＴｑが大きくなるほど求められるスロットル弁開度ＴＡが大きくなるように予め設定されている。
【００９７】
次いで、ＣＰＵ３０１は、ステップ６２０に進んで、エアフローメータ６１により検出された吸気流量Ｇａを読み込む。そして、ＣＰＵ３０１は、ステップ６２５に進んで、上記ステップ６２０にて読み込んだ吸気流量Ｇａを予め設定された目標空燃比（本例では、理論空燃比）ＡｂｙＦにより除した値Ｇａ／ＡｂｙＦに燃料噴射量τを設定する。
【００９８】
そして、ＣＰＵ３０１は、ステップ６３０に進んで、燃料使用量τｔｏｔに上記ステップ６２５にて設定された燃料噴射量τを加えた値τｔｏｔ＋τに、燃料使用量τｔｏｔを置換することにより燃料使用量τｔｏｔを更新する。なお、ステップ６３０の処理が実行されることは、通過燃料量取得手段の機能が達成されることに対応している。
【００９９】
次に、ＣＰＵ３０１は、ステップ６３５に進んで点火時期ＳＡを決定するため、図７のフローチャートに示したステップ７００に進む。なお、図７のルーチンの処理が実行されることは、点火時期補正手段の機能が達成されることに対応している。
【０１００】
そして、ＣＰＵ３０１は、ステップ７０５に進んで、テーブルMapSA0(Tq,NE)に基づいて基本点火時期ＳＡ０を決定する。なお、基本点火時期ＳＡ０は、ＢＴＤＣにより表される。ＢＴＤＣは、気筒毎に定義されている。ＢＴＤＣは、各気筒における圧縮上死点ＴＤＣ２を原点としクランク軸ＣＳの回転方向と逆方向を正にとったクランク軸ＣＳの回転角度（クランク角度）である。以下、本明細書において、点火時期を表す変数は、いずれもＢＴＤＣにより表される。
【０１０１】
次いで、ＣＰＵ３０１は、ステップ７１０に進んで、テーブルMapΔSA(Tq,NE)に基づいて遅角補正量ΔＳＡを決定する。ここで、テーブルMapΔSAは、バックアップＲＡＭ３０４に保持されていて、後述するステップ７６５にて更新されるようになっている。なお、テーブルMapΔSAの初期値は、要求トルクＴｑが大きくなるほど求められる遅角補正量ΔＳＡが大きくなるように予め設定されている。
【０１０２】
そして、ＣＰＵ３０１は、ステップ７１５に進んで、テーブルMapΔSAmin(Tq,NE)に基づいて進角限界補正量ΔＳＡｍｉｎを決定する。本例では、テーブルMapΔSAminは、求められる進角限界補正量ΔＳＡｍｉｎが「０」となるように予め設定されている。
更に、ＣＰＵ３０１は、ステップ７１５にて、テーブルMapΔSAmax(Tq,NE)に基づいて遅角限界補正量ΔＳＡｍａｘを決定する。
【０１０３】
次いで、ＣＰＵ３０１は、ステップ７２０に進んで、ノックセンサ６６により検出されたシリンダブロック部２０の振動Ｖｃに基づいてノッキング強度ＳＮを算出する。本例では、ノッキング強度ＳＮは、クランク軸ＣＳが１８０°だけ回転する間（即ち、１つの気筒の膨張行程）におけるシリンダブロック部２０の振動Ｖｃの振幅の最大値である。なお、ノッキング強度ＳＮは、１つの気筒の膨張行程においてシリンダブロック部２０の振動Ｖｃの振幅が所定の閾値振幅以上となる回数であってもよい。
【０１０４】
次いで、ＣＰＵ３０１は、ステップ７２５に進んで上記ステップ７２０にて算出されたノッキング強度ＳＮが強度閾値ＳＮｔｈよりも大きいか否かを判定する。ここで、強度閾値ＳＮｔｈは、実際にノッキングが発生した場合のノッキング強度ＳＮよりも僅かに小さい値に予め設定されている。
【０１０５】
ノッキングが発生した場合、ノッキング強度ＳＮは強度閾値ＳＮｔｈよりも大きくなる。従って、この場合、ＣＰＵ３０１は、ステップ７２５にて「Ｙｅｓ」と判定してステップ７３０に進み、遅角補正量ΔＳＡに所定の正の変化量Δαを加えた値に遅角補正量ΔＳＡを置換する。なお、変化量Δαは、本明細書において、所定遅角量とも呼ばれる量である。
【０１０６】
一方、ノッキングが発生していない場合、ノッキング強度ＳＮは強度閾値ＳＮｔｈよりも小さくなる。従って、この場合、ＣＰＵ３０１は、ステップ７２５にて「Ｎｏ」と判定してステップ７３５に進み、遅角補正量ΔＳＡから上記変化量Δαよりも小さい所定の正の変化量Δβを減じた値に遅角補正量ΔＳＡを置換する。なお、変化量Δβは、本明細書において、所定進角量とも呼ばれる量である。
【０１０７】
このようにして定められる遅角補正量ΔＳＡは、後述するステップ７６０にて基本点火時期ＳＡ０から減じられる値である。即ち、遅角補正量ΔＳＡが大きいほど、点火時期ＳＡは進角させられる。従って、ステップ７２５及びステップ７３５の処理により、点火時期ＳＡは、ノッキングが発生しない範囲において可能な限り進角側の時期に設定される。
【０１０８】
そして、ＣＰＵ３０１は、ステップ７４０に進んで、上記ステップ７３０又は上記ステップ７３５にて設定された遅角補正量ΔＳＡが、上記ステップ７１５にて設定された進角限界補正量ΔＳＡｍｉｎよりも小さいか否かを判定する。遅角補正量ΔＳＡが進角限界補正量ΔＳＡｍｉｎよりも小さい場合、ＣＰＵ３０１は、ステップ７４０にて「Ｙｅｓ」と判定してステップ７４５に進み、遅角補正量ΔＳＡを進角限界補正量ΔＳＡｍｉｎに設定する。一方、遅角補正量ΔＳＡが進角限界補正量ΔＳＡｍｉｎ以上である場合、ＣＰＵ３０１は、ステップ７４０にて「Ｎｏ」と判定して遅角補正量ΔＳＡを変更しない。
【０１０９】
ところで、前述したように、点火時期ＳＡは、基本点火時期ＳＡ０から遅角補正量ΔＳＡを減じた値ＳＡ０−ΔＳＡに設定される（ステップ７６０を参照。）。従って、ステップ７４０及びステップ７４５の処理が実行されることは、点火時期ＳＡが基本点火時期ＳＡ０から進角限界補正量ΔＳＡｍｉｎを減じた値（進角限界時期）ＳＡ０−ΔＳＡｍｉｎよりも進角側の時期に設定される予定となった場合に点火時期ＳＡが進角限界時期ＳＡ０−ΔＳＡｍｉｎに設定されるように遅角補正量ΔＳＡが補正されることに対応している。即ち、点火時期ＳＡが過度に進角側の時期に設定されることを防止することができる。この結果、ノッキングが発生しない範囲において可能な限り内燃機関１００の出力を大きくすることができる。
【０１１０】
次いで、ＣＰＵ３０１は、ステップ７５０に進んで、上記ステップ７３０又は上記ステップ７３５にて設定された遅角補正量ΔＳＡが、上記ステップ７１５にて設定された遅角限界補正量ΔＳＡｍａｘよりも大きいか否かを判定する。遅角補正量ΔＳＡが遅角限界補正量ΔＳＡｍａｘよりも大きい場合、ＣＰＵ３０１は、ステップ７５０にて「Ｙｅｓ」と判定してステップ７５５に進み、遅角補正量ΔＳＡを遅角限界補正量ΔＳＡｍａｘに設定する。一方、遅角補正量ΔＳＡが遅角限界補正量ΔＳＡｍａｘ以下である場合、ＣＰＵ３０１は、ステップ７５０にて「Ｎｏ」と判定して遅角補正量ΔＳＡを変更しない。
【０１１１】
上述したように、点火時期ＳＡは、基本点火時期ＳＡ０から遅角補正量ΔＳＡを減じた値ＳＡ０−ΔＳＡに設定される（後述するステップ７６０を参照。）。従って、ステップ７５０及びステップ７５５の処理が実行されることは、点火時期ＳＡが基本点火時期ＳＡ０から遅角限界補正量ΔＳＡｍａｘを減じた値（遅角限界時期）ＳＡ０−ΔＳＡｍａｘよりも遅角側の時期に設定される予定となった場合に点火時期ＳＡが遅角限界時期ＳＡ０−ΔＳＡｍａｘに設定されるように遅角補正量ΔＳＡが補正されることに対応している。即ち、点火時期ＳＡが過度に遅角側の時期に設定されることを防止することができる。
【０１１２】
そして、ＣＰＵ３０１は、ステップ７６０に進んで、上記ステップ７０５にて設定された基本点火時期ＳＡ０から上記ステップ７１０〜上記ステップ７５５の処理により設定された遅角補正量ΔＳＡを減じた値ＳＡ０−ΔＳＡに点火時期ＳＡを設定する。なお、このステップ７６０にて設定される点火時期ＳＡは、要求トルクＴｑと目標エンジン回転速度ＮＥとにより決まる運転状態におけるノッキングの発生しやすさの程度を表す状態量である。また、遅角補正量ΔＳＡも、ノッキングの発生しやすさの程度を表す状態量であると言うことができる。
【０１１３】
次いで、ＣＰＵ３０１は、ステップ７６５に進んで、テーブルMapΔSA(Tq,NE)に基づいて、上記ステップ７１０〜上記ステップ７５５の処理により設定された遅角補正量ΔＳＡが求められるように、バックアップＲＡＭ３０４に保持されているテーブルMapΔSA(Tq,NE)を更新する。
【０１１４】
なお、上記ステップ７６５においては、テーブルMapΔSA(Tq,NE)に基づいて、上記ステップ７１０〜上記ステップ７５５の処理により設定された遅角補正量ΔＳＡが求められるように、バックアップＲＡＭ３０４に保持されているテーブルMapΔSA(Tq,NE)が更新されていたが、テーブルMapΔSA(Tq,NE)に基づいて、上記ステップ７１０にて設定された遅角補正量ΔＳＡ（＝MapΔSA(Tq,NE)）に０〜１までの係数γを乗じた値γ・MapΔSA(Tq,NE)と、上記ステップ７１０〜上記ステップ７５５の処理により設定された遅角補正量ΔＳＡに値１−γを乗じた値（１−γ）・ΔＳＡと、の和γ・MapΔSA(Tq,NE)＋（１−γ）・ΔＳＡが求められるように、バックアップＲＡＭ３０４に保持されているテーブルMapΔSA(Tq,NE)が更新されてもよい。
【０１１５】
そして、ＣＰＵ３０１はステップ７９９を経由して図６のステップ６９９に進み、図６のルーチンを一旦終了する。
【０１１６】
（運転領域判定）
更に、ＣＰＵ３０１は、図８にフローチャートにより示した運転領域判定ルーチンを、図６の制御量決定ルーチンに続いて実行するようになっている。
【０１１７】
従って、制御量決定ルーチンの実行が終了すると、ＣＰＵ３０１は、ステップ８００から処理を開始してステップ８０５に進み、現時点の要求トルクＴｑ及び現時点の目標エンジン回転速度ＮＥ（これらは内燃機関１００の運転状態を表す。）と、図９に示した運転領域マップと、に基づいて内燃機関１００の運転状態が極高負荷運転領域Ａ１内にあるか否かを判定する。
【０１１８】
図９に示したように、運転領域は、極高負荷運転領域Ａ１と中軽負荷運転領域Ａ２とからなる。極高負荷運転領域Ａ１は、任意の目標エンジン回転速度ＮＥに対して要求トルクＴｑが略最大となる全負荷近傍の運転領域である。即ち、極高負荷運転領域Ａ１は、目標エンジン回転速度ＮＥが中回転速度閾値よりも低い運転領域のうちの、要求トルクＴｑが全負荷近傍の極高負荷閾値（曲線Ｌ１）よりも高負荷側の運転領域である。一方、中軽負荷運転領域Ａ２は、極高負荷運転領域Ａ１以外の領域である。
【０１１９】
この時点では、内燃機関１００の運転が開始した直後であるので、要求トルクＴｑは比較的小さい。従って、内燃機関１００の運転状態は、中軽負荷運転領域Ａ２内にある。従って、ＣＰＵ３０１はステップ８０５にて「Ｎｏ」と判定し、ステップ８１０に進んで、負荷フラグＸｅｄｂの値を「０」に設定する。
【０１２０】
ここで、負荷フラグＸｅｄｂは、内燃機関１００の運転状態が極高負荷運転領域Ａ１内にあるか否かを表すフラグであって、その値が「１」であれば極高負荷運転領域Ａ１内にあり、「０」であれば中軽負荷運転領域Ａ２内にあることを示す。
そして、ＣＰＵ３０１はステップ８９９に進んで本ルーチンを一旦終了する。
【０１２１】
（切替弁制御）
加えて、ＣＰＵ３０１は、図１０にフローチャートにより示した切替弁制御ルーチンを、図８の運転領域判定ルーチンに続いて実行するようになっている。なお、図１０のルーチンの処理が実行されることは、金属物質割合推定手段の機能の一部が達成されることに対応している。
【０１２２】
従って、運転領域判定ルーチンの実行が終了すると、ＣＰＵ３０１は、ステップ１０００から処理を開始してステップ１００５に進み、検査要求フラグＸｅｄａの値が「１」であり且つ負荷フラグＸｅｄｂの値が「１」であるか否かを判定する。
【０１２３】
なお、検査要求フラグＸｅｄａの値が「１」である（即ち、燃料が燃料タンク４７ａへ新たに供給された後に未だ金属物質割合Ｒｍが推定されていない）という条件は、本明細書において、検査要求条件とも呼ばれる条件である。また、負荷フラグＸｅｄｂの値が「１」である（即ち、内燃機関１００の運転状態が極高負荷運転領域Ａ１内にある）という条件は、極高負荷条件とも呼ばれる条件であり、及び、負荷条件とも呼ばれる条件である。加えて、検査要求条件及び極高負荷条件の両方が成立している（即ち、検査要求フラグＸｅｄａの値が「１」であり且つ負荷フラグＸｅｄｂの値が「１」である）という条件は、検査条件とも呼ばれる条件である。
【０１２４】
この時点では、検査要求フラグＸｅｄａの値は「１」であり、一方、負荷フラグＸｅｄｂの値は「０」である。従って、ＣＰＵ３０１は、ステップ１００５にて「Ｎｏ」と判定してステップ１０１０に進み、除去状態フラグＸｓの値が「０」であるか否かを判定する。
【０１２５】
ここで、除去状態フラグＸｓは、切替弁４７ｆの状態がフィルタ通過状態に設定されているか否かを表すフラグであって、その値が「１」であればフィルタ通過状態に設定されており、「０」であればフィルタ迂回状態に設定されていることを示す。なお、除去状態フラグＸｓの値は、上記初期化ルーチンにおいて「１」に設定されるようになっている。
【０１２６】
従って、この時点では、除去状態フラグＸｓの値は「１」である（即ち、切替弁４７ｆの状態は、フィルタ通過状態に設定されている。）。従って、ＣＰＵ３０１は、ステップ１０１０にて「Ｙｅｓ」と判定してステップ１０９９に進み本ルーチンを一旦終了する。
【０１２７】
なお、上記ステップ１００５にて「Ｎｏ」と判定された場合であって除去状態フラグＸｓの値が「１」でない（即ち、切替弁４７ｆの状態がフィルタ迂回状態に設定されている）場合において、ＣＰＵ３０１がステップ１０１０に進んだとき、ＣＰＵ３０１はステップ１０１０にて「Ｎｏ」と判定してステップ１０１５に進み、切替弁４７ｆの状態をフィルタ通過状態に設定するように切替弁４７ｆを制御する。次いで、ＣＰＵ３０１は、ステップ１０２０に進んで、除去状態フラグＸｓの値を「１」に設定した後、ステップ１０９９に進んでこのルーチンを一旦終了する。
【０１２８】
（金属物質割合推定）
更に、ＣＰＵ３０１は、図１１にフローチャートにより示した金属物質割合推定ルーチンを、図１０の切替弁制御ルーチンに続いて実行するようになっている。なお、図１１のルーチンの処理が実行されることは、金属物質割合推定手段の機能の一部が達成されることに対応している。
【０１２９】
従って、切替弁制御ルーチンの実行が終了すると、ＣＰＵ３０１は、ステップ１１００から処理を開始してステップ１１０５に進み、非除去状態検査完了フラグＸｎｒｓの値が「１」であり、且つ、除去状態検査完了フラグＸｒｓの値が「１」であるか否かを判定する。
【０１３０】
ここで、非除去状態検査完了フラグＸｎｒｓは、後述するように、切替弁４７ｆの状態をフィルタ迂回状態に設定した期間において設定される点火時期ＳＡが略一定となることにより、この点火時期ＳＡを非除去時点火時期ＳＡｎｒｓとして保持したか否かを表すフラグであって、その値が「１」であれば保持しており、「０」であれば保持していないことを示す。
【０１３１】
後述する通り、非除去状態検査完了フラグＸｎｒｓの値は、本ルーチンにおいて金属物質割合Ｒｍが推定された直後に「０」に設定され（ステップ１１２０を参照。）、図１３のルーチンにて点火時期ＳＡが非除去時点火時期ＳＡｎｒｓとして保持された直後に「１」に設定される（図１３のステップ１３３０を参照。）。なお、非除去状態検査完了フラグＸｎｒｓの値は、上記初期化ルーチンにおいても「０」に設定されるようになっている。
【０１３２】
また、除去状態検査完了フラグＸｒｓは、後述するように、切替弁４７ｆの状態をフィルタ通過状態に設定した期間において設定される点火時期ＳＡが略一定となることにより、この点火時期ＳＡを除去時点火時期ＳＡｒｓとして保持したか否かを表すフラグであって、その値が「１」であれば保持しており、「０」であれば保持していないことを示す。
【０１３３】
後述する通り、除去状態検査完了フラグＸｒｓの値は、本ルーチンにおいて金属物質割合Ｒｍが推定された直後に「０」に設定され（ステップ１１２０を参照。）、図１４のルーチンにて点火時期ＳＡが除去時点火時期ＳＡｒｓとして保持された直後に「１」に設定される（図１４のステップ１４３０を参照。）。なお、除去状態検査完了フラグＸｒｓの値は、上記初期化ルーチンにおいても「０」に設定されるようになっている。
【０１３４】
この時点では、非除去状態検査完了フラグＸｎｒｓの値及び除去状態検査完了フラグＸｒｓの値はともに「０」である。従って、ＣＰＵ３０１は、ステップ１１０５にて「Ｎｏ」と判定してステップ１１９９に直接進み、本ルーチンを一旦終了する。
【０１３５】
（フィルタ劣化度推定）
加えて、ＣＰＵ３０１は、図１２にフローチャートにより示したフィルタ劣化度推定ルーチンを、図１１の金属物質割合推定ルーチンに続いて実行するようになっている。なお、図１２のルーチンの処理が実行されることは、劣化度推定手段の機能が達成されることに対応している。
【０１３６】
従って、金属物質割合推定ルーチンの実行が終了すると、ＣＰＵ３０１は、ステップ１２００から処理を開始してステップ１２０５に進み、バックアップＲＡＭ３０４に保持されている金属物質割合Ｒｍに燃料使用量τｔｏｔを乗じた値Ｒｍ・τｔｏｔに新規蓄積量ＤＡｍｔを設定する。
【０１３７】
この時点では、新たに供給された燃料に対する金属物質割合Ｒｍの推定は未だ完了していない。従って、新たに供給された燃料に対する金属物質割合Ｒｍの推定が完了するまでの間、過去に推定された金属物質割合Ｒｍの最新の値が代用される。なお、金属物質割合Ｒｍ及び新規蓄積量ＤＡｍｔは、内燃機関１００の運転が停止する時点にてバックアップＲＡＭ３０４に保持されるようになっている。
【０１３８】
次いで、ＣＰＵ３０１は、ステップ１２１０に進んで、既蓄積量Ａｍｔに新規蓄積量ＤＡｍｔを加えた値（総蓄積量）Ａｍｔ＋ＤＡｍｔが所定の閾値量Ａｍｔｔｈよりも大きいか否かを判定する。なお、総蓄積量Ａｍｔ＋ＤＡｍｔは、金属除去フィルタ４７ｄが劣化した程度を表す物理量であると言うことができる。
【０１３９】
この時点では、総蓄積量Ａｍｔ＋ＤＡｍｔは閾値量Ａｍｔｔｈよりも小さい。従って、ＣＰＵ３０１は、ステップ１２１０にて「Ｎｏ」と判定してステップ１２９９に直接進みこのルーチンを一旦終了する。
【０１４０】
その後、運転者がアクセルペダルＡＰを操作することにより、アクセルペダル操作量Accpが大きくなる。その結果、内燃機関１００の運転状態が極高負荷運転領域Ａ１内の運転状態となる。
【０１４１】
この状態において、ＣＰＵ３０１が図８の運転領域判定ルーチンの処理を開始してステップ８０５に進んだとき、ＣＰＵ３０１は、内燃機関１００の運転状態が極高負荷運転領域Ａ１内にあるか否かを判定するステップ８０５にて「Ｙｅｓ」と判定してステップ８１５に進む。そして、ＣＰＵ３０１は、ステップ８１５にて負荷フラグＸｅｄｂの値を「１」に設定した後、ステップ８９９に進んでこのルーチンを一旦終了する。
【０１４２】
更に、ＣＰＵ３０１が図１０の切替弁制御ルーチンの処理を開始してステップ１００５に進んだとき、ＣＰＵ３０１は、検査要求フラグＸｅｄａの値及び負荷フラグＸｅｄｂの値の両方が「１」であるか否かを判定するステップ１００５にて「Ｙｅｓ」と判定してステップ１０２５に進む。
【０１４３】
ＣＰＵ３０１は、ステップ１０２５にて非除去状態検査完了フラグＸｎｒｓの値が「０」であるか否かを判定する。この時点では、非除去状態検査完了フラグＸｎｒｓの値が「０」であるから、ＣＰＵ３０１はステップ１０２５にて「Ｙｅｓ」と判定してステップ１０３０に進んで非除去制御を実行するため、図１３のフローチャートに示したステップ１３００に進む。
【０１４４】
なお、図１３のルーチンの処理が実行されることは、金属物質割合推定手段の機能の一部が達成されることに対応している。また、検査要求フラグＸｅｄａの値及び負荷フラグＸｅｄｂの値の両方が「１」であり且つ非除去状態検査完了フラグＸｎｒｓの値が「０」である期間は、本明細書において、第２の検査期間とも呼ばれる期間である。
【０１４５】
ＣＰＵ３０１は、ステップ１３０５に進んで除去状態フラグＸｓの値が「０」であるか否かを判定する。この時点では、除去状態フラグＸｓの値は、「１」に設定されている。従って、ＣＰＵ３０１は、ステップ１３０５にて「Ｎｏ」と判定してステップ１３１０に進み、切替弁４７ｆの状態をフィルタ迂回状態に設定するように切替弁４７ｆを制御する。次いで、ＣＰＵ３０１は、ステップ１３１５に進んで、除去状態フラグＸｓの値を「０」に設定する。
【０１４６】
そして、ＣＰＵ３０１は、ステップ１３２０に進んで、切替弁４７ｆの状態がフィルタ迂回状態に設定されている期間において上記ステップ７６０にて設定される点火時期ＳＡが略一定であるか否かを判定する。ここでは、「点火時期ＳＡが略一定であるか否か」の判定は、切替弁４７ｆの状態がフィルタ迂回状態に設定されている期間において上記ステップ７６０にて設定される点火時期ＳＡを判定用点火時期としてＲＡＭ３０３に保持させるとともに、ＲＡＭ３０３に保持されている判定用点火時期のうちの最新の１０個から標準偏差を算出し、算出した標準偏差が所定の閾値偏差よりも小さいか否かに基づいて行われる。
【０１４７】
この時点では、判定用点火時期はＲＡＭ３０３に保持されていない。従って、ＣＰＵ３０１は、ステップ１３２０にて「Ｎｏ」と判定し、ステップ１３９９を経由して図１０のステップ１０３５に進む。
【０１４８】
ＣＰＵ３０１は、ステップ１０３５にて非除去状態検査完了フラグＸｎｒｓの値が「１」であり、且つ、除去状態検査完了フラグＸｒｓの値が「０」であるか否かを判定する。この時点では、非除去状態検査完了フラグＸｎｒｓの値及び除去状態検査完了フラグＸｒｓの値の両方が「０」であるから、ＣＰＵ３０１は、ステップ１０３５にて「Ｎｏ」と判定してステップ１０９９に直接進み、このルーチンを一旦終了する。
【０１４９】
そして、時間が経過すると、点火時期ＳＡが収束するので、ＲＡＭ３０３に保持されている判定用点火時期のうちの最新の１０個から算出される標準偏差が上記閾値偏差よりも小さくなる。この時点にて、ＣＰＵ３０１が図１３の非除去制御ルーチンの処理を開始してステップ１３２０に進んだとき、ＣＰＵ３０１は、ステップ１３２０にて「Ｙｅｓ」と判定してステップ１３２５に進む。
【０１５０】
そして、ＣＰＵ３０１は、ステップ１３２５にて非除去時点火時期ＳＡｎｒｓを上記ステップ７６０にて設定された点火時期ＳＡに設定する。なお、ステップ１３２５の処理が実行されることは、状態量取得手段の機能の一部が達成されることに対応している。また、このステップ１３２５にて設定される非除去時点火時期ＳＡｎｒｓは、第２の検査期間にて取得された状態量である。更に、ステップ１３２５においては、過去数回分の点火時期ＳＡの平均値を非除去時点火時期ＳＡｎｒｓとして取り込んでもよい。
【０１５１】
次いで、ＣＰＵ３０１は、ステップ１３３０に進んで、非除去状態検査完了フラグＸｎｒｓの値を「１」に設定する。そして、ＣＰＵ３０１は、ステップ１３９９を経由して図１０のステップ１０３５以降のステップに進んで、図１０の切替弁制御ルーチンを一旦終了する。
【０１５２】
そして、クランク軸ＣＳが１８０°だけ回転すると、次の気筒が膨張下死点ＢＤＣ２を迎える。この時点にて、ＣＰＵ３０１が図１０の切替弁制御ルーチンの処理を開始してステップ１０２５に進んだとき、ＣＰＵ３０１は、非除去状態検査完了フラグＸｎｒｓの値が「０」であるか否かを判定するステップ１０２５にて「Ｎｏ」と判定してステップ１０３５に進む。
【０１５３】
ＣＰＵ３０１は、ステップ１０３５にて、非除去状態検査完了フラグＸｎｒｓの値が「１」であり、且つ、除去状態検査完了フラグＸｒｓの値が「０」であるか否かを判定する。この時点では、非除去状態検査完了フラグＸｎｒｓの値は「１」であり、且つ、除去状態検査完了フラグＸｒｓの値は「０」である。従って、ＣＰＵ３０１は、ステップ１０３５にて「Ｙｅｓ」と判定してステップ１０４０に進んで除去制御を実行するため、図１４のフローチャートに示したステップ１４００に進む。
【０１５４】
なお、図１４のルーチンの処理が実行されることは、金属物質割合推定手段の機能の一部が達成されることに対応している。また、検査要求フラグＸｅｄａの値及び負荷フラグＸｅｄｂの値の両方が「１」であり、非除去状態検査完了フラグＸｎｒｓの値が「１」であり、且つ、除去状態検査完了フラグＸｒｓの値が「０」である期間は、本明細書において、第１の検査期間とも呼ばれる期間である。
【０１５５】
ＣＰＵ３０１は、ステップ１４０５に進んで除去状態フラグＸｓの値が「１」であるか否かを判定する。この時点では、除去状態フラグＸｓの値は、「０」に設定されている。従って、ＣＰＵ３０１は、ステップ１４０５にて「Ｎｏ」と判定してステップ１４１０に進み、切替弁４７ｆの状態をフィルタ通過状態とするように切替弁４７ｆを制御する。次いで、ＣＰＵ３０１は、ステップ１４１５に進んで、除去状態フラグＸｓの値を「１」に設定する。
【０１５６】
そして、ＣＰＵ３０１は、ステップ１４２０に進んで、切替弁４７ｆの状態がフィルタ通過状態に設定されている期間において上記ステップ７６０にて設定される点火時期ＳＡが略一定であるか否かを判定する。ここでは、「点火時期ＳＡが略一定であるか否か」の判定は、切替弁４７ｆの状態がフィルタ通過状態に設定されている期間において上記ステップ７６０にて設定される点火時期ＳＡを判定用点火時期としてＲＡＭ３０３に保持させるとともに、ＲＡＭ３０３に保持されている判定用点火時期のうちの最新の１０個から標準偏差を算出し、算出した標準偏差が所定の閾値偏差よりも小さいか否かに基づいて行われる。
【０１５７】
この時点では、点判定用点火時期はＲＡＭ３０３に保持されていない。従って、ＣＰＵ３０１は、ステップ１４２０にて「Ｎｏ」と判定し、ステップ１４９９を経由して図１０のステップ１０９９に進み、図１０の切替弁制御ルーチンを一旦終了する。
【０１５８】
そして、時間が経過すると、点火時期ＳＡが収束するので、ＲＡＭ３０３に保持されている判定用点火時期のうちの最新の１０個から算出される標準偏差が上記閾値偏差よりも小さくなる。この時点にて、ＣＰＵ３０１が図１４の除去制御ルーチンの処理を開始してステップ１４２０に進んだとき、ＣＰＵ３０１は、ステップ１４２０にて「Ｙｅｓ」と判定してステップ１４２５に進む。
【０１５９】
そして、ＣＰＵ３０１は、ステップ１４２５にて除去時点火時期ＳＡｒｓを上記ステップ７６０にて設定された点火時期ＳＡに設定する。なお、ステップ１４２５の処理が実行されることは、状態量取得手段の機能の一部が達成されることに対応している。また、このステップ１４２５にて設定される除去時点火時期ＳＡｒｓは、第１の検査期間にて取得された状態量である。更に、ステップ１４２５においては、過去数回分の点火時期ＳＡの平均値を除去時点火時期ＳＡｒｓとして取り込んでもよい。
【０１６０】
次いで、ＣＰＵ３０１は、ステップ１４３０に進んで、除去状態検査完了フラグＸｒｓの値を「１」に設定する。そして、ＣＰＵ３０１は、ステップ１４９９を経由して図１０のステップ１０９９に進んで、図１０の切替弁制御ルーチンを一旦終了する。
【０１６１】
この状態において、ＣＰＵ３０１が図１１の金属物質割推定ルーチンの処理を開始してステップ１１０５に進んだとき、ＣＰＵ３０１は、非除去状態検査完了フラグＸｎｒｓの値及び除去状態検査完了フラグＸｒｓの値の両方が「１」であるか否かを判定するステップ１１０５にて「Ｙｅｓ」と判定してステップ１１１０に進む。
【０１６２】
ＣＰＵ３０１は、ステップ１１１０にて、上記ステップ１３２５にて設定された非除去時点火時期ＳＡｎｒｓから上記ステップ１４２５にて設定された除去時点火時期ＳＡｒｓを減じた値ＳＡｎｒｓ−ＳＡｒｓを点火時期差ＤＳＡとして設定する。次いで、ＣＰＵ３０１は、ステップ１１１５に進んで、テーブルMapRm(DSA)に基づいて金属物質割合Ｒｍを決定するとともに、決定した金属物質割合ＲｍをバックアップＲＡＭ３０４に格納する。ここで、テーブルMapRmは、図１５に示したように、点火時期差ＤＳＡが大きくなるほど、求められる金属物質割合Ｒｍが大きくなるように予め設定されている。
【０１６３】
そして、ＣＰＵ３０１は、ステップ１１２０に進んで、非除去状態検査完了フラグＸｎｒｓの値、除去状態検査完了フラグＸｒｓの値、及び、検査要求フラグＸｅｄａの値のそれぞれを「０」に設定する。次いで、ＣＰＵ３０１は、ステップ１１９９に進んでこのルーチンを一旦終了する。
【０１６４】
そして、クランク軸ＣＳが１８０°だけ回転すると、次の気筒が膨張下死点ＢＤＣ２を迎える。この時点にて、ＣＰＵ３０１が図１０の切替弁制御ルーチンの処理を開始してステップ１００５に進んだとき、ＣＰＵ３０１は、検査要求フラグＸｅｄａの値及び負荷フラグＸｅｄｂの値の両方が「１」であるか否かを判定するステップ１００５にて「Ｎｏ」と判定してステップ１０１０に進む。
【０１６５】
ＣＰＵ３０１は、除去状態フラグＸｓの値が「１」であるか否かを判定するステップ１０１０にて「Ｙｅｓ」と判定してステップ１０９９に直接進み、このルーチンを一旦終了する。
【０１６６】
このような処理は、再び燃料が燃料タンク４７ａヘ新たに供給されたと判定される時点、及び、総蓄積量Ａｍｔ＋ＤＡｍｔが閾値量Ａｍｔｔｈよりも多くなる時点、のうちの先に（早期に）到来する方の時点までの間、繰り返し実行される。
【０１６７】
その後、内燃機関１００の運転が継続することにより燃料使用量τｔｏｔが増加する。従って、新規蓄積量ＤＡｍｔが増加する。この結果、ある時点にて、総蓄積量Ａｍｔ＋ＤＡｍｔが閾値量Ａｍｔｔｈよりも多くなった場合、ＣＰＵ３０１が図１２のフィルタ劣化度推定ルーチンの処理を開始するとＣＰＵ３０１がステップ１２１０に進んだとき、ＣＰＵ３０１は、ステップ１２１０にて「Ｙｅｓ」と判定してステップ１２１５に進む。
【０１６８】
ＣＰＵ３０１は、ステップ１２１５にて警告灯６９を点灯させる。これにより、金属除去フィルタ４７ｄの交換を促す旨を表す情報が運転者に通知される。この結果、運転者は、適切な時期にて金属除去フィルタ４７ｄを交換することができる。従って、金属除去フィルタ４７ｄが過度に劣化した状態にて内燃機関１００が運転され続けることを回避することができるので、内燃機関１００を構成する部材（点火プラグ３７及び三元触媒装置５３等）に付着する金属物質の量が過大となることを回避することができる。
そして、ＣＰＵ３０１はステップ１２９９に進んで本ルーチンを一旦終了する。
【０１６９】
以上、説明したように、本発明による制御装置の第１実施形態によれば、検査条件が成立している期間のうちの第２の検査期間にて、切替弁４７ｆの状態がフィルタ迂回状態に設定される（即ち、金属除去手段の状態が非除去状態に設定される。）。一方、検査条件が成立している期間のうちの第１の検査期間にて、切替弁４７ｆの状態がフィルタ通過状態に設定される（即ち、金属除去手段の状態が除去状態に設定される。）。
【０１７０】
更に、第１の検査期間にて取得された除去時点火時期ＳＡｒｓと、第２の検査期間にて取得された非除去時点火時期ＳＡｎｒｓと、の差に基づいて燃料中の金属物質割合Ｒｍが推定される。これにより、燃料中の金属物質割合Ｒｍを高い精度にて推定することができる。
【０１７１】
加えて、上記第１実施形態によれば、金属物質割合Ｒｍと燃料使用量τｔｏｔとに基づいて金属除去フィルタ４７ｄに蓄積した金属物質の総量Ａｍｔ＋ＤＡｍｔが推定される。これにより、金属除去フィルタ４７ｄが劣化した程度を高い精度にて推定することができる。
【０１７２】
また、上記第１実施形態においては、ノッキングが発生した場合に点火時期ＳＡがより遅角側の時期に補正されるとともに、ノッキングの発生しやすさの程度を表す状態量として点火時期ＳＡが採用される。これにより、燃料中の金属物質割合Ｒｍを高い精度にて推定することができる。
【０１７３】
更に、上記第１実施形態において、検査条件は、燃料タンク４７ａへ新たに燃料が供給されてから燃料中の金属物質割合Ｒｍが推定されるまでの期間においてのみ成立する検査要求条件が成立している場合に限り成立する。従って、無駄に金属物質割合Ｒｍの推定が行われることを回避することができるので、燃料から金属物質を除去しない期間（第２の検査期間）が無駄に設けられることを回避することができる。この結果、内燃機関１００を構成する部材（点火プラグ３７や三元触媒装置５３等）に付着する金属物質の量が過大となることを回避することができる。
【０１７４】
加えて、上記第１実施形態において、検査条件は、内燃機関１００に対して要求される負荷（要求負荷）が極高負荷閾値よりも高負荷側の負荷であるという極高負荷条件が成立している場合に限り成立する。従って、ノッキングが発生しやすい状態において取得された非除去時点火時期ＳＡｎｒｓ及び除去時点火時期ＳＡｒｓに基づいて金属物質割合Ｒｍが推定されるので、燃料中の金属物質割合Ｒｍをより高い精度にて推定することができる。
【０１７５】
＜第２実施形態＞
次に、本発明の第２実施形態に係る制御装置について説明する。第２実施形態に係る制御装置は、上記第１実施形態に係る制御装置に対して、燃料タンク４７ａへ新たに燃料が供給されてから燃料中の金属物質割合Ｒｍが推定されるまでの期間において変速比Ｒを他の期間における変速比よりも低い（高速側の）変速比に設定する点のみにおいて相違している。従って、以下、かかる相違点を中心として説明する。
【０１７６】
この制御装置は、図５のルーチンに代えて、図１６にフローチャートにより示した変速比設定ルーチンを実行する。この変速比設定ルーチンは、図５のルーチンのステップ５２０の処理をステップ１６０５〜ステップ１６１５の処理に置換したルーチンである。なお、図１６のルーチンの処理が実行されることは、変速比設定手段の機能が達成されることに対応している。
【０１７７】
先ず、燃料中の金属物質割合Ｒｍが推定された後の時点であって、燃料タンク４７ａへ新たに燃料が供給される前の時点から説明する。この時点にて、ＣＰＵ３０１が図１６の変速比設定ルーチンの処理を開始すると、ＣＰＵ３０１は、ステップ５０５〜ステップ５１５の各処理を実行した後、ステップ１６０５に進む。
【０１７８】
ＣＰＵ３０１は、ステップ１６０５にて検査要求フラグＸｅｄａの値が「１」である（即ち、検査要求条件が成立している）か否かを判定する。この時点では、上述したように、検査要求フラグＸｅｄａの値は「０」に設定されている。従って、ＣＰＵ３０１は、ステップ１６０５にて「Ｎｏ」と判定してステップ１６１０に進み、テーブルMapR1(V,Accp)に基づいて第１の変速比Ｒ１を決定し、決定した第１の変速比Ｒ１に変速比Ｒを設定する。
【０１７９】
ここで、テーブルMapR1は、車速Ｖが高くなるほど求められる第１の変速比Ｒ１が低くなるように、且つ、アクセルペダル操作量Accpが大きくなるほど求められる第１の変速比Ｒ１が高くなるように、予め設定されている。
そして、ＣＰＵ３０１はステップ１６９９に進んで本ルーチンを一旦終了する。
【０１８０】
その後、燃料タンク４７ａへ新たに燃料が供給された場合について説明を続ける。この場合、上述したように、図４のルーチンのステップ４１５にて検査要求フラグＸｅｄａの値は「１」に設定される。従って、ＣＰＵ３０１が図１６の変速比設定ルーチンの処理を開始してステップ１６０５に進んだとき、ＣＰＵ３０１は、ステップ１６０５にて「Ｙｅｓ」と判定してステップ１６１５に進み、テーブルMapR2(V,Accp)に基づいて第２の変速比Ｒ２を決定し、決定した第２の変速比Ｒ２に変速比Ｒを設定する。
【０１８１】
ここで、テーブルMapR2は、任意の車速Ｖ及び任意のアクセルペダル操作量Accpに対して求められる第２の変速比Ｒ２が上記テーブルMapR1に基づいて求められる第１の変速比Ｒ１よりも低くなるように予め設定されている。
そして、ＣＰＵ３０１はステップ１６９９に進んで本ルーチンを一旦終了する。
【０１８２】
このように、検査要求条件が成立している期間においては、変速比Ｒは、検査要求条件が成立していない期間にて設定される変速比（第１の変速比Ｒ１）よりも低い第２の変速比Ｒ２に設定される。
【０１８３】
ところで、上述したように、ＣＰＵ３０１が図６の制御量決定ルーチンの処理を実行することにより、目標エンジン回転速度ＮＥは変速比Ｒに比例する量として設定される。更に、要求トルクＴｑは、目標エンジン回転速度ＮＥに反比例する量として設定される。即ち、要求トルクＴｑは、変速比Ｒに反比例する量として設定される。従って、設定される変速比Ｒが低くなるほど、要求トルクＴｑは、より大きいトルクに設定される。
【０１８４】
従って、検査要求条件が成立している場合、変速比Ｒが第２の変速比Ｒ２に設定されることにより、検査要求条件が成立していない（即ち、変速比Ｒが第１の変速比Ｒ１に設定される）場合よりも要求トルクＴｑは大きくなる（即ち、要求負荷が高負荷側の負荷になる。）。この結果、早期に負荷条件が成立する（図８のステップ８０５にて「Ｙｅｓ」と判定される）可能性を高めることができるので、検査条件が早期に成立する可能性を高めることができる。従って、検査条件が成立しないために燃料中の金属物質割合Ｒｍが推定されない状態が継続する可能性を低減することができる。
【０１８５】
以上、説明したように、本発明による制御装置の第２実施形態によれば、燃料が燃料タンク４７ａへ新たに供給されてから早期に金属物質割合Ｒｍを推定することができるので、金属除去フィルタ４７ｄが劣化した程度をより一層高い精度にて推定することができる。
【０１８６】
なお、上記第２実施形態において、変速機２００は、変速比を連続的に変更可能な無段変速機であったが、変速比を不連続的に変更可能な有段変速機（自動変速機）であってもよい。
【０１８７】
この場合、変速段は車速Ｖとスロットル弁開度ＴＡ（又は、アクセルペダル操作量Accp）とにより定められる。このとき、電気制御装置３００は、スロットル弁開度ＴＡをアクセルペダル操作量Accpが大きいほど大きくなるように制御する。更に、電気制御装置３００は、検査要求条件が成立していないときに「ある車速Ｖ０及びあるスロットル弁開度ＴＡ０」の下で定まる変速段を第ｎ変速段（第１変速比の変速段）とすると、検査要求条件が成立しているときに「ある車速Ｖ０及びあるスロットル弁開度ＴＡ０」の下で定まる変速段を「第ｎ変速段よりも高速段（第１変速比よりも低い変速比を有する第２変速比の変速段）」に設定する。
【０１８８】
＜第３実施形態＞
次に、本発明の第３実施形態に係る制御装置について説明する。第３実施形態に係る制御装置は、上記第１実施形態に係る制御装置に対して、要求トルクＴｑが極高負荷閾値よりも軽負荷側の負荷であるときにも検査条件が成立する点、及び、検査条件が成立する場合には検査条件が成立しない場合よりも進角限界補正量ΔＳＡｍｉｎを小さい量（負の値）に設定する（即ち、点火時期ＳＡの進角限界時期をより進角側の時期に設定する）点のみにおいて相違している。従って、以下、かかる相違点を中心として説明する。
【０１８９】
この制御装置は、図７のルーチンに代えて、図１７にフローチャートにより示した点火時期決定ルーチンを実行する。この点火時期決定ルーチンは、図７のルーチンと同様のルーチンであって、ステップ７１０及びステップ７１５の処理をステップ１７０５〜ステップ１７１５、ステップ１７３０及びステップ１７３５の処理に置換し、且つ、ステップ７６５の処理をステップ１７２０、ステップ１７２５及びステップ１７４０の処理に置換したルーチンである。なお、図１７のルーチンの処理が実行されることは、点火時期補正手段の機能が達成されることに対応している。
更に、この制御装置は、図８のルーチンに代えて、図１８にフローチャートにより示した運転領域判定ルーチンを実行する。
【０１９０】
先ず、燃料が燃料タンク４７ａへ新たに供給されてから最初に内燃機関１００の運転が開始させられた場合であって、内燃機関１００に対して要求される負荷（要求トルクＴｑ）が極めて小さい場合から説明する。
【０１９１】
この場合、ＣＰＵ３０１が図１７の点火時期決定ルーチンの処理を開始すると、ＣＰＵ３０１は、ステップ７０５の処理を実行することにより基本点火時期ＳＡ０を決定した後、ステップ１７０５に進む。ＣＰＵ３０１は、ステップ１７０５にて検査要求フラグＸｅｄａの値及び負荷フラグＸｅｄｂの値の両方が「１」であるか否かを判定する。
【０１９２】
なお、検査要求フラグＸｅｄａの値が「１」である（即ち、燃料が燃料タンク４７ａへ新たに供給された後に未だ金属物質割合Ｒｍが推定されていない）という条件は、本明細書において、検査要求条件とも呼ばれる条件である。また、負荷フラグＸｅｄｂの値が「１」である（即ち、内燃機関１００の運転状態が後述する中高負荷運転領域Ａ３内にある）という条件は、中高負荷条件とも呼ばれる条件である。加えて、検査要求条件及び中高負荷条件の両方が成立している（即ち、検査要求フラグＸｅｄａの値が「１」であり且つ負荷フラグＸｅｄｂの値が「１」である）という条件は、検査条件とも呼ばれる条件である。
【０１９３】
この時点では、上述したように、図４のステップ４１５にて検査要求フラグＸｅｄａの値が「１」に設定され、一方、負荷フラグＸｅｄｂの値は「０」である。従って、ＣＰＵ３０１は、ステップ１７０５にて「Ｎｏ」と判定してステップ１７１０に進み、テーブルMapΔSA1(Tq,NE)に基づいて第１の遅角補正量ΔＳＡ１を決定し、決定した第１の遅角補正量ΔＳＡ１を遅角補正量ΔＳＡとして格納する。
【０１９４】
ここで、テーブルMapΔSA1は、バックアップＲＡＭ３０４に保持されていて、後述するステップ１７２５にて更新されるようになっている。なお、テーブルMapΔSA1の初期値は、要求トルクＴｑが大きくなるほど求められる第１の遅角補正量ΔＳＡ１が大きくなるように予め設定されている。
【０１９５】
そして、ＣＰＵ３０１は、ステップ１７１５に進んで、テーブルMapΔSAmin1(Tq,NE)に基づいて第１の進角限界補正量ΔＳＡｍｉｎ１を決定し、決定した第１の進角限界補正量ΔＳＡｍｉｎ１に進角限界補正量ΔＳＡｍｉｎを設定する。本例では、テーブルMapΔSAmin1は、求められる第１の進角限界補正量ΔＳＡｍｉｎ１が「０」となるように予め設定されている。
【０１９６】
更に、ＣＰＵ３０１は、ステップ１７１５にて、テーブルMapΔSAmax1(Tq,NE)に基づいて第１の遅角限界補正量ΔＳＡｍａｘ１を決定し、決定した第１の遅角限界補正量ΔＳＡｍａｘ１に遅角限界補正量ΔＳＡｍａｘを設定する。
【０１９７】
次いで、ＣＰＵ３０１は、ステップ７２０以降のステップに進んで、ノッキング強度ＳＮが強度閾値ＳＮｔｈよりも大きい場合に遅角補正量ΔＳＡを増加させ、一方、ノッキング強度ＳＮが強度閾値ＳＮｔｈ以下である場合に遅角補正量ΔＳＡを減少させる（ステップ７２５〜ステップ７３５）。
【０１９８】
更に、ＣＰＵ３０１は、遅角補正量ΔＳＡが進角限界補正量ΔＳＡｍｉｎよりも小さい場合に遅角補正量ΔＳＡを進角限界補正量ΔＳＡｍｉｎに設定する（ステップ７４０及びステップ７４５）。即ち、ＣＰＵ３０１は、点火時期ＳＡが基本点火時期ＳＡ０から進角限界補正量ΔＳＡｍｉｎを減じた値（進角限界時期）ＳＡ０−ΔＳＡｍｉｎよりも進角側の時期に設定される予定となった場合に点火時期ＳＡが進角限界時期ＳＡ０−ΔＳＡｍｉｎに設定されるように遅角補正量ΔＳＡを補正する。
【０１９９】
更に、ＣＰＵ３０１は、遅角補正量ΔＳＡが遅角限界補正量ΔＳＡｍａｘよりも大きい場合に遅角補正量ΔＳＡを遅角限界補正量ΔＳＡｍａｘに設定する（ステップ７５０及びステップ７５５）。即ち、ＣＰＵ３０１は、点火時期ＳＡが基本点火時期ＳＡ０から遅角限界補正量ΔＳＡｍａｘを減じた値（遅角限界時期）ＳＡ０−ΔＳＡｍａｘよりも遅角側の時期に設定される予定となった場合に点火時期ＳＡが遅角限界時期ＳＡ０−ΔＳＡｍａｘに設定されるように遅角補正量ΔＳＡを補正する。
加えて、ＣＰＵ３０１は、基本点火時期ＳＡ０から遅角補正量ΔＳＡを減じた値ＳＡ０−ΔＳＡに点火時期ＳＡを設定する（ステップ７６０）。
【０２００】
そして、ＣＰＵ３０１は、ステップ１７２０に進んで、検査要求フラグＸｅｄａの値及び負荷フラグＸｅｄｂの値の両方が「１」であるか否かを判定する。上述したように、この時点では、検査要求フラグＸｅｄａの値は「１」であり、一方、負荷フラグＸｅｄｂの値は「０」である。
【０２０１】
従って、ＣＰＵ３０１は、ステップ１７２０にて「Ｎｏ」と判定してステップ１７２５に進み、テーブルMapΔSA1(Tq,NE)に基づいて、上記ステップ１７１０、ステップ１７１５及びステップ７２０〜ステップ７５５の処理により設定された遅角補正量ΔＳＡが求められるように、バックアップＲＡＭ３０４に保持されているテーブルMapΔSA1(Tq,NE)を更新する。
そして、ＣＰＵ３０１はステップ１７９９に進んでこのルーチンを一旦終了する。
【０２０２】
更に、ＣＰＵ３０１は、図１８の運転領域判定ルーチンの処理をステップ１８００から開始してステップ１８０５に進み、現時点の要求トルクＴｑ及び現時点の目標エンジン回転速度ＮＥと、図１９に示した運転領域マップと、に基づいて内燃機関１００の運転状態が中高負荷運転領域Ａ３内にあるか否かを判定する。
【０２０３】
図１９に示したように、運転領域は、中高負荷運転領域Ａ３と軽負荷運転領域Ａ４とからなる。中高負荷運転領域Ａ３は、目標エンジン回転速度ＮＥが上記中回転速度閾値よりも高い高回転速度閾値よりも低い運転領域のうちの、要求トルクＴｑが「上記極高負荷閾値よりも軽負荷側の中高負荷閾値（曲線Ｌ２）」よりも高負荷側の運転領域である。従って、中高負荷運転領域Ａ３は、極高負荷運転領域Ａ１と極高負荷運転領域Ａ１よりも軽負荷側の運転領域とを含む（極高負荷運転領域Ａ１を含み且つ極高負荷運転領域Ａ１よりも軽負荷側に拡大した）運転領域である。一方、軽負荷運転領域Ａ４は、中高負荷運転領域Ａ３以外の領域である。
【０２０４】
上記仮定に従えば、内燃機関１００の運転状態は、軽負荷運転領域Ａ４内にある。従って、ＣＰＵ３０１はステップ１８０５にて「Ｎｏ」と判定し、ステップ１８１０に進んで、負荷フラグＸｅｄｂの値を「０」に設定する。
【０２０５】
ここで、負荷フラグＸｅｄｂは、内燃機関１００の運転状態が中高負荷運転領域Ａ３内にあるか否かを表すフラグであって、その値が「１」であれば中高負荷運転領域Ａ３内にあり、「０」であれば軽負荷運転領域Ａ４内にあることを示す。
そして、ＣＰＵ３０１はステップ１８９９に進んで本ルーチンを一旦終了する。
【０２０６】
その後、運転者がアクセルペダルＡＰを操作することにより、アクセルペダル操作量Accpが大きくなり、その結果、内燃機関１００の運転状態が中高負荷運転領域Ａ３内の運転状態となったと仮定する。
【０２０７】
この状態において、ＣＰＵ３０１が図１８の運転領域判定ルーチンの処理を開始してステップ１８０５に進んだとき、ＣＰＵ３０１は、内燃機関１００の運転状態が中高負荷運転領域Ａ３内にあるか否かを判定するステップ１８０５にて「Ｙｅｓ」と判定してステップ１８１５に進む。そして、ＣＰＵ３０１は、ステップ１８１５にて負荷フラグＸｅｄｂの値を「１」に設定した後、ステップ１８９９に進んでこのルーチンを一旦終了する。
【０２０８】
従って、この状態において、ＣＰＵ３０１が図１７の点火時期決定ルーチンの処理を開始してステップ１７０５に進んだとき、ＣＰＵ３０１は、検査要求フラグＸｅｄａの値及び負荷フラグＸｅｄｂの値の両方が「１」であるか否かを判定するステップ１７０５にて「Ｙｅｓ」と判定してステップ１７３０に進む。
【０２０９】
ＣＰＵ３０１は、ステップ１７３０にて、テーブルMapΔSA2(Tq,NE)に基づいて第２の遅角補正量ΔＳＡ２を決定し、決定した第２の遅角補正量ΔＳＡ２を遅角補正量ΔＳＡとして格納する。ここで、テーブルMapΔSA2は、バックアップＲＡＭ３０４に保持されていて、後述するステップ１７４０にて更新されるようになっている。なお、テーブルMapΔSA2の初期値は、要求トルクＴｑが大きくなるほど求められる第２の遅角補正量ΔＳＡ２が大きくなるように予め設定されている。
【０２１０】
そして、ＣＰＵ３０１は、ステップ１７３５に進んで、テーブルMapΔSAmin2(Tq,NE)に基づいて第２の進角限界補正量ΔＳＡｍｉｎ２を決定し、決定した第２の進角限界補正量ΔＳＡｍｉｎ２に進角限界補正量ΔＳＡｍｉｎを設定する。本例では、テーブルMapΔSAmin2は、任意の運転状態に対して求められる第２の進角限界補正量ΔＳＡｍｉｎ２がテーブルMapΔSAmin1に基づいて求められる第１の進角限界補正量ΔＳＡｍｉｎ１よりも小さくなる（本例では、負の値となる）ように予め設定されている。
【０２１１】
更に、ＣＰＵ３０１は、ステップ１７３５にて、テーブルMapΔSAmax2(Tq,NE)に基づいて第２の遅角限界補正量ΔＳＡｍａｘ２を決定し、決定した第２の遅角限界補正量ΔＳＡｍａｘ２に遅角限界補正量ΔＳＡｍａｘを設定する。
【０２１２】
次いで、ＣＰＵ３０１は、ステップ７２０以降のステップに進んで、遅角補正量ΔＳＡを必要に応じて補正し（ステップ７２０〜ステップ７５５）た後、基本点火時期ＳＡ０から遅角補正量ΔＳＡを減じた値ＳＡ０−ΔＳＡに点火時期ＳＡを設定する（ステップ７６０）。
【０２１３】
そして、ＣＰＵ３０１は、ステップ１７２０に進んで、検査要求フラグＸｅｄａの値及び負荷フラグＸｅｄｂの値の両方が「１」であるか否かを判定する。上述したように、この時点では、検査要求フラグＸｅｄａの値及び負荷フラグＸｅｄｂの値の両方が「１」である。
【０２１４】
従って、ＣＰＵ３０１は、ステップ１７２０にて「Ｙｅｓ」と判定してステップ１７４０に進み、テーブルMapΔSA2(Tq,NE)に基づいて、上記ステップ１７３０、ステップ１７３５及びステップ７２０〜ステップ７５５の処理により設定された遅角補正量ΔＳＡが求められるように、バックアップＲＡＭ３０４に保持されているテーブルMapΔSA2(Tq,NE)を更新する。
そして、ＣＰＵ３０１はステップ１７９９に進んでこのルーチンを一旦終了する。
【０２１５】
このように、上記第３実施形態に係る制御装置は、要求トルクＴｑが「極高負荷閾値よりも軽負荷側の中高負荷閾値」よりも高負荷側の負荷である場合にも検査条件が成立するように構成されている。この結果、早期に検査条件が成立する可能性を高めることができる。
【０２１６】
更に、上記第３実施形態においては、検査条件が成立していない期間にて点火時期ＳＡが第１の進角限界時期ＳＡ０−ΔＳＡｍｉｎ１よりも進角側の時期である場合に点火時期ＳＡが第１の進角限界時期ＳＡ０−ΔＳＡｍｉｎ１に設定され、一方、検査条件が成立している期間にて点火時期ＳＡが第１の進角限界時期ＳＡ０−ΔＳＡｍｉｎ１よりも進角側の第２の進角限界時期ＳＡ０−ΔＳＡｍｉｎ２よりも進角側の時期である場合に点火時期ＳＡが第２の進角限界時期ＳＡ０−ΔＳＡｍｉｎ２に設定される。
【０２１７】
これにより、検査条件が成立している期間においては、点火時期ＳＡが第１の進角限界時期ＳＡ０−ΔＳＡｍｉｎ１よりも進角側の時期に設定され得る。従って、第２の検査期間にて取得される点火時期（非除去時点火時期）ＳＡｎｒｓは、第１の進角限界時期ＳＡ０−ΔＳＡｍｉｎ１よりも進角側の時期に設定されることが可能になる。
【０２１８】
この結果、要求トルクＴｑが極高負荷閾値よりも軽負荷側の負荷である場合であっても、第２の検査期間において、点火時期ＳＡは、ノッキングが発生する直前の時期まで進角され得る。即ち、除去時点火時期ＳＡｒｓは、金属物質割合Ｒｍを十分に反映した値になる。従って、除去時点火時期ＳＡｒｓと、非除去時点火時期ＳＡｎｒｓと、は十分に大きく相違する。この結果、燃料中の金属物質割合Ｒｍを高い精度にて推定することができる。
【０２１９】
以上、説明したように、本発明による制御装置の第３実施形態によれば、燃料中の金属物質割合Ｒｍの推定精度を十分に高く維持しながら、早期に検査条件が成立する可能性を高めることができる。即ち、燃料中の金属物質割合Ｒｍ割合を十分に高い精度にて且つ早期に推定することができる。
【０２２０】
更に、上記第３実施形態は、検査要求条件が成立している場合に、変速機２００の変速比を検査要求条件が成立していない場合よりも低い（高速側の）変速比に設定するように構成されていてもよい。即ち、上記第３実施形態は、図５の変速比設定ルーチンに代えて、第２実施形態に係る図１６の変速比設定ルーチンを実行するように構成されていてもよい。
【０２２１】
なお、本発明は上記各実施形態に限定されることはなく、本発明の範囲内において種々の変形例を採用することができる。例えば、上記各実施形態においては、金属除去フィルタ４７ｄは、金属物質を吸着する金属物質吸着部材４７ｄ２により燃料中の金属物質を除去するように構成されていたが、磁界及び／又は電界を形成する部材を備え、形成された磁界及び／又は電界により燃料中の金属物質を除去するように構成されていてもよい。
【０２２２】
この場合、金属除去フィルタは、磁界及び／又は電界を形成している除去状態と、磁界及び／又は電界を形成していない非除去状態と、に状態を切り替え可能に構成され、且つ、内燃機関は、バイパス管４７ｅ及び切替弁４７ｆを備えないことが好適である。
【０２２３】
更に、上記各実施形態は、第１の検査期間における内燃機関１００の運転状態と、第２の検査期間における内燃機関１００の運転状態と、が略同じになるように構成されていることが好適である。
【０２２４】
また、上記各実施形態は、点火時期差ＤＳＡ（＝ＳＡｎｒｓ−ＳＡｒｓ）に基づいて金属物質割合Ｒｍを推定するように構成されていたが、第１の検査期間における遅角補正量ΔＳＡと第２の検査期間における遅角補正量ΔＳＡとの差に基づいて金属物質割合Ｒｍを推定するように構成されていてもよい。
【０２２５】
更に、上記各実施形態は、運転領域を多数の小運転領域に分割するとともに、非除去時点火時期ＳＡｎｒｓ及び除去時点火時期ＳＡｒｓを小運転領域に対応させて求め、同一の小運転領域に属する非除去時点火時期ＳＡｎｒｓと除去時点火時期ＳＡｒｓとの点火時期差ＤＳＡに基づいて金属物質割合Ｒｍを推定するように構成されていてもよい。
【図面の簡単な説明】
【０２２６】
【図１】本発明の第１実施形態に係る制御装置を車両に搭載された内燃機関及び変速機に適用したシステムの概略構成図である。
【図２】図１に示した内燃機関の特定気筒の概略断面図である。
【図３】図２に示した金属除去フィルタの拡大断面図である。
【図４】図２に示したＣＰＵが実行するプログラムであって燃料タンクへ新たに燃料が供給されたか否かを判定するためのプログラムを示したフローチャートである。
【図５】図２に示したＣＰＵが実行するプログラムであって変速機の変速比を設定するためのプログラムを示したフローチャートである。
【図６】図２に示したＣＰＵが実行するプログラムであって内燃機関を運転するための制御量を決定するためのプログラムを示したフローチャートである。
【図７】図２に示したＣＰＵが実行するプログラムであって点火時期を決定するためのプログラムを示したフローチャートである。
【図８】図２に示したＣＰＵが実行するプログラムであって運転領域を判定するためのプログラムを示したフローチャートである。
【図９】図２に示したＣＰＵが図８のフローチャートを実行する際に参照する運転領域マップである。
【図１０】図２に示したＣＰＵが実行するプログラムであって切替弁を制御するためのプログラムを示したフローチャートである。
【図１１】図２に示したＣＰＵが実行するプログラムであって燃料中の金属物質の割合を推定するためのプログラムを示したフローチャートである。
【図１２】図２に示したＣＰＵが実行するプログラムであって金属除去フィルタが劣化した程度を推定するためのプログラムを示したフローチャートである。
【図１３】図２に示したＣＰＵが実行するプログラムであって金属除去手段の状態を非除去状態に制御するためのプログラムを示したフローチャートである。
【図１４】図２に示したＣＰＵが実行するプログラムであって金属除去手段の状態を除去状態に制御するためのプログラムを示したフローチャートである。
【図１５】図２に示したＣＰＵが参照する金属物質割合と点火時期差との関係を規定したテーブルを示した図である。
【図１６】本発明の第２実施形態に係る制御装置が変速比を設定するために、図５に示したプログラムに代えて実行するプログラムを示したフローチャートである。
【図１７】本発明の第３実施形態に係る制御装置が点火時期を決定するために、図７に示したプログラムに代えて実行するプログラムを示したフローチャートである。
【図１８】本発明の第３実施形態に係る制御装置が運転領域を判定するために、図８に示したプログラムに代えて実行するプログラムを示したフローチャートである。
【図１９】本発明の第３実施形態に係る制御装置が図１８のフローチャートを実行する際に参照する運転領域マップである。
【符号の説明】
【０２２７】
１００…内燃機関、２５…燃焼室、４６…インジェクタ、４７…燃料供給部、４７ａ…燃料タンク、４７ｂ…燃料ポンプ、４７ｃ…燃料供給管、４７ｄ…金属除去フィルタ、４７ｅ…バイパス管、４７ｆ…切替弁、６６…ノックセンサ、６７…燃料残量計、６９…警告灯、２００…変速機、３００…電気制御装置、３０１…ＣＰＵ、３０４…バックアップＲＡＭ、ＡＰ…アクセルペダル、ＣＳ…クランク軸、ＰＳ…プロペラ軸。
【図１】
2009114933.tif 000003
【図２】
2009114933.tif 000004
【図３】
2009114933.tif 000005
【図４】
2009114933.tif 000006
【図５】
2009114933.tif 000007
【図６】
2009114933.tif 000008
【図７】
2009114933.tif 000009
【図８】
2009114933.tif 000010
【図９】
2009114933.tif 000011
【図１０】
2009114933.tif 000012
【図１１】
2009114933.tif 000013
【図１２】
2009114933.tif 000014
【図１３】
2009114933.tif 000015
【図１４】
2009114933.tif 000016
【図１５】
2009114933.tif 000017
【図１６】
2009114933.tif 000018
【図１７】
2009114933.tif 000019
【図１８】
2009114933.tif 000020
【図１９】
2009114933.tif 000021