(57)【要約】【課題】失火発生時であってもエンジンの平均トルクを低下させず失火発生前と同程度に維持することができ、その結果、エンジンの作動性を失火発生前と同程度に維持することができるスロットル開度学習制御装置を提供することを課題とする。【解決手段】スロットル開度学習制御装置は、内燃機関のアイドル時のスロットル開度を、学習しながらフィードバック制御する際、当該内燃機関の失火状態を検出し、失火発生を検出した場合には、当該学習の実行開始及び／又は実行停止に関する条件である「内燃機関の回転数の変動量の閾値（学習条件閾値）」を変更する。【選択図】図１
2010014031.tif 000002
【特許請求の範囲】
【請求項１】
内燃機関のアイドル時のスロットル開度を、学習しながらフィードバック制御するスロットル開度学習制御装置において、
前記内燃機関の失火状態を検出する失火状態検出手段と、
前記失火状態検出手段で失火発生を検出した場合には、前記学習の実行開始及び／又は実行停止に関する条件として現在設定されている前記内燃機関の回転数の変動量に関する閾値を変更する閾値変更手段と
を備えたことを特徴とするスロットル開度学習制御装置。
【請求項２】
前記失火状態検出手段で検出した前記失火状態に基づいて前記内燃機関の失火率を算出する失火率算出手段
をさらに備え、
前記閾値変更手段は、前記失火率算出手段で算出した前記失火率に応じて、現在設定されている前記閾値を変更すること
を特徴とする請求項１に記載のスロットル開度学習制御装置。
【請求項３】
前記内燃機関の運転状態を検出する運転状態検出手段と、
前記運転状態検出手段で検出した前記運転状態に基づいて前記スロットル開度を算出する開度算出手段と、
前記開度算出手段で算出した前記スロットル開度が、前回の前記学習又は前記フィードバック制御の時のものと比べて、増加又は減少しているか否かを判定する開度判定手段と、
前記失火率算出手段で算出した前記失火率が、前回の前記学習又は前記フィードバック制御の時のものと比べて、上昇又は低下しているか否かを判定する失火率判定手段と、
前記開度判定手段での判定結果が、前記スロットル開度が増加しているというものであり、且つ前記失火率判定手段での判定結果が、前記失火率が上昇しているというものであった場合、又は、前記開度判定手段での判定結果が、前記スロットル開度が減少しているというものであり、且つ前記失火率判定手段での判定結果が、前記失火率が低下しているというものであった場合には、現在設定されている前記スロットル開度を、前記開度算出手段で算出した前記スロットル開度に更新する開度更新手段と、
をさらに備えたことを特徴とする請求項２に記載のスロットル開度学習制御装置。
【請求項４】
前記失火率算出手段で算出した前記失火率及び前回の前記フィードバック制御の時の前記失火率並びに現在設定されている前記フィードバック制御の繰り返し時間間隔に基づいて、前記失火率の変化速度を算出する変化速度算出手段と、
前記変化速度算出手段で算出した前記変化速度に応じて、現在設定されている前記繰り返し時間間隔を短縮する時間間隔短縮手段と
をさらに備えたことを特徴とする請求項２または３に記載のスロットル開度学習制御装置。
【請求項５】
前記失火率算出手段で算出した前記失火率と前記スロットル開度とを対応付けて記憶する記憶手段と、
前記記憶手段で記憶した前記失火率のうち最大のものを抽出する失火率抽出手段と
をさらに備え、
前記開度更新手段は、前記失火率判定手段での判定結果が、前記失火率が低下しているというものであった場合には、前記失火率抽出手段で抽出した最大の前記失火率に対する前記失火率算出手段で算出した前記失火率の低下率に応じて、当該最大の前記失火率と対応付けて前記記憶手段に記憶した前記スロットル開度を減らし、現在設定されている前記スロットル開度を当該減らした後の前記スロットル開度に更新すること
を特徴とする請求項３または４に記載のスロットル開度学習制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、内燃機関のアイドル時のスロットル開度を、学習しながらフィードバック制御するスロットル開度学習制御装置に関するものである。
【背景技術】
【０００２】
特許文献１によれば、アイドル運転時のアイドル回転速度（補助空気量の補正量）の学習において、エンジン回転速度の変動率が所定値以上であるとき、失火発生時、図示平均有効圧の変動率が所定値以上であるときには、その学習を禁止する。換言すると、特許文献１によれば、エンジン回転数の変動が大きい場合、学習精度の悪化を防止するため、学習を中止する。
【０００３】
なお、その他に関連する技術として特許文献２や特許文献３が挙げられる。特許文献２によれば、各気筒別の図示平均有効圧の補正値学習において、失火発生が判別されたときに、少なくとも失火発生気筒について補正値の学習を禁止する。特許文献３によれば、アイドル時、推定吸気量と実吸気量が等しくなるようにスロットル開度検出値の補正量を算出し、この補正量によって目標吸気量が得られるようにスロットル弁目標開度を学習補正する。
【０００４】
【特許文献１】特開平９−１８９２５２号公報
【特許文献２】特開平９−１２６０４１号公報
【特許文献３】特許第３４４５５００号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、失火発生時はエンジン回転数の変動が大きくなるためエンジン回転数の変動率に関する学習禁止条件に当てはまり補正量の学習を行うことができず、しかも失火発生時は失火状態に依ってトルクが低下するので、補正量の学習を行わないと結果的にエンジンの作動性が低下する虞があるという問題点があった。
【０００６】
本発明は、上記問題点に鑑みてなされたものであって、失火発生時であってもエンジンの平均トルクを低下させず失火発生前と同程度に維持することができ、その結果、エンジンの作動性を失火発生前と同程度に維持することができるスロットル開度学習制御装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上述した課題を解決し、目的を達成するために、本発明にかかるスロットル開度学習制御装置は、内燃機関のアイドル時のスロットル開度を、学習しながらフィードバック制御するスロットル開度学習制御装置において、前記内燃機関の失火状態を検出する失火状態検出手段と、前記失火状態検出手段で失火発生を検出した場合には、前記学習の実行開始及び／又は実行停止に関する条件として現在設定されている前記内燃機関の回転数の変動量に関する閾値を変更する閾値変更手段とを備えたことを特徴とする。
【０００８】
また、本発明にかかるスロットル開度学習制御装置は、前記に記載のスロットル開度学習制御装置において、前記失火状態検出手段で検出した前記失火状態に基づいて前記内燃機関の失火率を算出する失火率算出手段をさらに備え、前記閾値変更手段は、前記失火率算出手段で算出した前記失火率に応じて、現在設定されている前記閾値を変更することを特徴とする。
【０００９】
また、本発明にかかるスロットル開度学習制御装置は、前記に記載のスロットル開度学習制御装置において、前記内燃機関の運転状態を検出する運転状態検出手段と、前記運転状態検出手段で検出した前記運転状態に基づいて前記スロットル開度を算出する開度算出手段と、前記開度算出手段で算出した前記スロットル開度が、前回の前記学習又は前記フィードバック制御の時のものと比べて、増加又は減少しているか否かを判定する開度判定手段と、前記失火率算出手段で算出した前記失火率が、前回の前記学習又は前記フィードバック制御の時のものと比べて、上昇又は低下しているか否かを判定する失火率判定手段と、前記開度判定手段での判定結果が、前記スロットル開度が増加しているというものであり、且つ前記失火率判定手段での判定結果が、前記失火率が上昇しているというものであった場合、又は、前記開度判定手段での判定結果が、前記スロットル開度が減少しているというものであり、且つ前記失火率判定手段での判定結果が、前記失火率が低下しているというものであった場合には、現在設定されている前記スロットル開度を、前記開度算出手段で算出した前記スロットル開度に更新する開度更新手段と、をさらに備えたことを特徴とする。
【００１０】
また、本発明にかかるスロットル開度学習制御装置は、前記に記載のスロットル開度学習制御装置において、前記失火率算出手段で算出した前記失火率及び前回の前記フィードバック制御の時の前記失火率並びに現在設定されている前記フィードバック制御の繰り返し時間間隔に基づいて、前記失火率の変化速度を算出する変化速度算出手段と、前記変化速度算出手段で算出した前記変化速度に応じて、現在設定されている前記繰り返し時間間隔を短縮する時間間隔短縮手段とをさらに備えたことを特徴とする。
【００１１】
また、本発明にかかるスロットル開度学習制御装置は、前記に記載のスロットル開度学習制御装置において、前記失火率算出手段で算出した前記失火率と前記スロットル開度とを対応付けて記憶する記憶手段と、前記記憶手段で記憶した前記失火率のうち最大のものを抽出する失火率抽出手段とをさらに備え、前記開度更新手段は、前記失火率判定手段での判定結果が、前記失火率が低下しているというものであった場合には、前記失火率抽出手段で抽出した最大の前記失火率に対する前記失火率算出手段で算出した前記失火率の低下率に応じて、当該最大の前記失火率と対応付けて前記記憶手段に記憶した前記スロットル開度を減らし、現在設定されている前記スロットル開度を当該減らした後の前記スロットル開度に更新することを特徴とする。
【発明の効果】
【００１２】
本発明によれば、内燃機関のアイドル時のスロットル開度を、学習しながらフィードバック制御する際、当該内燃機関の失火状態を検出し、失火発生を検出した場合には、学習の実行開始及び／又は実行停止に関する条件として現在設定されている「内燃機関の回転数の変動量に関する閾値」を変更する。本発明により、失火発生時であってもエンジンの平均トルクを低下させず失火発生前と同程度に維持することができ、その結果、エンジンの作動性を失火発生前と同程度に維持することができるという効果を奏する。換言すると、本発明により、失火発生時も平均トルクの低下を防ぐことができるため、エンジン回転数は変動しながらであるが、トルクの平均値は失火発生前と同等レベルにすることができる。
【００１３】
また、本発明によれば、検出した失火状態に基づいて内燃機関の失火率を算出し、算出した失火率に応じて、現在設定されている閾値を変更する。失火率が小さい場合は「エンジン回転数が低下するとフィードバック制御で空気量が増加し、そしてエンジン回転数が目標付近に収束する。」という循環が起こるため、ある一定のエンジン回転数の変動量となるが、失火率が上がると、エンジン回転数が目標付近に収束する前に次の失火が発生するため、エンジン回転数の低下量（エンジン回転数の変動量）がより大きくなるので、本発明により、失火率に因らず平均トルクの低下を防ぐことができるという効果を奏する。
【００１４】
また、本発明によれば、内燃機関の運転状態を検出し、検出した運転状態に基づいてスロットル開度を算出し、算出したスロットル開度が、前回の学習又はフィードバック制御の時のものと比べて、増加又は減少しているか否かを判定する。また、本発明によれば、算出した失火率が、前回の学習又はフィードバック制御の時のものと比べて、上昇又は低下しているか否かを判定する。そして、本発明によれば、スロットル開度に関する判定結果が「スロットル開度が増加している」というものであり且つ失火率に関する判定結果が「失火率が上昇している」というものであった場合、又はスロットル開度に関する判定結果が「スロットル開度が減少している」というものであり且つ失火率に関する判定結果が「失火率が低下している」というものであった場合には、現在設定されているスロットル開度を、算出したスロットル開度に更新する。本発明により、失火率上昇時はトルクを増加させ失火率低下時はトルクを減少させるという関係は必ず成立するため、失火要因のトルク変化に対する学習を最優先させることで、トルク不足や過多の状態を早く抑えることができるという効果を奏する。
【００１５】
また、本発明によれば、算出した失火率及び前回のフィードバック制御の時の失火率並びに現在設定されている「フィードバック制御の繰り返し時間間隔」に基づいて、失火率の変化速度を算出し、算出した変化速度に応じて、現在設定されている繰り返し時間間隔を短縮する。失火率の変化速度が速い場合、平均トルクの不足や過多量も一時的に大きくなるが、本発明により、スロットル開度の更新速度を早めることで、平均トルクの不足や過多量をより早く吸収することができるという効果を奏する。
【００１６】
また、本発明によれば、算出した失火率とスロットル開度とを対応付けて記憶し、記憶した失火率のうち最大のものを抽出する。そして、本発明によれば、失火率に関する判定結果が「失火率が低下している」というものであった場合には、抽出した最大の失火率に対する算出した失火率の低下率に応じて、当該最大の失火率と対応付けて記憶したスロットル開度を減らし、現在設定されているスロットル開度を当該減らした後のスロットル開度に更新する。失火率とトルク低下量とは比例関係にあるので、本発明により、失火率低下時に発生するトルク過多量を早く吸収することができるという効果を奏する。
【発明を実施するための最良の形態】
【００１７】
以下に、本発明にかかるスロットル開度学習制御装置の実施の形態を図面に基づいて詳細に説明する。なお、本実施の形態により本発明が限定されるものではない。
【００１８】
［１．概要］
ここでは、本発明にかかるスロットル開度学習制御装置の概要について図１および図２を参照して説明する。図１は本発明の概要を示す図である。図２は失火率とＩＳＣ（Ｉｄｌｅ  Ｓｐｅｅｄ  Ｃｏｎｔｒｏｌｌｅｒ）学習量との関係の一例を示す図である。
【００１９】
本発明は、エンジンのアイドル時での吸入空気量を学習する制御手段を備えたシステムにおいて、失火発生時は、学習条件である「エンジン回転数の変動量の閾値（図１に示す学習条件閾値）」を変更する。換言すると、本発明は、エンジンのアイドル時のスロットル開度のフィードバック学習制御において、失火発生時、フィードバック学習条件である「エンジン回転数の変動量の閾値（図１に示す学習条件閾値）」を変更する。
【００２０】
具体的には、本発明は、車両に搭載されたエンジンの運転状態を検出する運転状態検出手段と、エンジンのアイドリング時において、運転状態検出手段での検出結果に基づき、エンジンの吸気通路の途中に設けられたスロットルバルブの目標開度を学習する目標開度学習手段と、エンジンのアイドリング時において、目標開度学習手段で学習した目標開度に基づき、スロットルバルブアクチュエータをフィードバック制御するアイドリング時フィードバック制御手段と、スロットルバルブアクチュエータのフィードバック量を学習する制御手段と、エンジンの失火状態を検出する失火状態検出手段と、を備えたシステムにおいて、失火発生時は、スロットルバルブアクチュエータのフィードバック量を学習する条件（学習条件）である「エンジン回転数の変動量の閾値（図１に示す学習条件閾値）」を変更する。
【００２１】
これにより、失火発生時であってもエンジンの平均トルクを低下させず失火発生前と同程度に維持することができ、その結果、エンジンの作動性を失火発生前と同程度に維持することができる。換言すると、失火発生時も平均トルクの低下を防ぐことができるため、エンジン回転数は変動しながらであるが、平均値としては失火発生前と同等レベルにすることができる。
【００２２】
なお、本発明は、エンジン回転数の変動量の閾値を、失火率に応じたマップとしてもよい。失火率が小さい場合には「エンジン回転数が低下→フィードバック制御で空気量が増加→エンジン回転数が目標付近に収束」という循環のため、ある一定のエンジン回転数の変動量となるが、失火率が上がるとエンジン回転数が目標付近に収束する前に次の失火が発生し、エンジン回転数の低下量（エンジン回転数の変動量）がより大きくなるという関係があるので、失火率に因らず平均トルクの低下を防ぐことができる。
【００２３】
また、本発明は、失火率上昇（低下）時は増量側（減量側）にのみ、スロットル開度（ＩＳＣ学習量）の更新を許可してもよい。失火率上昇時はトルクを増加させ、失火率低下時はトルクを減少させるという関係は必ず成立するため、失火要因のトルク変化に対応する学習を最優先させることで、トルク不足や過多の状態を早く抑えることができる。
【００２４】
また、本発明は、失火率の上昇または低下速度に応じて、スロットル開度（ＩＳＣ学習量）の更新速度を速めてもよい。失火率の変化速度が速い場合、平均トルクの不足や過多量も一時的に大きくなるので、更新速度を速くすることでトルクの不足や過多量をより早く吸収することができる。
【００２５】
また、本発明は、図２に示すように、大きい側の失火率（例えば図２に示す「５％」）の時に覚えておいたスロットル開度（ＩＳＣ学習量）（例えば図２に示す「Ｘ」）を基に、失火率が例えば図２に示すように「５％」から「２．５％」に下がったら、その低下比率（２．５÷５＝０．５）に応じて、スロットル開度（ＩＳＣ学習量）を「Ｘ」から「０．５×Ｘ」に下げてもよい。失火率とトルク低下量とは比例関係にあるので、失火率低下時に発生するトルク過多量を早く吸収することができる。
【００２６】
［２．構成］
ここでは、本発明にかかるスロットル開度学習制御装置を含む本実施の形態にかかるＥＣＵ（電子制御ユニット）７等の構成について図３から図５を参照して説明する。図３はＥＣＵ７等の構成の一例を示すブロック図である。
【００２７】
エンジン１は内燃機関である。エンジン１には吸気通路２が接続されている。吸気通路２は、エンジン１が吸入する空気を供給するための通路となる管である。吸気通路２にはスロットルバルブ３が設けられている。スロットルバルブ３は、エンジン１が吸入する空気量を調節するための弁である。スロットルバルブアクチュエータ（以下では「アクチュエータ」と記す場合がある。）４は、スロットルバルブ３の開度（以下では「スロットル開度」と記す場合がある。）を調節するための作動装置である。
【００２８】
運転状態検出部５は、エンジン１の運転状態（例えばエンジン１の回転数など）を検出するセンサである。失火状態検出部６は、エンジン１の失火状態（例えばエンジン１の失火発生など）を検出するセンサである。
【００２９】
ＥＣＵ７は、スロットル開度の学習およびその学習結果のフィードバック制御を実行する電子制御ユニットである。ＥＣＵ７は、当該ＥＣＵ７を統括的に制御するＣＰＵ等のフィードバック制御部７１と、各種のデータベースやテーブルやファイルやプログラムなどを格納する記憶部７２とを備える。
【００３０】
フィードバック制御部７１は、運転状態検出部５で検出した運転状態に関する情報や失火状態検出部６で検出した失火状態に関する情報に基づいて目標とするスロットル開度を学習しながら、その学習結果をアクチュエータ４にフィードバックする。フィードバック制御部７１は、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）等の制御プログラム、各種の処理手順等を規定したプログラム、所要データなどを格納するための内部メモリを有し、これらのプログラムに基づいて種々の情報処理を実行する。フィードバック制御部７１は、運転状態取得部７１ａと、変動量算出部７１ｂと、失火状態取得部７１ｃと、失火率算出部７１ｄと、閾値算出部７１ｅと、閾値変更部７１ｆと、学習ＯＮ／ＯＦＦ判定部７１ｇと、開度学習部７１ｈと、変化速度算出部７１ｉと、時間間隔更新部７１ｊと、を備える。
【００３１】
運転状態取得部７１ａは、運転状態検出部５で検出したエンジン１の運転状態（例えばエンジン１の回転数など）に関する情報を、当該運転状態検出部５から取得する。変動量算出部７１ｂは、運転状態取得部７１ａで取得したエンジン１の回転数に基づいて、エンジン１の回転数の変動量を算出する。
【００３２】
失火状態取得部７１ｃは、失火状態検出部６で検出したエンジン１の失火状態（例えばエンジン１の失火発生など）に関する情報を、当該失火状態検出部６から取得する。失火率算出部７１ｄは、失火状態取得部７１ｃで取得したエンジン１の失火状態に基づいて、エンジン１の失火率を算出する。
【００３３】
閾値算出部７１ｅは、失火率算出部７１ｄで算出した失火率に応じて、学習の実行開始及び／又は実行停止に関する条件である「エンジン１の回転数の変動量の閾値」を算出する。閾値変更部７１ｆは、失火状態取得部７１ｃで取得したエンジン１の失火状態が「失火発生」であった（具体的には失火率算出部７１ｄで算出した失火率が０％より大きかった）場合には、現在設定されている閾値（具体的には、現設定情報ファイル７２ｂに格納されている閾値）を、閾値算出部７１ｅで算出した閾値に変更する（書き換える）。
【００３４】
学習ＯＮ／ＯＦＦ判定部７１ｇは、変動量算出部７１ｂで算出したエンジン１の回転数の変動量及び現在設定されている閾値（具体的には、現設定情報ファイル７２ｂに格納されている閾値）に基づいて、開度学習部７１ｈでのスロットル開度の学習を開始（学習ＯＮ）又は停止（学習ＯＦＦ）するか否かを判定する。
【００３５】
開度学習部７１ｈは、運転状態取得部７１ａで取得した運転状態に関する情報や失火状態取得部７１ｃで取得した失火状態に関する情報などに基づいて、目標とするスロットル開度を学習する。開度学習部７１ｈは、開度算出部７１ｈ１と、開度判定部７１ｈ２と、失火率判定部７１ｈ３と、開度更新部７１ｈ４と、失火率抽出部７１ｈ５と、をさらに備える。
【００３６】
開度算出部７１ｈ１は、運転状態取得部７１ａで取得した運転状態（例えばエンジン１の回転数など）に基づいて、スロットルバルブ３の開度を算出する。開度判定部７１ｈ２は、開度算出部７１ｈ１で算出したスロットル開度が、前回の学習又はフィードバック制御の時のものと比べて増加又は減少しているか否かを判定する。
【００３７】
失火率判定部７１ｈ３は、失火率算出部７１ｄで算出した失火率が、前回の学習又はフィードバック制御の時のものと比べて上昇又は低下しているか否かを判定する。
【００３８】
開度更新部７１ｈ４は、開度判定部７１ｈ２での判定結果が「スロットル開度が増加している」というものであり且つ失火率判定部７１ｈ３での判定結果が「失火率が上昇している」というものであった場合、又は開度判定部７１ｈ２での判定結果が「スロットル開度が減少している」というものであり且つ失火率判定部７１ｈ３での判定結果が「失火率が低下している」というものであった場合には、現在設定されているスロットル開度（具体的には、現設定情報ファイル７２ｂに格納されているスロットル開度）を、開度算出部７１ｈ１で算出したスロットル開度に更新する（書き換える）。
【００３９】
なお、開度更新部７１ｈ４は、失火率判定部７１ｈ３での判定結果が「失火率が低下している」というものであった場合には、失火率抽出部７１ｈ５で抽出した最大の失火率に対する失火率算出部７１ｄで算出した失火率の低下率に応じて、当該最大の失火率と対応付けてフィードバック情報ファイル７２ａに格納されているスロットル開度を減らし、現在設定されているスロットル開度（具体的には、現設定情報ファイル７２ｂに格納されているスロットル開度）を当該減らした後のスロットル開度に更新し（書き換え）てもよい。
【００４０】
失火率抽出部７１ｈ５は、フィードバック情報ファイル７２ａに格納されている失火率のうち最大のものを抽出する。
【００４１】
変化速度算出部７１ｉは、失火率算出部７１ｄで算出した失火率及び前回のフィードバック制御の時の失火率並びに現在設定されているフィードバック制御の繰り返し時間間隔（具体的には、現設定情報ファイル７２ｂに格納されている時間間隔）に基づいて、失火率の変化速度を算出する。
【００４２】
時間間隔更新部７１ｊは、変化速度算出部７１ｉで算出した失火率の変化速度に応じて、現在設定されている時間間隔（具体的には、現設定情報ファイル７２ｂに格納されている時間間隔）を短縮する。
【００４３】
記憶部７２は、ストレージ手段であり、例えば、ＲＡＭ・ＲＯＭ等のメモリ装置や、ハードディスクのような固定ディスク装置、フレキシブルディスク、光ディスク等を用いることができる。記憶部７２には、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）と協働してＣＰＵに命令を与え各種処理を行うためのコンピュータプログラムが記録されている。記憶部７２は、フィードバック情報ファイル７２ａと、現設定情報ファイル７２ｂとを備える。
【００４４】
フィードバック情報ファイル７２ａは、フィードバック制御部７１が繰り返し実行するフィードバック制御処理において各処理部が算出した各種情報などを、フィードバック制御処理の実行ごとに格納するファイルである。フィードバック情報ファイル７２ａは、図３に示すように、実行Ｎｏと、回転数と、変動量と、失火率と、閾値と、学習ＯＮ／ＯＦＦフラグと、スロットル開度と、変化速度と、を格納する。
【００４５】
「実行Ｎｏ」の項目には、フィードバック制御部７１で繰り返し実行するフィードバック制御処理の実行を識別するための番号が格納される。「回転数」の項目には、運転状態取得部７１ａで取得したエンジン１の回転数が格納される。「変動量」の項目には、変動量算出部７１ｂで算出した変動量が格納される。「失火率」の項目には、失火率算出部７１ｄで算出した失火率が格納される。「閾値」の項目には、閾値算出部７１ｅで算出した閾値が格納される。
【００４６】
「学習ＯＮ／ＯＦＦフラグ」の項目には、学習ＯＮ／ＯＦＦ判定部７１ｇでの判定結果としての、学習ＯＮと学習ＯＦＦとを識別するためのフラグが格納される。「スロットル開度」の項目には、開度算出部７１ｈ１で算出したスロットル開度が格納される。
【００４７】
「変化速度」の項目には、変化速度算出部７１ｉで算出した変化速度が格納される。
【００４８】
現設定情報ファイル７２ｂは、図４に示すように、閾値とスロットル開度と時間間隔とを、これらを更新した時のフィードバック制御処理の実行Ｎｏである更新時実行Ｎｏと共に格納する。
【００４９】
「閾値」の項目には、閾値変更部７１ｆで変更した後の閾値が格納される。「スロットル開度」の項目には、開度更新部７１ｈ４で更新した後のスロットル開度が格納される。「時間間隔」の項目には、時間間隔更新部７１ｊで更新した後のフィードバック制御の繰り返し時間間隔が格納される。「更新時実行Ｎｏ」の項目には、閾値、スロットル開度又は時間間隔を変更又は更新した時のフィードバック制御処理の実行Ｎｏが格納される。
【００５０】
［３．処理］
ここでは、エンジン１のアイドリング時に上述した構成のＥＣＵ７等で繰り返し実行されるフィードバック制御処理（その１、その２）の一例を、図６及び図７を参照して説明する。
【００５１】
［３−１．フィードバック制御処理（その１）］
まず、フィードバック制御処理（その１）の一例を、図６を参照して説明する。図６は、フィードバック制御処理（その１）の一例を示すフローチャートである。なお、本説明は、Ｎ（Ｎは２以上の整数）回目のフィードバック制御処理を実行する際のものである。
【００５２】
まず、フィードバック制御部７１は、Ｎ−１回目のフィードバック制御処理の終了時点から現設定情報ファイル７２ｂに格納されている時間間隔が経過した時点で、運転状態取得部７１ａおよび失火状態取得部７１ｃに指令を出す。また、フィードバック制御部７１は、Ｎ回目のフィードバック制御処理であることを示す実行Ｎｏ「Ｎ」をフィードバック情報ファイル７２ａの所定の記憶領域に格納する。
【００５３】
そして、当該指令を受けた運転状態取得部７１ａは、運転状態検出部５で検出したエンジン１の運転状態としてのエンジン１の回転数を運転状態検出部５から取得し、取得した回転数をフィードバック情報ファイル７２ａの所定の記憶領域に格納する（ステップＳＡ−１）。
【００５４】
つぎに、変動量算出部７１ｂは、ステップＳＡ−１で取得した回転数及びフィードバック情報ファイル７２ａに格納されているＮ−１回目のフィードバック制御処理の時に取得した回転数に基づいて、エンジン１の回転数の変動量を算出し、算出した変動量をフィードバック情報ファイル７２ａの所定の記憶領域に格納する（ステップＳＡ−２）。
【００５５】
また、当該指令を受けた失火状態取得部７１ｃは、失火状態検出部６で検出したエンジン１の失火状態を失火状態検出部６から取得する（ステップＳＡ−３）。
【００５６】
つぎに、失火率算出部７１ｄは、ステップＳＡ−３で取得した失火状態に基づいて、エンジン１の失火率を算出し、算出した失火率をフィードバック情報ファイル７２ａの所定の記憶領域に格納する（ステップＳＡ−４）。
【００５７】
つぎに、閾値算出部７１ｅは、ステップＳＡ−４で算出した失火率に基づいて、エンジン１の回転数の変動量の閾値を算出し、算出した閾値をフィードバック情報ファイル７２ａの所定の記憶領域に格納する（ステップＳＡ−５）。
【００５８】
つぎに、閾値変更部７１ｆは、ステップＳＡ−４で算出した失火率が０％より大きかった場合には、現設定情報ファイル７２ｂに格納されている閾値をステップＳＡ−５で算出した閾値に変更する（書き換える）と共に、現設定情報ファイル７２ｂに格納されている更新時実行Ｎｏを「Ｎ」に変更する（書き換える）（ステップＳＡ−６）。
【００５９】
そして、学習ＯＮ／ＯＦＦ判定部７１ｇは、ステップＳＡ−２で算出した変動量及び現設定情報ファイル７２ｂに格納されている閾値に基づいて、後述するスロットル開度学習処理を開始（学習ＯＮ）及び／又は停止（学習ＯＦＦ）するか否かを判定し、その判定結果をフィードバック情報ファイル７２ａの所定の記憶領域に格納する（ステップＳＡ−７）。
【００６０】
そして、スロットル開度学習部７１ｈは、ステップＳＡ−７での判定結果が「学習ＯＮ」であった場合（ステップＳＡ−８：Ｙｅｓ）には、各処理部で、以下のステップＳＡ−９〜ＳＡ−１３で構成されるスロットル開度学習処理を実行する。
【００６１】
まず、開度算出部７１ｈ１は、ステップＳＡ−１で取得したエンジン１の回転数に基づいて、スロットルバルブ３のスロットル開度を算出し、算出したスロットル開度をフィードバック情報ファイル７２ａの所定の記憶領域に格納する（ステップＳＡ−９）。
【００６２】
つぎに、開度判定部７１ｈ２は、ステップＳＡ−９で算出したスロットル開度が、フィードバック情報ファイル７２ａに格納されているＮ−１回目のフィードバック制御処理の時のスロットル開度（又は学習ＯＮであった前回のフィードバック制御処理の時のスロットル開度）と比較して増加又は減少しているか否かを判定する（ステップＳＡ−１０）。
【００６３】
また、失火率判定部７１ｈ３は、ステップＳＡ−４で算出した失火率が、フィードバック情報ファイル７２ａに格納されているＮ−１回目のフィードバック制御処理の時の失火率（又は学習ＯＮであった前回のフィードバック制御処理の時の失火率）と比較して上昇又は低下しているか否かを判定する（ステップＳＡ−１１）。
【００６４】
そして、開度更新部７１ｈ４は、ステップＳＡ−１０での判定結果が「スロットル開度が増加している」というものであり且つステップＳＡ−１１での判定結果が「失火率が上昇している」というものであった場合、又はステップＳＡ−１０での判定結果が「スロットル開度が減少している」というものであり且つステップＳＡ−１１での判定結果が「失火率が低下している」というものであった場合（ステップＳＡ−１２：Ｙｅｓ）には、現設定情報ファイル７２ｂに格納されているスロットル開度をステップＳＡ−９で算出したスロットル開度に更新する（書き換える）と共に、現設定情報ファイル７２ｂに格納されている更新時実行Ｎｏを「Ｎ」に更新する（書き換える）（ステップＳＡ−１３）。ここでスロットル開度学習処理が終了する。
【００６５】
そして、変化速度算出部７１ｉは、ステップＳＡ−４で算出した失火率及びフィードバック情報ファイル７２ａに格納されているＮ−１回目のフィードバック制御処理の時の失火率、並びに現設定情報ファイル７２ｂに格納されているフィードバック制御の繰り返し時間間隔に基づいて、失火率の変化速度を算出し、算出した変化速度をフィードバック情報ファイル７２ａの所定の記憶領域に格納する（ステップＳＡ−１４）。
【００６６】
そして、時間間隔更新部７１ｊは、ステップＳＡ−１４で算出した変化速度に応じて、現設定情報ファイル７２ｂに格納されている時間間隔を短く更新する（書き換える）と共に、現設定情報ファイル７２ｂに格納されている更新時実行Ｎｏを「Ｎ」に更新する（書き換える）（ステップＳＡ−１５）。これによりスロットル開度の更新速度が速まる。
【００６７】
そして、フィードバック制御部７１は、現設定情報ファイル７２ｂに格納されているスロットル開度にスロットルバルブ３を制御するようアクチュエータ４に指令を出し、当該指令を受けたアクチュエータ４は当該スロットル開度になるようスロットルバルブ３を制御する（ステップＳＡ−１６）。ここでＮ回目のフィードバック制御処理が終了する。
【００６８】
そして、フィードバック制御部７１は、Ｎ回目のフィードバック制御処理の終了時点から現設定情報ファイル７２ｂに格納されている時間間隔が経過した時点で（ステップＳＡ−１７：Ｙｅｓ）、Ｎ＋１回目のフィードバック制御処理の実行を開始する。
【００６９】
［３−２．フィードバック制御処理（その２）］
つぎに、フィードバック制御処理（その２）の一例を、図７を参照して説明する。図７は、フィードバック制御処理（その２）の一例を示すフローチャートである。なお、本説明は、Ｎ回目のフィードバック制御処理を実行する際のものである。また、本説明では、上述したフィードバック制御処理（その１）と重複する説明を省略する場合がある。
【００７０】
失火率抽出部７１ｈ５は、ステップＳＢ−１０での判定結果が「失火率が低下している」というものであった場合（ステップＳＢ−１１：Ｙｅｓ）には、フィードバック情報ファイル７２ａに格納されている失火率のうち最大のものを抽出し、開度更新部７１ｈ４は、当該抽出した最大の失火率に対するステップＳＢ−４で算出した失火率の低下率に応じて、当該最大の失火率と対応付けてフィードバック情報ファイル７２ａに格納されているスロットル開度を減らし、現設定情報ファイル７２ｂに格納されているスロットル開度を当該減らした後のスロットル開度に更新する（書き換える）と共に、現設定情報ファイル７２ｂに格納されている更新時実行Ｎｏを「Ｎ」に更新する（書き換える）（ステップＳＢ−１２）。
【００７１】
以上、詳細に説明したように、本実施の形態によれば、取得したエンジン１の失火状態が失火発生を示すものであった場合には、エンジン１の回転数の変動量の閾値を変更する。本実施の形態により、失火発生時であってもエンジンの平均トルクを低下させず失火発生前と同程度に維持することができ、その結果、エンジンの作動性を失火発生前と同程度に維持することができる。換言すると、本実施の形態により、失火発生時も平均トルクの低下を防ぐことができるため、エンジン回転数は変動しながらであるが、トルクの平均値は失火発生前と同等レベルにすることができる。
【００７２】
また、本実施の形態によれば、算出した失火率に応じて、エンジン１の回転数の変動量の閾値を変更する。失火率が小さい場合は「エンジン回転数が低下→フィードバック制御で空気量が増加→エンジン回転数が目標付近に収束」という循環が起こるため、ある一定のエンジン回転数の変動量となるが、失火率が上がると、エンジン回転数が目標付近に収束する前に次の失火が発生するため、エンジン回転数の低下量（エンジン回転数の変動量）がより大きくなるので、本実施の形態により、失火率に因らず平均トルクの低下を防ぐことができる。
【００７３】
また、本実施の形態によれば、エンジン１の運転状態（具体的にはエンジン１の回転数）を取得し、取得した運転状態（具体的には回転数）に基づいてスロットル開度を算出し、算出したスロットル開度が前回の学習又はフィードバック制御処理の時のものと比べて増加又は減少しているか否かを判定する。また、本実施の形態によれば、算出した失火率が前回の学習又はフィードバック制御処理の時のものと比べて上昇又は低下しているか否かを判定する。そして、本実施の形態によれば、スロットル開度に関する判定結果が「スロットル開度が増加している」というものであり且つ失火率に関する判定結果が「失火率が上昇している」というものであった場合、又はスロットル開度に関する判定結果が「スロットル開度が減少している」というものであり且つ失火率に関する判定結果が「失火率が低下している」というものであった場合には、現設定情報ファイル７２ｂに格納されているスロットル開度を、算出したスロットル開度に更新する。失火率上昇時はトルクを増加させ、失火率低下時はトルクを減少させるという関係は必ず成立するため、本実施の形態により、失火要因のトルク変化に対する学習を最優先させることで、トルク不足や過多の状態を早く抑えることができる。
【００７４】
また、本実施の形態によれば、算出した失火率及び前回の学習又はフィードバック制御処理の時に算出した失火率、並びに現設定情報ファイル７２ｂに格納されているフィードバック制御の繰り返し時間間隔に基づいて、失火率の変化速度を算出し、算出した変化速度に応じて、現設定情報ファイル７２ｂに格納されている時間間隔を短縮する。失火率の変化速度が速い場合、平均トルクの不足や過多量も一時的に大きくなるが、本実施の形態により、スロットル開度の更新速度を早めることで、平均トルクの不足や過多量をより早く吸収することができる。
【００７５】
また、本実施の形態によれば、フィードバック情報ファイル７２ａに格納されている失火率のうち最大のものを抽出する。そして、本実施の形態によれば、失火率に関する判定結果が「失火率が低下している」というものであった場合には、抽出した最大の失火率に対する算出した失火率の低下率に応じて、当該最大の失火率と対応付けてフィードバック情報ファイル７２ａに格納されているスロットル開度を減らし、現設定情報ファイル７２ｂに格納されているスロットル開度を当該減らした後のスロットル開度に更新する。失火率とトルク低下量とは比例関係にあるので、本実施の形態により、失火率低下時に発生するトルク過多量を早く吸収することができる。
【００７６】
最後に、本発明にかかるスロットル開度学習制御装置は、本実施の形態以外にも、特許請求の範囲の書類に記載した技術的思想の範囲内において種々の異なる形態で実施されてよいものである。例えば、本実施の形態で説明した各処理のうち、自動的に行なわれるものとして説明した処理の全部または一部を手動的に行うこともでき、手動的に行なわれるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。また、本明細書中や図面中で示した処理手順・具体的名称・各種の情報については、特記する場合を除いて任意に変更することができる。また、装置に関して、図示の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。また、装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の付加等に応じて又は機能負荷に応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
【産業上の利用可能性】
【００７７】
以上のように、本発明にかかるスロットル開度学習制御装置は、特に自動車製造産業で好適に実施することができ、極めて有用である。
【図面の簡単な説明】
【００７８】
【図１】本発明の概要を示す図である。
【図２】失火率とＩＳＣ学習量との関係の一例を示す図である。
【図３】ＥＣＵ７等の構成の一例を示すブロック図である。
【図４】フィードバック情報ファイル７２ａに格納される情報の一例を示す図である。
【図５】現設定情報ファイル７２ｂに格納される情報の一例を示す図である。
【図６】フィードバック制御処理（その１）の一例を示すフローチャートである。
【図７】フィードバック制御処理（その２）の一例を示すフローチャートである。
【符号の説明】
【００７９】
１  エンジン
２  吸気通路
３  スロットルバルブ
４  スロットルバルブアクチュエータ
５  運転状態検出部
６  失火状態検出部
７  ＥＣＵ
７１  フィードバック制御部
７１ａ  運転状態取得部
７１ｂ  変動量算出部
７１ｃ  失火状態取得部
７１ｄ  失火率算出部
７１ｅ  閾値算出部
７１ｆ  閾値変更部
７１ｇ  学習ＯＮ／ＯＦＦ判定部
７１ｈ  開度学習部
７１ｈ１  開度算出部
７１ｈ２  開度判定部
７１ｈ３  失火率判定部
７１ｈ４  開度更新部
７１ｈ５  失火率抽出部
７１ｉ  変化速度算出部
７１ｊ  時間間隔更新部
７２  記憶部
７２ａ  フィードバック情報ファイル
７２ｂ  現設定情報ファイル
【図１】
2010014031.tif 000003
【図２】
2010014031.tif 000004
【図３】
2010014031.tif 000005
【図４】
2010014031.tif 000006
【図５】
2010014031.tif 000007
【図６】
2010014031.tif 000008
【図７】
2010014031.tif 000009