(57)【特許請求の範囲】
【請求項１】
車両の制御に用いられる制御量を目標値に収束させるため、算出された制御量及び目標値に基づきフィードバック制御を行うためのフィードバック量を算出すると共に、前記目標値からの前記制御量の定常的なずれを学習値として学習し、少なくとも前記フィードバック量及び前記学習値を用いた前記制御量の補正を行う車両制御装置において、
車両の運転終了時点を記憶する記憶手段と、
車両の運転開始時点に、前記記憶手段に記憶された前記運転終了時点からの経過時間を算出する経過時間算出手段と、
該経過時間算出手段にて算出された前記経過時間に基づき、前記学習値の学習速度を通常の学習速度よりも大きく設定する学習速度設定手段とを備えること
を特徴とする車両制御装置。
【請求項２】
請求項１に記載の車両制御装置において、
前記学習速度設定手段は、前記学習値の学習における学習値更新量を大きくすることによって前記学習速度を大きく設定すること
を特徴とする車両制御装置。
【請求項３】
請求項１に記載の車両制御装置において、
前記学習速度設定手段は、前記学習値の学習における学習値更新間隔を短くすることによって前記学習速度を大きく設定すること
を特徴とする車両制御装置。
【請求項４】
請求項１〜３のいずれかに記載の車両制御装置において、
さらに、前記経過時間と前記学習速度を設定するための速度設定情報との対応関係を記憶する対応関係記憶手段を備え、
前記学習速度設定手段は、前記対応関係記憶手段に記憶された対応関係を参照して学習速度を設定すること
を特徴とする車両制御装置。
【請求項５】
請求項１〜４のいずれかに記載の車両制御装置において、
前記学習速度設定手段は、前記経過時間が所定時間を越えると、前記学習値の学習速度を大きく設定すること
を特徴とする車両制御装置。
【請求項６】
請求項１〜５のいずれかに記載の車両制御装置において、
前記学習速度設定手段は、前記学習速度を大きく設定した場合は、当該設定した学習速度を、その後の適当な期間を経て前記通常の学習速度に戻すこと
を特徴とする車両制御装置。
【請求項７】
請求項１〜６のいずれかに記載の車両制御装置の前記経過時間算出手段及び前記学習速度設定手段としてコンピュータシステムを機能させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、車両を制御する車両制御装置に関し、特にフィードバック制御における定常的な制御量のずれを学習する車両制御装置に関する。
【０００２】
【従来の技術】
従来より、例えば車両のエンジンに供給される燃料と空気との比である空燃比やエンジンの回転数をはじめ、車両の制御に係る制御量を算出する車両制御装置においては、空燃比や回転数といった制御量を目標値に一致（収束）させるべく、環境・状態に応じた制御量の補正が広く一般に行われている。例えば水温センサや大気圧センサ等、各種センサからの入力信号に基づく補正を行い、制御量を算出するという具合である。しかし、時々刻々変化する諸要因を全て考慮した補正を行うことは理論的に不可能である。そのため、フィードバック制御を組み合わせ、フィードバック量に基づく補正も行っている。
【０００３】
このフィードバック制御においては、イグニッションスイッチをオンにした時点から速やかに制御量を目標値に一致させるために、目標値からの制御量の「定常的なずれ」を学習値として算出して記憶するのが一般的である。
従来のフィードバック制御の一例を図７に基づいて説明する。
【０００４】
図７は、制御量、フィードバック量及び学習値の推移を対応させて示したタイミングチャートである。時刻Ｔ０にて算出される制御量をベース制御量として示した。これが補正を行わない状態で算出される制御量である。この制御量を目標値へ収束させていく。
【０００５】
まず時刻Ｔ０からＴ１までの期間（以下、時刻αから時刻βまでの期間を、期間［α，β］と記述する。）を見ると、制御量は目標値を下回っているため、フィードバック量を一定の割合で増加させ、制御量を目標値へ近づけるように補正している。
【０００６】
そして、時刻Ｔ１では、フィードバック量を減少（スキップ）させ、その分を学習値として算出する。図７中に記号ｋで示す如くである。
同様に、期間［Ｔ１，Ｔ２］でも、また期間［Ｔ２，Ｔ３］でも、制御量が目標値を下回っているため、フィードバック量を一定の割合で増加させる。そして、時刻Ｔ２，Ｔ３では、フィードバック量を減少させて、その分を学習値に加える。
【０００７】
したがってこの例では、タイミングチャートの任意の時刻において、ベース制御量から補正された制御量は、フィードバック量と学習値との和として示される。例えば時刻ｔ１では、記号Ａで示すフィードバック量と記号Ｂで示す学習値によって、制御量が補正されている。
【０００８】
その後、期間［Ｔ３，Ｔ４］においては、時刻ｔ２を境にして制御量が目標値を上回るため、時刻ｔ２からはフィードバック量を減少させていく。
フィードバック量のスキップは基準値「０」に近づくように行われる。例えば時刻Ｔ５では、フィードバック量が「０」を下回っているため、フィードバック量を増加させ、その分だけ学習値を減少させる。
【０００９】
つまり、フィードバック量は目標値からの瞬間的なずれを補正するためのものであり、このフィードバック量に対しベース制御量と目標値とのずれを補正するのが学習値である。すなわち、図７におけるベース制御量と目標値とのずれが、上述した「定常的なずれ」に相当する。
【００１０】
なお、ここでは理解を容易にするために学習値が直接的な補正量となっているが、学習値は上述した定常的なずれを補正可能にするものであればよい。
以上のようにして、目標値からの「定常的なずれ」を学習値として記憶するようにすれば、車両のイグニッションスイッチをオンにした時点から速やかに制御量を目標値に収束させることができる。
【００１１】
例えば図８に示すように、制御量が目標値に収束している状態において、時刻ｔ１にて車両のイグニッションスイッチがオフされた場合を考える。そして、次に時刻ｔ２でイグニッションスイッチが再びオンされた時に、すなわち期間「ｔ１，ｔ２]で運転が休止された後に、目標値とベース制御量とのずれが学習値として記憶されていれば、実線で示すように速やかに制御量が目標値に収束する。学習値を記憶しない構成であれば、ベース制御量からの補正となるため、２点鎖線で示すように制御量の収束が遅れることになる。
【００１２】
このように従来は、フィードバック制御における定常的なずれを学習値として記憶する構成を採用し、制御量の収束までに要する時間を短くする工夫をしていた。制御量が目標値に収束していない状態では、制御上好ましくない状況が生じるからである。例えば回転数の変動が生じたり、エミッションが悪化したりすることが考えられる。
【００１３】
【発明が解決しようとする課題】
上述したように学習値を算出することによって目標値からの「定常的なずれ」を吸収する従来の構成では、フィードバック量は、例えば「０」というような基準値から所定範囲の値をとるようになっている。これは、フィードバック量に対し、例えばＲＡＭ上の所定の記憶領域が割り当てられるのであるが、学習値を用いた補正を行うことを前提として、それに応じた範囲の値を表現できる記憶領域が割り当てられるためである。すなわち、フィードバック量は、その記憶領域にて表現できる最大の値を上限値とし、最小の値を下限値とする。
【００１４】
一方、上述した「定常的なずれ」は、制御対象であるエンジンの経時変化や個体差等によって生じる。また、各種の入力信号から補正しきれない環境の変化等によってもたらされる。このため、車両の運転休止期間が長くなると、「定常的なずれ」の量が変わってくる。つまり、フィードバック量のような瞬間的に変わる量と比較して「定常的」という表現を用いたが、この「定常的なずれ」も、より長い期間でみれば変化するのである。例えば夏から冬にかけて約半年間運転を休止したような場合、外気温の差が大きくなるため、定常的なずれの量は大きく変化する。
【００１５】
そのため、この「定常的なずれ」を補正するために記憶された学習値が妥当でなくなることがあり、上述したようなフィードバック量に上限及び下限が存在する前提の下では問題が生じることがあった。これについて図４を参照し説明する。なお、図４には、制御量、フィードバック量、及び学習値の推移が実線と２点鎖線とで示されているが、ここでは実線にて示した推移を参照する。
【００１６】
図４に示すように、制御量が目標値に収束している状態において、時刻ｔ１にて車両のイグニッションスイッチがオフされた場合を考える。このとき、ベース制御量と目標値とのずれの量（図中に記号Ｃで示した量）、すなわち「定常的なずれ」の量が学習されており、これが学習値として記憶されている。この例では、学習値はＣとなっている。その後、時刻ｔ２でイグニッションスイッチが再びオンされる。ただし、期間「ｔ１，ｔ２］が例えば半年というように長くなると、ベース制御量と目標値とのずれの量が大きく変わってしまう。図４では、ΔＣだけ変わり、ずれの量がＣ’となっている。
【００１７】
このとき学習値はＣとして記憶されているため、時刻ｔ２では、この学習値による補正がなされ、制御量が目標値を大きく上回る。そのため、制御量を目標値に収束させるために、フィードバック量は一定の割合で減少するように算出される。このとき、時刻ｔ３で、上述したようにフィードバック量は「０」に近づく方向にスキップし、その分が学習値に反映される。
【００１８】
しかしながら、時刻ｔ３からさらに続けてフィードバック量を減少させるため、期間［ｔ４，ｔ５］においてフィードバック量が下限値に到達してしまう。すなわち、フィードバック量のサチュレートが生じる。これによって期間［ｔ４，ｔ５］では、制御量が目標値側へ補正されない。その結果、制御量の収束が遅れてしまう。
【００１９】
これを解決するための手法として、フィードバック量の上限値及び下限値を設定しなおすことが考えられる。つまり、フィードバック量がより大きな範囲の値をとるようにするのである。
上述したように、フィードバック量に対して、例えばＲＡＭ上の所定の記憶領域が割り当てられており、この記憶領域がフィードバック量のとり得る範囲を決定している。
【００２０】
したがって、フィードバック量のとり得る値の範囲を大きくするためには、フィードバック量に割り当てる記憶領域を大きくすることが考えられる。しかしながら、記憶領域が有限であることを考えると、記憶領域を増やすことは望ましくない。また、記憶領域をそのままとしてＬＳＢを変えることが考えられる。しかし、この場合は、フィードバック量の変化が粗くなるため、スムーズな制御を行うという観点から望ましくない。
【００２１】
本発明は、上述した問題を解決するためになされたものであり、車両の運転休止期間が長くなり学習値が妥当性を欠くことによって生じる制御量の収束の遅れを、フィードバック量の上限値及び下限値を操作することなく防止することを目的とする。
【００２２】
【課題を解決するための手段及び発明の効果】
上述した目的を達成するためになされた請求項１に記載の車両制御装置は、車両の制御に用いられる制御量を目標値に収束させるため、算出された制御量及び目標値に基づきフィードバック制御を行うためのフィードバック量を算出すると共に、目標値からの制御量の定常的なずれを学習値として学習し、少なくともフィードバック量及び学習値を用いた制御量の補正を行う。ここで「少なくとも」としたのは、上述したように水温センサ、大気圧センサ等からの各種入力信号に基づく補正を行うことが考えられるからである。
【００２３】
ここで特に本発明では、車両の運転終了時点が記憶手段に記憶される。運転終了時点は、例えば車両のイグニッションスイッチがオフされた時点とすることが考えられる。したがって、ここでいう記憶手段は、ＥＥＰＲＯＭ、フラッシュＲＯＭといった不揮発性のメモリ装置や、スタンバイＲＡＭといった、電源供給が常時なされるメモリ装置で実現される。
【００２４】
経過時間算出手段は、車両の運転開始時点に、記憶手段に記憶された運転終了時点からの経過時間を算出する。運転開始時点は、例えば車両のイグニッションスイッチがオンされた時点とすることが考えられる。
すると、学習速度設定手段が、経過時間算出手段にて算出された経過時間に基づき、学習値の学習速度を通常の学習速度よりも大きく設定する。学習速度を大きく設定するというのは、例えば請求項２に示すように、学習値の学習における学習更新量を大きくすることによって実現することが考えられる。また例えば請求項３に示すように、学習値の学習における学習値更新間隔を短くすることによって実現することが考えられる。
【００２５】
前者の場合、図４中に２点鎖線で示すように、期間［ｔ１，ｔ２］に応じて学習値の更新量を大きくする（更新量を記号Ｋで示した。）。この場合、２点鎖線で示すようにフィードバック量が基準値「０」の方向へ大きくスキップするため（時刻ｔ３参照）、期間［ｔ４，ｔ５］でフィードバック量が下限値に到達することがない。
【００２６】
一方、後者の場合、図６に２点鎖線で示すように、期間［ｔ１，ｔ２］に応じて学習値の更新間隔を短くする（更新間隔を記号Ｌで示した。）。この場合、フィードバック量が早いタイミングで学習値に反映されるため、２点鎖線で示すようにフィードバック量が基準値「０」の周辺を推移する。その結果、期間［ｔ４，ｔ５］でフィードバック量が下限値に到達することがない。
【００２７】
つまり、本発明では、学習値の学習速度を相対的に大きくすることによって、学習値が妥当でなくなる期間を極力短くする。これによって、フィードバック量が基準値から大きくずれることを防止でき、フィードバック量が上限値又は下限値となってしまう可能性を低減させることができる。その結果、例えば図４及び図６に示した期間［ｔ４，ｔ５］のような制御量が補正されない期間を低減させることができ、制御量の目標値への収束が遅れることを防止できる。すなわち、図４及び図６に２点鎖線で示すように、制御量は期間［ｔ４，ｔ５］においても目標値側へ補正され、速やかに目標値へ収束する。
【００２８】
なお、経過時間に基づく学習速度の設定は、例えば請求項４に示す構成にて行うことが考えられる。すなわち、さらに、経過時間と学習速度を設定するための速度設定情報との対応関係を記憶する対応関係記憶手段を備えることを特徴とするものである。この場合、学習速度設定手段は、対応関係記憶手段に記憶された対応関係を参照して学習速度を設定する。
【００２９】
ここで学習速度を設定するための速度設定情報は、学習速度そのものであってもよい。また、学習速度を設定する学習更新量や学習値更新間隔であることが考えられる。さらにまた、通常算出される学習更新量に所定の係数を乗じてより大きな学習更新量を算出する場合には、その係数値としてもよい。この対応関係は図３に例示される如くである。
【００３０】
上述したように経過時間が半年というように長い期間となると学習値が妥当でなくなる可能性が高くなる。したがって、本発明では、図３に示すように経過時間が所定時間Ｓを越えた場合に、学習速度を大きく設定することが考えられる。すなわち、請求項５に示すように、学習速度設定手段は、経過時間が所定時間を越えると、学習値の学習速度を大きく設定することが考えられる。なお、学習速度は、経過時間が長くなるほど大きくなるように設定されればよい。つまり、経過時間と速度設定情報（図３では学習速度係数）との関係は、広義の単調増加関数となればよい。すなわち、経過時間ａ＜ｂに対して学習速度ｆ（ａ）≦ｆ（ｂ）となればよい（ただし、任意のａ＜ｂに対し、ｆ（ａ）＝ｆ（ｂ）となる場合を除く。）。例えば経過時間に応じてステップ状に学習速度を大きくすることも考えられる。
【００３１】
ところで本発明は、経過時間（運転休止期間）に応じて通常の学習速度よりも学習速度を大きく設定するものであり、このため、学習値の更新量を大きくしたり、学習値の更新間隔を短くしたりした。しかし、学習値の更新量を大きなままとすると、その後の制御量の収束性が悪化する。目標値を境にして制御量が振動してしまうためである。一方、学習値の更新間隔を短いままとすると、その後に無駄な更新処理が増えることになる。学習される「定常的なずれ」の量は、短時間のうちに大きく変化するものではないからである。
【００３２】
そこで、請求項６に示すように、学習速度設定手段は、学習速度を大きく設定した場合は、当該設定した学習速度を、その後の適当な期間を経て通常の学習速度に戻すようにするとよい。例えばイグニッションスイッチがオンされた時点から一定時間だけ学習速度を大きく設定し、その一定時間が経過した後には、通常の学習速度に戻すという具合である。このとき、学習速度を徐々に小さくしていき、通常の速度に戻してもよい。なお、適当な期間は、一定の期間には限定されない。例えば学習速度に応じて決めるようにしてもよい。より大きな学習速度が設定された場合には、より長い期間を経て学習速度を通常の速度に戻すという具合である。このようにすれば、制御量の収束性が悪化したり、無駄な学習値の更新処理がなされたりすることがなくなる。
【００３３】
なお、このような車両制御装置の経過時間算出手段及び学習速度設定手段をコンピュータシステムにて実現する機能は、例えば、コンピュータシステム側で起動するプログラムとして備えることができる。このようなプログラムの場合、例えば、フロッピーディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ハードディスク等のコンピュータ読み取り可能な記録媒体に記録し、必要に応じてコンピュータシステムにロードして起動することにより用いることができる。この他、ＲＯＭやバックアップＲＡＭをコンピュータ読み取り可能な記録媒体として前記プログラムを記録しておき、このＲＯＭあるいはバックアップＲＡＭをコンピュータシステムに組み込んで用いてもよい。
【００３４】
【発明の実施の形態】
以下、本発明を具体化した一実施例を図面を参照して説明する。
図１は、車両に搭載される実施例のエンジン制御装置（以下「ＥＣＵ」という。）１の構成を示すブロック図である。
【００３５】
ＥＣＵ１は、マイクロコンピュータ１０を中心に、電源回路２１、入力回路２２、Ａ／Ｄ変換器２３及び出力回路２４を備えている。
マイクロコンピュータ１０は、車両に搭載されたエンジンを制御するための様々な処理を実行するＣＰＵ１１と、入力回路２２からの信号を入力する入力ポート１２と、出力回路２４への信号を出力する出力ポート１３と、ＣＰＵ１１により実行されるプログラム等を格納するＲＯＭ１４と、ＣＰＵ１１による制御演算結果などを一時的に記憶するＲＡＭ１５と、上述したＡ／Ｄ変換器２３とデータ交換を行うためのシリアル通信Ｉ／Ｆ（インターフェース）１６と、スタンバイＲＡＭ１７とを備えている。そして、ＣＰＵ１１、入力ポート１２、出力ポート１３、ＲＯＭ１４、ＲＡＭ１５、シリアル通信Ｉ／Ｆ１６及びスタンバイＲＡＭ１７は、互いにバス１８で接続されている。
【００３６】
ＥＣＵ１には、エンジン回転数ＮＥを検出する回転角センサ３３、車両の走行速度（車速）を検出するスピードセンサ３４、スロットル開度を検出するスロットルセンサ３５、大気圧を測定する大気圧センサ３６、エンジンの冷却水の温度を検出する水温センサ３７等の各種センサと、燃料噴射を行うインジェクタ３８、エンジン回転数を調整するＩＳＣバルブ３９等のアクチュエータが接続されている。
【００３７】
回転角センサ３３及びスピードセンサ３４からの信号は、上述した入力回路２２を介してマイクロコンピュータ１０の入力ポート１２からＣＰＵ１１へ入力される。一方、スロットルセンサ３５、大気圧センサ３６及び水温センサ３７からの信号は、上述したＡ／Ｄ変換器２３によってデジタル信号に変換され、マイクロコンピュータ１０のシリアル通信Ｉ／Ｆ１６を介してＣＰＵ１１へ入力される。また、上述した出力回路２４は、マイクロコンピュータ１０のＣＰＵ１１から出力ポート１３を介して出力される駆動信号に応じて、インジェクタ３８及びＩＳＣバルブ３９を作動させる。
【００３８】
電源回路２１は、車両のバッテリ３２からイグニッションスイッチ３１を介して供給されるイグニッション電圧を受けて、マイクロコンピュータ１０のＣＰＵ１１，入力ポート１２、出力ポート１３、ＲＯＭ１４，ＲＡＭ１５，シリアル通信Ｉ／Ｆ１６へ動作電圧を出力する。なお、スタンバイＲＡＭ１７には、バッテリ３２から電源供給が常時なされ、そのメモリ内容は、イグニッションスイッチ３１がオフされたときにも失われない。
【００３９】
このようなＥＣＵ１においては、イグニッションスイッチ３１がオン（投入）されると、電源回路２１からマイクロコンピュータ１０へ動作電圧が出力される。そして、ＣＰＵ１１が、ＲＯＭ１４に格納されたプログラムに基づきエンジン制御処理を実行して、回転角センサ３３、スピードセンサ３４、スロットルセンサ３５、大気圧センサ３６及び水温センサ３７等の各種センサからの入力信号に基づき、インジェクタ３８及びＩＳＣバルブ３９等のアクチュエータを作動させることにより、エンジンの制御を行う。
【００４０】
このエンジン制御処理においては、例えばエンジンの回転数や空燃比などを制御量として算出する。このとき、算出される制御量を設定された目標値に一致させるため、制御量の算出時には種々の補正が行われる。例えば大気圧センサ３６や水温センサ３７といった各種センサからの入力信号に基づく補正が行われる。また、時々刻々変化する環境に追従させて制御量を補正するために、算出された制御量と目標値とに基づきフィードバック量を算出する。さらに、制御量の目標値からの「定常的なずれ」を学習値として学習する。そして、センサ信号に基づく補正と共に、フィードバック量及び学習値に基づく補正を行うのが一般的である。
【００４１】
ＣＰＵ１１は、制御量の目標値からの「定常的なずれ」を表す学習値を、スタンバイＲＡＭ１７へ記憶し、イグニッションスイッチ３１のオフ中にも失われないようにしている。これによって、再度イグニッションスイッチ３１がオンされた時に、スタンバイＲＡＭ１７に記憶された学習値を読み出し、この学習値を用いて制御量を補正する。
【００４２】
次に、マイクロコンピュータ１０のＣＰＵ１１によって実行される制御量算出処理について説明する。ＣＰＵ１１は、エンジンに対する様々は制御を行うのであるが、ここでは、一般的な制御量の算出を例に挙げて説明する。
図２は、ＣＰＵ１１にて実行される制御量算出処理を示すフローチャートである。この制御量算出処理は、イグニッションスイッチ３１がオンされると、実行されるものである。
【００４３】
まず最初のステップＳ１００において、運転が休止されていた時間を経過時間として算出する。後述するように処理実行時の時刻（現在時刻）は、スタンバイＲＡＭ１７に繰り返し記憶される。したがって、イグニッションスイッチ３１がオフされた時には、その直前の時刻が記憶されている。そのため、ここでは、スタンバイＲＡＭ１７に記憶された時刻を読み出し、現在の時刻との差を経過時間として算出する。なお、スタンバイＲＡＭ１７が「記憶手段」に相当する。
【００４４】
続くＳ１１０では、学習速度係数Ｐを決定する。学習速度係数Ｐは、図３に示すマップに基づいて決定される。このマップは、経過時間と学習速度係数との対応関係を示すものであり、ＲＯＭ１４に予め記憶されている。したがって、ＲＯＭ１４が「対応関係記憶手段」に相当する。図３から分かるように、経過時間が所定の時間Ｓを越えると、学習速度係数Ｐは「１」よりも大きく設定され、またその場合に、経過時間が長くなるほど学習速度係数Ｐは大きく設定される。所定時間Ｓは例えば半年とすることが考えられる。
【００４５】
次のＳ１２０では、各補正係数を算出する。ここでは、各種センサからの信号に基づき、補正係数を算出する。図２中には、水温センサ３７からの信号に基づく温度補正係数ＴｍｐＣｍｐ、大気圧センサ３６からの信号に基づく気圧補正係数ＡｔｍＣｍｐを示した。またここでは、制御量及び目標値に基づき、フィードバック量ＦＢＣｍｐを算出する。本実施例では、制御量が目標値を上回っている場合には、フィードバック量ＦＢＣｍｐを一定割合で減少させ、逆に下回っている場合にはフィードバック量ＦＢＣｍｐを一定割合で増加させる。なお、フィードバック量は、制御量と目標値との偏差に基づき算出することも考えられる。
【００４６】
続くＳ１３０では、全補正量を算出する。すなわち、全補正量ＴｏｔａｌＣｍｐは、温度補正係数ＴｍｐＣｍｐ、気圧補正係数ＡｔｍＣｍｐ、フィードバック量ＦＢＣｍｐ、及び学習値Ａｄｐｔ等を加えて算出される。
そして、次のＳ１４０では、算出した全補正量を用いて、制御量を決定し、出力する。続くＳ１５０では、学習値更新量ΔＡｄｐｔを算出する。これはフィードバック量の基準値からのずれに基づいて算出することが考えられる。
【００４７】
次のＳ１６０では、学習値を更新する。すなわち、学習値Ａｄｐｔに対し学習更新量ΔＡｄｐｔと学習速度係数Ｐを乗じたものを加え、学習値Ａｄｐｔを更新する。
続くＳ１７０では、学習速度係数を更新する。ここでは学習速度係数Ｐから所定値ＤＥＣを減じて、学習速度係数Ｐを更新する。なお、このとき学習速度係数Ｐが「１」よりも小さくなった場合、学習速度係数Ｐを「１」とする。そして次のＳ１８０では、現在時刻をスタンバイＲＡＭ１７に記憶し、その後、Ｓ１２０へ移行してＳ１２０からの処理を繰り返す。
【００４８】
本実施例では、上述した制御量算出処理によって、経過時間に応じた学習速度係数Ｐが決定される（図２中のＳ１１０）。具体的には、経過時間が所定時間Ｓを越えて大きくなるにつれて、より大きな学習速度係数Ｐが設定される（図３参照）。そして、通常の更新量ΔＡｄｐｔにこの学習速度係数Ｐを乗じた量を加え、学習値Ａｄｐｔを更新する。すなわち、学習速度係数Ｐが「１」よりも大きくなると、学習値の更新量が大きくなり、学習速度が大きくなる。
【００４９】
具体例を挙げれば、図４に２点鎖線で示したように、学習値が大きく更新されることになる。このときの更新量を記号Ｋとして示した。これによって、図４中に示すようにフィードバック量が基準値「０」の方向へ大きく補正されるため（時刻ｔ３参照）、期間［ｔ４，ｔ５］でフィードバック量が下限値に到達することがない。その結果、制御量は期間［ｔ４，ｔ５］においても目標値に近づくように補正され、制御量の収束の遅れを防止することができる。
【００５０】
また、「１」より大きな値に設定された学習速度係数Ｐを用いると、すなわち、学習値の更新量を大きなままとすると、制御量が目標値を境にして振動し、その後の制御量の収束性が悪化する。
そこで、上述した制御量算出処理では、Ｓ１２０からの処理が繰り返されると、一度決定された学習速度係数Ｐは、所定値ＤＥＣずつ減じられて最終的に「１」に戻される（図２中のＳ１７０）。これによって、制御量の収束性の悪化を招くこともない。
【００５１】
なお、上述した制御量算出処理を実行するマイクロコンピュータ１０のＣＰＵ１１が「経過時間算出手段」及び「学習速度設定手段」に相当する。そして、図２中のＳ１００の処理が経過時間算出手段としての処理に相当し、Ｓ１１０、Ｓ１６０及びＳ１７０の処理が学習速度設定手段としての処理に相当する。
【００５２】
以上、本発明はこのような実施例に何等限定されるものではなく、本発明の主旨を逸脱しない範囲において種々なる形態で実施し得る。
（イ）例えば、上記実施例では、学習速度係数Ｐを決定することによって、学習値の更新量を変えるようにしていた。これに対して、別実施例として、学習値の更新間隔を短くする構成を採用することが考えられる。
【００５３】
この場合、制御量算出処理は、図５に示す如くとなる。図５に示す制御量算出処理を簡単に説明する。
まず経過時間を算出し（Ｓ２００）、この経過時間に基づき学習値の更新間隔を決定する（Ｓ２１０）。具体的には、経過時間が所定時間を越えると、経過時間に応じて更新間隔を短くする。次に、各補正係数を算出し（Ｓ２２０）、全補正量を算出して（Ｓ２３０）、制御量を決定し出力する（Ｓ２４０）。
【００５４】
そして、Ｓ２５０にて更新タイミングか否かを判断し、更新タイミングであれば（Ｓ２５０：ＹＥＳ）、学習値更新量ΔＡｄｐｔを算出し（Ｓ２６０）、学習値を更新する（Ｓ２７０）。一方、更新タイミングでなければ（Ｓ２５０：ＮＯ）、Ｓ２２０からの処理を繰り返す。
【００５５】
学習値が更新された場合、その後、更新間隔が通常の更新間隔となるまでは所定時間ずつ更新間隔を長くし（Ｓ２８０）、現在時刻を記憶して（Ｓ２９０）、その後、Ｓ２２０へ移行する。
このような制御量算出処理によれば、経過時間に応じた学習値更新間隔が決定される（図５中のＳ２１０）。具体的には、経過時間が所定時間を越えて大きくなるにつれて、学習値更新間隔はより短く設定される。そして、更新タイミングとなったことを判断し（Ｓ２５０：ＹＥＳ）、学習値を更新する（Ｓ２６０，Ｓ２７０）。すなわち、学習値更新間隔が短くなると、学習速度が大きくなる。
【００５６】
つまり、具体例を挙げれば、図６に示すように、経過時間としての期間［ｔ１，ｔ２］が半年というように長くなると、学習値の更新間隔Ｌが通常よりも短く設定される。これによって、図６中に２点鎖線で示すようにフィードバック量が基準値「０」の周辺を推移することになるため、期間［ｔ４，ｔ５］でフィードバック量が下限値に到達することがない。その結果、制御量は期間［ｔ４，ｔ５］においても目標値に近づくように補正されるため、制御量の収束の遅れを防止することができる。
【００５７】
また、学習値の更新間隔を短いままとすると、学習される「定常的なずれ」の量は、短時間のうちに大きく変化するものではないため、その後に無駄な学習値の更新処理が増えることになる。
そこで、図５に示す制御量算出処理では、Ｓ２２０からの処理が繰り返されると、一度決定された学習値更新間隔は、所定時間ずつ長くなるように更新され、最終的に通常の更新間隔に戻される（Ｓ２８０）。これによって、無駄な更新処理が増えることもない。
【００５８】
なお、この別実施例においても、マイクロコンピュータ１０のＣＰＵ１１が「経過時間算出手段」及び「学習速度設定手段」に相当する。そして、図５中のＳ２００の処理が経過時間算出手段としての処理に相当し、Ｓ２１０、Ｓ２５０及びＳ２８０の処理が学習速度設定手段としての処理に相当する。
【００５９】
（ロ）上記実施例では、スタンバイＲＡＭ１７に車両のイグニッションスイッチ３１がオフされた時刻（詳しくはオフされる直前の時刻）を「運転終了時点」の時刻として記憶している。このスタンバイＲＡＭ１７に代え、ＥＥＰＲＯＭやフラッシュＲＯＭを用いてもよい。
【００６０】
（ハ）また、上記実施例では、経過時間（運転休止期間）が所定時間を越えると一定の割合で学習速度を大きくしていたが（図３参照）、経過時間に対する学習値のずれ具合に合わせて設定すればよい。例えば経過時間が所定時間を越えた場合に一律に学習速度を大きくするようにしてもよい。また例えば、指数関数的に学習速度を大きくするようにしてもよい。
【図面の簡単な説明】
【図１】実施例のエンジン制御装置の構成を示すブロック図である。
【図２】実施例の制御量算出処理を示すフローチャートである。
【図３】実施例における経過時間と学習速度係数との対応を示す説明図である。
【図４】制御量とフィードバック量と学習値との対応させて例示するタイミングチャートである。
【図５】別実施例の制御量算出処理を示すフローチャートである。
【図６】制御量とフィードバック量と学習値とを対応させて例示するタイミングチャートである。
【図７】従来の構成において制御量とフィードバック量と学習値との関係を対応させて例示するタイミングチャートである。
【図８】従来の構成において学習値を記憶した場合の効果を示す説明図である。
【符号の説明】
１…エンジン制御装置
１０…マイクロコンピュータ    １１…ＣＰＵ
１２…入力ポート              １３…出力ポート
１４…ＲＯＭ                  １５…ＲＡＭ
１６…シリアル通信Ｉ／Ｆ      １７…スタンバイＲＡＭ
２１…電源回路                ２２…入力回路
２３…Ａ／Ｄ変換器            ２４…出力回路
３１…イグニッションスイッチ  ３２…バッテリ
３３…回転角センサ            ３４…スピードセンサ
３５…スロットルセンサ        ３６…大気圧センサ
３７…水温センサ              ３８…インジェクタ
３９…ＩＳＣバルブ
【図１】
0004134475.tif 000002
【図２】
0004134475.tif 000003
【図３】
0004134475.tif 000004
【図４】
0004134475.tif 000005
【図５】
0004134475.tif 000006
【図６】
0004134475.tif 000007
【図７】
0004134475.tif 000008
【図８】
0004134475.tif 000009