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