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