(57)【要約】【課題】車両組み立て後のスロットル開度センサの補正を速やかに行う。【解決手段】スロットル開度センサ６の出力電圧の最小値を最小値決定部７１で決定し、その安定性を安定判断部７２で判定する。その後、最小値を用いてスロットル開度センサ６の全閉値を全閉値学習部７３にて学習する。学習したスロットル開度センサ６の全閉値を用いて、開度決定部７４でスロットル開度センサ６の測定値を補正すると共に、補正した測定値を用いて燃料噴射制御部７５における燃料噴射制御や、点火制御部７７における点火処理を実行する。【選択図】図２
2011085062.tif 000002
【特許請求の範囲】
【請求項１】
内燃機関に供給する空気量を調整するスロットルバルブの開度を検出するスロットル開度センサの出力電圧を取得し、前記出力電圧が所定範囲外になった後に再び所定範囲内になったときの前記出力電圧の最小値を検出する最小値決定部と、
前記最小値の今回値と前回値の差の絶対値を算出し、前記差の絶対値が所定値以下であった場合に、前記出力電圧が安定していると判断する安定判断部と、
前記安定判断部が所定回数以上連続して前記出力電圧が安定していると判断した場合に、前記最小値の今回値を前記スロットルバルブの全閉値として記憶する全閉値学習部と、
前記全閉値学習部に記憶された前記スロットルバルブの全閉値で、スロットル開度センサの出力電圧を補正して前記スロットルバルブの開度を算出する開度決定部と、
を含む車両用電子制御装置。
【請求項２】
前記開度決定部は、前記全閉値学習部で記憶した前記全閉値と前記出力電圧との差が所定の電圧以下のときに、前記スロットルバルブが全閉状態であると判定する全閉判定部を含むことを特徴とする請求項１に記載の車両用電子制御装置。
【請求項３】
前記開度決定部は、前記全閉値学習部において前記全閉値が記憶されるまでの間は、前記スロットルバルブが全閉であることの判定を禁止する判定禁止部を含むことを特徴とする請求項１又は請求項２に記載の車両用電子制御装置。
【請求項４】
前記内燃機関に供給する燃料噴射量の噴射を行う燃料噴射制御部を含み、
前記燃料噴射制御部は、前記内燃機関の回転数が所定回転数以上で、かつ前記全閉判定部で前記スロットルバルブが全閉状態であると判定したときに、燃料噴射を停止させる燃料停止部と、前記全閉値学習部において前記全閉値が記憶されるまでの間は、燃料噴射の停止を禁止する停止禁止部を含むことを特徴とする請求項２又は請求項３に記載の車両用電子制御装置。
【請求項５】
前記内燃機関に供給する燃料噴射量の噴射を行う燃料噴射制御部を含み、
前記燃料噴射制御部は、前記内燃機関の回転数及びスロットル開度に基づいて燃料噴射量を算出する第１の噴射制御部と、前記内燃機関の回転数及び前記内燃機関の吸気圧に基づいて燃料噴射量を算出する第２の噴射制御部とを有し、前記全閉値学習部において前記全閉値が記憶されるまでの間は前記第２の噴射制御部を選択して、前記第１の噴射制御部の選択を禁止し、前記全閉値学習部において前記全閉値が記憶された後は前記第１の噴射制御部と前記第２の噴射制御部のいずれかを選択可能とするように構成したことを特徴とする請求項２から請求項４のいずれか一項に記載の車両用電子制御装置。
【請求項６】
前記開度決定部は、前記全閉値学習部において前記全閉値が記憶されるまでの間は、前記スロットル開度として予め定められた固定値を、点火時期を算出する点火制御部に出力するように構成したことを特徴とする請求項１から請求項５のいずれか一項に記載の車両用電子制御装置。
【請求項７】
前記全閉値学習部において前記全閉値が最初に記憶されたときに、車両に設けられたインジケータを点灯させる表示制御部を含むことを特徴とする請求項１から請求項６のいずれか一項に記載の車両用電子制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、車両用電子制御装置に関する。
【背景技術】
【０００２】
車両のエンジンには、外気を取り込む吸気通路が設けられており、吸気通路を流れる空気の量は、吸気通路内に設置されたスロットルバルブによって制御されている。
ここで、吸気通路を流れる空気の量を精度良く検出するためには、スロットルバルブの全閉状態を正しく検出する必要がある。ところが、車両組み立て後の車両用電子制御装置では、スロットルバルブの全閉値に対応する電圧の学習値は工場出荷時の初期値になっており、スロットルバルブの実際の全閉値と一致していないことがある。このような不一致があった場合、スロットル開度センサの出力電圧を調整しないと、スロットルバルブの全閉状態を正しく検出できなくなる。このため、スロットル開度センサを吸気通路に組み付ける際には、スロットルバルブの全閉状態に対して、スロットル開度センサの出力電圧が所定の値となるように調整する作業が必要であった。しかし、このような作業はコストを増大させる原因になっていた。
【０００３】
そこで、従来では、スロットルバルブの開度に対応した出力電圧を発生するスロットル開度センサを設け、スロットル開度センサからの出力電圧の最小値又は最大値を随時更新し、更新した値に基づいてスロットルバルブの全閉状態を検出するように構成したものがある。より具体的には、スロットル開度センサの出力電圧が、前回更新した値を中心とした所定の範囲内に達したときに、スロットルバルブを全閉とみなす（例えば、特許文献１参照）。
【０００４】
また、スロットルバルブの開度に対応した出力電圧を出力するスロットル開度センサを設け、スロットル開度センサからの出力電圧と記憶手段に記憶した出力電圧の最小値とを比較してスロットルバルブの全閉状態を検出するように構成したものがある。なお、記憶手段に記憶される出力電圧の最小値は、エンジンが完爆後、または暖機終了直後の少なくとも一方の判定時に初期化される（例えば、特許文献２参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開昭５６−１０７９２６号公報
【特許文献２】特開平０２−２１８８４６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、従来のように、エンジン運転中にスロットル開度センサの出力電圧の最小値を検出して記憶更新する構成では、エンジンを所定の期間運転した後でないと、スロットル開度センサの出力電圧の最小値を検出できなかった。このため、車両の組み立て後、最初にエンジンを始動させたときに、スロットルバルブの開度を正しく検出することが困難になる可能性があった。
本発明は、前記のような問題点を解消するためになされたもので、車両組み立て後のスロットル開度センサの補正を速やかに行えるようにすることを主な目的とする。
【課題を解決するための手段】
【０００７】
本願の一観点によれば、内燃機関に供給する空気量を調整するスロットルバルブの開度を検出するスロットル開度センサの出力電圧を取得し、前記出力電圧が所定範囲外になっ
た後に再び所定範囲内になったときの前記出力電圧の最小値を検出する最小値決定部と、前記最小値の今回値と前回値の差の絶対値を算出し、前記差の絶対値が所定値以下であった場合に、前記出力電圧が安定していると判断する安定判断部と、前記安定判断部が所定回数以上連続して前記出力電圧が安定していると判断した場合に、前記最小値の今回値を前記スロットルバルブの全閉値として記憶する全閉値学習部と、前記全閉値学習部に記憶された前記スロットルバルブの全閉値で、スロットル開度センサの出力電圧を補正して前記スロットルバルブの開度を算出する開度決定部と、を含む車両用電子制御装置が提供される。
【０００８】
また、本発明の別の観点によれば、前記開度決定部は、前記全閉値学習部で記憶した前記全閉値と前記出力電圧との差が所定の電圧以下のときに、前記スロットルバルブが全閉状態であると判定する全閉判定部を含むことを特徴とする請求項１に記載の車両用電子制御装置が提供される。
【０００９】
また、本発明の別の観点によれば、前記開度決定部は、前記全閉値学習部において前記全閉値が記憶されるまでの間は、前記スロットルバルブが全閉であることの判定を禁止する判定禁止部を含むことを特徴とする請求項１又は請求項２に記載の車両用電子制御装置が提供される。
【００１０】
また、本発明の別の観点によれば、前記内燃機関に供給する燃料噴射量の噴射を行う燃料噴射制御部を含み、前記燃料噴射制御部は、前記内燃機関の回転数が所定回転数以上で、かつ前記全閉判定部で前記スロットルバルブが全閉状態であると判定したときに、燃料噴射を停止させる燃料停止部と、前記全閉値学習部において前記全閉値が記憶されるまでの間は、燃料噴射の停止を禁止する停止禁止部を含むことを特徴とする請求項２又は請求項３に記載の車両用電子制御装置が提供される。
【００１１】
また、本発明の別の観点によれば、前記内燃機関に供給する燃料噴射量の噴射を行う燃料噴射制御部を含み、前記燃料噴射制御部は、前記内燃機関の回転数及びスロットル開度に基づいて燃料噴射量を算出する第１の噴射制御部と、前記内燃機関の回転数及び前記内燃機関の吸気圧に基づいて燃料噴射量を算出する第２の噴射制御部とを有し、前記全閉値学習部において前記全閉値が記憶されるまでの間は前記第２の噴射制御部を選択して、前記第１の噴射制御部の選択を禁止し、前記全閉値学習部において前記全閉値が記憶された後は前記第１の噴射制御部と前記第２の噴射制御部のいずれかを選択可能にするように構成したことを特徴とする請求項２から請求項４のいずれか一項に記載の車両用電子制御装置が提供される。
【００１２】
また、本発明の別の観点によれば、前記開度決定部は、前記全閉値学習部において前記全閉値が記憶されるまでの間は、前記スロットル開度として予め定められた固定値を、点火時期を算出する点火制御部に出力するように構成したことを特徴とする請求項１から請求項５のいずれか一項に記載の車両用電子制御装置が提供される。
【００１３】
また、本発明の別の観点によれば、前記全閉値学習部において前記全閉値が最初に記憶されたときに、車両に設けられたインジケータを点灯させる表示制御部を含むことを特徴とする請求項１から請求項６のいずれか一項に記載の車両用電子制御装置が提供される。
【発明の効果】
【００１４】
本発明によれば、スロットル開度センサの出力電圧の最小値を取得し、その安定性を判断した後、出力電圧の最小値を用いてスロットル開度の全閉値を学習するので、車両組み立て後の車両用電子制御装置の最初の動作時でも、スロットル開度センサの出力電圧の値を速やかに補正できる。これにより、スロットルバルブの開度を正しく検出することが可
能になる。
【図面の簡単な説明】
【００１５】
【図１】図１は、本発明の実施の形態に係るエンジンの概略構成を示す図である。
【図２】図２は、車両用電子制御装置の構成を示す図である。
【図３】図３は、ＣＰＵの機能分割図である。
【図４】図４は、スロットル開度の全閉値の学習処理のフローチャートである。
【図５】図５は、全閉値の高速学習処理のフローチャートである。
【図６】図６は、エンジン制御のフローチャートである。
【図７】図７は、スロットル開度の算出処理のフローチャートである。
【図８】図８は、スロットル開度の全閉判断処理のフローチャートである。
【図９】図９は、燃料噴射量の算出処理のフローチャートである。
【図１０】図１０は、燃料カットの判断処理のフローチャートである。
【図１１】図１１は、アイドル回転数制御のフローチャートである。
【図１２】図１２は、全閉値を学習する際のタイミングチャートである。
【発明を実施するための最良の形態】
【００１６】
本発明を実施するための形態について以下に詳細に説明する。
図１に内燃機関及びその制御装置を含むシステムの概略構成図を示す。
内燃機関であるエンジン１は、空気を吸い込む吸気管２を有する。吸気管２は、上流側の吸気口２Ａにエアクリーナ３が取り付けられており、吸気温センサ４が設けられた後、スロットルバルブ５で流路面積を調整可能になっている。スロットルバルブ５の開度は、スロットル開度センサ６によりモニタされている。また、吸気管２には、スロットルバルブ５をバイパスする通路３１が設けられている。バイパス通路３１には、ＩＳＣ（Idol Speed Control）バルブ３２が設けられている。ＩＳＣバルブ３２は、ステッピングモータ３３を駆動させて、バイパス通路３１の流路面積を調整する構成を有し、エンジン１の始動時やアイドル運転時にエンジン回転数を調整できるようになっている。
【００１７】
さらに、スロットルバルブ５の下流には、吸気圧センサ７と、燃料噴射用のインジェクタ８が順番に設けられた後、シリンダヘッド１２とシリンダブロック１１で形成される燃焼室１３に接続されている。ここで、インジェクタ８は、図示を省略する燃料タンクに接続されている。燃料タンクには、燃料ポンプが設けられており、タンク内の燃料をインジェクタ８に供給可能になっている。さらに、吸気管２と燃焼室１３の境界部分には、吸気バルブ１４が管路を開閉自在に挿入されている。
【００１８】
シリンダブロック１１には、ピストン１５が摺動自在に挿入されている。ピストン１５は、コネクティングロッド１６を介してクランク軸１７に連結されており、ピストン１５の直線的な往復運動を出力軸であるクランク軸１７の回転運動に変換するように構成されている。クランク軸１７は、シリンダブロック１１に回転自在に支持されており、その回転数を検出するためのタイミングロータ１８が固定されている。タイミングロータ１８の近傍には、クランク角センサ１９が配置されている。さらに、シリンダブロック１１には、冷却水を循環させるための流路２０が形成されると共に、エンジン１の温度を測定するための冷却水温センサ２１も取り付けられている。
【００１９】
シリンダヘッド１２には、吸気管２の他に、点火プラグ２４と、排気管２５が取り付けられている。点火プラグ２４は、点火コイル２７に電気的に接続され、高電圧が印加されるようになっている。また、排気管２５の燃焼室１３に連なる開口部には、排気バルブ２８が開閉自在に取り付けられている。さらに、排気管２５の下流側には、触媒コンバータ２９が設けられている。
【００２０】
次に、このようなエンジン１の制御を行う車両用電子制御装置４１の構成について図２を参照して説明する。なお、車両用電子制御装置４１は、ＥＣＵ（Electronic Control Unit）と呼ばれることもある。車両用電子制御装置４１は、イグニッションスイッチ４３がオンされたときに、バッテリ４２からの電力供給を受けて後述する各種の処理を実行するように構成されている。
【００２１】
車両用電子制御装置４１は、バッテリ４２に接続されると共に、クランク角センサ１９と、スロットル開度センサ６と、吸気圧センサ７と、冷却水温センサ２１と、吸気温センサ４からの信号が入力可能に構成されている。さらに、車両用電子制御装置４１からは、点火コイル２７と、インジェクタ８と、ステッピングモータ３３と、インジケータ６２に信号を出力可能に構成されている。
【００２２】
また、車両用電子制御装置４１は、クランク角センサ１９から出力されるアナログ信号を成形する波形整形回路５１と、４つのセンサ４，６，７，２１が出力するアナログ信号をデジタル信号に変換するＡ／Ｄ（Analog/Digital）変換器５２とを有し、これらがＣＰＵ（Central Processing Unit）５３に接続されている。ＣＰＵ５３の出力には、点火回路５４と、３つの駆動回路５５，５６，５７が接続されている。点火回路５４は、ＣＰＵ５３からの指令を受けて点火コイル２７に信号を出力するように構成されている。駆動回路５５は、ＣＰＵ５３からの指令を受けてインジェクタ８を駆動させる信号を出力するように構成され、駆動回路５６は、ＣＰＵ５３からの指令を受けてＩＳＣバルブ３２のステッピングモータ３３を駆動させる信号を出力するように構成されている。駆動回路５７は、ＣＰＵ５３からの指令を受けてインジケータ６２を点灯させる信号を出力するように構成されている。さらに、ＣＰＵ５３の出力には、ＥＥＰＲＯＭ（Electrically Erasable Programmable Read Only Memory）５８と、ＲＯＭ（Read Only Memory）５９、ＲＡＭ（Random Access Memory）６０、タイマー６１も接続されている。
【００２３】
さらに、図３にＣＰＵ５３の機能分割図を示す。ＣＰＵ５３は、スロットル開度センサ６の出力電圧の最小値を検出する最小値決定部７１と、スロットル開度センサ６の出力電圧の安定を判断する安定判断部７２と、出力電圧の安定が所定回数以上連続しているときに、出力電圧の最小値をスロットルバルブ５の全閉値として記憶する全閉値学習部７３と、全閉値の学習値に基づいてスロットルバルブ５の開度を算出する開度決定部７４と、インジェクタ８から噴出させる燃料の噴射量を決定すると共に、噴射制御を行う燃料噴射制御部７５と、エンジン１の回転数を算出する回転数算出部７６と、点火コイル２７への通電を制御する点火制御部７７と、全閉値学習部７３において全閉値が最初に記憶されたときに、車両に設けられたインジケータ６２を点灯させる表示制御部７８に機能分割できる。なお、ＣＰＵ５３は、エンジン１の制御を行う他の機能を含んでも良い。
【００２４】
さらに、開度決定部７４は、スロットルバルブ５の全閉を判定する全閉判定部８１と、所定の条件を満たすまでスロットルバルブ５の全閉の判定を禁止する判定禁止部８２とを含む。
また、燃料噴射制御部７５は、スロットルバルブ５の全閉時に燃料噴射を停止させる燃料停止部８３と、全閉値学習部７３で全閉値が記憶されるまでは、燃料噴射の停止を禁止する停止禁止部８４と、エンジン回転数及びスロットル開度ＴＨに基づいて燃料噴射量を算出する第１の噴射制御部８５と、エンジン回転数及びエンジン１の吸気圧に基づいて燃料噴射量を算出する第２の噴射制御部８６とを含む。
【００２５】
以下、この実施の形態に係る車両用電子制御装置によるエンジン１の制御について以下に説明する。
最初に、図４のフローチャートを参照して、スロットル開度ＴＨの全閉値学習処理について説明する。なお、この処理は、エンジン１の回転とは同期せずに、一定周期毎、例え
ば、１００ｍｓｅｃ毎に実施される。
まず、ステップＳ１０１で、全閉値学習初期値のリセット処理を実施する。この処理は、スロットル開度全閉値学習処理が最初に実施されるときに、全閉値を学習するために使用される各種の値を、予め設定されている初期値にセットするために実行される。さらに、スロットル開度ＴＨの全閉値の学習が完了していないときは、後述する高速全閉値学習処理用の各種の値を、予め設定されている初期値にリセットする処理も実行される。
【００２６】
次に、ステップＳ１０２でスロットル開度センサ６から出力電圧ＡＤＴＨを読み込む。出力電圧ＡＤＴＨは、図２に示すＡ／Ｄ変換器５２によりデジタル信号に変換された後、ＣＰＵ５３に入力される。
続いて、ステップＳ１０３で、ＣＰＵ５３の全閉値学習部７３は、スロットル開度全閉値の学習が完了しているか調べる。具体的には、学習済みフラグＦ＿ＴＨＦが「１」であれば、全閉値学習が完了しているとみなし（ステップＳ１０３でＹｅｓ）、ステップＳ１０４に進む。学習済みフラグＦ＿ＴＨＦが「０」であれば、全閉値学習が完了していないとみなし、ステップＳ１０５に進む。
【００２７】
ステップＳ１０４で、最小値決定部７１は、現在のエンジン回転数ＮＥが所定の学習回転数範囲内にあるか調べる。例えば、エンジン回転数ＮＥが所定の下限値ＮＥ１以上で、かつ所定の上限値ＮＥ２以下であれば（ステップＳ１０４でＹｅｓ）、学習回転数範囲内とみなし、ステップＳ１０５に進む。これに対し、現在のエンジン回転数ＮＥが、学習回転数範囲内にない場合（ステップＳ１０４でＮｏ）、後述するステップＳ１１３に進む。
【００２８】
なお、下限値ＮＥ１は、エンジン１の排気量などにより異なるが、例えば、１０００ｒｐｍとし、上限値ＮＥ２は、例えば１８００ｒｐｍとする。このような学習回転数範囲は、車両のアイドル運転時の回転数の範囲に略相当する。
また、エンジン回転数ＮＥは、ＣＰＵ５３の回転数算出部７６において計数される。回転数算出部７６に入力される信号は、クランク軸１７と共に回転するタイミングロータ１８の突起をクランク角センサ１９で検出することで作成され、この信号を車両用電子制御装置４１の波形整形回路５１でデジタル信号に変換した後、ＣＰＵ５３に入力される。
【００２９】
ステップＳ１０５では、スロットル開度センサ６の出力電圧ＡＤＴＨが所定の学習下限電圧値ＴＨＬ以上であるか調べる。続くステップＳ１０６では、スロットル開度センサ６の出力電圧ＡＤＴＨが所定の学習上限電圧値ＴＨＨ以下であるか調べる。なお、スロットル開度センサ６の全閉電圧値のバラツキにより異なるが、例えば、学習下限電圧値ＴＨＬは０．２Ｖに設定され、学習上限電圧値ＴＨＨは０．８Ｖに設定される。このような学習下限電圧値ＴＨＬから学習上限電圧値ＴＨＨまでの学習範囲は、スロットル開度センサ６の全閉値のバラつき公差を含むように設定される。
【００３０】
出力電圧ＡＤＴＨが学習下限電圧値ＴＨＬ以上でなければ（ステップＳ１０５でＮｏ）、ステップＳ１１３に進む。これに対し、出力電圧ＡＤＴＨが学習下限電圧値ＴＨＬ以上（ステップＳ１０５でＹｅｓ）、かつ学習上限電圧値ＴＨＨ以下であれば（ステップＳ１０６でＹｅｓ）、出力電圧ＡＤＴＨが全閉値の学習に適した領域（以下、学習電圧領域）内にあるので、ステップＳ１０７に進む。
そして、出力電圧ＡＤＴＨが学習下限電圧値ＴＨＬ以上（ステップＳ１０５でＹｅｓ）ではあるが、学習上限電圧値ＴＨＨ以下でないとき（ステップＳ１０６でＮｏ）、ステップＳ１０８に進み、学習電圧領域突入フラグＦ＿ＴＨＺを「０」にセットしてから、ステップＳ１１３に進む。なお、学習電圧領域突入フラグＦ＿ＴＨＺは、出力電圧ＡＤＴＨが全閉値の学習電圧領域にあるか否かを示すフラグであり、その値が「１」のときに学習電圧領域にあるものとみなす。
【００３１】
ステップＳ１０７では、現在のスロットル開度センサ６の出力電圧ＡＤＴＨと、電圧最小値ＴＨ０との大小関係を調べる。電圧最小値ＴＨ０は、ステップＳ１０１の全閉値学習初期値のリセット処理で初期値が設定される値であり、その初期値として、例えば、学習上限電圧値ＴＨＨの値が代入される。ここで、出力電圧ＡＤＴＨが電圧最小値ＴＨ０以下、つまり今回の出力電圧ＡＤＴＨが電圧最小値ＴＨ０より下降しているならば（ステップＳ１０７でＹｅｓ）、最小値決定部７１が出力電圧ＡＤＴＨを新たな電圧最小値ＴＨ０として更新する（ステップＳ１０９）。これに対し、出力電圧ＡＤＴＨが電圧最小値ＴＨ０以下でなければ（ステップＳ１０７でＮｏ）、電圧最小値ＴＨ０の値は更新されない。
【００３２】
次に、ステップＳ１１０では、安定判断部７２が、電圧最小値ＴＨ０が安定しているか調べる。具体的には、電圧最小値ＴＨ０と、基準値ＴＨＩＤＸとの差の絶対値が判定値ＤＴＨＩＤＸ以下である場合に、電圧最小値ＴＨ０が安定しているとみなす。ここで、基準値ＴＨＩＤＸには、電圧最小値ＴＨ０の前回値が用いられる。基準値ＴＨＩＤＸの初期値には、ステップＳ１０１の処理において学習上限電圧値ＴＨＨが入力される。また、判定値ＤＴＨＩＤＸには、予め定められた所定の値、例えば１０ｍＶが用いられる。
【００３３】
電圧最小値ＴＨ０が安定している場合（ステップＳ１１０でＹｅｓ）、ステップＳ１１１に進む。これに対し、電圧最小値ＴＨ０が安定していない場合（ステップＳ１１０でＮｏ）、ステップＳ１１２に進んで、基準値ＴＨＩＤＸをリセットして電圧最小値ＴＨ０の値を代入し、ステップＳ１１５に進む。
【００３４】
ここで、ステップＳ１１３からステップＳ１１５の処理について説明する。
ステップＳ１０４でエンジン回転数ＮＥが学習回転数範囲内にないときと、ステップＳ１０５で出力電圧ＡＤＴＨが学習電圧領域内にないときには、ステップＳ１１３が実行される。ステップＳ１１３では、電圧最小値ＴＨ０がリセットされる。この処理によって、電圧最小値ＴＨ０には、学習上限電圧値ＴＨＨの値がセットされる。
続くステップＳ１１４では、電圧最小値ＴＨ０の安定判断に用いる基準値ＴＨＩＤＸをリセットし、学習上限電圧値ＴＨＨの値にする。
さらに、ステップＳ１１５では、電圧安定判断タイマーＴＭＴＨを所定の値、例えば５００ｍｓｅｃにセットする。なお、ステップＳ１１５を実施した後は、後述するステップＳ１２２が実行される。
【００３５】
次に、ステップＳ１１１以降について説明する。ここで、この実施の形態では、電圧最小値ＴＨ０が所定時間継続して安定した値になっている場合に、全閉値の学習を行う。
具体的には、ステップＳ１１１で、安定判断部７２が、電圧安定判断タイマーＴＭＴＨの値を参照し、電圧安定判断時間が経過しているか調べる。電圧安定判断タイマーＴＭＴＨの値がゼロでなければ（ステップＳ１１１でＮｏ）、後述するステップＳ１２２に進んで、スロットル開度ＴＨの全閉値を学習する処理を実行する。
これに対し、電圧安定判断タイマーＴＭＴＨの値がゼロであれば（ステップＳ１１１でＹｅｓ）、以降の処理で全閉値学習部７３がスロットル開度ＴＨの全閉値を学習する処理を実行する。
【００３６】
スロットル開度ＴＨの全閉値を学習する処理では、最初にステップＳ１１６で、開度決定部７４が学習済みフラグＦ＿ＴＨＦを調べる。スロットル開度ＴＨの全閉値の学習が完了してない場合は、学習済みフラグＦ＿ＴＨＦが「０」になっているので、この場合（ステップＳ１１６でＮｏ）、ステップＳ１１７に進んで、全閉学習値の高速学習処理を実施し、ここでの処理を終了する。なお、全閉学習値の高速学習処理は、車両の組み立て後の検査工程で車両用電子制御装置４１を動作させたときなどに実施されるものである。全閉学習値の高速学習処理の詳細は、後に説明する。
【００３７】
これに対し、学習済みフラグＦ＿ＴＨＦが「１」、つまりスロットル開度ＴＨの全閉値の学習が完了している場合（ステップＳ１１６でＹｅｓ）、ステップＳ１１８に進む。つまり、車両の組み立て後の検査工程などで全閉値の高速学習を行った後は、通常の処理として、ステップＳ１１８以降を実施し、全閉値の補正が行われる。
【００３８】
ステップＳ１１８では、開度決定部７４が、電圧最小値ＴＨ０と全閉学習値ＴＨＲＥＦとが一致するか調べる。全閉学習値ＴＨＲＥＦの初期値は、予めＥＥＰＲＯＭ５８に記憶されている所定値が用いられる。そして、電圧最小値ＴＨ０と全閉学習値ＴＨＲＥＦが一致すれば（ステップＳ１１８でＹｅｓ）、全閉学習値ＴＨＲＥＦを更新せずに、ステップＳ１２２に進む。
これに対し、電圧最小値ＴＨ０と全閉学習値ＴＨＲＥＦが不一致であれば（ステップＳ１１８でＮｏ）、続くステップＳ１１９で電圧最小値ＴＨ０と全閉学習値ＴＨＲＥＦとの大小関係を調べる。
【００３９】
この際、電圧最小値ＴＨ０が全閉学習値ＴＨＲＥＦ以上であれば（ステップＳ１１９でＹｅｓ）、ステップＳ１２０で全閉学習値ＴＨＲＥＦを上方修正する。これにより、全閉学習値ＴＨＲＥＦの値が所定の修正値、例えば、５ｍＶ、増加され、この値が新しい全閉学習値ＴＨＲＥＦになる。これに対し、電圧最小値ＴＨ０が全閉学習値ＴＨＲＥＦ以上でなければ（ステップＳ１１９でＮｏ）、ステップＳ１２１で全閉学習値ＴＨＲＥＦを下方修正する。これにより、全閉学習値ＴＨＲＥＦが所定の修正値、例えば、５ｍＶ、減少され、この値が新しい全閉学習値ＴＨＲＥＦになる。なお、全閉学習値ＴＨＲＥＦを増減させるときの所定値は、前記の例に限定されない。また、上方修正時の修正値と、下方修正値の修正値は、異なる値でも良い。
【００４０】
そして、ステップＳ１２２で、全閉学習値ＴＨＲＥＦの更新の有無に関わらず、３分毎にスロットル開度ＴＨの全閉学習値ＴＨＲＥＦをＥＥＰＲＯＭ５８に書き込んでから、ここでの処理を終了する。なお、前記のステップＳ１１５を実施した後も、ステップＳ１２２が実施される。
【００４１】
次に、ステップＳ１１７の全閉学習値の高速学習処理の詳細について図５のフローチャートを参照して説明する。
まず、学習電圧領域突入フラグＦ＿ＴＨＺを調べ、その値が「１」、つまりスロットル開度センサ６の出力電圧ＡＤＴＨが学習電圧領域に突入しているときは（ステップＳ２０１でＹｅｓ）、ここでの処理を終了する。
これに対し、学習電圧領域突入フラグＦ＿ＴＨＺの値が「０」、つまりスロットル開度センサ６の出力電圧ＡＤＴＨが学習電圧領域に突入していないときは（ステップＳ２０１でＮｏ）、ステップＳ２０２で高速学習用の電圧最小値ＴＨＦを前回値ＴＨＦ＿Ｂに代入する。さらに、ステップＳ２０３で、電圧最小値ＴＨ０を高速学習用の電圧最小値ＴＨＦに代入する。なお、電圧最小値ＴＨＦの初期値は、図４のステップＳ１０１で学習上限電圧値ＴＨＨがセットされている。
【００４２】
続いて、ステップＳ２０４で高速学習実施カウンタＣＴＨを調べ、その値が「０」以下であれば、後述するステップＳ２１４に進む。これに対し、高速学習実施カウンタＣＴＨの値が「０」より大きければ、ステップＳ２０５に進んで、安定判断部７２が、電圧最小値ＴＨＦが安定しているか調べる。ここでは、電圧最小値ＴＨＦと前回値ＴＨＦ＿Ｂの差を計算し、この差の絶対値が所定の判定値ＤＴＨＩＤＸ以下であれば、電圧が安定していると判断し（ステップＳ２０５でＹｅｓ）、高速学習の安定判断カウンタＣＴＴの値を１つカウントアップしてから、ステップＳ２０８に進む。なお、判定値ＤＴＨＩＤＸには、図４のステップＳ１１０の判定値ＤＴＨＩＤＸと同じものが用いられる。
【００４３】
これに対し、差の絶対値が所定の判定値ＤＴＨＩＤＸ以下になっていなければ、電圧が安定していないと判断し（ステップＳ２０５でＮｏ）、ステップＳ２０６に進んで、高速学習の安定判断カウンタＣＴＴの値をリセットし、後述するステップＳ２１４に進む。
【００４４】
電圧最小値ＴＨＦが安定している判断されたときに実行されるステップＳ２０８では、安定判断部７２が、電圧最小値ＴＨＦが所定回数継続して安定しているか調べる。高速学習の安定判断カウンタＣＴＴの値が、例えば３以上でないとき、所定回数継続していると判断されず（ステップＳ２０８でＮｏ）、ステップＳ２１４に進む。
これに対し、高速学習の安定判断カウンタＣＴＴの値が、例えば３以上のときは、所定回数継続していると判断され（ステップＳ２０８でＹｅｓ）、ステップＳ２０９で、全閉値学習部７３がスロットル開度ＴＨの全閉学習値ＴＨＲＥＦを更新する。これにより、全閉学習値ＴＨＲＥＦに高速学習用の電圧最小値ＴＨＦの値が代入される。さらに、ステップＳ２１０で、スロットル開度ＴＨの全閉値の学習が済んだことを示す学習済みフラグＦ＿ＴＨＦに「１」がセットされる。
【００４５】
そして、ステップＳ２１１では、全閉値学習部７３によって、ＥＥＰＲＯＭ５８に全閉学習値ＴＨＲＥＦの値が書き込まれ、続くステップＳ２１２でＥＥＰＲＯＭ５８に学習済みフラグＦ＿ＴＨＦの値が書き込まれる。この後、ステップＳ２１３に進む。
【００４６】
ここまでの処理で、全閉値の高速学習が完了したので、ステップＳ２１３ではインジケータ６２を２秒点灯させる。インジケータ６２は、ＣＰＵ５３の表示制御部７８の指令に基づいて駆動回路５７が点灯させるもので、これにより、工場の作業者などが全閉値の高速学習が完了したことを確認できる。なお、インジケータ６２は、この処理のために設けられたものではなく、燃料ランプ等、車両に別の用途のために設けられている報知手段が用いられる。点灯させる秒数は、２秒に限定されない。また、インジケータ６２を用いた報知方法は、点灯に限定されず、点滅や、その他の手段を用いても良い。
【００４７】
そして、ステップＳ２１４では、全閉値学習部７３によって、学習電圧領域突入フラグＦ＿ＴＨＺに「１」がセットされ、ステップＳ２１５で高速学習実施カウンタＣＴＨの値が１つカウントアップされる。この後、ここでの処理を終了する。
【００４８】
次に、図６のフローチャートを参照して、エンジン１の制御処理について説明する。なお、この処理は、図４及び図５のフローチャートに示す各種の処理と並行して実施されるもので、クランク角センサ１９から出力されるクランク信号がＣＰＵ５３に入力される度に実施される処理である。
【００４９】
まず、ステップＳ３０１では、回転数算出部７６においてエンジン回転数ＮＥが算出される。エンジン回転数ＮＥは、例えば、クランク信号が前回入力されてから今回入力されるまでの経過時間に基づいて計算される。
次に、ステップＳ３０２では、開度決定部７４がスロットル開度ＴＨを算出する。この実施の形態では、スロットル開度センサ６の出力電圧ＡＤＴＨと、全閉学習値ＴＨＲＥＦとに基づいてスロットル開度ＴＨが算出される。この処理の詳細は、後に説明する。
続く、ステップＳ３０３では、開度決定部７４の全閉判定部８１においてスロットル開度ＴＨの全閉判断処理が行われる。この処理は、スロットル開度センサ６の出力電圧ＡＤＴＨと、全閉学習値ＴＨＲＥＦとに基づいて、スロットル開度ＴＨが全閉であるかが判断される。この処理の詳細は、後に説明する。
さらに、ステップＳ３０４では、ＣＰＵ５３によってエンジン１の吸気圧ＰＭが算出される。例えば、ＣＰＵ５３は、吸気圧センサ７の出力電圧を読み込んで、エンジン１が２回転する間の吸気圧の最小値を検出し、この最小値を吸気圧ＰＭとする。
【００５０】
ステップＳ３０５では、点火制御部７７が、エンジン回転数ＮＥ、スロットル開度ＴＨに基づいて、３Ｄテーブルから点火時期を算出する。
続くステップＳ３０６では、燃料噴射制御部７５が、エンジン回転数ＮＥ、スロットル開度ＴＨ、吸気圧ＰＭに基づいて、燃料噴射量を算出する。この処理の詳細は、後に説明する。
ステップＳ３０７では、燃料噴射制御部７５が、エンジン回転数ＮＥ、スロットル開度ＴＨに基づいて、燃料カットの判断を行う。この処理の詳細は、後に説明する。
【００５１】
さらに、ステップＳ３０８で、点火出力処理を実行する。点火出力処理では、点火制御部７７がスロットル開度ＴＨと、エンジン回転数ＮＥとに基づいて、予め登録されている３Ｄテーブルを検索等することで、点火時期を算出する。この際、スロットル開度ＴＨの全閉値の学習が終了するまでは、スロットル開度ＴＨを後述する固定値とみなして点火時期を算出する。
そして、ステップＳ３０９で、燃料噴射制御部７５が燃料噴射量の算出処理の計算結果に基づいて燃料を噴射させる。なお、ステップＳ３０９の燃料噴射処理で、後述する燃料カットが実施されるときは、燃料噴射は行われない。
【００５２】
ここで、ステップＳ３０２のスロットル開度ＴＨの算出処理の詳細について説明する。
スロットル開度ＴＨの全閉値の学習が完了するまでは、開度決定部７４は、スロットル開度ＴＨを固定値、例えば８０°に固定する。点火時期算出に適用するスロットル開度ＴＨを所定の固定値にすることで、スロットル開度ＴＨの全閉値の学習が完了する前の誤差を有する可能性があるスロットル開度ＴＨに基づいて点火時期が決定されることが防止される。さらに、誤差を有したままで計算された点火時期に基づいて、点火が行われることが防止される。なお、固定値は、点火時期が遅角側になるような値であれば良く、８０°に限定されない。
【００５３】
ここでの処理の具体的な内容について、図７のフローチャートを参照して説明する。
最初に、車両電子制御装置４１がスロットル開度センサ６の出力電圧ＡＤＴＨを読み込む（ステップＳ４０１）。次に、スロットル開度ＴＨの全閉値の学習が完了しているか調べる。学習済みフラグＦ＿ＴＨＦが「１」の場合は、全閉値の学習が終了していると判断し（ステップＳ４０２でＹｅｓ）、ステップＳ４０３でスロットル開度ＴＨを算出する。このとき算出されるスロットル開度ＴＨは、出力電圧ＡＤＴＨから全閉学習値ＴＨＲＥＦを引くことで算出される。このようにスロットル開度センサ６の実測値を、学習により得られた全閉学習値ＴＨＲＥＦで補正することで、正しいスロットル開度ＴＨが得られるようになる。そして、この後に、ここでの処理を終了する。
【００５４】
これに対し、ステップＳ４０２でフラグが「０」のときは、全閉値の学習が終了していないと判断し、ステップＳ４０４においてスロットル開度ＴＨを算出する。このときのスロットル開度ＴＨは、固定値、例えば、前記した８０°に設定される。そして、この後、ここでの処理を終了する。なお、このとき設定される固定値は、図６のステップＳ３０５の点火時期算出処理における点火時期の算出に用いられる。
【００５５】
次に、図６のステップＳ３０３のスロットル開度全閉判断処理の詳細について説明する。
ここでは、スロットル開度ＴＨの全閉値の学習が完了するまでは、スロットルバルブ５の全閉状態の判定を禁止し、判定結果は非全閉状態に固定される。これにより、スロットル開度ＴＨの誤差が原因となって、スロットルバルブ５が開いているにも関わらずスロットルバルブ５が全閉状態と判定されることがなくなる。その結果、アイドル運転時の回転数制御を行ったときに、誤った全閉判定に基づいて吸入空気量が減量されることがなくなり、エンジン回転数ＮＥの落ち込みや、エンストの発生を防止できる。
【００５６】
ここでの処理の具体的な内容について、図８のフローチャートを参照して説明する。
最初に、スロットル開度ＴＨの全閉学習が完了しているか調べる。学習済みフラグＦ＿ＴＨＦが「１」の場合は、全閉値の学習が完了していると判断し（ステップＳ５０１でＹｅｓ）、ステップＳ５０２でスロットル開度センサ６の出力電圧ＡＤＴＨと、全閉学習値ＴＨＲＥＦの差を調べる。この差の絶対値が所定値ＤＩＤＬ以下であれば（ステップＳ５０２でＹｅｓ）、ステップＳ５０３に進んで、スロットル開度全閉フラグＦ＿ＴＨＩＤＬに「１」をセットし、ここでの処理を終了する。なお、所定値ＤＩＤＬは、例えばスロットル開度ＴＨの０．４°に相当する値、２０ｍＶとする。なお、所定値ＤＩＤＬは、１°に相当する値以内にすることが好ましい。このような値であれば、エンジン制御における誤差を抑制できる。
【００５７】
これに対し、ステップＳ５０１で学習済みフラグＦ＿ＴＨＦが「０」の場合は、つまり全閉値の学習が終了していない場合や、ステップＳ５０２で算出した差の絶対値が所定値ＤＩＤＬ以下でない場合には、ステップＳ５０４でスロットル開度全閉フラグＦ＿ＴＨＩＤＬをリセットして「０」にする。そして、この後に、ここでの処理を終了する。
【００５８】
次に、図６のステップＳ３０６の燃料噴射量算出処理の詳細について説明する。
ここでは、スロットル開度ＴＨの全閉値の学習が完了するまでは、吸気圧ＰＭの最小値とエンジン回転数ＮＥに基づいて燃料噴射量を算出する。これにより、スロットル開度ＴＨの全閉値の学習が完了する前の誤差を有する可能性があるスロットル開度ＴＨに基づいて燃料噴射を実施することが防止される。燃料噴射量を精度良く算出できるので、乗車感覚の低下が防止される。
【００５９】
ここでの処理の具体的な内容について、図９のフローチャートを参照して説明する。
最初に、スロットル開度ＴＨの全閉値の学習が完了しているか調べる。学習済みフラグＦ＿ＴＨＦが「１」の場合は、全閉値の学習が完了していると判断し（ステップＳ６０１でＹｅｓ）、ステップＳ６０２に進んでエンジン回転数ＮＥが所定回転数以上であるか調べる。このときの所定回転数は、エンジン１の排気量によっても異なるが、例えば、４０００ｒｐｍとする。エンジン回転数ＮＥが所定回転数以上であれば（ステップＳ６０２でＹｅｓ）、ステップＳ６０４を実施する。これに対し、エンジン回転数ＮＥが所定回転数以上でないときは（ステップＳ６０２でＮｏ）、ステップＳ６０３に進む。ステップＳ６０３では、現在のスロットル開度ＴＨが所定のスロットル開度、例えば１５°以上であれば、ステップＳ６０４に進む。
【００６０】
そして、ステップＳ６０４では、第１の噴射制御部８５が、図示を省略する３Ｄテーブルをエンジン回転数ＮＥとスロットル開度ＴＨで検索して燃料噴射量を算出する。その後、ここでの処理を終了する。
なお、ステップＳ６０１で学習済みフラグＦ＿ＴＨＦが「０」、つまり全閉値の学習が完了していない場合や、ステップＳ６０３でスロットル開度ＴＨが所定のスロットル開度以上でない場合は、ステップＳ６０５に進む。この場合は、第１の噴射制御部８５の選択が禁止され、第２の噴射制御部８６が選択される。そして、第２の噴射制御部８６が、図示を省略する３Ｄテーブルをエンジン回転数ＮＥと吸気圧ＰＭで検索して燃料噴射量を算出する。その後、ここでの処理を終了する。
このように、この実施の形態では、スロットル開度ＴＨの全閉値の学習が完了するまでは、第２の噴射制御部８６のみが選択される。そして、スロットル開度ＴＨの全閉値の学習が完了した後は、エンジン回転数ＮＥとスロットル開度ＴＨに応じて、第１の噴射制御部８５と第２の噴射制御部８６のいずれかが選択される。
【００６１】
次に、図６のステップＳ３０７の燃料カット判断処理の詳細について説明する。
燃費向上や排気ガスを低減するために、車両は、所定のエンジン回転数ＮＥ以上で、かつスロットル開度ＴＨが全閉状態であるときに、燃料噴射を停止することがある。ここでは、スロットル開度ＴＨの全閉値の学習が完了するまでは、燃料噴射を停止する条件を満たしていても、燃料噴射のカットを禁止する。これにより、スロットルバルブ５が開いているにも関わらず全閉状態と判定され、エンジン回転数ＮＥが上昇したときに燃料噴射が停止されることを防止する。これにより、エンジン回転のハンチング発生が防止され、乗車感覚の低下を防止する。
【００６２】
ここでの処理の具体的内容について、図１０のフローチャートを参照して説明する。
最初に、スロットル開度ＴＨの全閉値の学習が完了しているか調べる。学習済みフラグＦ＿ＴＨＦが「１」の場合は、全閉値の学習が完了していると判断し（ステップＳ７０１でＹｅｓ）、ステップＳ７０２に進んでエンジン回転数ＮＥが所定回転数以上であるか調べる。このときの所定回転数は、エンジン１の排気量によって異なるが、例えば、３０００ｒｐｍとする。エンジン回転数ＮＥが所定回転数以上のときは（ステップＳ７０２でＹｅｓ）、さらにスロットル開度ＴＨが全閉であれば（ステップＳ７０３でＹｅｓ）、ステップＳ７０４で燃料停止部８３が燃料カット実施フラグＦ＿ＦＣに「１」をセットする。これにより、スロットルバルブ５が全閉のときに、燃料噴射が停止される。そして、この後、ここでの処理を終了する。
なお、スロットル開度ＴＨの全閉を判断する基準には、図８のスロットル開度全閉判断処理のステップＳ５０３，Ｓ５０４で設定したスロットル開度全閉フラグＦ＿ＴＨＩＤＬが用いられる。そして、スロットル開度全閉フラグＦ＿ＴＨＩＤＬの値が「１」のときに、スロットル開度ＴＨが全閉であると判断する。
【００６３】
これに対し、ステップＳ７０１で学習済みフラグＦ＿ＴＨＦが「０」、つまり全閉値の学習が完了していない場合や、ステップＳ７０２でエンジン回転数ＮＥが所定の回転数以上でない場合、ステップＳ７０３でスロットル開度ＴＨが全閉でない場合は、ステップＳ７０５に進む。ステップＳ７０５では、停止禁止部８４が燃料カット実施フラグＦ＿ＦＣをリセットして「０」にする。これにより、スロットル開度センサ６がスロットルバルブ５の全閉に相当する信号を出力した場合でも、燃料噴射が停止されることがなくなる。そして、この後、ここでの処理を終了する。
【００６４】
次に、図１１のフローチャートを参照して、エンジン１のアイドル回転数の制御処理について説明する。
ここで、アイドル運転時には、エンジン回転数ＮＥを一定に保つために吸入空気量をフィードバックするアイドル回転数制御が実施される。この際、フィードバックは、スロットルバルブ５の全閉状態を検出している場合に実施される。なお、この処理は、図４及び図５のフローチャートに示す各種の処理、図６のフローチャートに示すエンジン１の制御処理と並行して実施されるもので、エンジン１の回転と非同期で、かつ一定期間毎、例えば２０ｍｓｅｃ毎に実施される。
【００６５】
図１１のフローチャートに示すように、ステップＳ８０１で、車両電子制御装置４１は、冷却水温センサ２１の出力電圧から水温ＴＷを算出する。続いて、ステップＳ８０２で、図示を省略する２Ｄテーブルを水温ＴＷで検索することで、目標ステップ値を算出する。さらに、ステップＳ８０３で、図示を省略する２Ｄテーブルを水温ＴＷで検索することで、目標アイドル回転数を算出する。
【００６６】
次に、ステップＳ８０４で、車両電子制御装置４１は、エンジン回転数ＮＥが所定の範囲内にあるか調べる。このときの所定の範囲は、エンジン１の排気量によっても異なるが、例えば、下限値が８００ｒｐｍ、上限値が２２００ｒｐｍとする。このような所定の範囲内にエンジン回転数ＮＥが収まっていれば（ステップＳ８０４でＹｅｓ）、ステップＳ
８０５に進む。そして、スロットル開度ＴＨが全閉のときに（ステップＳ８０５でＹｅｓ）、ステップＳ８０６で目標アイドル回転数へのフィードバック制御を実施する。なお、スロットル開度ＴＨの全閉を判断する基準には、図８のスロットル開度全閉判断処理のステップＳ５０３，Ｓ５０４で設定したスロットル開度全閉フラグＦ＿ＴＨＩＤＬを用いる。
これに対し、ステップＳ８０４でエンジン回転数ＮＥが所定の範囲内に収まらない場合や、ステップＳ８０５でスロットル開度ＴＨが全閉でない場合は、ステップＳ８０７に進んで目標ステップ値へのオープンループ制御を実施する。
【００６７】
次に、以上の処理について、図１２のタイミングチャートを参照して具体的に説明する。
なお、横軸は、経過時間（ｓｅｃ）を示す。縦軸は、上から順番にスロットル開度センサの出力電圧ＡＤＴＨ（Ｖ）、電圧安定判断タイマーＴＭＴＨ、高速学習実施カウンタＣＴＨ、高速学習の安定判断カウンタＣＴＴ、学習電圧領域突入フラグＦ＿ＴＨＺ、学習済みフラグＦ＿ＴＨＦが割り当てられている。
【００６８】
時間Ｔ０でイグニッションがＯＮになると、車両電子制御装置４１が処理を開始する。全閉値学習に関する初期値がセットされ（図４のステップＳ１０１参照）、ＥＥＰＲＯＭ５８から各種の初期値が読み出される。最初のイグニッションＯＮ時は、工場の組み立て時の初回動作時であるので、学習済みフラグＦ＿ＴＨＦには０、全閉学習値ＴＨＲＥＦには０．５０Ｖがそれぞれセットされる。また、電圧最小値ＴＨ０と、基準値ＴＨＩＤＸには学習上限電圧値ＴＨＨの０．８Ｖがセットされる。また、電圧安定判断タイマーＴＭＴＨには５００ｍｓｅｃがセットされる。
【００６９】
この状態では、スロットル開度ＴＨの全閉学習は完了していない。つまり、学習済みフラグＦ＿ＴＨＦが「０」であることから、高速全閉値学習用の各値も初期値にセットされる。具体的には、高速学習用の電圧最小値ＴＨＦに学習上限電圧値ＴＨＨの０．８０Ｖがセットされ、高速学習実施カウンタＣＴＨ、高速学習の安定判断カウンタＣＴＴは共に「０」にリセットされる。
【００７０】
次に、スロットル開度センサの出力電圧ＡＤＴＨが読み込まれる。時間Ｔ０の出力電圧ＡＤＴＨは０．７Ｖである。このときの出力電圧ＡＤＴＨは、電圧最小値ＴＨ０（＝０．８Ｖ）以下なので、電圧最小値ＴＨ０は、出力電圧ＡＤＴＨの値に置き換えられる。ここで、電圧最小値ＴＨ０と、基準値ＴＨＩＤＸの差は、０．１Ｖであり、この値は判断値ＤＴＨＩＤＸの０．０１Ｖより大きいので、基準値ＴＨＩＤＸが更新され、その値に電圧最小値ＴＨ０の値である０．７Ｖが代入される。さらに、電圧安定判断タイマーＴＭＴＨの値が５００ｍｓｅｃにセットされる。
【００７１】
続く、時間Ｔ１の段階では、作業者がスロットルバルブ５を操作しておらず、スロットル開度センサ６の出力電圧ＡＤＴＨは０．７Ｖで変化していない。この場合は、電圧最小値ＴＨ０と、基準値ＴＨＩＤＸとが一致し、その差の絶対値が判断値ＤＴＨＩＤＸの０．０１Ｖより小さくなる。さらに、電圧安定判断時間が経過したか否が調べられる。この時点で、電圧安定判断タイマーＴＭＴＨの値は０ｍｓｅｃになっていないので、全閉値の学習は行わない。
【００７２】
時間Ｔ２では、作業者がスロットルバルブを操作していないため、時間Ｔ１と同様の処理が行われる。しかしながら、時間Ｔ２では、電圧安定判断タイマーＴＭＴＨの値は０ｍｓｅｃになっている。しがって、全閉値の学習が行われる。このときは、工場の組み立て時の初回動作時であることから、スロットル開度ＴＨの全閉値の学習は完了していない。つまり、学習済みフラグＦ＿ＴＨＦが「０」なので、図５に示す全閉学習値の高速学習処
理が実施される。
【００７３】
全閉学習値の高速学習処理では、高速学習用の電圧最小値ＴＨＦに、電圧最小値ＴＨ０の値である０．７Ｖが入力される。さらに、高速学習実施カウンタＣＴＨが「０」のため、全閉値を学習することなく、学習電圧領域突入フラグＦ＿ＴＨＺを「１」にセットした後、高速学習実施カウンタＣＴＨをインクリメントしてから全閉学習値の高速学習処理を一旦終了する。
【００７４】
時間Ｔ３では、作業者がスロットルバルブを開く操作を行っており、スロットル開度センサ６の出力電圧ＡＤＴＨが学習上限電圧値ＴＨＨを越える。その結果、学習電圧領域突入フラグＦ＿ＴＨＺが「０」にリセットされる。さらに、電圧最小値ＴＨ０及び基準値ＴＨＩＤＸがリセットされ、その値が共に学習上限電圧値ＴＨＨになる。さらに、電圧安定判断タイマーＴＭＴＨが５００ｍｓｅｃにリセットされる。
【００７５】
時間Ｔ４では、作業者がスロットルバルブを閉じる操作を行っており、スロットル開度センサ６の出力電圧ＡＤＴＨが０．６１Ｖになる。これに伴って、電圧最小値ＴＨ０も０．６１Ｖに更新される。電圧最小値ＴＨ０と、基準値ＴＨＩＤＸの差は、０．１９Ｖ（＝０．８Ｖ−０．６１Ｖ）になり、この値は判断値ＤＴＨＩＤＸの０．０１Ｖ以上なので、基準値ＴＨＩＤＸが更新され、その値に電圧最小値ＴＨ０の値である０．６１Ｖが代入される。この時点で、電圧安定判断タイマーＴＭＴＨの値は０ｍｓｅｃになっていないので、全閉値の学習は行わない。
【００７６】
時間Ｔ５では、スロットル開度センサ６の出力電圧ＡＤＴＨは変化していない。このため、電圧最小値ＴＨ０と、基準値ＴＨＩＤＸの差は、０Ｖ（＝０．６１Ｖ−０．６１Ｖ）になる（ステップＳ１１０でＹｅｓ）。しかしながら、この時点で、電圧安定判断タイマーＴＭＴＨの値は０ｍｓｅｃになっていないので、全閉値の学習は行わない。
【００７７】
時間Ｔ６では、スロットル開度センサ６の出力電圧ＡＤＴＨが僅かに減少するが、電圧最小値ＴＨ０と、基準値ＴＨＩＤＸの差が０．０１Ｖ以下になる。さらに、電圧安定判断タイマーＴＭＴＨが「０」になっているので、スロットル開度ＴＨの全閉値を学習するための処理が実行される。このとき、学習済みフラグＦ＿ＴＨＦは「０」なので、図５に示す全閉学習値の高速学習処理が実施される。
【００７８】
全閉学習値の高速学習処理では、高速学習実施カウンタＣＴＨは、前記したように「１」になっているため、高速学習用の電圧最小値ＴＨＦと、その前回値の差の絶対値を調べる。このときの電圧最小値ＴＨＦは、今回の電圧最小値である０．６１Ｖであり、電圧最小値ＴＨＦの前回値ＴＨＦ＿Ｂは、時間Ｔ２のときの高速学習用の電圧最小値ＴＨＦの値、すなわち０．７Ｖである。したがって、両者の差の絶対値は、０．０９Ｖで、この値は判定値ＤＴＨＩＤＸの０．０１Ｖより大きい。このため、電圧最小値ＴＨＦの前回値ＴＨＦ＿Ｂは、スロットル開度ＴＨの全閉状態ではなく、スロットルバルブ５が開けられていたと判断する。したがって、安定判断カウンタＣＴＴをリセットする。その後、学習電圧領域突入フラグＦ＿ＴＨＺを「１」にセットした後、高速学習実施カウンタＣＴＨをインクリメントしてから全閉学習値の高速学習処理を一旦終了する。なお、高速学習実施カウンタＣＴＨの値は、既に１回インクリメントしているので、「２」になる。
【００７９】
時間Ｔ７では、再びスロットルバルブ５が開かれて出力電圧ＡＤＴＨが学習上限電圧値ＴＨＨを越えたので、学習電圧領域突入フラグＦ＿ＴＨＺがリセットされる。これにより、時間Ｔ３と同様の処理が行われる。
【００８０】
時間Ｔ８では、スロットル開度センサ６の出力電圧ＡＤＴＨが０．６Ｖになる。これに
伴って、電圧最小値ＴＨ０も０．６Ｖに更新される。電圧最小値ＴＨ０と基準値ＴＨＩＤＸの差の絶対値は、０．２Ｖ（＝０．８Ｖ−０．６Ｖ）になる。その結果、基準値ＴＨＩＤＸの値が電圧最小値ＴＨ０の値に置き換えられると共に、電圧安定判断タイマーＴＭＴＨが５００ｍｓｅｃにリセットされる。
【００８１】
時間Ｔ９では、前回に比べて出力電圧ＡＤＴＨが変化していない。ここでは、時間Ｔ５と同様の処理が行われ、電圧安定判断タイマーＴＭＴＨが「０」になっていないことから、一旦処理を終了する。
【００８２】
時間Ｔ１０では、前回に比べて出力電圧ＡＤＴＨが変化しておらず、この間に電圧安定判断タイマーＴＭＴＨが「０」になっている。そして、この段階でもスロットル開度ＴＨの全閉値の学習は完了していないので、図５に示す全閉学習値の高速学習処理が実施される。
学習電圧領域突入済みではない(Ｆ＿ＴＨＺが「０」)ため、高速学習用の電圧最小値ＴＨＦと、その前回値ＴＨＦ＿Ｂがそれぞれ更新される。これにより、高速学習用の電圧最小値ＴＨＦが電圧最小値ＴＨ０の０．６０Ｖになる。前回値ＴＨＦ＿Ｂは、時間Ｔ６の電圧最小値ＴＨＦである０．６１Ｖになる。
【００８３】
さらに、高速学習実施カウンタＣＴＨが「２」になっているので、電圧安定判断が行われる。電圧最小値ＴＨＦと前回値ＴＨＦ＿Ｂの差の絶対値は、０．０１Ｖであり、判断値ＤＴＨＩＤＸ以下なので、高速学習の安定判断カウンタＣＴＴが「１」になる。この段階では、高速学習の安定判断カウンタＣＴＴが「３」より小さいので、学習電圧領域突入フラグＦ＿ＴＨＺを「１」にセットした後、高速学習実施カウンタＣＴＨをインクリメントして「３」にしてから全閉学習値の高速学習処理を一旦終了する。
【００８４】
以降は、時間Ｔ１１まで、時間Ｔ７から時間Ｔ１０までと同様の処理が繰り返される。
【００８５】
そして、時間Ｔ１１で全閉学習値の高速学習処理が実施されると、高速学習の安定判断カウンタＣＴＴが「３」になる。これにより、高速学習の安定判断カウンタＣＴＴが「３」以上になるので、全閉学習値ＴＨＲＥＦに電圧最小値ＴＨＦが入力される。これにより、全閉値が学習されたので、インジケータ６２を２秒間点灯させ、作業者にその旨を知らせる。そして、学習済みフラグＦ＿ＴＨＦの値を学習済みであることを示す「１」にしてから、全閉学習値の高速学習処理を終了する。
【００８６】
以降は、学習済みフラグＦ＿ＴＨＦが「１」であることから、学習エンジン回転数範囲内、例えば１０００〜１８００ｒｐｍの範囲内で、図４のステップＳ１０５からステップＳ１２２に示すように、スロットル開度ＴＨの全閉学習値の処理が実施される。このとき、スロットル開度ＴＨの全閉学習値ＴＨＲＥＦは５ｍＶ毎に更新され、３分毎にＥＥＰＲＯＭ５８に書き込まれる。
【００８７】
また、学習済みフラグＦ＿ＴＨＦが「１」であることから、図８に示すように、スロットル開度センサ６の出力電圧ＡＤＴＨと、全閉学習値ＴＨＲＥＦとの比較に基づいてスロットルバルブ５の全閉状態の判定が行われる。さらに、この判定結果に基づいて、図１０に示す燃料カット判断処理が行われる。さらに、スロットル開度センサ６の出力電圧ＡＤＴＨと、全閉学習値ＴＨＲＥＦからスロットル開度ＴＨを算出して、図６のステップＳ３０５に示す点火時期算出処理、及びステップＳ３０６の燃料噴射量算出処理が実施される。また、図１１に示すように、アイドル回転数制御が実施される。
【００８８】
以上、説明したように、この実施の形態では、スロットル開度センサ６の出力電圧ＡＤＴＨの値が、所定範囲外になった後に再び所定範囲内に収まったときに、出力電圧ＡＤＴ
Ｈの最小値を用いてスロットル開度ＴＨの全閉値を学習するように構成した。したがって、車両組み立て後の車両用電子制御装置４１の最初の動作時において、スロットルバルブ５の開閉操作、いわゆるスナップ操作を実施するだけで、スロットルバルブ５の開度に一致するようにスロットル開度センサ６の出力電圧ＡＤＴＨの値を補正できる。つまり、スロットル開度ＴＨの実測値を学習値で補正することにより、正しいスロットル開度ＴＨが得られるようになる。
【００８９】
この際、安定判断部７２の処理によって、スロットルバルブ５の開閉操作を所定回数実施したときに、スロットル開度ＴＨの全閉値を学習するようにしたので、スロットル開度センサ６の出力電圧ＡＤＴＨの補正をより精度良く行なえる。なお、スロットルバルブ５の開閉操作を所定回数実施することで、スロットル開度センサ６の出力電圧ＡＤＴＨの最小値を、車両を実際に運転することなく、速やかに決定することが可能になる。
【００９０】
このとき、学習したスロットル開度ＴＨの全閉値と、スロットル開度センサ６の出力電圧ＡＤＴＨの差がスロットルバルブ５の開度の１°に相当する電圧以下のときに、スロットルバルブ５が全閉状態であると判定するようにしたので、スロットル開度センサ６の出力電圧ＡＤＴＨと学習した全閉値との比較から、スロットルバルブ５の全閉状態を精度良く判定することが可能になる。
【００９１】
また、従来では、所定期間、スロットルバルブが開いているにも関わらず、スロットルバルブが全閉状態と判定された場合、フィードバックによって吸入空気量は減量されていた。この時、スロットルバルブが全閉状態に戻された場合は、吸入空気量が減量されているためにエンジン回転数が落ち込んでしまっていた。これに対し、この実施の形態では、スロットル開度ＴＨの全閉値の学習が終了するまで、スロットル開度センサ６の出力電圧ＡＤＴＨと学習値に基づいてスロットルバルブ５の全閉状態を判定しないようにした、これにより、スロットルバルブ５が開いているにも関わらずスロットルバルブ５が全閉状態と判定してしまうことが防止される。その結果、アイドル運転時の回転数制御により吸入空気量が減量されることがなくなって、エンジン回転数ＮＥの不要な落ち込み、及びエンストの発生が防止される。
【００９２】
また、従来では、スロットルバルブが開いているにも関わらず、スロットルバルブが全閉状態と判定された場合には、スロットルバルブを開けてエンジン回転数が上昇したときに燃料噴射が停止されるので、エンジン回転のハンチングが発生することがあった。これに対し、この実施の形態では、スロットル開度ＴＨの開度に応じて燃料噴射をカットできるように構成すると共に、スロットル開度ＴＨの全閉値の学習が終了するまでは、燃料噴射のカットは実施しないようにした。これにより、スロットルバルブ５が開いているにも関わらず、全閉状態と判定してしまうことで、エンジン回転数ＮＥの上昇中に燃料噴射が停止されることが防止される。その結果、エンジン回転のハンチングが防止され、乗車感覚の低下が防止される。
【００９３】
また、スロットル開度ＴＨの開度に応じて燃料噴射量を制御できるように構成すると共に、スロットル開度ＴＨの全閉値の学習が終了するまでは、スロットル開度ＴＨを用いずに吸気圧の最小値とエンジン回転数に基づいて燃料噴射量を算出するように構成した。これにより、全閉値を学習する前の誤差を有する可能性のあるスロットル開度ＴＨに基づいて燃料噴射を実行することがなくなる。これにより、燃料噴射を精度良く行え、乗車感覚の低下が防止される。
【００９４】
さらに、スロットル開度ＴＨの開度に応じて点火時期を制御できるように構成すると共に、スロットル開度ＴＨの全閉値の学習が終了するまでは、スロットル開度ＴＨを固定値として扱って点火時期を算出するように構成した。これにより、全閉値を学習する前の誤
差を有する可能性のあるスロットル開度ＴＨに基づいた点火時期で点火を実施することがなくなる。この際、スロットル開度ＴＨの固定値は、点火時期が遅角側となるようなスロットル開度ＴＨに固定されているので、エンジン１への負荷を低減できる。
【００９５】
そして、車両組み立て後など、スロットル開度センサ６の最初の動作時に、スロットルの開閉操作を所定回数実施することでスロットル開度ＴＨの全閉値が学習されるが、全閉値の学習が完了した時に、外部の計器板（例えばインストルメンタルパネル）に設けられたランプ等からなるインジケータ６２を用いて、ユーザや作業者にスロットルバルブ５の全閉値の学習が完了したことを報知するようにした。これにより、専用の部品等を組み付けることなく、全閉値の学習が完了したことを知らせることが可能になる。さらに、組み立て時の作業結果の確認が容易になる。
【００９６】
なお、本発明は、前記の実施の形態に限定されずに広く応用することができる。例えば、本発明は、多気筒エンジンに適用することも可能である。また、内燃機関は、図１に示すエンジン１に限定されない。
【符号の説明】
【００９７】
１  車両用電子制御装置
５  スロットルバルブ
６  スロットル開度センサ
５３  ＣＰＵ
６２  インジケータ
７１  最小値決定部
７２  安定判断部
７３  全閉値学習部
７４  開度決定部
７５  燃料噴射制御部
７６  回転数算出部
７７  点火制御部
７８  表示制御部
８１  全閉判定部
８２  判定禁止部
８３  燃料停止部
８４  停止禁止部
８５  第１の噴射制御部
８６  第２の噴射制御部
【図１】
2011085062.tif 000003
【図２】
2011085062.tif 000004
【図３】
2011085062.tif 000005
【図４】
2011085062.tif 000006
【図５】
2011085062.tif 000007
【図６】
2011085062.tif 000008
【図７】
2011085062.tif 000009
【図８】
2011085062.tif 000010
【図９】
2011085062.tif 000011
【図１０】
2011085062.tif 000012
【図１１】
2011085062.tif 000013
【図１２】
2011085062.tif 000014