(57)【要約】【課題】可変バルブタイミング装置の油圧制御弁の制御信号（デューティ値）の変化に対するバルブタイミング制御の応答性を向上させる。【解決手段】目標バルブタイミングと実バルブタイミングの偏差に基づいてデューティ値を算出する。このデューティ値を電流値に変換する際に用いるマップは、不感帯に相当する電流値領域（作動油供給流量がほぼ０となる電流値付近）で、デューティ値に対する電流値の変化率（制御ゲイン）が大きくなり、不感帯の外側に相当する電流値領域で、デューティ値に対する電流値の変化率が小さくなるように設定されている。これにより、作動油供給流量がほぼ０となる保持デューティ値付近で、デューティ値が変化するときでも、デューティ値の変化に対する油圧制御弁の不感帯領域の流量応答性を向上させることができ、デューティ値の変化に対するバルブタイミング制御の応答性を向上させることができる。【選択図】図１８
2007107539.tif 000002
【特許請求の範囲】
【請求項１】
内燃機関の吸気バルブ及び／又は排気バルブのバルブタイミング、リフト量、作用角等の少なくとも１つを可変する可変バルブ装置と、
前記可変バルブ装置の駆動油圧を制御する油圧制御弁と、
前記油圧制御弁を制御するための制御信号を出力する制御手段とを備え、
前記油圧制御弁は、一部の制御領域に前記制御信号の変化に対して応答性が遅いか又はほとんど応答しない制御領域（以下「不感帯」という）を有する非線形の制御特性を持ち、
前記制御手段は、前記制御信号が前記不感帯内のときに制御ゲインを大きくすることを特徴とする制御装置。
【請求項２】
前記制御手段は、油温、機関温度、油圧、機関回転速度のうちの少なくとも１つ又はそれと相関関係のあるパラメータに応じて前記制御ゲインの補正量を可変することを特徴とする請求項１に記載の制御装置。
【請求項３】
内燃機関の吸気バルブ及び／又は排気バルブのバルブタイミング、リフト量、作用角等の少なくとも１つ（以下「バルブ可変量」という）をバルブ可変制御する可変バルブ装置と、
前記可変バルブ装置の駆動油圧を制御する油圧制御弁と、
前記油圧制御弁を制御するための制御信号を出力する制御手段とを備え、
前記油圧制御弁は、一部の制御領域に前記制御信号の変化に対して応答性が遅いか又はほとんど応答しない制御領域（以下「不感帯」という）を有する非線形の制御特性を持ち、
前記制御信号の変化に対するバルブ可変制御の応答性を検出する応答性検出手段と、
前記応答性検出手段で検出したバルブ可変制御の応答性が急変したときの制御信号に基づいて前記不感帯を学習する不感帯学習手段と
を備えていることを特徴とする制御装置。
【請求項４】
前記制御手段は、前記バルブ可変量の目標値が変化したときに、前記不感帯学習手段で学習した前記不感帯の幅に応じて前記制御信号をオフセットすることを特徴とする請求項３に記載の制御装置。
【請求項５】
内燃機関の吸気バルブ及び／又は排気バルブのバルブタイミング、リフト量、作用角等の少なくとも１つ（以下「バルブ可変量」という）を可変する可変バルブ装置と、
前記可変バルブ装置の駆動油圧を制御する油圧制御弁と、
前記油圧制御弁を制御するための制御信号を出力する制御手段とを備え、
前記油圧制御弁は、一部の制御領域に前記制御信号の変化に対して応答性が遅いか又はほとんど応答しない制御領域（以下「不感帯」という）を有する非線形の制御特性を持ち、
前記制御手段は、前記バルブ可変量の目標値が変化したときに、前記制御信号を前記不感帯の幅に応じてオフセットすることを特徴とする制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一部の制御領域に制御信号の変化に対して応答性が遅いか又はほとんど応答しない制御領域（以下「不感帯」という）を有する非線形の制御特性の制御対象を制御する制御装置に関するものである。
【背景技術】
【０００２】
近年、車両に搭載される内燃機関においては、出力向上、燃費節減、排気エミッション低減等を目的として、吸気バルブや排気バルブのバルブタイミング、リフト量、作用角等を可変する可変バルブ装置を採用したものが増加しつつある。例えば、バルブタイミングを可変制御する可変バルブタイミング装置（特開平７−１９０７３号公報、特開平８−７４５３０号公報、特開平８−１０９８４０号公報参照）では、エンジン制御回路で目標バルブタイミングと実バルブタイミングとの偏差に基づいて制御信号であるデューティ値（電流値）を算出し、そのデューティ値によって油圧制御弁を駆動して可変バルブタイミング装置の進角室や遅角室に供給する作動油の流量（油圧）を変化させることで、バルブタイミングを進角又は遅角させるようにしている。
【特許文献１】特開平７−１９０７３号公報
【特許文献２】特開平８−７４５３０号公報
【特許文献３】特開平８−１０９８４０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
一般に、図２６（ａ）に示すように、油圧制御弁の作動油供給流量特性には、作動油供給流量がほぼ０となるデューティ値（現在のバルブタイミングを保持する保持デューティ値）付近に、デューティ値の変化に対する作動油供給流量の応答性が極端に遅いか又はほとんど応答しない不感帯が存在する。このため、図２６（ｂ）に示すように、可変バルブタイミング装置のバルブタイミング変化速度特性にも、現在のバルブタイミングを保持する保持デューティ値Ｄｈ付近に、デューティ値の変化に対するバルブタイミングの応答性が極端に遅いか又はほとんど応答しない不感帯が存在する。
【０００４】
このため、実バルブタイミングが一定に保持されている状態で目標バルブタイミングが変化したときに、それに応じてデューティ値を保持デューティ値Ｄｈから進角方向又は遅角方向に変化させても、保持デューティ値Ｄｈ付近に存在する不感帯を抜けるまでは実バルブタイミングの動きが鈍くなり、これがバルブタイミング制御の応答性を遅くする要因となっている。更に、このバルブタイミングの応答遅れを補正するためにフィードバック制御によってデューティ値を大きく補正した状態で不感帯を抜けると、その近くに目標バルブタイミングが存在する場合は、実バルブタイミングが目標バルブタイミングを通り越して過剰に進角又は遅角されてしまうおそれもある。このため、目標バルブタイミングの変化に追従して実バルブタイミングを目標バルブタイミングに応答良く収束させることができず、ドライバビリティや排気エミッションが悪化するおそれがある。
【０００５】
本発明はこのような事情を考慮してなされたものであり、従ってその目的は、制御信号が不感帯領域で変化するときの制御対象の応答性を向上させることができる制御装置を提供することにある。
【課題を解決するための手段】
【０００６】
上記目的を達成するために、請求項１に係る発明は、内燃機関の吸気バルブ及び／又は排気バルブのバルブタイミング、リフト量、作用角等の少なくとも１つを可変する可変バルブ装置と、前記可変バルブ装置の駆動油圧を制御する油圧制御弁と、前記油圧制御弁を制御するための制御信号を出力する制御手段とを備え、前記油圧制御弁は、一部の制御領域に前記制御信号の変化に対して応答性が遅いか又はほとんど応答しない制御領域（以下「不感帯」という）を有する非線形の制御特性を持ち、前記制御手段は、前記制御信号が前記不感帯内のときに制御ゲインを大きくするようにしたものです。つまり、制御ゲインを大きくすると、応答性を速くする効果が得られるので、制御信号が不感帯内のときに、制御ゲインを大きくすれば、制御信号の変化に対する油圧制御弁の不感帯領域の流量応答性、ひいてはバルブ可変制御の応答性を向上させることができる。
【０００７】
この場合、請求項２のように、油温、機関温度、油圧、機関回転速度のうちの少なくとも１つ又はそれと相関関係のあるパラメータに応じて制御ゲインの補正量を可変するようにしても良い。このようにすれば、油温（作動油の粘度）や油圧に応じて油圧制御弁の流量応答性が変化するのに対応して、制御ゲインを適正値に設定することができ、油温や油圧の変化の影響を受けない安定したバルブ可変制御が可能となる。
【０００８】
一方、制御信号を振動させない場合は、制御信号が不感帯の上限値や下限値を通過するときに、バルブ可変制御の応答性が急変するので、請求項３のように、制御信号の変化に対するバルブ可変制御の応答性を応答性検出手段で検出し、バルブ可変制御の応答性が急変したときの制御信号に基づいて不感帯を不感帯学習手段で学習するようにしても良い。このように、制御信号に対するバルブ可変制御の応答性が急変したときの制御信号を、不感帯の上限値又は下限値と見なして学習することによって、不感帯を精度良く学習することができる。
【０００９】
この際、請求項４のように、バルブ可変量の目標値が変化したときに、それまでに学習した不感帯の幅に応じて制御信号をオフセットするようにしても良い。このようにすれば、バルブ可変量の目標値が変化したときに、直ちに制御信号を不感帯の境界付近又は外側領域にオフセットして、バルブ可変量を目標値の変化に応答良く追従させて変化させることができる。
【００１０】
尚、不感帯を学習する手段を省いたシステムでは、予め実験データや設計データ等から求めた不感帯を用いて、バルブ可変量の目標値が変化したときに、該不感帯の幅に応じて制御信号をオフセットするようにしても良い（請求項５）。この場合、不感帯を学習する場合よりも不感帯の精度が低下するが、バルブ可変量の目標値が変化したときに、制御信号を該不感帯の幅に応じてオフセットすれば、従来よりもバルブ可変量を応答良く変化させることができる。
【発明を実施するための最良の形態】
【００１１】
［実施形態（１）］
以下、本発明を内燃機関の可変バルブタイミング制御装置に適用した実施形態（１）を図１乃至図９に基づいて説明する。まず、図１に基づいてシステム全体の概略構成を説明する。内燃機関であるエンジン１１は、クランク軸１２からの動力がタイミングチェーン１３（又はタイミングベルト）により各スプロケット１４，１５を介して吸気側カム軸１６と排気側カム軸１７とに伝達されるようになっている。但し、吸気側カム軸１６には、クランク軸１２に対する吸気側カム軸１６の回転位相（カム軸位相）を変化させて吸気バルブ（図示せず）のバルブタイミング（バルブ可変量）を可変する可変バルブタイミング装置１８が設けられている。この可変バルブタイミング装置１８の油圧回路には、オイルパン１９内の作動油がオイルポンプ２０により供給され、その油圧を油圧制御弁２１で制御することで、吸気バルブのバルブタイミングが制御される。
【００１２】
また、吸気側カム軸１６の外周側には、気筒判別のために複数のカム角でカム角信号を出力するカム角センサ２２が設置され、一方、クランク軸１２の外周側には、所定クランク角毎にクランク角信号を出力するクランク角センサ２３が設置されている。これらカム角センサ２２及びクランク角センサ２３の出力信号は、エンジン制御回路（以下「ＥＣＵ」と表記する）２４に入力され、このＥＣＵ２４によって吸気バルブの実バルブタイミングが演算されると共に、クランク角センサ２３の出力パルスの周波数からエンジン回転速度が演算される。
【００１３】
また、図示しない各種センサ（スロットルセンサ、吸気管圧力センサ、冷却水温センサ等）の出力信号もＥＣＵ２４に入力される。このＥＣＵ２４は、これら各種の入力信号に基づいて燃料噴射制御や点火制御を行うと共に、バルブタイミング制御を行い、吸気バルブの実バルブタイミング（吸気側カム軸１６の実カム軸位相）を目標バルブタイミング（吸気側カム軸１６の目標カム軸位相）に一致させるように可変バルブタイミング装置１８（油圧制御弁２１）をフィードバック制御する。
【００１４】
次に、図１及び図２に基づいて可変バルブタイミング装置１８の構成を説明する。図２に示すように、可変バルブタイミング装置１８のハウジング２５は、吸気側カム軸１６の外周に回動自在に支持されたスプロケット１４にボルト２６で締め付け固定されている。これにより、クランク軸１２の回転がタイミングチェーン１３を介してスプロケット１４とハウジング２５に伝達され、スプロケット１４とハウジング２５がクランク軸１２と同期して回転する。一方、吸気側カム軸１６の一端部には、ロータ２７がストッパ２８を介してボルト２９で締め付け固定されている。このロータ２７は、ハウジング２５内に相対回動自在に収納されている。
【００１５】
図１に示すように、ハウジング２５の内部には、複数の流体室３０が形成され、各流体室３０が、ロータ２７の外周部に形成されたベーン３１によって進角室３２と遅角室３３とに区画されている。
【００１６】
また、図２に示すように、エンジン１１の動力でオイルポンプ２０が駆動されることにより、オイルパン１９から汲み上げた作動油が油圧制御弁２１を介して吸気側カム軸１４の進角溝３４や遅角溝３５に供給される。進角溝３４に接続された進角油路３６は、各進角室３２に連通している。一方、遅角溝３５に接続された遅角油路３７は、各遅角室３３に連通している。
【００１７】
進角室３２と遅角室３３に所定圧以上の油圧が供給された状態では、進角室３２と遅角室３３の油圧でベーン３１が固定されて、クランク軸１２の回転によるハウジング２５の回転が作動油を介してロータ２７（ベーン３１）に伝達され、ロータ２７と一体的に吸気側カム軸１６が回転駆動される。
【００１８】
油圧制御弁２１は、リニアソレノイド３８に供給される電流に応じて弁体３９を駆動して各油圧ポートの開度を連続的に変えることによって、各進角室３２及び各遅角室３３に供給する作動油量を増減する。これにより、ハウジング２５とロータ２７（ベーン３１）とを相対回動させることで、クランク軸１２に対する吸気側カム軸１６の回転位相（カム軸位相）を変化させて吸気バルブのバルブタイミングを可変する。
【００１９】
エンジン運転中、ＥＣＵ２４は、吸気バルブの実バルブタイミングＶＴ（吸気側カム軸１６の実カム軸位相）を目標バルブタイミングＶＴtg（吸気側カム軸１６の目標カム軸位相）に一致させるように、次のようにして可変バルブタイミング装置１８の油圧制御弁２１をフィードバック制御する。
【００２０】
まず、吸気バルブの目標バルブタイミングＶＴtgと実バルブタイミングＶＴとの偏差Ｅrrorに基づいてＰＤ制御等によってフィードバック補正値Ｄｆを算出し、このフィードバック補正値Ｄｆを保持デューティ値Ｄｈ（現在のバルブタイミングを保持するデューティ値）に加算して、制御信号であるデューティ値Ｄｕｔｙを求める（Ｄｕｔｙ＝Ｄｆ＋Ｄｈ）。そして、このデューティ値Ｄｕｔｙに対応する電流を油圧制御弁２１のリニアソレノイド３８に供給する。これにより、進角室３２と遅角室３３に供給する作動油量を制御して、カム軸位相を変化させて吸気バルブの実バルブタイミングＶＴを目標バルブタイミングＶＴtgに一致させる。
【００２１】
一般に、図２６（ａ）に示すように、油圧制御弁２１の作動油供給流量特性には、作動油供給流量がほぼ０となるデューティ値（電流値）付近に、デューティ値Ｄｕｔｙの変化に対する作動油供給流量の応答性が極端に遅いか又はほとんど応答しない不感帯が存在する。このため、図２６（ｂ）に示すように、可変バルブタイミング装置１８のバルブタイミング変化速度特性にも、現在のバルブタイミングを保持する保持デューティ値Ｄｈ付近に、デューティ値Ｄｕｔｙの変化に対するバルブタイミング制御の応答性が極端に遅いか又はほとんど応答しない不感帯が存在する。
【００２２】
そこで、ＥＣＵ２４は、不感帯の影響を小さくするために、図３に示すように、デューティ値Ｄｕｔｙを所定のデューティ振幅ｄ（好ましくは不感帯の幅の半分以上のデューティ振幅）で振動させる。これにより、デューティ値Ｄｕｔｙが不感帯領域で変化するときに、デューティ値Ｄｕｔｙの振動範囲を不感帯の内側と外側の両方の領域に跨がらせながらデューティ値Ｄｕｔｙを変化させることができると共に、デューティ値Ｄｕｔｙの変化に応じて不感帯外側の応答性の良い領域へのデューティ値Ｄｕｔｙのはみ出し量を変化させて応答性を確保することができる。これにより、デューティ値Ｄｕｔｙが不感帯領域で変化するときでも、不感帯の影響をあまり受けずに、デューティ値Ｄｕｔｙの変化に対して油圧制御弁２１の作動油供給流量を応答良く変化さることができ、図４に示すように、デューティ値Ｄｕｔｙの変化に対して可変バルブタイミング装置１８のバルブタイミング変化速度を応答良く直線的に変化させることができる。
【００２３】
以上説明したバルブタイミング制御は、ＥＣＵ２４によって図５及び図６の各プログラムに従って実行される。以下、これら各プログラムの処理内容を説明する。図５のバルブタイミング制御プログラムは、所定時間毎又は所定クランク角毎に繰り返し実行され、特許請求の範囲でいう制御手段としての役割を果たす。
【００２４】
本プログラムが起動されると、まず、ステップ１０１で、各種センサの出力信号を取り込んだ後、ステップ１０２に進み、現在の吸気バルブの実バルブタイミングＶＴを算出する。尚、後述するデューティ値振動制御によってバルブタイミングを振動させるときには、その振動中心値を実バルブタイミングＶＴとして算出する。この後、ステップ１０３に進み、運転状態に基づいて吸気バルブの目標バルブタイミングＶＴtgを算出し、次のステップ１０４で、目標バルブタイミングＶＴtgと実バルブタイミングＶＴとの偏差Ｅrror（＝ＶＴtg−ＶＴ）を算出する。
【００２５】
この後、ステップ１０５に進み、目標バルブタイミングＶＴtgと実バルブタイミングＶＴとの偏差Ｅrrorに基づいてＰＤ制御演算を行うことによりフィードバック補正値Ｄｆを次式により算出する。
Ｄｆ＝Ｋp ・Ｅrror＋Ｋd ・ｄ（Ｅrror）／ｄｔ
ここで、ｄ（Ｅrror）／ｄｔ＝［Ｅrror(i) −Ｅrror(i-1) ］／ｄｔであり、ｄｔは検出周期、Ｋp は比例項、Ｋd は積分項である。
【００２６】
この後、ステップ１０６に進み、フィードバック補正値Ｄｆに保持デューティ値Ｄｈを加算して、デューティ値Ｄｕｔｙを求める。
Ｄｕｔｙ＝Ｄｆ＋Ｄｈ
デューティ値Ｄｕｔｙの算出後、ステップ１０７に進み、デューティ値Ｄｕｔｙを振動させる際のデューティ振幅ｄを算出する。このデューティ振幅ｄは、不感帯の幅の半分以上の値に設定され、デューティ値Ｄｕｔｙの振動範囲の幅が不感帯の幅以上となるようになっている。
【００２７】
この場合、デューティ振幅ｄは、演算処理の簡略化のために、予め設定した固定値としても良いが、図８に示すデューティ振幅のマップを検索して、現在の油温に応じたデューティ振幅ｄを算出するようにしても良い。
【００２８】
一般に、図７に示すように、油温が高くなると、作動油の粘度が低くなる（流動性が良くなる）ため、可変バルブタイミング装置１８（油圧制御弁２１）の不感帯の幅が小さくなる。このような特性を考慮して、図８のデューティ振幅ｄのマップは、油温が高くなるほどデューティ振幅ｄが小さくなるように設定されている。これにより、デューティ値Ｄｕｔｙの振動範囲の幅を不感帯の幅以上に設定しながら、デューティ値Ｄｕｔｙの振動範囲の幅が必要以上に大きくなることを回避するようにしている。
【００２９】
尚、油温は、油温センサで検出しても良いが、運転状態等から推定するようにしても良い。また、油温の代わりに、機関温度、冷却水温、始動後経過時間等の油温と相関関係のあるパラメータに応じてデューティ振幅ｄを算出するようにしても良い。
【００３０】
デューティ振幅ｄの算出後、ステップ１０８に進み、デューティ値振動制御を実施して、デューティ値Ｄｕｔｙを、上記ステップ１０６で算出したデューティ値Ｄｕｔｙを中心にして、デューティ振幅ｄ、所定振動周期で振動させる。
Ｄｕｔｙ＝Ｄｕｔｙ±ｄ
これにより、油圧制御弁２１のリニアソレノイド３８には、デューティ値Ｄｕｔｙに応じた電流が供給され、且つ、その供給電流がデューティ値Ｄｕｔｙの振動に伴って振動する。
【００３１】
この後、ステップ１０９に進み、スタータ信号がオンか否か、つまり始動時であるか否かを判断し、始動時であれば、後述する学習処理を行なうことなく、ステップ１１１に進んで、今回の保持デュ−ティ値Ｄｈ(i) として、前回走行時の保持デュ−ティ値Ｄｈを用いてバルブタイミング制御を継続する。
【００３２】
一方、始動時でなければ、ステップ１１０に進んで、油温（又は水温）が所定温度Ｔ（℃）以上であるか否かを判断し、油温（又は水温）が所定温度Ｔ（℃）よりも低ければ、上述した始動時の場合と同じく、後述する学習処理は行わず、ステップ１１１に進み、今回の保持デュ−ティ値Ｄｈ(i) として、前回走行時の保持デュ−ティ値Ｄｈを用いてバルブタイミング制御を継続する。
【００３３】
これ以外の場合、つまり、始動時でなく、且つ油温（又は水温）が所定温度Ｔ（℃）以上である場合は、ステップ１１２に進み、後述する図６の保持デューティ値学習プログラムを実行して保持デューティ値Ｄｈを学習した後、本プログラムを終了する。
【００３４】
一方、図５のステップ１１２で実行される図６の保持デューティ値学習プログラムでは、まず、ステップ２０１で、基準設定の有無、つまり後述する基準設定フラグのオン／オフを判断し、基準設定がなければ、ステップ２０２に進んで、学習条件成立判定用の基準値（目標バルブタイミング基準値ＢＶＴtg、実バルブタイミング基準値ＢＶＴ）を次のようにして設定する。
(1) 目標バルブタイミングＶＴtgを目標バルブタイミング基準値ＢＶＴtgに入力する。  (2) 実バルブタイミングＶＴを実バルブタイミング基準値ＢＶＴに入力する。
【００３５】
(3) 基準設定フラグをオンに設定する。
このようにして学習条件成立判定用の基準値ＢＶＴtg、ＢＶＴを設定した後、ステップ２０３に進み、連続時間カウンタＣ１に“０”を入力する（リセットする）。この後、ステップ２０４に進み、学習条件成立判定用の学習中フラグをオフすると共に、デューティ値Ｄｕｔｙの記憶値を消去する。
【００３６】
基準設定フラグのオン後は、ステップ２０１で、基準設定有りと判定されて、ステップ２０５に進み、学習中フラグがオンか否か、つまり学習条件が成立しているか否かを判定し、学習条件が成立していなければ、ステップ２０６に進んで、目標バルブタイミングＶＴtgがほぼ一定であるか否か、つまり目標バルブタイミング基準値ＢＶＴtgに対する目標バルブタイミングＶＴtgの変動幅が微小範囲ΔＶＴtg内であるか否かを次式により判定する。
｜ＶＴtg−ＢＶＴtg｜≦ΔＶＴtg
【００３７】
もし、目標バルブタイミングＶＴtgがほぼ一定でなければ、前述したステップ２０２に進んで、学習条件成立判定用の基準値ＢＶＴtg、ＢＶＴを設定する。
これに対し、目標バルブタイミングＶＴtgがほぼ一定と判定されれば、ステップ２０７に進んで、実バルブタイミングＶＴがほぼ一定であるか否か、つまり実バルブタイミング基準値ＢＶＴに対する実バルブタイミングＶＴの変動幅が微小範囲ΔＶＴであるか否かを次式により判定する。
｜ＶＴ−ＢＶＴ｜≦ΔＶＴ
【００３８】
もし、実バルブタイミングＶＴがほぼ一定でなければ、前述したステップ２０２に進んで、学習条件成立判定用の基準値ＢＶＴtg、ＢＶＴを設定する。従って、目標バルブタイミングＶＴtgと実バルブタイミングＶＴのいずれか一方でもほぼ一定でなければ、学習条件成立判定用の基準値ＢＶＴtg、ＢＶＴを設定することになる。
【００３９】
これに対し、ステップ２０６、２０７において、目標バルブタイミングＶＴtg及び実バルブタイミングＶＴが、いずれもほぼ一定であると判定された場合は、以下のステップに従って保持デュ−ティ値Ｄｈの学習を実行して、目標バルブタイミングＶＴtg及び実バルブタイミングＶＴの値が、所定時間ほぼ一定であるときに、その時のデューティ値Ｄｕｔｙを新しい保持デュ−ティ値Ｄｈとして学習する。
【００４０】
この保持デュ−ティ値Ｄｈの学習は、まず、ステップ２０８で、目標バルブタイミングＶＴtg及び実バルブタイミングＶＴの双方がほぼ一定値を維持する継続時間Ｍ１を連続時間カウンタＣ１により計測し、この連続時間カウンタＣ１の値（継続時間Ｍ１）が所定時間ｔ１に到達している場合にのみ目標バルブタイミングＶＴtg及び実バルブタイミングＶＴの定常状態が判定可能として学習中フラグをオンし（ステップ２０９）、学習処理を開始する（ステップ２１０）。一方、継続時間Ｍ１が所定時間ｔ１に達していない場合には学習処理を行わずに本プログラムを終了する。
【００４１】
学習処理は、まず、定常状態の判定が可能になったときに、その時点のデューティ値Ｄｕｔｙを記憶し（ステップ２０９、２１０）、連続時間カウンタＣ２に“０”を入力する（ステップ２１１）。この後、実バルブタイミングＶＴがほぼ一定値を維持する継続時間Ｍ２を連続時間カウンタＣ２により計測し、この連続時間カウンタＣ２の値（継続時間Ｍ２）が所定時間ｔ２に到達すると、ステップ２１３の判定が「Ｙｅｓ」となり、前記ステップ２１０で記憶したデューティ値Ｄｕｔｙで実バルブタイミングＶＴが変わらないことが確認できたとして、ステップ２１４に進み、前記ステップ２１０で記憶したデューティ値Ｄｕｔｙを新たな保持デューティ値Ｄｈとして学習する。
【００４２】
尚、上述したステップ２１３で判断する所定時間ｔ２は、出力されたデューティ値Ｄｕｔｙに対する実バルブタイミングＶＴの応答遅れ時間以上の時間とする。上述したステップ２１４で新しい学習値Ｄｈの算出を終了すると、ステップ２１５に進み、基準設定フラグをオフに設定して学習処理を終了する。
【００４３】
この学習処理は、バルブタイミング制御中に行うため、学習処理開始後に、実バルブタイミング基準値ＢＶＴに対する実バルブタイミングＶＴの変動幅がΔＶＴよりも大きくなることがあり、学習条件を外れることもある。このような場合には、ステップ２１２の判定が「Ｎｏ」となり、学習処理を中止して、最初の学習処理を開始する条件の設定（ステップ２０２）から再開する。
【００４４】
以上説明した本実施形態（１）のバルブタイミング制御では、デューティ値Ｄｕｔｙを所定のデューティ振幅ｄで振動させるようにしたので、デューティ値Ｄｕｔｙが不感帯領域で変化するときでも、デューティ値Ｄｕｔｙの変化に対して油圧制御弁２１の作動油供給流量を応答良く変化さることができ、図４に示すように、デューティ値Ｄｕｔｙの変化に対して可変バルブタイミング装置１８のバルブタイミング変化速度を応答良く直線的に変化させることができる。これにより、図９に示すように、目標バルブタイミングの変化時に、デューティ値Ｄｕｔｙを保持デューティ値Ｄｈ（不感帯の中心付近）から進角方向又は遅角方向に変化させたときに、実バルブタイミングを目標バルブタイミングの変化に応答良く追従させて変化させることができ、ドライバビリティや排気エミッションを向上することができる。
【００４５】
この場合、デューティ値Ｄｕｔｙの振動範囲の幅が不感帯の幅よりも小さいと、デューティ値Ｄｕｔｙの振動中心値が不感帯の中心付近にあるときに、デューティ値Ｄｕｔｙの振動範囲全体が不感帯内に入ってしまい、デューティ値Ｄｕｔｙの振動が不感帯の外側の応答性の良い領域へはみ出さないため、不感帯の中心付近でバルブタイミングの応答性が低下する。
【００４６】
その点、本実施形態（１）では、デューティ値Ｄｕｔｙを不感帯の幅の半分以上のデューティ振幅ｄで振動させるようにしているので、デューティ値Ｄｕｔｙの振動範囲の幅を不感帯の幅以上とすることができ、デューティ値Ｄｕｔｙの振動中心値が不感帯の中心付近にあるときでも、デューティ値Ｄｕｔｙの振動範囲を不感帯の外側の応答性の良い領域へはみ出させることができ、バルブタイミング制御の応答性を確保することができる。
【００４７】
しかしながら、本発明は、デューティ値Ｄｕｔｙの振幅を不感帯の幅の半分より小さくしても良く、この場合でも、従来と比較すれば、バルブタイミングの応答性を向上させることができる。
【００４８】
また、本実施形態（１）では、油温が高くなるほど可変バルブタイミング装置１８（油圧制御弁２１）の不感帯の幅が小さくなることを考慮して、油温が高くなるほどデューティ値Ｄｕｔｙのデューティ振幅ｄを小さく設定するようにしたので、デューティ値Ｄｕｔｙの振動範囲の幅を不感帯の幅以上に設定しながら、デューティ値Ｄｕｔｙの振動範囲の幅が必要以上に大きくなることを回避することができ、デューティ値Ｄｕｔｙの振動範囲の幅が必要以上に大きくなってバルブタイミングを振動させてしまう事態を回避することができる。
【００４９】
［実施形態（２）］
次に、本発明の実施形態（２）を図１０及び図１１を用いて説明する。上記実施形態（１）では、デューティ値Ｄｕｔｙの振動中心値が変化してもデューティ振幅ｄを変化させなかったが、本実施形態（２）では、図１０に示すマップによってデューティ値Ｄｕｔｙの振動中心値に応じてデューティ振幅ｄを変化させるようにしている。図１０のマップは、デューティ値Ｄｕｔｙの振動中心値が保持デューティ値Ｄｈ付近（不感帯の中心付近）のときにデューティ振幅ｄが最大値（好ましくは不感帯の幅の半分以上）となり、デューティ値Ｄｕｔｙの振動中心値が保持デューティ値Ｄｈ付近（不感帯の中心付近）から遠ざかるほどデューティ振幅ｄが小さくなるように設定されている。不感帯の外側の領域は、本来的に応答性の良い制御領域であるため、デューティ値Ｄｕｔｙを振動させなくても、バルブタイミング制御の応答性を十分に確保できるためである。また、不感帯の外側の応答性の良い領域でデューティ振幅ｄが大きくなりすぎると、実バルブタイミングが振動するおそれがあり、これを避けるために、不感帯の外側の応答性の良い領域でデューティ振幅ｄを小さくするものである。
【００５０】
更に、バルブタイミングの変化速度を最大とするデューティ値Ｄｕｔｙがデューティ振幅ｄの大きさにより変化するため、従来と同じデューティ値Ｄｕｔｙで最大速度を出すためには、最大速度領域でデューティ振幅ｄ＝０とする必要がある。
【００５１】
本実施形態（２）によれば、図１１に示すように、デューティ値Ｄｕｔｙの振動中心値が、保持デューティ値Ｄｈ付近（不感帯の中心付近）にあるときには、デューティ振幅ｄを大きくしてデューティ値Ｄｕｔｙを大きく振動させるので、不感帯の影響を効果的に抑えることができる。そして、デューティ値Ｄｕｔｙの振動中心値が不感帯から遠ざかるに従ってデューティ振幅ｄを小さくするので、不感帯の外側の応答性の良い領域でデューティ振幅ｄが適度に小さくなり、実バルブタイミングの振動を抑えることができる。
更に、最大速度領域でデューティ振幅ｄ＝０とすることで、従来と同じデューティ値Ｄｕｔｙで最大速度を出すことができる。
【００５２】
［実施形態（３）］
上記実施形態（２）では、デューティ値Ｄｕｔｙの振動中心値が不感帯から遠ざかるほどデューティ振幅ｄを小さくするようにしたが、本発明の実施形態（３）では、図１２に示すように、デューティ値Ｄｕｔｙの振動中心値が不感帯内のときにデューティ値Ｄｕｔｙを所定のデューティ振幅ｄ（好ましくは不感帯の幅の半分以上のデューティ振幅）で振動させ、デューティ値Ｄｕｔｙの振動中心値が不感帯の外側の応答性の良い領域に存在するときに、デューティ振幅ｄを０にしてデューティ値Ｄｕｔｙの振動を停止させるようにしている。
【００５３】
このようにすれば、デューティ値Ｄｕｔｙを振動させなくても応答性を確保できる制御領域では、制御信号を振動させずに済み、制御信号の処理を簡単にすることができると共に、不感帯の外側の応答性の良い領域でデューティ振幅ｄが大きくなりすぎて実バルブタイミングを振動させてしまう事態を回避することができる。
【００５４】
尚、本実施形態（３）では、デューティ値Ｄｕｔｙを振動させる領域を不感帯のみに限定したが、不感帯のばらつきや経時変化等を考慮して、デューティ値Ｄｕｔｙを振動させる領域を不感帯の外側にも少し広げるようにしても良い。
【００５５】
［実施形態（４）］
油温が低いときは作動油の粘度が高い（流動性が悪い）ため、低油温時にデューティ値Ｄｕｔｙの振動周波数が高くなりすぎると、デューティ値Ｄｕｔｙの振動に油圧制御弁２１内の作動油の流れが追従できなくなり、応答性が低下するおそれがある。反対に、作動油の流動性が良くなる高油温時に、デューティ値Ｄｕｔｙの振動周波数が低くなりすぎると、デューティ値Ｄｕｔｙの振動に伴って実バルブタイミングが振動してしまうおそれがある。
【００５６】
そこで、本発明の実施形態（４）では、図１３に示すマップによって油温に応じてデューティ値Ｄｕｔｙの振動周波数を可変するようにしている。図１３のマップは、油温が低くなるほどデューティ値Ｄｕｔｙの振動周波数が低くなるように設定されている。
【００５７】
本実施形態（４）によれば、図１４（ａ）に示すように、油温が低いときには、それによって作動油の粘度が高くなるのに応じてデューティ値Ｄｕｔｙの振動周波数を低くすることができるので、低油温時でも、応答性を確保することができる。しかも、図１４（ｂ）に示すように、油温が高いときには、それによって作動油の粘度が低くなるのに応じてデューティ値Ｄｕｔｙの振動周波数を高くすることができるので、デューティ値Ｄｕｔｙの振動に伴ってバルブタイミングが振動してしまうことを防止することができる。これにより、油温（作動油の粘度）の変化の影響を受けずに、応答性とバルブタイミングの振動防止とを両立させた安定したバルブタイミング制御が可能となる。
【００５８】
尚、油温は、油温センサで検出しても良いが、運転状態等から推定するようにしても良い。また、油温の代わりに、機関温度、冷却水温、始動後経過時間等の油温を変化させるパラメータに応じてデューティ値Ｄｕｔｙの振動周波数を算出するようにしても良い。
【００５９】
［実施形態（５）］
次に、本発明の実施形態（５）を図１５乃至図１７を用いて説明する。
実バルブタイミングが目標バルブタイミングに保持されているときには、デューティ値Ｄｕｔｙ（振動中心値）が、現在のバルブタイミングを保持する保持デューティ値Ｄｈ（不感帯の中心付近）に設定されるが、このとき、デューティ値Ｄｕｔｙの振動範囲の幅が不感帯の幅と比較して大きくなりすぎると、デューティ値Ｄｕｔｙの振動に伴って実バルブタイミングが目標バルブタイミング付近で振動するおそれがある。
【００６０】
そこで、ＥＣＵ２４は、図１５の振幅補正プログラムを実行することで、実バルブタイミングが目標バルブタイミングにほぼ収束しているときには（つまり目標バルブタイミングが変化せずに安定しているときには）、図１６に示すように、実バルブタイミングが振動していれば、その振動が停止するまでデューティ振幅ｄを徐々に減少させ、実バルブタイミングの振動が停止した時点で、デューティ値Ｄｕｔｙの振動範囲の幅が不感帯の幅と一致したと判断して、その時点のデューティ値Ｄｕｔｙの振動中心値（保持デューティ値Ｄｈ）±デューティ振幅ｄを、不感帯の上限値、下限値と見なして学習する。
【００６１】
一方、実バルブタイミングが目標バルブタイミングにほぼ収束していないときには（つまり目標バルブタイミングが変化してから実バルブタイミングが目標バルブタイミングにほぼ収束するまでの期間には）、デューティ値Ｄｕｔｙ（振動中心値）を保持デューティ値Ｄｈから目標バルブタイミングの方向に変化させるが、このとき、デューティ値Ｄｕｔｙの振動範囲の幅が不感帯の幅よりも小さいと、デューティ値Ｄｕｔｙの振動範囲が不感帯の外側領域へはみ出さず、実バルブタイミングが変化しない場合があり得る。
【００６２】
そこで、ＥＣＵ２４は、図１５の振幅補正プログラムを実行することで、実バルブタイミングが目標バルブタイミングにほぼ収束していないときには（つまり目標バルブタイミングが変化してから実バルブタイミングが目標バルブタイミングにほぼ収束するまでの期間には）、図１７に示すように、実バルブタイミングが目標バルブタイミングに向かって所定値以上変化するまでデューティ振幅ｄを増大させて、実バルブタイミングを目標バルブタイミングへ向けて速やかに変化させる。
【００６３】
以下、図１５の振幅補正プログラムの処理内容を説明する。本プログラムは、所定時間毎又は所定クランク角毎に繰り返し実行され、まず、ステップ３０１で、実バルブタイミングが目標バルブタイミングにほぼ収束しているか否か（つまり目標バルブタイミングが変化せずに安定しているか否か）を判定し、実バルブタイミングが目標バルブタイミングにほぼ収束していれば、ステップ３０２に進み、デューティ値Ｄｕｔｙの振動に伴って実バルブタイミングが目標バルブタイミング付近で振動しているか否かを判定する。
【００６４】
その結果、実バルブタイミングが振動していると判定されれば、デューティ値Ｄｕｔｙの振動範囲の幅が不感帯の幅よりも大きいと判断して、ステップ３０３に進み、デューティ振幅ｄを所定量だけ減少させる。この後は、実バルブタイミングの振動が停止するまで、デューティ振幅ｄを所定量ずつ減少させる処理を繰り返す。
【００６５】
その後、実バルブタイミングの振動が停止すると、ステップ３０２で「Ｎｏ」と判定され、ステップ３０４に進み、実バルブタイミングの振動が停止した直後であるか否か（つまり不感帯の学習タイミングであるか否か）を判定する。このステップ３０４で「Ｙｅｓ」と判定されれば、ステップ３０５に進み、実バルブタイミングの振動が停止したときのデューティ値Ｄｕｔｙの振動中心値（保持デューティ値Ｄｈ）±デューティ振幅ｄを、不感帯の上限値、下限値と見なして学習する。このステップ３０５の処理が特許請求の範囲でいう不感帯学習手段に相当する役割を果たす。
【００６６】
一方、ステップ３０１で、実バルブタイミングが目標バルブタイミングにほぼ収束していない（つまり目標バルブタイミングが変化してから実バルブタイミングが目標バルブタイミングにほぼ収束するまでの期間）と判定された場合には、ステップ３０６に進み、目標バルブタイミングが変化してから実バルブタイミングが目標バルブタイミングに向かって所定値以上変化したか否かを判定し、所定値以上変化していなければ、ステップ３０７に進み、デューティ振幅ｄを所定量だけ増大させる。この後は、実バルブタイミングが所定値以上変化するまでデューティ振幅ｄを所定量ずつ増大させる処理を繰り返す。
その後、実バルブタイミングが所定値以上変化すれば、その後のバルブタイミング制御の応答性を確保できると判断してデューティ振幅ｄの増大補正を終了する。
【００６７】
以上説明した本実施形態（５）によれば、目標バルブタイミングが変化せずに安定しているときに（実バルブタイミングが目標バルブタイミングにほぼ収束しているときに）、実バルブタイミングの振動が停止するまでデューティ振幅ｄを減少させるようにしたので、実バルブタイミングが目標バルブタイミング付近で振動することを防止でき、実バルブタイミングの目標バルブタイミングへの収束性を向上できる。しかも、実バルブタイミングの振動が停止したときのデューティ値Ｄｕｔｙの振動中心値（保持デューティ値Ｄｈ）±デューティ振幅ｄを不感帯の上限値、下限値と見なして学習するようにしたので、エンジン運転中に目標バルブタイミングが変化しない状態が暫く続く毎に、不感帯を学習することができる。このようにして、エンジン運転中に不感帯を学習すれば、油圧制御弁２１の製造ばらつきや経時変化、油温等の変化によって不感帯が変化しても、その変化を学習して実際の不感帯に応じた高精度の制御を行うことができる。
【００６８】
更に、本実施形態（５）では、目標バルブタイミングが変化してから実バルブタイミングが目標バルブタイミングにほぼ収束するまでの期間に、実バルブタイミングが目標バルブタイミングに向かって所定値以上変化するまでデューティ振幅ｄを増大させるようにしたので、目標バルブタイミングの変化時にも不感帯を学習することができる。
【００６９】
尚、本実施形態（５）では、目標バルブタイミングが変化せずに安定しているときに（実バルブタイミングが目標バルブタイミングにほぼ収束しているときに）、デューティ値Ｄｕｔｙの振動に伴って実バルブタイミングが目標バルブタイミングを中心に振動している状態で、該デューティ値Ｄｕｔｙのデューティ振幅ｄを徐々に小さくして実バルブタイミングの振動が停止したときのデューティ値Ｄｕｔｙの振動中心値（保持デューティ値Ｄｈ）±デューティ振幅ｄを、不感帯の上限値、下限値と見なして学習するようにしたが、実バルブタイミングバルブが目標バルブタイミングで振動せずに保持されている状態で、デューティ値Ｄｕｔｙのデューティ振幅ｄを徐々に大きくして実バルブタイミングが振動し始めたときのデューティ値Ｄｕｔｙの振動中心値（保持デューティ値Ｄｈ）±デューティ振幅ｄを、不感帯の上限値、下限値と見なして学習するようにしても良い。
【００７０】
［実施形態（６）］
図１８（ａ）に示すように、油圧制御弁２１の電流−作動油供給流量特性には、作動油供給流量がほぼ０となる電流値付近に、電流値の変化に対する作動油供給流量の応答性が極端に遅くなる不感帯が存在する。従来の可変バルブタイミング制御システムでは、図１８（ｂ）に破線で示すように、不感帯を含む全制御領域において、デューティ値Ｄｕｔｙに比例した電流値を油圧制御弁２１に供給するようにしていたので、図１８（ｃ）に破線で示すように、油圧制御弁２１のデューティ値Ｄｕｔｙ−作動油供給流量特性にも、電流−作動油供給流量特性の非線形特性がそのまま反映されて、作動油供給流量がほぼ０となるデューティ値Ｄｕｔｙ（保持デューティ値Ｄｈ）付近に、デューティ値Ｄｕｔｙの変化に対する作動油供給流量の応答性が極端に遅くなる不感帯が存在するようになる。
【００７１】
そこで、本発明の実施形態（６）では、ＥＣＵ２４は、デューティ値Ｄｕｔｙを電流値に変換する際に、図１８（ｂ）に実線で示すマップによってデューティ値Ｄｕｔｙに応じた電流値を算出する。このマップは、不感帯に相当する電流値領域（作動油供給流量がほぼ０となる電流値付近）で、デューティ値Ｄｕｔｙに対する電流値の変化率（制御ゲイン）が大きくなり、不感帯の外側に相当する電流値領域で、デューティ値Ｄｕｔｙに対する電流値の変化率が小さくなるように設定されている。図１８（ｂ）のマップによりデューティ値Ｄｕｔｙに対する電流値の変化率（制御ゲイン）を補正する機能が、特許請求の範囲でいう制御手段に相当する役割を果たす。
【００７２】
このようにすれば、図１８（ｃ）に実線で示すように、作動油供給流量がほぼ０となるデューティ値Ｄｕｔｙ（保持デューティ値Ｄｈ）付近で、デューティ値Ｄｕｔｙが変化するときでも、デューティ値Ｄｕｔｙの変化に対する油圧制御弁２１の不感帯領域の流量応答性を向上させることができ、デューティ値Ｄｕｔｙの変化に対するバルブタイミング制御の応答性を向上させることができる。
【００７３】
図１９に示すように、デューティ値Ｄｕｔｙに応じた電流値のマップを油温毎に設定して、油温に応じてデューティ値Ｄｕｔｙに対する電流値の変化率の補正量を可変するようにしても良い。このようにすれば、油温に応じて作動油供給流量（バルブタイミング）の応答性が変化するのに対応して、デューティ値Ｄｕｔｙに対する電流値の変化率を適正値に設定することができ、油温の変化の影響を受けない安定したバルブタイミング制御が可能となる。
【００７４】
尚、油温の代わりに、機関温度、冷却水温、始動後経過時間等の油温と相関関係のあるパラメータに応じてデューティ値Ｄｕｔｙに対する電流値の変化率の補正量を可変するようにしても良い。
【００７５】
［実施形態（７）］
上記実施形態（１）〜（６）は、少なくとも不感帯領域でデューティ値Ｄｕｔｙを振動させるようにしたが、図２０乃至図２２に示す本発明の実施形態（７）では、目標バルブタイミングが変化したときに、デューティ値Ｄｕｔｙを不感帯の上限値又は下限値までオフセットすることで、バルブタイミング制御の応答性を向上させる。従って、本実施形態（７）では、デューティ値Ｄｕｔｙを振動させる必要がない。
【００７６】
また、本実施形態（７）のように、デューティ値Ｄｕｔｙを振動させない場合は、デューティ値Ｄｕｔｙが不感帯の上限値や下限値を通過するときに、バルブタイミング制御の応答性が急変するので、エンジン運転中にバルブタイミング制御の応答性を検出して、その応答性が急変したときのデューティ値Ｄｕｔｙに基づいて不感帯を学習する。そして、目標バルブタイミングの変化時に、デューティ値Ｄｕｔｙをオフセットさせるオフセット量を、不感帯の学習値に基づいて設定する。
【００７７】
以下、本実施形態（７）の具体的な処理内容を説明する。
エンジン運転中に、所定の学習期間に不感帯の学習を行うが、この不感帯の学習期間中は、目標バルブタイミングの変化時でもデューティ値Ｄｕｔｙをオフセットさせない。そして、この学習期間中に、実バルブタイミングバルブＶＴが目標バルブタイミングＶＴtgで保持されているときに、図２０に示すように、目標バルブタイミングＶＴtgが変化して、それに応じてデューティ値Ｄｕｔｙを保持デューティ値Ｄｈ付近から進角方向（又は遅角方向）に変化させたときに、目標バルブタイミングＶＴtgと実バルブタイミングＶＴの偏差Ｅrrorの変動量ｄ（Ｅrror）／ｄｔを監視してバルブタイミング制御の応答性を検出する。この機能が特許請求の範囲でいう応答性検出手段に相当する。
【００７８】
ここで、ｄ（Ｅrror）／ｄｔ＝［Ｅrror(i) −Ｅrror(i-1) ］／ｄｔであり、Ｅrror(i) は今回の偏差、Ｅrror(i-1) は前回の偏差、ｄｔは検出周期である。  偏差Ｅrrorの変動量ｄ（Ｅrror）／ｄｔが０付近の所定範囲内であるか否を、−α＜ｄ（Ｅrror）／ｄｔ＜αか否かによって判定し、偏差Ｅrrorの変動量ｄ（Ｅrror）／ｄｔが所定範囲以下となった時点で、デューティ値Ｄｕｔｙが不感帯の上限値又は下限値を通過して実バルブタイミングＶＴが止まった（バルブタイミング制御の応答性が急変した）と判断して、その時点のデューティ値Ｄｕｔｙを不感帯の上限値Ｄｇ１又は下限値Ｄｇ２と見なす。
【００７９】
そして、図２１に示すように、不感帯の上限値Ｄｇ１と保持デューティ値Ｄｈとの差を進角側の学習値Ｇ１（＝Ｄｇ１−Ｄｈ）として学習する。この進角側の学習値Ｇ１は、目標バルブタイミングＶＴtgが進角方向に変化したときに、デューティ値Ｄｕｔｙを進角方向にオフセットさせるオフセット量として用いる。また、保持デューティ値Ｄｈと不感帯の下限値Ｄｇ２との差は、遅角側の学習値Ｇ２（＝Ｄｈ−Ｄｇ２）として学習する。この遅角側の学習値Ｇ２は、目標バルブタイミングＶＴtgが遅角方向に変化したときに、デューティ値Ｄｕｔｙを遅角方向にオフセットさせるオフセット量として用いる。尚、この学習値Ｇ１，Ｇ２を学習する機能が特許請求の範囲でいう不感帯学習手段に相当する。
【００８０】
図２２に示すように、学習期間終了後、ＥＣＵ２４は、目標バルブタイミングＶＴtgが進角方向に変化したときに、それに応じてデューティ値Ｄｕｔｙを進角方向に変化させる際には、目標バルブタイミングＶＴtgと実バルブタイミングＶＴとの偏差Ｅrrorに応じて算出されたフィードバック補正値Ｄｆと保持デューティ値Ｄｈと進角側の学習値Ｇ１とを用いて、次式によりデューティ値Ｄｕｔｙを進角側の学習値Ｇ１だけ進角方向にオフセットさせる。
Ｄｕｔｙ＝Ｄｆ＋Ｄｈ＋Ｇ１
ここで、保持デューティ値Ｄｈは、前記実施形態（１）と同じ方法で学習するようにしても良いが、予め実験データや設計データ等から求めた保持デューティ値Ｄｈを用いるようにしても良い。
【００８１】
一方、目標バルブタイミングＶＴtgが遅角方向に変化したときに、それに応じてデューティ値Ｄｕｔｙを遅角方向に変化させる際には、フィードバック補正値Ｄｆと保持デューティ値Ｄｈと遅角側の学習値Ｇ２とを用いて、次式によりデューティ値Ｄｕｔｙを、遅角側の学習値Ｇ２だけ遅角方向にオフセットさせる。
Ｄｕｔｙ＝Ｄｆ＋Ｄｈ−Ｇ２
このようにして、目標バルブタイミングＶＴtgの変化時にデューティ値Ｄｕｔｙを不感帯の学習値Ｇ１，Ｇ２だけオフセットさせる機能が特許請求の範囲でいう制御手段に相当する。
【００８２】
以上の処理により、目標バルブタイミングが変化したときに、直ちにデューティ値Ｄｕｔｙを不感帯の外側領域にオフセットして、実バルブタイミングを応答良くフィードバック制御することができる。これにより、実バルブタイミングを目標バルブタイミングの変化に応答良く追従させて変化させることができ、実バブルタイミングを目標バルブタイミングに速やかに収束させることができる。
【００８３】
尚、本実施形態（７）では、エンジン運転中に目標バルブタイミングが変化してデューティ値Ｄｕｔｙを進角方向又は遅角方向に変化させたときに、不感帯（学習値Ｇ１，Ｇ２）を学習するようにしたが、目標バルブタイミングが変化していないときに、エンジン運転状態に悪影響を及ぼさない範囲で、一時的にデューティ値Ｄｕｔｙを進角方向（又は遅角方向）に変化させて、不感帯（学習値Ｇ１，Ｇ２）を学習するようにしても良い。
【００８４】
或は、デューティ値Ｄｕｔｙを不感帯の外側から内側に変化させるときに、バルブタイミング制御の応答性を監視して、実バルブタイミングの動きが止まった点を、デューティ値Ｄｕｔｙを不感帯の上限値Ｄｇ１又は下限値Ｄｇ２と見なして学習するようにしても良い。
【００８５】
尚、不感帯の学習方法は、適宜変更しても良く、例えば、不感帯学習期間中にデューティ値Ｄｕｔｙを振動させて、前記実施形態（５）と同様の方法で不感帯を学習するようにしても良い。
【００８６】
或は、不感帯を学習する手段を省いたシステムでは、予め実験データや設計データ等から求めた不感帯を用いて、目標バルブタイミングが変化したときに、該不感帯の幅に応じてデューティ値Ｄｕｔｙをオフセットするようにしても良い。この場合、不感帯を学習する場合よりも不感帯の精度が低下するが、目標バルブタイミングが変化したときに、デューティ値Ｄｕｔｙを該不感帯の幅に応じてオフセットすれば、従来よりもバルブタイミングを応答良く変化させることができる。
【００８７】
［実施形態（８）］
前述した各実施形態（１）〜（６）は、実バルブタイミングが目標バルブタイミングに収束している場合でも、デューティ値Ｄｕｔｙを振動させるようにしたが、図２３及び図２４に示す本発明の実施形態（８）では、実バルブタイミングが目標バルブタイミングに収束したと判断したときに、デューティ値Ｄｕｔｙの振動を停止させるようにしている。以下、本実施形態（８）で実行する図２３の振幅補正プログラムの処理内容を説明する。
【００８８】
本プログラムは、所定時間毎又は所定クランク角毎に繰り返し実行され、まず、ステップ３０１で、実バルブタイミングが目標バルブタイミングにほぼ収束しているか否か（つまり目標バルブタイミングが変化せずに安定しているか否か）を判定する。その結果、実バルブタイミングが目標バルブタイミングにほぼ収束していない（つまり目標バルブタイミングが変化してから実バルブタイミングが目標バルブタイミングにほぼ収束するまでの期間）と判定された場合には、ステップ３０１ａに進み、デューティ値振動制御を実施する。そして、次のステップ３０６で、目標バルブタイミングが変化してから実バルブタイミングが目標バルブタイミングに向かって所定値以上変化したか否かを判定し、所定値以上変化していなければ、ステップ３０７に進み、デューティ振幅ｄを所定量だけ増大させる。この後は、実バルブタイミングが所定値以上変化するまでデューティ振幅ｄを所定量ずつ増大させる処理を繰り返し、実バルブタイミングが所定値以上変化した時点で、デューティ振幅ｄの増大補正を終了する。
【００８９】
一方、ステップ３０１で、実バルブタイミングが目標バルブタイミングにほぼ収束していると判定された場合には、ステップ３０２に進み、デューティ値Ｄｕｔｙの振動に伴って実バルブタイミングが目標バルブタイミング付近で振動しているか否かを判定する。その結果、実バルブタイミングが振動していると判定されれば、デューティ値Ｄｕｔｙの振動範囲の幅が不感帯の幅よりも大きいと判断して、ステップ３０３に進み、デューティ振幅ｄを所定量だけ減少させる。この後は、実バルブタイミングの振動が停止するまで、デューティ振幅ｄを所定量ずつ減少させる処理を繰り返す。
【００９０】
その後、実バルブタイミングの振動が停止すると、ステップ３０２で「Ｎｏ」と判定され、ステップ３０８に進み、実バルブタイミングが目標バルブタイミングに完全に収束したと判断して、デューティ値Ｄｕｔｙの振動を停止させる。
尚、実バルブタイミングの振動が停止した直後に前記実施形態（５）と同様の方法で不感帯を学習した後に、デューティ値Ｄｕｔｙの振動を停止させるようにしても良い。
【００９１】
以上説明した本実施形態（８）のように、実バルブタイミングが目標バルブタイミングに収束した状態になっているときにデューティ値Ｄｕｔｙの振動を停止させるようにすれば、実バルブタイミングが目標バルブタイミングに収束した状態から目標バルブタイミングが変化したときに、デューティ値Ｄｕｔｙの振動方向と目標バルブタイミングの変化方向とが反対になることを回避することができ、目標バルブタイミングの変化時にデューティ値Ｄｕｔｙの振動方向と目標バルブタイミングの変化方向とが反対になることによる応答性の低下の可能性を無くすことができる。
【００９２】
［実施形態（９）］
図２５に示す本発明の実施形態（９）では、デューティ値Ｄｕｔｙをデューティ振幅ｄで振動させると共に、目標バルブタイミングが変化してデューティ値Ｄｕｔｙを進角方向又は遅角方向に変化させる際に、デューティ値Ｄｕｔｙの振動中心値が不感帯領域に入っているときに、実バルブタイミングが目標バルブタイミングに収束するまで、制御ゲインを増大させるようにしている。このようにすれば、不感帯領域で制御ゲインを増大させない場合と比較して、実バルブタイミングが目標バルブタイミングに収束するまでの時間を短くすることができる。
【００９３】
［実施形態（１０）］
一般に、油圧式の可変バルブタイミング装置においては、実バルブタイミングがほぼ目標値に保持されているとき、つまり実バルブタイミングの変化速度がほぼ０になっているときのデューティ値Ｄｕｔｙを保持デューティ値Ｄｈとして学習する機能を備えており、この保持デューティ値Ｄｈの学習値を基準にして実バルブタイミング（デューティ値Ｄｕｔｙ）を制御するようにしている。保持デューティ値Ｄｈは、実バルブタイミングの変化速度がほぼ０になっているときのデューティ値Ｄｕｔｙであるが、図２７（ａ）に示すように、不感帯が存在する場合は、不感帯の領域で実バルブタイミングの変化速度がほぼ０になるため、この領域のどこを学習するのか不明である。換言すれば、不感帯の領域で保持デューティ値Ｄｈを学習すると、保持デューティ値Ｄｈの学習値が不感帯の幅に相当する大きな学習誤差を持ってしまい、保持デューティ値Ｄｈを精度良く学習することができない。そのため、従来の可変バルブタイミング制御システム（デューティ値Ｄｕｔｙの振動制御を行わないシステム）では、実バルブタイミングの変化速度がほぼ０になる不感帯の幅が大きくなるとき（例えば油温が低いとき）に、保持デューティ値Ｄｈの学習を禁止することで、学習精度の低下を防止するようにしていた。そのため、保持デューティ値Ｄｈの学習頻度が少なくなるという欠点があった。
【００９４】
前述した実施形態（１）〜（６）、（８）、（９）のように、デューティ値Ｄｕｔｙを適正な振幅で振動させる振動制御を行うと、図２７（ｂ）に示すように不感帯を無くすことが可能となり、実バルブタイミングの変化速度が０になる領域が１点となり、保持デューティ値Ｄｈの学習が可能となる。
【００９５】
そこで、本発明の実施形態（１０）では、ＥＣＵ２４によって図２８乃至図３１に示す各プログラムを実行することで、通常のバルブタイミング制御中にデューティ値Ｄｕｔｙを適正な振幅で振動させる振動制御を行うと共に、保持デューティ値Ｄｈを学習するための所定の学習条件が成立したときに、デューティ値Ｄｕｔｙの振動制御を継続して不感帯を無くしながら保持デューティ値Ｄｈを学習する。このＥＣＵ２４の学習機能が特許請求の範囲でいう保持制御値学習手段としての役割を果たす。以下、これら各プログラムの処理内容を説明する。
【００９６】
本実施形態（１０）で実行する図２８のバルブタイミング制御プログラムは、前記実施形態（１）で説明した図５のバルブタイミング制御プログラムのステップ１１０の処理を省略し、ステップ１０７（１０７ａ）とステップ１１２（１１２ａ）の処理を部分的に変更したものであり、その他の各ステップの処理は図５のプログラムと同じである。
【００９７】
図２８のバルブタイミング制御プログラムが起動されると、ステップ１０１〜１０６の処理によって、フィードバック補正値Ｄｆに保持デューティ値Ｄｈの学習値を加算して、デューティ値Ｄｕｔｙを求める。
Ｄｕｔｙ＝Ｄｆ＋Ｄｈ
【００９８】
この後、ステップ１０７ａに進み、図２９のデューティ振幅ｄ算出プログラムを実行する。このデューティ振幅ｄ算出プログラムが起動されると、まず、ステップ４０１で、保持デューティ値学習中であるか否かを判定し、保持デューティ値学習中でなければ、ステップ４０２に進み、前記各実施形態と同様の方法で、通常制御時のデューティ振幅ｄを算出する。
【００９９】
これに対し、上記ステップ４０１で、保持デューティ値学習中であると判定された場合は、ステップ４０３に進み、学習時のデューティ振幅ｄを次の(1) 〜(4) のいずれかの方法で算出する。
【０１００】
《デューティ振幅ｄの算出法(1) 》
学習時のデューティ振幅ｄをその時点のデューティ値Ｄｕｔｙによらず一定値とする。この際、学習時のデューティ値Ｄｕｔｙの振動範囲がその時点のデューティ値Ｄｕｔｙによらず不感帯の領域全体をカバーできるように、予め学習時のデューティ振幅ｄを設定して、ＥＣＵ２４のＲＯＭに記憶しておけば良い。この場合、デューティ振幅ｄは、最大の不感帯の幅の半分以上の値に設定することが好ましい。このようにすれば、学習時のデューティ値Ｄｕｔｙがどのような値であっても、学習時のデューティ値Ｄｕｔｙの振動範囲が不感帯の領域全体をカバーできるようになり、不感帯全体を確実に取り除くことができて、保持制御値の学習精度低下を回避することができる。
【０１０１】
《デューティ振幅ｄの算出法(2) 》
図３２に示すように、学習時のデューティ振幅ｄを不感帯と相関関係のあるパラメータ（例えば油温、エンジン温度、油圧、エンジン回転速度等）によらず一定値とする。この際、不感帯の幅が最も大きくなる条件下で、学習時のデューティ値Ｄｕｔｙの振動範囲が不感帯の領域全体をカバーできるように、予め学習時のデューティ振幅ｄを設定して、ＥＣＵ２４のＲＯＭに記憶しておけば良い。この場合も、デューティ振幅ｄは、最大の不感帯の幅の半分以上の値に設定することが好ましい。このようにすれば、低油温時等のように、不感帯の幅が大きくなる条件下でも、学習時のデューティ値Ｄｕｔｙの振動範囲が不感帯の領域全体をカバーできるようになり、保持デューティ値の学習精度低下を回避することができる。
【０１０２】
《デューティ振幅ｄの算出法(3) 》
図３３に示すように、学習時のデューティ振幅ｄを不感帯と相関関係のあるパラメータ（例えば油温、エンジン温度、油圧、エンジン回転速度等）に基づいて推定した不感帯の幅に応じて設定する。この場合も、デューティ振幅ｄは、不感帯の幅の半分以上の値に設定することが好ましい。このようにすれば、油温等により不感帯の幅が変化しても、それに応じて学習時のデューティ値Ｄｕｔｙの振動範囲を変化させて、デューティ値Ｄｕｔｙの振動範囲が不感帯の領域全体をカバーできるようになる。
【０１０３】
《デューティ振幅ｄの算出法(4) 》
保持デューティ値Ｄｈの学習値のばらつきが大きいときに、学習時のデューティ振幅ｄを大きくするように補正する。例えば、図３４に示すように、保持デューティ値Ｄｈの学習値のばらつきが許容範囲内で否かを判定し、保持デューティ値Ｄｈの学習値のばらつきが許容範囲より大きい状態が所定時間以上連続したときに、学習時のデューティ振幅ｄを所定量大きくするように補正する。つまり、保持デューティ値Ｄｈの学習値のばらつきが大きいときは、学習時のデューティ値Ｄｕｔｙの振動範囲が不感帯の領域を十分にカバーできない状態になっていると判断して、デューティ振幅ｄを大きくするように補正するものである。これにより、学習時のデューティ値Ｄｕｔｙの振動範囲が不感帯の領域全体をカバーできるようになり、保持デューティ値Ｄｈの学習値のばらつきを小さくすることができる。
【０１０４】
以上説明した図２９のデューティ振幅ｄ算出プログラムで、通常制御時のデューティ振幅ｄ又は学習時のデューティ振幅ｄを算出した後、図２８のステップ１０８に戻り、デューティ値振動制御を実施して、デューティ値Ｄｕｔｙを、ステップ１０６で算出したデューティ値Ｄｕｔｙを中心にして、デューティ振幅ｄ、所定振動周期で振動させる。
Ｄｕｔｙ＝Ｄｕｔｙ±ｄ
これにより、油圧制御弁２１のリニアソレノイド３８には、デューティ値Ｄｕｔｙに応じた電流が供給され、且つ、その供給電流がデューティ値Ｄｕｔｙの振動に伴って振動する。
【０１０５】
この後、ステップ１０９に進み、スタータ信号がオンか否か、つまり始動時であるか否かを判断し、始動時であれば、後述する学習処理を行なうことなく、ステップ１１１に進んで、今回の保持デュ−ティ値Ｄｈ(i) として、前回走行時の保持デュ−ティ値Ｄｈを用いてバルブタイミング制御を継続する。
【０１０６】
一方、始動時でなければ、ステップ１１２ａに進み、図３０の保持デューティ値学習プログラムを実行して、保持デューティ値Ｄｈを次のようにして学習する。図３０の保持デューティ値学習プログラムが起動されると、まず、ステップ４１１で、現在、デューティ値Ｄｕｔｙの振動制御中であるか否か（デューティ振幅ｄ＞０であるか否か）を判定し、振動制御が停止されている場合（デューティ振幅ｄ＝０の場合）は、ステップ４１２に進み、前記実施形態（１）で説明した図６の保持デューティ値学習プログラムと同じ処理によって、振動制御停止時の保持デューティ値Ｄｈを学習する。
【０１０７】
これに対し、上記ステップ４１１で、振動制御中と判定された場合は、ステップ４１３に進み、図３１の振動制御時の保持デューティ値学習プログラムを実行する。この図３１の振動制御時の保持デューティ値学習プログラムは、図６の保持デューティ値学習プログラムのステップ２１０とステップ２１４の処理を変更したものであり、それ以外の処理は図６のプログラムと同じである。
【０１０８】
図３１の振動制御時の保持デューティ値学習プログラムが起動されると、ステップ２０６〜２０８で、所定の学習条件が成立しているか否かを判定する。この学習条件は、目標バルブタイミングＶＴtg及び実バルブタイミングＶＴの双方がほぼ一定値を維持する継続時間が所定の判定時間ｔ１以上であることである。この判定時間ｔ１は、演算処理の簡略化のために、予め設定した固定値としても良いが、作動油の粘度又はこれと相関関係のあるパラメータ（例えば油温）に応じてマップ又は数式により設定するようにしても良い。
【０１０９】
つまり、作動油の粘度によって実バルブタイミングＶＴの変化速度が遅くなったり速くなったりするため、実バルブタイミングＶＴがほぼ一定値を維持しているか否か（実バルブタイミングＶＴの変化速度が所定値以下であるか否か）を判定する判定時間ｔ１を作動油の粘度に応じて設定すれば、作動油の粘度による実バルブタイミングＶＴの変化速度のばらつきを考慮して判定時間ｔ１を予め長めの時間に設定しておく必要がなくなり、その時点の作動油の粘度に応じて判定時間ｔ１を必要最小限の時間に設定することができる。これにより、保持デューティ値Ｄｈの学習を比較的短い時間で行うことができ、保持デューティ値Ｄｈの学習頻度を多くすることができる。
【０１１０】
上記学習条件が成立すれば、ステップ２０９に進み、学習中フラグをオンし、次のステップ２１０ａで、学習処理を実行する。この学習処理では、その時点のデューティ値Ｄｕｔｙの振動中心値、すなわち、図２８のステップ１０６で算出したデューティ値Ｄｕｔｙ（デューティ振幅ｄを加減算する前のデューティ値Ｄｕｔｙ）を記憶する。
【０１１１】
このデューティ値Ｄｕｔｙの振動中心値を記憶した後、実バルブタイミングＶＴがほぼ一定値を維持する継続時間Ｍ２を計測する連続時間カウンタＣ２をリセットスタートし（ステップ２１１）、この連続時間カウンタＣ２の値（継続時間Ｍ２）が所定の判定時間ｔ２に達したか否かを判定する（ステップ２１３）。この判定時間ｔ２も、前記判定時間ｔ１と同じく、作動油の粘度又はこれと相関関係のあるパラメータ（例えば油温）に応じてマップ又は数式により設定するようにしても良く、勿論、予め設定した固定値としても良い。
【０１１２】
そして、実バルブタイミングＶＴがほぼ一定値を維持する継続時間Ｍ２が所定の判定時間ｔ２に達した時点で、前記ステップ２１０ａで記憶したデューティ値Ｄｕｔｙの振動中心値で実バルブタイミングＶＴが変わらないことが確認できたとして、ステップ２１４ａに進み、前記ステップ２１０ａで記憶したデューティ値Ｄｕｔｙの振動中心値を新たな保持デューティ値Ｄｈとして学習する。その他の処理は、図６のプログラムと同じである。      
【０１１３】
以上説明した本実施形態（１０）の制御例を図３５のタイムチャートを用いて説明する。図３５のタイムチャートは、目標バルブタイミングの変化に追従して実バルブタイミングが変化する過程で、保持デューティ値Ｄｈの学習値を更新するときの制御例を示している。この制御例では、実バルブタイミングが目標バルブタイミングに収束する前に、実バルブタイミングの動きがほぼ停止した状態（実バルブタイミングの変化速度が所定値以下の状態）となる。この停止状態が所定の判定時間ｔ１だけ継続した時点で、デューティ値Ｄｕｔｙの振動中心値を記憶し、更に、この時点から停止状態が所定の判定時間ｔ２だけ継続した時点で、それまでに記憶されたデューティ値Ｄｕｔｙの振動中心値を新たな保持デューティ値Ｄｈとして学習する。この学習期間中（停止期間中）も、デューティ値Ｄｕｔｙの振動制御を継続することで、不感帯を無くした状態で保持デューティ値Ｄｈを学習する。
【０１１４】
保持デューティ値の学習後は、デューティ値Ｄｕｔｙが保持デューティ値Ｄｈの学習補正量分だけ変化するため、実バルブタイミングが目標バルブタイミングに向かって再び動き始め、最終的に、実バルブタイミングが目標バルブタイミングに収束した状態となる。      
【０１１５】
以上説明した本実施形態（１０）では、保持デューティ値Ｄｈの学習期間中も、デューティ値Ｄｕｔｙの振動制御を継続して不感帯を無くしながら保持デューティ値Ｄｈを学習するようにしたので、従来システムにおいて、不感帯の存在を考慮して保持デューティ値Ｄｈの学習を禁止していた条件下（例えば低油温時等）においても、デューティ値Ｄｕｔｙの振動制御によって不感帯を無くしながら保持デューティ値Ｄｈを精度良く学習することができ、保持デューティ値Ｄｈの学習頻度を従来よりも多くすることができる。
【０１１６】
ところで、通常のバルブタイミング制御中（通常制御中）のデューティ振幅ｄは、前記実施形態（１）と同じように一定値としても良いが、図３６（ａ）に示すように、デューティ値Ｄｕｔｙの振動中心値に応じてデューティ振幅ｄを変化させるようにしても良い。この場合、デューティ値Ｄｕｔｙの振動中心値が保持デューティ値Ｄｈ付近（不感帯の中心付近）のときにデューティ振幅ｄが最大値（好ましくは不感帯の幅の半分以上）となり、デューティ値Ｄｕｔｙの振動中心値が保持デューティ値Ｄｈ付近（不感帯の中心付近）から遠ざかるほどデューティ振幅ｄが小さくなるように設定すると良い。不感帯の外側の領域は、本来的に応答性の良い制御領域であるため、デューティ値Ｄｕｔｙを振動させなくても、バルブタイミング制御の応答性を十分に確保できるためである。また、応答性の良い制御領域で、デューティ振幅ｄを大きくすると、図３７（ｂ）に示すように、応答性の良い制御領域で、バルブタイミング制御の制御特性が却って悪くなってしまう。
【０１１７】
図３６（ａ）に示すように、デューティ値Ｄｕｔｙの振動中心値に応じてデューティ振幅ｄを変化させる場合は、図３７（ａ）に示すように、学習時のデューティ振幅ｄを、その時点のデューティ値Ｄｕｔｙによらず一定値とすると良い。この際、学習時のデューティ値Ｄｕｔｙの振動範囲がその時点のデューティ値Ｄｕｔｙによらず不感帯の領域全体をカバーできるように、学習時のデューティ振幅ｄを、通常制御時のデューティ振幅ｄの最大値と同程度（好ましくは不感帯の幅の半分以上）に設定すると良い。このようにすれば、学習時のデューティ値Ｄｕｔｙがどのような値であっても、学習時のデューティ値Ｄｕｔｙの振動範囲が不感帯の領域全体を確実にカバーできるようになり、不感帯全体を確実に取り除くことができて、保持制御値の学習精度低下を回避することができる。
【０１１８】
［実施形態（１１）］
ところで、目標バルブタイミングが進角側／遅角側の限界値（制御可能範囲の限界値）又はそれに近い領域に設定されているときには、実バルブタイミングが進角側／遅角側の限界値に突き当たった状態になることがあり、それによって、バルブタイミング変化速度が０になることがある。従って、目標バルブタイミングが進角側／遅角側の限界値又はそれに近い領域に設定されているときに、保持デューティ値Ｄｈの学習を行うと、実バルブタイミングが進角側／遅角側の限界値に突き当たった状態を保持デューティ値Ｄｈによる保持状態と誤判定して、保持デューティ値Ｄｈを誤学習する可能性がある。
【０１１９】
そこで、図３８及び図３９に示す本発明の実施形態（１１）では、目標バルブタイミングが進角側／遅角側の限界値又はそれに近い領域に設定されて、実バルブタイミングが進角側／遅角側の限界値に突き当たる可能性のある領域を学習禁止領域に設定し（図３８参照）、目標バルブタイミングが学習禁止領域に設定されているときには、保持デューティ値Ｄｈの学習を禁止して、保持デューティ値Ｄｈの誤学習を未然に防止するようにしている。この学習制御は、図３９の保持デューティ値学習プログラムによって次のようにして実現される。本プログラムが起動されると、まずステップ４１０で、目標バルブタイミングが保持デューティ値学習の許可範囲内であるか否かを判定し、目標バルブタイミングが保持デューティ値学習の許可範囲内でない場合、つまり目標バルブタイミングが学習禁止領域である場合は、ステップ４１１以降の保持デューティ値Ｄｈの学習を行わずに本プログラムを終了する。
【０１２０】
これに対して、上記ステップ４１０で、目標バルブタイミングが保持デューティ値学習の許可範囲内であると判定された場合は、ステップ４１１以降の保持デューティ値Ｄｈの学習を実行する。この保持デューティ値Ｄｈの学習方法は、前記実施形態（１０）で説明した図３０の保持デューティ値学習プログラムと同じである。
【０１２１】
以上説明した本実施形態（１１）では、図３８に示すように、実バルブタイミングが進角側／遅角側の限界値に突き当たる可能性のある領域を学習禁止領域に設定し、目標バルブタイミングが学習禁止領域に設定されているときに、保持デューティ値Ｄｈの学習を禁止するようにしたので、実バルブタイミングが進角側／遅角側の限界値に突き当たった状態を保持デューティ値Ｄｈによる保持状態と誤判定することを未然に防止できて、保持デューティ値Ｄｈの誤学習を未然に防止することができる。
【０１２２】
［実施形態（１２）］
ところで、実バルブタイミングをその目標値付近に保持する保持制御中に、保持デューティ値Ｄｈが適正値からずれていると、図４０に示すように、実バルブタイミングが目標バルブタイミングからずれた状態で保持されるため、そのずれ分を修正するように保持デューティ値Ｄｈの学習値が更新され、それに応じてデューティ値Ｄｕｔｙが変化して実バルブタイミングが目標バルブタイミングに向かって変化するが、デューティ値Ｄｕｔｙの変化が実バルブタイミングの変化として現れるまでに可変バルブタイミング装置１８の応答遅れがあるため、保持デューティ値Ｄｈの学習終了後に学習禁止期間を設けないと、学習終了後に実バルブタイミングが応答遅れを持って変化する直前に、再び学習条件が成立して、保持デューティ値Ｄｈの学習が開始される可能性がある。その結果、保持デューティ値Ｄｈの学習終了後に実バルブタイミングが応答遅れを持って目標バルブタイミングに向かって変化する期間に再び保持デューティ値Ｄｈの学習が行われる可能性があり、それによって、保持デューティ値Ｄｈの学習精度が低下する可能性がある。
【０１２３】
そこで、本発明の実施形態（１２）では、図４１の振動制御時の保持デューティ値学習プログラムを実行することで、前回の保持デューティ値Ｄｈの学習終了から所定時間が経過したか否かを判定し（ステップ２００）、前回の保持デューティ値Ｄｈの学習終了から所定時間が経過するまで保持デューティ値Ｄｈの学習を禁止するようにしている。この場合、学習禁止期間は、保持デューティ値Ｄｈの学習終了時から実バルブタイミングが目標バルブタイミングに収束するまでの時間よりも少し長い時間に設定されている。このようにすれば、保持デューティ値Ｄｈの学習終了後に実バルブタイミングが応答遅れを持って目標バルブタイミングに向かって変化する期間に保持デューティ値Ｄｈの学習が行われることを防止できて、保持デューティ値Ｄｈの学習精度低下を回避することができる。
【０１２４】
尚、図４１の振動制御時の保持デューティ値学習プログラムのステップ２００の処理が特許請求の範囲でいう学習禁止手段としての役割を果たし、それ以外の処理は、前記実施形態（１０）で説明した図３１の振動制御時の保持デューティ値学習プログラムの処理と同じである。
【０１２５】
［実施形態（１３）］
前記実施形態（１０）〜（１２）は、通常のバルブタイミング制御中及び学習期間中にデューティ値Ｄｕｔｙの振動制御を行うことで不感帯を無くすようにしたが、通常のバルブタイミング制御中にデューティ値Ｄｕｔｙの振動制御を行わない場合でも、学習期間中にデューティ値Ｄｕｔｙの振動制御を行って不感帯を無くしながら保持デューティ値Ｄｈを学習するようにしても良い。
以下、これを具体化した本発明の実施形態（１３）を図４２〜図４５を用いて説明する。
【０１２６】
本実施形態（１３）で実行する図４２のバルブタイミング制御プログラムは、前記実施形態（１）で説明した図５のバルブタイミング制御プログラムのステップ１０６以降の処理を変更したものである。図４２のバルブタイミング制御プログラムが起動されると、前記実施形態（１）と同様の方法で、デューティ値Ｄｕｔｙを算出する（ステップ１０１〜１０６）。この後、ステップ１０８ａに進み、図４３の不感帯対策制御プログラムを実行して、次のようにしてデューティ値Ｄｕｔｙを不感帯の外側へオフセットさせる。
【０１２７】
図４３の不感帯対策制御プログラムが起動されると、まずステップ５０１で、目標バルブタイミングが進角方向であるか否かを判定し、進角方向であれば、ステップ５０２に進み、目標バルブタイミングと実バルブタイミングとの偏差に応じて算出されたフィードバック補正値Ｄｆと保持デューティ値Ｄｈと進角側のオフセット量Ｇ１（図２１参照）とを用いて、次式によりデューティ値Ｄｕｔｙを進角側のオフセット量Ｇ１だけ進角方向にオフセットさせる。
Ｄｕｔｙ＝Ｄｆ＋Ｄｈ＋Ｇ１
【０１２８】
一方、目標バルブタイミングが遅角方向であれば、ステップ５０３に進み、フィードバック補正値Ｄｆと保持デューティ値Ｄｈと遅角側のオフセット量Ｇ２（図２１参照）とを用いて、次式によりデューティ値Ｄｕｔｙを、遅角側のオフセット量Ｇ２だけ遅角方向にオフセットさせる。
Ｄｕｔｙ＝Ｄｆ＋Ｄｈ−Ｇ２
【０１２９】
以上のようにして、デューティ値Ｄｕｔｙを不感帯の外側へオフセットさせると、図４３の不感帯対策制御プログラムが終了し、図４２のバルブタイミング制御プログラムのステップ１０９に戻り、スタータ信号がオンか否か、つまり始動時であるか否かを判断し、始動時であれば、後述する学習処理を行なうことなく、ステップ１１１に進んで、今回の保持デュ−ティ値Ｄｈ(i) として、前回走行時の保持デュ−ティ値Ｄｈを用いてバルブタイミング制御を継続する。
【０１３０】
一方、始動時でなければ、ステップ１１２ｂに進み、図４４の保持デューティ値学習プログラムを実行する。本プログラムでは、まずステップ５１１で、所定の学習条件が成立しているか否かを判定する。ここで、学習条件としては、例えば、(1) 目標バルブタイミング及び実バルブタイミングの双方がほぼ一定値を維持する継続時間が所定時間以上であること、(2) 前回の保持デューティ値Ｄｈの学習終了から所定時間が経過していること等であり、これらの条件を全て満たしたときに学習条件が成立し、１つでも満たさない条件があれば学習条件が不成立となる。もし、学習条件が不成立であれば、後述するデューティ値Ｄｕｔｙの振動制御が実行されない。尚、デューティ値Ｄｕｔｙの振動制御の実行中（学習期間中）に学習条件が不成立となれば、その時点で、デューティ値Ｄｕｔｙの振動制御を終了する（ステップ５１５）。
【０１３１】
これに対し、上記ステップ５１１で学習条件が成立していると判定されれば、ステップ５１１ａに進み、図４２のステップ１０８ａで実行される不感帯対策制御をキャンセルした後、ステップ５１２に進み、デューティ値Ｄｕｔｙの振動制御を実行する。このデューティ値Ｄｕｔｙの振動制御は、前記実施形態（１０）〜（１２）と同様の方法で実行すれば良い。
【０１３２】
そして、次のステップ５１３で、目標バルブタイミング及び実バルブタイミングの双方がほぼ一定値を維持する継続時間が所定の判定時間に達したか否かを判定し、所定の判定時間に達した時点で、ステップ５１４に進み、その時点のデューティ値Ｄｕｔｙの振動中心値を新たな保持デューティ値Ｄｈとして学習する。この後、ステップ５１５に進み、デューティ値Ｄｕｔｙの振動制御（学習）を終了して、本プログラムを終了する。
【０１３３】
以上説明した本実施形態（１３）の制御例を図４５のタイムチャートを用いて説明する。図４５のタイムチャートは、目標バルブタイミングの変化に追従して実バルブタイミングが変化する過程で、保持デューティ値Ｄｈの学習値を更新するときの制御例を示している。この制御例では、実バルブタイミングが目標バルブタイミングに収束する前に、実バルブタイミングの動きがほぼ停止した状態（実バルブタイミングの変化速度が所定値以下の状態）となる。この停止状態が所定時間継続すると、学習条件が成立して、デューティ値Ｄｕｔｙの振動制御を開始する。そして、目標バルブタイミング及び実バルブタイミングの双方がほぼ一定値を維持する継続時間が所定の判定時間に達した時点で、その時点のデューティ値Ｄｕｔｙの振動中心値を新たな保持デューティ値Ｄｈとして学習し、デューティ値Ｄｕｔｙの振動制御（学習）を終了する。
【０１３４】
保持デューティ値の学習後は、デューティ値Ｄｕｔｙが保持デューティ値Ｄｈの学習補正量分だけ変化するため、実バルブタイミングが目標バルブタイミングに向かって再び動き始め、最終的に、実バルブタイミングが目標バルブタイミングに収束した状態となる。      
【０１３５】
以上説明した本実施形態（１３）では、保持デューティ値Ｄｈの学習期間中にデューティ値Ｄｕｔｙの振動制御を実行して不感帯を無くしながら保持デューティ値Ｄｈを学習するようにしたので、従来システムにおいて、不感帯の存在を考慮して保持デューティ値Ｄｈの学習を禁止していた条件下（例えば低油温時等）においても、保持デューティ値Ｄｈを精度良く学習することができて、保持デューティ値Ｄｈの学習頻度を従来よりも多くすることができる。
【０１３６】
尚、前記各実施形態（１）〜（１３）は、本発明を、吸気バルブのバルブタイミングを可変する可変バルブタイミング装置に適用した実施形態であるが、本発明を、排気バルブのバルブタイミングを可変する可変バルブタイミング装置に適用しても良いことは言うまでもない。また、本発明は、吸気バルブや排気バルブのリフト量、作用角等を可変する可変バルブ装置に適用しても良い。
【０１３７】
更に、本発明は、内燃機関の可変バルブ装置に限定されず、一部の制御領域に不感帯を有する非線形の制御特性の制御対象を制御する制御装置に広く適用して実施することができる。
【０１３８】
その他、本発明は、前記各実施形態（１）〜（１３）を適宜組み合わせて実施しても良い等、種々変更して実施できることは言うまでもない。
【図面の簡単な説明】
【０１３９】
【図１】本発明の実施形態（１）における可変バルブタイミング制御システムを概略的に示す図である。
【図２】実施形態（１）の可変バルブタイミング装置の縦断面図である。
【図３】実施形態（１）のデューティ値振動制御を説明するための図である。
【図４】実施形態（１）のデューティ値振動制御を実施したときの可変バルブタイミング装置のバルブタイミング変化速度特性図である。
【図５】実施形態（１）のバルブタイミング制御プログラムの処理の流れを示すフローチャートである。
【図６】実施形態（１）の保持デューティ値学習プログラムの処理の流れを示すフローチャートである。
【図７】油温と不感帯の幅との関係を示す図である。
【図８】実施形態（１）において、油温に応じてデューティ振幅ｄを算出するマップの一例を示す図である。
【図９】実施形態（１）の制御例を示すタイムチャートである。
【図１０】実施形態（２）において、デューティ値Ｄｕｔｙの振動中心値に応じてデューティ振幅ｄを算出するマップの一例を示す図である。
【図１１】実施形態（２）の制御例を示すタイムチャートである。
【図１２】実施形態（３）の制御例を示すタイムチャートである。
【図１３】実施形態（４）において、油温に応じてデューティ値Ｄｕｔｙの振動周波数を算出するマップの一例を示す図である。
【図１４】（ａ）は実施形態（４）の低油温時の制御例を示すタイムチャート、（ｂ）は実施形態（４）の高油温時の制御例を示すタイムチャートである。
【図１５】実施形態（５）の振幅補正プログラムの処理の流れを示すフローチャートである。
【図１６】実施形態（５）において目標バルブタイミングが変化しないときの制御例を示すタイムチャートである。
【図１７】実施形態（５）において目標バルブタイミングが変化したときの制御例を示すタイムチャートである。
【図１８】（ａ）〜（ｃ）は実施形態（６）のバルブタイミング制御を説明するための図である。
【図１９】実施形態（６）において、デューティ値Ｄｕｔｙに対する電流値の変化率の補正量を油温に応じて可変するマップの一例を示す図である。
【図２０】実施形態（７）の不感帯学習を説明するための図である（その１）。
【図２１】実施形態（７）の不感帯学習を説明するための図である（その２）。
【図２２】実施形態（７）のバルブタイミング制御の実行例を示すタイムチャートである。
【図２３】実施形態（８）の振幅補正プログラムの処理の流れを示すフローチャートである。
【図２４】実施形態（８）において目標バルブタイミングが変化したときの制御例を示すタイムチャートである。
【図２５】実施形態（９）の制御例を示すタイムチャートである。
【図２６】（ａ）は油圧制御弁の作動油供給流量特性図、（ｂ）は従来の可変バルブタイミング装置のバルブタイミング変化速度特性図である。
【図２７】（ａ）は従来のバルブタイミング制御特性を示す図、（ｂ）は実施形態（１０）バルブタイミング制御特性を示す図である。
【図２８】実施形態（１０）のバルブタイミング制御プログラムの処理の流れを示すフローチャートである。
【図２９】実施形態（１０）のデューティ振幅ｄ算出プログラムの処理の流れを示すフローチャートである。
【図３０】実施形態（１０）の保持デューティ値学習プログラムの処理の流れを示すフローチャートである。
【図３１】実施形態（１０）の振動制御時の保持デューティ値学習プログラムの処理の流れを示すフローチャートである。
【図３２】実施形態（１０）の学習時のデューティ振幅ｄの設定例を示す図である（その１）。
【図３３】実施形態（１０）の学習時のデューティ振幅ｄの設定例を示す図である（その２）。
【図３４】実施形態（１０）の学習時のデューティ振幅ｄの補正例を示す図である。
【図３５】実施形態（１０）の制御例を示すタイムチャートである。
【図３６】（ａ）は実施形態（１０）の通常制御時のデューティ振幅の設定例を示す図、（ｂ）は実施形態（１０）の通常制御時の制御特性の一例を示す図である。
【図３７】（ａ）は実施形態（１０）の学習時のデューティ振幅の設定例を示す図、（ｂ）は実施形態（１０）の学習時の制御特性の一例を示す図である。
【図３８】実施形態（１１）の保持デューティ値Ｄｈの学習許可範囲と学習禁止領域を説明する図である。
【図３９】実施形態（１１）の保持デューティ値学習プログラムの処理の流れを示すフローチャートである。
【図４０】実施形態（１２）の制御例を示すタイムチャートである。
【図４１】実施形態（１２）の振動制御時の保持デューティ値学習プログラムの処理の流れを示すフローチャートである。
【図４２】実施形態（１３）のバルブタイミング制御プログラムの処理の流れを示すフローチャートである。
【図４３】実施形態（１３）の不感帯対策制御プログラムの処理の流れを示すフローチャートである。
【図４４】実施形態（１３）の保持デューティ値学習プログラムの処理の流れを示すフローチャートである。
【図４５】実施形態（１３）の制御例を示すタイムチャートである。
【符号の説明】
【０１４０】
１１…エンジン（内燃機関）、１６…吸気側カム軸、１７…排気側カム軸、１８…可変バルブタイミング装置（可変バルブ装置）、２０…オイルポンプ、２１…油圧制御弁、２２…カム角センサ、２３…クランク角センサ、２４…ＥＣＵ（制御手段，応答性検出手段，不感帯学習手段）、２５…ハウジング、２７…ロータ、３１…ベーン、３２…進角室、３３…遅角室
【図１】
2007107539.tif 000003
【図２】
2007107539.tif 000004
【図３】
2007107539.tif 000005
【図４】
2007107539.tif 000006
【図５】
2007107539.tif 000007
【図６】
2007107539.tif 000008
【図７】
2007107539.tif 000009
【図８】
2007107539.tif 000010
【図９】
2007107539.tif 000011
【図１０】
2007107539.tif 000012
【図１１】
2007107539.tif 000013
【図１２】
2007107539.tif 000014
【図１３】
2007107539.tif 000015
【図１４】
2007107539.tif 000016
【図１５】
2007107539.tif 000017
【図１６】
2007107539.tif 000018
【図１７】
2007107539.tif 000019
【図１８】
2007107539.tif 000020
【図１９】
2007107539.tif 000021
【図２０】
2007107539.tif 000022
【図２１】
2007107539.tif 000023
【図２２】
2007107539.tif 000024
【図２３】
2007107539.tif 000025
【図２４】
2007107539.tif 000026
【図２５】
2007107539.tif 000027
【図２６】
2007107539.tif 000028
【図２７】
2007107539.tif 000029
【図２８】
2007107539.tif 000030
【図２９】
2007107539.tif 000031
【図３０】
2007107539.tif 000032
【図３１】
2007107539.tif 000033
【図３２】
2007107539.tif 000034
【図３３】
2007107539.tif 000035
【図３４】
2007107539.tif 000036
【図３５】
2007107539.tif 000037
【図３６】
2007107539.tif 000038
【図３７】
2007107539.tif 000039
【図３８】
2007107539.tif 000040
【図３９】
2007107539.tif 000041
【図４０】
2007107539.tif 000042
【図４１】
2007107539.tif 000043
【図４２】
2007107539.tif 000044
【図４３】
2007107539.tif 000045
【図４４】
2007107539.tif 000046
【図４５】
2007107539.tif 000047