以下、本発明を自動車用エンジンに適用した一実施形態を図1〜図9に従って説明する。
図1は、エンジン1における所定気筒のシリンダヘッド2周りの構造を示す拡大断面図である。このエンジン1においては、シリンダヘッド2、シリンダブロック3、及びピストン5によって燃焼室6が区画され、この燃焼室6には吸気通路7及び排気通路8が接続されている。そして、吸気通路7と燃焼室6との間は吸気バルブ9の開閉動作によって連通・遮断され、排気通路8と燃焼室6との間は排気バルブ10の開閉動作によって連通・遮断されるようになる。
シリンダヘッド2には、吸気バルブ9及び排気バルブ10を駆動するための吸気カムシャフト11及び排気カムシャフト12が設けられている。これら吸気カムシャフト11及び排気カムシャフト12は、エンジン1のクランクシャフトからの回転伝達によって回転するようになっている。また、吸気カムシャフト11及び排気カムシャフト12には、それぞれ吸気カム11a及び排気カム12aが設けられている。そして、これら吸気カム11a及び排気カム12aの吸気カムシャフト11及び排気カムシャフト12との一体回転を通じて、吸気バルブ9及び排気バルブ10が開閉動作するようになっている。
また、エンジン1には、吸気バルブ9及び排気バルブ10といった機関バルブのバルブ特性を可変とするバルブリフト可変機構として、吸気バルブ9の最大リフト量及び吸気カム11aの作用角を可変とするバルブリフト可変機構14が吸気カム11aと吸気バルブ9との間に設けられている。このバルブリフト可変機構14の駆動を通じて、例えば吸入空気量を多く必要とするエンジン運転状態になるほど、最大リフト量及び作用角が大となるよう制御される。これは最大リフト量及び作用角を大とするほど、吸気通路7から燃焼室6への空気の吸入が効率よく行われ、上述した吸入空気量に関する要求を満たすことが可能なためである。
次に、バルブリフト可変機構14の詳細な構造について説明する。
バルブリフト可変機構14は、回転する吸気カム11aにより押されて上記吸気カムシャフト11と平行に延びるロッカシャフト15及びコントロールシャフト16の軸線を中心に揺動する入力アーム17と、この入力アーム17の揺動に基づき上記軸線を中心に揺動する出力アーム18とを備えている。入力アーム17については、ローラ19が回転可能に取り付けられるとともに、そのローラ19が吸気カム11aに押しつけられるようコイルスプリング20によって吸気カム11a側に付勢されている。また、出力アーム18は、その揺動時にロッカアーム21に押しつけられ、同ロッカアーム21を介して吸気バルブ9をリフトさせる。
このロッカアーム21の基端部はラッシュアジャスタ22によって支持され、同ロッカアーム21の先端部は吸気バルブ9に接触している。また、ロッカアーム21は吸気バルブ9のバルブスプリング24によって出力アーム18側に付勢され、これによりロッカアーム21の基端部と先端部との間に回転可能に支持されたローラ23が出力アーム18に押しつけられている。従って、吸気カム11aの回転に基づき入力アーム17及び出力アーム18が揺動すると、出力アーム18がロッカアーム21を介して吸気バルブ9をリフトさせ、吸気バルブ9の開閉動作が行われるようになる。
バルブリフト可変機構14では、パイプ状のロッカシャフト15内に配置されたコントロールシャフト16を軸方向に変位させることで、入力アーム17と出力アーム18との揺動方向についての相対位置を変更することが可能となっている。このように、入力アーム17と出力アーム18との揺動方向についての相対位置を変更すると、上記吸気バルブ9の最大リフト量、及び吸気カム11aの吸気バルブ9に対する作用角が可変とされる。即ち、入力アーム17と出力アーム18とを揺動方向について互いに接近させるほど、吸気バルブ9の最大リフト量及び吸気カム11aの作用角は小となってゆく。逆に、入力アーム17と出力アーム18とを揺動方向について互いに離間させるほど、吸気バルブ9の最大リフト量及び吸気カム11aの作用角は大となってゆく。
次に、バルブリフト可変機構14を駆動すべく上記コントロールシャフト16を軸方向に変位させるための駆動機構、及び、その駆動機構を駆動制御する制御装置について、図2を参照して説明する。
同図に示されるように、コントロールシャフト16の基端部(図中右端部)には、ブラシレスモータ47が変換機構48を介して連結されている。この変換機構48は、ブラシレスモータ47の回転運動をコントロールシャフト16の軸方向への直線運動に変換するためのものである。そして、上記ブラシレスモータ47の所定の回転角範囲内での回転駆動、例えば同モータ47の10回転分の回転角範囲(0〜3600°)内での回転駆動を通じて、コントロールシャフト16が軸方向に変位させられ、バルブリフト可変機構14が駆動されることとなる。
ちなみに、ブラシレスモータ47を正回転させると、コントロールシャフト16は先端(図中左端)側に変位し、入力アーム17と出力アーム18との揺動方向についての相対位置が互いに接近するように変更される。また、ブラシレスモータ47を逆回転させると、コントロールシャフト16は基端(図中右端)側に変位し、入力アーム17と出力アーム18との揺動方向についての相対位置が互いに離間するように変更される。こうしたブラシレスモータ47の回転駆動による入力アーム17及び出力アーム18の揺動方向についての相対位置の変更を通じて、吸気カム11aの回転により出力アーム18が揺動したときの吸気バルブ9の最大リフト量、及び吸気カム11aの作用角が可変とされる。
ブラシレスモータ47には、三つの電気角センサS1〜S3、及び 二つの位置センサS4,S5が設けられている。
三つの電気角センサS1〜S3は、ブラシレスモータ47の回転時、同モータ47のロータと一体回転する4極の多極マグネットの磁気に応じて、図3(a)〜(c)に示されるようなパルス状の信号を互いに位相をずらした状態で出力するものである。すなわち、こうしたパルス信号の波形がえられるよう、上記ロータに対する各電気角センサS1〜S3の周方向位置が定められている。なお、各電気角センサS1〜S3のうちの一つのセンサから出力されるパルス信号のエッジは、ブラシレスモータ47の45°回転毎に発生している。また、上記一つのセンサからのパルス信号は、他のセンサからのパルス信号に対し、ブラシレスモータ47の30°回転分だけ進み側及び遅れ側に位相をずらした状態となっている。
二つの位置センサS4,S5は、ブラシレスモータ47の回転時、同モータ47のロータと一体回転する48極の多極マグネットの磁気に応じて、図3(d)及び(e)に示されるようなパルス状の信号を出力するものである。すなわち、こうしたパルス信号の波形が得られるよう、上記ロータに対する各位置センサS4,S5の周方向位置が定められている。なお、各位置センサS4,S5の内の一方のセンサから出力するパルス信号のエッジは、ブラシレスモータ47の7.5°回転毎に発生している。また、上記一方のセンサからのパルス信号は、他方のセンサからのパルス信号に対し、ブラシレスモータ47の3.75°回転分だけ位相をずらした状態となっている。
従って、電気角センサS1〜S3からのパルス信号のエッジ間隔が15°であるのに対し、位置センサS4,S5からのパルス信号のエッジ間隔は3.75°と上記15°というエッジ間隔よりも短くなっている。更に、電気角センサS1〜S3からのパルス信号のエッジ発生から次回のエッジ発生までには、位置センサS4,S5からのパルス信号のエッジが4回発生するようになっている。
コントロールシャフト16を軸方向に変位させるべく回転駆動されるブラシレスモータ47の制御装置は、吸気バルブ9の最大リフト量及び吸気カム11aの作用角といった吸気バルブ9のバルブ特性の制御など、エンジン1の各種制御を行う電子制御装置50(図2)を備えている。この電子制御装置50は、上記各種制御にかかる演算処理を実行するCPU、その制御に必要なプログラムやデータの記憶されたROM、CPUの演算結果が一時的に記憶されるRAM、外部との間で信号を入・出力するための入・出力ポート等を備えて構成されている。
電子制御装置50の入力ポートには、上述した電気角センサS1〜S3及び位置センサS4,S5が接続されるほか、更に以下のセンサを含む各種センサが接続されている。
・自動車の運転者によって踏み込み操作されるアクセルペダルの踏み込み量(アクセル踏込量)を検出するアクセルポジションセンサ51。
・エンジン1の吸気通路7に設けられたスロットルバルブの開度(スロットル開度)を検出するスロットルポジションセンサ52。
・上記吸気通路7を通じて燃焼室6に吸入される空気の量を検出するエアフローメータ53。
・エンジン1の出力軸の回転に対応する信号を出力してエンジン回転速度の検出等に用いられるクランクポジションセンサ54。
・自動車の運転者により切り換え操作され、現在の切換位置に対応した信号を出力するイグニッションスイッチ55。
また、電子制御装置50の出力ポートには、ブラシレスモータ47の駆動回路等が接続されている。電子制御装置50は、上記各種センサから入力した検出信号に基づきエンジン運転状態を把握する。そして、その把握したエンジン運転状態に基づきブラシレスモータ47を駆動してコントロールシャフト16を軸方向に変位させることで、バルブリフト可変機構14が駆動されて吸気バルブ9のバルブ特性制御が行われる。なお、ブラシレスモータ47の駆動は、各電気角センサS1〜S3から出力される同モータ47の回転時のパルス信号の出力パターンに応じて、ブラシレスモータ47の通電相を切り換えることによって行われる。
吸気バルブ9のバルブ特性、すなわち吸気バルブ9の最大リフト量及び吸気カム11aの作用角は、コントロールシャフト16の軸方向位置、言い換えればブラシレスモータ47の上記所定回転角範囲内での回転角に対応したものとなる。従って、吸気バルブ9のバルブ特性を精密に制御するには、ブラシレスモータ47の回転角を正確に検出し、その回転角が目標とするバルブ特性に対応する回転角となるようブラシレスモータ47を駆動することが重要になる。
以下、本実施形態におけるブラシレスモータ47の回転角の検出手順について、図3のタイミングチャート及び図4のフローチャートを併せ参照して説明する。
図3において、(a)〜(e)は、ブラシレスモータ47の回転時における同モータ47の回転角変化に対し、各センサS1〜S5からパルス信号がどのように出力されるかを示す波形図である。また、(f)〜(h)ではそれぞれ、ブラシレスモータ47の回転時における同モータ47の回転角の変化に対し、電気角カウンタE、位置カウンタP(検出用位置カウンタPk)、及びストロークカウンタSのカウンタ値がどのように推移するかを示している。
なお、上記電気角カウンタEは、ブラシレスモータ47を駆動すべく同モータ47の通電相を切り換える際に用いられるものである。また、上記位置カウンタPは、エンジン1を運転開始する際のイグニッションスイッチ55のオン操作(イグニッションオン)後、コントロールシャフト16が軸方向にどれだけ変位したか、言い換えればブラシレスモータ47の回転角がどれだけ変化したかを表すものである。更に、上記ストロークカウンタSは、コントロールシャフト16の最も先端側に変位した状態を基準とする軸方向位置、言い換えればブラシレスモータ47の上記所定回転角範囲におけるコントロールシャフト16の上記変位状態に対応する端を基準とした同モータ47の回転角を表すものである。
図4は、上記電気角カウンタE、位置カウンタP(検出用位置カウンタPk)、及びストロークカウンタSのカウンタ値を変化させるためのカウント処理ルーチンを示すフローチャートである。同ルーチンは、電子制御装置50を通じて、位置センサS4,S5からのパルス信号のエッジ間隔に対応する時間間隔よりも短い間隔をもって周期的に実行される。
同ルーチンにおいては、まず図3(a)〜(c)に示される各電気角センサS1〜S3からのパルス信号の出力パターンに基づき、図3(f)に示されるように電気角カウンタEのカウンタ値を変化させる(S101)。具体的には、ブラシレスモータ47の正回転時(図中右向き)には、電気角センサS1〜S3からのパルス信号の出力パターンに応じて、「0」〜「m(この実施形態では5)」の範囲内の連続した各整数値が「0」→「1」→「2」→「3」→「4」→「5」→「0」といった順序で順方向に電気角カウンタEのカウンタ値として当てはめられる。また、ブラシレスモータ47の逆回転時(図中左向き)には、電気角センサS1〜S3からのパルス信号の出力パターンに応じて、「0」〜「m(5)」の範囲内の連続した各整数値が「5」→「4」→「3」→「2」→「1」→「0」→「5」といった順序で逆方向に電気角カウンタEのカウンタ値として当てはめられる。そして、この電気角カウンタEのカウンタ値に基づき、ブラシレスモータ47の通電層を切り換えることで、同モータの正回転方向または逆回転方向への駆動が行われる。
続いて、各位置センサS4,S5からのパルス信号の出力パターンに基づき、位置カウンタPのカウンタ値を増減させる(S102)。
より詳しくは、図5に示されるように、各位置センサS4,S5のうち、一方のセンサからパルス信号の立ち上がりエッジと立ち下がりエッジとのいずれが生じているか、及び、他方のセンサからハイ信号「H」とロー信号「L」とのいずれが出力されているかに応じて、位置カウンタPのカウンタ値に対し「+1」と「−1」とのいずれかが加算される。なお、同図において、「↑」はパルス信号の立ち上がりエッジを表し、「↓」はパルス信号の立ち下がりエッジを表している。こうした処理を通じて得られる位置カウンタPのカウンタ値は、各位置センサS4,S5からのパルス信号のエッジを計数した値ということになる。
ここで、ブラシレスモータ47の正回転中であれば、位置カウンタPのカウンタ値は、図3(d)及び(e)に示される位置センサS4,S5からのパルス信号のエッジ毎に「1」ずつ加算されてゆき、図3(g)中の右方向に変化してゆく。また、ブラシレスモータ47の逆回転中であれば、位置カウンタPのカウンタ値は、上記エッジ毎に「1」ずつ減算されてゆき、図3(g)中の左方向に変化してゆく。なお、この位置カウンタPは、イグニッションスイッチ55のオフ操作(イグニッションオフ)がなされたとき、「0」にリセットされる。従って、位置カウンタPのカウンタ値は、イグニッションオン後に、コントロールシャフト16が軸方向にどれだけ変位したか、言い換えればブラシレスモータ47の回転角がどれだけ変化したかを表すものとなる。
そして、図3(g)に示されるように変化する位置カウンタPに応じて、図3(h)に示されるようにストロークカウンタSが変化させられるようになる。具体的には、位置カウンタPに対し補正値ΔPを加算することで検出用位置カウンタPkが算出され(S103)、更に検出用位置カウンタPkに対して学習値Prの正負を反転させた値(「−Pr」)を加算して得られる値がストロークカウンタSのカウンタ値として設定される(S104)。なお、上記補正値ΔPについては詳しくは後述するが通常は「0」となっており、ここでは位置カウンタPと検出用位置カウンタPkとが等しい値となっている。また、上記学習値Prは、コントロールシャフト16をその移動範囲における図2の左端(先端)側の変位端まで変位させたとき、すなわちブラシレスモータ47の回転角を上記所定の回転角範囲内における上記コントロールシャフト16の変位状態に対応する端まで変化させたときの検出用位置カウンタPkのカウンタ値に対応した値である。この学習値Prは、イグニッションオン後に所定の条件下で学習が行われて電子制御装置50の不揮発性メモリ56に記憶されるものである。従って、検出用位置カウンタPkのカウンタ値に学習値Prの正負を反転して値を加算して得られる値であるストロークカウンタSのカウンタ値は、コントロールシャフト16の最も先端側に変位した状態を基準とする同シャフト16の軸方向位置を表すものということになる。このことは言い換えれば、ストロークカウンタSのカウンタ値が、ブラシレスモータ47の上記所定回転角範囲におけるコントロールシャフト16の上記変位状態に対応する端を基準とした同モータ47の回転角を表すものになるということである。
電子制御装置50は、上記ストロークカウンタSのカウンタ値に基づき、ブラシレスモータ47の回転角を検出する。そして、電子制御装置50は、バルブリフト可変機構14を駆動して吸気バルブ9の最大リフト量及び吸気カム11aの作用角といったバルブ特性を制御する際、上記のように検出されたブラシレスモータ47の回転角が目標とするバルブ特性に対応する回転角となるようブラシレスモータ47を駆動する。これにより、吸気バルブ9のバルブ特性を目標とする特性へと精密に制御することができるようになる。
なお、ブラシレスモータ47の回転時に位置センサS4,S5からのパルス信号のエッジを上述したように計数する代わりに、電気角センサS1〜S3からのパルス信号のエッジを計数しても、その計数値に基づきブラシレスモータ47の回転角を大まかにならば検出することは可能である。しかし、バルブリフト可変機構14を駆動するうえでのブラシレスモータ47の回転角の検出のように、同モータ47の回転角の検出に高精度が要求されるような場合には、上記のような大まかな回転角検出では検出精度が足りなくなる。このため、電気角センサS1〜S3からのパルス信号のエッジ間隔よりも短いエッジ間隔でパルス信号を出力する位置センサS4,S5が設けられ、それら位置センサS4,S5からのパルス信号のエッジを計数する位置カウンタPのカウンタ値に基づき、ブラシレスモータ47の回転角検出が行われている。
ところで、エンジン1の停止を行うためのグニッションオフ時、位置カウンタPのカウンタ値が「0」にリセットされると、その後にイグニッションオンされてエンジン運転が再開されたとき、位置カウンタP等に応じて設定されるストロークカウンタSのカウンタ値がブラシレスモータ47の回転角に対応しなくなる。このため、イグニッションオフ時に位置カウンタPのカウンタ値が「0」にリセットされる前に、当該カウンタ値を不揮発性メモリ56にカウンタ値Pgとして記憶しておき、その後のイグニッションオン時には不揮発性メモリ56に記憶されたカウンタ値Pgを位置カウンタPの初期値として設定することが必要になる。こうした処理を行うことで、エンジン1の運転再開後も、位置カウンタP等に応じて設定されるストロークカウンタSのカウンタ値をブラシレスモータ47の回転角に対応した値とすることが可能になる。
しかしながら、上述した処理を行ったとしても、イグニッションオフ後のエンジン停止中、機械的ながたつき等に起因してブラシレスモータ47の回転角が変化することがあり、この場合には上記と同様の不具合が生じる。なお、上記のようなブラシレスモータ47の回転角の変化は、バルブスプリング24の作用によりコントロールシャフト16が入力アーム17と出力アーム18とを接近させる方向、すなわち同シャフト16を先端側に変位させる方向に付勢されているため、ブラシレスモータ47の正回転方向には生じにくく、逆回転方向には生じやすい傾向がある。
ここで、上述した不具合に対処するための処理の概要について、図3のタイミングチャートを参照して説明する。
今、位置カウンタPのカウンタ値が例えば「29」であるとき、イグニッションオフされて不揮発性メモリ56に「29」をカウンタ値Pgとして記憶したとする。しかし、イグニッションオフ後のエンジン停止中、機械的ながたつき等によりブラシレスモータ47の回転角が逆回転方向(図中左側)に、例えば図3(g)の矢印aで示される変化量だけ変化したとすると、上記カウンタ値Pg(「29」)がブラシレスモータ47の実際の回転角と対応しなくなる。このときのブラシレスモータ47の実際の回転角に対応する位置カウンタPのカウンタ値は同図に示されるように「16」であり、その値に対し、不揮発性メモリ56に記憶されたカウンタ値Pgは「13」だけ増加側にずれていることになる。
従って、イグニッションオン時に上記カウンタ値Pgを位置カウンタPの初期値に設定したとしても、同位置カウンタP等に基づき設定されるストロークカウンタSのカウンタ値がブラシレスモータ47の実際の回転角に対応しなくなる。すなわち、図3(h)に示されるストロークカウンタSのカウンタ値が、コントロールシャフト16の実際の軸方向位置に対応する値(この場合は「331」)に対し、「13」だけ増加側にずれた状態(「344」)になる。その結果、ストロークカウンタSのカウンタ値に基づき検出されるブラシレスモータ47の回転角が不正確になり、その軸方向位置等に基づきブラシレスモータ47を駆動し、吸気バルブ9のバルブ特性を目標の特性に制御しようとしても、それを正しく行えなくなってエンジン運転への悪影響に繋がる。
そこで本実施形態では、イグニッションオン時の位置カウンタP(正確には検出用位置カウンタPk)のカウンタ値をブラシレスモータ47の実際の回転角に対応させるため、図4のステップS103で用いられる補正値ΔPに関係した、以下に示される[1]〜[3]の処理が実行される。
[1]イグニッションオフ時の電気角カウンタEのカウンタ値Eg、及び、そのイグニッションオフ後におけるイグニッションオン時の電気角カウンタEのカウンタ値Eiに基づき、エンジン停止中におけるブラシレスモータ47の回転角の変化量を位置カウンタPのカウンタ値の変化に置き換えた値である変化量相当値Xを算出する。なお、ここで用いられるカウンタ値Eiについてはイグニッションオン時に得ることができる。これは、電気角カウンタEのカウンタ値は電気角センサS1〜S3の出力パターンに応じて変化するものであって、イグニッションオン直後であっても上記出力パターンに応じて直ちに決定されるためである。そして、イグニッションオン時の電気角カウンタEのカウンタ値は、イグニッションオン毎に電子制御装置50の不揮発性メモリ56にカウンタ値Eiとして記憶される。
[2]イグニッションオン時に上記変化量相当値X(この場合は「13」)が算出された後、その変化量相当値Xと上記不揮発性メモリ56に記憶された位置カウンタPのカウンタ値Pg(「29」)との差分が、ブラシレスモータ47の実際の回転角に対応する位置カウンタPのカウンタ値(「16」)として算出される。そして、上記差分(X−Pg)が位置カウンタPのカウンタ値の補正に用いられる補正値ΔPとして設定される。
[3]上記イグニッションオン時、イグニッションオフの際に「0」にリセットされている位置カウンタPのカウンタ値に対し上記補正値ΔP分の補正を加え、その補正後の値をブラシレスモータ47の回転角の検出に用いられる検出用位置カウンタPkのカウンタ値として設定する。この検出用位置カウンタPkのカウンタ値の設定は、図4のステップS103の処理を通じて行われる。
以上の[1]〜[3]の処理を実行することで、イグニッションオン時の位置カウンタPに対し検出用位置カウンタPkが補正値ΔP分だけ変化し、その検出用位置カウンタPkのカウンタ値がブラシレスモータ47の実際の回転角に対応した値となる。そして、その検出用位置カウンタPk等を用いて設定されるストロークカウンタSのカウンタ値に基づき、ブラシレスモータ47の回転角を正確に検出することができ、上述した不具合が生じるのを回避することができるようになる。
次に、上記[1]の処理で行われる変化量相当値Xの算出について、更に詳しく説明する。
変化量相当値Xは、「X=(Eg−Ei)・n+(Pgをnで割った余り) …(1)」という式に基づき算出される。この式(1)で用いられる「n」は、電気角センサS1〜S3からのパルス信号のエッジ間において位置センサS4,S5から出力されるパルス信号のエッジ数を表しており、この実施形態では「4」となっている。そして、式(1)の「(Eg−Ei)・4」という項は、イグニッションオフ時のカウンタ値Egと、その後のイグニッションオン時のカウンタ値Eiとの差分を、位置カウンタPのカウンタ値の変化に置き換えた値ということになる。なお、イグニッションオフ時の位置カウンタPのカウンタ値Pgが電気角センサS1〜S3からのパルス信号のエッジ発生時の値、例えば「28」という値になっていれば、「(Eg−Ei)・4」という項をそのまま変化量相当値Xとして用いることが可能である。
しかし、上記位置カウンタPのカウンタ値Pgが電気角センサS1〜S3からのパルス信号のエッジ発生時の値(「28」等)でない場合、その値からのずれ分だけ「(Eg−Ei)・4」という項も正確な変化量相当値Xからずれた状態になる。例えば、カウンタ値Pgが上述したように「29」であるとすると、「(Eg−Ei)・4」という項が「28」からのカウンタ値Pgのずれ分である「1」だけ正確な変化量相当値Xからずれた状態になる。この正確な変化量相当値Xからの「(Eg−Ei)・4」という項のずれ分は、イグニッションオフ時の位置カウンタPのカウンタ値Pgを上記エッジ数nである「4」で割った余りによって表されることになる。従って、上記式(1)に示されるように、「(Eg−Ei)・4」という項に上記余りを加算して変化量相当値Xを算出することで、その算出された変化量相当値Xを正確な値とすることができる。
ところで、イグニッションオン時の電気角カウンタEのカウンタ値Eiは、ブラシレスモータ47の回転角に対して大まかに対応したものでしかなく、同シャフト16の軸方向位置に正確に対応したものではない。このため、イグニッションオン後、「0」となっている位置カウンタPに対し、上記カウンタ値Ei等に基づき算出される補正値ΔP分の補正を加えて検出用位置カウンタPkを求めたとしても、この検出用位置カウンタPkのカウンタ値がブラシレスモータ47の回転角に正確に対応した値になるとは限らない。より詳しくは、検出用位置カウンタPkのカウンタ値が、ブラシレスモータ47の実際の回転角に対し、最大、上述したエッジ数n(=4)だけずれる可能性がある。これは、イグニッションオン直後であって位置カウンタPのカウンタ値が「0」であるとき、ブラシレスモータ47の回転角がカウンタ値Eiをとり得る回転角範囲(エッジ数n分の回転角範囲)内の任意の値をとり得るためである。
例えば、エンジン停止中、機械的ながたつき等に起因してブラシレスモータ47の回転角が矢印aで示される変化量だけ変化したとすると、同モータ47の回転角は電気角センサS1〜S3からのパルス信号のエッジ発生時に対応する回転角となる。この場合、上記カウンタ値Eiはブラシレスモータ47の実際の軸線方向位置に正確に対応する値になる。従って、イグニッションオン時に位置カウンタPのカウンタ値に対し、上記カウンタ値Ei等に基づき算出される補正値ΔP分の補正を加え、補正後の値を検出用位置カウンタPkのカウンタ値とすることで、当該検出用位置カウンタPkのカウンタ値をコントロールシャフト16の実際の軸方向位置に正確に対応させることができる。これにより、検出用位置カウンタPkのカウンタ値及びストロークカウンタSのカウンタ値をそれぞれ、そのときのブラシレスモータ47の実際の回転角に対応する「16」及び「331」という値とすることができる。
しかし、エンジン停止中、機械的ながたつき等に起因してブラシレスモータ47の回転角が図6(g)に矢印bで示される変化量だけ変化したとすると、同モータ47の回転角は電気角センサS1〜S3からのパルス信号のエッジ間に対応した回転角になる。なお、この図6の(a)〜(h)も、図3と同様に、ブラシレスモータ47の回転角の変化に対する電気角センサS1〜S3のパルス信号の波形、位置センサS4,S5のパルス信号の波形、電気角カウンタEのカウンタ値の推移、位置カウンタP(pk)のカウンタ値の推移、及び、ストロークカウンタSのカウンタ値の推移を表している。
上記矢印b分の変化量に対応してコントロールシャフト16が変位すると、上記カウンタ値Eiがブラシレスモータ47の実際の回転角に対して正確に対応したものにならなくなる。従って、イグニッションオン時に「0」となっている位置カウンタPのカウンタ値に対し、上記カウンタ値Ei等に基づき算出される補正値ΔP分の補正を加え、その補正後の値を検出用位置カウンタPkのカウンタ値としたとき、当該カウンタ値とブラシレスモータ47の実際の回転角に対応するカウンタ値との間にずれが生じる。すなわち、この例ではブラシレスモータ47の実際の回転角に対応するカウンタ値が「18」であるのに対し、検出用位置カウンタPkのカウンタ値は「16」にしかならず、両者の間に「2」というずれが生じる。更に、検出用位置カウンタPk等に基づき設定されるストロークカウンタSのカウンタ値(「331」)と、ブラシレスモータ47の実際の回転角に対応するストロークカウンタSのカウンタ値(「333」)との間にも、上記と同様のずれが生じる。
こうした問題に対処するため、本実施形態では、イグニッションオン後、最初に電気角センサS1〜S3からのパルス信号のエッジを迎えたとき、位置カウンタPのカウンタ値をモータ正回転時であれば「エッジ数n(=4)」に設定し、モータ逆回転であれば「0」に設定するようにしている。
ここで、モータ正回転により上記エッジを迎えた場合、ブラシレスモータ47の回転角がエッジ数n分の回転角範囲における位置カウンタ増加側の端、すなわちこの例では電気角カウンタEのカウンタ値Eiが「1」をとり得る回転角範囲における位置カウンタ増加側の端に位置したことを意味する。このとき、位置カウンタPのカウンタ値は「2」でありブラシレスモータ47の実際の回転角に対応する値である「4」からずれた状態となる。しかし、上述したように位置カウンタPのカウンタ値をエッジ数nに設定することで、その位置カウンタPのカウンタ値に上記補正値ΔP分の補正を加えた値である検出用位置カウンタPkのカウンタ値を、ブラシレスモータ47の実際の回転角に対応させることができる。
一方、モータ逆回転により上記エッジを迎えた場合、ブラシレスモータ47の回転角がエッジ数n分の回転角範囲における位置カウンタ減少側の端、すなわちこの例では電気角カウンタEのカウンタ値Eiが「1」をとり得る回転角範囲における位置カウンタ減少側の端に位置したことを意味する。このとき、位置カウンタPのカウンタ値は「−2」でありブラシレスモータ47の実際の回転角に対応する値である「0」からずれた状態となる。しかし、上述したように位置カウンタPのカウンタ値を「0」に設定することで、その位置カウンタPのカウンタ値に上記補正値ΔP分の補正を加えた値である検出用位置カウンタPkのカウンタ値を、ブラシレスモータ47の実際の回転角に対応させることができる。
以上のように、検出用位置カウンタPkのカウンタ値をブラシレスモータ47の実際の回転角に対応させることで、その検出用位置カウンタPk等に基づき設定されるストロークカウンタSも、ブラシレスモータ47の実際の回転角に対応した値、すなわちモータ正回転時なら「335」、モータ逆回転時なら「331」という値になる。従って、同ストロークカウンタSのカウンタ値に基づき検出されるブラシレスモータ47の回転角を正確なものとすることができる。
ところで、電気角センサS1〜S3からのパルス信号のエッジは、位置センサS4,S5からのパルス信号のエッジ間にて生じる。このため、電気角センサS1〜S3からのパルス信号のエッジが生じる前後では、位置カウンタPの一つのカウンタ値に対し、電気角カウンタEのカウンタ値が二つの異なる値をとり得ることになる。
こうした状況としては、例えば、図7(c)に示される位置カウンタPのカウンタ値が「28」であるとき、図7(a)に示されるように電気角センサS3からのパルス信号のエッジが生じ、図7(b)に示される電気角カウンタEのカウンタ値が「3」から「4」に切り換えられるという状況が考えられる。この場合、上記エッジが生じる前後では、位置カウンタPの「28」という一つのカウンタ値に対し、電気角カウンタEのカウンタ値が「3」と「4」との二つの異なる値をとり得ることになる。
従って、電気角センサS1〜S3のパルス信号のエッジが生じる前後でイグニッションオフがなされる場合には、次のようなこと状況が生じる。すなわち、上記エッジ発生前にイグニッションオフがなされたときと上記エッジ発生後にイグニッションオフがなされたときとでは、位置カウンタPのカウンタ値が例えば「28」という一つの値に対し、電気角カウンタEのカウンタ値は「3」または「4」などの異なる値になる。
ここで、位置カウンタPのカウンタ値は、イグニッションオン後であって最初に電気角センサS1〜S3からのパルス信号のエッジを迎えた時点で「0」あるいは「エッジ数n(=4)」に設定されるため、当該カウンタ値の基準値である「0」は電気角センサS1〜S3からのパルス信号のエッジ発生時点に対応していることになる。従って、上述したように、位置カウンタPの一つのカウンタ値に対し、電気角カウンタEのカウンタ値が二つの異なる値をとり得る状況のとき、それら二つの値のうちイグニッションオフ時の電気角カウンタEのカウンタ値Egとして正しい値は、上記エッジ発生後であって電気角カウンタEが変化した後の値(この場合は「4」)ということになる。
なお、仮に電気角カウンタEのカウンタ値をそのまま上記カウンタ値Egとして用いたとすると、上記エッジ発生後にイグニッションオフがなされた場合にはカウンタ値Egが正しい値(「4」)になるものの、上記エッジ発生前にイグニッションオフがなされた場合にはカウンタ値Egが正しくない値(「3」)になる。このように、位置カウンタPの一つのカウンタ値に対し、電気角カウンタEのカウンタ値が正しい値と正しくない値との二値をとり得るため、そのカウンタ値Eg等に基づき算出される補正値ΔPも、図中の(1)及び(2)のように二値をとり得ることになる。その結果、当該補正値ΔPを一定に定めることができなくなる。
こうした不具合を回避するため、本実施形態では、イグニッションオフ時の電気角カウンタEのカウンタ値Egとして電気角カウンタEのカウンタ値をそのまま用いる代わりに、当該カウンタ値Egをイグニッションオフ時の位置カウンタPのカウンタ値Pg等を用い、以下の[4]及び[5]に示される手順で算出するようにしている。
[4]前回のイグニッションオン時の電気角カウンタEのカウンタ値Eib、今回のイグニッションオフ時における位置カウンタPのカウンタ値Pg、及び、上記エッジ数n(=4)を用いて式「Pg/n+Eib」に基づき、前回のイグニッションオン後における電気角カウンタEのカウンタ値の変化量を算出する。なお、上記前回のイグニッションオン時の電気角カウンタEのカウンタ値Eibとしては、イグニッションオン毎に電子制御装置50の不揮発性メモリ56に記憶される電気角カウンタEのカウンタ値のうち、前回のイグニッションオン時に対応したカウンタ値が用いられる。
[5]上記変化量を電気角カウンタEのカウンタ値がとり得る種類数(m+1)、すなわち「0」〜「5」の整数値の種類数である「6」で除算した余りを、イグニッションオフ時の電気角カウンタEのカウンタ値Egとして算出する。
以上のように算出されたカウンタ値Egは、電気角センサS1〜S3からのパルス信号のエッジが生じる前後でイグニッションオフがなされる状況下であって、当該イグニッションオフが上記エッジ発生前と発生後とのいずれの状況でなされたとしても、上述した正しい値(この場合は「4」)とすることができる。従って、カウンタ値Eg等に基づき算出される補正値ΔPを一定に定めることができなくなるという不具合を回避することができる。
次に、イグニッションスイッチ55のオフ操作及びオン操作がなされたときの位置カウンタPの処理手順について、停止・始動時位置カウンタ処理ルーチンを示す図8及び図9のフローチャートを参照して説明する。同ルーチンは、電子制御装置50を通じて、位置センサS4,S5からのパルス信号のエッジ間隔に対応する時間間隔よりも短い間隔をもって周期的に実行される。
同ルーチンにおいては、まずエンジン1の停止のためにイグニッションスイッチ55がオンからオフに切り換えられた直後であるか否かが判断される(図8のS201)。ここで肯定判定であれば、位置カウンタPのカウンタ値がイグニッションオフ時のカウンタ値Pgとして不揮発性メモリ56に記憶される(S202)。続いて、電気角カウンタEのイグニッションオフ時のカウンタ値Egが上記[4]及び[5]に示される手順で算出され(S203)、その後に位置カウンタPが「0」にリセットされる(S204)。
上記ステップS201で否定判定であれば、エンジン始動のためにイグニッションスイッチ55がオフからオンに切り換えられた直後であるか否かの判断が行われる(S205)。ここで肯定判定であれば、上記[1]の処理による変化量相当値Xの算出(S206)、及び、上記[2]の処理による補正値ΔPの算出(S207)が順次行われる。その後、電気角カウンタEのカウンタ値がイグニッションオン時の電気角カウンタEのカウンタ値Eiとして不揮発性メモリ56に記憶される(S208)。
上記ステップS205で否定判定であれば、イグニッションオン後であって電気角センサS1〜S3からのパルス信号の最初のエッッジを迎えた時点か否かが判断される(図9S209)。ここで肯定判定であれば、位置カウンタPのカウンタ値をブラシレスモータ47の正逆回転に応じて「0」または「エッジ数n」に設定するための処理(S210〜S212)が実行される。すなわち、ブラシレスモータ47の正回転時であれば(S210:YES)、位置カウンタPのカウンタ値が「エッジ数n(=4)」に設定される(S211)。また、ブラシレスモータ47の逆回転時であれば(S210:NO)、位置カウンタPのカウンタ値が「0」に設定される(S212)。なお、ステップS210におけるブラシレスモータ47が正回転しているか或いは逆回転しているかの判断については、イグニッションオフ後に電気角カウンタEのカウンタ値が上述した順方向に変化しているか、或いは同じく上述した逆方向に変化しているかに基づき行うことが可能である。
次に、ストロークカウンタSのカウンタ値を設定するのに用いられる学習値Prの学習手順、及び、その学習値Prの学習完了に関係して検出用位置カウンタPkのカウンタ値から上記補正値ΔP分を除く手順について、位置カウンタ学習ルーチンを示す図10のフローチャートを参照して説明する。同ルーチンは、電子制御装置50を通じて、位置センサS4,S5からのパルス信号のエッジ間隔に対応する時間間隔よりも短い間隔をもって周期的に実行される。
同ルーチンにおいては、イグニッションオン後における学習値Prの学習が未完、すなわちイグニッションオン後に一度も学習値Prの不揮発性メモリ56への記憶が行われておらず(S301:YES)、且つ、学習実行条件が成立しているとき(S302:YES)、学習値Prを学習するための処理(S303〜S305)が実行される。この処理は以下の手順で行われる。
コントロールシャフト16を吸気バルブ9の最大リフト量及び吸気カム11aの作用角が最小となる変位端(コントロールシャフト16先端側の変位端)に向けて変位させる(S303)。言い換えれば、ブラシレスモータ47の回転角を上記所定の回転角範囲における上記コントロールシャフト16の変位状態に対応する端まで変化させる。続いて、コントロールシャフト16が上記変位端に到達したか否かが、例えば位置カウンタPの変化が生じていない状態であるか否かに基づき判断される(S304)。そして、位置カウンタPの変化が生じていない状態であり、コントロールシャフト16が上記変位端に到達した旨判断されると、そのときの検出用位置カウンタPkのカウンタ値が学習値Prとして不揮発性メモリ56に記憶される(S205)。こうして学習値Prの学習が完了することとなる。
なお、上記ステップS302の学習実行条件としては、エンジン1のフューエルカット中であること等の条件があげられる。なお、こうしたエンジン1のフューエルカット中という条件が学習実行条件に含まれているのは、コントロールシャフト16を上記変位端まで変位させる際、フューエルカット中であれば上記コントロールシャフト16の変位によるエンジン1の運転状態への影響を考慮しなくてもよく、学習値Prの学習を実行するうえで都合がよいためである。
上記のように不揮発性メモリ56に記憶された学習値Prは、図4のステップS104の処理で検出用位置カウンタPkに対し正負を反転させた状態で加算され、その加算後の値がストロークカウンタSのカウンタ値として設定される。そして、イグニッションオン後、位置カウンタPに補正値ΔP分の補正を加えた値を検出用位置カウンタPkのカウンタ値とした状態で学習値Prの学習が行われ、その学習の結果として不揮発性メモリ56に記憶された学習値PrがストロークカウンタSに反映されると、同カウンタSのカウンタ値は補正値ΔPが反映された状態となる。
従って、学習値Prの学習後(不揮発性メモリ56への記憶後)においては、検出用位置カウンタPkのカウンタ値に含まれる補正値ΔP分は不要であって、この補正値ΔP分が検出用位置カウンタPkのカウンタに含まれた状態では、同カウンタ値等に基づき設定されるストロークカウンタSのカウンタ値が不適切になる。その結果、ストロークカウンタSのカウンタ値に基づき検出されるブラシレスモータ47の回転角も不正確なものになる。
こうした問題を回避するため、図10の位置カウンタ学習ルーチンにおいては、学習値Prの学習(S303〜S305)が完了した後、補正値ΔPが「0」に設定される(S306)。これにより、検出用位置カウンタPkから上記補正値ΔP分を除くことができ、上述した問題が生じるのを回避することができるようになる。
以上詳述した本実施形態によれば、以下に示す効果が得られるようになる。
(1)上述した[1]〜[3]の処理を実行することで、エンジン停止中にブラシレスモータ47の回転角が変化したとしても、イグニッションオン時に検出用位置カウンタPkのカウンタ値をブラシレスモータ47の実際の回転角に対応した値とすることができる。そして、その検出用位置カウンタPk等に基づき設定されるストロークカウンタSのカウンタ値に基づき、ブラシレスモータ47の回転角を正確に検出することができる。従って、その回転角等に基づきブラシレスモータ47を駆動し、吸気バルブ9のバルブ特性を目標の特性に制御しようとしても、それを正しく行えなくなってエンジン運転に悪影響を及ぼすという不具合が生じるのを回避することができる。
(2)上記[1]の処理で算出される変化量相当値Xは、「X=(Eg−Ei)・n+(Pgをnで割った余り) …(1)」という式に基づき算出される。この式(1)の「(Eg−Ei)・4」という項は、イグニッションオフ時のカウンタ値Egと、その後のイグニッションオン時のカウンタ値Eiとの差分を、位置カウンタPのカウンタ値の変化に置き換えた値ということになる。しかし、位置カウンタPのカウンタ値Pgが電気角センサS1〜S3からのパルス信号のエッジ発生時の値でない場合、その値からのずれ分だけ「(Eg−Ei)・4」という項も正確な変化量相当値Xからずれた状態になる。この正確な変化量相当値Xからの「(Eg−Ei)・4」という項のずれ分は、イグニッションオフ時の位置カウンタPのカウンタ値Pgを上記エッジ数n(=4)で割った余りによって表されることになる。従って、上記式(1)に示されるように、「(Eg−Ei)・4」という項に上記余りを加算して変化量相当値Xを算出することで、その算出された変化量相当値Xを正確な値とすることができる。
(3)イグニッションオン時の電気角カウンタEのカウンタ値Eiは、ブラシレスモータ47の実際の回転角に対して正確に対応したものとはならない。従って、イグニッションオン時に「0」となっている位置カウンタPのカウンタ値に対し、上記カウンタ値Ei等に基づき算出される補正値ΔP分の補正を加え、その補正後の値を検出用位置カウンタPkのカウンタ値としたとき、そのカウンタ値とブラシレスモータ47の実際の回転角に対応するカウンタ値との間にずれが生じる可能性がある。これに対処するため、イグニッションオン後、最初に電気角センサS1〜S3からのパルス信号のエッジを迎えたとき、位置カウンタPのカウンタ値がモータ正回転時であれば「エッジ数n(=4)」に設定し、モータ逆回転であれば「0」に設定される。このように位置カウンタPのカウンタ値を設定することで、当該カウンタ値に上記補正値ΔPを加えた値である検出用位置カウンタPkのカウンタ値を、ブラシレスモータ47の実際の回転角に対応させることができる。従って、検出用位置カウンタPk等に基づき設定されるストロークカウンタSのカウンタ値をブラシレスモータ47の実際の回転角に対応した値とし、同ストロークカウンタSのカウンタ値に基づき検出されるブラシレスモータ47の回転角を正確なものとすることができる。
(4)イグニッションオフ時の電気角カウンタEのカウンタ値Egについては、上記[4]及び[5]に示される手順で算出される。このように算出されたカウンタ値Egは、電気角センサS1〜S3からのパルス信号のエッジが生じる前後でイグニッションオフがなされる状況下であって、当該イグニッションオフが上記エッジ発生前と発生後とのいずれの状況でなされたとしても正しい値、すなわち上記エッジ発生後であって電気角カウンタEが変化した後の値になる。従って、イグニッションオフが上記エッジ発生前と発生後とのいずれかに応じて、イグニッションオフ時における位置カウンタPの一つのカウンタ値Pgに対し上記カウンタ値Egが正しい値と正しくない値との二値をとるようになり、当該カウンタ値Eg等に基づき算出される補正値ΔPを一定に定められなくなるという不具合を回避することができる。
(5)イグニッションオフ後、コントロールシャフト16を先端側の変位端まで変位させ、そのときの検出用位置カウンタPkのカウンタ値が学習値Prとして不揮発性メモリ56に記憶することで、当該学習値Prの学習が完了することとなる。この学習完了後の学習値Prの正負を反転させた値がストロークカウンタS(直接的には検出用位置カウンタPk)に加算されると、同カウンタSのカウンタ値は補正値ΔPが反映された状態となる。従って、学習値Prの学習後においては、検出用位置カウンタPkのカウンタ値に含まれる補正値ΔP分は不要であって、この補正を含んだ状態では検出用位置カウンタPk等に基づき設定されるストロークカウンタSのカウンタ値は不適切なものになる。更に、ストロークカウンタSのカウンタ値に基づき検出されるブラシレスモータ47の実際の回転角も不正確なものになる。しかし、学習値Prの学習が完了した後には、補正値ΔPが「0」とされ、検出用位置カウンタPkのカウンタ値から補正値ΔP分が除かれるため、上述した問題が生じるのを回避することができる。
なお、上記実施形態は、例えば以下のように変更することもできる。
・電気角カウンタEを「0」〜「m」の範囲内の連続した各整数値がカウンタ値として当てはめられるものとし、上記「m」を「5」に設定したが、その値を適宜変更することも可能である。この場合、電気角センサの数や位置、及び、それら電気角センサの検出対象である多極マグネットの極数が適宜変更されることとなる。
・電気角センサS1〜S3からのパルス信号のエッジ間において位置センサS4,S5から出力されるパルス信号のエッジ数nを「4」に設定したが、その値についてはブラシレスモータ47の回転角検出精度を確保し得る位置センサS4,S5からのパルス信号のエッジ間隔に対応する値であればよく、「2」以上の整数値に適宜変更可能である。このようにエッジ数nを変更する際には、位置カウンタの数や位置、及び、それら位置センサの検出対象である多極マグネットの極数が適宜変更されることとなる。
・ブラシレスモータ47と一体回転する多極マグネットの磁気に応じてパルス信号を出力する位置センサS4,S5を設ける代わりに、ブラシレスモータ47の回転に伴いパルス信号を出力する他のセンサ、例えば光学式のセンサを設けることも考えられる。この場合、ブラシレスモータ47と一体回転するスリット付円板の厚さ方向側方にそれぞれ発光素子と受光素子を備える光学式のセンサを周方向に複数設け、ブラシレスモータ47の回転時に当該各センサからパルス信号を出力させるようにすることが考えられる。この場合の各センサからのパルス信号の出力パターンについては、スリット付円板におけるスリットのパターン、及び、光学式のセンサの数や位置によって調整される。
・上記実施形態では、ブラシレスモータ47の回転運動をコントロールシャフト16の軸方向への運動に変換し、そのコントロールシャフト16の軸方向変位を通じて駆動されるバルブリフト可変機構を例示したが、本発明のバルブリフト可変機構はこれに限定されない。例えば、ブラシレスモータ47の回転運動を直接的に受けて駆動されるバルブリフト可変機構を採用することも可能である。
1…エンジン、2…シリンダヘッド、3…シリンダブロック、5…ピストン、6…燃焼室、7…吸気通路、8…排気通路、9…吸気バルブ、10…排気バルブ、11…吸気カムシャフト、11a…吸気カム、12…排気カムシャフト、12a…排気カム、14…バルブリフト可変機構、15…ロッカシャフト、16…コントロールシャフト、17…入力アーム、18…出力アーム、19…ローラ、20…コイルスプリング、21…ロッカアーム、22…ラッシュアジャスタ、23…ローラ、24…バルブスプリング、47…ブラシレスモータ、48…変換機構、50…電子制御装置(駆動装置、第1の算出手段、第2の算出手段、補正手段、学習手段、検出手段)、51…アクセルポジションセンサ、52…スロットルポジションセンサ、53…エアフローメータ、54…クランクポジションセンサ、55…イグニッションスイッチ、56…不揮発性メモリ、S1〜S3…電気角センサ、S4,S5…位置センサ。