(57)【要約】【課題】モータのＦ／Ｂ制御中のロータ回転速度の高速化とロータ停止位置精度向上とを両立させる。【解決手段】モータのＦ／Ｂ制御中に、目標位置（目標カウント値Ａｃｎｔ）とロータの回転位置（エンコーダカウント値Ｎｃｎｔ）との差が所定値以下になった段階で、減速制御に移行し（ステップ７０１）、ロータの回転位相に対する通電相の位相進み量を補正するための速度位相進み補正量Ｋｓをロータ回転速度に応じて設定する（ステップ７０２〜７０６）。これにより、減速制御時にロータ回転速度に応じた適度な制動力をロータに作用させて、ロータを目標位置に向かってスムーズに減速する。【選択図】　図２６
2004129452.tif 000002
【特許請求の範囲】
【請求項１】
制御対象を回転駆動するモータのロータの回転に同期してパルス信号を出力するエンコーダと、このエンコーダの出力信号のカウント値（以下「エンコーダカウント値」という）に基づいて前記ロータの回転位置を検出して前記モータの通電相を順次切り換えることで前記ロータを目標位置まで回転駆動する制御手段とを備えたモータ制御装置において、
前記制御手段は、前記ロータの減速制御時に前記ロータの回転速度に応じて前記ロータの回転位相に対する通電相の位相進み量を補正することを特徴とするモータ制御装置。
【請求項２】
前記制御手段は、前記ロータの減速制御時に前記ロータの回転速度が低下するに従って、前記ロータに作用させる制動力を小さくする方向に前記通電相の位相進み量を補正することを特徴とする請求項１に記載のモータ制御装置。
【請求項３】
前記制御手段は、前記ロータの減速制御時に前記ロータの回転速度の他に、前記ロータの現在位置から前記目標位置までの回転角も考慮して前記通電相の位相進み量を補正することを特徴とする請求項１又は２に記載のモータ制御装置。
【請求項４】
前記制御手段は、前記モータの駆動制御中に前記エンコーダのパルス信号出力タイミングに同期して前記エンコーダカウント値に基づいて通電相を設定する第１の通電相設定手段と、前記ロータが前記目標位置に回転駆動されるまで所定周期で前記エンコーダカウント値に基づいて通電相を設定する第２の通電相設定手段とを備え、前記第１及び第２の各通電相設定手段によって通電相を設定する際に、前記ロータの回転速度に応じて前記通電相の位相進み量を補正することを特徴とする請求項１乃至３のいずれかに記載のモータ制御装置。
【請求項５】
前記モータは、スイッチトリラクタンスモータであることを特徴とする請求項１乃至４のいずれかに記載のモータ制御装置。
【請求項６】
前記モータは、車両の自動変速機のレンジを切り換えるレンジ切換機構を駆動することを特徴とする請求項１乃至５のいずれかに記載のモータ制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、エンコーダのパルス信号のカウント値に基づいてロータの回転位置を検出してモータの通電相を順次切り換えることでロータを目標位置まで回転駆動するモータ制御装置に関するものである。
【０００２】
【従来の技術】
近年、構造が簡単で安価なモータとして需要が増加しているスイッチトリラクタンスモータ等のブラシレス型のモータは、ロータの回転に同期してパルス信号を出力するエンコーダを搭載し、このエンコーダのパルス信号をカウントして、そのエンコーダカウント値に基づいてロータの回転位置を検出して通電相を順次切り換えることでロータを回転駆動するようにしたものがある。このようなエンコーダ付きのモータは、起動後のエンコーダカウント値に基づいてロータの回転位置を検出することができるため、フィードバック制御系（Ｆ／Ｂ制御系）によりロータを目標位置まで回転させる位置切換制御（位置決め制御）を行う各種の位置切換装置の駆動源として用いられている（例えば特許文献１参照）。
【０００３】
このようなエンコーダ付きのモータでＦ／Ｂ制御を行う場合、エンコーダのパルス信号出力タイミングに同期してエンコーダカウント値に基づいて通電相を切り換えてロータを目標位置に向かって回転駆動し、エンコーダカウント値が目標位置に応じて設定された目標カウント値に到達した時点で、ロータが目標位置に到達したと判断してＦ／Ｂ制御を終了し、ロータを目標位置で停止させるようにしている。
【０００４】
【特許文献１】
特開２００１−２７１９１７号公報（第４頁〜第８頁等）
【０００５】
【発明が解決しようとする課題】
ところで、ロータを回転駆動するトルクを発生させるためには、ロータの回転位相に対して通電相の位相を進める必要があり、この通電相の位相進み量を脱調が発生しない範囲内で大きくすることで、ロータ回転速度を高速化できるという特徴がある。
【０００６】
しかし、Ｆ／Ｂ制御中のロータ回転速度を高速化すると、Ｆ／Ｂ制御終了時にロータが慣性により目標位置を越えてオーバーシュートしやすくなり、ロータを正確に目標位置で停止させることが難しくなる。
【０００７】
本発明はこのような事情を考慮してなされたものであり、従ってその目的は、Ｆ／Ｂ制御中のロータ回転速度を高速化しても、Ｆ／Ｂ制御終了時にロータを精度良く目標位置で停止させることができ、Ｆ／Ｂ制御中のロータ回転速度の高速化とロータ停止位置精度向上とを両立させることができるモータ制御装置を提供することにある。
【０００８】
【課題を解決するための手段】
上記目的を達成するために、本発明の請求項１のモータ制御装置は、ロータの減速制御時にロータ回転速度に応じて該ロータの回転位相に対する通電相の位相進み量を補正するようにしたものである。このようにすれば、ロータの減速制御時に、ロータ回転速度に応じた適度な制動力をロータに作用させて、目標位置の手前でロータを確実に減速させることができる。これにより、Ｆ／Ｂ制御終了時にロータが慣性により目標位置を越えてオーバーシュートすることを防止できて、ロータを精度良く目標位置で停止させることができ、Ｆ／Ｂ制御中のロータ回転速度の高速化とロータ停止位置精度向上とを両立させることができる。
【０００９】
具体的には、請求項２のように、ロータの減速制御時にロータ回転速度が低下するに従って、ロータに作用させる制動力を小さくする方向に通電相の位相進み量を補正するようにすると良い。このようにすれば、ロータの減速制御時に、ロータを目標位置に向かってスムーズに減速させることができる。
【００１０】
更に、請求項３のように、ロータの減速制御時に、ロータ回転速度の他に、ロータの現在位置から目標位置までの回転角も考慮して、通電相の位相進み量を補正するようにすると良い。このようにすれば、何等かの原因で、ロータの減速が遅れた場合でも、目標位置の手前でロータに作用させる制動力を増大させてロータを確実に減速させることができ、ロータを精度良く目標位置で停止させることができる。
【００１１】
ところで、一般的なモータのＦ／Ｂ制御では、エンコーダのパルス信号出力タイミングに同期して通電相を切り換えるため、Ｆ／Ｂ制御によりロータを目標位置に向かって減速する途中で、何等かの原因でロータの回転が一旦停止して、エンコーダからパルス信号が出力されなくなると、通電相の切り換えを行うことができなくなってしまい、ロータを目標位置まで回転駆動できないという不具合が発生する。
【００１２】
この対策として、請求項４のように、モータの駆動制御中にエンコーダのパルス信号出力タイミングに同期してエンコーダカウント値に基づいて通電相を設定する第１の通電相設定手段と、ロータが目標位置に回転駆動されるまで所定周期でエンコーダカウント値に基づいて通電相を設定する第２の通電相設定手段とを備え、前記第１及び第２の各通電相設定手段によって通電相を設定する際に、ロータ回転速度に応じて通電相の位相進み量を補正するようにしても良い。
【００１３】
このようにすれば、ロータの減速制御の途中で、何等かの原因でロータの回転が一旦停止してエンコーダからパルス信号が出力されなくなった場合でも、第２の通電相設定手段が所定周期でその時点のエンコーダカウント値に基づいて通電相を設定するため、ロータの回転が停止した状態でも通電相の切り換えを行うことができて、可能な限りロータを目標位置まで回転駆動することができ、モータ駆動制御の信頼性を向上することができる。
【００１４】
また、請求項５のように、モータとしてスイッチトリラクタンスモータを使用するようにしても良い。スイッチトリラクタンスモータは、永久磁石が不要で構造が簡単であるため、安価であり、温度環境等に対する耐久性・信頼性も高いという利点がある。
【００１５】
以上説明した請求項１〜５に係る発明は、スイッチトリラクタンスモータ等のブラシレス型のモータを駆動源とする各種の位置切換装置に適用でき、例えば、請求項６のように、車両の自動変速機のレンジを切り換えるレンジ切換機構を駆動するモータの制御装置に適用しても良い。これにより、信頼性の高いモータ駆動式のレンジ切換装置を構成することができる。
【００１６】
【発明の実施の形態】
以下、本発明を車両のレンジ切換装置に適用した一実施形態を図面に基づいて説明する。
【００１７】
まず、図１に基づいてレンジ切換機構１１の構成を説明する。レンジ切換機構１１の駆動源となるモータ１２は、例えばスイッチトリラクタンスモータにより構成され、減速機構２６（図４参照）を内蔵し、その出力軸１３の回転位置を検出する出力軸センサ１４が設けられている。この出力軸１３には、ディテントレバー１５が固定されている。
【００１８】
また、ディテントレバー１５にはＬ字形のパーキングロッド１８が固定され、このパーキングロッド１８の先端部に設けられた円錐体１９がロックレバー２１に当接している。このロックレバー２１は、円錐体１９の位置に応じて軸２２を中心にして上下動してパーキングギヤ２０をロック／ロック解除するようになっている。パーキングギヤ２０は、自動変速機２７の出力軸に設けられ、このパーキングギヤ２０がロックレバー２１によってロックされると、車両の駆動輪が回り止めされた状態（パーキング状態）に保持される。
【００１９】
一方、ディテントレバー１５をパーキングレンジ（以下「Ｐレンジ」と表記する）と他のレンジ（以下「ＮｏｔＰレンジ」と表記する）に保持するためのディテントバネ２３が支持ベース１７に固定され、このディテントバネ２３の先端に設けられた係合部２３ａがディテントレバー１５のＰレンジ保持凹部２４に嵌まり込んだときに、ディテントレバー１５がＰレンジの位置に保持され、該ディテントバネ２３の係合部２３ａがディテントレバー１５のＮｏｔＰレンジ保持凹部２５に嵌まり込んだときに、ディテントレバー１５がＮｏｔＰレンジの位置に保持されるようになっている。
【００２０】
Ｐレンジでは、パーキングロッド１８がロックレバー２１に接近する方向に移動して、円錐体１９の太い部分がロックレバー２１を押し上げてロックレバー２１の凸部２１ａがパーキングギヤ２０に嵌まり込んでパーキングギヤ２０をロックした状態となり、それによって、自動変速機２７の出力軸（駆動輪）がロックされた状態（パーキング状態）に保持される。
【００２１】
一方、ＮｏｔＰレンジでは、パーキングロッド１８がロックレバー２１から離れる方向に移動して、円錐体１９の太い部分がロックレバー２１から抜け出てロックレバー２１が下降し、それによって、ロックレバー２１の凸部２１ａがパーキングギヤ２０から外れてパーキングギヤ２０のロックが解除され、自動変速機２７の出力軸が回転可能な状態（走行可能な状態）に保持される。
【００２２】
尚、前述した出力軸センサ１４は、モータ１２の減速機構２６の出力軸１３の回転角度に応じた電圧を出力する回転センサ（例えばポテンショメータ）によって構成され、その出力電圧によって現在のレンジがＰレンジとＮｏｔＰレンジのいずれであるかを確認できるようになっている。
【００２３】
次に、図２に基づいてモータ１２の構成を説明する。本実施形態では、モータ１２として、スイッチトリラクタンスモータ（以下「ＳＲモータ」と表記する）が用いられている。このＳＲモータ１２は、ステータ３１とロータ３２が共に突極構造を持つモータで、永久磁石が不要で構造が簡単であるという利点がある。円筒状のステータ３１の内周部には、例えば１２個の突極３１ａが等間隔に形成され、これに対して、ロータ３２の外周部には、例えば８個の突極３２ａが等間隔に形成され、ロータ３２の回転に伴い、ロータ３２の各突極３２ａがステータ３１の各突極３１ａと微小ギャップを介して順番に対向するようになっている。ステータ３１の１２個の突極３１ａには、Ｕ相、Ｖ相、Ｗ相の合計６個の巻線３３と、Ｕ’相、Ｖ’相、Ｗ’相の合計６個の巻線３４が順番に巻回されている。尚、ステータ３１とロータ３２の突極３１ａ，３２ａの数は適宜変更しても良いことは言うまでもない。
【００２４】
本実施形態の巻線３３，３４の巻回順序は、ステータ３１の１２個の突極３１ａに対して、例えば、Ｖ相→Ｗ相→Ｕ相→Ｖ相→Ｗ相→Ｕ相→Ｖ’相→Ｗ’相→Ｕ’相→Ｖ’相→Ｗ’相→Ｕ’相の順序で巻回されている。図３に示すように、Ｕ相、Ｖ相、Ｗ相の合計６個の巻線３３と、Ｕ’相、Ｖ’相、Ｗ’相の合計６個の巻線３４は、２系統のモータ励磁部３５，３６を構成するように結線されている。一方のモータ励磁部３５は、Ｕ相、Ｖ相、Ｗ相の合計６個の巻線３３をＹ結線して構成され（同じ相の２個の巻線３３はそれぞれ直列に接続されている）、他方のモータ励磁部３６は、Ｕ’相、Ｖ’相、Ｗ’相の合計６個の巻線３４をＹ結線して構成されている（同じ相の２個の巻線３４はそれぞれ直列に接続されている）。２つのモータ励磁部３５，３６は、Ｕ相とＵ’相が同時に通電され、Ｖ相とＶ’相が同時に通電され、Ｗ相とＷ’相が同時に通電される。
【００２５】
これら２つのモータ励磁部３５は、車両に搭載されたバッテリ４０を電源として、それぞれ別個のモータドライバ３７，３８によって駆動される。このように、モータ励磁部３５，３６とモータドライバ３７，３８をそれぞれ２系統ずつ設けることで、一方の系統が故障しても、他方の系統でＳＲモータ１２を回転させることができるようになっている。図３に示すモータドライバ３７，３８の回路構成例では、各相毎にトランジスタ等のスイッチング素子３９を１個ずつ設けたユニポーラ駆動方式の回路構成としているが、各相毎にスイッチング素子を２個ずつ設けたバイポーラ駆動方式の回路構成を採用しても良い。尚、本発明は、モータ励磁部とモータドライバをそれぞれ１系統ずつ設けた構成としても良いことは言うまでもない。
【００２６】
各モータドライバ３７，３８の各スイッチング素子３９のオン／オフは、ＥＣＵ４１（制御手段）によって制御される。図４に示すように、このＥＣＵ４１と各モータドライバ３７，３８は、レンジ切換制御装置４２に搭載され、このレンジ切換制御装置４２には、Ｐレンジへの切換操作を行うＰレンジスイッチ４３と、ＮｏｔＰレンジへの切換操作を行うＮｏｔＰレンジスイッチ４４の操作信号が入力される。Ｐレンジスイッチ４３又はＮｏｔＰレンジスイッチ４４の操作により選択されたレンジは、インストルメントパネル（図示せず）に設けられたレンジ表示部４５に表示される。
【００２７】
ＳＲモータ１２には、ロータ３２の回転位置を検出するためのエンコーダ４６が設けられている。このエンコーダ４６は、例えば磁気式のロータリエンコーダにより構成されており、その具体的な構成は、図５及び図６に示すように、Ｎ極とＳ極が円周方向に交互に等ピッチで着磁された円環状のロータリマグネット４７がロータ３２の側面に同軸状に固定され、このロータリマグネット４７に対向する位置に、３個のホールＩＣ等の磁気検出素子４８，４９，５０が配置された構成となっている。本実施形態では、ロータリマグネット４７のＮ極とＳ極の着磁ピッチが７．５°に設定されている。このロータリマグネット４７の着磁ピッチ（７．５°）は、ＳＲモータ１２の励磁１回当たりのロータ３２の回転角度と同じに設定されている。後述するように、１−２相励磁方式でＳＲモータ１２の通電相の切り換えを６回行うと、全ての通電相の切り換えが一巡してロータ３２とロータリマグネット４７が一体的に７．５°×６＝４５°回転する。このロータリマグネット４７の４５°の回転角度範囲に存在するＮ極とＳ極の数は、合計６極となっている。
【００２８】
更に、ロータ３２の基準回転位置に相当する位置のＮ極（Ｎ’）とその両側のＳ極（Ｓ’）がそれ以外の磁極よりも径方向の幅が広くなるように形成されている。尚、本実施形態では、ＳＲモータ１２の通電相の切り換えが一巡する間にロータ３２とロータリマグネット４７が一体的に４５°回転することを考慮して、ロータ３２の基準回転位置に相当する幅広な着磁部分（Ｎ’）が４５°ピッチで形成されており、従って、ロータリマグネット４７全体として、基準回転位置に相当する幅広な着磁部分（Ｎ’）が合計８個形成されている。尚、基準回転位置に相当する幅広な着磁部分（Ｎ’）は、ロータリマグネット４７全体として、１個のみ形成した構成としても良い。
【００２９】
このロータリマグネット４７に対して３個の磁気検出素子４８，４９，５０が次のような位置関係で配置されている。Ａ相信号を出力する磁気検出素子４８とＢ相信号を出力する磁気検出素子４９は、ロータリマグネット４７の幅狭な着磁部分（Ｎ，Ｓ）と幅広な着磁部分（Ｎ’，Ｓ’）の両方に対向し得る位置の同一円周上に配置されている。一方、Ｚ相信号を出力する磁気検出素子５０は、ロータリマグネット４７の幅狭な着磁部分（Ｎ，Ｓ）よりも径方向外側又は内側の位置で、且つ、幅広な着磁部分（Ｎ’，Ｓ’）のみに対向し得る位置に配置されている。Ａ相信号とＢ相信号を出力する２個の磁気検出素子４８，４９の間隔は、図７に示すように、Ａ相信号とＢ相信号の位相差が、電気角で９０°（機械角で３．７５°）となるように設定されている。ここで、“電気角”はＡ・Ｂ相信号の発生周期を１周期（３６０°）とした場合の角度で、“機械角”は機械的な角度（ロータ３２の１回転を３６０°とした場合の角度）であり、Ａ相信号の立ち下がり（立ち上がり）からＢ相信号の立ち下がり（立ち上がり）までにロータ３２が回転する角度がＡ相信号とＢ相信号の位相差の機械角に相当する。また、Ｚ相信号を出力する磁気検出素子５０は、Ｚ相信号とＢ相信号（又はＡ相信号）との位相差が０となるように配置されている。
【００３０】
各磁気検出素子４８，４９，５０の出力は、Ｎ極（Ｎ’極）と対向したときにハイレベル“１”となり、Ｓ極（Ｓ’極）と対向したときにローレベル“０”となる。尚、Ｚ相信号用の磁気検出素子５０の出力は、ロータ３２の基準回転位置に相当する幅広なＮ’極に対向する毎にハイレベル“１”となり、それ以外の位置では、ローレベル“０”となる。
【００３１】
本実施形態では、ＥＣＵ４１が後述する図８のエンコーダカウンタルーチンによってＡ相信号とＢ相信号の立ち上がり／立ち下がりの両方のエッジをカウントして、そのエンコーダカウント値に応じてＳＲモータ１２の通電相を切り換えることでロータ３２を回転駆動する。この際、Ａ相信号とＢ相信号の発生順序によってロータ３２の回転方向を判定し、正回転（Ｐレンジ→ＮｏｔＰレンジの回転方向）ではエンコーダカウント値をカウントアップし、逆回転（ＮｏｔＰレンジ→Ｐレンジの回転方向）ではエンコーダカウント値をカウントダウンする。これにより、ロータ３２が正回転／逆回転のいずれの方向に回転しても、エンコーダカウント値とロータ３２の回転位置との対応関係が維持されるため、正回転／逆回転のいずれの回転方向でも、エンコーダカウント値によってロータ３２の回転位置（回転角度）を検出して、その回転位置に対応した相の巻線３３，３４に通電してロータ３２を回転駆動する。
【００３２】
図７は、ロータ３２を逆回転方向（ＮｏｔＰレンジ→Ｐレンジの回転方向）に回転させたときのエンコーダ４６の出力波形と通電相の切換パターンを示している。逆回転方向（ＮｏｔＰレンジ→Ｐレンジの回転方向）と正回転方向（Ｐレンジ→ＮｏｔＰレンジの回転方向）のいずれの場合も、ロータ３２が７．５°回転する毎に１相通電と２相通電とを交互に切り換えるようになっており、ロータ３２が４５°回転する間に、例えば、Ｕ相通電→ＵＷ相通電→Ｗ相通電→ＶＷ相通電→Ｖ相通電→ＵＶ相通電の順序で通電相の切り換えを一巡するようになっている。そして、この通電相の切り換え毎に、ロータ３２が７．５°ずつ回転して、Ａ相、Ｂ相信号用の磁気検出素子４８，４９に対向するロータリマグネット４７の磁極がＮ極→Ｓ極（Ｎ’極→Ｓ’極）又はＳ極→Ｎ極（Ｓ’極→Ｎ’極）に変化してＡ相信号とＢ相信号のレベルが交互に反転し、それによって、ロータ３２が７．５°回転する毎に、エンコーダカウント値が２ずつカウントアップ（又はカウントダウン）する。また、通電相の切り換えが一巡してロータ３２が４５°回転する毎に、Ｚ相用の磁気検出素子５０がロータ３２の基準回転位置に相当する幅広なＮ’極に対向して、Ｚ相信号がハイレベル“１”となる。尚、本明細書では、Ａ相、Ｂ相、Ｚ相信号がハイレベル“１”となることを、Ａ相、Ｂ相、Ｚ相信号が出力されると言う場合がある。
【００３３】
このようなエンコーダ４６付きのＳＲモータ１２でレンジ切換制御を行う場合は、指令シフトレンジ（目標位置）がＰレンジからＮｏｔＰレンジ又はその反対方向に切り換えられる毎に、ロータ３２を回転駆動して、エンコーダカウント値に基づいてＳＲモータ１２の通電相を順次切り換えることでロータ３２を目標位置に向かって回転駆動するフィードバック制御（以下「Ｆ／Ｂ制御」と表記する）を実行し、エンコーダカウント値が目標位置に応じて設定された目標カウント値に到達した時点で、ロータ３２が目標位置に到達したと判断してＦ／Ｂ制御を終了し、ロータ３２を目標位置で停止させるようにしている。
【００３４】
この際、Ｆ／Ｂ制御中のロータ３２の回転速度を高速化すると、Ｆ／Ｂ制御終了時にロータ３２が慣性により目標位置を越えてオーバーシュートしやすくなり、ロータ３２を正確に目標位置で停止させることが難しくなる。
【００３５】
そこで、本実施形態では、Ｆ／Ｂ制御中に、ロータ３２の回転位置（エンコーダカウント値）と目標位置（目標カウント値）との差が所定値以下になった段階で、減速制御に移行し、ロータ３２の回転速度に応じて該ロータ３２の回転位相に対する通電相の位相進み量を補正することで、ロータ３２の回転速度に応じた適度な制動力をロータ３２に作用させる。具体的には、減速制御時に、ロータ３２の回転速度が低下するに従って、ロータ３２に作用させる制動力を小さくする方向に通電相の位相進み量を補正する。これにより、減速制御時に、ロータ３２を目標位置に向かってスムーズに減速する。
【００３６】
更に、本実施形態では、減速制御時にロータ３２の回転速度の他に、ロータ３２の現在の回転位置（エンコーダカウント値）から目標位置（目標カウント値）までの回転角も考慮して、通電相の位相進み量を補正するようにしている。このようにすれば、何等かの原因で、ロータ３２の減速が遅れた場合でも、目標位置の手前でロータ３２に作用させる制動力を増大させてロータ３２を確実に減速させることができ、ロータ３２を精度良く目標位置で停止させることができる。
【００３７】
ところで、Ｆ／Ｂ制御では、エンコーダ４６のＡ相・Ｂ相信号出力タイミングに同期して通電相を切り換えるため、減速制御の途中で、何等かの原因でロータ３２の回転が一旦停止して、エンコーダ４６からＡ相・Ｂ相信号が出力されなくなると、通電相の切り換えを行うことができなくなってしまい、ロータ３２を目標位置まで回転駆動できないという不具合が発生する。
【００３８】
この対策として、本実施形態では、Ｆ／Ｂ制御開始からロータ３２が目標位置に回転駆動されるまで、所定周期（例えば１ｍｓ周期）でエンコーダカウント値に基づいて通電相を設定する時間同期通電相設定処理をＦ／Ｂ制御と並行して実行する。
【００３９】
この構成では、Ｆ／Ｂ制御の途中で、何等かの原因でロータ３２の回転が一旦停止してエンコーダ４６からＡ相・Ｂ相信号が出力されなくなった場合でも、時間同期通電相設定処理によってその時点のエンコーダカウント値に基づいて通電相が設定されるため、ロータ３２の回転が停止した状態でも、時間同期通電相設定処理によって通電相の切り換えを行うことができて、可能な限りロータ３２を目標位置まで回転駆動することができ、ＳＲモータ１２のＦ／Ｂ制御（レンジ切換制御）の信頼性を向上することができる。
【００４０】
以下、レンジ切換制御装置４２のＥＣＵ４１によって実行される各ルーチンの処理内容を説明する。
【００４１】
［エンコーダカウンタ］
図８に示すエンコーダカウンタルーチンの処理内容を説明する。本ルーチンは、ＡＢ相割り込み処理によりＡ相信号とＢ相信号の立ち上がり／立ち下がりの両方のエッジに同期して起動され、Ａ相信号とＢ相信号の立ち上がり／立ち下がりの両方のエッジを次のようにしてカウントする。本ルーチンが起動されると、まずステップ３０１で、Ａ相信号とＢ相信号の値Ａ（ｉ）　、Ｂ（ｉ）　を読み込み、次のステップ３０２で、図９のカウントアップ値ΔＮ算出マップを検索して、Ａ相信号とＢ相信号の今回値Ａ（ｉ）　、Ｂ（ｉ）　と、前回値Ａ（ｉ−１）　、Ｂ（ｉ−１）　に応じたカウントアップ値ΔＮを算出する。
【００４２】
ここで、Ａ相信号とＢ相信号の今回値Ａ（ｉ）　、Ｂ（ｉ）　と、前回値Ａ（ｉ−１）　、Ｂ（ｉ−１）　を用いる理由は、Ａ相信号とＢ相信号の発生順序によってロータ３２の回転方向を判定するためであり、図１０に示すように、正回転（Ｐレンジ→ＮｏｔＰレンジの回転方向）ではカウントアップ値ΔＮをプラス値にしてエンコーダカウント値Ｎｃｎｔをカウントアップし、逆回転（ＮｏｔＰレンジ→Ｐレンジの回転方向）ではカウントアップ値ΔＮをマイナス値にしてエンコーダカウント値Ｎｃｎｔをカウントダウンする。
【００４３】
カウントアップ値ΔＮの算出後、ステップ３０３に進み、前回のエンコーダカウント値Ｎｃｎｔに上記ステップ３０２で算出したカウントアップ値ΔＮを加算して、今回のエンコーダカウント値Ｎｃｎｔを求める。この後、ステップ３０４に進み、次回のカウント処理のために、Ａ相信号とＢ相信号の今回値Ａ（ｉ）　、Ｂ（ｉ）　をそれぞれＡ（ｉ−１）　、Ｂ（ｉ−１）　として記憶して本ルーチンを終了する。
【００４４】
［制御モード設定］
図１１乃至図１３に示す制御モード設定ルーチンは、初期駆動終了後に所定周期（例えば１ｍｓ周期）で実行される。ここで、初期駆動とは、ＥＣＵ４１への電源投入後にエンコーダカウント値と実際のロータ３２の回転位置とを対応させるための処理であり、初期駆動時には、ＳＲモータ１２の通電相の切り換えを所定のタイムスケジュールで一巡させてエンコーダ４６のＡ相信号及びＢ相信号のエッジをカウントし、初期駆動終了時のエンコーダカウント値とロータ３２の回転位置（通電相）との対応関係を学習する。具体的には、初期駆動終了時のエンコーダカウント値を初期位置ずれ学習値として学習し、その後のＦ／Ｂ制御等の際にエンコーダカウント値を初期位置ずれ学習値で補正することで、初期駆動終了時のエンコーダカウント値と通電相（ロータ３２の回転位置）とのずれを補正して、Ｆ／Ｂ制御等の際に正しい通電相を選択できるようにしている。
【００４５】
図１１乃至図１３に示す制御モード設定ルーチンは、初期駆動終了後に所定周期（例えば１ｍｓ周期）で制御モード判定値ｍｏｄｅを０、１、３、４、５のいずれかに設定して、下記のように制御モードを指定する。
【００４６】
ｍｏｄｅ＝０：通電オフ（スタンバイ）
ｍｏｄｅ＝１：通常駆動
（Ｆ／Ｂ制御開始位置停止保持処理、時間同期通電相設定処理、Ｆ／Ｂ制御）
ｍｏｄｅ＝３：目標位置停止保持処理
ｍｏｄｅ＝４：反転位置停止保持処理
ｍｏｄｅ＝５：オープンループ制御
【００４７】
制御モード設定ルーチンが起動されると、まずステップ４０１で、システム故障フラグＸｆａｉｌｏｆｆがレンジ切換制御装置４２の故障を意味するＯＮにセットされているか否かを判定し、もし、Ｘｆａｉｌｏｆｆ＝ＯＮに設定されていれば、ステップ４０２に進み、ＳＲモータ１２を通電オフ状態に維持するための処理を実行する。これにより、回転方向指示値Ｄ＝０（停止）、通電フラグＸｏｎ＝ＯＦＦ（通電オフ）、Ｆ／Ｂ許可フラグＸｆｂ＝ＯＦＦ（Ｆ／Ｂ制御禁止）、制御モード判定値ｍｏｄｅ＝０（通電オフ）にセットする。
【００４８】
一方、システム故障フラグＸｆａｉｌｏｆｆがＯＦＦ（故障無し）の場合は、ステップ４０１からステップ４０３に進み、フェールセーフ処理実行フラグＸｆｓｏｐ＝ＯＦＦ、且つ、リカバリ処理実行フラグＸｒｃｖ＝ＯＦＦであるか否かを判定する。もし、フェールセーフ処理実行フラグＸｆｓｏｐとリカバリ処理実行フラグＸｒｃｖのいずれか一方又は両方がＯＮにセットされている場合は、ステップ４０４に進み、オープンループ制御を実行するために、回転方向指示値Ｄ＝０（停止）、制御モード判定値ｍｏｄｅ＝５（オープンループ制御）、Ｆ／Ｂ許可フラグＸｆｂ＝ＯＦＦ（Ｆ／Ｂ制御禁止）にセットする。
【００４９】
フェールセーフ処理実行フラグＸｆｓｏｐとリカバリ処理実行フラグＸｒｃｖの両方がＯＦＦにセットされている場合は、ステップ４０５に進み、通電フラグＸｏｎ＝ＯＮ（通電オン）にセットされているか否かを判定し、通電フラグＸｏｎ＝ＯＦＦ（通電オフ）にセットされている場合は、ステップ４０６に進み、目標カウント値Ａｃｎｔとエンコーダカウント値Ｎｃｎｔとの差（目標位置とロータ３２と位置との差）を求めて、この差（Ａｃｎｔ−Ｎｃｎｔ）に基づいて正回転（Ｐレンジ→ＮｏｔＰレンジ方向への回転）、逆回転（ＮｏｔＰレンジ→Ｐレンジ方向への回転）、停止のいずれに該当するか判定する。この際、エンコーダカウント値Ｎｃｎｔは、初期駆動で学習された初期位置ずれ学習値Ｇｃｎｔによって補正された値を用いる。
Ｎｃｎｔ＝Ｎｃｎｔ−Ｇｃｎｔ
【００５０】
目標カウント値Ａｃｎｔとエンコーダカウント値Ｎｃｎｔとの差（Ａｃｎｔ−Ｎｃｎｔ）が＋Ｋｔｈ以上（例えば＋１０°以上）であれば、ロータ３２を正回転方向（Ｐレンジ→ＮｏｔＰレンジの回転方向）に回転駆動する必要があると判断して、ステップ４０７に進み、回転方向指示値Ｄ＝１（正回転）、通電フラグＸｏｎ＝ＯＮ（通電オン）、制御モード判定値ｍｏｄｅ＝１（Ｆ／Ｂ制御開始位置停止保持処理及びＦ／Ｂ制御）にセットする。
【００５１】
目標カウント値Ａｃｎｔとエンコーダカウント値Ｎｃｎｔとの差（Ａｃｎｔ−Ｎｃｎｔ）が−Ｋｔｈ以下（例えば−１０°以下）であれば、ロータ３２を逆回転方向（ＮｏｔＰレンジ→Ｐレンジの回転方向）に回転駆動する必要があると判断して、ステップ４０９に進み、回転方向指示値Ｄ＝−１（逆回転）、通電フラグＸｏｎ＝ＯＮ（通電オン）、制御モード判定値ｍｏｄｅ＝１（Ｆ／Ｂ制御開始位置停止保持処理及びＦ／Ｂ制御）にセットする。
【００５２】
目標カウント値Ａｃｎｔとエンコーダカウント値Ｎｃｎｔとの差（Ａｃｎｔ−Ｎｃｎｔ）が−Ｋｔｈから＋Ｋｔｈの範囲内（例えば−１０°から＋１０°の範囲内）であれば、ロータ３２を目標位置にディテントバネ２３のバネ力により保持することが可能である（ＳＲモータ１２への通電は不要）と判断して、ステップ４０８に進み、ＳＲモータ１２を通電オフ状態に維持するために、回転方向指示値Ｄ＝０（停止）、通電フラグＸｏｎ＝ＯＦＦ（通電オフ）、制御モード判定値ｍｏｄｅ＝０（通電オフ）にセットする。
【００５３】
一方、前記ステップ４０５で、通電フラグＸｏｎ＝ＯＮ（通電オン）にセットされていると判定された場合は、図１２のステップ４１０〜４１５の処理によって、指令シフトレンジ（目標位置）が反転されたか否かを判定し、反転されていれば、回転方向指示値Ｄを反転させる。
【００５４】
具体的には、まずステップ４１０で、回転方向指示値Ｄ＝１（正回転）であるか否かを判定し、回転方向指示値Ｄ＝１（正回転）であれば、ステップ４１１に進み、目標カウント値Ａｃｎｔとエンコーダカウント値Ｎｃｎｔとの差（Ａｃｎｔ−Ｎｃｎｔ）がマイナス値であるか否かで、ロータ３２の回転方向を正回転から逆回転に反転させる必要があるか否かを判定し、その必要があれば、ステップ４１２に進み、回転方向指示値Ｄ＝−１（逆回転）にセットする。
【００５５】
これに対して、上記ステップ４１０で、回転方向指示値Ｄが１（正回転）でないと判定された場合（つまりＤ＝０又は−１の場合）は、ステップ４１３に進み、回転方向指示値Ｄ＝−１（逆回転）であるか否かを判定し、回転方向指示値Ｄ＝−１（逆回転）であれば、ステップ４１４に進み、目標カウント値Ａｃｎｔとエンコーダカウント値Ｎｃｎｔとの差（Ａｃｎｔ−Ｎｃｎｔ）がプラス値であるか否かで、ロータ３２の回転方向を逆回転から正回転に反転させる必要があるか否かを判定し、その必要があれば、ステップ４１５に進み、回転方向指示値Ｄ＝１（正回転）にセットする。
【００５６】
以上のようにして、回転方向指示値Ｄが反転された場合は、ステップ４１６に進み、ロータ３２の回転方向を反転させるために、制御モード判定値ｍｏｄｅ＝４（反転位置停止保持処理）、Ｆ／Ｂ許可フラグＸｆｂ＝ＯＦＦ（Ｆ／Ｂ制御禁止）にセットしてステップ４１７に進む。これに対し、回転方向指示値Ｄが反転されない場合は、上記ステップ４１６の処理を行わずにステップ４１７に進む。
【００５７】
このステップ４１７では、制御モード判定値ｍｏｄｅ＝４（反転位置停止保持処理）にセットされているか否かを判定し、「Ｙｅｓ」であれば、ステップ４１８に進み、通電フラグＸｏｎ＝ＯＮ（通電オン）にセットして、反転位置停止保持処理を実行する。
【００５８】
これに対して、上記ステップ４１７で「Ｎｏ」と判定された場合（反転位置停止保持処理ではない場合）は、図１３のステップ４１９〜４２１で、Ｆ／Ｂ制御の終了タイミングであるか否かを判定する。具体的には、まずステップ４１９で、回転方向指示値Ｄ≧０（正回転又は停止）であるか否かを判定し、回転方向指示値Ｄ≧０であれば、ステップ４２０に進み、目標カウント値Ａｃｎｔとエンコーダカウント値Ｎｃｎｔとの差（Ａｃｎｔ−Ｎｃｎｔ）が＋Ｋｒｅｆ以下（例えば＋０．５°以下）であるか否かで、Ｆ／Ｂ制御の終了タイミングであるか否かを判定する。また、回転方向指示値Ｄ＝−１（逆回転）であれば、ステップ４２１に進み、目標カウント値Ａｃｎｔとエンコーダカウント値Ｎｃｎｔとの差（Ａｃｎｔ−Ｎｃｎｔ）が−Ｋｒｅｆ以上（例えば−０．５°以上）であるか否かで、Ｆ／Ｂ制御の終了タイミングであるか否かを判定する。
【００５９】
つまり、図１４に示すように、Ｆ／Ｂ制御の終了判定値Ｋｒｅｆを例えば通電相の位相進み分（例えば２〜４カウント分）に設定することで、目標カウント値Ａｃｎｔよりも通電相の位相進み分だけ前のタイミングでＦ／Ｂ制御を終了するようにしたものである。これにより、Ｆ／Ｂ制御の最後の通電相がロータ３２を目標位置（目標カウント値Ａｃｎｔ）に停止保持する通電相と一致するようになる。
【００６０】
上記ステップ４２０又は４２１で「Ｎｏ」と判定された場合（Ｆ／Ｂ制御の終了タイミングでない場合）は、ステップ４２２に進み、目標位置停止保持処理の時間をカウントする停止保持時間カウンタＣＴｈｏｌｄをリセットする。
【００６１】
一方、上記ステップ４２０又は４２１で「Ｙｅｓ」と判定された場合（Ｆ／Ｂ制御の終了タイミングである場合）は、ステップ４２３に進み、Ｆ／Ｂ許可フラグＸｆｂ＝ＯＦＦ（Ｆ／Ｂ制御禁止）にセットし、Ｆ／Ｂ制御を終了して目標位置停止保持処理に移行する。そして、次のステップ４２４で、停止保持時間カウンタＣＴｈｏｌｄをカウントアップして、目標位置停止保持処理の時間をカウントする。
【００６２】
この後、ステップ４２５に進み、目標位置停止保持処理の時間ＣＴｈｏｌｄが所定時間（例えば５０ｍｓ）に達したか否かを判定し、目標位置停止保持処理の時間ＣＴｈｏｌｄが所定時間（例えば５０ｍｓ）に達していなければ、ステップ４２６に進み、目標位置停止保持処理を続行するために、回転方向指示値Ｄ＝０（停止）、通電フラグＸｏｎ＝ＯＮ（通電オン）、制御モード判定値ｍｏｄｅ＝３（目標位置停止保持処理）に維持する。
【００６３】
その後、目標位置停止保持処理の時間ＣＴｈｏｌｄが所定時間（例えば５０ｍｓ）に達した時点で、ステップ４２７に進み、ＳＲモータ１２の通電をオフするために、回転方向指示値Ｄ＝０（停止）、通電フラグＸｏｎ＝ＯＦＦ（通電オフ）、制御モード判定値ｍｏｄｅ＝０（通電オフ）にセットする。
【００６４】
以上説明した制御モード判定値ｍｏｄｅの設定例が図１５のタイムチャートに示されている。
【００６５】
［時間同期モータ制御］
図１６に示す時間同期モータ制御ルーチンは、初期駆動終了後に所定周期（例えば１ｍｓ周期）で起動され、通常駆動（Ｆ／Ｂ制御開始位置停止保持処理、時間同期通電相設定処理、Ｆ／Ｂ制御）、目標位置停止保持処理、反転位置停止保持処理を実行する。
【００６６】
本ルーチンが起動されると、まずステップ５０１で、制御モード判定値ｍｏｄｅ＝１（通常駆動）であるか否かを判定し、制御モード判定値ｍｏｄｅ＝１であれば、ステップ５０５に進み、後述する図１７に示すｍｏｄｅ１ルーチンを実行して、Ｆ／Ｂ制御開始位置停止保持処理時及び時間同期通電相設定処理時の通電相を設定するための通電相判定値Ｍｐｔｎを算出する。
【００６７】
一方、上記ステップ５０１で、制御モード判定値ｍｏｄｅ＝１でないと判定された場合は、ステップ５０２に進み、Ｆ／Ｂ許可フラグＸｆｂ＝ＯＦＦ（Ｆ／Ｂ制御禁止）であるか否かを判定し、Ｆ／Ｂ許可フラグＸｆｂ＝ＯＮ（Ｆ／Ｂ制御実行）の場合は、以降の処理を行うことなく、本ルーチンを終了する。この場合は、後述する図２２に示すＦ／Ｂ制御ルーチンによって通電相の設定と通電処理が実行される。
【００６８】
本ルーチンでは、制御モード判定値ｍｏｄｅ＝１の場合は、Ｆ／Ｂ制御中であっても、上記ステップ５０５の処理（図１７のｍｏｄｅ１ルーチン）が実行されるため、Ｆ／Ｂ制御中は、図２２のＦ／Ｂ制御ルーチンによってエンコーダ４６のＡ相・Ｂ相信号出力タイミングに同期して通電相を設定するＦ／Ｂ処理と、図１７のｍｏｄｅ１ルーチンによって所定周期で通電相を設定する時間同期通電相設定処理とが並行して実行される。これにより、Ｆ／Ｂ制御の途中で、何等かの原因でロータ３２が一旦停止しても、時間同期通電相設定処理によって通電相判定値Ｍｐｔｎが算出され、ロータ３２が目標位置に向かって回転駆動される。
【００６９】
これに対し、上記ステップ５０２で、Ｆ／Ｂ許可フラグＸｆｂ＝ＯＦＦ（Ｆ／Ｂ制御禁止）と判定された場合は、ステップ５０３、５０４で、制御モード判定値ｍｏｄｅ＝３，４のいずれかに該当するか否かを判定し、制御モード判定値ｍｏｄｅ＝３（目標位置停止保持処理）の場合は、ステップ５０３からステップ５０６に進み、後述する図１８に示すｍｏｄｅ３ルーチンを実行して、目標位置停止保持処理実行時の通電相を設定するための通電相判定値Ｍｐｔｎを算出する。
【００７０】
また、制御モード判定値ｍｏｄｅ＝４（反転位置停止保持処理）の場合は、ステップ５０４からステップ５０７に進み、後述する図１９に示すｍｏｄｅ４ルーチンを実行して、反転位置停止保持処理実行時の通電相を設定するための通電相判定値Ｍｐｔｎを算出する。
【００７１】
以上のようにして、制御モード判定値ｍｏｄｅ＝１，３，４の場合は、通電相判定値Ｍｐｔｎを算出した後、ステップ５０８に進み、後述する図２０に示す通電処理ルーチンを実行して、通常駆動、目標位置停止保持処理、反転位置停止保持処理を実行する。
【００７２】
一方、上記ステップ５０３、５０４で、いずれも「Ｎｏ」と判定された場合、つまり、制御モード判定値ｍｏｄｅ＝０，５の場合は、ステップ５０８に進み、後述する図２０に示す通電処理ルーチンを実行して、通電オフ又はオープンループ制御を実行する。
【００７３】
［ｍｏｄｅ１］
図１７に示すｍｏｄｅ１ルーチンは、図１６の時間同期モータ制御ルーチンのステップ５０５で起動されるサブルーチンであり、Ｆ／Ｂ制御開始位置停止保持処理時及び時間同期通電相設定処理時の通電相判定値Ｍｐｔｎ（通電相）を次のようにして設定する。
【００７４】
本ルーチンが起動されると、まずステップ５１１で、Ｆ／Ｂ制御開始位置停止保持処理の時間をカウントする通電時間カウンタＣＴ１をカウントアップし、次のステップ５１２で、Ｆ／Ｂ制御開始位置停止保持処理の時間ＣＴ１が所定時間（例えば１０ｍｓ）を越えたか否かを判定する。
【００７５】
もし、Ｆ／Ｂ制御開始位置停止保持処理の時間ＣＴ１が所定時間（例えば１０ｍｓ）を越えていなければ、ステップ５１３に進み、停止保持時通電相記憶済みフラグＸｈｏｌｄ＝ＯＦＦ（未記憶）であるか否か（つまりＦ／Ｂ制御開始位置停止保持処理の開始直前のタイミングであるか否か）を判定し、停止保持時通電相記憶済みフラグＸｈｏｌｄ＝ＯＦＦであれば、ステップ５１４に進み、Ｆ／Ｂ制御開始位置停止保持処理時の通電相判定値Ｍｐｔｎを現在の位置カウンタ値（Ｎｃｎｔ−Ｇｃｎｔ）にセットする。
Ｍｐｔｎ＝Ｎｃｎｔ−Ｇｃｎｔ
【００７６】
ここで、位置カウンタ値（Ｎｃｎｔ−Ｇｃｎｔ）は、エンコーダカウント値Ｎｃｎｔを初期駆動時に学習された初期位置ずれ学習値Ｇｃｎｔで補正した値であり、ロータ３２の現在位置を正確に表した値となっている。
【００７７】
この後、ステップ５１５に進み、通電相判定値Ｍｐｔｎを“１２”で割り算して、その余りＭｐｔｎ％１２を求める。ここで、“１２”は、通電相を一巡させる間のエンコーダカウント値Ｎｃｎｔ（通電相判定値Ｍｐｔｎ）の増減量に相当する。このＭｐｔｎ％１２の値に基づいて、図２１の変換テーブルによって通電相が決定される。
【００７８】
そして、次のステップ５１６で、Ｍｐｔｎ％１２＝２，３，６，７，１０，１１であるか否かによって１相通電（Ｕ相通電、Ｖ相通電、Ｗ相通電）であるか否かを判定し、１相通電であれば、ステップ５１７に進み、通電相判定値Ｍｐｔｎを１ステップ分に相当する“２”だけ増加して２相通電（ＵＶ相通電、ＶＷ相通電、ＵＷ相通電）に補正する。これにより、Ｆ／Ｂ制御開始位置停止保持処理を１相通電と比べて保持トルクの大きい２相通電で実行することで、ロータ３２がＦ／Ｂ制御開始位置付近で振動することを防止して、ロータ３２をＦ／Ｂ制御開始位置に確実に停止保持できるようにする。
【００７９】
そして、次のステップ５１８で、停止保持時通電相記憶済みフラグＸｈｏｌｄ＝ＯＮ（記憶済み）にセットして本ルーチンを終了する。この後、本ルーチンが起動されたときには、ステップ５１３で「Ｎｏ」と判定され、ステップ５１４〜５１８の処理が実行されない。これにより、Ｆ／Ｂ制御開始位置停止保持処理時の通電相判定値Ｍｐｔｎ（通電相）を設定する処理は、Ｆ／Ｂ制御開始位置停止保持処理の開始直前に１回のみ実行される。
【００８０】
その後、Ｆ／Ｂ制御開始位置停止保持処理の時間ＣＴ１が所定時間（例えば１０ｍｓ）を越えた時点で、ステップ５１２で「Ｙｅｓ」と判定されて、Ｆ／Ｂ制御開始位置停止保持処理を終了し、Ｆ／Ｂ制御に移行する。Ｆ／Ｂ制御中は、所定周期（例えば１ｍｓ周期）で本ルーチンを起動する毎に、ステップ５１９で、後述する図２３に示す通電相設定ルーチンを実行し、通電相判定値Ｍｐｔｎを算出する。この処理が特許請求の範囲でいう第２の通電相設定手段としての役割を果たす。尚、図２３の通電相設定ルーチンは、後述する図２２に示すＦ／Ｂ制御ルーチンのステップ６０２でも起動される。この後、ステップ５２０に進み、Ｆ／Ｂ許可フラグＸｆｂ＝ＯＮ（Ｆ／Ｂ制御実行）にセットする。
【００８１】
前記図１１〜図１３の制御モード設定ルーチンでは、Ｆ／Ｂ制御により目標カウント値Ａｃｎｔとエンコーダカウント値Ｎｃｎｔとの差（Ａｃｎｔ−Ｎｃｎｔ）が所定値以下になった時点で、ロータ３２が目標位置に到達した（Ｆ／Ｂ制御の終了タイミング）と判断して、Ｆ／Ｂ許可フラグＸｆｂ＝ＯＦＦにセットし、Ｆ／Ｂ制御を終了して、制御モード判定値ｍｏｄｅ＝３（目標位置停止保持処理）にセットし、その後、所定時間（例えば５０ｍｓ）が経過した時点で、制御モード判定値ｍｏｄｅ＝０（通電オフ）にセットする（図１３のステップ４１９以降の処理参照）。
【００８２】
従って、Ｆ／Ｂ制御終了後は、図１７のｍｏｄｅ１ルーチンが起動されないため、ステップ５１９の時間同期通電相設定処理による通電相の設定は、Ｆ／Ｂ制御開始からロータ３２が目標位置に到達するまで（つまりＦ／Ｂ制御が終了するまで）実行される。
【００８３】
図２４はＵＷ相から回転を開始する場合に最初に通電する相を説明するタイムチャートである。この場合、正回転（Ｐレンジ→ＮｏｔＰレンジ方向への回転）を開始する場合は、通電相判定値Ｍｐｔｎは、エンコーダカウント値Ｎｃｎｔ、初期位置ずれ学習値Ｇｃｎｔ、正回転方向位相進み量Ｋ１を用いて次式により算出される。
Ｍｐｔｎ＝Ｎｃｎｔ−Ｇｃｎｔ＋Ｋ１
【００８４】
ここで、正回転方向位相進み量Ｋ１を例えば４とすると、通電相判定値Ｍｐｔｎは、次式により算出される。
Ｍｐｔｎ＝Ｎｃｎｔ−Ｇｃｎｔ＋４
ＵＷ相から正回転を開始する場合は、ｍｏｄ（Ｎｃｎｔ−Ｇｃｎｔ）は４となるため、Ｍｐｔｎ％１２＝４＋４＝８となり、最初の通電相はＵＶ相となる。
【００８５】
一方、ＵＷ相から逆回転（ＮｏｔＰレンジ→Ｐレンジ方向への回転）を開始する場合は、逆回転方向位相進み量Ｋ２を例えば３とすると、通電相判定値Ｍｐｔｎは、次式により算出される。
Ｍｐｔｎ＝Ｎｃｎｔ−Ｇｃｎｔ−Ｋ２＝Ｎｃｎｔ−Ｇｃｎｔ−３
ＵＷ相から逆回転を開始する場合は、Ｍｐｔｎ％１２＝４−３＝１となり、最初の通電相はＶＷ相となる。
【００８６】
このように、正回転方向位相進み量Ｋ１と逆回転方向位相進み量Ｋ２をそれぞれ４と３に設定することで、正回転方向と逆回転方向の通電相の切換パターンを対称にすることができ、正回転方向と逆回転方向のいずれの場合も、ロータ３２の現在位置から２ステップ分ずらした位置の相を最初に励磁して回転を開始することができる。
【００８７】
［ｍｏｄｅ３］
図１８に示すｍｏｄｅ３ルーチンは、図１６の時間同期モータ制御ルーチンのステップ５０６で起動されるサブルーチンであり、目標位置停止保持処理時の通電相判定値Ｍｐｔｎ（通電相）を次のようにして設定する。
【００８８】
本ルーチンが起動されると、まずステップ５３１で、Ｆ／Ｂ制御終了時のＭｐｔｎ％１２＝２，３，６，７，１０，１１であるか否かによってＦ／Ｂ制御終了時の通電相が１相通電（Ｕ相通電、Ｖ相通電、Ｗ相通電）であるか否かを判定し、１相通電であれば、ステップ５３２〜５３４の処理によって、それまで行っていたＦ／Ｂ制御の回転方向に応じて通電相判定値Ｍｐｔｎを２だけ増加又は減少させることで、当該１相通電の次のステップの２相通電に変更する。
【００８９】
この際、ステップ５３２で、回転方向を次のようにして判定する。本ルーチンに入る直前（Ｆ／Ｂ制御終了時）に、図１３のステップ４２６で、回転方向指示値Ｄが０（停止）にセットされるため、回転方向指示値Ｄを見ても回転方向を判定することができない。そこで、本ルーチンでは、Ｆ／Ｂ制御終了時の通電相判定値Ｍｐｔｎと位置カウント値（Ｎｃｎｔ−Ｇｃｎｔ）との間に、通電相の位相進み量Ｋ１，Ｋ２分の差があることに着目し、Ｆ／Ｂ制御終了時の通電相判定値Ｍｐｔｎと位置カウント値（Ｎｃｎｔ−Ｇｃｎｔ）との大小関係によって回転方向を次のように判定する。
【００９０】
Ｍｐｔｎ＞Ｎｃｎｔ−Ｇｃｎｔの場合は、正回転（Ｐレンジ→ＮｏｔＰレンジの回転方向）と判定して、ステップ５３３に進み、通電相判定値Ｍｐｔｎを２だけ増加させることで、２相通電に補正する。
【００９１】
一方、Ｍｐｔｎ＜Ｎｃｎｔ−Ｇｃｎｔの場合は、逆回転（ＮｏｔＰレンジ→Ｐレンジの回転方向）と判定して、ステップ５３４に進み、通電相判定値Ｍｐｔｎを２だけ減少させることで、２相通電に補正する。
尚、Ｍｐｔｎ＝Ｎｃｎｔ−Ｇｃｎｔの場合は、停止と判定して、通電相は変更しない。
【００９２】
このように、目標位置停止保持処理についても、Ｆ／Ｂ制御開始位置停止保持処理と同じく、１相通電と比べて保持トルクの大きい２相通電で実行することで、ロータ３２が目標位置付近で振動することを防止して、ロータ３２を目標位置で確実に停止保持できるようにする。
【００９３】
［ｍｏｄｅ４］
図１９に示すｍｏｄｅ４ルーチンは、図１６の時間同期モータ制御ルーチンのステップ５０７で起動されるサブルーチンであり、反転位置停止保持処理時の通電相判定値Ｍｐｔｎ（通電相）を次のようにして設定する。
【００９４】
本ルーチンが起動されると、まずステップ５４１で、反転位置停止保持処理の時間をカウントする通電時間カウンタＣＴ４をカウントアップし、次のステップ５４２で、反転位置停止保持処理の時間ＣＴ４が所定時間（例えば５０ｍｓ）を越えたか否かを判定する。
【００９５】
もし、反転位置停止保持処理の時間ＣＴ４が所定時間（例えば５０ｍｓ）を越えていなければ、ステップ５４３に進み、Ｍｐｔｎ％１２＝２，３，６，７，１０，１１であるか否かによって現在の通電相が１相通電（Ｕ相通電、Ｖ相通電、Ｗ相通電）であるか否かを判定し、１相通電であれば、ステップ５４４〜５４６の処理によって、それまで行っていたＦ／Ｂ制御の回転方向に応じて通電相判定値Ｍｐｔｎを２だけ増加又は減少させることで、当該１相通電の次のステップの２相通電に変更する。このステップ５４３〜５４６の処理は、前記図１８のｍｏｄｅ３ルーチンのステップ５３１〜５３４の処理と同じである。
【００９６】
このように、反転位置停止保持処理についても、Ｆ／Ｂ制御開始位置停止保持処理や目標位置停止保持処理と同じく、１相通電と比べて保持トルクの大きい２相通電で実行することで、ロータ３２が反転位置付近で振動することを防止して、ロータ３２を反転位置で確実に停止保持できるようにする。
【００９７】
その後、反転位置停止保持処理の時間ＣＴ４が所定時間（例えば５０ｍｓ）を越えた時点で、ステップ５４２で「Ｙｅｓ」と判定されて、反転位置停止保持処理を終了し、Ｆ／Ｂ制御を再開する。これにより、最初に、ステップ５４７で、反転位置停止保持処理時の通電相判定値Ｍｐｔｎに、回転方向に応じて通電相の位相進み分のカウント値（例えば４又は３）を加算又は減算してＦ／Ｂ制御再開時の最初の通電相判定値Ｍｐｔｎを設定し、それによって、ロータ３２の回転駆動を開始する。この後、ステップ５４８に進み、Ｆ／Ｂ許可フラグＸｆｂ＝ＯＮ（Ｆ／Ｂ制御実行）、通電時間カウンタＣＴ４＝０、制御モード判定値ｍｏｄｅ＝１（通常駆動）にセットして本ルーチンを終了する。
【００９８】
［通電処理］
図２０に示す通電処理ルーチンは、図１６の時間同期モータ制御ルーチンのステップ５０８で起動されるサブルーチンである。尚、本ルーチンは、後述する図２２のＦ／Ｂ制御ルーチンのステップ６０３でも起動される。
【００９９】
図２０の通電処理ルーチンが起動されると、まずステップ５５１で、制御モード判定値ｍｏｄｅ＝０（通電オフ）であるか否かを判定し、制御モード判定値ｍｏｄｅ＝０（通電オフ）であれば、ステップ５５２に進み、ＳＲモータ１２の全相の通電をオフしてスタンバイ状態とする。
【０１００】
一方、上記ステップ５５１で、「Ｎｏ」と判定されれば、ステップ５５３に進み、制御モード判定値ｍｏｄｅ＝５（オープンループ制御）であるか否かを判定し、制御モード判定値ｍｏｄｅ＝５（オープンループ制御）であれば、ステップ５５４に進み、オープンループ制御を実行する。このオープンループ制御は、エンコーダ４６の故障又はＳＲモータ１２の動作異常が発生したときに、例えば１ｍｓ周期の時間同期処理によって通電相を設定してロータ３２を目標位置まで回転駆動する。
【０１０１】
また、上記ステップ５５１、５５３で、いずれも「Ｎｏ」と判定された場合、つまり、制御モード判定値ｍｏｄｅ＝１，３，４（通常駆動、目標位置停止保持処理、反転位置停止保持処理）の場合は、ステップ５５５に進み、Ｍｐｔｎ％１２に応じて図２１の変換テーブルによって通電相を設定し、その通電相の巻線３３，３４に通電する。
【０１０２】
［Ｆ／Ｂ制御］
次に、図２２に示すＦ／Ｂ制御ルーチンの処理内容を説明する。本ルーチンは、ＡＢ相割り込み処理により実行され、初期駆動終了後にＦ／Ｂ制御実行条件が成立しているときに、ロータ３２の回転位置（エンコーダカウント値Ｎｃｎｔ−Ｇｃｎｔ）が目標位置（目標カウント値Ａｃｎｔ）から例えば０．５°以内に到達するまで、エンコーダカウント値Ｎｃｎｔと初期位置ずれ学習値Ｇｃｎｔとに基づいて通電相を切り換えてロータ３２を回転させる。
【０１０３】
図２２のＦ／Ｂ制御ルーチンが起動されると、まずステップ６０１で、Ｆ／Ｂ許可フラグＸｆｂがＯＮにセットされているか否か（Ｆ／Ｂ制御実行条件が成立しているか否か）を判定し、Ｆ／Ｂ許可フラグＸｆｂがＯＦＦ（Ｆ／Ｂ制御実行条件が不成立）であれば、以降の処理を行うことなく、本ルーチンを終了する。
【０１０４】
これに対し、Ｆ／Ｂ許可フラグＸｆｂがＯＮにセットされていれば、ステップ６０２に進み、後述する図２３の通電相設定ルーチンを実行して、現在のエンコーダカウント値Ｎｃｎｔと初期位置ずれ学習値Ｇｃｎｔとに基づいて通電相を設定し（この処理が特許請求の範囲でいう第１の通電相設定手段としての役割を果たす）、次のステップ６０３で、図２０の通電処理ルーチンを実行する。
【０１０５】
［通電相設定］
図２３に示す通電相設定ルーチンは、図２２のＦ／Ｂ制御ルーチンのステップ６０２と図１７のｍｏｄｅ１ルーチンのステップ５１９で起動されるサブルーチンである。本ルーチンが起動されると、まずステップ６１１で、目標位置への回転方向を指示する回転方向指示値Ｄが正回転（Ｐレンジ→ＮｏｔＰレンジの回転方向）を意味する「１」であるか否かを判定する。その結果、回転方向指示値Ｄ＝１（正回転）と判定されれば、ステップ６１２に進み、ロータ３２の回転方向が回転方向指示に反して逆転したか否か（エンコーダカウント値Ｎｃｎｔが減少したか否か）を判定し、逆転していなければ、ステップ６１３に進み、現在のエンコーダカウント値Ｎｃｎｔ、初期位置ずれ学習値Ｇｃｎｔ、正回転方向位相進み量Ｋ１、速度位相進み補正量Ｋｓを用いて通電相判定値Ｍｐｔｎを次式により更新する。
Ｍｐｔｎ＝Ｎｃｎｔ−Ｇｃｎｔ＋Ｋ１＋Ｋｓ
【０１０６】
ここで、正回転方向位相進み量Ｋ１は、ロータ３２を正回転させるのに必要な通電相の位相進み量（ロータ３２の現在の回転位相に対する通電相の位相進み量）であり、例えばＫ１＝４に設定されている。
【０１０７】
また、速度位相進み補正量Ｋｓは、ロータ３２の回転速度に応じて設定される位相進み補正量であり、例えば、低速域では、速度位相進み補正量Ｋｓが０に設定され、高速になるに従って、速度位相進み補正量Ｋｓが例えば１又は２に増加される。これにより、ロータ３２の回転速度に適した通電相となるように通電相判定値Ｍｐｔｎが補正される。
【０１０８】
更に、Ｆ／Ｂ制御中に、ロータ３２の回転位置（エンコーダカウント値Ｎｃｎｔ）と目標位置（目標カウント値Ａｃｎｔ）との差が所定値以下になった段階で減速制御に移行すると、後述する図２６の減速制御時速度位相進み補正量設定ルーチンによってロータ３２の回転速度に応じて速度位相進み補正量Ｋｓが設定される。
【０１０９】
一方、上記ステップ６１２で、ロータ３２の回転方向が回転方向指示に反して逆転したと判定された場合は、逆転防止のために通電相判定値Ｍｐｔｎを更新しない。この場合は、逆転直前の通電相（前回の通電相）に通電され、ロータ３２の逆転を抑制する方向に制動トルクが発生する。
【０１１０】
また、上記ステップ６１１で、回転方向指示値Ｄ＝−１（逆回転）、つまりＮｏｔＰレンジ→Ｐレンジの回転方向と判定された場合は、ステップ６１４に進み、ロータ３２の回転方向が回転方向指示に反して逆転したか否か（エンコーダカウント値Ｎｃｎｔが増加したか否か）を判定し、逆転していなければ、ステップ６１５に進み、現在のエンコーダカウント値Ｎｃｎｔ、初期位置ずれ学習値Ｇｃｎｔ、逆回転方向位相進み量Ｋ２、速度位相進み補正量Ｋｓを用いて通電相判定値Ｍｐｔｎを次式により更新する。
Ｍｐｔｎ＝Ｎｃｎｔ−Ｇｃｎｔ−Ｋ２−Ｋｓ
【０１１１】
ここで、逆回転方向位相進み量Ｋ２は、ロータ３２を逆回転させるのに必要な通電相の位相進み量（ロータ３２の現在の回転位相に対する通電相の位相進み量）であり、例えばＫ２＝３に設定されている。速度位相進み補正量Ｋｓは正回転の場合と同じように設定される。
【０１１２】
一方、上記ステップ６１４で、ロータ３２の回転方向が回転方向指示に反して逆転したと判定された場合は、逆転防止のために通電相判定値Ｍｐｔｎを更新しない。この場合は、逆転直前の通電相（前回の通電相）に通電され、ロータ３２の逆転を抑制する方向に制動トルクが発生する。
【０１１３】
以上のようにして、今回の通電相判定値Ｍｐｔｎを決定した後、図２０の通電処理ルーチンを実行し、Ｆ／Ｂ制御中は、ステップ５５５で、図２１の変換テーブルを検索して、Ｍｐｔｎ％１２に対応する通電相を選択し、その通電相の巻線３３，３４に通電する。
【０１１４】
［ロータ回転速度演算］
図２５に示すロータ回転速度演算ルーチンは、ＡＢ相割り込み処理により実行され、次のようにしてロータ３２の回転速度ＳＰを演算する。本ルーチンが起動されると、まずステップ６２１で、Ｆ／Ｂ許可フラグＸｆｂがＯＮ（Ｆ／Ｂ制御実行中）であるか否かを判定し、Ｆ／Ｂ許可フラグＸｆｂがＯＦＦ（Ｆ／Ｂ制御禁止）であれば、ロータ３２の回転速度ＳＰに応じた通電相の位相進み補正を行わないため、ステップ６２４に進み、ロータ３２の回転速度ＳＰ，ＳＰａの記憶値をリセットして、本ルーチンを終了する。
【０１１５】
これに対して、Ｆ／Ｂ許可フラグＸｆｂがＯＮ（Ｆ／Ｂ制御実行中）であれば、次のようにしてロータ３２の回転速度ＳＰを演算する。まず、ステップ６２２で、エンコーダ４６のＡ相信号とＢ相信号の立ち上がり／立ち下がりエッジ間の時間間隔ΔＴ（ｎ）　（すなわちエンコーダカウント値が増減する時間間隔）を計測して、その時間間隔ΔＴ（ｎ）　の過去Ｎ回分の平均値ΔＴａｖを算出する。そして、回転速度演算値ＳＰａを次式により算出する。
ＳＰａ＝６０／（ΔＴａｖ×Ｋｐ）　　［ｒｐｍ］
【０１１６】
ここで、Ｋｐは、ロータ３２の１回転当たりの時間間隔ΔＴ（ｎ）　の数（ロータ３２の１回転当たりのエンコーダカウント値の変化量）であり、図５の構成のエンコーダ４６の場合は、Ｋｐ＝９６となる。ΔＴａｖ×Ｋｐは、ロータ３２が１回転するのに要する時間［ｓｅｃ］である。
【０１１７】
この後、ステップ６２３に進み、回転速度演算値ＳＰａを用いて、ロータ３２の回転速度ＳＰを次式によりなまし処理して求める。
ＳＰ（ｉ）　＝ＳＰ（ｉ−１）　＋｛ＳＰａ−ＳＰ（ｉ−１）　｝／Ｒ
ここで、ＳＰ（ｉ）　は今回の回転速度、ＳＰ（ｉ−１）　は前回の回転速度、Ｒはなまし係数である。
【０１１８】
［減速制御時速度位相進み補正量設定］
図２６に示す減速制御時速度位相進み補正量設定ルーチンは、所定周期（例えば１ｍｓ周期）で起動され、減速制御時にロータ３２の回転速度ＳＰに応じて速度位相進み補正量Ｋｓを次のようにして設定する。
【０１１９】
本ルーチンが起動されると、まずステップ７０１で、目標カウント値Ａｃｎｔとエンコーダカウント値Ｎｃｎｔとの差の絶対値｜Ａｃｎｔ−Ｎｃｎｔ｜が所定値（例えば１００）よりも小さいか否かで、ロータ３２の回転位置が目標位置に近付いたか否か（停止のための減速制御領域に入ったか否か）を判定する。その結果、｜Ａｃｎｔ−Ｎｃｎｔ｜が所定値以上（つまり減速制御領域ではない）と判定されれば、以降の処理を行うことなく、本ルーチンを終了する。
【０１２０】
一方、｜Ａｃｎｔ−Ｎｃｎｔ｜が所定値よりも小さい場合は、減速制御領域と判断して、ステップ７０２〜７０６の処理により、ロータ３２の回転速度ＳＰに応じて速度位相進み補正量Ｋｓを次のようにして設定する。まず、ステップ７０２、７０３で、ロータ３２の現在の回転速度ＳＰが高速領域（例えば１５００ｒｐｍ以上）、中速領域（例えば１５００〜５００ｒｐｍ）、低速領域（例えば５００ｒｐｍ以下）のいずれに該当するか判別し、高速領域（例えば１５００ｒｐｍ以上）であれば、ステップ７０４に進み、減速制御時の速度位相進み補正量Ｋｓを例えば−２に設定し、中速領域（例えば１５００〜５００ｒｐｍ）であれば、ステップ７０５に進み、減速制御時の速度位相進み補正量Ｋｓを例えば−１に設定し、低速領域（例えば５００ｒｐｍ以下）であれば、ステップ７０６に進み、減速制御時の速度位相進み補正量Ｋｓを例えば０に設定する。これにより、減速制御時には、ロータ３２の回転速度ＳＰが高速領域→中速領域→低速領域へと速度低下するに従って、速度位相進み補正量Ｋｓの絶対値が小さくなり、ロータ３２に作用させる制動力が小さくなる。
【０１２１】
この後、ステップ７０７に進み、ロータ３２の減速が遅れているか否かを判定する。具体的には、目標カウント値Ａｃｎｔとエンコーダカウント値Ｎｃｎｔとの差の絶対値｜Ａｃｎｔ−Ｎｃｎｔ｜が例えば５０よりも小さくなっている（つまりロータ３２の現在の回転位置が目標位置にかなり近付いている）にも拘らず、ロータ３２の回転速度ＳＰが高速領域（例えば１５００ｒｐｍ以上）であれば、ロータ３２の減速が遅れていると判断して、ステップ７０８に進み、減速制御時の速度位相進み補正量Ｋｓを例えば−３に設定して、ロータ３２に作用させる制動力を最大限に増大させて、ロータ３２の回転速度ＳＰを急速に低下させる。これにより、ロータ３２が慣性により目標位置を越えてオーバーシュートすることを防止する。
【０１２２】
以上説明した本実施形態では、Ｆ／Ｂ制御中に、ロータ３２の回転位置（エンコーダカウント値）と目標位置（目標カウント値）との差が所定値以下になった段階で、減速制御に移行し、ロータ３２の回転速度に応じて通電相の位相進み量に対する速度位相進み補正量Ｋｓを設定するようにしたので、ロータ３２の回転速度に応じて該ロータ３２に作用させる制動力を適度に変化させて、ロータ３２を目標位置に向かってスムーズに減速することができる。これにより、Ｆ／Ｂ制御終了時にロータ３２が慣性により目標位置を越えてオーバーシュートすることを防止できて、ロータ３２を精度良く目標位置で停止させることができ、Ｆ／Ｂ制御中のロータ３２の回転速度の高速化と停止位置精度向上とを両立させることができる。
【０１２３】
しかも、本実施形態では、減速制御時に、ロータ３２の回転速度の他に、ロータ３２の現在位置から目標位置までの回転角も考慮して、速度位相進み補正量Ｋｓを設定するようにしたので、何等かの原因で、ロータ３２の減速が遅れた場合でも、目標位置の手前でロータ３２に作用させる制動力を増大させてロータ３２を確実に減速させることができ、ロータ３２を精度良く目標位置で停止させることができる。
【０１２４】
更に、本実施形態では、Ｆ／Ｂ制御開始からロータ３２が目標位置に回転駆動されるまで、所定周期（例えば１ｍｓ周期）でエンコーダカウント値に基づいて通電相を設定する時間同期通電相設定処理をＦ／Ｂ制御と並行して実行するようにしたので、減速制御の途中で、何等かの原因でロータ３２の回転が一旦停止してエンコーダ４６からＡ相・Ｂ相信号が出力されなくなった場合でも、時間同期通電相設定処理によってその時点のエンコーダカウント値に基づいて通電相を設定することができて、可能な限りロータ３２を目標位置まで回転駆動することができ、ＳＲモータ１２のＦ／Ｂ制御（レンジ切換制御）の信頼性を向上することができる。
【０１２５】
尚、本実施形態では、Ｆ／Ｂ制御開始からロータ３２が目標位置に回転駆動されるまでの全期間にわたって時間同期通電相設定処理を行うようにしたので、ロータ３２がどの様なタイミングで停止しても、時間同期通電相設定処理によってロータ３２の停止直後に遅れずに通電相を設定することができ、ロータ３２の停止時間を短くすることができる利点がある。
【０１２６】
しかし、ロータ３２の回転速度が所定値以下に低下してから時間同期通電相設定処理を実行するようにしても良い。このようにすれば、ロータ３２の回転速度が一時停止する可能性のある回転速度まで低下したときのみ、時間同期通電相設定処理を実行すれば良いため、ＥＣＵ４１のＣＰＵの演算負荷を軽減できる利点がある。
【０１２７】
或は、減速制御の途中でロータ３２が停止したときのみ、時間同期通電相設定処理を実行するようにしても良い。勿論、時間同期通電相設定処理を行わずにＦ／Ｂ制御のみで通電相を設定する場合でも、本発明を適用して実施できることは言うまでもない。
【０１２８】
尚、本実施形態では、Ｆ／Ｂ制御中に、１相通電と２相通電とを交互に切り換える１−２相励磁方式で駆動するようにしたが、１相通電のみで駆動する１相励磁方式、又は、２相通電のみで駆動する２相励磁方式を採用しても良い。
【０１２９】
また、本発明に用いるエンコーダは、磁気式のエンコーダ４６に限定されず、例えば、光学式のエンコーダやブラシ式のエンコーダを用いても良い。
また、本発明に用いるモータは、ＳＲモータ１２に限定されず、エンコーダの出力信号のカウント値に基づいてロータの回転位置を検出してモータの通電相を順次切り換えるブラシレス型のモータであれば、ＳＲモータ以外のブラシレス型のモータを用いても良い。
【０１３０】
また、本実施形態のレンジ切換装置は、ＰレンジとＮｏｔＰレンジの２つのレンジを切り換える構成であるが、例えば、ディテントレバー１５の回動動作に連動して自動変速機のレンジ切換弁とマニュアルバルブを切り換えて、自動変速機のＰ、Ｒ、Ｎ、Ｄ等の各レンジを切り換えるレンジ切換装置にも本発明を適用して実施できる。
【０１３１】
その他、本発明は、レンジ切換装置に限定されず、ＳＲモータ等のブラシレス型のモータを駆動源とする各種の装置に適用して実施できることは言うまでもない。
【図面の簡単な説明】
【図１】本発明の一実施形態を示すレンジ切換装置の斜視図
【図２】ＳＲモータの構成を説明する図
【図３】ＳＲモータを駆動する回路構成を示す回路図
【図４】レンジ切換装置の制御システム全体の構成を概略的に示す図
【図５】エンコーダのロータリマグネットの構成を説明する平面図
【図６】エンコーダの側面図
【図７】（ａ）はエンコーダの出力波形を示すタイムチャート、（ｂ）は通電相切り換えパターンを示すタイムチャート
【図８】エンコーダカウンタルーチンの処理の流れを示すフローチャート
【図９】カウントアップ値ΔＮ算出マップの一例を示す図
【図１０】指令レンジシフト、Ａ相信号、Ｂ相信号、エンコーダカウント値の関係を示すタイムチャート
【図１１】制御モード設定ルーチンの処理の流れを示すフローチャート（その１）
【図１２】制御モード設定ルーチンの処理の流れを示すフローチャート（その２）
【図１３】制御モード設定ルーチンの処理の流れを示すフローチャート（その３）
【図１４】Ｆ／Ｂ制御から目標位置停止保持処理へ移行するタイミングを説明するタイムチャート
【図１５】ＳＲモータの制御例を示すタイムチャート
【図１６】時間同期モータ制御ルーチンの処理の流れを示すフローチャート
【図１７】ｍｏｄｅ１ルーチンの処理の流れを示すフローチャート
【図１８】ｍｏｄｅ３ルーチンの処理の流れを示すフローチャート
【図１９】ｍｏｄｅ４ルーチンの処理の流れを示すフローチャート
【図２０】通電処理ルーチンの処理の流れを示すフローチャート
【図２１】１−２相励磁方式の場合のＭｐｔｎ％１２から通電相への変換テーブルの一例を示す図
【図２２】Ｆ／Ｂ制御ルーチンの処理の流れを示すフローチャート
【図２３】通電相設定ルーチンの処理の流れを示すフローチャート
【図２４】ＵＷ相から回転を開始する時の通電処理を説明するタイムチャート
【図２５】ロータ回転速度演算ルーチンの処理の流れを示すフローチャート
【図２６】減速制御時速度位相進み補正量設定ルーチンの処理の流れを示すフローチャート
【符号の説明】
１１…レンジ切換機構、１２…ＳＲモータ、１４…出力軸センサ、１５…ディテントレバー、１８…パーキングロッド、２０…パーキングギヤ、２１…ロックレバー、２３…ディテントバネ、２４…Ｐレンジ保持凹部、２５…ＮｏｔＰレンジ保持凹部、２６…減速機構、２７…自動変速機、３１…ステータ、３２…ロータ、３３，３４…巻線、３５，３６…モータ励磁部、３７，３８…モータドライバ、４１…ＥＣＵ（制御手段，第１の通電相設定手段，第２の通電相設定手段）、４３…Ｐレンジスイッチ、４４…ＮｏｔＰレンジスイッチ、４６…エンコーダ、４７…ロータリマグネット、４８…Ａ相信号用の磁気検出素子、４９…Ｂ相信号用の磁気検出素子、５０…Ｚ相信号用の磁気検出素子。
【図１】
2004129452.tif 000003
【図２】
2004129452.tif 000004
【図３】
2004129452.tif 000005
【図４】
2004129452.tif 000006
【図５】
2004129452.tif 000007
【図６】
2004129452.tif 000008
【図７】
2004129452.tif 000009
【図８】
2004129452.tif 000010
【図９】
2004129452.tif 000011
【図１０】
2004129452.tif 000012
【図１１】
2004129452.tif 000013
【図１２】
2004129452.tif 000014
【図１３】
2004129452.tif 000015
【図１４】
2004129452.tif 000016
【図１５】
2004129452.tif 000017
【図１６】
2004129452.tif 000018
【図１７】
2004129452.tif 000019
【図１８】
2004129452.tif 000020
【図１９】
2004129452.tif 000021
【図２０】
2004129452.tif 000022
【図２１】
2004129452.tif 000023
【図２２】
2004129452.tif 000024
【図２３】
2004129452.tif 000025
【図２４】
2004129452.tif 000026
【図２５】
2004129452.tif 000027
【図２６】
2004129452.tif 000028