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