(57)【要約】【課題】内燃機関の状態量の基準値学習が完了する前にバックアップ電源による給電の瞬断が再度発生することに起因して、内燃機関の状態量の実際値を正確に算出できなくなることを抑制することのできる内燃機関の制御システムを提供する。【解決手段】位置カウント回路７４は、吸気バルブの最大リフト量について給電開始時における初期値からの変更履歴を検出する。検出された変更履歴は、ＤＲＡＭ７２ｂに記憶される。給電が瞬断から復帰した後に変更履歴の残存データが瞬断直前に記憶されたデータであるときには、初期値を残存データに基づいて算出される状態量の実際値に設定する一方、残存データが瞬断直前に記憶されたデータでないときには、最大リフト量基準値学習を実行する。基準値学習が完了する前に給電が再度瞬断した場合には、給電が復帰したときに変更履歴の残存データが瞬断直前に記憶されたデータであるか否かに関係なく基準値学習を実行する。【選択図】図４
2008267187.tif 000002
【特許請求の範囲】
【請求項１】
所定の作動範囲で作動することにより内燃機関の状態量を変更するアクチュエータと、給電状態下で前記状態量についてその給電の開始時における初期値からの変更履歴を検出する履歴検出手段と、前記履歴検出手段によって検出された変更履歴を記憶する揮発性メモリと、前記履歴検出手段と前記揮発性メモリとに給電するバックアップ電源とを備え、前記揮発性メモリに記憶された変更履歴と前記初期値とに基づいて前記状態量の実際値を算出する内燃機関の制御システムであって、
前記バックアップ電源による給電が一時的に停止される状態から復帰した後に、前記揮発性メモリに残存した前記変更履歴の残存データがその給電停止の直前に記憶されたデータであるか否かを判断する残存データ判断手段と、前記残存データ判断手段により前記変更履歴の残存データが給電停止の直前に記憶されたデータである旨判断されたときに、前記初期値を前記残存データに基づいて算出される状態量の実際値に設定する初期値設定手段と、前記残存データ判断手段により前記残存データがその給電停止の直前に記憶されたデータでない旨判断されたときに、前記アクチュエータを前記作動範囲の限界位置に作動させ、前記初期値を該限界位置に対応する前記状態量の基準値に設定するとともに前記変更履歴をクリアする基準値学習手段とを備える内燃機関の制御システムにおいて、
前記基準値学習手段による基準値学習が完了する前に前記バックアップ電源による給電が再度一時的に停止された場合には、その給電が復帰したときに、前記残存データ判断手段による判断を無効化して前記基準値学習手段による基準値学習を実行する
ことを特徴とする内燃機関の制御システム。
【請求項２】
請求項１に記載の内燃機関の制御システムにおいて、
前記残存データ判断手段は、前記変更履歴のデータを前記揮発性メモリの第１のアドレスに記憶するとともに、前記データの論理レベルをビット毎に反転したデータを前記揮発性メモリの第２のアドレスに記憶し、前記バックアップ電源による給電が一時的に停止される状態から復帰した後に、前記第１のアドレスと前記第２のアドレスとに残存したデータにおいて互いに対応するビットのビットデータの排他的論理和が全て「１」であるときに、前記第１のアドレスと前記第２のアドレスとに残存した残存データが給電停止の直前に記憶されたデータである旨判断する
ことを特徴とする内燃機関の制御システム。
【請求項３】
請求項１又は２に記載の内燃機関の制御システムにおいて、
前記基準値学習手段は前記基準値学習の実行中であるときにその旨を示す情報値を書き換え可能な不揮発性メモリに記憶し、前記バックアップ電源による給電が一時的に停止された状態から復帰したときに前記情報値が前記基準値学習の実行中である旨を示すときに、前記残存データ判断手段による判断を無効化して前記基準値学習手段による基準値学習を実行する
ことを特徴とする内燃機関の制御システム。
【請求項４】
請求項１〜３のいずれかに記載の内燃機関の制御システムにおいて、
前記状態量は機関バルブのバルブ状態量である
ことを特徴とする内燃機関の制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、内燃機関の状態量について所定の初期値からの変更履歴を検出し、これら初期値と変更履歴とに基づいて同状態量を算出する内燃機関の制御システムに関する。
【背景技術】
【０００２】
近年、内燃機関の燃費や出力の向上を図るため、マイクロコンピュータにより機関バルブの最大リフト量にかかる目標値を機関運転状態に基づいて設定するとともに、その目標値と一致するように最大リフト量をフィードバック制御する内燃機関の制御システムが採用されている（例えば特許文献１参照）。このような制御システムとしては、以下の構成が一般的に採用される。
【０００３】
すなわち、この制御システムにあっては、最大リフト量を変更するアクチュエータと、アクチュエータの作動に基づいてパルス信号を出力するエンコーダとが設けられている。エンコーダによって出力されるパルス信号は、マイクロコンピュータに設けられたカウンタ回路に取り込まれ、このカウンタ回路は、エンコーダのパルス信号に基づいて同回路のカウント値を増減させることにより最大リフト量の変更履歴を検出する。なお、このカウンタ回路は、マイクロコンピュータのバックアップ電源により給電されており、例えば内燃機関の運転が停止した場合等、バックアップ電源による給電が停止された場合に、その給電停止期間の長さに関係なく、カウンタ回路のカウント値が「０」にリセットされ、同カウンタ回路によって検出された変更履歴がクリアされる。
【０００４】
機関の運転が開始した後に、マイクロコンピュータは、バックアップ電源を通じて同マイクロコンピュータの揮発性メモリのメモリセルを充電・放電することにより、カウンタ回路のカウント値、換言すれば最大リフト量について機関始動時における初期値からの変更履歴を揮発性メモリに記憶する。また、機関運転停止時には、最大リフト量の最終的な値が書き換え可能な不揮発メモリに記憶され、これが次回の機関始動時以降における最大リフト量の初期値とされる。そしてマイクロコンピュータの中央処理装置は、揮発性メモリに記憶された最大リフト量の変更履歴と上述の初期値とに基づいて最大リフト量の実際値を算出し、この実際値と機関運転状態に基づいて設定された目標値との乖離が小さくなるようにアクチュエータを通じて機関バルブの最大リフト量を変更する。
【０００５】
ところで、車体や内燃機関の振動により、バックアップ電源の給電回路において接触不良が生じる可能性があり、バックアップ電源による給電の一時的な停止、いわゆる瞬断が生じることがある。こうした瞬断が発生した場合であっても、給電停止時から所定の時間が経過するまでは、揮発性メモリに記憶された変更履歴のデータが残存しているため、この残存データを給電復帰時以降に利用できることがある。ただし、こうした給電の瞬断が発生する前後においては、給電の状態が不安定な状態であるため、充電されたメモリセルに蓄積されている電荷が放電したり、突入電流等の影響により放電されたメモリセルに電荷が充電されたりすることがある。そのため、瞬断から復帰した後、変更履歴のデータが残存した場合であっても、そのデータの内容が変化することがあり、これにより最大リフト量の制御を正確に実行できなくなることがある。
【０００６】
そこで、上述したような瞬断による悪影響を最小限に抑えるために、以下のような残存データの信頼性を判定するための処理が通常実行される。すなわち、通常制御時に変更履歴のデータを揮発性メモリの所定のアドレスに記憶するとともに、ミラーデータ等、その履歴データと所定の対応関係を有するように設定された対照データを他のアドレスに記憶し、給電が瞬断から復帰した後に、２つのアドレスに残存した残存データについてその所定の対応関係が維持されている否かを判断する。そして、所定の対応関係が維持されている旨判断した場合には、残存データの内容が瞬断直前に記憶された内容である旨判断し、この残存データの示す変更履歴及び初期値に基づいてその時点最大リフト量の実際値を算出された後、カウンタ回路のカウント値が「０」にリセットされ、同回路によって検出される変更履歴がクリアされる。このため、それ以後最大リフト量の実際値の算出に用いられる初期値をその時点の実際値と同じ値に設定して書き換え可能な不揮発メモリに記憶する。これにより、カウンタ回路によって検出される変更履歴と初期値とに基づく最大リフト量の算出を再開することができ、バックアップ電源による給電の瞬断が発生した場合であっても、給電復帰後、速やかに最大リフト量の制御を再開することができるようになる。
【０００７】
一方、それら残存データについて所定の対応関係が維持されていない旨判断した場合には、それらアドレスの少なくとも１つに記憶されたデータの内容が瞬断により変化した旨判断し、最大リフト量の通常制御を一旦終了して最大リフト量の基準値学習を実行するようにしている。具体的には、アクチュエータをその作動範囲の限界位置に作動させ、予め不揮発性メモリに記憶されたこの限界位置に対応する最大リフト量の値を初期値として実際値を再設定するようにしている。ここで、このように給電の瞬断後に基準値学習を実行する場合には、カウンタ回路によって検出される変更履歴が給電の瞬断により一旦クリアされるとともに、アクチュエータの作動に伴いその変更履歴が更新されて揮発性メモリに記憶される。そして、最大リフト量の実際値を再設定した後に、最大リフト量の初期値をその時点の実際値、すなわちその限界位置に対応する最大リフト量の値に設定するとともに、カウンタ回路に記憶される変更履歴を「０」にリセットし、最大リフト量の制御を再開する。
【特許文献１】特開２００５−２０１１１７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
このように、最大リフト量の基準値学習を実行することにより、バックアップ電源による給電の瞬断に起因して最大リフト量の実際値及び変更履歴のデータが失われた場合であっても、その給電が瞬断から復帰した後に、最大リフト量の制御を再開することができる。ところで、例えば車体や内燃機関の振動が連続に発生する場合に、上述の基準値学習が完了する前にバックアップ電源による給電の瞬断が再度発生することがある。そしてこのように瞬断が再度発生すると、給電が瞬断から復帰した後に、上述したように２つのアドレスに残存した残存データについてその所定の対応関係が維持されている否かを判断する。そして、残存データについて所定の対応関係が維持されていない場合、すなわち再度の瞬断により揮発性メモリに記憶された変更履歴のデータが変化した場合には、基準値学習が再度実行される。
【０００９】
一方、残存データについて所定の対応関係が維持されている場合、すなわち揮発性メモリに記憶された変更履歴のデータが再度発生した瞬断の前後において変化していない場合には、残存データに示される変更履歴及び機関起動時の初期値に基づいてその時点の実際値を算出し、この算出された実際値をそれ以後の初期値として設定し、最大リフト量の制御が再開されるようになる。
【００１０】
しかし上述したように、給電が再度発生した瞬断から復帰したときに揮発性メモリに残存したデータは、機関始動時からの変更履歴を示すものではなく、基準値学習処理の実行中に揮発メモリに記憶されたものであるため、有意のデータではない。そのため、再度の瞬断から復帰した後に、それ以後最大リフト量の実際値の算出に用いられる初期値をその時点の実際値とは異なる値に設定してしまい、最大リフト量の実際値を正確に算出できなくなるといった不都合が生じることとなる。
【００１１】
なお、機関バルブの最大リフト量を制御する制御システムについて説明したが、こうした不都合は同構成に限らず、内燃機関の状態量について所定の初期値からの変更履歴とその初期値とに基づいて同内燃機関の状態量の実際値を算出する他の内燃機関の制御システムにおいても概ね共通して発生し得る。
【００１２】
本発明は、こうした従来の実情に鑑みてなされたものであり、その目的は、内燃機関の状態量の基準値学習が完了する前にバックアップ電源による給電の瞬断が再度発生することに起因して、内燃機関の状態量の実際値を正確に算出できなくなることを抑制することのできる内燃機関の制御システムを提供することにある。
【課題を解決するための手段】
【００１３】
以下、上記課題を解決するための手段及びその作用効果について記載する。
請求項１に記載の発明は、所定の作動範囲で作動することにより内燃機関の状態量を変更するアクチュエータと、給電状態下で前記状態量についてその給電の開始時における初期値からの変更履歴を検出する履歴検出手段と、前記履歴検出手段によって検出された変更履歴を記憶する揮発性メモリと、前記履歴検出手段と前記揮発性メモリとに給電するバックアップ電源とを備え、前記揮発性メモリに記憶された変更履歴と前記初期値とに基づいて前記状態量の実際値を算出する内燃機関の制御システムであって、前記バックアップ電源による給電が一時的に停止される状態から復帰した後に、前記揮発性メモリに残存した前記変更履歴の残存データがその給電停止の直前に記憶されたデータであるか否かを判断する残存データ判断手段と、前記残存データ判断手段により前記変更履歴の残存データが給電停止の直前に記憶されたデータである旨判断されたときに、前記初期値を前記残存データに基づいて算出される状態量の実際値に設定する初期値設定手段と、前記残存データ判断手段により前記残存データがその給電停止の直前に記憶されたデータでない旨判断されたときに、前記アクチュエータを前記作動範囲の限界位置に作動させ、前記初期値を該限界位置に対応する前記状態量の基準値に設定するとともに前記変更履歴をクリアする基準値学習手段とを備える内燃機関の制御システムにおいて、前記基準値学習手段による基準値学習が完了する前に前記バックアップ電源による給電が再度一時的に停止された場合には、その給電が復帰したときに、前記残存データ判断手段による判断を無効化して前記基準値学習手段による基準値学習を実行することをその要旨とする。
【００１４】
同構成によれば、例えば状態量の基準値学習の実行中においてアクチュエータがその作動範囲の限界位置に到達する前にバックアップ電源による給電が再度瞬断した場合に、揮発性メモリに残存した変更履歴の残存データがその瞬断の直前に記憶されたデータであるか否かに関係なく、状態量の基準値学習が実行されるようになる。そのため、再度の瞬断から復帰したときに、揮発性メモリに残存した変更履歴の残存データがその瞬断の直前に記憶されたデータであるため、それが有意のデータであると誤判断され、その残存データによって示される変更履歴と前回瞬断の前に設定された初期値とに基づいてその時点の状態量の実際値を誤って算出することを回避することができるようになる。その結果、それ以後状態量の実際値の算出に用いられる初期値をその時点の実際値とは異なる値に設定することを回避することができ、内燃機関の状態量の基準値学習が完了する前にバックアップ電源による給電の瞬断が再度発生することに起因して、内燃機関の状態量の実際値を正確に算出できなくなることを回避することができるようになる。
【００１５】
なお、残存データ判断手段の具体的な構成としては、請求項２に記載の発明によるように、前記残存データ判断手段は、前記変更履歴のデータを前記揮発性メモリの第１のアドレスに記憶するとともに、前記データの論理レベルをビット毎に反転したデータを前記揮発性メモリの第２のアドレスに記憶し、前記バックアップ電源による給電が一時的に停止される状態から復帰した後に、前記第１のアドレスと前記第２のアドレスとに残存したデータにおいて互いに対応するビットのビットデータの排他的論理和が全て「１」であるときに、前記第１のアドレスと前記第２のアドレスとに残存した残存データが給電停止の直前に記憶されたデータである旨判断する、といった構成を採用することができる。
【００１６】
また、基準値学習の実行中に瞬断が再度発生したことを判断するためには、例えば請求項３に記載の発明によるように、前記基準値学習手段は前記基準値学習の実行中であるときにその旨を示す情報値を書き換え可能な不揮発性メモリに記憶し、前記バックアップ電源による給電が一時的に停止された状態から復帰したときに前記情報値が前記基準値学習の実行中である旨を示すときに、前記残存データ判断手段による判断を無効化して前記基準値学習手段による基準値学習を実行する、といった構成を採用することができる。
【００１７】
請求項４に記載の発明は、請求項１〜３のいずれかに記載の内燃機関の制御システムにおいて、前記状態量は機関バルブのバルブ状態量であることをその要旨とする。
例えば機関バルブの最大リフト量等のバルブ状態量を制御する制御システムにおいて、バルブ状態量の基準値学習が完了する前にバックアップ電源による給電の瞬断が再度発生することに起因して、バルブ状態量の実際値を正確に算出できなくなると、最大リフト量の制御を正確に再開できなくなることが懸念される。
【００１８】
この点、上記構成によれば、バルブ状態量の基準値学習が完了する前にバックアップ電源による給電の瞬断が再度発生することに起因して、バルブ状態量の実際値を正確に算出できなくなることを回避することができる。なお、機関バルブのバルブ特性には、機関バルブの開時期、閉時期、最大リフト量、開期間、及びリフトプロフィール、並びにこれらの組み合わせが含まれる。
【発明を実施するための最良の形態】
【００１９】
以下、本発明を機関バルブの最大リフト量を制御する内燃機関の制御システムに適用した一実施形態について、図１〜図８を参照して説明する。ここで、図１は、車両に搭載される内燃機関の吸・排気動弁装置の一部断面構造を示す断面図であり、図２は、内燃機関の吸・排気動弁装置の配設態様を示す平面図である。
【００２０】
図１及び図２に示されるように、内燃機関は４つの気筒を有しており、そのシリンダヘッド２にはこれら気筒に対応した一対の排気バルブ１０と吸気バルブ２０とが往復動可能にそれぞれ設けられている。また、シリンダヘッド２には、それら排気バルブ１０と吸気バルブ２０とに対応して排気動弁装置９０と吸気動弁装置１００とがそれぞれ設けられている。
【００２１】
排気動弁装置９０には、各排気バルブ１０に対応してラッシュアジャスタ１２が設けられるとともに、このラッシュアジャスタ１２と排気バルブ１０との間にはロッカーアーム１３が架設されている。ロッカーアーム１３は、その一端がラッシュアジャスタ１２に支持されるとともに他端が排気バルブ１０の基端部に当接されている。また、シリンダヘッド２に回転可能に支持された排気カムシャフト１４には複数のカム１５が形成されており、それらカム１５の外周面はロッカーアーム１３の中間部分に設けられたローラ１３ａに当接されている。排気バルブ１０にはリテーナ１６が設けられるとともに、このリテーナ１６とシリンダヘッド２との間にはバルブスプリング１１が設けられている。このバルブスプリング１１の付勢力によって排気バルブ１０は閉弁方向に付勢されている。そしてこれにより、ロッカーアーム１３のローラ１３ａはカム１５の外周面に押圧されている。機関運転時にカム１５が回転すると、ロッカーアーム１３はラッシュアジャスタ１２により支持される部分を支点として揺動する。その結果、排気バルブ１０はロッカーアーム１３によって開閉駆動されるようになる。
【００２２】
一方、吸気動弁装置１００には、排気側と同様にバルブスプリング２１、吸気バルブ２０に設けられたリテーナ２６、ロッカーアーム２３及びラッシュアジャスタ２２が設けられている。シリンダヘッド２に回転可能に支持された吸気カムシャフト２４には複数のカム２５が形成されている。ここで、排気動弁装置９０とは異なり、吸気動弁装置１００には、カム２５とロッカーアーム２３との間に仲介駆動機構５０が設けられている。この仲介駆動機構５０は入力部５１と一対の出力部５２とを有しており、これら入力部５１及び出力部５２はシリンダヘッド２に固定された支持パイプ５３に揺動可能に支持されている。ロッカーアーム２３は、ラッシュアジャスタ２２及びバルブスプリング２１の付勢力によって出力部５２側に付勢され、同ロッカーアーム２３の中間部分に設けられたローラ２３ａが出力部５２の外周面に当接されている。これにより、入力部５１が出力部５２とともに左回り方向Ｗ１に揺動付勢され、入力部５１においてその径方向に延出した部分の先端に設けられたローラ５１ａがカム２５の外周面に押圧される。
【００２３】
こうした吸気動弁装置１００では、機関運転時にカム２５が回転すると、同カム２５はローラ５１ａに摺接しつつ入力部５１を押圧し、これにより出力部５２が支持パイプ５３の周方向に揺動するようになる。そして出力部５２が揺動すると、ロッカーアーム２３はラッシュアジャスタ２２により支持される部分を支点として揺動する。その結果、吸気バルブ２０はロッカーアーム２３によって開閉駆動されるようになる。
【００２４】
また、支持パイプ５３には、その軸方向に沿って駆動可能なコントロールシャフト５４が挿入されている。このコントロールシャフト５４は、連結部材を介して入力部５１及び出力部５２に駆動連結されており、同コントロールシャフト５４がその軸方向に沿って駆動すると、それら入力部５１及び出力部５２が相対的に揺動するようになる。次に、図３を参照してコントロールシャフト５４と入力部５１，出力部５２とを連結する仲介駆動機構５０について詳述する。尚、図３は仲介駆動機構５０の内部構造を示す破断斜視図である。
【００２５】
図３に示されるように、入力部５１はそれら一対の出力部５２の間に設けられており、これら入力部５１と出力部５２との内部には略円筒状の連通空間が形成されている。また、入力部５１の内周面にはヘリカルスプライン５１ｈが形成されるとともに、出力部５２の内周面には入力部５１のヘリカルスプライン５１ｈとその歯すじが逆向きに傾斜するヘリカルスプライン５２ｈが形成されている。
【００２６】
入力部５１と出力部５２との内部に形成された空間には、略円筒状のスライダギア５５が設けられている。このスライダギア５５の外周面の中央部分には、入力部５１のヘリカルスプライン５１ｈに噛合するヘリカルスプライン５５ａが形成されるとともに、その外周面の両端部には出力部５２のヘリカルスプライン５２ｈに噛合するヘリカルスプライン５５ｂが形成されている。
【００２７】
また、この略円筒状のスライダギア５５の内壁には、その周方向に沿って延伸する溝５５ｃが形成されており、この溝５５ｃにはブッシュ５６が嵌合されている。なお、このブッシュ５６は、溝５５ｃの伸びる方向に沿って同溝５５ｃの内周面を摺動することができるが、スライダギア５５に対するその軸方向の相対変位は溝５５ｃによって規制されている。
【００２８】
そして、支持パイプ５３はスライダギア５５の内部に形成された貫通空間に挿入されるとともに、コントロールシャフト５４はその支持パイプ５３に挿入されている。また、支持パイプ５３の管壁にはその軸方向に延伸する長孔５３ａが形成されている。スライダギア５５とコントロールシャフト５４との間には、長孔５３ａを通じてこれらスライダギア５５とコントロールシャフト５４とを連結する係止ピン５７が設けられている。この係止ピン５７の一端がコントロールシャフト５４に形成された凹部（図示略）に挿入されるとともに、他端がブッシュ５６に形成された貫通孔５６ａに挿入されている。
【００２９】
こうした仲介駆動機構５０にあって、コントロールシャフト５４がその軸方向に沿って変位すると、これに連動してスライダギア５５が軸方向に変位する。スライダギア５５の外周面に形成されたヘリカルスプライン５５ａ，５５ｂは、入力部５１及び出力部５２の内周面に形成されたヘリカルスプライン５１ｈ、５２ｈとそれぞれ噛合されているため、スライダギア５５がその軸方向に変位すると、入力部５１と出力部５２とは逆の方向に回転する。その結果、入力部５１と出力部５２との相対位相差が変更され、吸気バルブ２０の最大リフト量が変更される。
【００３０】
ここで、先の図２に示されるように、コントロールシャフト５４の基端部（図中右端部）には、ブラシレスモータ６０が設けられており、このブラシレスモータ６０は、マイクロコンピュータ７０に接続されている。マイクロコンピュータ７０は、ブラシレスモータ６０を駆動制御することにより吸気バルブ２０の最大リフト量を機関運転状態に応じた目標リフト量と一致するようにフィードバック制御する。以下、このマイクロコンピュータ７０による最大リフト量のフィードバック制御について、図４〜図６を参照して説明する。ここで、図４は、コントロールシャフト５４、ブラシレスモータ６０及びマイクロコンピュータ７０を示すブロック図であり、図５は、各センサの出力波形及び各カウント値の推移態様を示すタイミングチャートである。
【００３１】
図４に示されるように、コントロールシャフト５４の基端部は、変換機構６１を介してブラシレスモータ６０の出力軸６０ａに連結されている。この変換機構６１は、出力軸６０ａの回転運動をコントロールシャフト５４の軸方向への直線運動に変換するためのものである。すなわち、出力軸６０ａを正・逆回転させると、その回転が変換機構６１によってコントロールシャフト５４の往復動に変換される。また、コントロールシャフト５４には、係止部５４ａが形成されるとともに、内燃機関のシリンダヘッドカバー３には、この係止部５４ａが当接可能な２つのストッパ３ａ，３ｂが形成されている。コントロールシャフト５４は、これらストッパ３ａ，３ｂに係止部５４ａが当接するようになる２つの限界位置の間において駆動可能となっている。ここで、コントロールシャフト５４の係止部５４ａがストッパ３ａに当接する駆動限界位置（以下「Ｈｉ端」と称する）に駆動したときにブラシレスモータ６０の作動量、すなわち回転角が設計最大値ＤＨ０になる。一方、コントロールシャフト５４の係止部５４ａがストッパ３ｂに当接する駆動限界位置（以下「Ｌｏ端」と称する）に駆動したときにブラシレスモータ６０の回転角が設計最小値ＤＬ０になる。
【００３２】
ブラシレスモータ６０には、３つの電気角センサＤ１〜Ｄ３と、これら電気角センサＤ１〜Ｄ３に対応して出力軸６０ａと一体回転する８極の多極マグネット（図示略）とが設けられている。これら電気角センサＤ１〜Ｄ３は、８極の多極マグネットの磁気に応じて図５（ａ）〜（ｃ）に示されるようなパルス状の信号、すなわち論理ハイレベル信号「Ｈ」と論理ローレベル信号「Ｌ」とを交互に出力する。なお、こうしたパルス信号の波形が得られるよう、３つの電気角センサＤ１〜Ｄ３は出力軸６０ａの周方向において１２０°毎に配置されている。したがって、これら電気角センサＤ１〜Ｄ３のうちの１つから出力されるパルス信号のエッジは出力軸６０ａの４５°回転毎に発生している。また、これら電気角センサＤ１〜Ｄ３のうちの１つからのパルス信号は、他の電気角センサからのパルス信号に対し、出力軸６０ａの３０°回転分だけ進み側及び遅れ側に位相をずらした状態となっている。
【００３３】
また、ブラシレスモータ６０には、ロータリーエンコーダとして機能する２つの位置センサＳ１，Ｓ２と、これら位置センサＳ１，Ｓ２に対応して出力軸６０ａと一体回転する４８極の多極マグネット（図示略）とが設けられている。これら位置センサＳ１，Ｓ２は、４８極の多極マグネットの磁気に応じて図５（ｄ）及び（ｅ）に示されるようなパルス状の信号、すなわち論理ハイレベル信号「Ｈ」と論理ローレベル信号「Ｌ」とを交互に出力する。なお、こうしたパルス信号の波形が得られるよう、位置センサＳ１は出力軸６０ａの周方向において位置センサＳ２から１７６．２５°を隔てて配置されている。したがって、位置センサＳ１，Ｓ２のうちの１つから出力されるパルス信号のエッジは出力軸６０ａの７．５°回転毎に発生している。また、位置センサＳ２からのパルス信号は、位置センサＳ１からのパルス信号に対し、出力軸６０ａの３．７５°回転分だけ進み側及び遅れ側に位相をずらした状態となっている。
【００３４】
ここで、電気角センサＤ１〜Ｄ３を合わせたパルス信号のエッジ間隔が１５°であるのに対し、位置センサＳ１，Ｓ２を合わせたパルス信号のエッジ間隔は３．７５°となっている。したがって、電気角センサＤ１〜Ｄ３を合わせたパルス信号のエッジ発生から次回のエッジ発生までには、位置センサＳ１，Ｓ２を合わせたパルス信号のエッジが４回発生するようになっている。
【００３５】
これら電気角センサＤ１〜Ｄ３及び位置センサＳ１，Ｓ２によって出力されたパルス信号はマイクロコンピュータ７０に取り込まれる。このマイクロコンピュータ７０は、プログラムによって数値計算や情報処理等を行う中央演算処理装置（ＣＰＵ）７１、各種の制御に必要なプログラムやデータを記憶する不揮発性メモリ（ＲＯＭ）７２ａ、入力データや演算結果を一時的に記憶する揮発性メモリ（ＤＲＡＭ）７２ｂ、学習制御により得られた初期値等を記憶する書き換え可能な不揮発性メモリ（ＥＥＰＲＯＭ）７２ｃを備えている。ここで、ＣＰＵ７１及びメモリ７２ａ〜７２ｃは、マイクロコンピュータ７０のバックアップ電源によって給電されている。なお、マイクロコンピュータ７０がデータをＤＲＡＭ７２ｂのアドレスに記憶するとき、そのアドレスに対応する各メモリセルに対して充電・放電を行うことにより、各メモリセルに対応するビットのビットデータの値が「１」又は「０」になる。すなわち、電荷が蓄積されているメモリセルに対応するビットのビットデータの値が「１」になる一方、電荷が蓄積されていないメモリセルに対応するビットのビットデータの値が「０」になる。
【００３６】
マイクロコンピュータ７０には、車両のアクセルペダルの開度を検出するアクセルセンサ８１や、内燃機関のクランクシャフトの回転位相を検出するクランク角センサ８２等、機関の運転状態を検出するセンサが接続されている。マイクロコンピュータ７０は、機関の運転状態に基づき吸気バルブ２０の最大リフト量の制御目標値を設定するとともに、上述した電気角センサＤ１〜Ｄ３及び位置センサＳ１，Ｓ２によって出力されたパルス信号に基づいてブラシレスモータ６０の回転位相、換言すれば吸気バルブ２０の最大リフト量の実際値を検出するようにしている。
【００３７】
また、マイクロコンピュータ７０は、それら電気角センサＤ１〜Ｄ３及び位置センサＳ１，Ｓ２によるパルス信号に基づいてそれぞれの計数値（以下、「カウント値」と称する）を増減する電気角カウンタ回路７３及び位置カウンタ回路７４を備えている。これらカウンタ回路７３，７４もマイクロコンピュータ７０のバックアップ電源によって給電されている。ＣＰＵ７１は、これら電気角カウンタ回路７３及び位置カウンタ回路７４のカウント値に基づいてブラシレスモータ６０の回転位相、換言すれば吸気バルブ２０の最大リフト量の実際値を検出するようにしている。以下、吸気バルブ２０の最大リフト量の実際値を検出する手順について、図５及び図６を参照して詳細に説明する。
【００３８】
ここで、図５（ａ）〜（ｅ）は、上述したようにブラシレスモータ６０の出力軸６０ａの回転時に電気角センサＤ１〜Ｄ３、及び位置センサＳ１，Ｓ２から出力するパルス信号の波形を示している。そして図５（ｆ）〜（ｈ）は、ブラシレスモータ６０の回転時における回転角の変化に対し、それぞれ電気角カウント値Ｅ、位置カウント値Ｐ、及びストロークカウント値Ｓが推移するパターンを示している。また、図６（ａ）は、電気角センサＤ１〜Ｄ３の出力信号のパターンと電気角カウント値Ｅとの対応関係を示すとともに、図６（ｂ）は、位置センサＳ１，Ｓ２の出力信号のエッジが発生するときに位置カウント値Ｐが増減する態様を示している。
【００３９】
まず、各カウント値について説明する。なお、位置カウント値Ｐは給電開始時における最大リフト量の初期値からの変更履歴に相当し、位置カウント値Ｐはそれら初期値及び変更履歴に基づいて算出される最大リフト量の実際値に相当する。
【００４０】
［電気角カウント値Ｅ］
電気角カウント値Ｅは、電気角センサＤ１〜Ｄ３のパルス信号に基づいて電気角カウンタ回路７３によって設定され、ブラシレスモータ６０の回転位相を示す。具体的には、図６（ａ）に示されるように、各電気角センサＤ１〜Ｄ３から各々論理ハイレベル信号「Ｈ」と論理ローレベル信号「Ｌ」とのいずれが出力されているかに応じて、電気角カウント値Ｅに「０」〜「５」範囲内の連続した整数値のうちのいずれかに設定されてＤＲＡＭ７２ｂに記憶される。なお、図６（ａ）に示される電気角センサＤ１〜Ｄ３のパルス信号の組み合わせと電気角カウント値Ｅとの対応関係は、ＲＯＭ７２ａに記憶されている。
【００４１】
マイクロコンピュータ７０は、ＤＲＡＭ７２ｂに記憶された電気角カウント値Ｅに基づきブラシレスモータ６０の回転位相を検出し、同ブラシレスモータ６０の通電相を切り替えてブラシレスモータ６０を正・逆回転する。ここで、ブラシレスモータ６０の正回転時には、電気角カウント値Ｅは「０」→「１」→「２」→「３」→「４」→「５」→「０」といった順序で順方向に変化する。一方、ブラシレスモータ６０の逆回転時には、電気角カウント値Ｅ「５」→「４」→「３」→「２」→「１」→「０」→「５」といった順序で逆方向に変化する。
【００４２】
また、例えば内燃機関の運転が停止した場合等、バックアップ電源による給電が停止されると、その給電の停止期間の長さに関係なく、電気角カウンタ回路７３によって増減される位置カウント値Ｐが「０」にリセットされる。そして、バックアップ電源による給電が開始されるときに、マイクロコンピュータ７０は、ＲＯＭ７２ａに記憶される電気角センサＤ１〜Ｄ３のパルス信号の組み合わせと電気角カウント値Ｅとの対応関係を参照し、その時点のパルス信号の組み合わせに応じたカウント値に、電気角カウント値Ｅの初期値を設定するようにしている。
【００４３】
［位置カウント値Ｐ］
位置カウント値Ｐは、位置センサＳ１，Ｓ２のパルス信号に基づいて位置カウンタ回路７４によって計数され、内燃機関が始動した後に、その機関始動時の初期回転角に対して出力軸６０ａの回転角が変化した量、換言すれば吸気バルブ２０の最大リフト量について機関始動時における初期値からの変更履歴を示す。具体的には、位置センサＳ１，Ｓ２のうち、一方のセンサからパルス信号の立ち上がりエッジ及びと立下りエッジのいずれが生じているか、及び他方のセンサから論理ハイレベル信号「Ｈ」と論理ローレベル信号「Ｌ」とのいずれが出力されているかに応じて、位置カウント値Ｐに対し「＋１」と「−１」とのいずれかが加算される（図６（ｂ）参照）。なお、同図６（ｂ）において、「↑」はパルス信号の立ち上がりエッジを表し、「↓」はパルス信号の立下りエッジを表している。こうした処理を実行して得られる位置カウント値Ｐは、各位置センサＳ１，Ｓ２からのパルス信号のエッジを計数した値になる。そして、この計数された位置カウント値ＰはＤＲＡＭ７２ｂに記憶される。
【００４４】
ここで、ブラシレスモータ６０の正回転中であれば、位置カウント値Ｐは、図５（ｄ）及び（ｅ）に示される位置センサＳ１，Ｓ２からのパルス信号のエッジ毎に「１」ずつ加算され、図５（ｇ）に示されるパターンに沿って右方向に推移するようになる。一方、ブラシレスモータ６０の逆回転中であれば、位置カウント値Ｐは、上記パルス信号のエッジ毎に「１」ずつ減算され、図５（ｇ）に示されるパターンに沿って左方向に推移するようになる。
【００４５】
また、例えば内燃機関の運転が停止した場合等、バックアップ電源による給電が停止されると、その給電停止期間の長さに関係なく、位置カウント値Ｐが「０」にリセットされる。そして、バックアップ電源による給電が開始されると、位置カウント値Ｐが位置センサＳ１，Ｓ２のパルス信号に基づいて「０」から増減される。したがって、位置カウント値Ｐは、ブラシレスモータ６０の出力軸６０ａの回転位置がバックアップ電源による給電開始時における初期位置に対してどれだけ変化したか、換言すれば機関運転の吸気バルブ２０の最大リフト量が機関始動時の初期値に対してどれだけ変化したかを示す。
【００４６】
［ストロークカウント値Ｓ］
ストロークカウント値Ｓは、コントロールシャフト５４をＨｉ端に変位させたときの出力軸６０ａの回転角を基準値（０度）とした同ブラシレスモータ６０の回転角を示す。すなわち、ストロークカウント値Ｓの初期設定として、コントロールシャフト５４をＨｉ端に変位させたとき、マイクロコンピュータ７０はストロークカウント値Ｓを「０」に設定する。マイクロコンピュータ７０は、位置カウント値Ｐをストロークカウント値Ｓに加算し、ストロークカウント値Ｓをこの加算された値に更新される。なお、機関停止が完了し、吸気動弁装置１００の駆動が停止されたときのストロークカウント値Ｓの最終値が次回機関運転の開始時の初期値Ｓｇとして学習されてＥＥＰＲＯＭ７２ｃに記憶される。
【００４７】
したがって、マイクロコンピュータ７０は、ＥＥＰＲＯＭ７２ｃに記憶された初期値ＳｇとＤＲＡＭ７２ｂに記憶された位置カウント値Ｐとに基づきストロークカウント値Ｓ、換言すればコントロールシャフト５４をＨｉ端に変位させたときの出力軸６０ａの回転角を基準値（０度）とした同ブラシレスモータ６０の回転角を算出する。そして、マイクロコンピュータ７０は、このストロークカウント値Ｓに基づいて吸気バルブ２０の最大リフト量の実際値を算出するとともに、この実際値と機関運転状態に基づいて設定された制御目標値との乖離が小さくなるようにブラシレスモータ６０を制御する。これにより、吸気バルブ２０の最大リフト量を機関運転状態に適した値に変更し、内燃機関の燃費や出力の向上を図ることができるようになる。
【００４８】
ところで、車体や内燃機関の振動により、マイクロコンピュータ７０の給電回路において接触不良が生じ、バックアップ電源による給電の一時的な停止、いわゆる瞬断が生じることがある。このようにバックアップ電源による給電が停止した場合、位置カウンタ回路７４の位置カウント値Ｐが「０」にリセットされる一方、その給電が停止してから所定の時間が経過するまで、ＤＲＡＭ７２ｂに記憶された位置カウント値Ｐのデータが残存することができる。ただし、こうした瞬断が発生する前後においては、バックアップ電源による給電の状態が不安定な状態であるため、充電されたメモリセルに蓄積されている電荷が放電したり、突入電流等の影響により放電されたメモリセルに電荷が充電されたりすることがある。そのため、瞬断から復帰した後、位置カウント値Ｐのデータが残存した場合であっても、そのデータの内容が変化し、最大リフト量の制御を正確に実行できなくなることが懸念される。
【００４９】
もっともこの場合には、前述したように、以下の処理を実行することによりこうした瞬断による悪影響を最小限に抑えることができる。すなわち、通常制御時に位置カウント値ＰのデータをＤＲＡＭ７２ｂの所定のアドレスに記憶するとともに、ミラーデータ等、その履歴データと所定の対応関係を有するように設定された対照データを他のアドレスに記憶し、瞬断から復帰した後に、２つのアドレスに残存した残存データについてその所定の対応関係が維持されている否かを判断する。そして、所定の対応関係が維持されている旨判断した場合には、残存データの内容が瞬断直前に記憶された内容である旨判断し、この残存データが示す位置カウント値Ｐの値及び初期値Ｓｇに基づいてその時点ストロークカウント値Ｓを算出する。
【００５０】
ここで、上述したように、給電の瞬断により位置カウンタ回路７４の位置カウント値Ｐが「０」にリセットされるため、それ以後ストロークカウント値Ｓの算出に用いられる初期値Ｓｇをその時点のストロークカウント値Ｓの値に設定することにより、位置カウンタ回路７４の位置カウント値Ｐと初期値Ｓｇとに基づくストロークカウント値Ｓの算出を再開することができるようになる。これにより、バックアップ電源による給電の瞬断が発生した場合であっても、給電復帰後、速やかに最大リフト量の制御を再開することができるようになる。
【００５１】
一方、それら残存データについて所定の対応関係が維持されていない旨判断した場合には、それらアドレスの少なくとも１つに記憶されたデータの内容が瞬断により変化した旨判断し、最大リフト量の通常制御を一旦終了して最大リフト量の基準値学習を実行するようにしている。具体的には、コントロールシャフト５４をＨｉ端（又はＬｏ端）に駆動し、初期値Ｓｇを予めＲＯＭ７２ａに記憶されたＨｉ端（又はＬｏ端）に対応するストロークカウント値Ｓに設定するとともに、位置カウンタ回路７４の位置カウント値Ｐを「０」にリセットする。これにより、位置カウンタ回路７４の位置カウント値Ｐと初期値Ｓｇとに基づくストロークカウント値Ｓの算出を再開することができるようになる。なお、このように給電瞬断後に基準値学習を実行する場合には、位置カウンタ回路７４の位置カウント値Ｐが給電の瞬断により一旦「０」にリセットされるが、コントロールシャフト５４の駆動に伴いその位置カウント値Ｐが更新されてＤＲＡＭ７２ｂに記憶される。
【００５２】
このように、最大リフト量の基準値学習を実行することにより、バックアップ電源による給電の瞬断に起因して位置カウント値Ｐのデータが失われた場合であっても、瞬断から復帰した後に、最大リフト量の制御を再開することができる。ただし、例えば車体や内燃機関の振動が連続に発生する場合に、上述の基準値学習が完了する前にバックアップ電源による給電の瞬断が再度発生することがある。このように瞬断が再度発生すると、バックアップ電源による給電が瞬断から復帰した後に、上述したように２つのアドレスに残存した位置カウント値Ｐのデータについてその所定の対応関係が維持されている否かを判断する。そして、それら残存データについて所定の対応関係が維持されていない場合、すなわち再度の瞬断によりＤＲＡＭ７２ｂに記憶された位置カウント値Ｐのデータが変化した場合には、基準値学習が再度実行される。一方、残存データについて所定の対応関係が維持されている場合、すなわちＤＲＡＭ７２ｂに記憶された位置カウント値Ｐのデータが変化していない場合には、それら残存データに示される位置カウント値Ｐの値及び機関起動時の初期値Ｓｇに基づいてその時点のストロークカウント値Ｓを算出し、この算出されたストロークカウント値Ｓにそれ以後ストロークカウント値Ｓの算出に用いられる初期値Ｓｇを設定して最大リフト量の制御を再開するようになる。
【００５３】
しかし上述したように、再度の瞬断から復帰したときにＤＲＡＭ７２ｂに残存したデータは、機関起動時の初期値Ｓｇからの変更履歴を示すものではなく、基準値学習処理の実行中にＤＲＡＭ７２ｂに記憶されたものであるため、有意のデータではない。そのため、再度の瞬断から復帰した後に、それ以後ストロークカウント値Ｓの算出に用いられる初期値Ｓｇをその時点のストロークカウント値Ｓとは異なる値に設定してしまい、ストロークカウント値Ｓを正確に算出できなくなるといった不都合が生じる。
【００５４】
そこで、本実施形態にかかる内燃機関の制御システムでは、以下に説明する処理を通じてこうした不都合を回避するようにしている。以下、図７のフローチャートを参照してバックアップ電源による給電の瞬断に対応する処理の手順について説明する。
【００５５】
図７に示される一連の処理は、マイクロコンピュータ７０により所定の制御周期をもって繰り返し実行される。この処理ではまず、今回の制御周期がバックアップ電源による給電が開始した後の最初の制御周期であるか否かを判断する（ステップＳ１０）。
【００５６】
ここで、今回の制御周期が給電開始後の最初の制御周期でない場合には（ステップＳ１０：ＮＯ）、給電の停止が発生していない旨を判断して位置カウンタ回路７４の位置カウント値ＰのデータをＤＲＡＭ７２ｂのアドレスＡＤＰ１に記憶するとともに、そのデータの論理レベルをビット毎に反転したミラーデータを対照データとしてＤＲＡＭ７２ｂのアドレスＡＤＰ２に記憶する（ステップＳ１１）。
【００５７】
そして、アドレスＡＤＰ１に記憶された位置カウント値Ｐ及びＥＥＰＲＯＭ７２ｃに記憶された初期値Ｓｇに基づき吸気バルブ２０の最大リフト量の実際値を算出する。この実際値と機関運転状態に基づいて設定された制御目標値との乖離が小さくなるようにブラシレスモータ６０をフィードバック制御し（ステップＳ１２）、この一連の処理を一旦終了する。
【００５８】
一方、今回の制御周期が給電開始後の最初の制御周期である場合には（ステップＳ１０：ＹＥＳ）、給電の停止が発生した旨を判断し、機関運転の開始・停止状態を示す運転フラグＦｋが「オン」であるか否かを判断する（ステップＳ２０）。ここで、この運転フラグＦｋは、ＣＰＵ７１によって内燃機関のイグニッションスイッチの操作に基づいて設定されてＥＥＰＲＯＭ７２ｃに記憶される。具体的には、ＣＰＵ７１は、内燃機関のイグニッションスイッチのオン操作が行われるときに、運転フラグＦｋを「オン」に設定する。一方、イグニッションスイッチのオフ操作が行われるときに、その運転フラグＦｋを「オフ」に設定した後、リレーを遮断することによりバックアップ電源による給電を停止するようにしている。したがって、瞬断から復帰した直後の制御周期には、運転フラグＦｋが「オン」に設定されたままの状態となる。
【００５９】
ここで、運転フラグＦｋが「オフ」である場合には（ステップＳ２０：ＮＯ）、瞬断からの復帰ではなく通常の給電開始時である旨を判断し、通常の最大リフト量のフィードバック制御（ステップＳ１１、ステップＳ１２）を実行してこの一連の処理を一旦終了する。
【００６０】
一方、運転フラグＦｋが「オン」である場合には（ステップＳ２０：ＹＥＳ）、今回の制御周期が瞬断から復帰した直後の制御周期である旨判断し、ＥＥＰＲＯＭ７２ｃに記憶されている学習フラグＦｇが「オフ」であるか否かを判断する（ステップＳ３０）。なお、学習フラグＦｇは、瞬断の直前の制御周期が最大リフト量の基準値学習中の制御周期であったか否かを示す情報値である。この学習フラグＦｇは、機関始動時に「オフ」に設定され、そして後述の処理において基準値学習が開始するときには「オン」に設定される一方、基準値学習が終了したときには「オフ」に設定される。
【００６１】
ここで、学習フラグＦｇが「オフ」である場合には（ステップＳ３０：ＹＥＳ）、瞬断の直前の制御周期が通常の制御周期であった旨判断し、アドレスＡＤＰ１，ＡＤＰ２に残存した残存データにおいて互いに対応するビットの排他的論理和のうち、少なくとも１つが「０」であるかを判断する（ステップＳ４０）。
【００６２】
アドレスＡＤＰ１，ＡＤＰ２に残存した残存データにおいて互いに対応するビットのビットデータの排他的論理和が全て「１」である場合には（ステップＳ４０：ＮＯ）、アドレスＡＤＰ１，ＡＤＰ２の残存データが瞬断直前の制御周期にＤＲＡＭ７２ｂに記憶されたデータである旨判断する。この場合には、アドレスＡＤＰ１の残存データによって示される位置カウント値Ｐ及びＥＥＰＲＯＭ７２ｃに記憶される初期値Ｓｇに基づいてその時点のストロークカウント値Ｓを算出し（ステップＳ４１）、その初期値Ｓｇを算出されたストロークカウント値Ｓの値に更新してＥＥＰＲＯＭ７２ｃに記憶する（ステップＳ４２）。
【００６３】
一方、アドレスＡＤＰ１，ＡＤＰ２に残存した残存データにおいて互いに対応するビットのビットデータの排他的論理和のうち、少なくとも１つが「０」である場合には（ステップＳ４０：ＹＥＳ）、アドレスＡＤＰ１，ＡＤＰ２の少なくとも一方のデータがバックアップ電源による給電の停止により変化した旨判断する。この場合には、学習フラグＦｇを「オン」に設定し（ステップＳ５０）、最大リフト量の基準値学習を実行する。すなわち、コントロールシャフト５４をＨｉ端に駆動し（ステップＳ６０）、ＲＯＭ７２ａに記憶されたＨｉ端に対応するストロークカウント値Ｓに初期値Ｓｇを設定するとともに、位置カウンタ回路７４の位置カウント値Ｐを「０」にリセットする（ステップＳ７０）。ここで、このように給電の瞬断後に基準値学習を実行する場合には、カウンタ回路によって検出される変更履歴が給電の瞬断により一旦クリアされるが、アクチュエータの作動に伴いその変更履歴が更新されてＤＲＡＭ７２ｂに記憶される。なお、この基準値学習が開始してからコントロールシャフト５４がＨｉ端に駆動されるまでの間に、位置カウンタ回路７４の位置カウント値Ｐが位置センサＳ１，Ｓ２のパルス信号に基づいて更新されてＤＲＡＭ７２ｂに記憶される。そしてこの基準値学習が完了した後に、学習フラグＦｇを「オフ」に設定し（ステップＳ８０）、この一連の処理を一旦終了する。
【００６４】
ところで、先のステップＳ３０において学習フラグＦｇが「オン」である場合には（ステップＳ３０：ＮＯ）、瞬断の直前の制御周期が最大リフト量の基準学習中の制御周期であった旨判断し、ステップＳ４０の処理をスキップ、すなわち同ステップＳ４０での判断を無効化して最大リフト量の基準値学習（ステップＳ６０，Ｓ７０）を実行する。そしてこの基準値学習が完了した後に、学習フラグＦｇを「オフ」に設定し（ステップＳ８０）、この一連の処理を一旦終了する。
【００６５】
以下、図８を参照して、上述した給電の瞬断に対応する処理についてその一具体例を説明する。
図８（ａ）に示されるように、例えばバックアップ電源による給電が瞬断する直前の通常制御周期に位置カウンタ回路７４の位置カウント値Ｐが「１３」であるとき、そのカウント値「１３」に対応するデータ「１１０１」をＤＲＡＭ７２ｂのアドレスＡＤＰ１の第０〜３ビットに記憶するとともに、そのデータの論理レベルをビット毎に反転したデータ「００１０」をＤＲＡＭ７２ｂのアドレスＡＤＰ２の第０〜３ビットに記憶する（ステップＳ１１）。
【００６６】
ここで、給電が瞬断する直前の制御周期が通常の制御周期であったため、瞬断から復帰した直後の制御周期に学習フラグＦｇが「オフ」である（ステップＳ３０：ＹＥＳ）。したがって、瞬断から復帰した直後の制御周期に、アドレスＡＤＰ１，ＡＤＰ２に残存した残存データにおいて互いに対応するビットのビットデータの排他的論理和のうち少なくとも１つが「０」であるか否かを判断する（ステップＳ４０）。
【００６７】
ここで、それら残存データにおいて互いに対応するビットのビットデータの排他的論理和が全て「１」である場合には（ステップＳ４０：ＮＯ）、アドレスＡＤＰ１，ＡＤＰ２の残存データが瞬断直前の制御周期にＤＲＡＭ７２ｂに記憶されたデータである旨判断する。この場合には、アドレスＡＤＰ１の残存データによって示される位置カウント値Ｐ、すなわち「１３」及びＥＥＰＲＯＭ７２ｃに記憶される初期値Ｓｇに基づいてその時点のストロークカウント値Ｓを算出する（ステップＳ４１）。そして、それ以後ストロークカウント値Ｓの算出に用いられる初期値Ｓｇを算出されたストロークカウント値Ｓの値に更新してＥＥＰＲＯＭ７２ｃに記憶する（ステップＳ４２）。
【００６８】
一方、瞬断から復帰した直後の制御周期に、例えば図８（ａ）の破線に示されるようにアドレスＡＤＰ１の第２ビットに対応するメモリセルの電荷が放電することにより、アドレスＡＤＰ１に残存したデータが「１００１」になると、アドレスＡＤＰ１，ＡＤＰ２の第２ビットのビットデータの排他的論理和が「０」になる（ステップＳ４０：ＹＥＳ）。この場合には、アドレスＡＤＰ１，ＡＤＰ２の少なくとも一方のデータがバックアップ電源による給電の停止により変化した旨判断し、学習フラグＦｇを「オン」に設定して（ステップＳ５０）最大リフト量の基準値学習を実行する。すなわち、コントロールシャフト５４をＨｉ端に駆動し（ステップＳ６０）、ＲＯＭ７２ａに記憶されたＨｉ端に対応するストロークカウント値Ｓに初期値Ｓｇを設定するとともに、位置カウンタ回路７４の位置カウント値Ｐを「０」にリセットする（ステップＳ７０）。そしてこの基準値学習が完了した後に、学習フラグＦｇを「オフ」に設定する（ステップＳ８０）。
【００６９】
なお、この基準値学習が開始してからコントロールシャフト５４がＨｉ端に駆動されるまでの間に、位置カウンタ回路７４は位置センサＳ１，Ｓ２のパルス信号に基づいて位置カウント値Ｐを「０」から増大させる。そして位置カウンタ回路７４によって出力される位置カウント値ＰのデータがＤＲＡＭ７２ｂに記憶される。
【００７０】
ところで、例えば上述したように最大リフト量の基準値学習が開始した後、位置カウンタ回路７４の位置カウント値Ｐが「０」から「５」に増大したときにバックアップ電源による給電の瞬断が再度発生した場合、その瞬断から復帰した直後の制御周期における学習フラグＦｇは「オン」に設定されている（ステップＳ３０：ＮＯ）。そのため、ステップＳ４０による判断を無効化して最大リフト量の基準値学習（ステップＳ６０，Ｓ７０）を実行する。換言すれば、瞬断から復帰した直後の制御周期に、図８（ｂ）に示されるようにアドレスＡＤＰ１，ＡＤＰ２にデータ「０１０１」，「１０１０」がそれぞれ残存し、互いに対応するビットデータの排他的論理和が全て「１」である場合であっても、アドレスＡＤＰ１の残存データ「０１０１」に示される位置カウント値Ｐの値「５」及びＥＥＰＲＯＭ７２ｃに記憶されている初期値Ｓｇに基づいてストロークカウント値Ｓを算出する処理は行われず、再度最大リフト量の基準値学習が実行される。そして、この基準値学習が完了した後に学習フラグＦｇが「オフ」に設定される。
【００７１】
以上説明した実施形態によれば、以下の効果が得られるようになる。
・最大リフト量の基準値学習の実行中においてバックアップ電源による給電が再度瞬断した場合に、ＤＲＡＭ７２ｂに残存した位置カウント値Ｐのデータが瞬断の直前の制御周期に記憶されたデータであるか否かに関係なく、最大リフト量の基準値学習を実行するようにした。そのため、再度の瞬断から復帰したときに、ＤＲＡＭ７２ｂに残存した位置カウント値Ｐの残存データがその瞬断の直前の制御周期に記憶されたデータである場合に、ＤＲＡＭ７２ｂに残存したデータが前回瞬断の復帰時におけるストロークカウント値Ｓからの変更履歴を示すデータであるにもかかわらず、残存データによって示される位置カウント値Ｐと前回瞬断の前に設定された初期値Ｓｇに基づいてその時点のストロークカウント値Ｓを誤って算出することを回避することができるようになる。その結果、それ以後ストロークカウント値Ｓの算出に用いられる初期値Ｓｇをその時点のストロークカウント値Ｓとは異なる値に設定することを回避することができ、最大リフト量の基準値学習が完了する前にバックアップ電源による給電の瞬断が再度発生することに起因して、最大リフト量の実際値を正確に算出できなくなることを回避することができる。
【００７２】
なお、上記実施形態は、これを適宜変更した以下の形態にて実施することもできる。
・上記実施形態では、通常制御時に位置カウント値Ｐのデータの対照データとしてそのミラーデータをＤＲＡＭ７２ｂに記憶するようにしている。これに限らず、例えば位置カウント値Ｐのデータと同じデータ等、その位置カウント値Ｐのデータと他の対応関係を有するデータを対照データとしてＤＲＡＭ７２ｂに記憶する構成を採用することもできる。
【００７３】
・上記実施形態では、位置カウント値Ｐ等の入力データや演算結果を一時的に記憶する揮発性メモリとしてＤＲＡＭを採用するようにしているが、例えばＳＲＡＭ等、他種の揮発性メモリを採用することもできる。また、上記実施形態では、初期値Ｓｇを記憶する不揮発性メモリとしてＥＥＰＲＯＭ７２ｃを採用するようにしているが、これに限らず、MRAM(Magnetic RAM)、FeRAM(Ferroelectric RAM)等、他の書き換え可能な不揮発性メモリを採用することもできる。
【００７４】
・上記実施形態では、機関バルブの最大リフト量の変更量と初期値とに基づいてその実際値を算出する内燃機関の制御システムに本発明を適用する場合について例示した。これに限らず、例えばクランクシャフトの回転角を検出する制御システム等、機関状態量の変更量とその初期値とに基づいてその状態量の実際値を算出する他の内燃機関の制御システムにおいても、基本的に同様の態様をもって本発明を適用することができる。
【図面の簡単な説明】
【００７５】
【図１】この発明の一実施形態にかかる内燃機関の動弁装置についてその一部断面構造を示す断面図。
【図２】同実施形態にかかる内燃機関の動弁装置についてその配設態様を示す平面図。
【図３】同実施形態の仲介駆動機構についてその内部構造を示す破断斜視図。
【図４】同実施形態のコントロールシャフト、ブラシレスモータ及びマイクロコンピュータを主に示すブロック図。
【図５】（ａ）〜（ｈ）同実施形態の各センサの出力波形及び各カウンタのカウント値が推移するパターン変化を示すタイミングチャート。
【図６】（ａ），（ｂ）同実施形態の各センサの出力信号と電気角カウンタ及び位置カウンタとの関係を示す表。
【図７】同実施形態の制御システムによるバックアップ電源による給電の瞬断に対応する処理についてその処理手順を示すフローチャート。
【図８】（ａ），（ｂ）同実施形態の制御システムによるバックアップ電源による給電の瞬断に対応する処理についてその一具体例を説明するブロック図。
【符号の説明】
【００７６】
Ｓ１，Ｓ２…位置センサ、Ｄ１〜Ｄ３…電気角センサ、２…シリンダヘッド、３…シリンダヘッドカバー、３ａ，３ｂ…ストッパ、１０…排気バルブ、１１…バルブスプリング、１２…ラッシュアジャスタ、１３…ロッカーアーム、１３ａ…ローラ、１４…排気カムシャフト、１５…カム、１６…リテーナ、２０…吸気バルブ、２１…バルブスプリング、２２…ラッシュアジャスタ、２３…ロッカーアーム、２３ａ…ローラ、２４…吸気カムシャフト、２５…カム、２６…リテーナ、５０…仲介駆動機構、５１…入力部、５１ａ…ローラ、５１ｈ…ヘリカルスプライン、５２…出力部、５２ｈ…ヘリカルスプライン、５３…支持パイプ、５３ａ…長孔、５４…コントロールシャフト、５４ａ…係止部、５５…スライダギア、５５ａ…ヘリカルスプライン、５５ｂ…ヘリカルスプライン、５５ｃ…溝、５６…ブッシュ、５６ａ…貫通孔、５７…係止ピン、６０…ブラシレスモータ、６０ａ…出力軸、６１…変換機構、７０…マイクロコンピュータ、７１…中央演算処理装置（ＣＰＵ）、７２ａ…不揮発性メモリ（ＲＯＭ）、７２ｂ…揮発性メモリ（ＤＲＡＭ）、７２ｃ…不揮発性メモリ（ＥＥＰＲＯＭ）、７３…電気角カウンタ回路、７４…位置カウント回路、８１…アクセルセンサ、８２…クランク角センサ、９０…排気動弁装置、１００…吸気動弁装置。
【図１】
2008267187.tif 000003
【図２】
2008267187.tif 000004
【図３】
2008267187.tif 000005
【図４】
2008267187.tif 000006
【図５】
2008267187.tif 000007
【図６】
2008267187.tif 000008
【図７】
2008267187.tif 000009
【図８】
2008267187.tif 000010