(57)【要約】【課題】スロットル弁の基準開度を学習し、その学習値を用いてスロットル弁の開度を制御する場合において、学習値の算出精度を向上させることができ、それにより、制御性を向上させることができる内燃機関のスロットル弁制御装置を提供する。【解決手段】内燃機関４のスロットル弁制御装置１は、ＦＩ・ＥＣＵ２およびＤＢＷ・ＥＣＵ３を備える。ＤＢＷ・ＥＣＵ３は、内燃機関４の今回の運転時に学習された第１全閉学習値ＴＨＬ１ＶＺＲＮと、内燃機関４の前回の運転時にＦＩ・ＥＣＵ２のＥＥＰＲＯＭ２ａに記憶された第１制御用全閉学習値の前回値ＴＨＬ１ＶＺＲＺ０とに基づき、エンジン水温ＴＷおよびバッテリ電圧ＶＢに応じて、第１制御用全閉学習値ＴＨＬ１ＶＺＲを算出し（ステップ４３〜４５）、この第１制御用全閉学習値ＴＨＬ１ＶＺＲを用いて、スロットル弁７の開度を制御する。【選択図】　図６
2004100526.tif 000002
【特許請求の範囲】
【請求項１】
内燃機関のスロットル弁を駆動する駆動手段と、
当該スロットル弁の開度を検出する開度検出手段と、
前記駆動手段および前記開度検出手段の少なくとも一方の動作環境を表す動作環境パラメータを検出する動作環境パラメータ検出手段と、
前記内燃機関が始動されたときに、前記検出されたスロットル弁の開度に基づき、前記スロットル弁の基準開度を学習値として学習する学習手段と、
当該学習された学習値に基づき、制御用学習値を算出する制御用学習値算出手段と、
当該算出された制御用学習値を用い、前記スロットル弁の開度を制御する制御手段と、
前記算出された制御用学習値を、当該制御用学習値の前回値として記憶する前回値記憶手段と、
を備え、
前記制御用学習値算出手段は、前記内燃機関の今回の運転時に前記学習手段により学習された学習値と、前記内燃機関の前回の運転時に前記前回値記憶手段に記憶された制御用学習値の前回値とに基づき、前記検出された動作環境パラメータに応じて、前記制御用学習値を算出することを特徴とする内燃機関のスロットル弁制御装置。
【請求項２】
前記内燃機関の今回の運転時に前記学習手段による前記学習値の学習が実行されたか否かを判定する学習判定手段をさらに備え、
前記制御用学習値算出手段は、当該学習判定手段により前記学習値の学習が実行されなかったと判定されたときに、前記制御用学習値の前回値を前記制御用学習値として設定することを特徴とする請求項１に記載の内燃機関のスロットル弁制御装置。
【請求項３】
前記前回値記憶手段と前記制御用学習値算出手段との間で、前記制御用学習値および前記制御用学習値の前回値の通信を行う通信手段をさらに備えることを特徴とする請求項１または２に記載の内燃機関のスロットル弁制御装置。
【請求項４】
前記内燃機関の今回の運転時に、前記通信手段により前記制御用学習値の前回値が前記前回値記憶手段から前記制御用学習値算出手段に通信されたか否かを判定する通信判定手段をさらに備え、
前記制御用学習値算出手段は、当該通信判定手段により前記制御用学習値の前回値が通信されていないと判定されたときに、前記学習値を前記制御用学習値として設定することを特徴とする請求項３に記載の内燃機関のスロットル弁制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、内燃機関のスロットル弁の開度を制御する内燃機関のスロットル弁制御装置に関する。
【０００２】
【従来の技術】
従来、この種のスロットル弁制御装置として、例えば特許第２７７８８２７号公報に記載されたものが知られている。この制御装置は、スロットル弁の位置すなわち開度を検出するスロットル弁開度センサを備えている。この制御装置では、内燃機関が始動されるごとに、スロットル弁開度センサの検出信号に基づき、スロットル弁を最も閉じ側に制御しているときのスロットル弁の実際の開度（以下「全閉開度」という）が学習されるとともに、それ以降、この学習値を用いてスロットル弁の開度が制御される。このようなスロットル弁の全閉開度の学習を行う理由は、スロットル弁の全閉開度は、内燃機関が量産される関係上、また、経時的な変化によって、設計値に対してある程度ばらつくことは避けられないので、そのようなばらつきを補償するためである。
【０００３】
【発明が解決しようとする課題】
上記従来の制御装置によれば、スロットル弁の全閉開度が、内燃機関が始動されるごとに学習され、更新されるため、スロットル弁開度センサの動作環境が学習に適さない状態のときには、適正な学習値を得られないことがある。例えば、極低温状態で内燃機関が始動された場合、内燃機関の運転時間が経過するのに伴い、内燃機関の温度が上昇し、スロットル弁開度センサの環境温度が上昇することで、その検出信号がドリフトを生じるなど、スロットル弁開度センサの出力特性が変化することがある。その場合、始動時に学習した全閉開度の学習値が不適切な値となってしまうため、そのような学習値を用いてスロットル弁の開度を制御すると、制御性の低下を招く。また、以上の問題は、スロットル弁を駆動する駆動機構の動作環境が学習に適さない状態のときにも発生する。
【０００４】
本発明は、上記課題を解決するためになされたもので、スロットル弁の基準開度を学習し、その学習値を用いてスロットル弁の開度を制御する場合において、学習値の算出精度を向上させることができ、それにより、制御性を向上させることができる内燃機関のスロットル弁制御装置を提供することを目的とする。
【０００５】
【課題を解決するための手段】
この目的を達成するために、請求項１に係る内燃機関４のスロットル弁制御装置１は、内燃機関４のスロットル弁７を駆動する駆動手段（例えば実施形態における（以下、この項において同じ）モータ８）と、スロットル弁７の開度を検出する開度検出手段（第１および第２スロットル弁開度センサ１０，１１）と、駆動手段および開度検出手段の少なくとも一方の動作環境を表す動作環境パラメータ（エンジン水温ＴＷ、バッテリ電圧ＶＢ）を検出する動作環境パラメータ検出手段（水温センサ１３、バッテリ電圧センサ１６）と、内燃機関４が始動されたときに、検出されたスロットル弁７の開度（第１および第２出力電圧ＴＨ１ＡＤ，ＴＨ２ＡＤ）に基づき、スロットル弁７の基準開度を学習値（第１および第２全閉学習値ＴＨＬ１ＶＺＲＮ，ＴＨＬ２ＶＺＲＮ）として学習する学習手段（ＤＢＷ・ＥＣＵ３、ステップ１〜１４）と、学習された学習値に基づき、制御用学習値（第１および第２制御用全閉学習値ＴＨＬ１ＶＺＲ，ＴＨＬ２ＶＺＲ）を算出する制御用学習値算出手段（ＤＢＷ・ＥＣＵ３、ステップ４１〜４９）と、算出された制御用学習値を用い、スロットル弁７の開度を制御する制御手段（ＤＢＷ・ＥＣＵ３）と、算出された制御用学習値を、制御用学習値の前回値（第１および第２制御用全閉学習値の前回値ＴＨＬ１ＶＺＲＺ０，ＴＨＬ２ＶＺＲＺ０）として記憶する前回値記憶手段（ＦＩ・ＥＣＵ２、ＥＥＰＲＯＭ２ａ）と、を備え、制御用学習値算出手段は、内燃機関４の今回の運転時に学習手段により学習された学習値（第１および第２全閉学習値ＴＨＬ１ＶＺＲＮ，ＴＨＬ２ＶＺＲＮ）と、内燃機関４の前回の運転時に前回値記憶手段に記憶された制御用学習値の前回値（第１制御用全閉学習値の前回値ＴＨＬ１ＶＺＲＺ０，ＴＨＬ２ＶＺＲＺ０）とに基づき、検出された動作環境パラメータ（エンジン水温ＴＷ、バッテリ電圧ＶＢ）に応じて、制御用学習値（第１および第２制御用全閉学習値ＴＨＬ１ＶＺＲ，ＴＨＬ２ＶＺＲ）を算出する（ステップ４３〜４５）ことを特徴とする。
【０００６】
この内燃機関のスロットル弁制御装置によれば、学習手段により、内燃機関が始動されたときに、スロットル弁の基準開度が学習値として学習され、制御用学習値算出手段により、この学習された学習値に基づき、制御用学習値が算出され、制御手段により、この制御用学習値を用い、スロットル弁の開度が制御されるとともに、制御用学習値が、その前回値として前回値記憶手段に記憶される。また、制御用学習値は、制御用学習値算出手段により、内燃機関の今回の運転時に学習手段により学習された学習値と、内燃機関の前回の運転時に前回値記憶手段に記憶された制御用学習値の前回値とに基づき、検出された動作環境パラメータに応じて算出される。このように、スロットル弁の開度の制御に用いる制御用学習値が、学習値および制御用学習値の前回値に基づき、駆動手段および／または開度検出手段の動作環境を表す動作環境パラメータに応じて算出されるので、従来と異なり、制御用学習値を、例えば機関温度などの、開度検出手段および／または駆動手段の動作環境を反映させながら算出できると同時に、その前回値の状態も反映させながら算出できる。その結果、学習値の算出精度を向上させることができ、それにより、スロットル弁の開度制御の制御性を向上させることができる。
【０００７】
請求項２に係る発明は、請求項１に記載の内燃機関４のスロットル弁制御装置１において、内燃機関４の今回の運転時に学習手段による学習値の学習が実行されたか否かを判定する学習判定手段（ＤＢＷ・ＥＣＵ３、ステップ４２，４６）をさらに備え、制御用学習値算出手段は、学習判定手段により学習値の学習が実行されなかったと判定されたとき（ステップ４６の判別結果がＹＥＳのとき）に、制御用学習値の前回値を制御用学習値として設定する（ステップ４７）ことを特徴とする。
【０００８】
この内燃機関のスロットル弁制御装置によれば、学習判定手段により、学習値の学習が実行されなかったと判定されたときに、制御用学習値算出手段により、学習値の前回値が制御用学習値として設定されるので、今回の運転時に学習値の学習が実行されなかったときでも、スロットル弁の開度制御を、設定された制御用学習値を用いながら支障なく実行することができる。その結果、スロットル弁の開度制御の制御性をさらに向上させることができる。
【０００９】
請求項３に係る発明は、請求項１または２に記載の内燃機関４のスロットル弁制御装置１において、前回値記憶手段（ＦＩ・ＥＣＵ２）と制御用学習値算出手段（ＤＢＷ・ＥＣＵ３）との間で、制御用学習値および制御用学習値の前回値の通信を行う通信手段（ＦＩ・ＥＣＵ２、ＤＢＷ・ＥＣＵ３、通信線９）をさらに備えることを特徴とする。
【００１０】
この内燃機関のスロットル弁制御装置によれば、通信手段により、前回値記憶手段と制御用学習値算出手段との間で、制御用学習値および制御用学習値の前回値が通信されるので、例えば、これらの前回値記憶手段および制御用学習値算出手段を互いに別個の２つの制御ユニットで構成した場合、ＥＥＰＲＯＭやバックアップ電源付きのＲＡＭなどの、制御用学習値の前回値を記憶するための装置を、制御用学習値算出手段を構成する一方の制御ユニット側に設ける必要がなくなり、その分、一方の制御ユニットを小型化できる。また、その一方の制御ユニットをスロットル弁などを収容するスロットルボディと一体化した場合には、そのような一体型装置をコンパクトに構成することができる。
【００１１】
請求項４に係る発明は、請求項３に記載の内燃機関４のスロットル弁制御装置１において、内燃機関４の今回の運転時に、通信手段により制御用学習値の前回値が前回値記憶手段から制御用学習値算出手段に通信されたか否かを判定する通信判定手段（ＤＢＷ・ＥＣＵ３、ステップ４１）をさらに備え、制御用学習値算出手段は、通信判定手段により制御用学習値の前回値が通信されていないと判定されたとき（ステップ４１の判別結果がＮＯのとき）に、学習値を制御用学習値として設定する（ステップ４９）ことを特徴とする。
【００１２】
この内燃機関のスロットル弁制御装置によれば、制御用学習値の前回値が前回値記憶手段から制御用学習値算出手段に通信されなかったと判定されたときに、制御用学習値算出手段により、学習値が制御用学習値として設定されるので、制御用学習値の前回値が通信されなかったときでも、スロットル弁の開度制御を、設定された制御用学習値を用いながら支障なく実行することができる。その結果、スロットル弁の開度制御の制御性をより一層、向上させることができる。
【００１３】
【発明の実施の形態】
以下、図面を参照しながら、本発明の一実施形態に係る内燃機関のスロットル弁制御装置について説明する。図１は、本発明のスロットル弁制御装置、およびこれを適用した内燃機関の概略構成を示している。同図に示すように、このスロットル弁制御装置１は、ＦＩ・ＥＣＵ２およびＤＢＷ・ＥＣＵ３と、スロットル弁７を駆動するスロットル弁駆動機構６などで構成されており、これらのＦＩ・ＥＣＵ２およびＤＢＷ・ＥＣＵ３については後述する。
【００１４】
このスロットル弁駆動機構６は、スロットル弁７と、これを開閉駆動するモータ８（駆動手段）などを備えており、スロットル弁駆動機構６およびＤＢＷ・ＥＣＵ３は、図示しないスロットルボディと一体化されている。スロットル弁７は、内燃機関（以下「エンジン」という）４の吸気管５の途中に回動自在に設けられており、当該回動に伴う開度の変化により吸気管５内を流れる吸入空気量を変化させる。モータ８は、ＤＢＷ・ＥＣＵ３に接続されたＤＣモータで構成されており、ＤＢＷ・ＥＣＵ３からの駆動信号によって制御されることにより、スロットル弁７の開度（以下「スロットル弁開度」という）を変化させる。
【００１５】
また、スロットル弁７には、これを開弁方向および閉弁方向にそれぞれ付勢する２つのばね（いずれも図示せず）が取り付けられており、これら２つのばねでは、閉弁方向に付勢するばねの付勢力の方が、開弁方向に付勢するばねの付勢力よりも大きくなるように構成されている。これら２つのばねにより、スロットル弁７は、モータ８によってスロットル弁７が駆動されていない状態では、所定の初期開度ＴＨＬＤＥＦに保持される。この初期開度ＴＨＬＤＥＦは、全閉状態に近くかつ内燃機関４の始動に必要な吸入空気量を確保できるとともに、例えばＤＢＷ・ＥＣＵ３や後述するスロットル弁開度センサ１０，１１の異常が発生した場合において、モータ８によるスロットル弁７の駆動を停止したときに、車両を退避走行可能にする吸入空気量を確保できる値（例えば７゜）に設定される。
【００１６】
さらに、スロットルボディには、開度検出手段としての第１および第２スロットル弁開度センサ１０，１１が設けられている。これらの第１および第２スロットル弁開度センサ１０，１１は、スロットル弁開度を検出して、このスロットル弁開度に応じた第１および第２出力電圧ＴＨ１ＡＤ，ＴＨ２ＡＤ（検出されたスロットル弁開度を表す値）をＤＢＷ・ＥＣＵ３にそれぞれ出力する。
【００１７】
ＦＩ・ＥＣＵ２には、吸気温センサ１２、水温センサ１３、車速センサ１４、アクセル開度センサ１５、バッテリ電圧センサ１６およびイグニッション・スイッチ１７が接続されている。吸気温センサ１２および水温センサ１３は、吸気管５内の吸入空気の温度（以下「吸気温」という）ＴＡ、およびエンジン４のシリンダブロック内の冷却水の温度（以下「エンジン水温」という）ＴＷを検出して、その検出信号をＦＩ・ＥＣＵ２に出力する。
【００１８】
また、車速センサ１４およびアクセル開度センサ１５はそれぞれ、エンジン４が搭載された車両（図示せず）の車速ＶＰ、およびアクセルペダル（図示せず）の踏み込み量であるアクセル開度ＡＣＣを検出して、その検出信号をＦＩ・ＥＣＵ２に出力する。さらに、バッテリ電圧センサ１６は、バッテリ２０の電圧（以下「バッテリ電圧」という）ＶＢを検出して、その検出信号をＦＩ・ＥＣＵ２に出力する。また、イグニッション・スイッチ（以下「ＩＧ・ＳＷ」という）１７は、イグニッションキー（図示せず）操作によりＯＮ／ＯＦＦされるとともに、そのＯＮ／ＯＦＦ状態を表す信号をＦＩ・ＥＣＵ２に出力する。本実施形態では、水温センサ１３およびバッテリ電圧センサ１６が、動作環境パラメータ検出手段に相当し、エンジン水温ＴＷおよびバッテリ電圧ＶＢが、動作環境パラメータに相当する。
【００１９】
一方、ＦＩ・ＥＣＵ２およびＤＢＷ・ＥＣＵ３はいずれも、ＲＡＭ、ＲＯＭ、ＣＰＵおよびＩ／Ｏインターフェース（いずれも図示せず）などからなるマイクロコンピュータで構成されている。本実施形態では、ＦＩ・ＥＣＵ２により、前回値記憶手段および通信手段が構成され、ＤＢＷ・ＥＣＵ３により、学習手段、制御用学習値算出手段、制御手段、学習判定手段、通信手段および通信判定手段が構成されている。なお、これらの関係が逆になるように構成してもよい。
【００２０】
また、これらの２つのＥＣＵ２，３はいずれも、電源としてのバッテリ２０に電気的に接続されており、このバッテリ２０からの電力供給により作動する。なお、ＦＩ・ＥＣＵ２は、通常のＲＯＭに加えて、前回値記憶手段としてのＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌ　Ｅｒａｓａｂｌｅ　Ｐｒｏｇｒａｍｍａｂｌｅ　Ｒｅａｄ−Ｏｎｌｙ　Ｍｅｍｏｒｙ）２ａを備えており、ＩＧ・ＳＷ１７がＯＦＦされた後、バッテリ２０からの電力供給が停止されたときでも、ＥＥＰＲＯＭ２ａ内に記憶した各種のデータを保持する。
【００２１】
さらに、ＦＩ・ＥＣＵ２およびＤＢＷ・ＥＣＵ３は、通信手段としての通信線９，９を介して互いに接続されており、これらの通信線９，９を介したＣＡＮ通信により、後述する第１および第２開度データＣＵＲＴＨＬ，ＲＥＱＴＨＬ１および指令信号ＩＮＦＯＲＥＱＮＯなどの各種のデータが、２つのＥＣＵ２，３の間で送受信される。
【００２２】
ＦＩ・ＥＣＵ２は、エンジン４の停止時、ＩＧ・ＳＷ１７がＯＦＦされたときに、ＤＢＷ・ＥＣＵ３から送信された第１開度データＣＵＲＴＨＬを、後述する第１および第２制御用全閉学習値ＴＨＬ１ＶＺＲ，ＴＨＬ２ＶＺＲの前回値ＴＨＬ１ＶＺＲＺ０，ＴＨＬ２ＶＺＲＺ０としてＥＥＰＲＯＭ２ａ内に順次、記憶するとともに、その後のエンジン４の始動時、ＩＧ・ＳＷ１７がＯＮされたときに、これらの第１および第２制御用全閉学習値の前回値ＴＨＬ１ＶＺＲＺ０，ＴＨＬ２ＶＺＲＺ０を、第２開度データＲＥＱＴＨＬ１としてＤＢＷ・ＥＣＵ３に順次、送信する。
【００２３】
また、ＦＩ・ＥＣＵ２は、エンジン４の運転中、前述した各種のセンサ１０〜１６の検出信号およびＩＧ・ＳＷ１７の信号に応じて、目標開度ＤＣＣＭＤの算出処理などを実行する。この目標開度ＤＣＣＭＤは、具体的には、エンジン運転中、車速ＶＰおよびアクセル開度ＡＣＣに応じて、図示しないマップを検索することにより算出され、算出された目標開度ＤＣＣＭＤは、第２開度データＲＥＱＴＨＬ１として通信線９を介してＤＢＷ・ＥＣＵ３に送信される。
【００２４】
さらに、ＦＩ・ＥＣＵ２は、ＩＧ・ＳＷ１７のＯＮ以降、ＤＢＷ・ＥＣＵ３の動作を指令するための指令信号ＩＮＦＯＲＥＱＮＯを、通信線９を介してＤＢＷ・ＥＣＵ３に送信する。この指令信号ＩＮＦＯＲＥＱＮＯの値は、ＩＧ・ＳＷ１７がＯＮされた以降、「０」，［１］，および「０〜３以外の値」の順に設定され、ＩＧ・ＳＷ１７がＯＦＦされたときに「２」，「３」の順に設定される。
【００２５】
ＦＩ・ＥＣＵ２は、第２開度データＲＥＱＴＨＬ１として、この指令信号ＩＮＦＯＲＥＱＮＯが「０」のときには第１制御用全閉学習値の前回値ＴＨＬ１ＶＺＲＺ０を、「１」のときには第２制御用全閉学習値の前回値ＴＨＬ２ＶＺＲＺ０を、「０〜３以外の値」のときには、目標開度ＤＣＣＭＤをＤＢＷ・ＥＣＵ３にそれぞれ送信する。すなわち、ＦＩ・ＥＣＵ２は、ＩＧ・ＳＷ１７がＯＮされた以降、第２開度データＲＥＱＴＨＬ１として、上記制御用全閉学習値の前回値ＴＨＬ１ＶＺＲＺ０，ＴＨＬ２ＶＺＲＺ０をＤＢＷ・ＥＣＵ３に順次、送信した後、目標開度ＤＣＣＭＤを送信する。
【００２６】
また、ＦＩ・ＥＣＵ２は、ＩＧ・ＳＷ１７がＯＦＦされたときに、ＤＢＷ・ＥＣＵ３に対して、第１開度データＣＵＲＴＨＬとして第１制御用全閉学習値ＴＨＬ１ＶＺＲを要求する場合、指令信号ＩＮＦＯＲＥＱＮＯを「２」に、第２制御用全閉学習値ＴＨＬ２ＶＺＲを要求する場合、指令信号ＩＮＦＯＲＥＱＮＯを「３」にそれぞれ設定する。
【００２７】
一方、ＤＢＷ・ＥＣＵ３は、ＩＧ・ＳＷ１７のＯＮ以降、ＦＩ・ＥＣＵ２から送信される指令信号ＩＮＦＯＲＥＱＮＯおよび第２開度データＲＥＱＴＨＬ１を受信する受信処理を実行し、それにより、目標開度ＤＣＣＭＤと、第１および第２制御用全閉学習値の前回値ＴＨＬ１ＶＺＲＺ０，ＴＨＬ２ＶＺＲＺ０（制御用学習値の前回値）とを受信する。この受信処理については、後述する。
【００２８】
また、ＤＢＷ・ＥＣＵ３は、エンジン４の始動時、ＩＧ・ＳＷ１７がＯＮされた場合、後述するように、第１および第２全閉学習値ＴＨＬ１ＶＺＲＮ，ＴＨＬ２ＶＺＲＮ（学習値）の学習処理を実行する。さらに、後述する制御用全閉学習値の算出処理により、第１および第２制御用全閉学習値ＴＨＬ１ＶＺＲ，ＴＨＬ２ＶＺＲ（制御用学習値）を算出する。そのうちの第１制御用全閉学習値ＴＨＬ１ＶＺＲは、後述するスロットル弁７の開度制御で用いられる。
【００２９】
さらに、ＩＧ・ＳＷ１７がＯＦＦされたときに、後述する送信処理により、これらの第１および第２制御用全閉学習値ＴＨＬ１ＶＺＲ，ＴＨＬ２ＶＺＲは、第１開度データＣＵＲＴＨＬとして通信線９を介してＦＩ・ＥＣＵ２に順次、送信され、第１および第２制御用全閉学習値の前回値ＴＨＬ１ＶＺＲＺ０，ＴＨＬ２ＶＺＲＺ０として、前述したようにＦＩ・ＥＣＵ２のＥＥＰＲＯＭ２ａ内に記憶される。
【００３０】
さらに、ＤＢＷ・ＥＣＵ３は、ＩＧ・ＳＷ１７のＯＮ以降、上記のように算出された第１制御用全閉学習値ＴＨＬ１ＶＺＲと、第１スロットル弁開度センサ１０からの第１出力電圧ＴＨ１ＡＤとに基づき、スロットル弁７の実際の開度である実開度ＴＨＬＤＢＷを算出するとともに、この実開度ＴＨＬＤＢＷと、ＦＩ・ＥＣＵ２で算出された目標開度ＤＣＣＭＤとに基づき、スロットル弁７の開度をフィードバック制御する。このフィードバック制御では、目標開度ＤＣＣＭＤと実開度ＴＨＬＤＢＷとの偏差を算出し、この偏差を値０に収束させるような値として制御入力を算出し、この制御入力に応じてモータ８への駆動信号のデューティ比ＤＵＴＹを決定するとともに、そのように決定されたデューティ比ＤＵＴＹの駆動信号をモータ８に供給することにより、スロットル弁７の開度が制御される。
【００３１】
なお、前述した第２スロットル弁開度センサ１１は、第１スロットル弁開度センサ１０の故障診断用に設けられたものであるが、その第２出力電圧ＴＨ２ＡＤおよび第２制御用全閉学習値ＴＨＬ２ＶＺＲは、第１スロットル弁開度センサ１０が故障した場合などにおいて、上記スロットル弁７の開度制御や後述する第２全閉学習値ＴＨＬ２ＶＺＲＮの学習処理などで、第１出力電圧ＴＨ１ＡＤおよび第１制御用全閉学習値ＴＨＬ１ＶＺＲの代替値として用いられる。
【００３２】
次に、ＤＢＷ・ＥＣＵ３により実行される、第１および第２全閉学習値ＴＨＬ１ＶＺＲＮ，ＴＨＬ２ＶＺＲＮを学習する学習処理について説明する。なお、この処理では、第１および第２全閉学習値ＴＨＬ１ＶＺＲＮ，ＴＨＬ２ＶＺＲＮの学習が、第１および第２スロットル弁開度センサ１０，１１の出力電圧ＴＨ１ＡＤ，ＴＨ２ＡＤに基づいてそれぞれ同様に実行されるので、以下これらを代表して、第１全閉学習値ＴＨＬ１ＶＺＲＮの学習を例にとり、図２および図３を参照しながら、説明する。
【００３３】
この処理は、エンジン４の始動時、ＩＧ・ＳＷ１７がＯＮされた直後に、所定時間（例えば２ｍｓｅｃ）ごとに実行される。また、この処理の開始に伴い、これと並行して、目標開度ＤＣＣＭＤが前述した初期開度ＴＨＬＤＥＦから所定値ずつ減算された値に漸次、設定され、それにより、スロットル弁７がその全閉位置に向かって制御される。
【００３４】
この処理では、まず、ステップ１において、学習成功フラグＦ＿ＧＡＯＫまたは学習失敗フラグＦ＿ＧＡＥＲＲが「１」であるか否かを判別する。これらの学習成功フラグＦ＿ＧＡＯＫおよび学習失敗フラグＦ＿ＧＡＥＲＲはいずれも、ＩＧ・ＳＷ１７がＯＮされたときに「０」にリセットされる。
【００３５】
今回のループがＩＧ・ＳＷ１７のＯＮ直後の１回目であれば、この判別結果がＮＯとなり、その場合には、ステップ２に進み、学習実行中フラグＦ＿ＧＡＯＮが「１」であるか否かを判別する。この学習実行中フラグＦ＿ＧＡＯＮは、ＩＧ・ＳＷ１７がＯＮされたときに「０」にリセットされる。
【００３６】
今回のループがＩＧ・ＳＷ１７のＯＮ直後の１回目であれば、ステップ２の判別結果がＮＯとなり、その場合には、ステップ３に進み、ダウンカウント式の学習タイマのタイマ値ＴＭＧＡＯＮを所定の実行時間ＴＭＲＥＦ（例えば７００ｍｓｅｃ）に設定する。この学習タイマは、第１全閉学習値ＴＨＬ１ＶＺＲＮの学習が実行されている時間を計時するものである。
【００３７】
次いで、ステップ４に進み、第１全閉学習値ＴＨＬ１ＶＺＲＮの学習が開始されたことを表すために、学習実行中フラグＦ＿ＧＡＯＮを「１」にセットする。これにより、次回以降のループにおいて、前記ステップ２の判別結果がＹＥＳとなり、その場合には、ステップ３，４をスキップして、ステップ５に進む。
【００３８】
ステップ４または２に続くステップ５では、学習タイマのタイマ値ＴＭＧＡＯＮが値０であるか否かを判別する。この判別結果がＮＯで、学習の実行時間ＴＭＲＥＦが経過していないときには、ステップ６に進み、第１スロットル弁開度センサ１０の第１出力電圧ＴＨ１ＡＤが、所定の下限値ＦＳＶＴＨ１Ｌ（例えば０．３Ｖ）以上で、かつ所定の上限値ＦＳＶＴＨ１Ｈ（例えば４．８Ｖ）以下であるか否かを判別する。
【００３９】
この判別結果がＮＯのときには、第１出力電圧ＴＨ１ＡＤが正常な範囲内になく、第１全閉学習値ＴＨＬ１ＶＺＲＮを適切に学習することができないとして、本処理を終了する。一方、この判別結果がＹＥＳのときには、次のステップ７，８において、エンジン水温ＴＷが所定の下限水温ＴＷＲＥＦ（例えば−５℃）以下であるか否か、吸気温ＴＡが所定の下限吸気温ＴＡＲＥＦ（例えば−１０℃）以下であるか否かをそれぞれ判別する。
【００４０】
これらのステップ７，８の判別結果のいずれかがＹＥＳで、ＴＷ≦ＴＷＲＥＦまたはＴＡ≦ＴＡＲＥＦのときには、エンジン４の温度が非常に低いことにより、スロットル弁７が氷結しているおそれがあり、第１全閉学習値ＴＨＬ１ＶＺＲＮの学習を適切に実行することができないとして、そのまま本処理を終了する。一方、これらの判別結果がいずれもＮＯのときには、ステップ９に進み、第１出力電圧ＴＨ１ＡＤの取込処理を実行する。
【００４１】
図４は、この第１出力電圧ＴＨ１ＡＤの取込処理のサブルーチンを示している。この処理では、まず、ステップ２１で、今回検出された第１出力電圧ＴＨ１ＡＤをポインタ値ｎで指定されるバッファＴＨ１ＡＤＢ（ｎ）に記憶する。次に、ステップ２２に進み、このポインタ値ｎをインクリメントし、次いで、ステップ２３に進み、ポインタ値ｎが、所定値ＣＴＴＨＡＤ（例えば値３０）以上であるか否かを判別する。
【００４２】
この判別結果がＮＯで、ｎ＜ＣＴＴＨＡＤのときには、そのまま本処理を終了する。一方、この判別結果がＹＥＳで、ｎ≧ＣＴＴＨＡＤのときには、ステップ２４に進み、ポインタ値ｎを値０にリセットし、次いで、ステップ２５に進み、取込完了フラグＦ＿ＣＴＨＡＤを「１」にセットした後、本処理を終了する。なお、この取込完了フラグＦ＿ＣＴＨＡＤは、ＩＧ・ＳＷ１７がＯＮされたときに「０」にリセットされる。
【００４３】
以上のように、この取込処理では、その実行タイミングごとに、そのときに検出された第１出力電圧ＴＨ１ＡＤが、バッファＴＨ１ＡＤＢ（０）〜ＴＨ１ＡＤＢ（ＣＴＴＨＡＤ−１）に順に記憶され、その記憶が完了したとき、すなわち所定値ＣＴＴＨＡＤに等しい数の第１出力電圧ＴＨ１ＡＤが記憶されたときに、そのような取込が完了したとして、取込完了フラグＦ＿ＣＴＨＡＤが「１」にセットされる。
【００４４】
図２に戻り、ステップ９を実行した後、図３のステップ１０に進み、取込完了フラグＦ＿ＣＴＨＡＤが「１」であるか否かを判別する。この判別結果がＮＯで、第１出力電圧ＴＨ１ＡＤの取込が完了していないときには、そのまま本処理を終了する。
【００４５】
一方、この判別結果がＹＥＳ、すなわちＦ＿ＣＴＨＡＤ＝１で、第１出力電圧ＴＨ１ＡＤの取込が完了したときには、ステップ１１に進み、上述したように記憶された所定値ＣＴＴＨＡＤに等しい数の第１出力電圧ＴＨ１ＡＤから、最大値ＭＡＸ１ＡＤおよび最小値ＭＩＮ１ＡＤを検索し、決定する。
【００４６】
次に、ステップ１２に進み、最大値ＭＡＸ１ＡＤから最小値ＭＩＮ１ＡＤを減算した値を、偏差ＡＢＳＳＴＢ１として設定し、次いで、ステップ１３に進み、この偏差ＡＢＳＳＴＢ１が所定の判定値ＤＴＨ１ＳＴＢ（例えば０．０２Ｖ、スロットル弁開度０．５゜相当）よりも大きいか否かを判別する。
【００４７】
この判別結果がＹＥＳで、偏差ＡＢＳＳＴＢ１が判定値ＤＴＨ１ＳＴＢよりも大きいときには、スロットル弁７が全閉位置にまだ達していないなど、スロットル弁開度が変化している状態にあり、スロットル弁７が全閉位置に位置していないとして、そのまま本処理を終了する。
【００４８】
一方、ステップ１３の判別結果がＮＯで、ＡＢＳＳＴＢ１≦ＤＴＨ１ＳＴＢのとき、すなわちスロットル弁開度がほとんど変化していないときには、スロットル弁７が実際に安定した状態で全閉位置に位置しているとして、ステップ１４に進み、今回検出された第１出力電圧ＴＨ１ＡＤを第１全閉学習値ＴＨＬ１ＶＺＲＮとして設定する。
【００４９】
次いで、ステップ１５に進み、第１全閉学習値ＴＨＬ１ＶＺＲＮの学習に成功したことを表すために、学習成功フラグＦ＿ＧＡＯＫを「１」にセットした後、本処理を終了する。これにより、次回以降のループにおいて、前記ステップ１の判別結果がＹＥＳとなり、その場合には、そのまま本処理を終了する。
【００５０】
一方、図２に戻り、前記ステップ５の判別結果がＹＥＳで、第１全閉学習値ＴＨＬ１ＶＺＲＮの学習が成功していないにもかかわらず、実行時間ＴＭＲＥＦが経過したときには、第１全閉学習値ＴＨＬ１ＶＺＲＮの学習が不可能な状態にあるとして、図３のステップ１６に進み、第１全閉学習値ＴＨＬ１ＶＺＲＮの学習に失敗したことを表すために、学習失敗フラグＦ＿ＧＡＥＲＲを「１」にセットした後、本処理を終了する。これにより、次回以降のループにおいて、前記ステップ１の判別結果がＹＥＳとなり、その場合には、そのまま本処理を終了する。
【００５１】
次に、図５を参照しながら、ＤＢＷ・ＥＣＵ３で実行される、目標開度ＤＣＣＭＤなどの各種のデータをＦＩ・ＥＣＵ２から受信する受信処理について説明する。この処理は、ＩＧ・ＳＷ１７のＯＮ以降、前述した第１および第２全閉学習値ＴＨＬ１ＶＺＲＮ，ＴＨＬ２ＶＺＲＮの学習処理と並行して、所定時間ごとに実行される。この処理では、まず、ステップ３１において、ＦＩ・ＥＣＵ２から送信された指令信号ＩＮＦＯＲＥＱＮＯの値が「１」であるか否かを判別する。
【００５２】
この判別結果がＮＯで、ＩＮＦＯＲＥＱＮＯ≠１のときには、ステップ３２に進み、指令信号ＩＮＦＯＲＥＱＮＯの値が「０」であるか否かを判別する。この判別結果がＹＥＳで、第１制御用全閉学習値の前回値ＴＨＬ１ＶＺＲＺ０が、第２開度データＲＥＱＴＨＬ１としてＦＩ・ＥＣＵ２から送信されてきたときには、ステップ３４に進み、第２開度データＲＥＱＴＨＬ１を第１制御用全閉学習値の前回値ＴＨＬ１ＶＺＲＺ０として設定する。次いで、それを表すために、ステップ３５で、第１前回値受信フラグＦ＿Ｚ１ＯＫを「１」にセットした後、本処理を終了する。
【００５３】
一方、ステップ３１の判別結果がＹＥＳで、第２制御用全閉学習値の前回値ＴＨＬ２ＶＺＲＺ０が、第２開度データＲＥＱＴＨＬ１としてＦＩ・ＥＣＵ２から送信されてきたときには、ステップ３６に進み、第２開度データＲＥＱＴＨＬ１を第２制御用全閉学習値の前回値ＴＨＬ２ＶＺＲＺ０として設定する。次いで、それを表すために、ステップ３７で、第２前回値受信フラグＦ＿Ｚ２ＯＫを「１」にセットした後、本処理を終了する。
【００５４】
一方、ステップ３２の判別結果がＮＯで、目標開度ＤＣＣＭＤが第２開度データＲＥＱＴＨＬ１としてＦＩ・ＥＣＵ２から送信されてきたときには、ステップ３３に進み、第２開度データＲＥＱＴＨＬ１を目標開度ＤＣＣＭＤとして設定した後、本処理を終了する。
【００５５】
なお、前述したように、ＩＮＦＯＲＥＱＮＯの値は、ＩＧ・ＳＷ１７のＯＮ以降、ＦＩ・ＥＣＵ２により、「０」，「１」，「０〜３以外の値」の順に設定され、ＤＢＷ・ＥＣＵ３に送信されるので、１回目のループでは、ステップ３１の判別結果がＮＯで、ステップ３２の判別結果がＹＥＳとなり、２回目のループでは、ステップ３１の判別結果がＹＥＳとなるとともに、３回目以降のループでは、ステップ３１，３２の判別結果がいずれもＮＯとなる。
【００５６】
次に、ＤＢＷ・ＥＣＵ３で実行される第１および第２制御用全閉学習値ＴＨＬ１ＶＺＲ，ＴＨＬ２ＶＺＲの算出処理について説明する。これらの２つの制御用全閉学習値ＴＨＬ１ＶＺＲ，ＴＨＬ２ＶＺＲは、互いに同様に算出されるので、以下これらを代表して、第１制御用全閉学習値ＴＨＬ１ＶＺＲの算出を例にとり、図６を参照しながら、説明する。この算出処理は、ＩＧ・ＳＷ１７のＯＮ以降、前述した各処理と並行して所定時間ごとに実行される。
【００５７】
この処理では、まず、ステップ４１において、第１前回値受信フラグＦ＿Ｚ１ＯＫが「１」であるか否かを判別する。この判別結果がＹＥＳで、第１制御用全閉学習値の前回値ＴＨＬ１ＶＺＲＺ０をＦＩ・ＥＣＵ２から受信済みであるときには、ステップ４２に進み、学習成功フラグＦ＿ＧＡＯＫが「１」であるか否かを判別する。
【００５８】
この判別結果がＹＥＳで、第１全閉学習値ＴＨＬ１ＶＺＲＮを学習済みであるときには、ステップ４３に進み、第１係数Ｋ１を、バッテリ電圧ＶＢに応じて、図７に示すテーブルを検索することにより算出する。この第１係数Ｋ１は、後述するなまし係数ＫＮＡＭＡＳＩの算出に用いられる。
【００５９】
同図に示すように、このテーブルにおいては、第１係数Ｋ１は、バッテリ電圧ＶＢが所定値ＶＢ１（例えば８Ｖ）よりも小さい範囲では、バッテリ電圧ＶＢが小さいほどより小さい値に、バッテリ電圧ＶＢが所定値ＶＢ１より大きい所定値ＶＢ２（例えば１６Ｖ）よりも大きい範囲では、バッテリ電圧ＶＢが大きいほどより小さい値に、ＶＢ１≦ＶＢ≦ＶＢ２の範囲では、所定の一定値Ｋ１Ａ（例えば値１）にそれぞれ設定される。これは、バッテリ電圧ＶＢがＶＢ＜ＶＢ１またはＶＢ２＜ＶＢの範囲にあるときには、ＤＢＷ・ＥＣＵ３およびモータ８の動作が不安定となることで、学習の際、スロットル弁７が全閉位置まで適切に制御されない場合があるため、今回学習した第１全閉学習値ＴＨＬ１ＶＺＲＮの信頼性も低くなるので、後述する第１制御用全閉学習値ＴＨＬ１ＶＺＲの算出式（１）において、第１全閉学習値ＴＨＬ１ＶＺＲＮの重みを小さくし、これが第１制御用全閉学習値ＴＨＬ１ＶＺＲに反映される度合いを小さくするためである。
【００６０】
ステップ４３に続くステップ４４では、第２係数Ｋ２を、エンジン水温ＴＷに応じて、図８に示すテーブルを検索することにより算出する。この第２係数Ｋ２も、後述するなまし係数ＫＮＡＭＡＳＩの算出に用いられる。
【００６１】
同図に示すように、このテーブルでは、第２係数Ｋ２は、エンジン水温ＴＷが所定温度ＴＷ１（例えば１０℃）のときには、所定値Ｋ２Ａ（例えば値１）に設定され、エンジン水温ＴＷが所定温度ＴＷ１以外の値のときには、エンジン水温ＴＷが所定温度ＴＷ１よりも大きいほどまたは小さいほど、より小さい値に設定されている。これは、第１スロットル弁開度センサ１０の基準温度が、エンジン水温ＴＷが所定温度ＴＷ１のときのセンサ自体の温度に設定されているため、エンジン水温ＴＷがこの所定温度ＴＷ１よりも低いほど、または高いほど、第１スロットル弁開度センサ１０の出力特性の変化度合いが大きくなるため、今回学習した第１全閉学習値ＴＨＬ１ＶＺＲＮの信頼性も低くなるので、後述する第１制御用全閉学習値ＴＨＬ１ＶＺＲの算出式（１）において、第１全閉学習値ＴＨＬ１ＶＺＲＮの重みを小さくし、これが第１制御用全閉学習値ＴＨＬ１ＶＺＲに反映される度合いを小さくするためである。なお、第２係数Ｋ２を、例えば吸気温ＴＡなどの第１スロットル弁開度センサ１０の環境温度を表す温度パラメータに応じて、設定してもよい。
【００６２】
ステップ４４に続くステップ４５では、第１全閉学習値ＴＨＬ１ＶＺＲＮおよび第１制御用全閉学習値の前回値ＴＨＬ１ＶＺＲＺ０を用い、下式（１）に示すなまし演算により、第１制御用全閉学習値ＴＨＬ１ＶＺＲを算出する。なお、式（１）のなまし係数ＫＮＡＭＡＳＩは下式（２）のように規定され、その初期値は値０．１２５に設定される。
ＴＨＬ１ＶＺＲ＝ＫＮＡＭＡＳＩ×ＴＨＬ１ＶＺＲＮ＋（１−ＫＮＡＭＡＳＩ）×ＴＨＬ１ＶＺＲＺ０　　……（１）
ＫＮＡＭＡＳＩ＝０．１２５×Ｋ１×Ｋ２　　　　　　　　　　　　　　　　　　……（２）
【００６３】
このようにステップ４５で、第１制御用全閉学習値ＴＨＬ１ＶＺＲを算出した後、本処理を終了する。
【００６４】
一方、前記ステップ４２の判別結果がＮＯで、第１全閉学習値ＴＨＬ１ＶＺＲＮを学習済みでないときには、ステップ４６に進み、学習失敗フラグＦ＿ＧＡＥＲＲが「１」であるか否かを判別する。この判別結果がＮＯで、第１全閉学習値ＴＨＬ１ＶＺＲＮの学習の成功または失敗が確定していないときには、そのまま本処理を終了する。一方、この判別結果がＹＥＳで、第１全閉学習値ＴＨＬ１ＶＺＲＮの学習に失敗したときには、ステップ４７に進み、第１制御用全閉学習値の前回値ＴＨＬ１ＶＺＲＺ０を第１制御用全閉学習値ＴＨＬ１ＶＺＲとして設定した後、本処理を終了する。
【００６５】
一方、前記ステップ４１の判別結果がＮＯで、第１制御用全閉学習値の前回値ＴＨＬ１ＶＺＲＺ０をＦＩ・ＥＣＵ２から受信していないときときには、ステップ４８に進み、前記ステップ４２と同様に、学習成功フラグＦ＿ＧＡＯＫが「１」であるか否かを判別する。
【００６６】
この判別結果がＹＥＳで、第１全閉学習値ＴＨＬ１ＶＺＲＮを学習済みであるときには、ステップ４９に進み、第１全閉学習値ＴＨＬ１ＶＺＲＮを第１制御用全閉学習値ＴＨＬ１ＶＺＲとして設定した後、本処理を終了する。
【００６７】
一方、ステップ４８の判別結果がＮＯで、第１全閉学習値ＴＨＬ１ＶＺＲＮを学習済みでないときには、ステップ５０に進み、前記ステップ４６と同様に、学習失敗フラグＦ＿ＧＡＥＲＲが「１」であるか否かを判別する。この判別結果がＮＯで、第１全閉学習値ＴＨＬ１ＶＺＲＮの学習の成功または失敗が確定していないときには、そのまま本処理を終了する。
【００６８】
一方、ステップ５０の判別結果がＹＥＳで、第１全閉学習値ＴＨＬ１ＶＺＲＮの学習に失敗し、かつ第１制御用全閉学習値の前回値ＴＨＬ１ＶＺＲＺ０が受信されていないときには、ステップ５１に進み、第１制御用全閉学習値ＴＨＬ１ＶＺＲが算出不能であることを表すために、第１フェイルフラグＦ＿ＴＨ１ＦＡＩＬを「１」にセットした後、本処理を終了する。これにより、スロットル弁７の開度制御において、第１制御用全閉学習値ＴＨＬ１ＶＺＲに代えて、第２制御用全閉学習値ＴＨＬ２ＶＺＲが用いられる。なお、この第２制御用全閉学習値ＴＨＬ２ＶＺＲも算出不能であるときには、制御用全閉学習値として固定値（例えば０゜）が用いられる。
【００６９】
次に、図９を参照しながら、ＤＢＷ・ＥＣＵ３で実行される、実開度ＴＨＬＤＢＷなどの各種のデータをＦＩ・ＥＣＵ２に送信する送信処理について説明する。この処理は、ＩＧ・ＳＷ１７のＯＮ以降、前述した各処理と並行して、所定時間ごとに実行される。
【００７０】
まず、ステップ６１において、ＦＩ・ＥＣＵ２から送信された指令信号ＩＮＦＯＲＥＱＮＯの値が、「２」であるか否かを判別する。このＩＮＦＯＲＥＱＮＯの値は、前述したように、ＦＩ・ＥＣＵ２により、ＩＧ・ＳＷ１７がＯＦＦされたときに、「２」，「３」の順に設定されるので、今回のループがＩＧ・ＳＷ１７のＯＦＦ直後の１回目であれば、ステップ６１の判別結果がＹＥＳとなり、その場合には、ステップ６２に進み、図６の処理で算出した第１制御用全閉学習値ＴＨＬ１ＶＺＲを、第１開度データＣＵＲＴＨＬとしてセットするとともに、セットした第１開度データＣＵＲＴＨＬを通信線９を介してＦＩ・ＥＣＵ２に送信した後、本処理を終了する。このように送信された第１開度データＣＵＲＴＨＬは、前述したように、ＦＩ・ＥＣＵ２のＥＥＰＲＯＭ２ａの所定のバッファに記憶される。
【００７１】
一方、ステップ６１の判別結果がＮＯのときには、ステップ６３に進み、指令信号ＩＮＦＯＲＥＱＮＯの値が「３」であるか否かを判別する。今回のループがＩＧ・ＳＷ１７のＯＦＦ直後の２回目であれば、この判別結果がＹＥＳとなり、その場合には、ステップ６４に進み、第２制御用全閉学習値ＴＨＬ２ＶＺＲを、第１開度データＣＵＲＴＨＬとしてセットするとともに、セットした第１開度データＣＵＲＴＨＬを通信線９を介してＦＩ・ＥＣＵ２に送信した後、本処理を終了する。
【００７２】
一方、ステップ６３の判別結果がＮＯのとき、すなわち指令信号ＩＮＦＯＲＥＱＮＯの値が「２，３以外の値」であって、ＩＧ・ＳＷ１７がＯＦＦされていないときには、ステップ６５に進み、実開度ＴＨＬＤＢＷを第１開度データＣＵＲＴＨＬとしてセットするとともに、セットした第１開度データＣＵＲＴＨＬを送信した後、本処理を終了する。これにより、エンジン運転中は、実開度ＴＨＬＤＢＷが、第１開度データＣＵＲＴＨＬとしてＦＩ・ＥＣＵ２に送信される。
【００７３】
以上のように、本実施形態のスロットル弁制御装置１によれば、スロットル弁７の開度制御に用いる第１制御用全閉学習値ＴＨＬ１ＶＺＲが、ＦＩ・ＥＣＵ２から受信した前回値ＴＨＬ１ＶＺＲＺ０と、今回学習した第１全閉学習値ＴＨＬ１ＶＺＲＮとに基づき、式（１）のなまし演算により算出されるとともに、この式（１）での算出に用いるなまし係数ＫＮＡＭＡＳＩが、第１スロットル弁開度センサ１０の動作環境を表すエンジン水温ＴＷおよびバッテリ電圧ＶＢに応じて、算出される。したがって、第１制御用全閉学習値ＴＨＬ１ＶＺＲを、従来と異なり、第１スロットル弁開度センサ１０およびモータ８の動作環境を反映させながら算出できると同時に、前回運転時に算出された前回値ＴＨＬ１ＶＺＲＺ０も反映させながら算出できる。その結果、第１制御用全閉学習値ＴＨＬ１ＶＺＲの算出精度を向上させることができ、それにより、スロットル弁７の開度制御の制御性を向上させることができる。
【００７４】
また、第１制御用全閉学習値ＴＨＬ１ＶＺＲは、第１全閉学習値ＴＨＬ１ＶＺＲＮの学習に失敗したときには、前回値ＴＨＬ１ＶＺＲＺ０に設定され、前回値ＴＨＬ１ＶＺＲＺ０が受信されなかったときには、今回学習した第１全閉学習値ＴＨＬ１ＶＺＲＮに設定される。したがって、第１全閉学習値ＴＨＬ１ＶＺＲＮの学習に失敗したとき、および前回値ＴＨＬ１ＶＺＲＺ０が受信されなかったときでも、スロットル弁７の開度制御を、設定された第１制御用全閉学習値ＴＨＬ１ＶＺＲを用いながら支障なく実行することができる。その結果、スロットル弁７の開度制御の制御性をさらに向上させることができる。
【００７５】
さらに、前回値ＴＨＬ１ＶＺＲＺ０を記憶するＦＩ・ＥＣＵ２と、スロットル弁７の開度制御および学習処理などを実行するＤＢＷ・ＥＣＵ３とが、別個に設けられ、前回値ＴＨＬ１ＶＺＲＺ０が、２つのＥＣＵ２，３の間で通信線９を介して通信されるので、前回値ＴＨＬ１ＶＺＲＺ０を記憶するための、ＥＥＰＲＯＭやバックアップ電源付きのＲＡＭなどをＤＢＷ・ＥＣＵ３に設ける必要がなくなり、その分、ＤＢＷ・ＥＣＵ３を小型化できる。これに加えて、ＤＢＷ・ＥＣＵ３は、スロットル弁駆動機構６とともにスロットルボディと一体化されているので、そのような一体型装置をコンパクトに構成することができる。
【００７６】
なお、実施形態は、スロットル弁７の基準開度として全閉位置を学習する例であるが、学習する基準位置はこれに限らず、スロットル弁７の所定の開度であればよいことは言うまでもない。例えば、スロットル弁７の全開位置を基準開度として学習してもよい。
【００７７】
また、実施形態は、第１および第２制御用全閉学習値ＴＨＬ１ＶＺＲ，ＴＨＬ２ＶＺＲを、エンジン水温ＴＷおよびバッテリ電圧ＶＢに応じて算出した例であるが、これらの一方に応じて算出してもよい。また、スロットル弁開度センサ１０，１１の動作環境を表す動作環境パラメータは、実施形態のエンジン水温ＴＷに限らず、スロットル弁開度センサ１０，１１の動作環境を表すものであればよい。例えば、吸気温ＴＡやエンジンルーム内の温度を、動作環境パラメータとして検出してもよい。また、モータ８の動作環境を表す動作環境パラメータは、実施形態のバッテリ電圧ＶＢに限らず、モータ８の動作環境を表すものであればよい。例えば、モータ８に供給された電力を動作環境パラメータとして検出してもよい。
【００７８】
【発明の効果】
以上のように、本発明の内燃機関のスロットル弁制御装置によれば、スロットル弁の基準開度を学習し、その学習値を用いてスロットル弁の開度を制御する場合において、学習値の算出精度を向上させることができ、それにより、制御性を向上させることができる。
【図面の簡単な説明】
【図１】本発明の一実施形態に係るスロットル弁制御装置およびこれを適用した内燃機関の概略構成を示す図である。
【図２】第１全閉学習値ＴＨＬ１ＶＺＲＮの学習処理を示すフローチャートである。
【図３】図２の続きを示すフローチャートである。
【図４】図２のステップ９の第１出力電圧ＴＨ１ＡＤの取込処理のサブルーチンを示すフローチャートである。
【図５】ＤＢＷ・ＥＣＵがＦＩ・ＥＣＵからの各種のデータを受信する受信処理を示すフローチャートである。
【図６】第１制御用全閉学習値ＴＨＬ１ＶＺＲの算出処理を示すフローチャートである。
【図７】第１係数Ｋ１の算出に用いるテーブルの一例を示す図である。
【図８】第２係数Ｋ２の算出に用いるテーブルの一例を示す図である。
【図９】ＤＢＷ・ＥＣＵがＦＩ・ＥＣＵに各種のデータを送信する送信処理を示すフローチャートである。
【符号の説明】
１　　スロットル弁制御装置
２　　ＦＩ・ＥＣＵ（前回値記憶手段、通信手段）
２ａ　ＥＥＰＲＯＭ（前回値記憶手段）
３　　ＤＢＷ・ＥＣＵ（学習手段、制御用学習値算出手段、制御手段、
学習判定手段、通信手段、通信判定手段）
４　　内燃機関
７　　スロットル弁
８　　モータ（駆動手段）
９　　通信線（通信手段）
１０　　第１スロットル弁開度センサ（開度検出手段）
１１　　第２スロットル弁開度センサ（開度検出手段）
１３　　水温センサ（動作環境パラメータ検出手段）
１６　　バッテリ電圧センサ（動作環境パラメータ検出手段）
ＴＷ　　エンジン水温（動作環境パラメータ）
ＶＢ　　バッテリ電圧（動作環境パラメータ）
ＴＨ１ＡＤ　　第１出力電圧（検出されたスロットル弁の開度を表す値）
ＴＨ２ＡＤ　　第２出力電圧（検出されたスロットル弁の開度を表す値）
ＴＨＬ１ＶＺＲＮ　　第１全閉学習値（学習値）
ＴＨＬ２ＶＺＲＮ　　第２全閉学習値（学習値）
ＴＨＬ１ＶＺＲ　　第１制御用全閉学習値（制御用学習値）
ＴＨＬ２ＶＺＲ　　第２制御用全閉学習値（制御用学習値）
ＴＨＬ１ＶＺＲＺ０　　第１制御用全閉学習値の前回値（制御用学習値の前回値）
ＴＨＬ２ＶＺＲＺ０　　第２制御用全閉学習値の前回値（制御用学習値の前回値）
【図１】
2004100526.tif 000003
【図２】
2004100526.tif 000004
【図３】
2004100526.tif 000005
【図４】
2004100526.tif 000006
【図５】
2004100526.tif 000007
【図６】
2004100526.tif 000008
【図７】
2004100526.tif 000009
【図８】
2004100526.tif 000010
【図９】
2004100526.tif 000011