(57)【要約】【課題】内燃機関を始動する際の消費電力を低減することができるとともに、小型化を図ることができる電磁動弁機構の制御装置を提供すること。【解決手段】アーマチュア５０を２つの電磁石４１，５１間で回動させることにより、内燃機関３の吸気弁１０を開閉駆動する電磁動弁機構４０の制御装置１は、ＥＣＵ２を備える。ＥＣＵ２は、内燃機関３の始動要求が発生したときに、可変リフト機構７０を駆動することにより、開側電磁石５１を、閉側電磁石４１に向かって、吸気弁１０のリフトが値０になるようなゼロリフト位置に移動させ（ステップ１，１２）、開側電磁石５１がゼロリフト位置に移動したときに、閉側電磁石４１に電力を供給することにより、アーマチュア５０を閉側電磁石４１に吸着させる（ステップ４０，４４）。【選択図】図１０
2008286005.tif 000002
【特許請求の範囲】
【請求項１】
内燃機関の吸気弁および排気弁の少なくとも一方の弁の閉弁用および開弁用の２つの電磁石が非励磁状態のときにアーマチュアを付勢手段によって当該２つの電磁石の間に保持し、当該２つの電磁石の励磁・非励磁状態の切り換えにより当該２つの電磁石の間で前記アーマチュアを往復動させることによって、前記一方の弁を開閉駆動し、前記閉弁用の電磁石に対する前記開弁用の電磁石の位置を変更機構で変更することによって、前記一方の弁のリフトを変更するとともに、当該開弁用の電磁石の位置が前記閉弁用の電磁石に近づくように変更されるのに伴い、前記付勢手段によって保持される前記アーマチュアの位置が前記閉弁用の電磁石に近づくように変更される電磁動弁機構の制御装置であって、
前記内燃機関の始動要求が発生したか否かを判定する始動要求判定手段と、
当該始動要求判定手段によって前記始動要求が発生したと判定されたときに、前記変更機構を駆動することにより、前記開弁用の電磁石を、前記閉弁用の電磁石に向かって、前記一方の弁の前記リフトが所定の最小値になるような低リフト位置に移動させる変更機構駆動手段と、
前記閉弁用の電磁石に対する前記開弁用の電磁石の位置を検出する位置検出手段と、
当該位置検出手段の検出結果に基づき、前記開弁用の電磁石が前記低リフト位置に移動したときに、前記閉弁用の電磁石に電力を供給することにより、前記アーマチュアを当該閉弁用の電磁石に吸着させる電磁石制御手段と、
を備え、
前記変更機構駆動手段は、前記アーマチュアが前記閉弁用の電磁石に吸着された後、前記変更機構を駆動することにより、前記開弁用の電磁石を前記内燃機関の始動用の位置に移動させることを特徴とする電磁動弁機構の制御装置。
【請求項２】
前記低リフト位置は、前記一方の弁が閉弁状態に保持されるゼロリフト位置であり、前記開弁用の電磁石が当該ゼロリフト位置にあるときに、前記アーマチュアは、前記閉弁用および開弁用の電磁石によって挟持されることを特徴とする請求項１に記載の電磁動弁機構の制御装置。
【請求項３】
前記開弁用の電磁石が前記ゼロリフト位置に移動するときに、前記位置検出手段のゼロ点校正を行う校正手段をさらに備えることを特徴とする請求項２に記載の電磁動弁機構の制御装置。
【請求項４】
前記位置検出手段の検出結果に基づき、前記開弁用の電磁石が前記始動用の位置に移動したときに、前記内燃機関のクランキングを許可する許可手段をさらに備えることを特徴とする請求項１ないし３のいずれかに記載の電磁動弁機構の制御装置。
【請求項５】
前記閉弁用の電磁石は不動に構成され、
前記開弁用の電磁石および前記アーマチュアは、前記閉弁用の電磁石に対して、同一軸線回りに回動自在に構成されていることを特徴とする請求項１ないし４のいずれかに記載の電磁動弁機構の制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、内燃機関の吸気弁および／または排気弁を電磁力によって駆動する電磁動弁機構の制御装置に関する。
【背景技術】
【０００２】
従来、この種の電磁動弁機構の制御装置として、例えば特許文献１に記載されたものが知られている。この特許文献１の図１９，２０に示す電磁動弁機構は、吸気弁を開閉駆動するものであり、吸気弁を閉じるための閉側電磁石と、その下方に設けられ、吸気弁を開くための開側電磁石と、これらの２つの電磁石間に配置され、吸気弁に連結されたアーマチュアと、アーマチュアを閉弁方向および開弁方向にそれぞれ付勢する２つのばねと、閉側電磁石に対する開側電磁石の位置を吸気弁の軸線方向に変更するボールねじ機構などを備えている。この電磁動弁機構では、２つの電磁石が非励磁にある場合、アーマチュアは、２つのばねの付勢力が釣り合う位置に保持される。
【０００３】
この制御装置では、内燃機関の始動直前、まず、２つの電磁石を非励磁状態に保持したまま、ボールねじ機構によって、開側電磁石をアーマチュア側に移動させる。そして、開側電磁石がアーマチュアに近接する位置に達したときに、電力供給によって、開側電磁石を励磁し、これにアーマチュアを吸着させる。次いで、ボールねじ機構によって、開側電磁石を、アーマチュアを吸着した状態で閉側電磁石から離れるように所定の初期位置に移動させる。
【０００４】
【特許文献１】特開平１０−８９０２９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上記従来の電磁動弁機構の制御装置によれば、内燃機関の始動直前、開側電磁石がアーマチュアを吸着した状態で所定の初期位置に移動するので、内燃機関の始動開始時点では、吸気弁が開弁状態となる。そのため、クランキング開始時、スタータは、ピストンを下降または上昇させるために仕事をすることになり、その分、消費電力が増大する。これと同様に、クランキング開始時、排気弁が開弁状態に保持されていると、その分、スタータの消費電力がさらに増大する。また、内燃機関の始動開始時点で、吸気弁が開弁状態に保持されるので、開側電磁石の所定の初期位置が不適切な場合、クランキング開始時、吸気弁が上死点位置まで移動したピストンに衝突するおそれがあるとともに、これを回避しようとした場合、始動時の吸気弁のリフトを極めて小さい値に設定する必要がある。
【０００６】
また、ボールねじ機構が、アーマチュアとは無関係に、開側電磁石のみを駆動するように構成されているので、開側電磁石とアーマチュアの間隔を縮めることはできるものの、閉側電磁石とアーマチュアの間隔を変更することができない。そのため、内燃機関の始動直前、閉側電磁石を励磁し、これにアーマチュアを吸着させようとした場合、開側電磁石にアーマチュアを吸着させる場合と比べて、消費電力が増大してしまう。
【０００７】
これに加えて、ボールねじ機構によって、開側電磁石が吸気弁の軸線方向に平行移動するように駆動されるので、その分の空間を確保する必要が生じ、電磁動弁機構自体が大型化してしまう。
【０００８】
本発明は、上記課題を解決するためになされたもので、内燃機関を始動する際の消費電力を低減することができるとともに、小型化を図ることができる電磁動弁機構の制御装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するために、請求項１に係る発明は、内燃機関３の吸気弁１０および排気弁１１の少なくとも一方の弁の閉弁用および開弁用の２つの電磁石（閉側および開側電磁石４１，５１，１１０，１２０）が非励磁状態のときにアーマチュア５０，１３０を付勢手段（閉側および開側コイルばね６０，６５，１４０，１５０）によって２つの電磁石の間に保持し、２つの電磁石の励磁・非励磁状態の切り換えにより２つの電磁石の間でアーマチュアを往復動させることによって、一方の弁を開閉駆動し、閉弁用の電磁石に対する開弁用の電磁石の位置を変更機構（可変リフト機構７０，１６０）で変更することによって、一方の弁のリフト（吸気リフトＬｉｆｔ）を変更するとともに、開弁用の電磁石の位置が閉弁用の電磁石に近づくように変更されるのに伴い、付勢手段によって保持されるアーマチュアの位置が閉弁用の電磁石に近づくように変更される電磁動弁機構４０，１００の制御装置１であって、内燃機関３の始動要求が発生したか否かを判定する始動要求判定手段（ＥＣＵ２、ステップ１）と、始動要求判定手段によって始動要求が発生したと判定されたとき（ステップ１の判別結果がＹＥＳのとき）に、変更機構を駆動することにより、開弁用の電磁石を、閉弁用の電磁石に向かって、一方の弁のリフトが所定の最小値（値０，最小値Ｌｉｆｔ＿Ｌ）になるような低リフト位置に移動させる変更機構駆動手段（ＥＣＵ２、ステップ１２）と、閉弁用の電磁石に対する開弁用の電磁石の位置を検出する位置検出手段（ＥＣＵ２、回動角センサ２４）と、位置検出手段の検出結果に基づき、開弁用の電磁石が低リフト位置に移動したとき（ステップ４０の判別結果がＹＥＳのとき）に、閉弁用の電磁石に電力を供給することにより、アーマチュアを閉弁用の電磁石に吸着させる電磁石制御手段（ＥＣＵ２、ステップ４４）と、を備え、変更機構駆動手段は、アーマチュアが閉弁用の電磁石に吸着された後、変更機構を駆動することにより、開弁用の電磁石を内燃機関３の始動用の位置に移動させる（ステップ３１，４１）ことを特徴とする。
【００１０】
この電磁動弁機構の制御装置によれば、内燃機関の始動要求が発生したと判定されたときに、変更機構を駆動することにより、開弁用の電磁石が、閉弁用の電磁石に向かって、一方の弁のリフトが所定の最小値になるような低リフト位置に移動され、開弁用の電磁石が低リフト位置に移動したときに、閉弁用の電磁石に電力を供給することにより、アーマチュアが一方の電磁石に吸着される。そして、アーマチュアが閉弁用の電磁石に吸着された後、変更機構が駆動されることによって、開弁用の電磁石が内燃機関の始動用の位置に移動する。この場合、開弁用の電磁石が閉弁用の電磁石に向かって移動するのに伴って、付勢手段によって保持されるアーマチュアの位置が閉弁用の電磁石に近づくように変更されるので、開弁用の電磁石が低リフト位置に移動した時点では、アーマチュアは、２つの電磁石の間の両者に極めて近い位置にあることになる。したがって、アーマチュアが閉弁用の電磁石に吸着される際の閉弁用の電磁石における消費電力を、従来の電磁動弁機構と比べて、より低減することができる。これに加えて、アーマチュアが閉弁用の電磁石に吸着された後、開弁用の電磁石が内燃機関の始動用の位置に移動するので、クランキング開始時、吸気弁および／または排気弁が上死点位置まで移動したピストンに衝突するのを確実に回避することができるとともに、始動開始時の吸気弁および／または排気弁のリフトを従来よりも大きい値に設定することができることで、内燃機関の始動性を向上させることができる。
【００１１】
請求項２に係る発明は、請求項１に記載の電磁動弁機構４０，１００の制御装置１において、低リフト位置は、一方の弁（吸気弁１０）が閉弁状態に保持されるゼロリフト位置であり、開弁用の電磁石（開側電磁石５１）がゼロリフト位置にあるときに、アーマチュア５０は、閉弁用および開弁用の電磁石（閉側および開側電磁石４１，５１）によって挟持されることを特徴とする。
【００１２】
この電磁動弁機構の制御装置によれば、開弁用の電磁石が、一方の弁が閉弁状態に保持されるゼロリフト位置に移動した場合、アーマチュアが２つの電磁石によって挟持された状態となり、２つの電磁石との間隔がなくなることで、吸着側の電磁石の消費電力をさらに低減することができる。
【００１３】
請求項３に係る発明は、請求項２に記載の電磁動弁機構４０，１００の制御装置１において、開弁用の電磁石（開側電磁石５１）がゼロリフト位置に移動するときに、位置検出手段（回動角センサ２４）のゼロ点校正を行う校正手段（ＥＣＵ２、ステップ４２）をさらに備えることを特徴とする。
【００１４】
この電磁動弁機構の制御装置によれば、位置検出手段のゼロ点校正を、そのための格別の制御動作を必要とすることなく、電磁動弁機構における内燃機関の始動準備用の制御動作に付随して行うことができる。また、内燃機関のクランキングを開始する際、位置検出手段のゼロ点校正が完了しているように構成できるので、内燃機関の始動後、電磁動弁機構を精度よく制御することができる。
【００１５】
請求項４に係る発明は、請求項１ないし３のいずれかに記載の電磁動弁機構４０，１００の制御装置１において、位置検出手段の検出結果に基づき、開弁用の電磁石が始動用の位置に移動したときに、内燃機関３のクランキングを許可する許可手段（ＥＣＵ２、ステップ６０，２３０，２３１）をさらに備えることを特徴とする。
【００１６】
この電磁動弁機構の制御装置によれば、クランキング開始時点では、アーマチュアが閉弁用の電磁石に吸着されているとともに、開弁用の電磁石が内燃機関の始動用の位置まで確実に移動している状態となるので、内燃機関の良好な始動性を確保することができる。
【００１７】
請求項５に係る発明は、請求項１ないし４のいずれかに記載の電磁動弁機構４０，１００の制御装置１において、閉弁用の電磁石（閉側電磁石４１，１１０）は不動に構成され、開弁用の電磁石（開側電磁石５１，１２０）およびアーマチュア５０，１３０は、閉弁用の電磁石に対して同一軸線回りに回動自在に構成されていることを特徴とする。
【００１８】
この電磁動弁機構の制御装置によれば、閉弁用の電磁石は不動に構成され、開弁用の電磁石およびアーマチュアは、閉弁用の電磁石に対して同一軸線回りに回動自在に構成されているので、開弁用の電磁石が吸気弁の軸線方向に平行移動する従来の電磁動弁機構と比べて、機構自体を小型化することができ、それにより、設計の自由度を高めることができる。
【発明を実施するための最良の形態】
【００１９】
以下、図面を参照しながら、本発明の一実施形態に係る電磁動弁機構の制御装置について説明する。この制御装置１は、図１に示す内燃機関（以下「エンジン」という）３の電磁動弁機構４０，８０を制御するものであり、図２に示すように、ＥＣＵ２を備えている。このＥＣＵ２は、後述するように、エンジン３の運転状態に応じて、動弁機構制御処理などの各種の制御処理を実行する。なお、図１においては、理解の容易化のために断面部分のハッチングが省略されている。
【００２０】
このエンジン３は、４組の気筒３ａおよびピストン３ｂ（１組のみ図示）を有する直列４気筒ガソリンエンジンであり、図示しない車両に搭載されている。エンジン３には、クランク角センサ２０および水温センサ２１が設けられている。このクランク角センサ２０は、マグネットロータおよびＭＲＥピックアップで構成されており、クランクシャフト３ｃの回転に伴い、いずれもパルス信号であるＣＲＫ信号およびＴＤＣ信号をＥＣＵ２に出力する。
【００２１】
このＣＲＫ信号は、クランク角１゜毎に１パルスが出力され、ＥＣＵ２は、このＣＲＫ信号に基づき、エンジン３の回転数（以下「エンジン回転数」という）ＮＥおよびクランク角位置ＣＡを算出する。また、ＴＤＣ信号は、各気筒３ａのピストン３ｂが吸気行程のＴＤＣ位置よりも若干、手前の所定のクランク角位置にあることを表す信号であり、所定クランク角毎に１パルスが出力される。
【００２２】
さらに、水温センサ２１は、エンジン３のシリンダブロック内を循環する冷却水の温度であるエンジン水温ＴＷを検出して、それを表す検出信号をＥＣＵ２に出力する。
【００２３】
一方、エンジン３の吸気通路４には、エアフローセンサ２２が設けられている。このエアフローセンサ２２は、熱線式エアフローメータで構成されており、吸気通路４を流れる空気の流量を検出して、それを表す検出信号をＥＣＵ２に出力する。
【００２４】
さらに、エンジン３の排気通路５には、ＬＡＦセンサ２３が設けられている。このＬＡＦセンサ２３は、ジルコニアおよび白金電極などで構成され、理論空燃比よりもリッチなリッチ領域から極リーン領域までの広範囲な空燃比の領域において、排気通路５内を流れる排ガス中の酸素濃度をリニアに検出して、それを表す検出信号をＥＣＵ２に出力する。
【００２５】
また、エンジン３には、燃料噴射弁６および点火プラグ７が気筒３ａ毎に設けられている（いずれも図２に１つのみ図示）。この燃料噴射弁６は、燃料を燃焼室内に直接噴射するようにシリンダヘッド３ｄに取り付けられている。すなわち、エンジン３は直噴エンジンとして構成されている。また、燃料噴射弁６は、ＥＣＵ２に電気的に接続されており、ＥＣＵ２により、開弁時間および開弁タイミングが制御される。すなわち、燃料噴射制御が実行される。
【００２６】
一方、点火プラグ７も、ＥＣＵ２に電気的に接続されており、ＥＣＵ２により、点火時期に応じたタイミングで燃焼室内の混合気を燃焼させるように、放電状態が制御される。すなわち、点火時期制御が実行される。
【００２７】
図１および図３に示すように、エンジン３の各気筒３ａには、吸気ポート４ａ，４ａを開閉する一対の吸気弁１０，１０（いずれも１つのみ図示）と、これらの吸気弁１０，１０を電磁力で駆動する吸気側の電磁動弁機構４０と、排気ポート５ａ，５ａを開閉する一対の排気弁１１，１１（いずれも１つのみ図示）と、これらの排気弁１１，１１を電磁力で駆動する排気側の電磁動弁機構８０とを備えている。各吸気弁１０は、そのステム１０ａがガイド１０ｂに摺動自在に嵌合しており、このガイド１０ｂは、シリンダヘッド３ｄに固定されている。
【００２８】
次に、吸気側の電磁動弁機構（以下「吸気電磁動弁機構」という）４０について説明する。この吸気電磁動弁機構４０は、以下に述べるように、各吸気弁１０の開閉タイミングと、開弁中のリフトの最大値（以下「吸気リフト」という）Ｌｉｆｔとを自在に変更するものである。なお、以下の説明では、便宜上、図４の矢印Ｅ−Ｅ´のＥ側を「前」、Ｅ´側を「後」といい、矢印Ｆ−Ｆ´のＦ側を「左」、Ｆ´側を「右」といい、上側を「上」、下側を「下」という。
【００２９】
同図に示すように、吸気電磁動弁機構４０は、左右対称に構成されており、左右の吸気弁１０，１０はそれぞれ、吸気電磁動弁機構４０の左半部および右半部によって駆動されるとともに、通常、両者の開閉タイミングおよび吸気リフトＬｉｆｔが同じになるように駆動される。
【００３０】
図３〜図６に示すように、吸気電磁動弁機構４０は、閉側電磁石４１および開側電磁石５１と、これらの電磁石４１，５１の間に配置された左右一対のアーマチュア５０，５０と、２つのアーマチュア５０，５０をそれぞれ吸気弁１０，１０の閉弁方向に常時、付勢する左右一対の閉側コイルばね６０，６０（１つのみ図示）と、２つのアーマチュア５０，５０をそれぞれ吸気弁１０，１０の開弁方向に常時、付勢する左右一対の開側コイルばね６５，６５（１つのみ図示）と、吸気リフトＬｉｆｔを変更する可変リフト機構７０などを備えている。
【００３１】
閉側電磁石４１（閉弁用の電磁石）は、ＥＣＵ２に電気的に接続されており、ＥＣＵ２からの後述する閉側制御入力Ｉｓｏｌ＿ｃｌによって励磁されたときに、アーマチュア５０，５０を吸引する。それによって、吸気弁１０，１０は、吸気ポート４ａ，４ａを閉鎖する閉弁位置（図６に２点鎖線で示す位置）に駆動される。この閉側電磁石４１は、多数の軟磁性体板を積層したコア４２と、このコア４２の前後に配置された前後のホルダ４３，４４と、左右一対のコイル４５，４５を備えている。
【００３２】
これらのコア４２および前後のホルダ４３，４４は、４本のボルト４６（２本のみ図示）を介して一体に組み立てられており、２つのコイル４５，４５は、コア４２および前後のホルダ４３，４４によって形成されたコイル溝に収容されている。
【００３３】
また、前ホルダ４３は、前方に突出する３つの取付アーム４３ａ，４３ａ，４３ａを備えており、各取付アーム４３ａには、上下方向に貫通する孔が形成されている。さらに、後ホルダ４４は、後方に突出する３つの取付アーム４４ａ，４４ａ，４４ａを備えており、各取付アーム４４ａにも、上下方向に貫通する孔が形成されている。閉側電磁石４１は、６つのボルト４７を、これらの取付アーム４３ａ，４４ａの孔に通した状態で、シリンダヘッド３ｄのねじ穴にねじ込むことによって、シリンダヘッド３ｄに固定されている。
【００３４】
さらに、後ホルダ４４は、その左右端部から下方に突出する左右一対のヒンジ部４４ｂ，４４ｂ（１つのみ図示）を備えており、各ヒンジ部４４ｂには、左右方向に貫通する孔が形成されている。一方、ヒンジシャフト４８は、その両端部がヒンジ部４４ｂ，４４ｂの孔に通された状態でヒンジ部４４ｂ，４４ｂに取り付けられており、それにより、ヒンジシャフト４８は、後ホルダ４４に取り付けられている。
【００３５】
一方、各アーマチュア５０は、平板状の本体部５０ａと、その後端部に一体に形成された円筒状のヒンジ部５０ｂと、本体部５０ａの前端部に取り付けられたローラ５０ｃなどを備えている。ヒンジ部５０ｂは、開側電磁石５１の後述する２つのヒンジアーム５４ａ，５４ａの間に配置されており、その内孔には、上記ヒンジシャフト４８が嵌合している。それにより、２つのアーマチュア５０，５０は、互いに独立してヒンジシャフト４８の軸線回りに回動自在に構成されている。
【００３６】
また、ローラ５０ｃは、本体部５０ａの前端部の孔内に、水平軸線回りに回動自在に設けられており、２つの電磁石４１，５１が非励磁状態にあるときには、２つのコイルばね６０，６５の付勢力によって、吸気弁１０のステム１０ａの上端面および後述するロッド６８の下端面に当接した状態に保持される（図３参照）。
【００３７】
一方、開側電磁石５１（開弁用の電磁石）は、ＥＣＵ２に電気的に接続されており、ＥＣＵ２からの後述する開側制御入力Ｉｓｏｌ＿ｏｐによって励磁されたときに、アーマチュア５０，５０を吸引する（図６参照）。それによって、吸気弁１０，１０は、吸気ポート４ａ，４ａを開放するように開弁方向に駆動される。開側電磁石５１は、多数の軟磁性体板を積層したコア５２と、このコア５２の前後に配置された前後のホルダ５３，５４と、左右一対のコイル５５，５５を備えている（図４参照）。
【００３８】
これらのコア５２および前後のホルダ５３，５４は、４本のボルト５６（２本のみ図示）を介して一体に組み立てられており、２つのコイル５５，５５は、コア５２および前後のホルダ５３，５４によって形成されたコイル溝に収容されている。
【００３９】
また、前ホルダ５３は、前方に突出する３つの連結アーム５３ａ，５３ａ，５３ａを備えている。各連結アーム５３ａの前端部には、左右方向に貫通する長孔５３ｂが形成されており、この長孔５３ｂには、後述する下ばね座６２のピン６３が係合している。
【００４０】
一方、後ホルダ５４は、左右端部から上方に突出する左右一対のヒンジアーム５４ａ，５４ａを備えており、各ヒンジアーム５４ａの先端部には、左右方向に貫通する孔が形成されている。左右のヒンジアーム５４ａ，５４ａは、前述した閉側電磁石４１のヒンジ部４４ｂ，４４ｂの間に配置され、これらのヒンジアーム５４ａ，５４ａの孔にヒンジシャフト４８が嵌合している。それにより、開側電磁石５１は、ヒンジシャフト４８を介して、閉側電磁石４１に連結されているとともに、２つのアーマチュア５０，５０に対して独立した状態で、ヒンジシャフト４８の軸線回りに回動可能に構成されている。
【００４１】
さらに、後ホルダ５４は、左右一対のリンクアーム５４ｂ，５４ｂを備えている。これらのリンクアーム５４ｂ，５４ｂは、ヒンジアーム５４ａ，５４ａよりも内側かつ下側の位置で後方に突出しており、可変リフト機構７０の後述するリンク７５に連結されている。
【００４２】
一方、前述した閉側コイルばね６０（付勢手段）は、上ばね座６１と下ばね座６２の間に圧縮状態で収容されており、上ばね座６１は、フランジ状で、吸気弁１０のステム１０ａの上端部に連結されている。それにより、吸気弁１０は、前述したように、２つの電磁石４１，５１が非励磁状態にあるときには、２つのコイルばね６０，６５の付勢力によって、ステム１０ａの上端面でアーマチュア５０のローラ５０ｃに当接した状態に保持される（図３参照）。
【００４３】
また、下ばね座６２は、円筒状に形成され、その底面に孔を有しており、その孔に前述したガイド１０ｂが嵌合している。一方、シリンダヘッド３ｄには、ガイド１０ｂと同心のガイド穴３ｅが形成されており、このガイド穴３ｅに、下ばね座６２の外周面が嵌合している。
【００４４】
さらに、下ばね座６２は、一対のピン６３，６３（１つのみ図示）を備えており、これらのピン６３，６３は、下ばね座６２の外周面から同心に左右方向に突出し、前述した各２つの連結アーム５３ａ，５３ａの長孔５３ｂ，５３ｂにそれぞれ係合している。以上の構成により、下ばね座６２は、開側電磁石５１がヒンジシャフト４８の軸線回りに回動すると、ピン６３が上方または下方に押されるのに伴い、ガイド穴３ｅに案内されながら、吸気弁１０の軸線方向に摺動する。
【００４５】
一方、前述した開側コイルばね６５（付勢手段）は、上ばね座６６とフランジ状の下ばね座６７の間に圧縮状態で収容されている。上ばね座６６は、円筒状に形成され、その内穴にロッド６８が摺動自在に嵌合しているとともに、その上端部がヘッドカバー３ｆに固定されている。
【００４６】
このロッド６８は、その下端部が下ばね座６７に連結されており、それにより、前述したように、２つの電磁石４１，５１が非励磁状態にあるときには、２つのコイルばね６０，６５の付勢力によって、下端面でアーマチュア５０のローラ５０ｃに当接した状態に保持される（図３参照）。この場合、２つのコイルばね６０，６５の付勢力は、アーマチュア５０の表裏面が２つの電磁石４１，５１の対向面に対してほぼ同じ角度を示すように設定されており、それにより、アーマチュア５０のローラ５０ｃは、２つの電磁石４１，５１の間のほぼ中央の中立位置（図３に示す位置）に保持される。
【００４７】
また、上ばね座６６の内穴の上側には、オイルダンパ６９が設けられており、吸気弁１０の着座時、ロッド６８の移動速度がオイルダンパ６９で低減されることによって、着座ショックが緩衝される。
【００４８】
一方、図３に示すように、前述した可変リフト機構７０（変更機構）は、リフトアクチュエータ７１、コントロールシャフト７２、２つのピン７３，７４およびリンク７５などを備えている。このリフトアクチュエータ７１は、電動機および図示しないギヤ機構を組み合わせたものであり、ＥＣＵ２に電気的に接続されている。このリフトアクチュエータ７１は、後述するリフト制御入力ＵｌｉｆｔがＥＣＵ２から供給されると、それに伴って、コントロールシャフト７２をその軸線回りに回動させる。
【００４９】
このコントロールシャフト７２は、一対のリンクアーム７２ａ，７２ａを一体に備えており、これらのリンクアーム７２ａ，７２ａは、コントロールシャフト７２上に所定間隔で設けられている。
【００５０】
また、リンク７５は、一対の孔７５ａ，７５ａを備えており、これらの孔７５ａ，７５ａは、互いに平行に形成され、リンク７５を左右方向に貫通している。前述したピン７３は、リンク７５の一方の孔７５ａに通され、その両端部がリンクアーム７２ａ，７２ａに取り付けられている。それにより、このピン７３を介して、リンク７５およびコントロールシャフト７２は相対的に回動自在に連結されている。
【００５１】
さらに、前述したピン７４は、リンク７５が前述したリンクアーム５４ｂ，５４ｂの間に位置した状態で、リンク７５の残りの孔７５ａに通され、その両端部がリンクアーム５４ｂ，５４ｂに取り付けられている。それにより、このピン７４を介して、リンク７５および開側電磁石５１は相対的に回動自在に連結されている。
【００５２】
以上の可変リフト機構７０では、ＥＣＵ２からのリフト制御入力Ｕｌｉｆｔが入力されると、フトアクチュエータ７１がコントロールシャフト７２をその軸線回りに回動させ、それに伴って、開側電磁石５１がヒンジシャフト４８の軸線回りに回動する。
【００５３】
その場合、開側電磁石５１が図３の反時計回りに回動し続けると、アーマチュア５０を介して閉側電磁石４１に当接し、それにより、開側電磁石５１は、アーマチュア５０を閉側電磁石４１との間に面接触状態で挟持するゼロリフト位置（図示せず）に係止される。一方、開側電磁石５１が図３の時計回りに回動し回動し続けると、図示しないストッパに当接することにより、開側電磁石５１は、その前端部が閉側電磁石４１から最も離間する最大リフト位置（図６（ａ）に示す位置）に係止される。すなわち、開側電磁石５１の回動可能範囲は、ゼロリフト位置と最大リフト位置との間に規制される。
【００５４】
次に、以上のように構成された吸気電磁動弁機構４０の動作について説明する。この吸気電磁動弁機構４０では、２つの電磁石４１，５１が非励磁状態にある場合、２つのコイルばね６０，６５の付勢力により、アーマチュア５０が中立位置（図３に示す位置）に保持される。その状態から、閉側電磁石４１がＥＣＵ２から供給された閉側制御入力Ｉｓｏｌ＿ｃｌによって励磁されると、閉側電磁石４１は、開側コイルばね６５の付勢力に抗しながら、アーマチュア５０を吸引し、それにより、吸気弁１０を閉弁させる。そして、閉側電磁石４１が励磁されている限り、アーマチュア５０が閉側電磁石４１に吸着されることで、吸気弁１０が閉弁状態に保持されるとともに、閉側電磁石４１が非励磁状態になると、開側コイルばね６５の付勢力により、アーマチュア５０が中立位置側に移動する。
【００５５】
一方、開側電磁石５１がＥＣＵ２から供給された開側制御入力Ｉｓｏｌ＿ｏｐによって励磁されると、開側電磁石５１は、閉側コイルばね６０の付勢力に抗しながら、アーマチュア５０を吸引し、それにより、吸気弁１０を開弁させる。そして、開側電磁石５１が励磁されている限り、アーマチュア５０が開側電磁石５１に吸着されることで、吸気弁１０が開弁状態に保持されるとともに、開側電磁石５１が非励磁状態になると、閉側コイルばね６０の付勢力により、アーマチュア５０が中立位置側に移動する。
【００５６】
したがって、この吸気電磁動弁機構４０では、２つの電磁石４１，５１の励磁・非励磁タイミングを変更することによって、吸気弁１０の開閉時期が自在に変更される。具体的には、吸気弁１０は、吸気電磁動弁機構４０によって、図７に示す台形状のリフト曲線で開閉するように駆動されるとともに、そのリフトが最大値すなわち吸気リフトＬｉｆｔを示す期間が自在に変更される。
【００５７】
また、前述したように、開側電磁石５１は、可変リフト機構７０によって最大リフト位置とゼロリフト位置との間で駆動され、開側電磁石５１が最大リフト位置にある場合、アーマチュア５０の回動範囲が最も大きくなることで、吸気弁１０は、図７の実線で示すリフト曲線に従って開弁し、吸気リフトＬｉｆｔは、その最大値Ｌｉｆｔｉｎ＿Ｈを示す。一方、開側電磁石５１がゼロリフト位置にある場合、アーマチュア５０が回動不能となることで、吸気弁１０は閉弁状態に保持され、吸気リフトＬｉｆｔは値０となる。
【００５８】
また、後述する通常制御中、開側電磁石５１は、可変リフト機構７０によって、上記最大リフト位置と図６（ｂ）に示す最小リフト位置との間で駆動される。この最小リフト位置は、開側電磁石５１を、可変リフト機構７０によって駆動可能な最小単位の回動角でゼロリフト位置から図６（ｂ）の時計回りに回動させた位置である。開側電磁石５１がこの最小リフト位置にある場合、アーマチュア５０の回動範囲が極めて小さくなることで、吸気弁１０は、図７の破線で示すリフト曲線に従って開弁し、吸気リフトＬｉｆｔが所定の最小値Ｌｉｆｔ＿Ｌを示す。なお、この最小値Ｌｉｆｔ＿Ｌは、２つの電磁石４１，５１が非励磁状態にある場合でも、吸気弁１０が上死点にあるピストン３ｂに当たらないような値に設定されている。
【００５９】
以上のように、この吸気電磁動弁機構４０では、２つの電磁石４１，５１の励磁・非励磁タイミングを制御すると同時に、可変リフト機構７０を介して開側電磁石５１の位置を制御することによって、吸気弁１０の開閉期間および吸気リフトＬｉｆｔを自在に変更することができる。
【００６０】
また、この吸気電磁動弁機構４０には、図示しないフェイルセーフ機構が設けられており、このフェイルセーフ機構により、吸気電磁動弁機構４０が故障しているときには、開側電磁石５１が上記最小リフト位置に強制的に駆動され、その位置に保持される。
【００６１】
なお、以下の説明では、２つの電磁石４１，５１および可変リフト機構７０が正常であるにもかかわらず、過負荷などの何らかの理由に起因して、アーマチュア５０の動作が２つの電磁石４１，５１の動作状態（励磁・非励磁状態）に追従しなくなり、両者の同期が一時的に外れた状態を「脱調」という。
【００６２】
さらに、図２に示すように、エンジン３には、回動角センサ２４と、２つの可動子リフトセンサ２５，２５（１つのみ図示）が気筒３ａ毎に設けられており、これらのセンサ２４，２５はＥＣＵ２に接続されている。回動角センサ２４は、コントロールシャフト７２の一端部に設けられており、コントロールシャフト７２の回動角を検出して、それを表す検出信号をＥＣＵ２に出力する。このコントロールシャフト７２の回動角は、閉側電磁石４１に対する開側電磁石５１の位置を表すものであり、ＥＣＵ２は、回動角センサ２４の検出信号に基づき、吸気リフトＬｉｆｔを算出する。
【００６３】
一方、各可動子リフトセンサ２５は、アーマチュア５０毎に設けられており、対応するアーマチュア５０の、閉側電磁石４１と開側電磁石５１の間での移動量（すなわち回動角）を検出して、それを表す検出信号をＥＣＵ２に出力する。ＥＣＵ２は、この可動子リフトセンサ２５の検出信号に基づき、アーマチュア５０の移動量（以下「可動子リフト」という）Ｌａｒｍａを算出する。具体的には、この可動子リフトＬａｒｍａは、アーマチュア５０が閉側電磁石４１に当接した状態のときに値０を示すとともに、その位置からアーマチュア５０が開側電磁石５１側に移動するほど、より大きい正の値を示すように算出される。
【００６４】
次に、前述した排気側の電磁動弁機構（以下「排気電磁動弁機構」という）８０について説明する。この排気電磁動弁機構８０は、２つの排気弁１１，１１の開閉タイミングおよび開弁中のリフトの最大値（以下「排気リフト」という）を自在に変更するものであり、吸気電磁動弁機構４０と同じ構成を備えている。
【００６５】
すなわち、排気電磁動弁機構８０は、閉側電磁石８１および開側電磁石８２と、これらの電磁石８１，８２の間に配置された一対のアーマチュア８３と、リフトアクチュエータ８４およびコントロールシャフト（図示せず）を有する可変リフト機構（図示せず）などを備えている。以上の構成はすべて、前述した吸気電磁動弁機構４０と同じであるので、その説明は省略するが、これらの構成により、２つの排気弁１１，１１は、そのリフト曲線がほぼ台形状になるよう駆動される。その際、左側（図１の手前側）および右側（図１の奥側）の排気弁１１，１１はそれぞれ、排気電磁動弁機構８０の左半部および右半部によって駆動される。
【００６６】
なお、本実施形態では、ＥＣＵ２により、各排気弁１１は、１燃焼サイクル中の排気行程において、開閉時期および排気リフトが一定になるように制御される。
【００６７】
さらに、図２に示すように、エンジン３には、回動角センサ２６と、２つの可動子リフトセンサ２７，２７（１つのみ図示）が気筒３ａ毎に設けられており、これらのセンサ２６，２７はＥＣＵ２に接続されている。この回動角センサ２６は、前述した回動角センサ２４と同様のものであり、排気電磁動弁機構８０の可変リフト機構におけるコントロールシャフトの回動角を検出して、それを表す検出信号をＥＣＵ２に出力する。ＥＣＵ２は、この回動角センサ２６の検出信号に基づき、排気リフトを算出する。
【００６８】
また、可動子リフトセンサ２７は、前述した可動子リフトセンサ２５と同様のものであり、対応するアーマチュア８３の、閉側電磁石８１と開側電磁石８２の間での移動量を検出して、それを表す検出信号をＥＣＵ２に出力する。ＥＣＵ２は、この可動子リフトセンサ２７の検出信号に基づき、アーマチュア８３の移動量を算出する。
【００６９】
さらに、ＥＣＵ２には、アクセル開度センサ２８およびイグニッション・スイッチ（以下「ＩＧ・ＳＷ」という）２９が接続されている。このアクセル開度センサ２８は、車両の図示しないアクセルペダルの踏み込み量（以下「アクセル開度」という）ＡＰを検出して、それを表す検出信号をＥＣＵ２に出力する。また、ＩＧ・ＳＷ２９は、イグニッション・キー（図示せず）操作により、オフ位置、アクセサリ位置、オン位置およびスタート位置の間で切り換えられるとともに、これら４つの位置のいずれにあるかを表す信号をＥＣＵ２に出力する。
【００７０】
ＥＣＵ２は、ＣＰＵ、ＲＡＭ、ＲＯＭ、Ｉ／Ｏインターフェースおよび駆動回路（いずれも図示せず）などからなるマイクロコンピュータで構成されており、前述した各種のセンサ２０〜２８の検出信号およびＩＧ・ＳＷ２９の出力信号などに応じて、エンジン３の運転状態を判別するとともに、各種の制御を実行する。具体的には、ＥＣＵ２は、後述するように、動弁機構制御処理、燃料噴射制御処理および点火時期制御処理などを実行する。
【００７１】
なお、本実施形態では、ＥＣＵ２が、始動要求判定手段、変更機構駆動手段、位置検出手段、電磁石制御手段、校正手段および許可手段に相当する。
【００７２】
次に、図８を参照しながら、ＥＣＵ２によって実行される動弁機構制御処理について説明する。この処理は、以下に述べるように、吸気電磁動弁機構４０および排気電磁動弁機構８０を制御するものであり、所定の制御周期（例えば１０ｍｓｅｃ）で気筒３ａ毎に実行される。なお、以下の説明において算出される各種の値は、ＥＣＵ２のＲＡＭ内に記憶されるものとする。
【００７３】
ここで、吸気電磁動弁機構４０は、前述したように、左右対称に構成されており、左右の吸気弁１０，１０はそれぞれ、吸気電磁動弁機構４０の左半部および右半部によって駆動される。そのため、以下の説明では、便宜上、左側の吸気弁１０を「第１吸気弁１０」といい、これを駆動する吸気電磁動弁機構４０の左半部を「第１吸気弁駆動部」といい、右側の吸気弁１０を「第２吸気弁１０」というとともに、これを駆動する吸気電磁動弁機構４０の右半部を「第２吸気弁駆動部」という。
【００７４】
さらに、前述したように、排気電磁動弁機構８０も、左右対称に構成されており、左右の排気弁１１，１１はそれぞれ、排気電磁動弁機構８０の左半部および右半部によって駆動される。そのため、以下の説明では、便宜上、左側の排気弁１１を「第１排気弁１１」といい、これを駆動する排気電磁動弁機構８０の左半部を「第１排気弁駆動部」といい、右側の排気弁１１を「第２排気弁１１」というとともに、これを駆動する排気電磁動弁機構８０の右半部を「第２排気弁駆動部」という。さらに、第１および第２吸気弁駆動部と、第１および第２排気弁駆動部をまとめて、「４つの弁駆動部」という。
【００７５】
この処理では、まず、ステップ１（図では「Ｓ１」と略す。以下同じ）で、イグニッション位置フラグＦ＿ＩＧＯＮが「１」であるか否かを判別する。このイグニッション位置フラグＦ＿ＩＧＯＮは、ＩＧ・ＳＷ２９がオン位置またはスタート位置にあって、運転者による始動要求が発生したときに「１」に設定され、それ以外のときには「０」に設定される。なお、このイグニッション位置フラグＦ＿ＩＧＯＮ以外の後述する各種フラグの値は、ＩＧ・ＳＷ２９がオフ位置またはアクセサリ位置から、オン位置またはスタート位置に切り換えられたタイミングで、「０」にリセットされる。
【００７６】
このステップ１の判別結果がＮＯのときには、そのまま本処理を終了する。一方、ステップ１の判別結果がＹＥＳのときには、ステップ２に進み、第１吸気制御処理を実行する。この第１吸気制御処理では、後述するように、第１吸気弁駆動部における閉側電磁石４１への制御入力（以下「閉側制御入力」という）Ｉｓｏｌ＿ｃｌと、開側電磁石５１への制御入力（以下「開側制御入力」という）Ｉｓｏｌ＿ｏｐと、リフトアクチュエータ７１への制御入力（以下「リフト制御入力」という）Ｕｌｉｆｔとが算出される。これに加えて、後述するように、第１吸気弁駆動部が故障した場合、それを表すために、第１吸気故障フラグＦ＿ＩＮ１＿ＮＧが「１」に設定され、第１吸気弁駆動部で脱調が発生した場合、それを表すために、第１吸気脱調フラグＦ＿ＩＮ１＿ＯＵＴが「１」に設定される。
【００７７】
次いで、ステップ３で、第２吸気制御処理を実行する。この第２吸気制御処理では、上記ステップ２の第１吸気制御処理と同じ手法により、第２吸気弁駆動部における閉側電磁石４１および開側電磁石５１への制御入力がそれぞれ算出される。これに加えて、第２吸気弁駆動部が故障した場合、それを表すために、第２吸気故障フラグＦ＿ＩＮ２＿ＮＧが「１」に設定され、第２吸気弁駆動部で脱調が発生した場合、それを表すために、第２吸気脱調フラグＦ＿ＩＮ２＿ＯＵＴが「１」に設定される。
【００７８】
ステップ３に続くステップ４で、第１排気制御処理を実行する。この第１排気制御処理では、上記第１吸気制御処理と同様の手法（ただし後述する通常制御処理を除く）により、第１排気弁駆動部における閉側電磁石８１、開側電磁石８２およびリフトアクチュエータ８４への制御入力がそれぞれ算出される。また、上記第１吸気制御処理と異なる通常制御処理（図示せず）によって、前述したように、第１排気弁１１が、１燃焼サイクル中の排気行程において、開閉時期および排気リフトが一定になるように制御される。これに加えて、第１排気弁駆動部が故障した場合、それを表すために、第１排気故障フラグＦ＿ＥＸ１＿ＮＧが「１」に設定され、第１排気弁駆動部で脱調が発生した場合、それを表すために、第１排気脱調フラグＦ＿ＥＸ１＿ＯＵＴが「１」に設定される。
【００７９】
次に、ステップ５で、第２排気制御処理を実行する。この第２排気制御処理では、上記第１排気制御処理と同じ手法により、第２排気弁駆動部における閉側電磁石８１、開側電磁石８２およびリフトアクチュエータ８４への制御入力がそれぞれ算出される。それにより、上述した通常制御処理によって、第２排気弁１１が、１燃焼サイクル中の排気行程において、開閉時期および排気リフトが一定になるように制御される。これに加えて、第２排気弁駆動部が故障した場合、それを表すために、第２排気故障フラグＦ＿ＥＸ２＿ＮＧが「１」に設定され、第２排気弁駆動部で脱調が発生した場合、それを表すために、第２排気脱調フラグＦ＿ＥＸ２＿ＯＵＴが「１」に設定される。
【００８０】
ステップ５に続くステップ６で、動作判定処理を実行した後、本処理を終了する。この動作判定処理では、後述するように、４つの弁駆動部の動作判定結果に基づき、第１吸気脱調フラグＦ＿ＩＮ１＿ＯＵＴ、第２吸気脱調フラグＦ＿ＩＮ２＿ＯＵＴ、第１排気脱調フラグＦ＿ＥＸ１＿ＯＵＴ、第２排気脱調フラグＦ＿ＥＸ２＿ＯＵＴおよび動作不良フラグＦ＿ＡＮＹ＿ＮＧの各々が、「１」または「０」に設定される。
【００８１】
次に、図９を参照しながら、前述したステップ１の第１吸気制御処理について説明する。同図に示すように、この処理では、まず、ステップ１０で、上述した動作不良フラグＦ＿ＡＮＹ＿ＮＧが「１」であるか否かを判別する。
【００８２】
この判別結果がＮＯで、４つの弁駆動部がいずれも正常であるときには、ステップ１１に進み、初期化実行済みフラグＦ＿ＩＮＩ＿ＤＯＮＥが「１」であるか否かを判別する。この判別結果がＮＯのときには、ステップ１２に進み、初期化制御処理を実行する。
【００８３】
この初期化制御処理では、図１０に示すように、まず、ステップ３０で、回動角センサ２４の検出信号に基づき、吸気リフトＬｉｆｔの検出値Ｌｉｆｔ＿ａｄを算出する。
【００８４】
次いで、ステップ３１に進み、校正実行済みフラグＦ＿ＺＥＲＯ＿ＤＯＮＥが「１」であるか否かを判別する。この判別結果がＮＯのときには、回動角センサ２４のゼロ点校正を実行すべきであると判定して、ステップ３２に進み、算出中フラグＦ＿ＳＥＴが「１」であるか否かを判別する。
【００８５】
この判別結果がＮＯのときには、ステップ３３で、ゼロ点校正値Ｃｏｍｐ＿ｚｅｒｏの算出処理を実行中であることを表すために、算出中フラグＦ＿ＳＥＴを「１」に設定するとともに、算出中カウンタの計数値ＣＴ＿ｓｅｔを値０に設定する。その後、ステップ３４に進み、吸気リフトＬｉｆｔを検出値Ｌｉｆｔ＿ａｄに設定する。
【００８６】
次に、ステップ３５で、算出中カウンタの計数値ＣＴ＿ｓｅｔに応じて、図１１に示すテーブルを検索することにより、目標リフトＬｉｆｔ＿ｃｍｄを算出する。同図において、ＣＴ１は所定値を、Ｌｉｆｔ＿ｉｎｉは所定の初期値を、Ｌｉｆｔ＿ｏｋは所定のしきい値を、Ｌｉｆｔ＿ＬＬは所定のゼロホールド値をそれぞれ表しており、これらの値は、Ｌｉｆｔ＿ＬＬ＜Ｌｉｆｔ＿Ｌ＜Ｌｉｆｔ＿ｏｋ＜Ｌｉｆｔ＿ｉｎｉの関係が成立するような値に設定されている。
【００８７】
このしきい値Ｌｉｆｔ＿ｏｋは、後述するように、可変リフト機構７０が動作不能となっているか否かを判別するのに用いられる値であり、そのため、吸気リフトＬｉｆｔの最小値Ｌｉｆｔ＿Ｌよりも若干、大きい値に設定されている。また、ゼロホールド値Ｌｉｆｔ＿ＬＬは、可変リフト機構７０によって、開側電磁石５１をゼロリフト位置まで確実に駆動し、アーマチュア５０を２つの電磁石４１，５１によって挟持された状態に保持するための値である。
【００８８】
このテーブルでは、目標リフトＬｉｆｔ＿ｃｍｄは、ＣＴ＿ｓｅｔ＜ＣＴ１の範囲では、計数値ＣＴ＿ｓｅｔが大きいほど、より小さい値に設定され、ＣＴ＿ｓｅｔ≧ＣＴ１の範囲では、上記ゼロホールド値Ｌｉｆｔ＿ＬＬに設定されている。これは、初期化制御処理を開始した以降、可変リフト機構７０によって、開側電磁石５１を時間の経過に伴って閉側電磁石４１側に回動させ、アーマチュア５０を最終的に２つの電磁石４１，５１の間に確実に挟持させるためである。
【００８９】
ステップ３５に続くステップ３６で、リフト制御入力Ｕｌｉｆｔを算出する。このリフト制御入力Ｕｌｉｆｔは、パルス幅変調方式の電圧信号値であり、具体的には、吸気リフトＬｉｆｔが目標リフトＬｉｆｔ＿ｃｍｄに収束するように、所定のフィードバック制御アルゴリズムによって算出される。
【００９０】
なお、このフィードバック制御アルゴリズムでは、吸気リフトＬｉｆｔと目標リフトＬｉｆｔ＿ｃｍｄとの偏差の絶対値が比較的小さい領域では、偏差の絶対値が大きい領域と比べて、フィードバックゲインがより小さい値に設定される。これは、開側電磁石５１がアーマチュア５０を間にして閉側電磁石４１に当接する際の衝撃を低減するためである。
【００９１】
次いで、ステップ３７に進み、閉側制御入力Ｉｓｏｌ＿ｃｌおよび開側制御入力Ｉｓｏｌ＿ｏｐをそれぞれ値０に設定した後、本処理を終了する。これらの制御入力Ｉｓｏｌ＿ｃｌ，Ｉｓｏｌ＿ｏｐはそれぞれ、閉側電磁石４１および開側電磁石５１への供給電流値として算出される。
【００９２】
一方、ステップ３２の判別結果がＹＥＳで、ゼロ点校正値Ｃｏｍｐ＿ｚｅｒｏの算出処理を実行中であるときには、ステップ３８に進み、算出中カウンタの計数値ＣＴ＿ｓｅｔを、その前回値ＣＴ＿ｓｅｔＺと値１の和（ＣＴ＿ｓｅｔＺ＋１）に設定する。すなわち、算出中カウンタの計数値ＣＴ＿ｓｅｔを値１インクリメントする。
【００９３】
ステップ３８に続くステップ３９で、吸気リフトＬｉｆｔとその前回値ＬｉｆｔＺとの偏差の絶対値｜Ｌｉｆｔ−ＬｉｆｔＺ｜を、第１リフト偏差ＤＬ１として設定する。
【００９４】
次いで、ステップ４０で、Ｌｉｆｔ＜Ｌｉｆｔ＿ｏｋおよびＤＬ１＜Ｄｚｅｒｏがいずれも成立しているか否かを判別する。これらの２つの条件は、開側電磁石５１がゼロリフト位置（閉側電磁石４１との間にアーマチュア５０を挟持した位置）に保持されているか否かを判定するためのものであり、Ｄｚｅｒｏは、値０に近い正の所定値である。
【００９５】
このステップ４０の判別結果がＮＯのときには、ステップ４１に進み、ＣＴ＿ｓｅｔ＞Ｃｎｇが成立しているか否かを判別する。このＣｎｇは、可変リフト機構７０の故障を判定するための判定値であり、所定の正値に設定されている。この判別結果がＮＯのときには、前述したように、ステップ３４〜３７を実行した後、本処理を終了する。以上のように、ＣＴ＿ｓｅｔ≦Ｃｎｇである限り、ステップ３６でリフト制御入力Ｕｌｉｆｔが算出されるので、可変リフト機構７０が正常であれば、これによって、開側電磁石５１は、Ｌｉｆｔ＝Ｌｉｆｔ＿ｉｎｉに相当する位置からゼロリフト位置まで回動するにように駆動される。
【００９６】
一方、ステップ４１の判別結果がＹＥＳのときには、十分な時間が経過したにもかかわらず、開側電磁石５１がゼロリフト位置に保持されていないことで、可変リフト機構７０すなわち第１吸気弁駆動部が故障していると判定して、ステップ４５に進み、それを表すために、第１吸気故障フラグＦ＿ＩＮ１＿ＮＧを「１」に設定する。
【００９７】
次いで、ステップ４６に進み、３つの制御入力Ｕｌｉｆｔ，Ｉｓｏｌ＿ｃｌ，Ｉｓｏｌ＿ｏｐをいずれも値０に設定した後、本処理を終了する。
【００９８】
一方、ステップ４０の判別結果がＹＥＳのときには、開側電磁石５１がゼロリフト位置に保持されていると判定して、ステップ４２に進み、ゼロ点校正値Ｃｏｍｐ＿ｚｅｒｏを吸気リフトの検出値Ｌｉｆｔ＿ａｄに設定する。このゼロ点校正値Ｃｏｍｐ＿ｚｅｒｏは、後述するように、吸気リフトの検出値Ｌｉｆｔ＿ａｄの校正に用いられる。
【００９９】
次に、ステップ４３で、ゼロ点校正値Ｃｏｍｐ＿ｚｅｒｏを算出済みであることを表すために、校正実行済みフラグＦ＿ＺＥＲＯ＿ＤＯＮＥを「１」に設定する。次いで、ステップ４４に進み、リフト制御入力Ｕｌｉｆｔおよび開側制御入力Ｉｓｏｌ＿ｏｐをいずれも値０に設定するとともに、閉側制御入力Ｉｓｏｌ＿ｃｌを所定値Ｉｓｏｌ＿ｉｎｉに設定した後、本処理を終了する。この所定値Ｉｓｏｌ＿ｉｎｉは、アーマチュア５０が閉側電磁石４１に確実に吸着されるような値に設定されている。
【０１００】
上記ステップ４３で、校正実行済みフラグＦ＿ＺＥＲＯ＿ＤＯＮＥが「１」に設定されると、次回以降の制御タイミングで、前述したステップ３１の判別結果がＹＥＳとなり、その場合には、ステップ４７に進み、始動準備処理を実行する。
【０１０１】
この始動準備処理では、図１２に示すように、まず、始動準備中フラグＦ＿ＲＥＡＤＹが「１」であるか否かを判別する。この判別結果がＮＯで、本処理の１回目の制御タイミングであるときには、ステップ５１に進み、目標リフトＬｉｆｔ＿ｃｍｄを最小値Ｌｉｆｔ＿Ｌに設定する。
【０１０２】
次いで、ステップ５２に進み、始動準備処理を実行中であることを表すために、始動準備中フラグＦ＿ＲＥＡＤＹを「１」に設定する。これにより、次回以降の制御タイミングにおいて、ステップ５０の判別結果がＹＥＳとなり、その場合には、ステップ５１，５２をスキップして、ステップ５３に進む。
【０１０３】
ステップ５０または５２に続くステップ５３では、ディレイカウンタの計数値ＣＴ＿ｄｅを、その前回値ＣＴ＿ｄｅＺと値１の和（ＣＴ＿ｄｅＺ＋１）に設定する。なお、この前回値ＣＴ＿ｄｅＺの初期値は値０に設定される。
【０１０４】
次いで、ステップ５４に進み、ディレイカウンタの計数値ＣＴ＿ｄｅが所定値ＣＴｒｅｆ以上であるか否かを判別する。この判別結果がＮＯのときには、ステップ６１に進み、リフト制御入力Ｕｌｉｆｔおよび開側制御入力Ｉｓｏｌ＿ｏｐをいずれも値０に設定するとともに、閉側制御入力Ｉｓｏｌ＿ｃｌを前述した所定値Ｉｓｏｌ＿ｉｎｉに設定する。その後、本処理を終了する。このように、ＣＴ＿ｄｅ≧ＣＴｒｅｆが成立するまでの間、アーマチュア５０が閉側電磁石４１および開側電磁石５１によって挟持された状態に保持されるとともに、閉側電磁石４１にのみ制御入力が供給されることで、アーマチュア５０は閉側電磁石４１に確実に吸着される。
【０１０５】
一方、ステップ５４の判別結果がＹＥＳで、所定値ＣＴｒｅｆに相当する時間が経過したときには、アーマチュア５０が閉側電磁石４１に吸着されていると判定して、ステップ５５に進み、吸気リフトＬｉｆｔを、検出値Ｌｉｆｔ＿ａｄからゼロ点校正値Ｃｏｍｐ＿ｚｅｒｏを減算した値（Ｌｉｆｔ＿ａｄ−Ｃｏｍｐ＿ｚｅｒｏ）に設定する。すなわち、吸気リフトＬｉｆｔは、回動角センサ２４のゼロ点校正済みの値として算出される。
【０１０６】
ステップ５５に続くステップ５６で、目標リフトＬｉｆｔ＿ｃｍｄと吸気リフトＬｉｆｔの偏差の絶対値｜Ｌｉｆｔ＿ｃｍｄ−Ｌｉｆｔ｜を、第２リフト偏差ＤＬ２として設定する。次いで、ステップ５７に進み、第２リフト偏差ＤＬ２が所定値Ｄｒｅｆよりも小さいか否かを判定する。この所定値Ｄｒｅｆは、吸気リフトＬｉｆｔが目標リフトＬｉｆｔ＿ｃｍｄに収束（到達）したか否かを判定するためのものであり、値０に近い正値に設定されている。
【０１０７】
ステップ５７の判別結果がＮＯで、吸気リフトＬｉｆｔが目標リフトＬｉｆｔ＿ｃｍｄすなわち最小値Ｌｉｆｔ＿Ｌに到達していないときには、ステップ５８に進み、リフト制御入力Ｕｌｉｆｔを、吸気リフトＬｉｆｔが目標リフトＬｉｆｔ＿ｃｍｄに収束するように、所定のフィードバック制御アルゴリズムによって算出する。
【０１０８】
次いで、ステップ５９で、閉側制御入力Ｉｓｏｌ＿ｃｌを所定値Ｉｓｏｌ＿ｉｎｉに、開側制御入力Ｉｓｏｌ＿ｏｐを値０にそれぞれ設定した後、本処理を終了する。
【０１０９】
一方、ステップ５７の判別結果がＹＥＳで、吸気リフトＬｉｆｔが最小値Ｌｉｆｔ＿Ｌに到達したときには、初期化制御処理を終了すべきであると判定して、ステップ６０に進み、初期化制御処理を実行済みであることを表すために、初期化実行済みフラグＦ＿ＩＮＩ＿ＤＯＮＥを「１」に設定する。次いで、前述したように、ステップ６１を実行した後、本処理を終了する。
【０１１０】
図１０に戻り、ステップ４７の始動準備処理を以上のように実行した後、初期化制御処理を終了する。図９に戻り、ステップ１２の初期化制御処理を以上のように実行した後、第１吸気制御処理を終了する。
【０１１１】
以上のように、ステップ１２の初期化制御処理において、初期化実行済みフラグＦ＿ＩＮＩ＿ＤＯＮＥが「１」に設定されると、図９のステップ１１の判別結果がＹＥＳとなり、その場合には、ステップ１３に進み、エンジン始動フラグＦ＿ＥＮＧＳＴＡＲＴが「１」であるか否かを判別する。
【０１１２】
このエンジン始動フラグＦ＿ＥＮＧＳＴＡＲＴは、図示しない判定処理において、全気筒で初期化実行済みフラグＦ＿ＩＮＩ＿ＤＯＮＥが「１」に設定されていること、およびＩＧ・ＳＷ２９がスタート位置にあることなどの、エンジン３の始動条件が成立しているときに「１」に設定され、それ以外のときには「０」に設定される。
【０１１３】
このステップ１３の判別結果がＹＥＳのときには、ステップ１４に進み、始動時制御処理を実行する。この始動時制御処理の詳細な説明は省略するが、この処理では、第１吸気弁１０の吸気リフトＬｉｆｔおよび開閉時期がエンジン３の始動に最適な値になるように制御される。その後、本処理を終了する。
【０１１４】
一方、ステップ１３の判別結果がＮＯのときには、ステップ１５に進み、通常制御処理を実行する。この通常制御処理では、以下に述べるように、３つの制御入力Ｕｌｉｆｔ，Ｉｓｏｌ＿ｃｌ，Ｉｓｏｌ＿ｏｐと、２つの制御入力Ｉｓｏｌ＿ｃｌ，Ｉｓｏｌ＿ｏｐの出力時期が算出される。
【０１１５】
具体的には、図１３に示すように、まず、ステップ７０で、通常制御中フラグＦ＿ＣＡＬが「１」であるか否かを判別する。この判別結果がＮＯのときには、ステップ７１に進み、クランク角位置ＣＡが所定値ＣＡｒｅｆであるか否かを判別する。この判別結果がＮＯのときには、当該気筒３ａにおける通常制御処理の実行タイミングではないと判定して、ステップ８１に進み、それを表すために、通常制御中フラグＦ＿ＣＡＬを「０」に設定した後、本処理を終了する。
【０１１６】
一方、ステップ７１の判別結果がＹＥＳのときには、当該気筒３ａにおける通常制御処理の実行タイミングであると判定して、ステップ７２に進み、それを表すために、通常制御中フラグＦ＿ＣＡＬを「１」に設定するとともに、通常制御実行済みフラグＦ＿ＣＡＬ＿ＤＯＮＥを「０」に設定する。これにより、次回以降の制御タイミングで、上記ステップ７０の判別結果がＹＥＳとなり、その場合には、ステップ７３に進む。
【０１１７】
ステップ７０または７２に続くステップ７３で、通常制御実行済みフラグＦ＿ＣＡＬ＿ＤＯＮＥが「１」であるか否かを判別する。この判別結果がＮＯのときには、３つの制御入力Ｕｌｉｆｔ，Ｉｓｏｌ＿ｃｌ，Ｉｓｏｌ＿ｏｐと、２つの制御入力Ｉｓｏｌ＿ｃｌ，Ｉｓｏｌ＿ｏｐの出力時期を算出すべきであると判定して、ステップ７４に進み、回動角センサ２４の検出信号に基づき、吸気リフトの検出値Ｌｉｆｔ＿ａｄを算出する。
【０１１８】
次に、ステップ７５で、吸気リフトＬｉｆｔを、検出値Ｌｉｆｔ＿ａｄからゼロ点校正値Ｃｏｍｐ＿ｚｅｒｏを減算した値（Ｌｉｆｔ＿ａｄ−Ｃｏｍｐ＿ｚｅｒｏ）に設定する。
【０１１９】
次いで、ステップ７６に進み、目標リフトＬｉｆｔ＿ｃｍｄを算出する。具体的には、エンジン回転数ＮＥおよび要求トルクＴＲＱに応じて、図１４に示すマップを検索することにより、目標リフトＬｉｆｔ＿ｃｍｄを算出する。なお、要求トルクＴＲＱは、後述する燃料噴射制御処理において算出される。同図において、Ｌｉｆｔ１〜５は、Ｌｉｆｔ１＜Ｌｉｆｔ２＜Ｌｉｆｔ３＜Ｌｉｆｔ４＜Ｌｉｆｔ５が成立するように設定される所定値である。
【０１２０】
このマップでは、目標リフトＬｉｆｔ＿ｃｍｄは、要求トルクＴＲＱが大きいほど、それを達成するために、より大きい値に設定されている。また、目標リフトＬｉｆｔ＿ｃｍｄは、高負荷域かつ高回転域では、エンジン回転数ＮＥが高いほど、ノッキングの発生を抑制するために、より小さい値に設定されている。
【０１２１】
ステップ７６に続くステップ７７で、コイル温度Ｔｃｏｉｌの算出処理を実行する。この処理では、図１５に示すように、まず、ステップ９０で、開側電磁石５１のコイル５５の抵抗値に基づき、開側電磁石５１のコイル温度（以下「開側コイル温度」という）Ｔｃｏｉｌ＿ｏｐを算出する。
【０１２２】
次いで、ステップ９１に進み、閉側電磁石４１のコイル４５の抵抗値に基づき、閉側電磁石４１のコイル温度（以下「閉側コイル温度」という）Ｔｃｏｉｌ＿ｃｌを算出する。ステップ９１に続くステップ９２で、開側コイル温度Ｔｃｏｉｌ＿ｏｐが閉側コイル温度Ｔｃｏｉｌ＿ｃｌ以上であるか否かを判別する。
【０１２３】
この判別結果がＹＥＳのときには、ステップ９３に進み、コイル温度Ｔｃｏｉｌを開側コイル温度Ｔｃｏｉｌ＿ｏｐに設定した後、本処理を終了する。
【０１２４】
一方、ステップ９２の判別結果がＮＯのときには、ステップ９４に進み、コイル温度Ｔｃｏｉｌを閉側コイル温度Ｔｃｏｉｌ＿ｃｌに設定した後、本処理を終了する。
【０１２５】
以上のように、図１５の処理では、開側コイル温度Ｔｃｏｉｌ＿ｏｐおよび閉側コイル温度Ｔｃｏｉｌ＿ｃｌのうちの高い方が、コイル温度Ｔｃｏｉｌとして設定される。なお、以上の手法に代えて、開側コイル温度Ｔｃｏｉｌ＿ｏｐおよび閉側コイル温度Ｔｃｏｉｌ＿ｃｌの平均値をコイル温度Ｔｃｏｉｌとして設定するように構成してもよい。
【０１２６】
図１３に戻り、ステップ７７でコイル温度Ｔｃｏｉｌを以上のように算出した後、ステップ７８に進み、制御入力の算出処理を実行する。この処理では、図１６に示すように、まず、ステップ１００で、コイル温度Ｔｃｏｉｌが所定の下限値ＴｒｅｆＬ以上であるか否かを判別する。
【０１２７】
この判別結果がＮＯで、Ｔｃｏｉｌ＜ＴｒｅｆＬのときには、ステップ１０６に進み、以下に述べる手法により、リフト制御入力Ｕｌｉｆｔを算出する。まず、下式（１）に示す一次遅れフィルタ処理アルゴリズムにより、目標リフトのフィルタ値Ｌｉｆｔ＿ｃｍｄ＿ｆを算出する。なお、下式（１）のＫは、０＜Ｋ＜１が成立するように設定されるフィルタ係数であり、Ｌｉｆｔ＿ｃｍｄ＿ｆＺは、目標リフトのフィルタ値Ｌｉｆｔ＿ｃｍｄ＿ｆの前回値である。
Ｌｉｆｔ＿ｃｍｄ＿ｆ＝Ｋ・Ｌｉｆｔ＿ｃｍｄ＿ｆＺ＋（１−Ｋ）・Ｌｉｆｔ＿ｃｍｄ
……  （１）
【０１２８】
次いで、吸気リフトＬｉｆｔがフィルタ値Ｌｉｆｔ＿ｃｍｄ＿ｆに収束するように、所定のフィードバック制御アルゴリズムによって、リフト制御入力Ｕｌｉｆｔを算出する。このように、ステップ１０６では、リフト制御入力Ｕｌｉｆｔは、目標リフトＬｉｆｔ＿ｃｍｄに一次遅れフィルタ処理を施したフィルタ値Ｌｉｆｔ＿ｃｍｄ＿ｆを用いて算出される。これは、吸気リフトＬｉｆｔが急激に変化すると、アーマチュア５０を吸着するための後述するソレノイド制御入力Ｉｓｏｌの算出値と、吸気リフトＬｉｆｔとの関係が不適切なものとなり、最悪の場合には、吸気電磁動弁機構４０で脱調が発生する可能性があるので、それを回避すべく、吸気リフトＬｉｆｔを緩やかに変化するように制御するためである。
【０１２９】
なお、上記の一次遅れフィルタ処理に換えて、所定のレートリミット処理を目標リフトＬｉｆｔ＿ｃｍｄに施すことにより、目標リフトのフィルタ値Ｌｉｆｔ＿ｃｍｄ＿ｆを算出するように構成してもよい。このようにした場合でも、吸気リフトＬｉｆｔを緩やかに変化するように制御でき、それにより、吸気電磁動弁機構４０で脱調が発生するのを回避できる。
【０１３０】
ステップ１０６に続くステップステップ１０７で、ソレノイド制御入力Ｉｓｏｌを算出する。具体的には、図１８に示すように、まず、ステップ１２０で、目標リフトＬｉｆｔ＿ｃｍｄが吸気リフトＬｉｆｔ以上であるか否かを判別する。
【０１３１】
この判別結果がＹＥＳのときには、ステップ１２１に進み、目標リフトＬｉｆｔ＿ｃｍｄに応じて、図示しないテーブルを検索することにより、ソレノイド制御入力Ｉｓｏｌを算出する。このソレノイド制御入力Ｉｓｏｌは、アーマチュア５０を２つの電磁石４１，５１に確実に吸着できるような値として算出される。このテーブルでは、ソレノイド制御入力Ｉｓｏｌは、目標リフトＬｉｆｔ＿ｃｍｄが大きいほど、より大きい値に設定されている。これは、吸気リフトＬｉｆｔが大きいほど、２つの電磁石４１，５１の仕事がより増大するためである。
【０１３２】
一方、ステップ１２０の判別結果がＮＯのときには、ステップ１２２に進み、吸気リフトＬｉｆｔに応じて、図示しないテーブルを検索することにより、ソレノイド制御入力Ｉｓｏｌを算出する。このテーブルでも、上記の理由により、ソレノイド制御入力Ｉｓｏｌは、吸気リフトＬｉｆｔが大きいほど、より大きい値に設定されている。
【０１３３】
図１６に戻り、ステップ１０７でソレノイド制御入力Ｉｓｏｌを以上のように算出した後、ステップ１０８に進み、閉側および開側制御入力Ｉｓｏｌ＿ｃｌ，Ｉｓｏｌ＿ｏｐをいずれも、ソレノイド制御入力Ｉｓｏｌに設定する。その後、本処理を終了する。
【０１３４】
一方、ステップ１００の判別結果がＹＥＳで、Ｔｃｏｉｌ≧ＴｒｅｆＬのときには、ステップ１０１に進み、コイル温度Ｔｃｏｉｌに応じて、図１７に示すテーブルを検索することにより、吸気リフトの制限値Ｌｉｆｔ＿ｌｍｔを算出する。同図において、ＴｒｅｆＨは、コイルの耐熱温度に相当する所定の上限値であり、ＴｒｅｆＬ＜ＴｒｅｆＨが成立するように設定される。
【０１３５】
このテーブルでは、制限値Ｌｉｆｔ＿ｌｍｔは、Ｔｃｏｉｌ＜ＴｒｅｆＬの領域では最大値Ｌｉｆｔ＿Ｈに、ＴｒｅｆＨ＜Ｔｃｏｉｌの領域では最小値Ｌｉｆｔ＿Ｌにそれぞれ設定されているとともに、ＴｒｅｆＬ≦Ｔｃｏｉｌ≦ＴｒｅｆＨの領域では、コイル温度Ｔｃｏｉｌが高いほど、より小さい値に設定されている。これは、ＴｒｅｆＬ≦Ｔｃｏｉｌ≦ＴｒｅｆＨの領域では、吸気リフトＬｉｆｔをより小さく制御するほど、２つの電磁石４１，５１の仕事がより低減されることで、コイル温度Ｔｃｏｉｌをより低下させることができるので、そのような効果を得るためである。
【０１３６】
ステップ１０１に続くステップ１０２で、目標リフトＬｉｆｔ＿ｃｍｄが制限値Ｌｉｆｔ＿ｌｍｔ以下であるか否かを判別する。この判別結果がＹＥＳのときには、前述したように、ステップ１０６〜１０８を実行した後、本処理を終了する。
【０１３７】
一方、ステップ１０２の判別結果がＮＯで、Ｌｉｆｔ＿ｃｍｄ＞Ｌｉｆｔ＿ｌｍｔのときには、ステップ１０３に進み、コイル温度Ｔｃｏｉｌが上限値ＴｒｅｆＨよりも高いか否かを判別する。この判別結果がＮＯで、ＴｒｅｆＬ≦Ｔｃｏｉｌ≦ＴｒｅｆＨのときには、コイル温度Ｔｃｏｉｌを低下させるために、吸気リフトＬｉｆｔを制限すべきであると判定して、ステップ１０４に進み、高温カウンタの計数値ＣＴ＿ｈｏｔを値０にリセットする。
【０１３８】
ステップ１０４に続くステップ１０５で、目標リフトＬｉｆｔ＿ｃｍｄを制限値Ｌｉｆｔ＿ｌｍｔに設定する。次いで、前述したように、ステップ１０６〜１０８を実行した後、本処理を終了する。
【０１３９】
一方、ステップ１０３の判別結果がＹＥＳで、２つの電磁石４１，５１の一方のコイルが高温状態にあるときには、ステップ１０９に進み、高温カウンタの計数値ＣＴ＿ｈｏｔを、その前回値ＣＴ＿ｈｏｔＺと値１の和（ＣＴ＿ｈｏｔＺ＋１）に設定する。なお、この前回値ＣＴ＿ｈｏｔＺの初期値は値０に設定される。
【０１４０】
次に、ステップ１１０で、高温カウンタの計数値ＣＴ＿ｈｏｔが所定値ＣＴ＿Ｈ以上であるか否かを判別する。この判別結果がＮＯのときには、前述したように、ステップ１０５〜１０８を実行した後、本処理を終了する。
【０１４１】
一方、ステップ１１０の判別結果がＹＥＳで、コイルの高温状態が所定値ＣＴ＿Ｈに相当する時間以上、継続したときには、ステップ１１１に進み、エンジン水温ＴＷが所定のオーバーヒート値ＴＷ＿ＯＶＥＲＨ以上であるか否かを判別する。このオーバーヒート値ＴＷ＿ＯＶＥＲＨは、エンジン３がオーバーヒート状態にあることを示す値（例えば１２０℃）に設定されている。なお、このステップ１１１で、エンジン水温ＴＷに代えて、エンジン３の潤滑油の温度を所定値と比較するように構成してもよい。
【０１４２】
このステップ１１１の判別結果がＹＥＳのときには、エンジン３のオーバーヒートに起因してコイルが高温状態にあると判定して、前述したように、ステップ１０５〜１０８を実行した後、本処理を終了する。
【０１４３】
一方、ステップ１１１の判別結果がＮＯのときには、コイルが過熱故障状態にあって、第１吸気弁駆動部が故障したと判定して、ステップ１１２に進み、それを表すために、第１吸気故障フラグＦ＿ＩＮ１＿ＮＧを「１」に設定する。
【０１４４】
次いで、ステップ１１３で、３つの制御入力Ｕｌｉｆｔ，Ｉｓｏｌ＿ｃｌ，Ｉｓｏｌ＿ｏｐをいずれも値０に設定した後、本処理を終了する。
【０１４５】
以上のように、図１６に示す制御入力の算出処理では、Ｌｉｆｔ＿ｃｍｄ＞Ｌｉｆｔ＿ｌｍｔかつＴｒｅｆＬ≦Ｔｃｏｉｌ≦ＴｒｅｆＨが成立しているときにはコイル温度Ｔｃｏｉｌを低下させるために、目標リフトＬｉｆｔ＿ｃｍｄがステップ７６での算出値よりも小さい制限値Ｌｉｆｔ＿ｌｍｔに設定される。
【０１４６】
図１３に戻り、ステップ７８で３つの制御入力Ｕｌｉｆｔ，Ｉｓｏｌ＿ｃｌ，Ｉｓｏｌ＿ｏｐを以上のように算出した後、ステップ７９に進み、２つの制御入力Ｉｓｏｌ＿ｃｌ，Ｉｓｏｌ＿ｏｐの出力時期を、所定の演算手法（例えば、エンジン回転数ＮＥおよび２つの制御入力Ｉｓｏｌ＿ｃｌ，Ｉｓｏｌ＿ｏｐを引数とするマップ検索手法）により算出する。それにより、第１吸気弁１０の開弁期間が決定される。
【０１４７】
次いで、ステップ８０に進み、３つの制御入力Ｕｌｉｆｔ，Ｉｓｏｌ＿ｃｌ，Ｉｓｏｌ＿ｏｐと、２つの制御入力Ｉｓｏｌ＿ｃｌ，Ｉｓｏｌ＿ｏｐの出力時期とを算出済みであることを表すために、通常制御実行済みフラグＦ＿ＣＡＬ＿ＤＯＮＥを「１」に設定した後、本処理を終了する。それにより、次回以降の制御タイミングで、前述したステップ７３の判別結果がＹＥＳとなり、その場合には、前述したステップ８１を実行した後、本処理を終了する。
【０１４８】
図９に戻り、ステップ１５の通常制御処理を以上のように実行した後、第１吸気制御処理を終了する。
【０１４９】
一方、図９の前述したステップ１０の判別結果がＹＥＳのとき、すなわち、４つの弁駆動部のいずれかで動作不良または故障が発生しているときには、ステップ１６に進み、以下に述べるように、動作不良時制御処理を実行した後、本処理を終了する。
【０１５０】
次に、図１９を参照しながら、上記ステップ１６の動作不良時制御処理について説明する。この処理では、まず、ステップ１３０で、第１吸気故障フラグＦ＿ＩＮ１＿ＮＧが「１」であるか否かを判別する。
【０１５１】
この判別結果がＹＥＳで、第１吸気弁駆動部が故障しているときには、ステップ１３１に進み、フェイルセーフ制御処理を実行した後、本処理を終了する。このフェイルセーフ制御処理では、前述したフェイルセーフ機構によって、吸気リフトＬｉｆｔが最小値Ｌｉｆｔ＿Ｌになるように、開側電磁石５１が最小リフト位置に強制的に駆動される。
【０１５２】
一方、ステップ１３０の判別結果がＮＯのときには、ステップ１３２に進み、第２吸気故障フラグＦ＿ＩＮ２＿ＮＧ、第１排気故障フラグＦ＿ＥＸ１＿ＮＧおよび第２排気故障フラグＦ＿ＥＸ２＿ＮＧのいずれかが「１」であるか否かを判別する。
【０１５３】
この判別結果がＹＥＳで、３つの弁駆動部のいずれかが故障しているときには、ステップ１３３に進み、閉弁制御処理を実行する。すなわち、第１吸気弁１０を閉弁状態に保持する。その後、本処理を終了する。
【０１５４】
一方、ステップ１３２の判別結果がＮＯで、３つの弁駆動部のいずれにおいても故障が発生していないときには、ステップ１３４に進み、第２吸気脱調フラグＦ＿ＩＮ２＿ＯＵＴ、第１排気脱調フラグＦ＿ＥＸ１＿ＯＵＴおよび第２排気脱調フラグＦ＿ＥＸ２＿ＯＵＴのいずれかが「１」であるか否かを判別する。
【０１５５】
この判別結果がＹＥＳで、３つの弁駆動部のいずれかにおいて脱調が発生しているときには、前述したように、ステップ１３３を実行した後、本処理を終了する。
【０１５６】
一方、ステップ１３４の判別結果がＮＯで、Ｆ＿ＩＮ１＿ＯＵＴ＝１のとき、すなわち第１吸気弁駆動部で脱調が発生しているときには、ステップ１３５に進み、復帰制御処理を実行する。この復帰制御処理では、図２０に示すように、まず、ステップ１４０で、回動角センサ２４の検出信号に基づき、吸気リフトの検出値Ｌｉｆｔ＿ａｄを算出する。
【０１５７】
次いで、ステップ１４１に進み、吸気リフトＬｉｆｔを、検出値Ｌｉｆｔ＿ａｄからゼロ点校正値Ｃｏｍｐ＿ｚｅｒｏを減算した値（Ｌｉｆｔ＿ａｄ−Ｃｏｍｐ＿ｚｅｒｏ）に設定する。
【０１５８】
ステップ１４１に続くステップ１４２で、復帰制御中フラグＦ＿ＲＥＣＯＶＥＲが「１」であるか否かを判別する。この判別結果がＮＯのときには、ステップ１４３に進み、目標リフトＬｉｆｔ＿ｃｍｄを所定の復帰用値Ｌｒｅｃｏｖｅｒに設定する。この復帰用値Ｌｒｅｃｏｖｅｒは、最小値Ｌｉｆｔ＿Ｌ以上の比較的小さな値に設定される。
【０１５９】
次に、ステップ１４４で、復帰制御処理を実行中であることを表すために、復帰制御中フラグＦ＿ＲＥＣＯＶＥＲを「１」に設定する。ステップ１４４に続くステップ１４５で、前述したステップ５８と同様の手法により、リフト制御入力Ｕｌｉｆｔを算出する。
【０１６０】
次いで、ステップ１４６に進み、閉側制御入力Ｉｓｏｌ＿ｃｌおよび開側制御入力Ｉｓｏｌ＿ｏｐをいずれも値０に設定した後、本処理を終了する。
【０１６１】
上記のように、ステップ１４４で、復帰制御中フラグＦ＿ＲＥＣＯＶＥＲが「１」に設定されると、次回以降の制御タイミングで、前述したステップ１４２の判別結果がＹＥＳとなり、その場合には、ステップ１４７に進み、吸引制御中フラグＦ＿ＳＵＣＴＩＯＮが「１」であるか否かを判別する。
【０１６２】
この判別結果がＮＯのときには、ステップ１４８で、目標リフトＬｉｆｔ＿ｃｍｄと吸気リフトＬｉｆｔとの偏差の絶対値｜Ｌｉｆｔ＿ｃｍｄ−Ｌｉｆｔ｜を、第２リフト偏差ＤＬ２として設定する。
【０１６３】
次いで、ステップ１４９に進み、第２リフト偏差ＤＬ２が所定値Ｄｒｅｆより小さいか否かを判別する。この判別結果がＮＯで、吸気リフトＬｉｆｔが目標リフトＬｉｆｔ＿ｃｍｄすなわち復帰用値Ｌｒｅｃｏｖｅｒに収束していないときには、前述したように、ステップ１４５，１４６を実行した後、本処理を終了する。
【０１６４】
一方、ステップ１４９の判別結果がＹＥＳで、吸気リフトＬｉｆｔが復帰用値Ｌｒｅｃｏｖｅｒに収束したときには、アーマチュア５０を閉側電磁石４１側または開側電磁石５１側に吸引すべきであると判定して、ステップ１５０に進み、それを表すために吸引制御中フラグＦ＿ＳＵＣＴＩＯＮを「１」に設定する。
【０１６５】
次に、ステップ１５１で、可動子リフトセンサ２５の検出信号に基づき、可動子リフトＬａｒｍａを算出する。次いで、ステップ１５２に進み、ステップ１５１で算出した可動子リフトＬａｒｍａを、初期値Ｌａｉｎｉとして設定する。
【０１６６】
ステップ１５２に続くステップ１５３で、閉側復帰フラグＦ＿ＣＬ＿ＲＥＣが「１」であるか否かを判別する。この判別結果がＮＯのときには、今回の復帰制御処理でアーマチュア５０を閉側電磁石４１側に吸引させるべきであると判定して、ステップ１５４に進み、閉側制御入力Ｉｓｏｌ＿ｃｌを所定の復帰用値Ｉｓｏｌ＿ｒｅｃに設定すると同時に、リフト制御入力Ｕｌｉｆｔおよび開側制御入力Ｉｓｏｌ＿ｏｐをいずれも値０に設定する。
【０１６７】
次に、ステップ１５５で、アーマチュア５０を閉側電磁石４１側に吸引するように復帰制御処理を実行したことを表すために、閉側復帰フラグＦ＿ＣＬ＿ＲＥＣを「１」に設定した後、本処理を終了する。
【０１６８】
一方、ステップ１５３の判別結果がＹＥＳのときには、今回の復帰制御処理でアーマチュア５０を開側電磁石５１側に吸引すべきであると判定して、ステップ１５６に進み、開側制御入力Ｉｓｏｌ＿ｏｐを所定の復帰用値Ｉｓｏｌ＿ｒｅｃに設定すると同時に、リフト制御入力Ｕｌｉｆｔおよび閉側制御入力Ｉｓｏｌ＿ｃｌをいずれも値０に設定する。
【０１６９】
次いで、ステップ１５７に進み、アーマチュア５０を開側電磁石５１側に吸引するように復帰制御処理を実行したことを表すために、閉側復帰フラグＦ＿ＣＬ＿ＲＥＣを「０」に設定した後、本処理を終了する。
【０１７０】
一方、ステップ１５０で、吸引制御中フラグＦ＿ＳＵＣＴＩＯＮが「１」に設定されると、次回以降の制御タイミングで、前述したステップ１４７の判別結果がＹＥＳとなり、その場合には、ステップ１５８に進み、３つの制御入力Ｕｌｉｆｔ，Ｉｓｏｌ＿ｃｌ，Ｉｓｏｌ＿ｏｐをそれぞれ、前回値ＵｌｉｆｔＺ，Ｉｓｏｌ＿ｃｌＺ，Ｉｓｏｌ＿ｏｐＺに設定する。
【０１７１】
次いで、ステップ１５９に進み、復帰判定処理を実行する。この復帰判定処理では、図２１に示すように、まず、ステップ１７０で、復帰判定カウンタの計数値ＣＴ＿ｒｅを、その前回値ＣＴ＿ｒｅＺと値１の和（ＣＴ＿ｒｅＺ＋１）に設定する。なお、この前回値ＣＴ＿ｒｅＺの初期値は値０に設定される。
【０１７２】
次に、ステップ１７１で、復帰判定カウンタの計数値ＣＴ＿ｒｅが所定値ＣＴ＿ｒｅ１以上であるか否かを判別する。この判別結果がＮＯのときには、そのまま本処理を終了する。
【０１７３】
一方、ステップ１７１の判別結果がＹＥＳのとき、すなわち、閉側電磁石４１および開側電磁石５１の一方へのアーマチュア５０の吸引開始以降、所定値ＣＴ＿ｒｅ１に相当する時間が経過したときには、ステップ１７２に進み、可動子リフトセンサ２５の検出信号に基づき、可動子リフトＬａｒｍａを算出する。
【０１７４】
次いで、ステップ１７３で、可動子リフトの初期値Ｌａｉｎｉと可動子リフトＬａｒｍａとの偏差の絶対値｜Ｌａｉｎｉ−Ｌａｒｍａ｜を、初期偏差ＤＬａｉとして設定する。その後、ステップ１７４に進み、初期偏差ＤＬａｉが所定値ＤＬａｉ１以上であるか否かを判別する。
【０１７５】
この判別結果がＹＥＳで、アーマチュア５０が閉側電磁石４１側または開側電磁石５１側に吸着されたと推定されるときには、第１吸気弁駆動部が脱調状態から正常な状態に復帰したと判定して、ステップ１７５に進み、脱調発生カウンタの計数値ＣＴ＿ｏｕｔを、その前回値ＣＴ＿ｏｕｔＺと値１の和（ＣＴ＿ｏｕｔＺ＋１）に設定する。なお、この前回値ＣＴ＿ｏｕｔＺの初期値は値０に設定される。
【０１７６】
次いで、ステップ１７６に進み、脱調発生頻度Ｆｒ＿ｏｕｔを算出する。この脱調発生頻度Ｆｒ＿ｏｕｔは、脱調発生カウンタの計数値ＣＴ＿ｏｕｔを、通常制御処理の開始以降の制御実行回数で除算することによって算出される。
【０１７７】
ステップ１７６に続くステップ１７７で、脱調発生頻度Ｆｒ＿ｏｕｔが所定値Ｆｒ＿ｒｅｆより大きいか否かを判別する。この判別結果がＮＯのときには、第１吸気弁駆動部が正常であると判定して、第１吸気脱調フラグＦ＿ＩＮ１＿ＯＵＴを「０」にリセットする。
【０１７８】
次いで、ステップ１７９に進み、２つのフラグＦ＿ＲＥＣＯＶＥＲ，Ｆ＿ＳＵＣＴＩＯＮをいずれも「０」にリセットするとともに、復帰判定カウンタの計数値ＣＴ＿ｒｅを値０にリセットする。その後、本処理を終了する。
【０１７９】
一方、ステップ１７７の判別結果がＹＥＳのときには、脱調発生頻度Ｆｒ＿ｏｕｔが高いことで、第１吸気弁駆動部が故障していると判定して、ステップ１８０に進み、それを表すために、第１吸気故障フラグＦ＿ＩＮ１＿ＮＧを「１」に設定する。次いで、前述したように、ステップ１７９を実行した後、本処理を終了する。
【０１８０】
一方、前述したステップ１７４の判別結果がＮＯのとき、すなわち、所定値ＣＴ＿ｒｅ１に相当する時間が経過したにもかかわらず、アーマチュア５０が閉側電磁石４１側または開側電磁石５１側に吸着されていないと推定されるときには、第１吸気弁駆動部が故障していると判定して、前述したように、ステップ１８０で、第１吸気故障フラグＦ＿ＩＮ１＿ＮＧを「１」に設定する。次いで、前述したように、ステップ１７９を実行した後、本処理を終了する。
【０１８１】
図２０に戻り、ステップ１５９の復帰判定処理を以上のように実行した後、復帰制御処理を終了する。図１９に戻り、ステップ１３５の復帰制御処理を以上のように実行した後、動作不良時制御処理を終了する。
【０１８２】
次に、図２２を参照しながら、前述した図８のステップ６の動作判定処理について説明する。この処理は、４つの弁駆動部で脱調または故障が発生しているか否かを判定するものである。同図に示すように、この処理では、まず、ステップ１９０で、初期化実行済みフラグＦ＿ＩＮＩ＿ＤＯＮＥが「１」であるか否かを判別する。この判別結果がＮＯで、初期化制御処理を実行済みでないときには、そのまま本処理を終了する。一方、この判別結果がＹＥＳのときには、ステップ１９１に進み、エンジン始動フラグＦ＿ＥＮＧＳＴＡＲＴが「１」であるか否かを判別する。
【０１８３】
この判別結果がＹＥＳで、始動時制御処理中のときには、そのまま本処理を終了する。一方、ステップ１９１の判別結果がＮＯのときには、ステップ１９２に進み、動作不良フラグＦ＿ＡＮＹ＿ＮＧが「１」であるか否かを判別する。この判別結果がＹＥＳで、４つの弁駆動部のいずれかが動作不良状態にあるときには、そのまま本処理を終了する。
【０１８４】
一方、ステップ１９２の判別結果がＮＯのときには、ステップ１９３に進み、第１吸気脱調判定処理を実行する。この処理は、以下に述べるように、第１吸気弁駆動部で脱調が発生しているか否かを判定するものであり、具体的には、図２３に示すように実行される。まず、ステップ２００で、判定中フラグＦ＿ＣＨＥＣＫが「１」であるか否かを判別する。
【０１８５】
この判別結果がＮＯのときには、ステップ２０１に進み、クランク角位置ＣＡが第１吸気弁駆動部の動作判定区間の始点であるか否かを判別する。この動作判定区間の始点および終点は、前述したステップ７９で算出された２つの制御入力Ｉｓｏｌ＿ｃｌ，Ｉｓｏｌ＿ｏｐの出力時期に基づいて決定される。この判別結果がＮＯのときには、そのまま本処理を終了する。
【０１８６】
一方、ステップ２０１の判別結果がＹＥＳで、クランク角位置ＣＡが動作判定区間の始点に達したときには、ステップ２０２に進み、第１吸気脱調判定処理を実行中であることを表すために、判定中フラグＦ＿ＣＨＥＣＫを「１」に設定する。
【０１８７】
このように判定中フラグＦ＿ＣＨＥＣＫが「１」に設定されると、次回以降の制御タイミングで、ステップ２００の判別結果がＹＥＳとなり、その場合には、ステップ２０３に進む。
【０１８８】
ステップ２００または２０２に続くステップ２０３で、可動子リフトセンサ２５の検出信号に基づき、可動子リフトＬａｒｍａを算出する。その後、ステップ２０４で、可動子リフトＬａｒｍａとその前回値ＬａｒｍａＺとの偏差の絶対値｜Ｌａｒｍａ−ＬａｒｍａＺ｜を、可動子リフト偏差ＤＬａとして設定する。この前回値ＬａｒｍａＺの初期値は値０に設定される。
【０１８９】
次いで、ステップ２０５に進み、可動子リフト偏差の積算値Ｓ＿ＤＬａを、その前回値Ｓ＿ＤＬａＺと可動子リフト偏差ＤＬａの和（Ｓ＿ＤＬａＺ＋ＤＬａ）に設定する。なお、この前回値Ｓ＿ＤＬａＺの初期値は値０に設定される。
【０１９０】
次に、ステップ２０６で、クランク角位置ＣＡが判定区間の終点であるか否かを判別する。この判別結果がＮＯのときには、そのまま本処理を終了する。一方、この判別結果がＹＥＳのときには、ステップ２０７に進み、脱調判定値Ｓ＿ｏｕｔを算出する。この脱調判定値Ｓ＿ｏｕｔは、目標リフトＬｉｆｔ＿ｃｍｄに応じて、図示しないテーブルを検索することにより算出される。
【０１９１】
次いで、ステップ２０８で、可動子リフト偏差の積算値Ｓ＿ＤＬａが脱調判定値Ｓ＿ｏｕｔ以上であるか否かを判別する。この判別結果がＹＥＳのときには、第１吸気弁駆動部が正常に動作していると判定して、ステップ２０９に進み、それを表すために、第１吸気脱調フラグＦ＿ＩＮ１＿ＯＵＴを「０」に設定する。
【０１９２】
一方、ステップ２０８の判別結果がＮＯのときには、第１吸気弁駆動部で脱調が発生していると判定して、ステップ２１０に進み、それを表すために、第１吸気脱調フラグＦ＿ＩＮ１＿ＯＵＴを「１」に設定する。
【０１９３】
ステップ２０９または２１０に続くステップ２１１で、第１吸気脱調判定処理を終了したことを表すために、判定中フラグＦ＿ＣＨＥＣＫを「０」に設定する。その後、本処理を終了する。
【０１９４】
図２２に戻り、ステップ１９３の第１吸気脱調判定処理を以上のように実行した後、ステップ１９４に進み、第２吸気脱調判定処理を実行する。この処理では、上記の第１吸気脱調判定処理と同様の手法により、第２吸気弁駆動部で脱調が発生しているか否かが判定され、その判定結果に基づき、第２吸気脱調フラグＦ＿ＩＮ２＿ＯＵＴが設定される。具体的には、第２吸気脱調フラグＦ＿ＩＮ２＿ＯＵＴは、第２吸気弁駆動部で脱調が発生していると判定されたときに「１」に、それ以外のときに「０」に設定される。
【０１９５】
ステップ１９４に続くステップ１９５で、第１排気脱調判定処理を実行する。この処理では、前述した第１吸気脱調判定処理と同様の手法により、第１排気弁駆動部で脱調が発生しているか否かが判定され、その判定結果に基づき、第１排気脱調フラグＦ＿ＥＸ１＿ＯＵＴが設定される。具体的には、第１排気脱調フラグＦ＿ＥＸ１＿ＯＵＴは、第１排気弁駆動部で脱調が発生していると判定されたときに「１」に、それ以外のときに「０」に設定される。
【０１９６】
次いで、ステップ１９６で、第２排気脱調判定処理を実行する。この処理では、前述した第１吸気脱調判定処理と同様の手法により、第２排気弁駆動部で脱調が発生しているか否かが判定され、その判定結果に基づき、第２排気脱調フラグＦ＿ＥＸ２＿ＯＵＴが設定される。具体的には、第２排気脱調フラグＦ＿ＥＸ２＿ＯＵＴは、第２排気弁駆動部で脱調が発生していると判定されたときに「１」に、それ以外のときに「０」に設定される。
【０１９７】
次に、ステップ１９７に進み、以下に述べるように、最終判定処理を実行した後、動作判定処理を終了する。
【０１９８】
以下、図２４を参照しながら、上記の最終判定処理について説明する。この処理では、まず、ステップ２２０で、４つの脱調フラグＦ＿ＩＮ１＿ＯＵＴ，Ｆ＿ＩＮ２＿ＯＵＴ，Ｆ＿ＥＸ１＿ＯＵＴ，Ｆ＿ＥＸ２＿ＯＵＴのいずれかが１であるか否かを判別する。
【０１９９】
この判別結果がＮＯで、４つの弁駆動部のいずれにおいても脱調が発生していないときには、ステップ２２１に進み、４つの故障フラグＦ＿ＩＮ１＿ＮＧ，Ｆ＿ＩＮ２＿ＮＧ，Ｆ＿ＥＸ１＿ＮＧ，Ｆ＿ＥＸ２＿ＮＧのいずれかが１であるか否かを判別する。
【０２００】
この判別結果がＮＯで、４つの弁駆動部がいずれも正常であるときには、ステップ２２２に進み、それを表すために、動作不良フラグＦ＿ＡＮＹ＿ＮＧを「０」に設定した後、本処理を終了する。
【０２０１】
一方、ステップ２２０または２２１の判別結果がＹＥＳのとき、すなわち４つの弁駆動部のいずれかで故障または脱調が発生しているときには、ステップ２２３に進み、それを表すために、動作不良フラグＦ＿ＡＮＹ＿ＮＧを「１」に設定した後、本処理を終了する。
【０２０２】
以下、図２５を参照しながら、ＥＣＵ２によって実行されるクランキング制御処理について説明する。この処理は、エンジン３の始動時にクランキングを実行するものであり、所定の制御周期（例えば１０ｍｓｅｃ）で実行される。
【０２０３】
同図に示すように、まず、ステップ１３０で、前述したエンジン始動フラグＦ＿ＥＮＧＳＴＡＲＴが「１」であるか否かを判別する。この判別結果がＮＯのときには、そのまま本処理を終了する。
【０２０４】
一方、ステップ１３０の判別結果がＹＥＳのとき、すなわち、全気筒で初期化実行済みフラグＦ＿ＩＮＩ＿ＤＯＮＥが「１」に設定されていること、およびＩＧ・ＳＷ２９がスタート位置にあることなどの、エンジン３の始動条件が成立しているときには、クランキングを実行すべきであると判定して、ステップ１３１で、図示しないスタータを駆動することにより、クランキングを実行する。その後、本処理を終了する。
【０２０５】
以下、図２６を参照しながら、ＥＣＵ２によって実行される燃料噴射制御処理および点火時期制御処理について説明する。これらの処理は、燃料噴射量、燃料噴射タイミングおよび点火時期を算出するものであり、ＴＤＣ信号の発生に同期する制御周期で気筒３ａ毎に実行される。
【０２０６】
同図に示すように、まず、ステップ２４０で、初期化実行済みフラグＦ＿ＩＮＩ＿ＤＯＮＥが「１」であるか否かを判別する。この判別結果がＮＯで、初期化制御処理を実行済みでないときには、ステップ２４７に進み、気筒休止処理を実行する。具体的には、燃料噴射弁６による燃料噴射、および点火プラグ７による点火をいずれも休止することで、当該気筒３ａの運転を休止する。その後、本処理を終了する。
【０２０７】
一方、ステップ２４０の判別結果がＹＥＳのときには、ステップ２４１に進み、エンジン始動フラグＦ＿ＥＮＧＳＴＡＲＴが「１」であるか否かを判別する。この判別結果がＹＥＳで、エンジン３の始動条件が成立しているときには、ステップ２４２に進み、始動時の燃料噴射制御処理を実行する。この処理では、燃料噴射量および噴射タイミングがエンジン３の始動に最適な値に決定される。
【０２０８】
次いで、ステップ２４３に進み、始動時の点火時期制御処理を実行する。この処理では、点火時期がエンジン３の始動に最適な値に決定される。その後、本処理を終了する。
【０２０９】
一方、ステップ２４１の判別結果がＮＯのときには、ステップ２４４に進み、動作不良フラグＦ＿ＡＮＹ＿ＮＧが「１」であるか否かを判別する。この判別結果がＹＥＳで、４つの弁駆動部のいずれかが動作不良状態にあるときには、前述したように、ステップ２４７の気筒休止処理を実行した後、本処理を終了する。
【０２１０】
一方、ステップ２４４の判別結果がＮＯのときには、ステップ２４５に進み、通常時の燃料噴射制御処理を実行する。この処理では、エンジン回転数ＮＥおよびアクセル開度ＡＰに応じて、図示しないマップを検索することにより、要求トルクＴＲＱが算出され、この要求トルクＴＲＱと、エアフローセンサ２２およびＬＡＦセンサ２３の検出信号の値などに応じて、燃料噴射量および噴射タイミングが最適な値に決定される。
【０２１１】
次いで、ステップ２４６に進み、通常時の点火時期制御処理を実行する。この処理では、点火時期が、エンジン３の運転状態に応じて最適な値に決定される。その後、本処理を終了する。
【０２１２】
以上のように、本実施形態の制御装置１によれば、運転者による始動要求が発生した場合（ステップ１の判別結果がＹＥＳの場合）、初期化制御処理で、開側電磁石５１がゼロリフト位置に駆動され、アーマチュア５０が閉側電磁石４１と開側電磁石５１によって挟持される。そして、その状態で、閉側電磁石４１が励磁されることにより、アーマチュア５０が閉側電磁石４１に吸着され、その後、可変リフト機構７０によって、開側電磁石５１が最小リフト位置に駆動される。このように、アーマチュア５０が、閉側電磁石４１および開側電磁石５１によって挟持された状態で、閉側電磁石４１に吸着されるので、従来と比べて、消費電力をより低減することができるとともに、クランキング開始時、吸気弁１０が上死点位置まで移動したピストンに衝突するのを確実に回避することができる。
【０２１３】
さらに、クランキング開始時点では、アーマチュア５０が閉側電磁石４１に吸着されているとともに、開側電磁石５１がエンジン３の始動用の最小リフト位置まで確実に移動している状態となるので、エンジン３の良好な始動性を確保することができる。
【０２１４】
また、回動角センサ２４のゼロ点校正を、そのための格別の制御動作を必要とすることなく、初期化制御処理に付随して行うことができる。また、エンジン３のクランキングを開始する際、回動角センサ２４のゼロ点校正が完了しているので、エンジン３の始動後、電磁動弁機構４０を精度よく制御することができる。
【０２１５】
さらに、この電磁動弁機構４０では、閉側電磁石４１が不動に構成され、開側電磁石５１およびアーマチュア５０が、閉側電磁石４１に対して、同一軸線回りに回動自在に構成されているので、開弁用の電磁石が吸気弁の軸線方向に平行移動する従来の電磁動弁機構と比べて、機構自体を小型化することができ、それにより、設計の自由度を高めることができる。
【０２１６】
なお、実施形態は、本願発明の制御装置１を、２つの吸気弁１０および２つの排気弁１１を気筒３ａ毎に備えた内燃機関３に適用した例であるが、本願発明の制御装置を、吸気弁および排気弁を１つずつ気筒毎に備えた内燃機関に適用してもよい。
【０２１７】
また、実施形態は、可変リフト機構７０および回動角センサ２４を気筒３ａ毎に備えた例であるが、可変リフト機構７０および回動角センサ２４をいずれもエンジン３全体で１つとし、１つの可変リフト機構７０により、全気筒の全吸気弁１０における吸気リフトＬｉｆｔを同時に変更するとともに、１つの回動角センサ２４の検出信号に基づき、全気筒の吸気リフトＬｉｆｔを算出するように構成してもよい。そのようにした場合、可変リフト機構７０および回動角センサ２４の数を減らせることで、製造コストを削減することができるとともに、制御装置１の演算負荷を低減することができる。
【０２１８】
さらに、実施形態は、図１０のステップ４４および図１２のステップ５９，６１で、閉側制御入力Ｉｓｏｌ＿ｃｌを所定値Ｉｓｏｌ＿ｉｎｉに、開側制御入力Ｉｓｏｌ＿ｏｐを値０にそれぞれ設定することにより、アーマチュア５０を閉側電磁石４１に吸着させ、エンジン始動前に全気筒の吸気弁１０および排気弁１１を閉弁状態に保持した例であるが、これに代えて、ステップ４４，５９，６１で、閉側制御入力Ｉｓｏｌ＿ｃｌを値０に、開側制御入力Ｉｓｏｌ＿ｏｐを所定値Ｉｓｏｌ＿ｉｎｉにそれぞれ設定することにより、アーマチュア５０を開側電磁石５１に吸着させるように構成してもよい。
【０２１９】
例えば、エンジン停止中も、停止時のクランク角位置ＣＡをＥＣＵ２内に記憶しておき、エンジン始動時、これに基づいて各気筒３ａのピストン位置を推定し、それに応じて、吸気弁１０および排気弁１１の開閉状態を気筒３ａ毎に異なるように制御し、１燃焼サイクルでの４つの行程の異なるいずれかを気筒３ａ毎に実行するように構成してもよい。このようにした場合、エンジン３ａの始動時間を短縮することができる。
【０２２０】
一方、実施形態は、クランキング開始前に実行されるステップ１２の初期化制御処理において、開側電磁石５１をゼロリフト位置まで駆動した後、最小リフト位置に駆動した例であるが、これに代えて、この初期化制御処理において、回動角センサ２４のゼロ点校正処理などを省略し、開側電磁石５１をゼロリフト位置まで駆動することなく、開側電磁石５１を最小リフト位置に最初から駆動するように構成してもよい。例えば、前回のエンジン始動時においてゼロ点校正値Ｃｏｍｐ＿ｚｅｒｏを算出済みの場合、今回のエンジン始動時には、初期化制御処理において、ステップ４７の始動準備処理のみを実行するように構成してもよい。
【０２２１】
また、実施形態は、ヒンジシャフト４８を介して、閉側電磁石４１、アーマチュア５０および開側電磁石５１を互いに連結するとともに、アーマチュア５０および開側電磁石５１を、閉側電磁石４１に対して、ヒンジシャフト４８の軸線回りに回動自在に構成した例であるが、本願発明の電磁動弁機構の構成はこれに限らず、アーマチュア５０および開側電磁石５１が同一軸線回りに回動自在で、開側電磁石５１がゼロリフト位置に回動したときに、閉側電磁石４１との間にアーマチュア５０を挟持する構成であればよい。例えば、アーマチュア５０および開側電磁石５１を、閉側電磁石４１に連結することなく、シリンダヘッド３ｄに固定された軸に、その軸線回りに回動自在に取り付けてもよい。
【０２２２】
また、前述した実施形態は、電磁動弁機構として吸気電磁動弁機構４０および排気電磁動弁機構８０を用いた例であるが、これらの電磁動弁機構４０，８０に代えて、図２７および図２８に示す電磁動弁機構１００を用いてもよい。なお、以下の説明では、便宜上、図２８の手前側を「左」、奥側を「右」、右側を「前」、左側を「後」、上側を「上」、下側を「下」というとともに、前述した実施形態と同様の構成については同じ符号を付し、その説明を省略する。
【０２２３】
この電磁動弁機構１００は、左右の吸気弁１０，１０（１つのみ図示）を駆動するものであり、図示しないが、前述した吸気電磁動弁機構４０と同様に、左右対称に構成されている。左右の吸気弁１０，１０はそれぞれ、この電磁動弁機構１００の左半部および右半部によって駆動される。
【０２２４】
両図に示すように、電磁動弁機構１００は、閉側電磁石１１０および開側電磁石１２０と、これらの電磁石１１０，１２０の間に配置された左右一対のアーマチュア１３０，１３０（１つのみ図示）と、２つのアーマチュア１３０，１３０をそれぞれ吸気弁１０，１０の閉弁方向に常時、付勢する左右一対の閉側コイルばね１４０，１４０（１つのみ図示）と、２つのアーマチュア１３０，１３０をそれぞれ吸気弁１０，１０の開弁方向に常時、付勢する左右一対の開側コイルばね１５０，１５０（１つのみ図示）と、吸気リフトＬｉｆｔを変更する可変リフト機構１６０などを備えている。
【０２２５】
閉側電磁石１１０（閉弁用の電磁石）は、ＥＣＵ２に電気的に接続されており、ＥＣＵ２からの制御入力によって励磁されると、アーマチュア１３０，１３０を吸引する。それによって、吸気弁１０，１０は、吸気ポートを閉鎖する閉弁位置（図２８に２点鎖線で示す位置）に駆動される。この閉側電磁石１１０は、前述した閉側電磁石４１と同様に構成されているので、その詳細な説明は省略するが、下方に突出する左右一対のヒンジ部１１１，１１１（１つのみ図示）を備えており、これらのヒンジ部１１１，１１１には、ヒンジシャフト１７０の両端部が固定されている。
【０２２６】
一方、各アーマチュア１３０は、一部を除いて前述したアーマチュア５０と同様に構成されており、平板状の本体部１３１と、その前端部に取り付けられたローラ１３２と、その後端部に一体に形成された円筒状のヒンジ部と、ヒンジ部から斜め後方に延びる４つのレバー１３３（１つのみ図示）などを備えている。
【０２２７】
アーマチュア１３０のヒンジ部は、開側電磁石１２０の後述する各２つのヒンジアーム１２４，１２４の間に配置されており、その内孔には、上記ヒンジシャフト１７０が嵌合している。それにより、２つのアーマチュア１３０，１３０は、互いに独立してヒンジシャフト１７０の軸線回りに回動自在に構成されている。
【０２２８】
また、ローラ１３２は、２つの電磁石１１０，１２０が非励磁状態にあるときには、２つのコイルばね１４０，１５０の付勢力によって、ラッシュアジャスタ１４３の上端面に当接した状態に保持される（図２７参照）。さらに、レバー１３３の上端部は、開側コイルばね１５０の後述するロッド１５４に回動自在に連結されている。
【０２２９】
一方、開側電磁石１２０（開弁用の電磁石）は、ＥＣＵ２に電気的に接続されており、ＥＣＵ２からの制御入力によって励磁されると、アーマチュア１３０，１３０を吸引する（図２８参照）。それによって、吸気弁１０，１０は、吸気ポートを開放するように開弁方向に駆動される。
【０２３０】
この開側電磁石１２０は、一部を除いて前述した開側電磁石５１と同様に構成されており、前述したコア５２と同様のコア１２１と、このコア１２１の前後に配置された前後のホルダ１２２，１２３と、左右一対のコイル（図示せず）などを備えている。この前ホルダ１２２の下端部には、可変リフト機構１６０の後述するリンク１６４が連結されている。
【０２３１】
また、後ホルダ１２３は、その下端部から斜め後方に延びる４つのレバー１２４（１つのみ図示）を一体に備えている。各レバー１２４の中央部には、孔が形成されており、前述したヒンジシャフト１７０は、アーマチュア１３０のヒンジ部が各２つのレバー１２４，１２４の間に配置された状態で、ヒンジ部の内孔およびレバー１２４の孔に嵌合している。それにより、開側電磁石１２０は、ヒンジシャフト１７０を介して、閉側電磁石１１０に連結されているとともに、２つのアーマチュア１３０，１３０に対して独立した状態で、ヒンジシャフト１７０の軸線回りに回動可能に構成されている。
【０２３２】
さらに、各２つのレバー１２４，１２４の上端部は、開側コイルばね１５０の後述する後ばね座１５５に回動自在に連結されている。
【０２３３】
一方、前述した各閉側コイルばね１４０（付勢手段）は、上ばね座１４１と下ばね座１４２との間に圧縮状態で収容されており、この上ばね座１４１は、前述した上ばね座６１と同様に、フランジ状で、吸気弁１０のステム１０ａの上端部に連結されている。また、下ばね座１４２は、シリンダヘッド３ｄの一部に形成されたものであり、吸気弁１０の軸線方向に延びる孔を有している。この下ばね座１４２の孔には、ガイド１０ｂが抜け止め状態で嵌合している。
【０２３４】
さらに、吸気弁１０の上側には、ラッシュアジャスタ１４３が設けられている。このラッシュアジャスタ１４３は、円柱状に形成され、吸気弁１０と同軸に摺動可能な状態で、シリンダヘッド３ｄの孔に嵌合している。このラッシュアジャスタ１４３は、２つのコイルばね１４０，１５０の付勢力によって、その上端面および下端面がそれぞれ、アーマチュア１３０のローラ１３２および吸気弁１０のステム１０ａに常に当接するように保持されている。
【０２３５】
さらに、ラッシュアジャスタ１４３の上側には、オイルダンパ１４４が設けられている。吸気弁１０の着座時、アーマチュア１３０の移動速度がオイルダンパ１４４で低減されることによって、着座ショックが緩衝される。
【０２３６】
一方、前述した各開側コイルばね１５０（付勢手段）は、閉側電磁石１１０上のガイド１５１の内孔に通されているとともに、前ばね座１５２と後ばね座１５５の間に圧縮状態で収容されている。前ばね座１５２は、円盤１５３およびロッド１５４を一体に形成したものであり、このロッド１５４は、円盤１５３の中心部から後ばね座１５５の貫通孔（図示せず）を通って後方に延び、その後端部が、図示しないピンを介して、アーマチュア１３０のレバー１３３，１３３に連結されている。
【０２３７】
また、後ばね座１５５は、ピンを介して、前述した各２つのレバー１２４，１２４の上端部に回動自在に連結されている。
【０２３８】
一方、図２７に示すように、前述した可変リフト機構１６０（変更機構）は、リフトアクチュエータ１６１、コントロールシャフト１６２およびリンク１６４などを備えている。このリフトアクチュエータ１６１は、前述したリフトアクチュエータ７１と同様に、電動機および図示しないギヤ機構を組み合わせたものであり、ＥＣＵ２から制御入力が供給されると、それに伴って、コントロールシャフト１６２をその軸線回りに回動させる。
【０２３９】
このコントロールシャフト１６２は、一対のリンクアーム１６３，１６３（１つのみ図示）を一体に備えており、各リンクアーム１６３は、ピンを介して、リンク１６４の下端部に回動自在に連結されている。また、リンク１６４の上端部は、ピンを介して、開側電磁石１２０の前ホルダ１２２の下端部に連結されている。
【０２４０】
以上の可変リフト機構１６０では、ＥＣＵ２からの制御入力によって、リフトアクチュエータ１６１がコントロールシャフト１６２を軸線回りに回動させると、それに伴って、開側電磁石１２０がヒンジシャフト１７０の軸線回りに回動する。
【０２４１】
その場合、開側電磁石１２０が図２７の反時計回りに回動し続けると、アーマチュア１３０を介して閉側電磁石１１０に当接し、それにより、開側電磁石１２０は、アーマチュア１３０を閉側電磁石１１０との間に面接触状態で挟持するゼロリフト位置（図示せず）に係止される。一方、開側電磁石１２０が図２７の時計回りに回動し続けると、図示しないストッパに当接することにより、開側電磁石１２０は、その前端部が閉側電磁石１１０から最も離間する最大リフト位置（図２８（ａ）に示す位置）に係止される。すなわち、開側電磁石１２０の回動可能範囲は、ゼロリフト位置と最大リフト位置との間に規制される。
【０２４２】
以上のように構成された電磁動弁機構１００では、２つの電磁石１１０，１２０が非励磁状態にある場合、２つのコイルばね１４０，１５０の付勢力により、アーマチュア１３０が中立位置（図２７に示す位置）に保持される。その状態から、閉側電磁石１１０がＥＣＵ２からの制御入力によって励磁されると、閉側電磁石１１０は、開側コイルばね１５０の付勢力に抗しながら、アーマチュア１３０を吸引し、それにより、吸気弁１０を閉弁させる。そして、閉側電磁石１１０が励磁されている限り、アーマチュア１３０が閉側電磁石１１０に吸着されることで、吸気弁１０が閉弁状態に保持されるとともに、閉側電磁石１１０が非励磁状態になると、開側コイルばね１５０の付勢力により、アーマチュア１３０が中立位置側に移動する。
【０２４３】
一方、開側電磁石１２０がＥＣＵ２からの制御入力によって励磁されると、開側電磁石１２０は、閉側コイルばね１４０の付勢力に抗しながら、アーマチュア１３０を吸引し、それにより、吸気弁１０を開弁させる。そして、開側電磁石１２０が励磁されている限り、アーマチュア１３０が開側電磁石１２０吸着されることで、吸気弁１０が開弁状態に保持されるとともに、開側電磁石１２０が非励磁状態になると、閉側コイルばね１４０の付勢力により、アーマチュア１３０が中立位置側に移動する。
【０２４４】
したがって、この電磁動弁機構１００によれば、２つの電磁石１１０，１２０の励磁・非励磁タイミングを変更することによって、前述した電磁動弁機構４０，８０と同様に、吸気弁１０の開閉時期および吸気リフトＬｉｆｔを自在に変更することができる。具体的には、吸気弁１０を、図７に示すリフト曲線で開閉するように駆動できるとともに、その吸気リフトＬｉｆｔを示す期間を自在に変更できる。これに加えて、開側電磁石１２０を、最大リフト位置とゼロリフト位置との間で駆動することにより、吸気リフトＬｉｆｔを、その最大値Ｌｉｆｔｉｎ＿Ｈと値０の間で変更することができる。
【０２４５】
また、前述したような通常制御中には、開側電磁石１２０は、上記最大リフト位置と図２８（ｂ）に示す最小リフト位置との間で駆動され、この最小リフト位置では、吸気弁１０は、図７の破線で示すリフト曲線で開弁し、吸気リフトＬｉｆｔが、前述した最小値Ｌｉｆｔ＿Ｌを示す。この最小値Ｌｉｆｔ＿Ｌは、前述したように、２つの電磁石１１０，１２０が非励磁状態にある場合でも、吸気弁１０が上死点にあるピストン３ｂに当接しないような値に設定されている。
【０２４６】
一方、この電磁動弁機構１００にも、図示しないフェイルセーフ機構が設けられており、このフェイルセーフ機構により、電磁動弁機構１００が故障しているときには、開側電磁石１２０が上記最小リフト位置に強制的に駆動され、その位置に保持される。
【０２４７】
以上のように、この電磁動弁機構１００を用いた場合でも、前述した電磁動弁機構４０，８０を用いた場合と同様の前述した作用効果を得ることができる。これに加えて、電磁動弁機構４０では、開側コイルばね６５が吸気弁１０と同一軸線上でその上側に配置されているのに対して、この電磁動弁機構１００では、開側コイルばね１５０が閉側電磁石１１０の上方に配置されているので、電磁動弁機構１００における吸気弁１０の上側の部分を小型化でき、設計上の自由度をさらに高めることができる。
【図面の簡単な説明】
【０２４８】
【図１】本願発明の一実施形態に係る制御装置が適用された電磁動弁機構およびこれを備えた内燃機関の概略構成を示す図である。
【図２】制御装置の概略構成を示すブロック図である。
【図３】吸気電磁動弁機構の概略構成を示す断面図である。
【図４】吸気電磁動弁機構の一部の概略構成を示す分解斜視図である。
【図５】リフトアクチュエータの一部および開側電磁石の概略構成を示す分解斜視図である。
【図６】（ａ）吸気電磁動弁機構の開側電磁石が最大リフト位置にあるときの吸気弁の開弁状態と（ｂ）最小リフト位置にあるときの吸気弁の開弁状態を示す図である。
【図７】吸気弁のリフト曲線を示す図である。
【図８】動弁機構制御処理を示すフローチャートである。
【図９】第１吸気制御処理を示すフローチャートである。
【図１０】初期化制御処理を示すフローチャートである。
【図１１】目標リフトＬｉｆｔ＿ｃｍｄの算出に用いるテーブルの一例を示す図である。
【図１２】始動準備処理を示すフローチャートである。
【図１３】通常制御処理を示すフローチャートである。
【図１４】目標リフトＬｉｆｔ＿ｃｍｄの算出に用いるマップの一例を示す図である。
【図１５】コイル温度Ｔｃｏｉｌの算出処理を示すフローチャートである。
【図１６】制御入力の算出処理を示すフローチャートである。
【図１７】制限値Ｌｉｆｔ＿ｌｍｔの算出に用いるテーブルの一例を示す図である。
【図１８】ソレノイド制御入力Ｉｓｏｌの算出処理を示すフローチャートである。
【図１９】動作不良時制御処理を示すフローチャートである。
【図２０】復帰制御処理を示すフローチャートである。
【図２１】復帰判定処理を示すフローチャートである。
【図２２】動作判定処理を示すフローチャートである。
【図２３】第１吸気脱調判定処理を示すフローチャートである。
【図２４】最終判定処理を示すフローチャートである。
【図２５】クランキング制御処理を示すフローチャートである。
【図２６】燃料噴射制御処理および点火時期制御処理などを示すフローチャートである。
【図２７】電磁動弁機構の変形例の概略構成を示す断面図である。
【図２８】（ａ）電磁動弁機構の開側電磁石が最大リフト位置にあるときの吸気弁の開弁状態と（ｂ）最小リフト位置にあるときの吸気弁の開弁状態を示す図である。
【符号の説明】
【０２４９】
１  制御装置
２  ＥＣＵ（始動要求判定手段、変更機構駆動手段、位置検出手段、電磁石制御手
段、校正手段、許可手段）
３  内燃機関
１０  吸気弁
１１  排気弁
２４  回動角センサ（位置検出手段）
４０  電磁動弁機構
４１  閉側電磁石（閉弁用の電磁石）
５０  アーマチュア
５１  開側電磁石（開弁用の電磁石）
６０  閉側コイルばね（付勢手段）
６５  開側コイルばね（付勢手段）
７０  可変リフト機構（変更機構）
１００  電磁動弁機構
１１０  閉側電磁石（閉弁用の電磁石）
１２０  開側電磁石（開弁用の電磁石）
１３０  アーマチュア
１４０  閉側コイルばね（付勢手段）
１５０  開側コイルばね（付勢手段）
１６０  可変リフト機構（変更機構）
Ｌｉｆｔ  吸気弁のリフト（一方の弁のリフト）
【図１】
2008286005.tif 000003
【図２】
2008286005.tif 000004
【図３】
2008286005.tif 000005
【図４】
2008286005.tif 000006
【図５】
2008286005.tif 000007
【図６】
2008286005.tif 000008
【図７】
2008286005.tif 000009
【図８】
2008286005.tif 000010
【図９】
2008286005.tif 000011
【図１０】
2008286005.tif 000012
【図１１】
2008286005.tif 000013
【図１２】
2008286005.tif 000014
【図１３】
2008286005.tif 000015
【図１４】
2008286005.tif 000016
【図１５】
2008286005.tif 000017
【図１６】
2008286005.tif 000018
【図１７】
2008286005.tif 000019
【図１８】
2008286005.tif 000020
【図１９】
2008286005.tif 000021
【図２０】
2008286005.tif 000022
【図２１】
2008286005.tif 000023
【図２２】
2008286005.tif 000024
【図２３】
2008286005.tif 000025
【図２４】
2008286005.tif 000026
【図２５】
2008286005.tif 000027
【図２６】
2008286005.tif 000028
【図２７】
2008286005.tif 000029
【図２８】
2008286005.tif 000030