(第1の実施形態)
以下、本発明を機関バルブの最大リフト量を制御する内燃機関の制御システムに適用した第1の実施形態について、図1〜図8を参照して説明する。ここで、図1は、本実施形態にかかる内燃機関の吸・排気動弁装置の一部断面構造を示す断面図であり、図2は、本実施形態にかかる内燃機関の吸・排気動弁装置の配設態様を示す平面図である。
図1及び図2に示されるように、車両に搭載される内燃機関は4つの気筒を有しており、そのシリンダヘッド2にはこれら気筒に対応した一対の排気バルブ10と吸気バルブ20とが往復動可能にそれぞれ設けられている。また、シリンダヘッド2には、それら排気バルブ10と吸気バルブ20とに対応して排気動弁装置90と吸気動弁装置100とがそれぞれ設けられている。
排気動弁装置90には、各排気バルブ10に対応してラッシュアジャスタ12が設けられるとともに、このラッシュアジャスタ12と排気バルブ10との間にはロッカーアーム13が架設されている。ロッカーアーム13は、その一端がラッシュアジャスタ12に支持されるとともに他端が排気バルブ10の基端部に当接されている。また、シリンダヘッド2に回転可能に支持された排気カムシャフト14には複数のカム15が形成されており、それらカム15の外周面はロッカーアーム13の中間部分に設けられたローラ13aに当接されている。排気バルブ10にはリテーナ16が設けられるとともに、このリテーナ16とシリンダヘッド2との間にはバルブスプリング11が設けられている。このバルブスプリング11の付勢力によって排気バルブ10は閉弁方向に付勢されている。そしてこれにより、ロッカーアーム13のローラ13aはカム15の外周面に押圧されている。機関運転時にカム15が回転すると、ロッカーアーム13はラッシュアジャスタ12により支持される部分を支点として揺動する。その結果、排気バルブ10はロッカーアーム13によって開閉駆動されるようになる。
一方、吸気動弁装置100には、排気側と同様にバルブスプリング21、吸気バルブ20に設けられたリテーナ26、ロッカーアーム23及びラッシュアジャスタ22が設けられており、シリンダヘッド2に回転可能に支持された吸気カムシャフト24には複数のカム25が形成されている。また、排気動弁装置90とは異なり、吸気動弁装置100には、カム25とロッカーアーム23との間に仲介駆動機構50が設けられている。この仲介駆動機構50は入力部51と一対の出力部52とを有しており、これら入力部51及び出力部52はシリンダヘッド2に固定された支持パイプ53に揺動可能に支持されている。ここで、ロッカーアーム23は、ラッシュアジャスタ22及びバルブスプリング21の付勢力によって出力部52側に付勢され、同ロッカーアーム23の中間部分に設けられたローラ23aが出力部52の外周面に当接されている。これにより、入力部51が出力部52とともに左回り方向W1に揺動付勢され、入力部51においてその径方向に延出した部分の先端に設けられたローラ51aがカム25側に付勢されるようになる。
こうした動弁装置では、機関運転時にカム25が回転すると、同カム25はローラ51aに摺接しつつ入力部51を押圧し、これにより出力部52が支持パイプ53の周方向に揺動するようになる。そして出力部52が揺動すると、ロッカーアーム23はラッシュアジャスタ22により支持される部分を支点として揺動する。その結果、吸気バルブ20はロッカーアーム23によって開閉駆動されるようになる。
また、支持パイプ53には、その軸方向に沿って駆動可能なコントロールシャフト54が挿入されている。このコントロールシャフト54は、仲介駆動機構50内部に設けられる連結部材を介して入力部51及び出力部52に駆動連結されており、同コントロールシャフト54がその軸方向に沿って駆動すると、それら入力部51及び出力部52が相対的に揺動するようになる。次に、図3を参照してコントロールシャフト54と入力部51,出力部52との連結関係について更に詳述する。尚、図3は仲介駆動機構50の内部構造を示す破断斜視図である。
図3に示されるように、入力部51はそれら一対の出力部52の間に設けられており、これら入力部51と出力部52との内部には略円筒状の連通空間が形成されている。また、入力部51の内周面にはヘリカルスプライン51hが形成されるとともに、出力部52の内周面には入力部51のヘリカルスプライン51hとその歯すじが逆向きに傾斜するヘリカルスプライン52hが形成されている。
入力部51及び出力部52の内部には、略円筒状のスライダギア55が設けられている。このスライダギア55の外周面の中央部分には、入力部51のヘリカルスプライン51hに噛合するヘリカルスプライン55aが形成されるとともに、その外周面の両端部には出力部52のヘリカルスプライン52hに噛合するヘリカルスプライン55bが形成されている。
また、この略円筒状のスライダギア55の内壁には、その円周方向に沿って延伸する溝55cが形成されており、この溝55cにはブッシュ56が嵌合されている。なお、このブッシュ56は、溝55cの伸びる方向に沿って同溝55cの内周面を摺動することができるが、スライダギア55の軸方向における変位は規制されている。
そして、支持パイプ53はスライダギア55の内部に形成された貫通空間に挿入されるとともに、コントロールシャフト54は支持パイプ53に挿入されている。また、支持パイプ53の管壁にはその軸方向に延伸する長孔53aが形成されている。スライダギア55とコントロールシャフト54との間には、長孔53aを通じてこれらスライダギア55とコントロールシャフト54とを連結する係止ピン57が設けられている。この係止ピン57の一端がコントロールシャフト54に形成された凹部(図示略)に挿入されるとともに、他端がブッシュ56に形成された貫通孔56aに挿入されている。
こうした仲介駆動機構50にあって、コントロールシャフト54がその軸方向に沿って変位すると、これに連動してスライダギア55が軸方向に変位する。スライダギア55の外周面に形成されたヘリカルスプライン55a,55bは、入力部51及び出力部52の内周面に形成されたヘリカルスプライン51h、52hとそれぞれ噛合っているため、スライダギア55がその軸方向に変位すると、入力部51と出力部52とは逆の方向に回転する。その結果、入力部51と出力部52との相対位相差が変更され、吸気バルブ20の最大リフト量が変更される。
ここで、先の図2に示されるように、コントロールシャフト54の基端部(図中右端部)には、モータ60が設けられており、このモータ60は、内燃機関の制御を統括的に行うマイクロコンピュータ70に接続されている。マイクロコンピュータ70は、モータ60を駆動制御することにより吸気バルブ20の最大リフト量を機関運転状態に基づいてフィードバック制御する。以下、このマイクロコンピュータ70による最大リフト量のフィードバック制御について、図4〜図6を参照して説明する。ここで、図4は、コントロールシャフト54、モータ60及びマイクロコンピュータ70を示すブロック図であり、図5は、各センサの出力波形及び各カウンタのカウンタ値が推移する際の変化態様を示すタイミングチャートである。
図4に示されるように、コントロールシャフト54の基端部は、変換機構61を介してモータ60の出力軸60aに連結されている。この変換機構61は、出力軸60aの回転運動をコントロールシャフト54の軸方向への直線運動に変換するためのものである。すなわち、出力軸60aを正・逆回転させると、その回転が変換機構61によってコントロールシャフト54の往復動に変換される。また、コントロールシャフト54には、係止部54aが形成されるとともに、内燃機関のシリンダヘッドカバー3には、係止部54aが当接可能な2つのストッパ3a,3bが形成され、コントロールシャフト54は、これらストッパ3a,3bに対応する2つの駆動限界位置の間において駆動可能となっている。ここで、コントロールシャフト54がストッパ3aに対応する駆動限界位置(以下「Hi端」と称する)に駆動したときにモータ60の駆動量が設計最大値DH0になる一方、コントロールシャフト54がストッパ3bに対応する駆動限界位置(以下「Lo端」と称する)に駆動したときにモータ60の駆動量が設計最小値DL0になる。
モータ60には、3つの電気角センサD1〜D3が設けられるとともに、これら電気角センサD1〜D3に対応して出力軸60aと一体回転する8極の多極マグネット(図示略)が更に設けられている。これら電気角センサD1〜D3は、8極の多極マグネットの磁気に応じて図5(a)〜(c)に示されるようなパルス状の信号、すなわち理論ハイレベル信号「H」と理論ローレベル信号「L」とを交互に出力する。なお、こうしたパルス信号の波形が得られるよう、3つの電気角センサD1〜D3は周方向において120°毎に配置されている。したがって、これら電気角センサD1〜D3のうちの1つから出力されるパルス信号のエッジは出力軸60aの45°回転毎に発生している。また、これら電気角センサD1〜D3のうちの1つからのパルス信号は、他の電気角センサからのパルス信号に対し、出力軸60aの30°回転分だけ進み側及び遅れ側に位相をずらした状態となっている。
また、モータ60には、エンコーダとして機能する2つの位置センサS1,S2が設けられるとともに、これら位置センサS1,S2に対応して出力軸60aと一体回転する48極の多極マグネット(図示略)が更に設けられている。これら位置センサS1,S2は、48極の多極マグネットの磁気に応じて図5(d)及び(e)に示されるようなパルス状の信号、すなわち理論ハイレベル信号「H」と理論ローレベル信号「L」とを交互に出力する。なお、こうしたパルス信号の波形が得られるよう、位置センサS1は周方向において位置センサS2から176.25°を隔てて配置されている。したがって、位置センサS1,S2のうちの1つから出力されるパルス信号のエッジは出力軸60aの7.5°回転毎に発生している。また、位置センサS2からのパルス信号は、位置センサS1からのパルス信号に対し、出力軸60aの3.75°回転分だけ進み側及び遅れ側に位相をずらした状態となっている。
ここで、電気角センサD1〜D3を合わせたパルス信号のエッジ間隔が15°であるのに対し、位置センサS1,S2を合わせたパルス信号のエッジ間隔は3.75°となっている。したがって、電気角センサD1〜D3を合わせたパルス信号のエッジ発生から次回のエッジ発生までには、位置センサS1,S2を合わせたパルス信号のエッジが4回発生するようになっている。
これら電気角センサD1〜D3及び位置センサS1,S2によって出力されたパルス信号はマイクロコンピュータ70に取り込まれる。このマイクロコンピュータ70は、プログラムによって数値計算や情報処理等を行う中央演算処理装置(CPU)71、各種の制御に必要なプログラムやデータを記憶する不揮発性メモリ(ROM)72a、入力データや演算結果を一時的に記憶する揮発性メモリ(DRAM)72b、学習制御により得られた初期値等を記憶する書き換え可能な不揮発性メモリ(EEPROM)72cを備えている。なお、周知のように、マイクロコンピュータ70がデータをDRAM72bのアドレスに記憶するとき、そのアドレスに対応する各メモリセルに対して充電・放電を行うことにより、各メモリセルに対応するビットのビットデータの値が「1」又は「0」になる。すなわち、電荷が蓄積されているメモリセルに対応するビットのビットデータの値が「1」になる一方、電荷が蓄積されていないメモリセルに対応するビットのビットデータの値が「0」になる。
また、マイクロコンピュータ70には、車両のアクセルペダルの開度を検出するアクセルセンサ73や、内燃機関のクランクシャフトの回転位相を検出するクランク角センサ74等、機関の運転状態を検出するセンサが接続されている。マイクロコンピュータ70は、機関の運転状態に基づき吸気バルブ20の最大リフト量の制御目標値を設定するとともに、上述した電気角センサD1〜D3及び位置センサS1,S2によって出力されたパルス信号に基づいてモータ60の回転位相、換言すれば吸気バルブ20の最大リフト量の実際値を検出するようにしている。以下、吸気バルブ20の最大リフト量の実際値を検出する手順について、図5及び図6を参照して詳細に説明する。
ここで、図5(a)〜(e)は、上述したようにモータ60の出力軸60aの回転時に電気角センサD1〜D3、及び位置センサS1,S2から出力するパルス信号の波形を示している。そして図5(f)〜(h)は、モータ60の回転時における回転角の変化に対し、それぞれ電気角カウンタE、位置カウンタP、及びストロークカウンタSのカウンタ値が推移するパターンを示している。また、図6(a)は、電気角センサD1〜D3の出力信号のパターンと電気角カウンタEとの対応関係を示すとともに、図6(b)は、位置センサS1,S2の出力信号のエッジが発生するときに位置カウンタPが増減する態様を示している。
まず、各カウンタについて説明する。
[電気角カウンタE]
電気角カウンタEは、電気角センサD1〜D3のパルス信号に基づいて決められており、モータ60の回転位相を表す。具体的には、図6(a)に示されるように、各電気角センサD1〜D3から各々理論ハイレベル信号「H」と理論ローレベル信号「L」とのいずれが出力されているかに応じて、電気角カウンタEのカウンタ値に「0」〜「5」範囲内の連続した整数値のうちのいずれかが当てはめられる。マイクロコンピュータ70は、この電気角カウンタEのカウンタ値に基づきモータ60の回転位相を検出し、同モータ60の通電相を切り替えてモータ60を正・逆回転する。ここで、モータ60の正回転時には、電気角カウンタEのカウンタ値は「0」→「1」→「2」→「3」→「4」→「5」→「0」といった順序で順方向に変化する。一方、モータ60の逆回転時には、電気角カウンタEのカウンタ値「5」→「4」→「3」→「2」→「1」→「0」→「5」といった順序で逆方向に変化する。
[位置カウンタP]
位置カウンタPは、内燃機関が始動した後に、その機関始動時の初期回転角に対して出力軸60aの回転角が変化した量を表す。具体的には、図6(b)に示されるように、位置センサS1,S2のうち、一方のセンサからパルス信号の立ち上がりエッジと立下りエッジとのいずれが生じているか、及び他方のセンサから理論ハイレベル信号「H」と理論ローレベル信号「L」とのいずれが出力されているかに応じて、位置カウンタPのカウンタ値に対し「+1」と「−1」とのいずれかが加算される。なお、同図6(b)において、「↑」はパルス信号の立ち上がりエッジを表し、「↓」はパルス信号の立下りエッジを表している。こうした処理を実行して得られる位置カウンタPのカウンタ値は、各位置センサS1,S2からのパルス信号のエッジを計数した値になる。
ここで、モータ60の正回転中であれば、位置カウンタPのカウンタ値は、図5(d)及び(e)に示される位置センサS1,S2からのパルス信号のエッジ毎に「1」ずつ加算され、図5(g)に示されるグラフを右に進むようになる。一方、モータ60の逆回転中であれば、位置カウンタPのカウンタ値は、上記パルス信号のエッジ毎に「1」ずつ減算され、図5(g)に示されるグラフを左に進むようになる。なお、この位置カウンタPは、内燃機関の運転が停止すると、「0」にリセットされる。したがって、位置カウンタPのカウント値は、モータ60の出力軸60aの回転位置が機関始動時の初期位置に対してどれだけ変化したか、換言すれば機関運転の吸気バルブ20の最大リフト量が機関始動時の初期値に対してどれだけ変化したかを表す。また、位置カウンタPのカウンタ値は、吸気動弁装置100の駆動に基づいて迅速に加減算する必要があるため、DRAM72bに記憶される。
[ストロークカウンタS]
そして、ストロークカウンタSは、コントロールシャフト54をHi端に変位させたときの出力軸60aの回転角を基準値(0度)とした同モータ60の回転角を表す。すなわち、ストロークカウンタSの初期設定として、コントロールシャフト54をHi端に変位させたとき、マイクロコンピュータ70はストロークカウンタSのカウント値を「0」に設定する。マイクロコンピュータ70は、位置カウンタPのカウンタ値をストロークカウンタSのカウント値に加算し、ストロークカウンタSのカウント値をこの加算された値に更新される。なお、機関停止が完了し、吸気動弁装置100の駆動が停止されたときのストロークカウンタSのカウント値が次回機関運転の開始時の初期値Sgとして学習されてEEPROM72cに記憶される。
したがって、マイクロコンピュータ70は、EEPROM72cに記憶された初期値SgとDRAM72bに記憶された位置カウンタPのカウンタ値とに基づきストロークカウンタSのカウンタ値、換言すればコントロールシャフト54をHi端に変位させたときの出力軸60aの回転角を基準値(0度)とした同モータ60の回転角を算出する。そして、マイクロコンピュータ70は、このストロークカウンタSのカウンタ値に基づいて吸気バルブ20の最大リフト量の絶対値を算出するとともに、この絶対値と機関運転状態に基づいて設定された制御目標値との乖離が小さくなるようにモータ60を制御する。これにより、吸気バルブ20の最大リフト量を機関運転状態に適した値に変更し、内燃機関の燃費や出力の向上を図ることができるようになる。
ところで、車体や内燃機関の振動により、マイクロコンピュータ70の給電回路において接触不良が生じる可能性があり、DRAM72bに対する給電の一時的な停止、いわゆる瞬断が生じることがある。そしてこのようにDRAM72bに対する給電が停止してから所定の時間が経過すると、メモリセルに蓄積されている電荷が放電し、そのメモリセルに対応するビットのビットデータの値が「1」から「0」になることがある。そのため、給電が復帰するときに、DRAM72bに記憶された位置カウンタPのカウンタ値等のデータの内容は変化したり、失われたりするおそれがある。その結果、その給電が瞬断から復帰するときに、吸気バルブ20の最大リフト量の絶対値を誤って算出し、最大リフト量の制御を正確に実行できなくなることが懸念される。
そして前述したように、例えばDRAM72bに対する給電が瞬断から復帰した後、コントロールシャフト54をHi端又はLo端に駆動して、最大リフト量の基準値の学習(Hi端学習又はLo端学習)を実行することにより、その最大リフト量の絶対値を再設定することができる。ここで、このようにコントロールシャフト54をHi端又はLo端に駆動する期間に、内燃機関の吸気管に設けられたスロットルバルブの開度を変更することにより、吸気量の制御を実行する。また、所定期間内に上述した基準値の学習が実行される回数、すなわちマイクロコンピュータ70に対する給電の瞬断が発生する回数が所定の回数よりも多いときに、操作パネル等に設けられる警告灯を点灯させる構成が通常採用される。
ただし、例えば車両の加速状態下でコントロールシャフト54をLo端に駆動してLo端学習を実行すると、スロットルバルブの開度を最大値に変更しても吸入空気量が急激に減少するおそれがあるため、Lo端学習は燃料カット等、機関運転状態が限られた状態にあるときにしか実行できない。また、Hi端学習又はLo端学習を実行することができた場合であっても、同学習が完了するまでは最大リフト量を機関運転状態に適した量に制御することができないこととなる。
そこで、本実施形態にかかる内燃機関の制御システムでは、こうした不都合を好適に抑制する構成を採用するようにしている。以下、図7のフローチャートを参照してDRAM72bに対する給電の瞬断に対応する処理の手順について説明する。
図7に示される一連の処理は、マイクロコンピュータ70により所定の制御周期をもって繰り返し実行される。この処理ではまず、今回の制御周期がDRAM72bに対する給電が開始した後の最初の制御周期であるか否かを判断する(ステップS10)。
ここで、今回の制御周期が給電開始後の最初の制御周期でない場合には(ステップS10:NO)、給電の停止が発生していない旨を判断し、位置センサS1,S2によって出力されるパルス信号に基づいて位置カウンタPのカウンタ値を更新する。そしてこの更新されたカウンタ値のデータをDRAM72bの2つのアドレスAD1,AD2に記憶する(ステップS21)。
そして、更新された位置カウンタPのカウンタ値及びEEPROM72cに記憶された機関運転の開始時の初期値Sgに基づき吸気バルブ20の最大リフト量の絶対値を算出する。この絶対値と機関運転状態に基づいて設定された制御目標値との乖離が小さくなるようにモータ60をフィードバック制御し(ステップS22)、この一連の処理を一旦終了する。
一方、今回の制御周期が給電開始後の最初の制御周期である場合には(ステップS10:YES)、給電の停止が発生した旨を判断し、機関運転の開始・停止状態を表す運転フラグFkが「オン」であるか否かを判断する(ステップS20)。ここで、この運転フラグFkは、CPU71によって内燃機関のイグニッションスイッチの操作に基づいて設定されてEEPROM72cに記憶される。具体的には、CPU71は、内燃機関のイグニッションスイッチのオン操作が行われるときに、運転フラグFkを「オン」に設定する。一方、イグニッションスイッチのオフ操作が行われるときに、その運転フラグFkを「オフ」に設定した後、リレーを遮断することによりマイクロコンピュータ70に対する給電を停止するようにしている。したがって、マイクロコンピュータ70に対する給電が瞬断状態から復帰した直後の制御周期には、運転フラグFkが「オン」に設定されている。
そのため、運転フラグFkが「オフ」である場合には(ステップS20:NO)、今回の制御周期が機関始動後の最初の運転周期である旨を判断し、通常の最大リフト量のフィードバック制御(ステップS21、ステップS22)を実行してこの一連の処理を一旦終了する。
一方、運転フラグFkが「オン」である場合には(ステップS20:YES)、今回の制御周期が機関始動後の最初の制御周期でなく、マイクロコンピュータ70に対する給電が瞬断状態から復帰した直後の制御周期である旨判断する。
ここで、上述したように、DRAM72bに対する給電が停止してから所定の時間が経過すると、メモリセルに蓄積された電荷が放電してDRAM72bに記憶されたデータの内容が変化したり、失われたりするが、電荷がメモリセルに残留している期間内にその給電が復帰した場合には、DRAM72bに記憶されたデータが残存することがある。
また、DRAM72bにおいて、各メモリセルに蓄積される電荷の放電態様にはばらつきが存在するため、DRAM72bに対する給電の停止中に2つのアドレスにおいて互いに対応するメモリセルに蓄積される電荷が同じように放電する可能性は低い。したがってDRAM72bに記憶されたデータの内容が変化したり、失われたりした場合にあっては、2つのアドレスに残存した残存データが一致する可能性も低いこととなる。
そのため、DRAM72bに対する給電が瞬断状態から復帰した直後の制御周期において、アドレスAD1,AD2に残存した残存データが一致するか否かを判断する(ステップS30)ことに基づいて、その残存データが瞬断の直前の制御周期にDRAM72bに記憶された位置カウンタPのカウンタ値のデータであるか否かを判断することができる。
すなわち、アドレスAD1とアドレスAD2とに残存した残存データが一致していない場合には(ステップS30:NO)、アドレスAD1及びアドレスAD2の少なくとも一方のデータがDRAM72bに対する給電の停止により変化した旨判断する。この場合には、これらアドレスAD1,AD2のデータをクリアするとともに、コントロールシャフト54をHi端又はLo端に駆動し、前述した最大リフト量の基準値学習を行って(ステップS31)この一連の処理を一旦終了する。
一方、アドレスAD1とアドレスAD2とに残存した残存データが一致する場合には(ステップS30:YES)、その残存データが瞬断の直前の制御周期にDRAM72bに記憶された位置カウンタPのカウンタ値のデータである旨を判断し、その時点の位置カウンタPのカウンタ値をその残存データによって示される値に設定する(ステップS40)。そして、その時点の位置カウンタPのカウンタ値及びEEPROM72cに記憶された機関運転の開始時の初期値Sgに基づき吸気バルブ20の最大リフト量の絶対値を算出して吸気バルブ20の最大リフト量のフィードバック制御を実行し(ステップS50)、この一連の処理を一旦終了する。
以下、図8を参照して、上述給電の瞬断に対応する処理についてその一具体例を説明する。
図8に示されるように、例えばDRAM72bに対する給電が停止される直前の制御周期に更新された位置カウンタPのカウンタ値が「13」であるとき、そのカウンタ値「13」に対応するデータ「1101」をアドレスAD1,AD2の第0〜3ビットに記憶する(ステップS21)。
そして、その給電が瞬断から復帰した直後の制御周期に、アドレスAD1,AD2の残存データが同じ「1101」である場合には(ステップS30:YES)、この残存データが瞬断の直前の制御周期にアドレスAD1,AD2に記憶されたデータである旨を判断する。この場合、その時点の位置カウンタPのカウンタ値を残存データ「1101」に示される値、すなわち「13」に設定する(ステップS40)。
一方、その給電が瞬断状態から復帰した直後の制御周期に、例えば図8の破線に示されるように、アドレスAD1の第2ビットに対応するメモリセルの電荷が放電することにより、アドレスAD1に残存したデータが「1001」になった場合には(ステップS30:NO)、アドレスAD1,AD2の少なくとも一方のデータがDRAM72bに対する給電の停止により変化した旨判断する。この場合、前述したようにモータ60の駆動量の基準値学習を行うことにより、吸気バルブ20の最大リフト量の絶対値を再設定する(ステップS31)。
以上説明した第1の実施形態によれば、以下の効果が得られるようになる。
位置カウンタPのカウンタ値のデータをDRAM72bの2つのアドレスAD1,AD2に記憶することとした。そのため、DRAM72bに対する給電が一時的に停止される状態から復帰した後に、これらアドレスAD1,AD2に残存した残存データが一致するときに、その残存データが給電停止の直前にDRAM72bに記憶されたデータである旨を判断することができるようになる。そして、その時点の位置カウンタPのカウンタ値をその残存データによって示される値に設定することにより、瞬断が生じた場合であっても、吸気バルブ20の最大リフト量の絶対値を維持することができる。したがって、こうした給電停止が生じた場合であっても、給電復帰後速やかに吸気バルブ20の最大リフト量の制御を再開することができるようになる。
また、例えばマイクロコンピュータ70に対する給電の瞬断が相対的に頻繁に発生した場合であっても、DRAM72bの記憶内容を維持することができ、瞬断後において初期学習を実行せずに最大リフト量の制御を継続して実行することができる場合には、上述した警告灯を点灯させる必要がない。したがって、こうした瞬断が発生した場合、警告灯が不必要に点灯することを抑制することができる。
(第2の実施形態)
以下、本発明にかかる内燃機関の制御システムの第2の実施形態について、上述した第1の実施形態との相違点を中心に説明する。
上記第1の実施形態では、DRAM72bに対する給電が瞬断状態から復帰した後、アドレスAD1,AD2に残存した残存データが一致するか否かに基づいて、その残存データが瞬断の直前の制御周期にDRAM72bに記憶された位置カウンタPのカウンタ値のデータであるか否かを判断するようにしている。上述したようにDRAM72bに対する給電の停止中に、各メモリセルに蓄積される電荷の放電態様にはばらつきが存在するため、アドレスAD1,AD2に記憶されるデータが同一のデータになる可能性が極めて低いものであるが、「0」ではない。そしてこのように、アドレスAD1,AD2に記憶されるデータが同一のデータになると、給電が停止状態から復帰した後に、アドレスAD1,AD2に残存したデータの内容が変化したにもかかわらず、それらデータの値が一致することに基づいて位置カウンタPのカウンタ値を誤った値に設定するおそれがある。
そこで、本実施形態では、このように位置カウンタPのカウンタ値を誤った値に設定することを回避する構成を採用するようにしている。なお、この第2の実施形態の制御システムも、その基本的な構成は先に説明した第1の実施形態と同様であり、DRAM72bに対する給電が瞬断状態から復帰した後、DRAM72bの残存データが瞬断の直前の制御周期に記憶された位置カウンタPのカウンタ値のデータであるか否かを判断する方法のみが、その第1の実施形態と異なっている。以下、これについて図9のフローチャートを併せ参照して説明する。
図9に示される一連の処理ではまず、今回の制御周期がDRAM72bに対する給電が開始した後の最初の制御周期であるか否かを判断する(ステップS110)。
ここで、今回の制御周期が給電開始後の最初の制御周期でない場合には(ステップS110:NO)、給電の停止が発生していない旨を判断し、位置センサS1,S2によって出力されるパルス信号に基づいて位置カウンタPのカウンタ値を更新する。そして、この更新されたカウンタ値のデータをDRAM72bのアドレスAD3に記憶するとともに、そのデータの論理レベルをビット毎に反転したデータをDRAM72bのアドレスAD4に記憶する(ステップS121)。
そして、更新された位置カウンタPのカウンタ値及びEEPROM72cに記憶された機関運転の開始時の初期値Sgに基づいて吸気バルブ20の最大リフト量の絶対値を算出する。この絶対値と機関運転状態に基づいて設定された制御目標値との乖離が小さくなるようにモータ60をフィードバック制御し(ステップS122)、この一連の処理を一旦終了する。
一方、今回の制御周期が給電開始後の最初の制御周期である場合には(ステップS110:YES)、給電の停止が発生した旨を判断し、機関運転の開始・停止状態を表す運転フラグFkが「オン」であるか否かを判断する(ステップS120)。
運転フラグFkが「オフ」である場合には(ステップS120:NO)、今回の制御周期が機関始動後の最初の運転周期である旨を判断し、通常の最大リフト量のフィードバック制御(ステップS121、ステップS122)を実行してこの一連の処理を一旦終了する。
一方、運転フラグFkが「オン」である場合には(ステップS120:YES)、今回の制御周期が機関始動後の最初の制御周期でなく、マイクロコンピュータ70に対する給電が瞬断状態から復帰した直後の制御周期である旨判断する。
この場合には、アドレスAD3,AD4に残存した残存データにおいて互いに対応するビットの排他的論理和が全て「1」であるか否かを判断する(ステップS130)。
アドレスAD3,AD4に残存した残存データにおいて互いに対応するビットのビットデータの排他的論理和のうち、少なくとも1つが「0」である場合には(ステップS130:NO)、アドレスAD3,AD4の少なくとも一方のデータがDRAM72bに対する給電の停止により変化した旨判断する。この場合、これらアドレスAD3,AD4のデータをクリアするとともに、コントロールシャフト54をHi端又はLo端に駆動し、前述した最大リフト量の基準値学習を行って(ステップS131)この一連の処理を一旦終了する。
一方、それら排他的論理和が全て「1」である場合には(ステップS130:YES)、アドレスAD3のデータが瞬断直前の制御周期にDRAM72bに記憶された位置カウンタPのカウンタ値のデータである旨を判断し、その時点の位置カウンタPのカウンタ値をその残存データによって示される値に設定する(ステップS140)。そして、その時点の位置カウンタPのカウンタ値及びEEPROM72cに記憶された機関運転の開始時の初期値Sgに基づき吸気バルブ20の最大リフト量の絶対値を算出して吸気バルブ20の最大リフト量のフィードバック制御を実行し(ステップS150)、この一連の処理を一旦終了する。
以下、図10を参照して、上述給電の瞬断に対応する処理についてその一具体例を説明する。
図10に示されるように、例えばDRAM72bに対する給電が停止される直前の制御周期に更新された位置カウンタPのカウンタ値が「13」であるとき、そのカウンタ値「13」に対応するデータ「1101」をアドレスAD3の第0〜3ビットに記憶するとともに、そのデータの論理レベルをビット毎に反転したデータ「0010」をDRAM72bのアドレスAD4の第0〜3ビットに記憶する(ステップS121)。
そして、その給電が瞬断状態から復帰した直後の制御周期に、アドレスAD3,AD4に残存した残存データにおいて互いに対応するビットのビットデータの排他的論理和が全て「1」である場合には(ステップS130:YES)、アドレスAD3の残存データ「1101」が給電停止の直前の制御周期にアドレスAD3に記憶されたデータである旨を判断する。この場合、その時点の位置カウンタPのカウンタ値を残存データ「1101」に示される値、すなわち「13」に設定する(ステップS40)。
一方、その給電が瞬断状態から復帰した直後の制御周期に、例えば図10の破線に示されるように、アドレスAD3の第2ビットに対応するメモリセルの電荷が放電することにより、アドレスAD1に残存したデータが「1001」になると、アドレスAD3,AD4の第2ビットのビットデータの排他的論理和が「0」になる(ステップS130:NO)。この場合には、アドレスAD3,AD4の少なくとも一方のデータがDRAM72bに対する給電の停止により変化した旨判断し、前述したようにモータ60の駆動量の基準値学習を行うことにより、吸気バルブ20の最大リフト量の絶対値を再設定する(ステップS131)。
以上説明した第2の実施形態によれば、以下の効果が得られるようになる。
位置カウンタPのカウンタ値のデータをアドレスAD3に記憶するとともにそのデータの論理レベルをビット毎に反転したデータをアドレスAD4に記憶することとした。そのため、DRAM72bに対する給電が一時的に停止される状態から復帰した後に、アドレスAD3とアドレスAD4とにおいて互いに対応するビットのビットデータの排他的論理和が全て「1」になるときに、アドレスAD3,AD4の残存データが給電停止の直前にDRAM72bに記憶されたデータである旨を判断することができる。そして、その時点の位置カウンタPのカウンタ値をアドレスAD3の残存データによって示される値に設定することにより、吸気バルブ20の最大リフト量の絶対値を維持することができるようになる。したがって、こうした給電停止が生じた場合であっても、給電復帰後速やかに吸気バルブ20の最大リフト量の制御を再開することができるようになる。
また、上記処理により、例えば同じデータをDRAM72bの2つのアドレスに書き込む場合と比較して、DRAM72bに対する給電が一時的に停止されるとき、2つのアドレスに記憶されるデータが同一のデータに変化することを回避することができる。したがって、給電が停止状態から復帰した後に、それら2つのアドレスに残存したデータが変化したにもかかわらず、それらデータの値が一致する旨を判断して状態量の変更量を誤った値に設定することを防止することができるようになる。その結果、DRAM72bに対する給電が瞬断状態から復帰した後、DRAM72bの残存データが瞬断の直前の制御周期に記憶された位置カウンタPのカウンタ値のデータであるか否かをより高い精度をもって判断することができる。
また、例えばマイクロコンピュータ70に対する給電の瞬断が相対的に頻繁に発生した場合であっても、DRAM72bの記憶内容を維持することができ、瞬断後において初期学習を実行せずに最大リフト量の制御を継続して実行することができる場合には、上述した警告灯を点灯させる必要がない。したがって、こうした瞬断が発生した場合、警告灯が不必要に点灯することを抑制することができる。
(第3の実施形態)
以下、本発明にかかる内燃機関の制御システムの第3の実施形態について、上述した第1の実施形態との相違点を中心に説明する。この第3の実施形態の制御システムも、その基本的な構成は先に説明した第1の実施形態と同様であり、DRAM72bに対する給電が瞬断状態から復帰した後、DRAM72bの残存データが瞬断の直前の制御周期に記憶された位置カウンタPのカウンタ値のデータであるか否かを判断する方法のみが、その第1の実施形態と異なっている。以下、これについて図11のフローチャートを併せ参照して説明する。
図11に示される一連の処理ではまず、今回の制御周期がDRAM72bに対する給電が開始した後の最初の制御周期であるか否かを判断する(ステップS210)。
ここで、今回の制御周期が給電開始後の最初の制御周期でない場合には(ステップS210:NO)、給電の停止が発生していない旨を判断し、位置センサS1,S2によって出力されるパルス信号に基づいて位置カウンタPのカウンタ値を更新する。そして、この更新されたカウンタ値のデータをDRAM72bのアドレスAD5に記憶するとともに、そのデータにおいて値が「1」であるビットデータの数の偶奇性に基づいて判定値Hを設定して冗長データとして同データに付加する(ステップS221)。すなわち、そのデータにおいて値が「1」であるビットデータの数が奇数であるときに判定値Hが「1」に設定される一方、「1」であるビットデータの数が偶数であるときに判定値Hが「0」に設定される。
そして、更新された位置カウンタPのカウンタ値及びEEPROM72cに記憶された機関運転の開始時の初期値Sgに基づいて吸気バルブ20の最大リフト量の絶対値を算出する。この絶対値と機関運転状態に基づいて設定された制御目標値との乖離が小さくなるようにモータ60をフィードバック制御し(ステップS222)、この一連の処理を一旦終了する。
一方、今回の制御周期が給電開始後の最初の制御周期である場合には(ステップS210:YES)、給電の停止が発生した旨を判断し、機関運転の開始・停止状態を表す運転フラグFkが「オン」であるか否かを判断する(ステップS220)。
運転フラグFkが「オフ」である場合には(ステップS220:NO)、今回の制御周期が機関始動後の最初の運転周期である旨を判断し、通常の最大リフト量のフィードバック制御(ステップS221、ステップS222)を実行してこの一連の処理を一旦終了する。
一方、運転フラグFkが「オン」である場合には(ステップS220:YES)、今回の制御周期が機関始動後の最初の制御周期でなく、マイクロコンピュータ70に対する給電が瞬断状態から復帰した直後の制御周期である旨判断する。
この場合には、アドレスAD5に残存した残存データにおいて値が「1」であるビットデータの数の偶奇性がその残存データの冗長データ、すなわち判定値Hに示す偶奇性と一致するか否かを判断する(ステップS230)。
アドレスAD5に残存した残存データにおいて値が「1」であるビットデータの数の偶奇性が判定値Hに示す偶奇性と一致しない場合には(ステップS230:NO)、アドレスAD5のデータがDRAM72bに対する給電の停止により変化した旨判断する。この場合、アドレスAD5のデータをクリアするとともに、コントロールシャフト54をHi端又はLo端に駆動し、前述した最大リフト量の基準値学習を行って(ステップS231)この一連の処理を一旦終了する。
一方、アドレスAD5に残存した残存データにおいて値が「1」であるビットデータの数の偶奇性が判定値Hに示す偶奇性と一致する場合には(ステップS230:YES)、アドレスAD3のデータが瞬断直前の制御周期の位置カウンタPのカウンタ値のデータである旨を判断する。この場合には、その時点の位置カウンタPのカウンタ値をその残存データによって示される値に設定する(ステップS240)。
そして、その時点の位置カウンタPのカウンタ値及びEEPROM72cに記憶された機関運転の開始時の初期値Sgに基づき吸気バルブ20の最大リフト量の絶対値を算出して吸気バルブ20の最大リフト量のフィードバック制御を実行し(ステップS250)、この一連の処理を一旦終了する。
以下、図12を参照して、上述給電の瞬断に対応する処理についてその具体例を説明する。
図12に示されるように、例えばDRAM72bに対する給電が停止される直前の制御周期に、更新された位置カウンタPのカウンタ値が「13」であるとき、そのカウンタ値「13」に対応するデータ「1101」をアドレスAD5の第0〜3ビットに記憶する。そして、そのデータにおいて奇数個(3つ)のビットデータが「1」であることに基づき判定値Hを「1」設定して冗長データとして第4ビットに付加する(ステップS221)。
そして、その給電が瞬断状態から復帰した直後の制御周期に、アドレスAD5に残存した残存データにおいて値が「1」であるビットデータの数が奇数であるとともにアドレスADの第4ビットに記憶された判定値Hが「1」である場合には(ステップS230:YES)、アドレスAD5の残存データ「1101」が給電停止の直前の制御周期にアドレスAD5に記憶されたデータである旨を判断する。この場合、その時点の位置カウンタPのカウンタ値を残存データ「1101」に示される値、すなわち「13」に設定する(ステップS240)。
一方、その給電が瞬断状態から復帰した直後の制御周期に、例えば図12の破線に示されるように、アドレスAD5の第2ビットに対応するメモリセルの電荷が放電することにより、アドレスAD5に残存したデータが「1001」になると、アドレスAD5に残存した残存データにおいて値が「1」であるビットデータの数が偶数(2つ)になる。このようにアドレスAD5の残存データにおいて値が「1」であるビットデータの数の偶奇性が判定値Hに示す偶奇性と一致しない場合には(ステップS230:NO)、アドレスAD5のデータがDRAM72bに対する給電の停止により変化した旨判断する。そして前述したようにモータ60の駆動量の基準値学習を行うことにより、吸気バルブ20の最大リフト量の絶対値を再設定する(ステップS231)。
以上説明した第3の実施形態によれば、以下の効果が得られるようになる。
位置カウンタPのカウンタ値のデータをアドレスAD5に記憶するとともに、そのデータにおいて値が「1」であるビットデータの数の偶奇性に基づいて判定値Hを設定して冗長データとして同データに付加することとした。そのため、DRAM72bに対する給電が一時的に停止される状態から復帰した後に、アドレスAD5の残存データにおいて値が「1」であるビットデータの数の偶奇性がその冗長データに示す偶奇性と一致するときに、その残存データが給電停止の直前にDRAM72bに記憶された位置カウンタPのカウンタ値のデータである旨を判断することができる。そして、その時点の位置カウンタPのカウンタ値をその残存データによって示される値に設定することにより、吸気バルブ20の最大リフト量の絶対値を維持することができるようになる。したがって、こうした給電停止が生じた場合であっても、給電復帰後速やかに吸気バルブ20の最大リフト量の制御を再開することができるようになる。
また、例えばマイクロコンピュータ70に対する給電の瞬断が相対的に頻繁に発生した場合であっても、DRAM72bの記憶内容を維持することができ、瞬断後において初期学習を実行せずに最大リフト量の制御を継続して実行することができる場合には、上述した警告灯を点灯させる必要がない。したがって、こうした瞬断が発生した場合、警告灯が不必要に点灯することを抑制することができる。
なお、上記実施形態は、これを適宜変更した以下の形態にて実施することもできる。
・第1の実施形態では、位置カウンタPのカウンタ値のデータをDRAM72bの2つのアドレスAD1,AD2に記憶するようにしているが、これに限らず、そのデータをDRAM72bの3つ以上のアドレスに記憶するようにしてもよい。例えば位置カウンタPのカウンタ値のデータを3つのアドレスに記憶する構成を採用する場合、DRAM72bに対する給電が瞬断状態から復帰した後にそれら3つのアドレスのうち少なくとも2つの残存データが一致するときに、その残存データが瞬断直前の制御周期にDRAM72bに記憶されたデータである旨を判断することができる。
・また、第1の実施形態では、位置カウンタPのカウンタ値のデータを同一のDRAM72bの2つのアドレスに記憶するようにしているが、例えば2つのRAMを有するマイクロコンピュータを用いる場合には、そのデータを2つのRAMに各別に記憶してもよい。
・第2の実施形態では、アドレスAD3,AD4に残存した残存データにおいて互いに対応するビットのビットデータが異なるか否かを判断する判定値としては、対応する2つのビットのビットデータの排他的論理和が採用されている。すなわち、互いに対応する2つのビットのビットデータが異なるときに、これら2つのビットに対応する判定値を「1」に設定する一方、それらのビットデータが一致するときに、これら2つのビットに対応する判定値を「0」に設定するようにしている。これに対して、例えば互いに対応する2つのビットのビットデータが異なるときに、これら2つのビットに対応する判定値を「0」に設定する一方、それらのビットデータが一致するときに、これら2つのビットに対応する判定値を「1」に設定してもよい。この場合には、アドレスAD3,AD4の残存データにおいて互いに対応するビットのビットデータに対応する判定値が全て「0」であるときに、アドレスAD3のデータが瞬断直前の制御周期にDRAM72bに記憶された位置カウンタPのカウンタ値のデータである旨判断することができる。
・第3の実施形態では、位置カウンタPのカウンタ値のデータにおいて値が「1」であるビットデータの数が奇数であるときに判定値Hを「1」に設定する一方、「1」であるビットデータの数が偶数であるときに判定値Hを「0」に設定するようにしている。これに対して、値が「1」であるビットデータの数が奇数であるときに判定値Hを「0」に設定する一方、「1」であるビットデータの数が偶数であるときに判定値Hを「1」に設定してもよい。また、第3の実施形態では、判定値Hのデータを冗長データとして位置カウンタPのカウンタ値のデータに付加してアドレスAD5に記憶するようにしているが、これに限らずその判定値HのデータをアドレスAD5とは別のアドレスに記憶する構成を採用することもできる。
・上記実施形態では、位置カウンタPのカウンタ値等の入力データや演算結果を一時的に記憶する揮発性メモリとしてDRAMを採用するようにしているが、例えばSRAM等、他種の揮発性メモリを採用することもできる。また、上記実施形態では、初期値Sgを記憶する不揮発性メモリとしてEEPROM72cを採用するようにしているが、これに限らず、他の書き換え可能な不揮発性メモリを採用することもできる。
・上記実施形態では、機関バルブの最大リフト量の変更量と初期値とに基づいてその絶対値を算出する内燃機関の制御システムに本発明を適用する場合について例示した。これに限らず、例えばクランクシャフトの回転角を検出する制御システム等、機関状態量の変更量とその初期値とに基づいてその状態量の絶対値を算出する他の内燃機関の制御システムにおいても、基本的に同様の態様をもって本発明を適用することができる。
S1,S2…位置センサ、D1〜D3…電気角センサ、2…シリンダヘッド、3…シリンダヘッドカバー、3a,3b…ストッパ、10…排気バルブ、11…バルブスプリング、12…ラッシュアジャスタ、13…ロッカーアーム、13a…ローラ、14…排気カムシャフト、15…カム、16…リテーナ、20…吸気バルブ、21…バルブスプリング、22…ラッシュアジャスタ、23…ロッカーアーム、23a…ローラ、24…吸気カムシャフト、25…カム、26…リテーナ、50…仲介駆動機構、51…入力部、51a…ローラ、51h…ヘリカルスプライン、52…出力部、52h…ヘリカルスプライン、53…支持パイプ、53a…長孔、54…コントロールシャフト、54a…係止部、55…スライダギア、55a…ヘリカルスプライン、55b…ヘリカルスプライン、55c…溝、56…ブッシュ、56a…貫通孔、57…係止ピン、60…モータ、60a…出力軸、61…変換機構、70…マイクロコンピュータ、71…中央演算処理装置(CPU)、72a…不揮発性メモリ(ROM)、72b…揮発性メモリ(DRAM)、72c…不揮発性メモリ(EEPROM)、73…アクセルセンサ、74…クランク角センサ、90…排気動弁装置、100…吸気動弁装置。