(57)【要約】【課題】出力軸センサからの信号に異常が生じた場合であっても、モータの駆動を適切に制御可能であるシフトレンジ制御装置を提供する。【解決手段】学習部５３は、始動スイッチをオンしたとき、少なくとも１つの出力軸信号Ｓｇ１、Ｓｇ２が利用可能である場合、モータ１０を第１方向に回転させたときに出力軸信号Ｓｇ１、Ｓｇ２が変化するタイミングの第１基準角度θｅｎＬ、および、モータ１０を第１方向と反対方向である第２方向に回転させたときに出力軸信号Ｓｇ１、Ｓｇ２が変化するタイミングの第２基準角度θｅｎＲの少なくとも一方に基づき、正常時ガタ幅学習値θｇａを学習する。全ての出力軸信号Ｓｇ１、Ｓｇ２が利用不可と判定されてから始動スイッチがオフされるまでの間、目標設定部５５は、第２記憶部６２に記憶されている正常時ガタ幅学習値θｇａを用いて目標カウント値θｃｍｄを設定する。【選択図】  図２
2019019896.tif 000002
【特許請求の範囲】
【請求項１】
モータ（１０）の駆動を制御することで、シフトレンジを切り替えるシフトレンジ制御装置であって、
前記モータの回転位置を検出するモータ回転角センサ（１３）から出力されるモータ回転角信号を取得し、モータ角度を演算する角度演算部（５１）と、
前記モータの回転が伝達される出力軸（１５）の回転位置を検出する出力軸センサ（１６）から出力され、前記出力軸の回転位置に応じて値がステップ的に変化する出力軸信号を取得する信号取得部（５２）と、
モータ角度目標値の演算に用いられる位置補正値を学習する学習部（５３）と、
前記位置補正値を記憶する記憶部（６１、６２）と、
目標シフトレンジに応じ、前記位置補正値を用いて前記モータ角度目標値を設定する目標設定部（５５）と、
前記モータ角度が前記モータ角度目標値となるように、前記モータの駆動を制御する駆動制御部（５６）と、
前記出力軸信号の利用可否を判定する異常判定部（５８）と、
を備え、
前記学習部は、始動スイッチがオンされたとき、少なくとも１つの前記出力軸信号が利用可能である場合、前記モータを第１方向に回転させたときに前記出力軸信号が変化するタイミングの前記モータ角度である第１基準角度、および、前記モータを前記第１方向と反対方向である第２方向に回転させたときに前記出力軸信号が変化するタイミングの前記モータ角度である第２基準角度の少なくとも一方に基づいて演算される正常時補正値を前記位置補正値として学習し、
全ての前記出力軸信号が利用不可と判定されてから前記始動スイッチがオフされるまでの間、前記目標設定部は、前記記憶部に記憶されている前記正常時補正値を用いて前記モータ角度目標値を設定するシフトレンジ制御装置。
【請求項２】
前記学習部は、前記始動スイッチをオンしたとき、全ての前記出力軸信号が利用不可である場合、前記モータを可動範囲の限界位置まで回転させたときの前記モータ角度に基づいて演算される異常時補正値を前記位置補正値として学習する請求項１に記載のシフトレンジ制御装置。
【請求項３】
前記出力軸は、シフトレンジに応じて係合部材（２６）が係合する複数の谷部（２２１〜２２４）、および、前記谷部の間に設けられる山部（２２６〜２２８）が形成される回転部材（２１）と一体に回転し、
前記出力軸信号は、前記係合部材が隣接する前記谷部に移動するとき、移動の前後で異なる値となるように、ステップ的に変化する請求項１または２に記載のシフトレンジ制御装置。
【請求項４】
前記第１方向は、ＰレンジからＰレンジ以外のレンジに切り替えるときの前記回転部材の回転方向であって、
前記山部のＰレンジ側の前記谷部をＰレンジ側谷部とすると、
前記出力軸信号は、少なくとも１箇所において、前記係合部材が前記Ｐレンジ側谷部の中心と前記山部の頂点との間の所定位置にあるときに値が変化し、
前記第１基準角度は、前記係合部材が前記Ｐレンジ側谷部の中心から前記山部の頂点に向かって移動しているときに前記出力軸信号の値が変化するタイミングにおける前記モータ角度である請求項３に記載のシフトレンジ制御装置。
【請求項５】
前記山部のＰレンジと反対側の前記谷部を反Ｐレンジ側谷部とすると、
前記出力軸信号は、少なくとも１箇所において、前記係合部材が前記反Ｐレンジ側谷部の中心と前記山部の頂点との間の所定位置にあるときに値が変化し、
前記第２基準角度は、前記係合部材が前記反Ｐレンジ側谷部の中心から前記山部の頂点に向かって移動しているときに前記出力軸信号の値が変化するタイミングにおける前記モータ角度である請求項３または４に記載のシフトレンジ制御装置。
【請求項６】
前記出力軸信号の少なくとも一部が利用不可であると判定された場合、シフトレンジ切替システム（１）に異常が生じていることを警告する報知部（５９）を有する請求項１〜５のいずれか一項に記載のシフトレンジ制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、シフトレンジ制御装置に関する。
【背景技術】
【０００２】
従来、運転者からのシフトレンジ切替要求に応じてモータを制御することでシフトレンジを切り替えるシフトレンジ切替装置が知られている。例えば特許文献１では、モータの回転を減速して伝達する減速機構の回転軸に嵌合連結された出力軸の回転角を検出する出力軸センサが設けられており、出力軸センサの検出値、および、ロータの回転を検出するエンコーダの検出値に基づいてモータの駆動を制御している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第４３８５７６８号
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１では、出力軸センサおよびエンコーダの検出値を用いてモータの駆動を制御している。ここで、出力軸センサに異常が生じた場合、モータの駆動を適切に制御できない虞がある。また、特許文献１には、出力軸センサに異常が生じた場合について、何ら言及されていない。
本発明は、上述の課題に鑑みてなされたものであり、その目的は、出力軸センサからの信号に異常が生じた場合であっても、モータの駆動を適切に制御可能であるシフトレンジ制御装置を提供することにある。
【課題を解決するための手段】
【０００５】
本発明のシフトレンジ制御装置は、モータ（１０）の駆動を制御することで、シフトレンジを切り替えるものであって、角度演算部（５１）と、信号取得部（５２）と、学習部（５３）と、記憶部（６１、６２）と、目標設定部（５５）と、駆動制御部（５６）と、異常判定部（５８）と、を備える。
【０００６】
角度演算部は、モータの回転位置を検出するモータ回転角センサ（１３）から出力されるモータ回転角信号を取得し、モータ角度を演算する。信号取得部は、モータの回転が伝達される出力軸（１５）の回転位置を検出する出力軸センサ（１６）から出力され、出力軸の回転位置に応じて値がステップ的に変化する出力軸信号を取得する。学習部は、モータ角度目標値の演算に用いられる位置補正値を学習する。記憶部は、位置補正値を記憶する。目標設定部は、目標シフトレンジに応じ、位置補正値を用いてモータ角度目標値を設定する。駆動制御部は、モータ角度がモータ角度目標値となるように、モータの駆動を制御する。異常判定部は、出力軸信号の利用可否を判定する。
【０００７】
学習部は、始動スイッチがオンされたとき、少なくとも１つの出力軸信号が利用可能である場合、モータを第１方向に回転させたときに出力軸信号が変化するタイミングのモータ角度である第１基準角度、および、モータを第１方向とは反対方向である第２方向に回転させたときに出力軸信号が変化するタイミングのモータ角度である第２基準角度の少なくとも一方に基づいて演算される正常時補正値を、位置補正値として学習する。
全ての出力軸信号が利用不可と判定されてから始動スイッチがオフされるまでの間、目標設定部は、記憶部に記憶されている正常時補正値を用いてモータ角度目標値を設定する。
【０００８】
位置補正値を用いてモータ角度を設定することで、高精度の位置決め制御が可能である。また、出力軸信号が利用不可になった場合であっても、始動スイッチがオンされている間は、正常時補正値を用いてモータ角度目標値を設定し、モータの駆動を継続する。これにより、出力軸信号に異常が生じた場合であっても、モータの駆動を適切に継続可能である。
【図面の簡単な説明】
【０００９】
【図１】一実施形態によるシフトバイワイヤシステムを示す斜視図である。
【図２】一実施形態によるシフトバイワイヤシステムを示す概略構成図である。
【図３】一実施形態による出力軸信号に基づくガタ幅の学習を説明する説明図である。
【図４】一実施形態によるモータ制御処理を説明するフローチャートである。
【図５】一実施形態による正常時学習処理を説明するフローチャートである。
【図６】一実施形態による異常判定処理を説明するフローチャートである。
【図７】一実施形態による通常時モータ制御処理を説明するフローチャートである。
【発明を実施するための形態】
【００１０】
以下、シフトレンジ制御装置を図面に基づいて説明する。
（一実施形態）
図１および図２に示すように、一実施形態によるシフトレンジ切替システムとしてのシフトバイワイヤシステム１は、モータ１０、シフトレンジ切替機構２０、パーキングロック機構３０、および、シフトレンジ制御装置４０等を備える。
モータ１０は、図示しない車両に搭載されるバッテリから電力が供給されることで回転し、シフトレンジ切替機構２０の駆動源として機能する。本実施形態のモータ１０は、永久磁石式のＤＣブラシレスモータである。
【００１１】
図２に示すように、モータ回転角センサとしてのエンコーダ１３は、モータ１０の図示しないロータの回転位置を検出する。エンコーダ１３は、例えば磁気式のロータリーエンコーダであって、ロータと一体に回転する磁石と、磁気検出用のホールＩＣ等により構成される。エンコーダ１３は、ロータの回転に同期して、所定角度ごとにＡ相およびＢ相のパルス信号を出力する。以下、エンコーダ１３からの信号をモータ回転角信号ＳｇＥとする。本実施形態では、エンコーダ１３は、Ａ相、Ｂ相について、各１つの信号を出力する１重系にて構成されている。本実施形態では、エンコーダ１３は、出力軸センサ１６より角度検出精度が高い。
【００１２】
減速機１４は、モータ１０のモータ軸１０５（図３参照）と出力軸１５との間に設けられ、モータ１０の回転を減速して出力軸１５に出力する。これにより、モータ１０の回転がシフトレンジ切替機構２０に伝達される。
【００１３】
出力軸センサ１６は、第１センサ部１６１、および、第２センサ部１６２を有し、出力軸１５の回転位置を検出する。本実施形態の出力軸センサ１６は、後述する回転部材としてのディテントプレート２１に設けられるターゲット２１５（図１参照）の磁界の変化を検出する磁気センサであり、ターゲット２１５の磁界を検出可能な箇所に取り付けられる。図中、第１センサ部１６１を「センサ１」、第２センサ部１６２を「センサ２」と記載する。
【００１４】
センサ部１６１、１６２は、ターゲット２１５の磁界の変化を検出する磁気抵抗効果素子（ＭＲ素子）を有する、いわゆるＭＲセンサである。第１センサ部１６１は、ターゲット２１５の回転位置に応じた磁界を検出し、第１出力軸信号Ｓｇ１をＥＣＵ５０に出力する。第２センサ部１６２は、ターゲット２１５の回転位置に応じた磁界を検出し、第２出力軸信号Ｓｇ２をＥＣＵ５０に出力する。本実施形態の出力軸センサ１６は、２つのセンサ部１６１、１６２を有しており、それぞれ独立に出力軸信号Ｓｇ１、Ｓｇ２をＥＣＵ５０に送信している。すなわち、出力軸センサ１６は、２重系となっている。
【００１５】
本実施形態では、出力軸センサ１６を、非接触にてターゲット２１５の磁界の変化を検出する磁気センサとしている。これにより、接点式のセンサと比較し、アクチュエータ側の構成を大幅に変更することなく、出力軸信号Ｓｇ１、Ｓｇ２を容易に多重化することができる。出力軸信号Ｓｇ１、Ｓｇ２を多重化（本実施形態では２重化）することで、比較的高い安全性に対する要求を満たすことができるので、出力軸信号Ｓｇ１、Ｓｇ２は、例えばシフトバイワイヤシステム１のダイアグやフェイルセーフ等の異常監視等に好適に用いられる。
【００１６】
図１に示すように、シフトレンジ切替機構２０は、ディテントプレート２１、および、ディテントスプリング２５等を有し、減速機１４から出力された回転駆動力を、マニュアルバルブ２８、および、パーキングロック機構３０へ伝達する。
【００１７】
ディテントプレート２１は、出力軸１５に固定され、モータ１０の駆動により、出力軸１５と一体に回転する。
ディテントプレート２１には、出力軸１５と平行に突出するピン２４が設けられる。ピン２４は、マニュアルバルブ２８と接続される。ディテントプレート２１がモータ１０によって駆動されることで、マニュアルバルブ２８は軸方向に往復移動する。すなわち、シフトレンジ切替機構２０は、モータ１０の回転運動を直線運動に変換してマニュアルバルブ２８に伝達する。マニュアルバルブ２８は、バルブボディ２９に設けられる。マニュアルバルブ２８が軸方向に往復移動することで、図示しない油圧クラッチへの油圧供給路が切り替えられ、油圧クラッチの係合状態が切り替わることでシフトレンジが変更される。
【００１８】
図３に模式的に示すように、ディテントプレート２１のディテントスプリング２５側には、４つの谷部２２１〜２２４が設けられる。第１谷部２２１がＰレンジ、第２谷部２２２がＲレンジ、第３谷部２２３がＮレンジ、第４谷部２２４がＤレンジに対応する。また、第１谷部２２１と第２谷部２２２との間には第１山部２２６が設けられ、第２谷部２２２と第３谷部２２３との間には第２山部２２７が設けられ、第３谷部２２３と第４谷部２２４との間には第３山部２２８が設けられる。図３において、一点鎖線は、谷部２２１〜２２４の中心位置を示している。
【００１９】
第１谷部２２１の第１山部２２６と反対側には、壁部２３１が形成されている。第４谷部２２４の第３山部２２８と反対側には、壁部２３２が形成されている。壁部２３１、２３２は、高さが山部２２６〜２２８よりも高く形成されている。ディテントローラ２６が第１谷部２２１にある状態にてディテントプレート２１が逆方向に回転した場合、壁部２３１によりディテントローラ２６の移動が規制されるので、ディテントローラ２６が壁部２３１を乗り越えるのを防ぐことができる。また、ディテントローラ２６が第４谷部２２４にある状態にてディテントプレート２１が正方向に回転した場合、壁部２３２によりディテントローラ２６の移動が規制されるので、ディテントローラ２６が壁部２３２を乗り越えるのを防ぐことができる。
【００２０】
図１に示すように、ディテントプレート２１には、出力軸１５の回転に応じて磁界が変化するターゲット２１５が設けられる。ターゲット２１５は、磁性体にて形成される。ターゲット２１５は、ディテントプレート２１と別部材であってもよいし、ディテントプレート２１が磁性体であれば、例えばディテントプレート２１にプレス加工等を施すことで形成してもよい。ターゲット２１５は、出力軸１５の回転位置に応じて、出力軸センサ１６の出力軸信号Ｓｇ１、Ｓｇ２である出力電圧が、ステップ状に変化するように形成される。出力軸信号Ｓｇ１、Ｓｇ２の詳細は、後述する。
【００２１】
ディテントスプリング２５は、弾性変形可能な板状部材であり、先端に係合部材としてのディテントローラ２６が設けられる。ディテントローラ２６は、谷部２２１〜２２４のいずれかに嵌まり込む。本実施形態では、ディテントプレート２１に形成される谷部２２１〜２２４は４つであるので、ディテントローラ２６が係合する係合ポジション数は、４である。
【００２２】
ディテントスプリング２５は、ディテントローラ２６をディテントプレート２１の回動中心側に付勢する。ディテントプレート２１に所定以上の回転力が加わると、ディテントスプリング２５が弾性変形し、ディテントローラ２６が谷部２２１〜２２４を移動する。ディテントローラ２６が谷部２２１〜２２４のいずれかに嵌まり込むことで、ディテントプレート２１の揺動が規制され、マニュアルバルブ２８の軸方向位置、および、パーキングロック機構３０の状態が決定され、自動変速機５のシフトレンジが固定される。
【００２３】
パーキングロック機構３０は、パーキングロッド３１、円錐体３２、パーキングロックポール３３、軸部３４、および、パーキングギア３５を有する。
パーキングロッド３１は、略Ｌ字形状に形成され、一端３１１側がディテントプレート２１に固定される。パーキングロッド３１の他端３１２側には、円錐体３２が設けられる。円錐体３２は、他端３１２側にいくほど縮径するように形成される。ディテントプレート２１が逆回転方向に揺動すると、円錐体３２が矢印Ｐの方向に移動する。
【００２４】
パーキングロックポール３３は、円錐体３２の円錐面と当接し、軸部３４を中心に揺動可能に設けられる、パーキングロックポール３３のパーキングギア３５側には、パーキングギア３５と噛み合い可能な凸部３３１が設けられる。ディテントプレート２１が逆回転方向に回転し、円錐体３２が矢印Ｐ方向に移動すると、パーキングロックポール３３が押し上げられ、凸部３３１とパーキングギア３５とが噛み合う。一方、ディテントプレート２１が正回転方向に回転し、円錐体３２が矢印ｎｏｔＰ方向に移動すると、凸部３３１とパーキングギア３５との噛み合いが解除される。
【００２５】
パーキングギア３５は、図示しない車軸に設けられ、パーキングロックポール３３の凸部３３１と噛み合い可能に設けられる。パーキングギア３５と凸部３３１とが噛み合うことで、車軸の回転が規制される。シフトレンジがＰ以外のレンジであるｎｏｔＰレンジのとき、パーキングギア３５はパーキングロックポール３３によりロックされず、車軸の回転は、パーキングロック機構３０により妨げられない。また、シフトレンジがＰレンジのとき、パーキングギア３５はパーキングロックポール３３によってロックされ、車軸の回転が規制される。
【００２６】
図２に示すように、シフトレンジ制御装置４０は、モータドライバ４１、および、ＥＣＵ５０等を有する。
モータドライバ４１は、モータ１０の各相（Ｕ相、Ｖ相、Ｗ相）への通電に係る駆動信号を出力する。モータドライバ４１とバッテリとの間には、モータリレー４６が設けられる。モータリレー４６は、イグニッションスイッチ等である車両の始動スイッチがオンされているときにオンされ、モータ１０側へ電力が供給される。また、モータリレー４６は、始動スイッチがオフされているときにオフされ、モータ１０側への電力の供給が遮断される。
【００２７】
ＥＣＵ５０は、マイコン等を主体として構成され、内部にはいずれも図示しないＣＰＵ、ＲＯＭ、Ｉ／Ｏ、及び、これらの構成を接続するバスライン等を備えている。ＥＣＵ５０における各処理は、ＲＯＭ等の実体的なメモリ装置（すなわち、読み出し可能非一時的有形記録媒体）に予め記憶されたプログラムをＣＰＵで実行することによるソフトウェア処理であってもよいし、専用の電子回路によるハードウェア処理であってもよい。
【００２８】
ＥＣＵ５０は、ドライバ要求シフトレンジ、ブレーキスイッチからの信号および車速等に基づいてモータ１０の駆動を制御することで、シフトレンジの切り替えを制御する。また、ＥＣＵ５０は、車速、アクセル開度、および、ドライバ要求シフトレンジ等に基づき、変速用油圧制御ソレノイド６の駆動を制御する。変速用油圧制御ソレノイド６を制御することで、変速段が制御される。変速用油圧制御ソレノイド６は、変速段数等に応じた本数が設けられる。本実施形態では、１つのＥＣＵ５０がモータ１０およびソレノイド６の駆動を制御するが、モータ１０を制御するモータ制御用のモータＥＣＵと、ソレノイド制御用のＡＴ−ＥＣＵとを分けてもよい。以下、モータ１０の駆動制御を中心に説明する。
【００２９】
ＥＣＵ５０は、角度演算部５１、信号取得部５２、学習部５３、目標設定部５５、駆動制御部５６、異常判定部５８、報知部５９、第１記憶部６１および第２記憶部６２等を有する。
角度演算部５１は、エンコーダ１３から出力されるモータ回転角信号ＳｇＥに基づき、エンコーダ１３のカウント値であるエンコーダカウント値θｅｎを演算する。エンコーダカウント値θｅｎは、モータ１０の実際の機械角および電気角に応じた値である。本実施形態では、エンコーダカウント値θｅｎが「モータ角度」に対応する。
信号取得部５２は、出力軸センサ１６から出力される出力軸信号Ｓｇ１、Ｓｇ２を取得する。本実施形態では、出力軸センサ１６から直接的に出力軸信号Ｓｇ１、Ｓｇ２を取得するが、他のＥＣＵ等からＣＡＮ（Controller Area Network）等の車両通信網を経由して取得してもよい。
【００３０】
学習部５３は、モータ軸１０５（図３参照）と出力軸１５との間の遊びの合計であるガタ幅θｇを学習する。
目標設定部５５は、シフトスイッチ等に基づくドライバ要求シフトレンジ、車速、および、ブレーキスイッチからの信号等に基づき、目標シフトレンジを設定する。また、目標設定部５５は、目標シフトレンジに応じ、モータ角度目標値である目標カウント値θｃｍｄを設定する。
ガタ幅θｇの学習、および、目標カウント値θｃｍｄの設定等の詳細は、後述する。
【００３１】
駆動制御部５６は、エンコーダカウント値θｅｎが目標カウント値θｃｍｄとなる回転位置にてモータ１０が停止するように、フィードバック制御等により、モータ１０の駆動を制御する。モータ１０の駆動制御の詳細は、どのようであってもよい。
【００３２】
異常判定部５８は、出力軸信号Ｓｇ１、Ｓｇ２の異常を監視する。第１出力軸信号Ｓｇ１が異常である場合、第１異常フラグＸ＿ｅｒｒ１をセットする。第２出力軸信号Ｓｇ２が異常である場合、第２異常フラグＸ＿ｅｒｒ２をセットする。異常フラグＸ＿ｅｒｒ１、Ｘ＿ｅｒｒ２は、後述の第２記憶部６２に記憶される。これにより、異常フラグＸ＿ｅｒｒ１、Ｘ＿ｅｒｒ２は、始動スイッチがオフされても保持される。
【００３３】
異常判定部５８は、第１出力軸信号Ｓｇ１が正常下限値ＴＨ１（例えば０．５［Ｖ］）以下の場合、または、正常上限値ＴＨ２（例えば４．５［Ｖ］）以上の場合、第１出力軸信号Ｓｇ１が異常であると判定し、第１異常フラグＸ＿ｅｒｒ１をセットする。第１出力軸信号Ｓｇ１は、第１異常フラグＸ＿ｅｒｒ１がセットされていれば利用不可であり、セットされていなければ利用可能である。
【００３４】
同様に、異常判定部５８は、第２出力軸信号Ｓｇ２が正常下限値ＴＨ１以下の場合、または、正常上限値ＴＨ２以上の場合、第２出力軸信号Ｓｇ２が異常であると判定し、第２異常フラグＸ＿ｅｒｒ２をセットする。第２出力軸信号Ｓｇ２は、第２異常フラグＸ＿ｅｒｒ２がセットされていれば利用不可であり、セットされていなければ利用可能である。
【００３５】
正常下限値ＴＨ１および正常上限値ＴＨ２は、適宜設定可能である。本実施形態では、第１出力軸信号Ｓｇ１の判定に係る値と第２出力軸信号Ｓｇ２の判定に係る値とは同じとするが、異なっていてもよい。正常下限値ＴＨ１より大きく、正常上限値ＴＨ２未満の範囲を、正常範囲とする。
【００３６】
また、異常判定部５８は、出力軸信号Ｓｇ１、Ｓｇ２が共に正常範囲内であって、第１出力軸信号Ｓｇ１と第２出力軸信号Ｓｇ２との差が差分判定閾値ＴＨｄより大きい場合、出力軸信号Ｓｇ１、Ｓｇ２の一方に異常が生じていると判定する。出力軸信号Ｓｇ１、Ｓｇ２の差が差分判定閾値ＴＨｄより大きい場合、どちらに異常が生じているかの特定ができないため、異常フラグＸ＿ｅｒｒ１、Ｘ＿ｅｒｒ２を共にセットし、出力軸信号Ｓｇ１、Ｓｇ２を、共に利用不可とする。
【００３７】
出力軸信号Ｓｇ１、Ｓｇ２の一方が正常範囲内であって、他方が正常範囲外である場合、正常範囲内である方の出力軸信号Ｓｇ１、Ｓｇ２が正常であるとみなす。
なお、モータ回転角信号ＳｇＥについては、別途異常が監視されているものとし、以下、モータ回転角信号ＳｇＥは正常であるものとする。
【００３８】
報知部５９は、出力軸信号Ｓｇ１、Ｓｇ２の少なくとも一方に異常が生じた場合、シフトバイワイヤシステム１に異常が生じている旨を、運転者に警告する。報知部５９は、例えばインスツルメンタルパネルのウォーニングランプを点灯させ、シフトバイワイヤシステム１に異常が生じていることを警告する。ユーザへの警告方法は、ウォーニングランプの点灯に限らず、音声での案内等、どのような方法でもよい。これにより、修理工場等への持ち込みを促す。
【００３９】
第１記憶部６１は、例えばＲＡＭ等の揮発性メモリである。第１記憶部６１には、始動スイッチを経由して電力が供給される。そのため、第１記憶部６１に記憶された情報は、始動スイッチがオフされると消去される。
第２記憶部６２は、例えばＳＲＡＭ等の揮発性メモリである。第２記憶部６２には、始動スイッチを経由せず、バッテリから直接的に電力が供給される。そのため、第２記憶部６２に記憶された情報は、始動スイッチがオフされても消去されず、保持される。また、第２記憶部６２として、例えばＥＥＰＲＯＭ等の不揮発性メモリを用いてもよい。
なお、図２では、煩雑になることを避けるため、制御線の一部を省略した。
【００４０】
図３は、上段にディテントプレート２１等を模式的に示しており、下段に出力軸信号Ｓｇ１、Ｓｇ２を示している。
図３に示すように、谷部２２１、２２２の中心間の角度設計値Ｋｒ、谷部２２２、２２３の中心間の角度設計値Ｋｎ、および、谷部２２３、２２４の中心間の角度設計値Ｋｄは、図示しないＲＯＭ等に予め記憶されている。また、出力軸信号Ｓｇ１、Ｓｇ２が変化する後述の角度θ１、θ３間の角度設計値Ｋ１、および、出力軸信号Ｓｇ１、Ｓｇ２が変化する角度θ１と第１谷部２２１の中心との間の角度設計値Ｋ２が、ＲＯＭ等に予め記憶されている。さらにまた、壁部２３１、２３２間の角度設計値Ｋ３が、ＲＯＭ等に予め記憶されている。角度設計値Ｋ３は、ディテントローラ２６の可動範囲の設計値と捉えることもできる。
本実施形態では、角度設計値Ｋｎ、Ｋｒ、Ｋｄ、Ｋ１、Ｋ２、Ｋ３は、いずれもエンコーダ１３のカウント値に対応する値とするが、角度換算可能などのような値であってもよい。
【００４１】
出力軸角度θｓは、出力軸１５の回転位置に応じた角度であって、ディテントローラ２６が、第１谷部２２１の中心と第１山部２２６の頂点との間の所定の位置にあるときの角度をθ１、第２山部２２７の頂点に位置するときの角度をθ２、第３山部２２８の頂点と第４谷部２２４の中心との間の所定の位置にあるときの角度をθ３とする。本実施形態では、角度θ１は、パーキングロック機構３０によるパーキングロックを保証するＰロック保証範囲の境界値と同様に設定される。また、角度θ３は、自動変速機５にてドライブレンジの油圧を保証するＤ油圧保証範囲の境界値と同様に設定される。
【００４２】
出力軸角度θｓが角度θ１より小さいとき、出力軸信号Ｓｇ１、Ｓｇ２は、値Ｖ１にて一定である。出力軸角度θｓが角度θ１になると、出力軸信号Ｓｇ１、Ｓｇ２は、値Ｖ１から値Ｖ２に変化する。出力軸角度θｓが角度θ１以上、角度θ２未満の範囲において、出力軸信号Ｓｇ１、Ｓｇ２は、値Ｖ２で一定である。出力軸角度θｓが角度θ２になると、出力軸信号Ｓｇ１、Ｓｇ２は、値Ｖ２から値Ｖ３に変化する。出力軸角度θｓが角度θ２以上、角度θ３未満の範囲において、出力軸信号Ｓｇ１、Ｓｇ２は、値Ｖ３で一定である。出力軸角度θｓが角度θ３になると、出力軸信号Ｓｇ１、Ｓｇ２は、値Ｖ４に変化する。出力軸角度θｓが角度θ３以上のとき、出力軸信号Ｓｇ１、Ｓｇ２は、値Ｖ４にて一定である。
【００４３】
出力軸信号Ｓｇ１、Ｓｇ２の取り得る値Ｖ１、Ｖ２、Ｖ３、Ｖ４は、離散しており、各値の中間値は取らない。また、値Ｖ１と値Ｖ２、値Ｖ２と値Ｖ３、値Ｖ３と値Ｖ４との差は、分解能やセンサ誤差等と比較して、十分に大きい値となるように設定される。すなわち本実施形態では、ディテントローラ２６の谷部２２１〜２２４間の移動に伴い、連続値と見なせない程度に異なっている第１の値から第２の値に値が切り替わることを、「値がステップ的に変化する」と定義している。なお、値Ｖ１と値Ｖ２、値Ｖ２と値Ｖ３、値Ｖ３と値Ｖ４との差は、等しくてもよいし、異なっていてもよい。
なお、本実施形態では、Ｖ１＜Ｖ２＜Ｖ３＜Ｖ４として説明するが、値Ｖ１〜Ｖ４の大小関係は、異なっていてもよい。
【００４４】
本実施形態では、ディテントローラ２６の係合ポジション数が４つであり、ディテントローラ２６の係合位置に応じ、出力軸信号Ｓｇ１、Ｓｇ２が４段階に変化するように、出力軸センサ１６およびターゲット２１５を設ける。すなわち本実施形態では、係合ポジション数と、出力軸信号Ｓｇ１、Ｓｇ２が取り得る出力電圧の段階数とが一致している。
例えば、参考例として、出力軸信号が、出力軸１５の回転位置に応じて連続的に変化するアナログ信号の場合、ＡＤ変換等の処理が必要となる。本実施形態では、出力軸信号Ｓｇ１、Ｓｇ２は、レンジに応じてステップ的に変化する。出力軸信号Ｓｇ１、Ｓｇ２が４段階程度であれば、出力軸センサ１６内におけるＡＤ変換等の処理が不要となるため、出力軸センサ１６の構成を簡素化することができる。
【００４５】
図３の上段に記載の図では、モータ軸１０５と出力軸１５との間の「遊び」を概念的に示している。ここでは、出力軸１５と減速機１４とが一体となっており、モータ軸１０５が減速機１４の遊びの範囲で移動可能であるものとして記載しているが、モータ軸１０５と減速機１４とが一体となっており、減速機１４と出力軸１５との間に「遊び」が存在しているように構成しても差し支えない。ここでは、モータ軸１０５と出力軸１５との間の「遊び」は、減速機１４のギアとモータ軸１０５との間に存在するものを中心に説明するが、「遊び」とはモータ軸１０５と出力軸１５との間に存在する遊びやガタ等の合計と捉えることができる。以下適宜、モータ軸１０５と出力軸１５との間の遊びの合計を、ガタ幅θｇとする。
【００４６】
また、実際には、ディテントプレート２１が出力軸１５と一体に回転することで、ディテントローラ２６が谷部２２１〜２２４間を移動するが、図３では、ディテントローラ２６が出力軸１５とともに移動するものとして図示した。
図３において、ディテントローラ２６が矢印Ａ１方向に移動するようにディテントプレート２１を回転させる回転方向を第１方向、矢印Ａ２方向に移動するようにディテントプレート２１を回転させる回転方向を第２方向とする。
【００４７】
モータ軸１０５と出力軸１５との間には、減速機１４が設けられており、ギアバックラッシュを含む「遊び」が存在している。本実施形態では、モータ１０はＤＣブラシレスモータであって、モータ１０への通電が停止されているとき、コギングトルク等の影響により、遊びの範囲内にてモータ軸１０５が回転し、モータ軸１０５と出力軸１５とが離間することがある。また、ディテントローラ２６が、谷部２２１〜２２４の中心からずれた位置にてモータ１０の通電がオフされた場合、コギングトルクの影響により、ディテントスプリング２５のスプリング力にて谷部２２１〜２２４の中心に適切に落とし込めない虞がある。
そこで本実施形態では、出力軸信号Ｓｇ１、Ｓｇ２およびエンコーダカウント値θｅｎに基づき、ガタ幅θｇを学習し、ガタ幅θｇを用いて目標カウント値θｃｍｄを設定することで、精度よくモータ１０の停止位置を制御している。
【００４８】
出力軸信号Ｓｇ１、Ｓｇ２の少なくとも一方が利用可能である場合の正常時学習処理を説明する。
始動スイッチがオフされているとき、シフトレンジはＰレンジであって、ディテントローラ２６は、第１谷部２２１の中心に位置している。このとき、モータ１０はコギングトルクによりガタ幅θｇの範囲内にて回転する虞があり、始動直後において、モータ１０がガタ幅θｇ内のどの位置にあるかの特定は困難である。
【００４９】
矢印Ａ１で示すように、目標シフトレンジがＰレンジからＰレンジ以外のレンジに切り替えられると、ディテントローラ２６は、ディテントプレート２１の回転により、第１谷部２２１から第１山部２２６側へ移動する。ディテントローラ２６が第１谷部２２１の中心を抜けて、いわゆる「山登り状態」となっているとき、モータ軸１０５と出力軸１５とが一体となって回転している。
【００５０】
本実施形態では、出力軸信号Ｓｇ１、Ｓｇ２が変化する変化ポイントである角度θ１は、第１谷部２２１の中心と第１山部２２６の頂点との間に設定されている。すなわち、ディテントローラ２６がＰレンジに対応する第１谷部２２１に嵌まり合っている状態から、ディテントプレート２１を第１方向に回転させるとき、最初に出力軸信号Ｓｇ１、Ｓｇ２が変化するポイントにおいて、モータ軸１０５は、ガタ幅θｇの一端側にて、減速機１４に当接している状態である。このときのエンコーダカウント値θｅｎを、第１基準角度θｅｎＬとして、第１記憶部６１に記憶しておく。
【００５１】
また、矢印Ａ２で示すように、目標シフトレンジがＤレンジからＤレンジ以外のレンジに切り替えられると、ディテントローラ２６は、ディテントプレート２１の回転により、第４谷部２２４から第３山部２２８へ移動する。ディテントローラ２６が第４谷部２２４の中心を抜けて、いわゆる「山登り状態」となっているとき、モータ軸１０５と出力軸１５とが一体となって回転している。
【００５２】
本実施形態では、出力軸信号Ｓｇ１、Ｓｇ２が変化する変化ポイントである角度θ３は、第３山部２２８の頂点と第４谷部２２４の中心との間に設定されている。すなわち、ディテントローラ２６が第４谷部２２４に嵌まり合っている状態から、ディテントプレート２１を第２方向に回転させるとき、最初に出力軸信号Ｓｇ１、Ｓｇ２が変化するポイントにおいて、モータ軸１０５は、ガタ幅θｇの他端側にて、減速機１４に当接している。このときのエンコーダカウント値θｅｎを、第２基準角度θｅｎＲとして、第１記憶部６１に記憶しておく。
【００５３】
正常時学習処理では、角度θ１と角度θ３との間の角度は、角度設計値Ｋ１として、第２記憶部６２に記憶されている。したがって、第１基準角度θｅｎＬ、第２基準角度θｅｎＲ、および、角度設計値Ｋ１に基づき、正常時補正値としての正常時ガタ幅学習値θｇａを演算可能である（式（１）参照）。演算された正常時ガタ幅学習値θｇａは、第２記憶部６２に記憶される。
θｇａ＝｛Ｋ１−（θｅｎＲ−θｅｎＬ）｝    ・・・（１）
【００５４】
また、第１変化ポイントである角度θ１と第１谷部２２１の中心との間の角度設計値Ｋ２が予め記憶されている。したがって、第１基準角度θｅｎＬ、角度設計値Ｋ２、および、正常時ガタ幅学習値θｇａに基づき、ディテントローラ２６が第１谷部２２１に嵌まり合っており、モータ軸１０５がガタ幅θｇの中心に位置するときのエンコーダカウント値であるＰレンジ中心カウント値θｐを演算可能である（式（２）参照）。以下適宜、ディテントローラ２６が谷部２２１〜２２４の中心に嵌まり合っているときのガタ幅θｇの中心にモータ軸１０５が位置している状態を、モータ１０が谷部２２１〜２２４の中心に位置している、とする。
【００５５】
また、各谷部２２１〜２２４の中心間の角度は、角度設計値Ｋｒ、Ｋｎ、Ｋｄとして記憶されているので、モータ１０が谷部２２２、２２３、２２４の中心に位置するときのエンコーダカウント値であるＲレンジ中心カウント値θｒ、Ｎレンジ中心カウント値θｎおよびＤレンジ中心カウント値θｄも演算可能である（式（３）〜（５）参照）。
【００５６】
θｐ＝θｅｎＬ−Ｋ２−（θｇａ／２）    ・・・（２）
θｒ＝θｅｎＬ−Ｋ２−（θｇａ／２）＋Ｋｒ    ・・・（３）
θｎ＝θｅｎＬ−Ｋ２−（θｇａ／２）＋Ｋｒ＋Ｋｎ    ・・・（４）
θｄ＝θｅｎＬ−Ｋ２−（θｇａ／２）＋Ｋｒ＋Ｋｎ＋Ｋｄ    ・・・（５）
【００５７】
そして、目標シフトレンジに応じた中心カウント値θｐ、θｒ、θｎ、θｄを目標カウント値θｃｍｄとし、エンコーダカウント値θｅｎが目標カウント値θｃｍｄとなるようにモータ１０を制御することで、モータ１０を谷部２２１〜２２４の中心にて停止させることができる。モータ１０が谷部２２１〜２２４の中心にて停止していれば、コギングトルクの影響を受けることなく、ディテントスプリング２５のスプリング力にて、ディテントローラ２６を目標シフトレンジに応じた谷部２２１〜２２４に適切にはめ込むことができる。
【００５８】
出力軸信号Ｓｇ１、Ｓｇ２が共に利用不可である場合、異常時学習処理により、ガタ幅θｇを学習する。異常時学習処理では、ディテントローラ２６が壁部２３１に突き当たるまでモータ１０を回転させたときのエンコーダカウンタ値θｅｎ＿Ｌｌｉｍ、ディテントローラ２６が壁部２３２に突き当たるまでモータ１０を回転させたときのエンコーダカウント値θｅｎ＿Ｒｌｉｍ、および、角度設計値Ｋ３に基づき、異常時補正値としての異常時ガタ幅学習値θｇｂを演算する（式（６）参照）。ディテントローラ２６が壁部２３１、２３２に突き当たるまでモータ１０を回転させることが、「モータを可動範囲の限界位置まで回転させる」ことに対応する。
θｇｂ＝θｅｎ＿Ｒｌｉｍ−θｅｎ＿Ｌｌｉｍ−Ｋ３    ・・・（６）
【００５９】
また例えば、｛θｅｎ＿Ｌｉｍ＋（１／２）×θｇｂ｝をＰレンジ中心カウント値とすれば、設計値Ｋｒ、Ｋｎ、Ｋｄを用い、各レンジの中心カウント値θｒ、θｎ、θｄを演算可能である。
本実施形態の異常時学習処理は、例えば特許３８４９８６４号等に開示されている、いわゆる「突き当て制御」あるいは「壁当て制御」といわれる学習処理である。異常時学習処理における壁当て制御、および、出力軸信号Ｓｇ１、Ｓｇ２が異常である場合のモータ制御処理の詳細は、どのようであってもよい。
なお、異常時ガタ幅学習値θｇｂは、第１記憶部６１または第２記憶部６２に記憶された値が目標設定部５５にて用いられるが、図２では、簡略化のため、目標設定部５５に直接的に入力されるように、破線にて記載している。
【００６０】
壁当て制御によるガタ幅θｇの学習処理では、比較的大きなトルクでモータ１０を回転させて、ディテントローラ２６を壁部２３１、２３２に当接させるため、ディテントプレート２１やディテントローラ２６等にストレスがかかる。そこで本実施形態では、出力軸信号Ｓｇ１、Ｓｇ２が正常である場合、壁当て制御を行うことなく、ガタ幅θｇを学習している。これにより、ディテントプレート２１やディテントローラ２６等にかかるストレスを低減することができる。
【００６１】
本実施形態のモータ制御処理を図４のフローチャートに基づいて説明する。以下、ステップＳ１０１の「ステップ」を省略し、単に記号「Ｓ」と記す。図中、始動スイッチを「ＩＧ」と記載する。また、各種フラグがセットされている状態を「１」、セットされていない状態を「０」とする。
【００６２】
Ｓ１０１にて、始動スイッチがオフからオンに切り替わると、Ｓ１０２では、学習部５３は、異常フラグＸ＿ｅｒｒ１、Ｘ＿ｅｒｒ２が共にセットされているか否かを判断する。異常フラグＸ＿ｅｒｒ１、Ｘ＿ｅｒｒ２の少なくとも一方がセットされていないと判断された場合（Ｓ１０２：ＮＯ）、Ｓ２００へ移行する。異常フラグＸ＿ｅｒｒ１、Ｘ＿ｅｒｒ２が共にセットされていると判断された場合（Ｓ１０２：ＹＥＳ）、Ｓ１０３へ移行する。
【００６３】
Ｓ１０３では、学習部５３は、異常時学習処理にて、異常時ガタ幅学習値θｇｂを学習する。
Ｓ１０４では、目標設定部５５は、異常時ガタ幅学習値θｇｂを用いて目標カウント値θｃｍｄを設定する。駆動制御部５６は、エンコーダカウント値θｅｎが目標カウント値θｃｍｄとなるように、モータ１０の駆動を制御する。
【００６４】
Ｓ１０５では、ＥＣＵ５０は、始動スイッチがオフされたか否かを判断する。始動スイッチがオフされていないと判断された場合（Ｓ１０５：ＮＯ）、Ｓ１０４へ戻り、モータ１０の駆動制御を継続する。始動スイッチがオフされたと判断された場合（Ｓ１０５：ＹＥＳ）、本制御を終了する。
【００６５】
Ｓ２００では、学習部５３は、正常時学習処理を行う。正常時学習処理を説明するフローチャートを図５に示す。正常時学習処理では、異常フラグＸ＿ｅｒｒ１、Ｘ＿ｅｒｒ２を参照し、異常が生じていない出力軸信号Ｓｇ１、Ｓｇ２を用いる。また、異常フラグＸ＿ｅｒｒ１、Ｘ＿ｅｒｒ２が共にセットされておらず、出力軸信号Ｓｇ１、Ｓｇ２が共に正常である場合、出力軸信号Ｓｇ１、Ｓｇ２のいずれを用いてもよいが、本実施形態では、出力軸信号Ｓｇ１が正常であれば、出力軸信号Ｓｇ１を優先的に用いる。
【００６６】
Ｓ２０１では、学習部５３は、第１学習済みフラグＸ＿ＬＮ１がセットされているか否かを判断する。第１学習済みフラグＸ＿ＬＮ１は、第１基準角度θｅｎＬが第１記憶部６１に記憶されているときにセットされる。なお、第１記憶部６１は揮発性メモリであって、始動スイッチがオフされると、第１基準角度θｅｎＬは消去され、第１学習済みフラグＸ＿ＬＮ１はリセットされる。第１学習済みフラグＸ＿ＬＮ１がセットされていると判断された場合（Ｓ２０１：ＹＥＳ）、Ｓ２０８へ移行する。第１学習済みフラグＸ＿ＬＮ１がセットされていないと判断された場合（Ｓ２０１：ＮＯ）、Ｓ２０２へ移行する。
【００６７】
Ｓ２０２では、学習部５３は、目標シフトレンジがＰレンジからＰレンジ以外のレンジに切り替わったか否かを判断する。ここでは、前回処理における目標シフトレンジがＰレンジであって、今回処理における目標シフトレンジがＰレンジ以外である場合、肯定判断し、それ以外の場合、否定判断する。目標シフトレンジがＰレンジからＰレンジ以外のレンジに切り替わったと判断された場合（Ｓ２０２：ＹＥＳ）、Ｓ２０３へ移行し、第１学習中フラグＸ＿ＥＸ１をセットする。第１学習中フラグＸ＿ＥＸ１は、第１基準角度θｅｎＬの学習中であることを示すフラグである。目標シフトレンジが切り替わっていないと判断された場合（Ｓ２０２：ＮＯ）、Ｓ２０４へ移行する。
【００６８】
Ｓ２０４では、学習部５３は、第１学習中フラグＸ＿ＥＸ１がセットされているか否かを判断する。第１学習中フラグＸ＿ＥＸ１がセットされていないと判断された場合（Ｓ２０４：ＮＯ）、Ｓ２０８へ移行する。第１学習中フラグＸ＿ＥＸ１がセットされていると判断された場合（Ｓ２０４：ＹＥＳ）、Ｓ２０５へ移行する。
【００６９】
Ｓ２０５では、学習部５３は、出力軸信号Ｓｇ１、Ｓｇ２が、値Ｖ１から値Ｖ２に変化したか否かを判断する。出力軸信号Ｓｇ１、Ｓｇ２が値Ｖ１から変化していないと判断された場合（Ｓ２０５：ＮＯ）、Ｓ２０８へ移行する。出力軸信号Ｓｇ１、Ｓｇ２が値Ｖ１から値Ｖ２に変化したと判断された場合（Ｓ２０５：ＹＥＳ）、Ｓ２０６へ移行する。
【００７０】
Ｓ２０６では、学習部５３は、現在のエンコーダカウント値θｅｎを、第１基準角度θｅｎＬとして、第１記憶部６１に記憶させる。
Ｓ２０７では、学習部５３は、第１学習済みフラグＸ＿ＬＮ１をセットし、第１学習中フラグＸ＿ＥＸ１をリセットする。
【００７１】
Ｓ２０８では、学習部５３は、第２学習済みフラグＸ＿ＬＮ２がセットされているか否かを判断する。第２学習済みフラグＸ＿ＬＮ２は、正常時ガタ幅学習値θｇａが第２記憶部６２に記憶されているときにセットされる。第２学習済みフラグＸ＿ＬＮ２は、一旦、正常時ガタ幅学習値θｇａの学習が完了した後は、始動スイッチがオフされてもリセットされない。また、第２学習済みフラグＸ＿ＬＮ２は、バッテリが取り外されたり、バッテリ上がり等が生じたりすることで、正常時ガタ幅学習値θｇａが消去された場合はリセットされる。さらにまた、第２学習済みフラグＸ＿ＬＮ２は、正常時ガタ幅学習値θｇａの前回の学習から、始動スイッチのオフオンの切り替えが、所定回数（例えば、数千回）行われたときにリセットされ、正常時ガタ幅学習値θｇａの再学習が行われる。第２学習済みフラグＸ＿ＬＮ２がセットされていると判断された場合（Ｓ２０８：ＹＥＳ）、Ｓ２０９以降の処理を行わず、本ルーチンを終了し、図４中のＳ１０７へ移行する。第２学習済みフラグＸ＿ＬＮ２がセットされていないと判断された場合（Ｓ２０８：ＮＯ）、Ｓ２０９へ移行する。
【００７２】
Ｓ２０９では、学習部５３は、目標シフトレンジがＤレンジからＤレンジ以外のレンジに切り替わったか否かを判断する。ここでは、前回処理における目標シフトレンジがＤレンジであって、今回処理における目標シフトレンジがＤレンジ以外である場合、肯定判断し、それ以外の場合、否定判断し、Ｓ２１１へ移行する。目標シフトレンジがＤレンジからＤレンジ以外のレンジに切り替わったと判断された場合（Ｓ２０９：ＹＥＳ）、Ｓ２１０へ移行し、第２学習中フラグＸ＿ＥＸ２をセットする。第２学習中フラグＸ＿ＥＸ２は、第２基準角度θｅｎＲの学習中であることを示すフラグである。
【００７３】
Ｓ２１１では、学習部５３は、第２学習中フラグＸ＿ＥＸ２がセットされているか否かを判断する。第２学習中フラグＸ＿ＥＸ２がセットされていないと判断された場合（Ｓ２１１：ＮＯ）、本ルーチンを終了し、図４中のＳ１０７へ移行する。第２学習中フラグＸ＿ＥＸ２がセットされていると判断された場合（Ｓ２１１：ＹＥＳ）、Ｓ２１２へ移行する。
【００７４】
Ｓ２１２では、学習部５３は、出力軸信号Ｓｇ１、Ｓｇ２が値Ｖ４から値Ｖ３に変化したか否かを判断する。出力軸信号Ｓｇ１、Ｓｇ２が値Ｖ４であると判断された場合（Ｓ２１２：ＮＯ）、本ルーチンを終了し、図４中のＳ１０７へ移行する。出力軸信号Ｓｇ１、Ｓｇ２が値Ｖ４から値Ｖ３に変化したと判断された場合（Ｓ２１２：ＹＥＳ）、Ｓ２１３へ移行する。
【００７５】
Ｓ２１３では、学習部５３は、現在のエンコーダカウント値θｅｎを、第２基準角度θｅｎＲとする。
Ｓ２１４では、学習部５３は、第２学習済みフラグＸ＿ＬＮ２をセットし、第２学習中フラグＸ＿ＥＸ２をリセットする。
Ｓ２１５では、学習部５３は、式（１）により正常時ガタ幅学習値θｇａを演算し、演算された値を第２記憶部６２に記憶させる。
【００７６】
図４に戻り、Ｓ２００における正常時学習処理に続いて移行するＳ１０７では、ＥＣＵ５０は、正常時ガタ幅学習値θｇａの学習が完了したか否かを判断する。正常時ガタ幅学習値θｇａの学習が完了していないと判断された場合（Ｓ１０７：ＮＯ）、Ｓ２００へ戻り、正常時学習処理を継続する。なお、正常時ガタ幅学習値θｇａの学習が完了するまでの間は、例えば角度設計値Ｋｒ、Ｋｎ、Ｋｄ等に基づいて目標カウント値θｃｍｄを設定し、モータ１０の駆動を制御する。正常時ガタ幅学習値θｇａの学習が完了したと判断された場合（Ｓ１０７：ＹＥＳ）、Ｓ３００へ移行する。
【００７７】
Ｓ３００では、異常判定部５８は、出力軸信号Ｓｇ１、Ｓｇ２の異常判定処理を行う。異常判定処理を説明するフローチャートを図６に示す。
Ｓ３０１では、異常判定部５８は、第１出力軸信号Ｓｇ１が正常範囲内か否かを判断する。詳細には、異常判定部５８は、第１出力軸信号Ｓｇ１が正常下限値ＴＨ１より大きく、正常上限値ＴＨ２より小さいか否かを判断する。第１出力軸信号Ｓｇ１が正常範囲外であると判断された場合（Ｓ３０１：ＮＯ）、Ｓ３０４へ移行する。第１出力軸信号Ｓｇ１が正常範囲内であると判断された場合（Ｓ３０１：ＹＥＳ）、Ｓ３０２へ移行する。
【００７８】
Ｓ３０２では、異常判定部５８は、第１出力軸信号Ｓｇ１と第２出力軸信号Ｓｇ２との差の絶対値が差分判定閾値ＴＨｄより小さいか否かを判断する。第１出力軸信号Ｓｇ１と第２出力軸信号Ｓｇ２との差の絶対値が差分判定閾値ＴＨｄ以上であると判断された場合（Ｓ３０２：ＮＯ）、出力軸信号Ｓｇ１、Ｓｇ２に偏差異常が生じていると判定し、Ｓ３０５へ移行する。第１出力軸信号Ｓｇ１と第２出力軸信号Ｓｇ２との差の絶対値が差分判定閾値ＴＨｄより小さいと判断された場合（Ｓ３０２：ＹＥＳ）、Ｓ３０３へ移行する。
Ｓ３０３では、異常判定部５８は、異常フラグＸ＿ｅｒｒ１、Ｘ＿ｅｒｒ２を共にリセットする。
【００７９】
第１出力軸信号Ｓｇ１が正常範囲外であると判断された場合（Ｓ３０１：ＮＯ）に移行するＳ３０４では、異常判定部５８は、第２出力軸信号Ｓｇ２が正常範囲内か否かを判断する。詳細には、異常判定部５８は、第２出力軸信号Ｓｇ２が正常下限値ＴＨ１より大きく、正常上限値ＴＨ２より小さいか否かを判断する。第２出力軸信号Ｓｇ２が正常範囲内であると判断された場合（Ｓ３０４：ＹＥＳ）、Ｓ３０６へ移行する。第２出力軸信号Ｓｇ２が正常範囲外であると判断された場合（Ｓ３０４：ＮＯ）、Ｓ３０５へ移行する。
Ｓ３０５では、異常判定部５８は、異常フラグＸ＿ｅｒｒ１、Ｘ＿ｅｒｒ２を共にセットする。
Ｓ３０６では、異常判定部５８は、第１異常フラグＸ＿ｅｒｒ１をセットし、第２異常フラグＸ＿ｅｒｒ２をリセットする。
【００８０】
図４に戻り、Ｓ３００の異常判定処理に続いて移行するＳ１０９では、報知部５９は、異常フラグＸ＿ｅｒｒ１、Ｘ＿ｅｒｒ２の少なくとも一方がセットされているか否かを判断する。異常フラグＸ＿ｅｒｒ１、Ｘ＿ｅｒｒ２が共にセットされていないと判断された場合（Ｓ１０９：ＮＯ）、Ｓ４００へ移行する。異常フラグＸ＿ｅｒｒ１、Ｘ＿ｅｒｒ２の少なくとも一方がセットされていると判断された場合（Ｓ１０９：ＹＥＳ）、Ｓ１１０へ移行する。
Ｓ１１０では、報知部５９は、シフトバイワイヤシステム１に異常が生じている旨を、ユーザに警告する。
【００８１】
Ｓ４００では、通常時のモータ制御を行う。通常時モータ制御処理のフローチャートを図７に示す。
Ｓ４０１では、目標設定部５５は、シフトスイッチ等から入力されるドライバ要求シフトレンジ、車速、および、ブレーキ信号等を取得する。
Ｓ４０２では、目標設定部５５は、ドライバ要求シフトレンジ、車速、および、ブレーキ信号等に基づき、目標シフトレンジを設定する。
【００８２】
Ｓ４０３では、目標設定部５５は、目標シフトレンジに応じ、式（２）〜（５）にて、目標カウント値θｃｍｄを設定する。なお、正常時ガタ幅学習値θｇａが演算された後、予め中心カウント値θｐ、θｒ、θｎ、θｄを演算して第１記憶部６１等に記憶しておき、記憶されている値を読み込むようにしてもよい。
Ｓ４０４では、駆動制御部５６は、エンコーダカウント値θｅｎが目標カウント値θｃｍｄにて停止するように、モータ１０の駆動を制御する。
【００８３】
図４に戻り、Ｓ１１２では、ＥＣＵ５０は、始動スイッチがオフされたか否かを判断する。始動スイッチがオフされていないと判断された場合（Ｓ１１２：ＮＯ）、Ｓ３００に戻る。始動スイッチがオフされたと判断された場合（Ｓ１１２：ＹＥＳ）、本制御を終了する。
【００８４】
本実施形態では、正常時学習処理および異常時学習処理は、始動スイッチがオンされたとき、初期学習として実行される。正常時学習処理にて学習された基準角度θｅｎＬ、θｅｎＲは第１記憶部６１に記憶され、正常時ガタ幅学習値θｇａは第２記憶部６２に記憶される。モータ１０は、第１基準角度θｅｎＬおよび正常時ガタ幅学習値θｇａに基づいて駆動が制御される。第１記憶部６１に記憶される第１基準角度θｅｎＬは、始動スイッチがオンされている期間は保持される。そのため、始動スイッチのオン中に出力軸信号Ｓｇ１、Ｓｇ２が利用不可になる異常が生じたとしても、既に学習されている第１基準角度θｅｎＬおよび正常時ガタ幅学習値θｇａを用いてモータ１０の駆動制御を継続することができる。したがって、本実施形態では、出力軸信号Ｓｇ１、Ｓｇ２が共に異常になったとしても、始動スイッチのオンが継続されている間は、壁当て制御には切り替えない。
【００８５】
また、始動スイッチがオフされると、エンコーダ１３がリセットされ、第１基準角度θｅｎＬが消去されるので、正常時ガタ幅学習値θｇａが第２記憶部６２に保持されていたとしても利用することができない。そこで本実施形態では、始動スイッチがオンされたとき、異常フラグＸ＿ｅｒｒ１、Ｘ＿ｅｒｒ２が共にセットされており、出力軸信号Ｓｇ１、Ｓｇ２が利用不可であれば、異常時学習処理にて、異常時ガタ幅学習値θｇｂを学習する。これにより、例えば出力軸センサ１６の故障等により、出力軸信号Ｓｇ１、Ｓｇ２が共に利用できない場合であっても、シフトレンジの切替制御を継続可能であって、退避走行可能である。
【００８６】
以上説明したように、本実施形態のシフトレンジ制御装置４０は、モータ１０の駆動を制御することでシフトレンジを切り替えるものであって、角度演算部５１と、信号取得部５２と、学習部５３と、記憶部６１、６２と、目標設定部５５と、駆動制御部５６と、異常判定部５８と、を備える。
【００８７】
角度演算部５１は、モータ１０の回転位置を検出するエンコーダ１３から出力されるモータ回転角信号ＳｇＥを取得し、エンコーダカウント値θｅｎを演算する。信号取得部５２は、モータ１０の回転が伝達される出力軸１５の回転位置を検出する出力軸センサ１６から出力され、出力軸１５の回転位置に応じて値がステップ的に変化する出力軸信号Ｓｇ１、Ｓｇ２を取得する。
【００８８】
学習部５３は、モータ角度目標値の演算に用いられる位置補正値を学習する。本実施形態では、正常時ガタ幅学習値θｇａおよび異常時ガタ幅学習値θｇｂが「位置補正値」に対応する。なお、第１基準角度θｅｎＬも目標カウント値θｃｍｄの演算に用いており、この意味で、第１基準角度θｅｎＬそのものについても、位置補正値の概念に含まれると見なしてもよい。記憶部６１、６２は、正常時ガタ幅学習値θｇａおよび異常時ガタ幅学習値θｇｂを記憶する。
【００８９】
目標設定部５５は、目標シフトレンジに応じ、正常時ガタ幅学習値θｇａまたは異常時ガタ幅学習値θｇｂを用いて目標カウント値θｃｍｄを設定する。駆動制御部５６は、エンコーダカウント値θｅｎが目標カウント値θｃｍｄとなるように、モータ１０の駆動を制御する。異常判定部５８は、出力軸信号Ｓｇ１、Ｓｇ２の利用可否を判定する。
【００９０】
学習部５３は、始動スイッチをオンしたとき、少なくとも１つの出力軸信号Ｓｇ１、Ｓｇ２が利用可能である場合、モータ１０を第１方向に回転させたときに出力軸信号Ｓｇ１、Ｓｇ２が変化するタイミングのエンコーダカウント値θｅｎである第１基準角度θｅｎＬ、および、モータ１０を第１方向と反対方向である第２方向に回転させたときに出力軸信号Ｓｇ１、Ｓｇ２が変化するタイミングのエンコーダカウント値θｅｎである第２基準角度θｅｎＲの少なくとも一方に基づき、正常時ガタ幅学習値θｇａを位置補正値として学習する。また、全ての出力軸信号Ｓｇ１、Ｓｇ２が利用不可と判定されてから始動スイッチがオフされるまでの間、目標設定部５５は、第２記憶部６２に記憶されている正常時ガタ幅学習値θｇａを用いて目標カウント値θｃｍｄを設定する。
【００９１】
出力軸信号Ｓｇ１、Ｓｇ２は、出力軸１５の回転位置に応じてステップ変化する信号であって、出力軸信号Ｓｇ１、Ｓｇ２が変化するタイミングのエンコーダカウント値θｅｎである基準角度θｅｎＬ、θｅｎＲの少なくとも一方に基づいてガタ幅θｇを学習している。また、学習された学習値θｇａ、θｇｂに基づいて目標カウント値θｃｍｄを設定することで、モータ１０を駆動し始めたときに、モータ軸１０５がガタ内のいずれの位置ある場合であっても、モータ１０を谷部２２１〜２２４の中心となるように、高精度の位置決め制御可能である。これにより、ディテントローラ２６を目標シフトレンジに応じた谷部２２１〜２２４に確実に嵌め込むことができる。
【００９２】
また、出力軸信号Ｓｇ１、Ｓｇ２が利用不可になった場合であっても、始動スイッチがオンされている間は、壁当て制御に移行せず、正常時ガタ幅学習値θｇａを用いた目標カウント値θｃｍｄの設定を継続し、モータ１０の駆動を制御する。これにより、出力軸信号Ｓｇ１、Ｓｇ２に異常が生じた場合であっても、モータ１０の駆動を適切に継続可能である。また、出力軸信号Ｓｇ１、Ｓｇ２が利用不可になった場合に、速やかに壁当て制御に移行する場合と比較し、シフトレンジ切替機構２０にかかるストレスを低減することができる。
【００９３】
学習部５３は、始動スイッチをオンしたとき、全ての出力軸信号Ｓｇ１、Ｓｇ２が利用不可である場合、モータ１０を可動範囲の限界位置まで回転させたときのエンコーダカウント値θｅｎに基づいて演算される異常時ガタ幅学習値θｇｂを位置補正値として学習する。
これにより、全ての出力軸信号Ｓｇ１、Ｓｇ２が利用不可となった場合であっても、壁当て制御にてガタ幅θｇを学習することで、シフトレンジの切替制御を継続可能であるので、退避走行を確保可能である。
【００９４】
出力軸１５は、シフトレンジに応じてディテントローラ２６が係合する複数の谷部２２１〜２２４、および、谷部２２１〜２２４の間に設けられる山部２２６〜２２８が形成されるディテントプレート２１と一体に回転する。出力軸信号Ｓｇ１、Ｓｇ２は、ディテントローラ２６が隣接する谷部２２１〜２２４に移動するとき、移動の前後で異なる値となるように、ステップ的に変化する。
これにより、シフトレンジに応じた出力軸１５の回転位置を適切に検出することができる。
【００９５】
第１方向は、ＰレンジからＰレンジ以外のレンジに切り替えるときの回転部材の回転方向である。山部２２６〜２２８のＰレンジ側の谷部をＰレンジ側谷部とし、Ｐレンジと反対側の谷部を反Ｐレンジ側谷部とする。
出力軸信号Ｓｇ１、Ｓｇ２は、少なくとも１箇所において、ディテントローラ２６がＰレンジ側谷部の中心と山部の頂点との間の所定位置にあるときに値が変化する。本実施形態では、出力軸信号Ｓｇ１、Ｓｇ２は、ディテントローラ２６が、第１山部２２６のＰレンジ側谷部である第１谷部２２１の中心と第１山部２２６の頂点との間にて値が変化する。第１基準角度θｅｎＬは、ディテントローラ２６が第１谷部２２１の中心から第１山部２２６の頂点に向かって移動しているときに出力軸信号Ｓｇ１、Ｓｇ２の値が変化するタイミングにおけるエンコーダカウント値θｅｎである。
【００９６】
出力軸信号Ｓｇ１、Ｓｇ２は、少なくとも１箇所において、ディテントローラ２６が反Ｐレンジ側谷部の中心と山部の頂点との間の所定位置にあるときに値が変化する。本実施形態では、出力軸信号Ｓｇ１、Ｓｇ２は、ディテントローラ２６が、第３山部２２８の反Ｐレンジ側谷部である第４谷部２２４の中心と第３山部２２８の頂点との間にて値が変化する。第２基準角度θｅｎＲは、ディテントローラ２６が第４谷部２２４の中心から第３山部２２８の頂点に向かって移動しているときに出力軸信号Ｓｇ１、Ｓｇ２の値が変化するタイミングにおけるエンコーダカウント値θｅｎである。
【００９７】
ディテントプレート２１の回転方向が第１方向であって、ディテントローラ２６が、第１谷部２２１の中心と第１山部２２６の頂点との間にあるとき、進行方向側にガタ寄せされた状態にて、モータ軸１０５と出力軸１５とが一体に回転している。
また、ディテントプレート２１の回転方向が第２方向であって、ディテントローラ２６が、第４谷部２２４の中心と第３山部２２８の頂点との間にあるとき、進行方向側にガタ寄せされた状態にて、モータ軸１０５と出力軸１５とが一体に回転している。
したがって、モータ軸１０５と出力軸１５とが一体に回転しているときのエンコーダカウント値θｅｎを用いることで、ガタ幅θｇを適切に学習することができる。
【００９８】
シフトレンジ制御装置４０は、出力軸信号Ｓｇ１、Ｓｇ２の少なくとも一方が利用不可であると判定された場合、シフトバイワイヤシステム１に異常が生じていることを警告する報知部５９を有する。これにより、シフトバイワイヤシステム１に異常が生じていることを適切にユーザに報知可能であって、ユーザに早期の修理を促すことができる。
【００９９】
（他の実施形態）
上記実施形態では、学習部は、正常時学習処理において、第１基準角度および第２基準角度に基づき、ガタ幅を学習している。他の実施形態では、例えば設計値を用いることで、第１基準角度または第２基準角度の学習を省略してもよい。
上記実施形態では、第１基準角度は、ＰレンジからＰレンジ以外のレンジに切り替えるときに学習される。他の実施形態では、ディテントローラ２６が第２谷部２２２の中心と第２山部２２７の頂点との間となるときに出力軸信号の値が変化するようにし、ＲレンジからＮレンジまたはＤレンジに切り替える際、当該変化タイミングにおけるモータ角度を第１基準角度としてもよい。また、ディテントローラ２６が第３谷部２２３の中心と第３山部２２８の頂点との間となるときに出力軸信号の値が変化するようにし、ＮレンジからＤレンジに切り替える際、当該変化タイミングにおけるモータ角度を第１基準角度としてもよい。
【０１００】
上記実施形態では、第２基準角度は、ＤレンジからＤレンジ以外のレンジに切り替えるときに学習される。他の実施形態では、ディテントローラ２６が第３谷部２２３と第２山部２２７の頂点との間となるときに出力軸信号の値が変化するようにし、ＮレンジからＲレンジまたはＰレンジに切り替える際、当該変化タイミングにおけるモータ角度を第２基準角度としてもよい。また、ディテントローラ２６が第２谷部２２２と第１山部２２６の頂点との間となるときに出力軸信号の値が変化するようにし、ＲレンジからＰレンジに切り替える際、当該変化タイミングにおけるモータ角度を第２基準角度としてもよい。
他の実施形態では、複数箇所のＰレンジ側谷部の中心と山部の頂点との間にて出力軸信号が変化するように構成してもよい。また、複数箇所の反Ｐレンジ側谷部の中心と山部の頂点との間にて出力軸信号が変化するように構成してもよい。
【０１０１】
上記実施形態では、出力軸信号が変化する角度θ１は、Ｐロック保証範囲と同様に設定される。他の実施形態では、出力軸信号が変化する角度θ１は、Ｐロック保証範囲とは異なっていてもよい。また、出力軸信号が変化する角度θ１は、Ｄ油圧保証範囲と同様に設定される。他の実施形態では、出力軸信号が変化する角度θ３は、Ｄ油圧保証範囲とは異なっていてもよい。
【０１０２】
上記実施形態では、第２基準角度および正常時ガタ幅学習値の学習は、正常時ガタ幅学習値が記憶部に記憶されていないとき、および、前回の学習から始動スイッチのオンオフ切り替えが所定回数行われたときに実行される。他の実施形態では、第２基準角度および正常時ガタ幅学習値の学習頻度は、これに限らず、例えば第１基準角度と同様、始動スイッチがオンされるごとに実行されるようにしてもよい。
【０１０３】
上記実施形態では、位置補正値は、モータ軸と出力軸との間の遊びの合計に相当するガタ幅に応じた値である正常時ガタ幅学習値、および、異常時ガタ幅学習値である。他の実施形態では、補正値は、ガタ幅を演算可能などのような値であってもよく、例えば、ガタの中心からガタ寄せ位置までに対応する値、すなわち（θｇａ／２）、（θｇｂ／２）等としてもよい。また位置補正値は、第１基準角度および第２基準角度そのものであってもよい。例えば、出力軸信号が正常であれば、第１基準角度を位置補正値とし、第１基準角度および、出力軸信号が変化する変化ポイントと目標シフトレンジに応じた谷部との間の角度に基づいてモータ角度目標値を設定するようにしてもよい。
モータ角度目標値は、位置補正値に応じた演算式にて演算すればよい。
【０１０４】
上記実施形態では、モータは、ＤＣブラシレスモータである。他の実施形態では、モータは、例えばスイッチトリラクタンスモータ等、どのようなモータであってもよい。上記実施形態では、モータの巻線組数については言及していないが、巻線組は１組でもよいし、複数組でもよい。
上記実施形態では、モータ回転角センサは、エンコーダである。他の実施形態では、モータ回転角センサは、エンコーダに限らず、レゾルバ等、どのようなものを用いてもよい。すなわち、モータ角度は、エンコーダカウント値に限らず、モータ角度に換算可能などのような値であってもよい。
【０１０５】
上記実施形態では、出力軸センサとしてＭＲセンサが用いられる。他の実施形態では、ＭＲセンサ以外の磁気センサを用いてもよい。また、上記実施形態では、出力軸センサから、２つの独立した出力軸信号が出力される２重系となっている。他の実施形態では、出力軸センサから出力される出力軸信号数は、１でもよいし、３以上でもよい。換言すると、出力軸センサは、１重系であってもよいし、３重系以上の多重系であってもよい。また、モータ回転角センサが多重系であってもよい。
【０１０６】
上記実施形態では、回転部材がディテントプレートであり、係合部材がディテントローラである。他の実施形態では、回転部材および係合部材は、ディテントプレートおよびディテントローラに限らず、形状等、どのようなものであってもよい。また、上記実施形態では、ディテントプレートには４つの谷部が設けられる。他の実施形態では、谷部の数は４つに限らず、いくつであってもよい。例えば、ディテントプレートの谷部の数が２つであって、ＰレンジとｎｏｔＰレンジとを切り替えるものとしてもよい。上記実施形態では、係合ポジション数と出力軸信号の段階数とが一致している。他の実施形態では、係合ポジション数と出力軸信号の段階数とが異なっていてもよく、例えば、同一の山部について、Ｐレンジ側谷部側、および、反Ｐレンジ谷部側で、それぞれ出力軸信号の値が切り替わるようにしてもよい。
また、シフトレンジ切替機構やパーキングロック機構等は、上記実施形態と異なっていてもよい。
【０１０７】
上記実施形態では、モータ軸と出力軸との間に減速機が設けられる。減速機の詳細について、上記実施形態では言及していないが、例えば、サイクロイド歯車、遊星歯車、モータ軸と略同軸の減速機構から駆動軸へトルクを伝達する平歯歯車を用いたものや、これらを組み合わせて用いたもの等、どのような構成であってもよい。また、他の実施形態では、モータ軸と出力軸との間の減速機を省略してもよいし、減速機以外の機構を設けてもよい。
以上、本発明は、上記実施形態になんら限定されるものではなく、発明の趣旨を逸脱しない範囲において種々の形態で実施可能である。
【符号の説明】
【０１０８】
１・・・シフトバイワイヤシステム（シフトレンジ切替システム）
１０・・・モータ          １３・・・エンコーダ（モータ回転角センサ）
１５・・・出力軸          １６・・・出力軸センサ
２１・・・ディテントプレート（回転部材）
２６・・・ディテントローラ（係合部材）
４０・・・シフトレンジ制御装置
５１・・・角度演算部      ５２・・・信号取得部
５３・・・学習部          ５５・・・目標設定部
５６・・・駆動制御部      ５８・・・異常判定部
６１、６２・・・記憶部
【図１】
2019019896.tif 000003
【図２】
2019019896.tif 000004
【図３】
2019019896.tif 000005
【図４】
2019019896.tif 000006
【図５】
2019019896.tif 000007
【図６】
2019019896.tif 000008
【図７】
2019019896.tif 000009