(57)【要約】【課題】要求シフトレンジに応じたモータ角度目標値を適切に設定可能であるシフトレンジ制御装置を提供する。【解決手段】目標角度設定部５３は、出力軸センサ１６から、スイッチ１６１〜１６４に応じた信号Ｐ１、Ｐ２、ＮＰ１、ＮＰ２を取得する。目標角度設定部５３は、要求シフトレンジに応じた目標カウント値Ｃｅｎ*を、それぞれの信号Ｐ１、Ｐ２、ＮＰ１、ＮＰ２に応じて補正可能である。目標角度設定部５３は、信号Ｐ１について、信号Ｐ１に応じた検出範囲であるＰ１エッジ検出ウィンドウ内にて、正規数のエッジが検出された場合、エッジの検出タイミングにおける実カウント値Ｃｅｎに基づき、補正後目標カウント値Ｃｅｎ*＿Ｐ１を演算する。また、正規数よりも多いエッジが検出された場合、または、Ｐ１エッジ検出ウィンドウ外にてエッジが検出された場合、信号Ｐ１に基づく目標カウント値Ｃｅｎ*の補正を無効にする。【選択図】  図５
2018071593.tif 000002
【特許請求の範囲】
【請求項１】
モータの駆動を制御することでシフトレンジを切り替えるシフトレンジ制御装置であって、
前記モータの駆動が伝達される出力軸（１５）のシフトレンジに応じた回転位置にてオンオフされる複数のスイッチ（１６１〜１６４）を有する出力軸センサ（１６）から前記スイッチに応じた信号である出力軸信号を取得し、要求シフトレンジに応じたモータ角度目標値を、それぞれの前記出力軸信号に応じて補正可能である目標角度設定部（５３）と、
前記モータ角度目標値に基づき、前記モータの駆動を制御する駆動制御部（５５）と、
を備え、
前記出力軸信号の立ち上がり、または、立ち下がりを、エッジとすると、
前記目標角度設定部は、それぞれの前記出力軸信号について、
前記出力軸信号に応じた検出範囲内にて、正規数の前記エッジが検出された場合、前記エッジの検出タイミングにおけるモータ角度に基づき、補正後モータ角度目標値を演算し、
正規数よりも多い前記エッジが検出された場合、または、前記検出範囲外にて前記エッジが検出された場合、当該出力軸信号に基づく前記モータ角度目標値の補正を無効にするシフトレンジ制御装置。
【請求項２】
全ての前記出力軸信号に基づく前記モータ角度目標値の補正が無効である場合、
前記目標角度設定部は、前記モータ角度目標値を、切り替え前後のシフトレンジに応じて設定されるデフォルト値よりも大きい値である信号異常時目標値とし、
前記駆動制御部は、前記モータに通電される電流を制限する電流制限制御を行う請求項１に記載のシフトレンジ制御装置。
【請求項３】
前記駆動制御部は、前記電流制限制御を開始してから制限継続時間が経過した場合、前記モータへの通電をオフにする請求項２に記載のシフトレンジ制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、シフトレンジ制御装置に関する。
【背景技術】
【０００２】
従来、運転者からのシフトレンジ切替要求に応じてモータを制御することでシフトレンジを切り替えるシフトレンジ切替装置が知られている。例えば特許文献１では、モータの回転を減速して伝達する減速機構の回転軸に嵌合連結された出力軸の回転角を検出する出力軸センサが設けられている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第４３８５７６８号
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１では、出力軸センサとして、回転角に応じた出力電圧がリニアに変化するポテンショメータ、または、各レンジに対応する回転角範囲でオンするスイッチが例示されている。ここで、各レンジに対応する回転角範囲でオンするスイッチを出力軸センサに用い、スイッチの出力に基づいてモータの目標位置を設定する場合、摩耗粉や電気ノイズ等の影響によりエッジが適切に検出されないと、モータを適切に制御することができず、正常なレンジ切り替えができなくなる虞がある。
本発明は、上述の課題に鑑みてなされたものであり、その目的は、要求シフトレンジに応じたモータ角度目標値を適切に設定可能であるシフトレンジ制御装置を提供することにある。
【課題を解決するための手段】
【０００５】
本発明のシフトレンジ制御装置は、モータ（１０）の駆動を制御することで、シフトレンジを切り替える。
シフトレンジ制御装置は、目標角度設定部（５３）、および、駆動制御部（５５）を備える。
目標角度設定部は、出力軸センサ（１６）からスイッチ（１６１〜１６４）に応じた信号である出力軸信号を取得し、要求シフトレンジに応じたモータ角度目標値を、それぞれの出力軸信号に応じて補正可能である。出力軸センサは（１６）、モータの駆動が伝達される出力軸（１５）のシフトレンジに応じた回転位置にてオンオフされる複数のスイッチを有する。
駆動制御部は、モータ角度目標値に基づき、モータの駆動を制御する。
【０００６】
出力軸信号の立ち上がり、または、立ち下がりを、エッジとする。
目標角度設定部は、それぞれの出力軸信号について、出力軸信号に応じた検出範囲内にて、正規数のエッジが検出された場合、エッジの検出タイミングにおけるモータの回転角度であるモータ角度に基づき、補正後モータ角度目標値を演算する。また、正規数よりも多いエッジが検出された場合、または、検出範囲外にてエッジが検出された場合、当該出力軸信号に基づくモータ角度目標値の補正を無効にする。
【０００７】
本発明では、出力軸センサが複数のスイッチを有しており、それぞれのスイッチからの信号である出力軸信号に基づいてモータ角度目標値を補正可能であるので、少なくとも１つの信号が正常であれば、モータ角度目標値を適切に補正することができる。
また、正規数より多いエッジが検出された場合、または、検出範囲外にてエッジが検出された場合、当該信号には、ノイズやチャタリングが生じている虞があるので、当該信号に基づくモータ角度目標値の補正を無効にする。これにより、ノイズやチャタリングによるモータ角度目標値の誤補正を防ぐことができる。
【図面の簡単な説明】
【０００８】
【図１】本発明の一実施形態によるシフトバイワイヤシステムを示す斜視図である。
【図２】本発明の一実施形態によるシフトバイワイヤシステムを示す概略構成図である。
【図３】本発明の一実施形態による出力軸の角度と出力軸センサのスイッチのオンオフ作動との関係を説明するタイムチャートである。
【図４】本発明の一実施形態によるモータおよびモータドライバを示す回路図である。
【図５】本発明の一実施形態によるシフトレンジ制御装置を示すブロック図である。
【図６】本発明の一実施形態による目標速度設定を説明する説明図である。
【図７】本発明の一実施形態によるＦＦデューティを説明する説明図である。
【図８】本発明の一実施形態による出力軸信号とレンジ判定を説明する図である。
【図９】本発明の一実施形態による駆動制御処理を説明するフローチャートである。
【図１０】本発明の一実施形態によるフィードバック制御を説明するフローチャートである。
【図１１】本発明の一実施形態による目標補正処理を説明するフローチャートである。
【図１２】本発明の一実施形態による補正値演算処理を説明するフローチャートである。
【図１３】本発明の一実施形態による駆動制御処理を説明するタイムチャートである。
【発明を実施するための形態】
【０００９】
以下、本発明によるシフトレンジ制御装置を図面に基づいて説明する。
（一実施形態）
本発明の一実施形態によるシフトレンジ制御装置を図１〜図１３に示す。
図１および図２に示すように、シフトバイワイヤシステム１は、モータ１０、シフトレンジ切替機構２０、パーキングロック機構３０、および、シフトレンジ制御装置４０等を備える。
【００１０】
モータ１０は、図示しない車両に搭載されるバッテリ４５（図４参照。）から電力が供給されることで回転し、シフトレンジ切替機構２０の駆動源として機能する。モータ１０は、フィードバック制御により電流の大きさを変更可能であって、かつ、相ごとに指令を変更可能なものが用いられる。本実施形態のモータ１０は、永久磁石式のＤＣブラシレスモータである。図４に示すように、モータ１０は、２組の巻線組１１、１２を有する。第１巻線組１１は、Ｕ１コイル１１１、Ｖ１コイル１１２、および、Ｗ１コイル１１３を有する。第２巻線組１２は、Ｕ２コイル１２１、Ｖ２コイル１２２、および、Ｗ２コイル１２３を有する。
【００１１】
図２に示すように、エンコーダ１３は、モータ１０の図示しないロータの回転位置を検出する。エンコーダ１３は、例えば磁気式のロータリーエンコーダであって、ロータと一体に回転する磁石と、磁気検出用のホールＩＣ等により構成される。エンコーダ１３は、ロータの回転に同期して、所定角度ごとにＡ相およびＢ相のパルス信号を出力する。
減速機１４は、モータ１０のモータ軸１０５（図８参照）と出力軸１５との間に設けられ、モータ１０の回転を減速して出力軸１５に出力する。これにより、モータ１０の回転がシフトレンジ切替機構２０に伝達される。
【００１２】
出力軸１５には、出力軸１５の回転位置を検出する出力軸センサ１６が設けられる。出力軸センサ１６は、いずれも接点式のスイッチであるスイッチ１６１〜１６４を有する。スイッチ１６１、１６２はＰレンジであることを検出するものであり、スイッチ１６３、１６４はＰレンジ以外のレンジであるＮｏｔＰレンジを検出するものである。すなわち本実施形態では、Ｐレンジを検出する信号、および、ＮｏｔＰレンジを検出する信号が、それぞれ二重系になっている。
以下、スイッチ１６１のオンオフに応じた信号を信号Ｐ１、スイッチ１６２のオンオフに応じた信号を信号Ｐ２、スイッチ１６３のオンオフに応じた信号を信号ＮＰ１、スイッチ１６４のオンオフに応じた信号を信号ＮＰ２とする。また、図２中、スイッチ１６１を「Ｐ１＿ＳＷ」、スイッチ１６２を「Ｐ２＿ＳＷ」、スイッチ１６３を「ＮＰ１＿ＳＷ」、スイッチ１６４を「ＮＰ２＿ＳＷ」と記載した。
【００１３】
図３に示すように、スイッチ１６１、１６２は、出力軸１５がＰレンジに対応する角度Ａ＿Ｐにてオンオフが切り替わるスイッチである。ＮＰ１スイッチ１６３およびＮＰ２スイッチ１６４は、出力軸１５がＰレンジ以外のレンジであるＮｏｔＰレンジに対応する角度Ａ＿ＮＰにてオンオフが切り替わるスイッチである。
【００１４】
シフトレンジをＰレンジからＮｏｔＰレンジに切り替えるとき、出力軸１５が角度Ａ＿Ｐとなる時刻ｔ１にて、信号Ｐ１、Ｐ２がオンからオフに切り替わり、角度Ａ＿ＮＰとなる時刻ｔ２にて、信号ＮＰ１、ＮＰ２がオフからオンに切り替わる。
【００１５】
信号Ｐ１、Ｐ２、ＮＰ１、ＮＰ２は、シフトレンジ制御装置４０に出力される。これにより、シフトレンジ制御装置４０では、信号Ｐ１、Ｐ２、ＮＰ１、ＮＰ２のオンオフ状態により、現在のシフトレンジを検出可能である。
検出誤差等を無視すれば、信号Ｐ１、Ｐ２は同様の信号であるので、適宜まとめて「信号Ｐ」とする。同様に、信号ＮＰ１、ＮＰ２を、適宜まとめて「信号ＮＰ」とする。
【００１６】
図１に示すように、シフトレンジ切替機構２０は、ディテントプレート２１、および、ディテントスプリング２５等を有し、減速機１４から出力された回転駆動力を、マニュアルバルブ２８、および、パーキングロック機構３０へ伝達する。
ディテントプレート２１は、出力軸１５に固定され、モータ１０により駆動される。本実施形態では、ディテントプレート２１がディテントスプリング２５の基部から離れる方向を正回転方向、基部に近づく方向を逆回転方向とする。
【００１７】
ディテントプレート２１には、出力軸１５と平行に突出するピン２４が設けられる。ピン２４は、マニュアルバルブ２８と接続される。ディテントプレート２１がモータ１０によって駆動されることで、マニュアルバルブ２８は軸方向に往復移動する。すなわち、シフトレンジ切替機構２０は、モータ１０の回転運動を直線運動に変換してマニュアルバルブ２８に伝達する。マニュアルバルブ２８は、バルブボディ２９に設けられる。マニュアルバルブ２８が軸方向に往復移動することで、図示しない油圧クラッチへの油圧供給路が切り替えられ、油圧クラッチの係合状態が切り替わることでシフトレンジが変更される。
ディテントプレート２１のディテントスプリング２５側には、２つの凹部２２、２３が設けられる。本実施形態では、ディテントスプリング２５の基部に近い側を凹部２２、遠い側を凹部２３とする。本実施形態では、凹部２２がＰレンジ以外のＮｏｔＰレンジに対応し、凹部２３がＰレンジに対応する。
【００１８】
ディテントスプリング２５は、弾性変形可能な板状部材であり、先端にディテントローラ２６が設けられる。ディテントスプリング２５は、ディテントローラ２６をディテントプレート２１の回動中心側に付勢する。ディテントプレート２１に所定以上の回転力が加わると、ディテントスプリング２５が弾性変形し、ディテントローラ２６が凹部２２、２３を移動する。ディテントローラ２６が凹部２２、２３のいずれかに嵌まり込むことで、ディテントプレート２１の揺動が規制され、マニュアルバルブ２８の軸方向位置、および、パーキングロック機構３０の状態が決定され、自動変速機５のシフトレンジが固定される。ディテントローラ２６は、シフトレンジがＮｏｔＰレンジのとき、凹部２２に嵌まり込み、Ｐレンジのとき、凹部２３に嵌まり込む。
【００１９】
パーキングロック機構３０は、パーキングロッド３１、円錐体３２、パーキングロックポール３３、軸部３４、および、パーキングギア３５を有する。
パーキングロッド３１は、略Ｌ字形状に形成され、一端３１１側がディテントプレート２１に固定される。パーキングロッド３１の他端３１２側には、円錐体３２が設けられる。円錐体３２は、他端３１２側にいくほど縮径するように形成される。ディテントプレート２１が逆回転方向に揺動すると、円錐体３２がＰ方向に移動する。
【００２０】
パーキングロックポール３３は、円錐体３２の円錐面と当接し、軸部３４を中心に揺動可能に設けられる、パーキングロックポール３３のパーキングギア３５側には、パーキングギア３５と噛み合い可能な凸部３３１が設けられる。ディテントプレート２１が逆回転方向に回転し、円錐体３２がＰ方向に移動すると、パーキングロックポール３３が押し上げられ、凸部３３１とパーキングギア３５とが噛み合う。一方、ディテントプレート２１が正回転方向に回転し、円錐体３２がＮｏｔＰ方向に移動すると、凸部３３１とパーキングギア３５との噛み合いが解除される。
【００２１】
パーキングギア３５は、図示しない車軸に設けられ、パーキングロックポール３３の凸部３３１と噛み合い可能に設けられる。パーキングギア３５と凸部３３１とが噛み合うと、車軸の回転が規制される。シフトレンジがＮｏｔＰレンジのとき、パーキングギア３５はパーキングロックポール３３によりロックされず、車軸の回転は、パーキングロック機構３０により妨げられない。また、シフトレンジがＰレンジのとき、パーキングギア３５はパーキングロックポール３３によってロックされ、車軸の回転が規制される。
【００２２】
図２および図４に示すように、シフトレンジ制御装置４０は、モータドライバ４１、４２、および、ＥＣＵ５０等を有する。
モータドライバ４１は、第１巻線組１１の通電を切り替える３相インバータであって、スイッチング素子４１１〜４１６がブリッジ接続される。対になるＵ相のスイッチング素子４１１、４１４の接続点には、Ｕ１コイル１１１の一端が接続される。対になるＶ相のスイッチング素子４１２、４１５の接続点には、Ｖ１コイル１１２の一端が接続される。対になるＷ相のスイッチング素子４１３、４１６の接続点には、Ｗ１コイル１１３の一端が接続される。コイル１１１〜１１３の他端は、結線部１１５で結線される。
【００２３】
モータドライバ４２は、第２巻線組１２の通電を切り替える３相インバータであって、スイッチング素子４２１〜４２６がブリッジ接続される。対になるＵ相のスイッチング素子４２１、４２４の接続点には、Ｕ２コイル１２１の一端が接続される。対になるＶ相のスイッチング素子４２２、４２５の接続点には、Ｖ２コイル１２２の一端が接続される。対になるＷ相のスイッチング素子４２３、４２６の接続点には、Ｗ２コイル１２３の一端が接続される。コイル１２１〜１２３の他端は、結線部１２５で結線される。
本実施形態のスイッチング素子４１１〜４１６、４２１〜４２６は、ＭＯＳＦＥＴであるが、ＩＧＢＴ等の他の素子を用いてもよい。
【００２４】
モータドライバ４１とバッテリ４５との間には、モータリレー４６が設けられる。モータドライバ４２とバッテリ４５との間には、モータリレー４７が設けられる。モータリレー４６、４７は、イグニッションスイッチ等である始動スイッチがオンされているときにオンされ、モータ１０側へ電力が供給される。また、モータリレー４６、４７は、始動スイッチがオフされているときにオフされ、モータ１０側への電力の供給が遮断される。
バッテリ４５の高電位側には、バッテリ電圧Ｖを検出する電圧センサ４８が設けられる。
また、モータドライバ４１、４２には、モータ電流Ｉｍを検出する図示しない電流センサが設けられる。
【００２５】
ＥＣＵ５０は、スイッチング素子４１１〜４１６、４２１〜４２６のオンオフ作動を制御することで、モータ１０の駆動を制御する。また、ＥＣＵ５０は、車速、アクセル開度、および、ドライバ要求シフトレンジ等に基づき、変速用油圧制御ソレノイド６の駆動を制御する。変速用油圧制御ソレノイド６を制御することで、変速段が制御される。変速用油圧制御ソレノイド６は、変速段数等に応じた本数が設けられる。本実施形態では、１つのＥＣＵ５０がモータ１０およびソレノイド６の駆動を制御するが、モータ１０を制御するモータ制御用のモータＥＣＵと、ソレノイド制御用のＡＴ−ＥＣＵとを分けてもよい。以下、モータ１０の駆動制御を中心に説明する。
【００２６】
図５に示すように、ＥＣＵ５０は、角度演算部５１、速度演算部５２、目標角度設定部５３、および、駆動制御部５５等を備え、マイコン等を主体として構成される。ＥＣＵ５０における各処理は、ＲＯＭ等の実体的なメモリ装置に予め記憶されたプログラムをＣＰＵで実行することによるソフトウェア処理であってもよいし、専用の電子回路によるハードウェア処理であってもよい。
【００２７】
角度演算部５１は、エンコーダ１３から出力されるＡ相およびＢ相のパルスに基づき、エンコーダ１３のカウント値である実カウント値Ｃｅｎを演算する。実カウント値Ｃｅｎは、モータ１０の実際の機械角および電気角に応じた値である。本実施形態では、実カウント値Ｃｅｎを「実角度」とする。
速度演算部５２は、実カウント値Ｃｅｎに基づき、モータ１０の回転速度であるモータ速度Ｍｓｐを演算する。
目標角度設定部５３は、図示しないシフトレバー等の操作により入力されるドライバ要求シフトレンジに応じた目標カウント値Ｃｅｎ*を設定する。目標角度設定部５３における目標カウント値Ｃｅｎ*の設定および補正については、後述する。
【００２８】
駆動制御部５５は、フィードバック制御部６０、固定相通電制御部７０、および、切替制御部７５を有し、目標カウント値Ｃｅｎ*に基づき、モータ１０の駆動制御に係る駆動信号を生成する。
フィードバック制御部６０は、角度偏差演算部６１、目標速度設定部６２、フィードバック値設定部６３、速度偏差演算部６４、制御器６５、フィードフォワード補正値演算部６６、フィードフォワード項補正部６７、電圧補正部６８、および、ＰＷＭ信号生成部６９を有する。以下適宜、フィードバックを「ＦＢ」、フィードフォワードを「ＦＦ」と記載する。
角度偏差演算部６１は、目標カウント値Ｃｅｎ*と実カウント値Ｃｅｎとの差を演算する。以下、目標カウント値Ｃｅｎ*と実カウント値Ｃｅｎと差の絶対値を角度偏差ｅとする。
【００２９】
目標速度設定部６２は、角度偏差ｅに基づき、モータ１０の目標速度である目標モータ速度Ｍｓｐ*を演算する。目標モータ速度Ｍｓｐ*は、例えば図６に示すマップに基づき、角度偏差ｅが所定値ｅａ以下の場合、角度偏差ｅが大きいほど大きくなるように設定され、角度偏差ｅが所定値ｅａより大きい場合、所定の最大値とする。また、目標モータ速度Ｍｓｐ*は、バッテリ電圧Ｖが大きくなるほど大きくなるように設定される。
【００３０】
ＦＢ値設定部６３は、モータ１０の速度状態に応じ、フィードバックする速度フィードバック値Ｍｓｐ＿ｆｂを設定する。
本実施形態では、モータ１０の速度状態を、加速状態、定常状態、または、減速状態とする。また、速度状態に応じた速度モードとして、加速状態を「モード１」、定常状態を「モード２」、減速状態を「モード３」とする。また、後述の固定相通電を行っている状態を「モード４」、通電オフ状態を「モード０」とする。以下適宜、各モードに対応する状態を、「制御状態」とする。
【００３１】
ＦＢ値設定部６３は、モータ１０の速度状態がモード２またはモード３、すなわち定常状態または減速状態のとき、モータ速度Ｍｓｐの位相を進ませる位相進み補償を行い、速度位相進み値Ｍｓｐ＿ｐｌを速度フィードバック値Ｍｓｐ＿ｆｂとする。また、ＦＢ値設定部６３は、モータ１０の速度状態がモード１、すなわち加速状態のとき、位相進み補償を行わず、モータ速度Ｍｓｐを速度フィードバック値Ｍｓｐ＿ｆｂとする。速度位相進み値Ｍｓｐ＿ｐｌについても、「モータ速度」の概念に含まれるものとする。
【００３２】
速度偏差演算部６４は、目標モータ速度Ｍｓｐ*と速度フィードバック値Ｍｓｐ＿ｆｂとの速度偏差ΔＭｓｐを演算する。
制御器６５は、目標モータ速度Ｍｓｐ*と速度フィードバック値Ｍｓｐ＿ｆｂとを一致させるべく、速度偏差ΔＭｓｐが０となるように、例えばＰ制御やＰＩ制御等により、ＦＢデューティＤ＿ｆｂを演算する。
【００３３】
ＦＦ補正値演算部６６は、モータ１０の速度状態に応じたＦＦデューティＤ＿ｆｆを演算する。
加速状態のＦＦデューティＤ＿ｆｆは、図７（ａ）に示すマップ等に基づいて演算される最大加速デューティであって、モータ速度Ｍｓｐが大きくなるほど大きくなる。本実施形態では、モータ速度Ｍｓｐが目標モータ速度Ｍｓｐ*以上となるまでの間、最大デューティとなるように、ＦＦデューティＤ＿ｆｆが演算される。
定常状態のＦＦデューティＤ＿ｆｆは、図７（ｂ）に示すマップ等に基づいて演算される速度維持デューティとする。速度維持デューティは、無負荷時にモータ速度Ｍｓｐを維持するためのデューティであって、モータ速度Ｍｓｐが大きくなるほど大きくなる。
減速状態のＦＦデューティＤ＿ｆｆは、図７（ｃ）に示すマップ等に基づいて演算される減速補正デューティとする。減速補正デューティは、目標モータ速度Ｍｓｐ*を実現するための補正デューティである。減速補正デューティは、モータ１０が正方向に回転している場合は負の値であって、モータ速度Ｍｓｐが大きくなるほど小さくなる。すなわち、減速補正デューティは、モータ速度Ｍｓｐが大きくなるほど、絶対値としては大きい値となる。
【００３４】
なお、図７は、モータ１０が正方向に回転している場合であって、モータ１０が負方向に回転する場合、ＦＦデューティＤ＿ｆｆの値の正負を反転させる。本実施形態では、モータ速度Ｍｓｐに基づいてＦＦデューティＤ＿ｆｆを演算するものとして説明したが、モータ速度Ｍｓｐに替えて、目標モータ速度Ｍｓｐ*に基づいてＦＦデューティＤ＿ｆｆを演算してもよい。
【００３５】
ＦＦ項補正部６７は、ＦＢデューティＤ＿ｆｂをＦＦデューティＤ＿ｆｆで補正し、デューティ指令値を演算する。本実施形態のＦＦ項補正部６７は加算器であって、ＦＢデューティＤ＿ｆｂにＦＦデューティＤ＿ｆｆを加算し、デューティ指令値Ｄを演算する。
電圧補正部６８は、バッテリ電圧Ｖに基づき、デューティ指令値Ｄを補正する。以下、電圧補正後の値を、「デューティ指令値」とする。
ＰＷＭ信号生成部６９は、デューティ指令値および実カウント値Ｃｅｎに基づき、スイッチング素子４１１〜４１６、４２１〜４２６のスイッチングに係る指令信号を生成する。また、モータ電流Ｉｍが電流制限値Ｉｍ＿ｍａｘを超えないように指令信号を調整する。
【００３６】
本実施形態では、１２０°通電による矩形波制御により、モータ１０の駆動を制御する。１２０°通電による矩形波制御では、第１相の高電位側のスイッチング素子と、第２相の低電位側のスイッチング素子をオンする。また、第１相および第２相の組み合わせを電気角６０°ごとに入れ替えていくことで、通電相が切り替わる。これにより、巻線組１１、１２に回転磁界が発生し、モータ１０が回転する。本実施形態では、出力軸１５を正回転方向に回転させるときのモータ１０の回転方向を正方向とする。
【００３７】
固定相通電制御部７０は、固定相通電制御を行う。固定相通電制御は、モータ１０の回転を停止させるための制御であって、電気角に応じた固定相を選択し、選択された固定相の所定方向に電流が流れるように、スイッチング素子４１１〜４１６、４２１〜４２６を制御する。これにより、励磁相が固定される。励磁相が固定されると、モータ１０は、励磁相に応じた所定の電気角にて停止する。固定相通電制御部７０は、現在のロータ位置から最も近い電気角でモータ１０を停止させるように、実カウント値Ｃｅｎに基づいて固定相および通電方向を選択する。
【００３８】
固定相通電制御は、角度偏差ｅが角度判定閾値ｅ＿ｔｈ以下となったときに行われる制御である。したがって、固定相通電制御が行われているとき、実カウント値Ｃｅｎと目標カウント値Ｃｅｎ*とが概ね一致しているとみなせる。そのため、現在のロータ位置から最も近い停止可能な電気角で停止させることで、目標カウント値Ｃｅｎ*と略一致する箇所でモータ１０を停止させることができる。厳密にいえば、目標カウント値Ｃｅｎ*に対応する電気角と、固定相通電制御にてモータ１０を停止させる電気角とでは、最大でモータ分解能分のずれが生じるが、減速機１４の減速比が大きければ、出力軸１５の停止位置のずれは小さいため、差し支えない。
【００３９】
切替制御部７５は、モータ１０の制御状態を切り替える。特に、本実施形態では、切替制御部７５は、角度偏差ｅに基づき、フィードバック制御とするか、固定相通電制御とするかを切り替える。
切替制御部７５は、制御状態に応じた駆動信号をモータドライバ４１、４２に出力する。これにより、モータ１０の駆動が制御される。
【００４０】
ここで、モータ１０、出力軸１５、および、ディテントプレート２１の関係を図８に示す。図８では、（ａ）信号Ｐ１、（ｂ）が信号Ｐ２、（ｃ）が信号ＮＰ１、（ｄ）が信号ＮＰ２、（ｅ）が出力軸センサ１６からの信号に基づくレンジ判定を示す。また、図８（ｆ）は、モータ１０の回転に伴うディテントローラ２６の移動を説明する模式図である。図８では、ＰレンジからＮｏｔＰレンジに切り替える場合を例に説明する。
【００４１】
図８（ｆ）においては、モータ１０が回転することで、実線で示す状態から二点鎖線で示す状態へとディテントローラ２６がディテントプレート２１の凹部２２、２３間の山を乗り越え、凹部２２に嵌まり込む状態を模式的に示している。図８においては、モータ１０および出力軸１５の回転方向を、紙面左右方向として説明する。また、図８では、出力軸１５と減速機１４とが一体となっており、モータ軸１０５が減速機１４の遊びの範囲で移動可能であるものとして記載しているが、モータ軸１０５と減速機１４とが一体となっており、減速機１４と出力軸１５との間に「遊び」が存在しているように構成しても差し支えない。また、実際にはモータ１０の回転により、出力軸１５およびディテントプレート２１が回転することで、ディテントローラ２６が移動するが、ここでは、説明を簡略化するため、モータ１０の駆動により、ディテントローラ２６が移動するものとして説明する。
【００４２】
図８（ａ）〜（ｄ）に示すように、モータ１０の回転に伴って出力軸１５が回転すると、出力軸角度が角度Ａ＿Ｐにて、信号Ｐ１、Ｐ２がオンからオフに切り替わり、角度Ａ＿ＮＰにて、信号ＮＰ１、ＮＰ２がオフからオンに切り替わる。図８では、信号Ｐ１、Ｐ２が同時にオンからオフに切り替わるものとして記載しているが、実際には、検出誤差等に応じ、オンオフ切り替えのタイミングがずれる「エッジばらつき」が生じる。信号ＮＰ１、ＮＰ２についても同様である。
【００４３】
図８（ｅ）に示すように、ＥＣＵ５０は、信号Ｐ１、Ｐ２がオンであるとき、シフトレンジがＰレンジであると判定し、信号ＮＰ１、ＮＰ２がオンであるとき、シフトレンジがＮｏｔＰレンジであると判定する。また、信号Ｐ１、Ｐ２、ＮＰ１、ＮＰ２が全てオフの区間は、レンジ不定とする。
【００４４】
図８（ｆ）に示すように、モータ軸１０５と出力軸１５との間には、減速機１４が設けられており、モータ軸１０５と出力軸１５との間には、ギアバックラッシュを含む「遊び」が存在している。また、本実施形態のモータ１０は、ＤＣブラシレスモータであるので、モータ１０への通電が停止されているとき、コギングトルク等の影響により、遊びの範囲内にてモータ軸１０５が回転し、モータ軸１０５と減速機１４とが離間することがある。
【００４５】
また、矢印Ｙｇで示すように、モータ軸１０５と減速機１４とが離間している状態にてモータ１０が回転する場合、モータ軸１０５と減速機１４とが当接するまでの間、モータ１０は空走状態となり、モータ１０の回転は、出力軸１５側へ伝達されない。
ところで、モータ１０への通電をオフしている状態からシフトレンジを切り替えるべく通電を開始したとき、モータ軸１０５が「遊び」の範囲内のどの位置にあるかを特定することができない。また、モータ軸１０５と減速機１４とが当接している状態からモータ１０を回転させる場合と比較し、ガタ空走区間の分、モータ１０を余分に回転させる必要がある。
【００４６】
そこで本実施形態では、目標角度設定部５３は、信号Ｐ１、Ｐ２、ＮＰ１、ＮＰ２のエッジを検出したタイミングの実カウント値Ｃｅｎに基づき、目標カウント値Ｃｅｎ*を設定している。
目標値設定処理を含む駆動制御処理を図９〜図１２に示すフローチャートに基づいて説明する。この処理は、イグニッションスイッチ等である始動スイッチがオンされているとき、ＥＣＵ５０にて所定の周期で実行される。以下、ステップＳ１０１の「ステップ」を省略し、単に記号「Ｓ」と記す。他のステップについても同様である。
【００４７】
最初のＳ１０１では、ＥＣＵ５０は、ドライバにより図示しないシフトレバーが操作され、ドライバ要求シフトレンジがＰレンジからＮｏｔＰレンジ、または、ＮｏｔＰレンジからＰレンジに変化したか否かを判断する。ドライバ要求シフトレンジがＰレンジからＮｏｔＰレンジ、または、ＮｏｔＰレンジからＰレンジに変化していないと判断された場合（Ｓ１０１：ＮＯ）、Ｓ１０３へ移行する。ドライバ要求シフトレンジがＰレンジからＮｏｔＰレンジ、または、ＮｏｔＰレンジからＰレンジに変化したと判断された場合（Ｓ１０１：ＹＥＳ）、Ｓ１０２へ移行する。
【００４８】
Ｓ１０２では、目標角度設定部５３は、目標カウント値Ｃｅｎ*をデフォルト値Ｃｅｎ*＿ｄｆとする。デフォルト値Ｃｅｎ*＿ｄｆは、凹部２２、２３間の角度に応じた値である。
Ｓ１０３では、ＥＣＵ５０は、モータ１０への通電フラグをオンにする。通電フラグのオンオフ処理は、切替制御部７５にて行ってもよいし、切替制御部７５とは別途に行ってもよい。
【００４９】
Ｓ１０４では、切替制御部７５は、通電フラグがオンされているか否かを判断する。通電フラグがオフであると判断された場合（Ｓ１０４：ＮＯ）、Ｓ１０５へ移行する。通電フラグがオンされていると判断された場合（Ｓ１０４：ＹＥＳ）、Ｓ２００の目標角度補正処理に移行する。目標角度補正処理は、図１１および図１２に基づいて後述する。
Ｓ１０５では、ＥＣＵ５０は、後述する各種タイマ、フラグ類をリセットする。
【００５０】
Ｓ２００に続いて移行するＳ１０６では、目標カウント値Ｃｅｎ*が信号異常時目標値Ｃｅｎ*＿ｅｒｒか否かを判断する。目標カウント値Ｃｅｎ*が信号異常時目標値Ｃｅｎ*＿ｅｒｒであると判断された場合（Ｓ１０６：ＹＥＳ）、Ｓ１０７へ移行する。Ｓ１０７およびＳ１０８の処理については、後述する。目標カウント値Ｃｅｎ*が信号異常時目標値Ｃｅｎ*＿ｅｒｒではないと判断された場合、Ｓ１０９へ移行する。
【００５１】
Ｓ１０９では、切替制御部７５は、目標カウント値Ｃｅｎ*と実カウント値Ｃｅｎとの差である角度偏差ｅが、角度判定閾値ｅ＿ｔｈより大きいか否かを判断する。ここで用いられる目標カウント値Ｃｅｎ*は、デフォルト値Ｃｅｎ*＿ｄｆ、または、補正後目標カウント値Ｃｅｎ*＿＃である。本実施形態では、角度偏差ｅが「目標角度と実角度との差分値」に対応する。角度判定閾値ｅ＿ｔｈは、０に近い所定値（例えば機械角で０．５°）に応じたカウント数に設定される。角度偏差ｅが角度判定閾値ｅ＿ｔｈ以下であると判断された場合（Ｓ１０９：ＮＯ）、Ｓ１１０へ移行する。角度偏差ｅが角度判定閾値ｅ＿ｔｈより大きいと判断された場合（Ｓ１０９：ＹＥＳ）、Ｓ３００へ移行する。
【００５２】
Ｓ３００では、切替制御部７５は、モータ１０の制御状態として、フィードバック制御を選択する。すなわち、角度偏差ｅが角度判定閾値ｅ＿ｔｈより大きい場合、モータ１０は、モータ位置およびモータ速度をフィードバックするフィードバック制御により制御される。
フィードバック制御を説明するサブフローを図１０に示す。なお、通電フラグがオンされた直後は、モータ１０の速度状態をモード１（加速状態）に設定する。
【００５３】
Ｓ３０１では、目標速度設定部６２は、角度偏差ｅおよびバッテリ電圧Ｖに基づき、目標モータ速度Ｍｓｐ*を設定する。
Ｓ３０２では、フィードバック制御部６０は、現在の速度状態がモード１か否かを判断する。現在の速度状態がモード１ではないと判断された場合（Ｓ３０２：ＮＯ）、Ｓ３０４へ移行する。速度状態がモード１であると判断された場合（Ｓ３０２：ＹＥＳ）、Ｓ３０３へ移行する。
【００５４】
Ｓ３０３では、フィードバック制御部６０は、モータ速度Ｍｓｐが目標モータ速度Ｍｓｐ*より大きいか否かを判断する。モータ速度Ｍｓｐが目標モータ速度Ｍｓｐ*以下であると判断された場合（Ｓ３０３：ＮＯ）、Ｓ３０６へ移行し、速度状態としてモード１（加速）を維持する。モータ速度Ｍｓｐが目標モータ速度Ｍｓｐ*より大きいと判断された場合（Ｓ３０３：ＹＥＳ）、Ｓ３０７へ移行し、速度状態をモード１（加速）からモード２（定常）に切り替える。
【００５５】
現在の速度状態がモード１ではないと判断された場合（Ｓ３０３：ＮＯ）に移行するＳ３０４では、フィードバック制御部６０は、現在の速度状態がモード２か否かを判断する。現在の速度状態がモード２ではないと判断された場合（Ｓ３０４：ＮＯ）、すなわち現在の速度状態がモード３の場合、Ｓ３０８へ移行し、速度状態としてモード３（減速）を維持する。現在の速度状態がモード２であると判断された場合（Ｓ３０４：ＹＥＳ）、Ｓ３０５へ移行する。
【００５６】
Ｓ３０５では、フィードバック制御部６０は、目標モータ速度の今回値が、目標モータ速度Ｍｓｐ*の前回値より小さいか否かを判断する。図中、目標モータ速度の今回値をＭｓｐ*（ｎ）、前回値をＭｓｐ*（ｎ−１）と記載した。目標モータ速度の今回値Ｍｓｐ*（ｎ）が、前回値Ｍｓｐ*（ｎ−１）以上であると判断された場合（Ｓ３０５：ＮＯ）、Ｓ３０７へ移行し、速度状態としてモード２（定常）を維持する。目標モータ速度の今回値Ｍｓｐ*（ｎ）が、前回値Ｍｓｐ*（ｎ−１）より小さいと判断された場合（Ｓ３０５：ＹＥＳ）、Ｓ３０８へ移行し、速度状態をモード２（定常）からモード３（減速）に切り替える。
【００５７】
Ｓ３０６〜Ｓ３０８に続いて移行するＳ３０９では、フィードバック制御部６０は、モータ１０の速度状態がモード１か否かを判断する。速度状態がモード１であると判断された場合（Ｓ３０９：ＹＥＳ）、Ｓ３１０へ移行する。速度状態がモード１ではないと判断された場合（Ｓ３０９：ＮＯ）、すなわち速度状態がモード２またはモード３である場合、Ｓ３１１へ移行する。
【００５８】
Ｓ３１０では、ＦＢ値設定部６３は、モータ速度Ｍｓｐを速度フィードバック値Ｍｓｐ＿ｆｂとして、速度偏差演算部６４に出力する。
Ｓ３１１では、ＦＢ値設定部６３は、位相進み補償値Ｍｓｐ＿ｐｌを速度フィードバック値Ｍｓｐ＿ｆｂとして、速度偏差演算部６４に出力する。
Ｓ３１２では、制御器６５は、ＦＢデューティＤ＿ｆｂを演算する。
Ｓ３１３では、ＦＦ補正値演算部６６は、速度状態に応じたＦＦデューティＤ＿ｆｆを演算する。
【００５９】
Ｓ３１４では、ＦＦ項補正部６７は、ＦＢデューティＤ＿ｆｂとＦＦデューティＤ＿ｆｆとを加算し、デューティ指令値Ｄを演算する。
Ｓ３１５では、ＰＷＭ信号生成部６９は、電圧補正されたデューティ指令値Ｄに基づき、ＰＷＭ信号を生成する。生成されたＰＷＭ信号に基づいてスイッチング素子４１１〜４１６、４２１〜４２６のオンオフ作動を制御することで、モータ１０の駆動が制御される。
なお、速度状態の判別は、例えばモータ速度Ｍｓｐの微分値を用いる等、どのように判別してもよい。
【００６０】
図９に戻り、角度偏差ｅが角度判定閾値ｅ＿ｔｈ以下であると判断された場合（Ｓ１０９：ＮＯ）に移行するＳ１１０では、切替制御部７５は固定相通電制御の継続時間を計時するタイマのカウント値であるタイマ値Ｔｃをインクリメントする。
Ｓ１１１では、切替制御部７５は、タイマ値Ｔｃが継続時間判定閾値Ｔｔｈより小さいか否かを判断する。継続時間判定閾値Ｔｔｈは、固定相通電制御を継続する通電継続時間Ｔａ（例えば１００ｍｓ）に応じて設定される値である。タイマ値Ｔｃが継続時間判定閾値Ｔｔｈより小さいと判断された場合（Ｓ１１１：ＹＥＳ）、Ｓ１１２へ移行する。タイマ値Ｔｃが継続時間判定閾値Ｔｔｈ以上であると判断された場合、Ｓ１１３へ移行する。
固定相通電制御を開始してから通電継続時間Ｔａが経過していない場合に移行するＳ１１２では、切替制御部７５は、モータ１０の制御状態として、固定相通電制御を選択する。
【００６１】
固定相通電制御を開始してから通電継続時間が経過した場合、または、後述の電流制限制御を開始してから制限継続時間Ｔｓが経過した場合に移行するＳ１１３では、切替制御部７５は、モータ１０の制御状態を通電オフ制御とする。通電オフ制御では、モータドライバ４１、４２の全てのスイッチング素子４１１〜４１６、４２１〜４２６をオフする信号をモータドライバ４１、４２に出力し、スイッチング素子４１１〜４１６、４２１〜４２６をオフにする。これにより、通電オフ制御時には、モータ１０側へ電力が供給されない。なお、モータリレー４６、４７は、始動スイッチがオンされている間は、オンが継続されるので、通電オフ制御中もモータリレー４６、４７はオンされている。
また、ＥＣＵ５０は、通電フラグをオフにする。
【００６２】
目標補正処理を図１１および図１２に基づいて説明する。以下、記号「＃」は、Ｐ１、Ｐ２、ＮＰ１、ＮＰ２のいずれかに対応するものであることを意味する。
Ｓ２０１では、目標角度設定部５３は、信号Ｐ１に基づく補正値演算を行う。
Ｓ２０２では、目標角度設定部５３は、信号Ｐ２に基づく補正値演算を行う。
Ｓ２０３では、目標角度設定部５３は、信号ＮＰ１に基づく補正値演算を行う。
Ｓ２０４では、目標角度設定部５３は、信号ＮＰ２に基づく補正値演算を行う。
【００６３】
Ｓ２０１〜Ｓ２０４における補正値演算処理を図１２のフローチャートに基づいて説明する。ここでは、Ｓ２０１における信号Ｐ１による補正値演算を例に説明する。すなわち、Ｓ２５１〜Ｓ２５８の処理を、＃＝Ｐ１として説明する。
Ｓ２５１では、目標角度設定部５３は、信号Ｐ１のエッジが検出されたか否かを判断する。信号Ｐ１がオンからオフ、または、オフからオンに切り替わった場合、エッジが検出された、と判定する。信号Ｐ１のエッジが検出されていないと判断された場合（Ｓ２５１：ＮＯ）、Ｓ２５２以下の処理を行わず、補正値演算処理を終了する。このとき、後述のノイズフラグＸｎｏｉｚ＿Ｐ１は０である。信号Ｐ１のエッジが検出されたと判断された場合（Ｓ２５１：ＹＥＳ）、Ｓ２５２に移行する。
【００６４】
Ｓ２５２では、目標角度設定部５３は、エッジカウンタＥＤＧ＿Ｐ１をインクリメントする。エッジカウンタＥＤＧ＿＃は、信号毎に設けられるカウンタである。
Ｓ２５３では、目標角度設定部５３は、現在のモータ１０の実カウント値Ｃｅｎが、Ｐ１エッジ検出ウィンドウ内か否かを判断する。エッジ検出ウィンドウは、信号Ｐ１のエッジばらつき、および、ガタ空走区間を考慮し、信号Ｐ１のエッジが検出されうる範囲に設定される。実カウント値ＣｅｎがＰ１エッジ検出ウィンドウ内ではないと判断された場合（Ｓ２５３：ＮＯ）、Ｓ２５８へ移行する。実カウント値ＣｅｎがＰ１エッジ検出ウィンドウ内であると判断された場合（Ｓ２５３：ＹＥＳ）、Ｓ２５４へ移行する。
【００６５】
Ｓ２５４では、目標角度設定部５３は、エッジカウンタＥＤＧ＿Ｐ１のカウント値が１か否を判断する。エッジカウンタＥＤＧ＿Ｐ１のカウント値が２以上であると判断された場合（Ｓ２５４：ＮＯ）、Ｓ２５８へ移行する。エッジカウンタＥＤＧ＿Ｐ１のカウント値が１であると判断された場合（Ｓ２５４：ＹＥＳ）、Ｓ２５５へ移行する。
【００６６】
Ｓ２５５では、目標角度設定部５３は、信号Ｐ１に基づく補正後目標カウント値Ｃｅｎ*＿Ｐ１を演算する。補正後目標カウント値Ｃｅｎ*＿Ｐ１は、式（１）で表される。
Ｃｅｎ*＿Ｐ１＝Ｃｅｎ＋Ｃａ＿Ｐ１    ・・・（１）
式中のＣｅｎは、現在のモータ１０のエンコーダカウント値である。
補正量Ｃａ＿Ｐ１は、ドライバ要求シフトレンジに応じて設定される。詳細には、ＰレンジからＮｏｔＰレンジに切り替える場合の補正量Ｃａ＿Ｐ１は、信号Ｐ１のエッジ検出中心と凹部２２の中心とのなす角度に応じた設計値である。また、ＮｏｔＰレンジからＰレンジに切り替える場合の補正量Ｃａ＿Ｐ１は、信号Ｐ１のエッジ検出中心と凹部２３の中心とのなす角度に応じた設計値である。
【００６７】
Ｓ２５６では、目標角度設定部５３は、Ｓ２５５にて演算された補正後目標カウント値Ｃｅｎ*＿Ｐ１が適正範囲内か否かを判断する。補正後目標カウント値Ｃｅｎ*＿Ｐ１が適正範囲外であると判断された場合（Ｓ２５６：ＮＯ）、Ｓ２５８へ移行する。補正後目標カウント値Ｃｅｎ*＿Ｐ１が適正範囲内であると判断された場合（Ｓ２５６：ＹＥＳ）、Ｓ２５７へ移行する。
【００６８】
Ｓ２５７では、目標角度設定部５３は、ノイズフラグＸｎｏｉｚ＿Ｐ１を２とする。
検出されたエッジがＰ１エッジ検出ウィンドウ外である場合（Ｓ２５３：ＮＯ）、エッジカウンタＥＤＧ＿Ｐ１のカウント値が２以上である場合（Ｓ２５４：ＮＯ）、または、補正後目標カウント値Ｃｅｎ*＿Ｐ１が適正範囲外である場合（Ｓ２５６：ＮＯ）に移行するＳ２５８では、目標角度設定部５３は、ノイズフラグＸｎｏｉｚ＿Ｐ１を１とする。Ｓ２５８に移行する以前に、補正後目標カウント値Ｃｅｎ*＿Ｐ１が演算されている場合、当該値をキャンセルする。
【００６９】
ここで、ノイズフラグＸｎｏｉｚ＿Ｐ１について説明する。
信号Ｐ１のエッジが検出されていない場合、Ｘｎｏｉｚ＿Ｐ１＝０とする。このとき、補正後目標カウント値Ｃｅｎ*＿Ｐ１の演算は、未実施である。信号Ｐ１にノイズやチャタリングが生じている場合、Ｘｎｏｉｚ＝１とする。このとき、補正後目標カウント値Ｃｅｎ*＿Ｐ１が既に演算されている場合はキャンセルする。信号Ｐ１が正常であって、エッジ検出ウィンドウ内にて１つのエッジが検出された場合、Ｘｎｏｉｚ＝１とする。このとき、目標カウント値Ｃｅｎ*として反映可能な補正後目標カウント値Ｃｅｎ*＿Ｐ１が演算される。
【００７０】
信号Ｐ１以外の場合の補正値演算処理について補足しておく。
信号Ｐ１と信号Ｐ２とは、同様の信号であるので、信号Ｐ２に基づく補正値演算処理は、単に信号Ｐ１を信号Ｐ２に読み替えればよい。なお、スイッチ１６１、１６２の検出精度等が異なっている場合、エッジ検出ウィンドウの範囲は、異なっていてもよい。スイッチ１６３、１６４についても同様である。
信号ＮＰ１は、信号Ｐ１とは異なる信号であるので、エッジ検出ウィンドウの範囲、および、補正量Ｃａ＿ＮＰ１が異なっている。信号ＮＰ１のエッジ検出ウィンドウは、信号ＮＰ１のエッジばらつき、および、ガタ空走区間を考慮し、信号ＮＰ１のエッジが検出されうる範囲に設定される。
【００７１】
補正量Ｃａ＿ＮＰ１は、ドライバ要求シフトレンジに応じて設定される値であって、ＰレンジからＮｏｔＰレンジに切り替える場合の補正量Ｃａ＿ＮＰ１は、信号ＮＰ１のエッジ検出中心と凹部２２の中心とのなす角度に応じた設計値である。また、ＮｏｔＰレンジからＰレンジに切り替える場合の補正量Ｃａ＿ＮＰ１は、信号ＮＰ１のエッジ検出中心と凹部２３の中心とのなす角度に応じた設計値である。
また、信号ＮＰ１と信号ＮＰ２とは同様の信号であるので、信号ＮＰ２での補正値演算処理については、信号ＮＰ１での補正値演算処理と同様とすればよい。
【００７２】
図１１に戻り、Ｓ２０１〜Ｓ２０４に続いて移行するＳ２０５では、目標角度設定部５３は、ノイズフラグＸｎｏｉｚ＿＃＝２があるか否かを判断する。ノイズフラグＸｎｏｉｚ＿＃＝２があると判断された場合（Ｓ２０５：ＹＥＳ）、すなわち信号Ｐ１、Ｐ２、ＮＰ１、ＮＰ２のうちの少なくとも１つに基づき、補正後目標カウント値Ｃｅｎ*＿＃が正常に演算できた場合、Ｓ２０７へ移行する。ノイズフラグＸｎｏｉｓ＿＃＝２がないと判断された場合（Ｓ２０５：ＮＯ）、すなわち正常に演算された補正後目標カウント値Ｃｅｎ*＿＃がない場合、Ｓ２０６へ移行する。
【００７３】
Ｓ２０６では、目標角度設定部５３は、ノイズフラグＸｎｏｉｚ＿＃＝０があるか否かを判断する。ノイズフラグＸｎｏｉｚ＿＃＝０があると判断された場合（Ｓ２０８：ＹＥＳ）、すなわち、エッジ未検出の信号がある場合、Ｓ２０８へ移行する。なお、全てのエッジ検出ウィンドウ通過後に、Ｓ２０６にて肯定判断された場合には、Ｓ２０９へ移行するようにしてもよい。ノイズフラグＸｎｏｉｚ＿＃＝０がないと判断された場合（Ｓ２０８：ＮＯ）、Ｓ２０９へ移行する。
【００７４】
少なくとも１つの信号に基づく補正後目標カウント値Ｃｅｎ*＿＃が正常に演算された場合（Ｓ２０５：ＹＥＳ）に移行するＳ２０７では、目標角度設定部５３は、正常に演算された補正後目標カウント値Ｃｅｎ*＿＃を選択し、選択された値を目標カウント値Ｃｅｎ*に反映する。
複数の補正後目標カウント値Ｃｅｎ*＿＃が正常に演算された場合、任意の値を選択可能である。
【００７５】
例えば、全ての信号Ｐ１、Ｐ２、ＮＰ１、ＮＰ２に基づく補正後目標カウント値Ｃｅｎ*＿＃が正常に演算されたており、信号Ｐ１、Ｐ２に基づく補正後目標カウント値Ｃｅｎ*＿Ｐ１、Ｃｅｎ*＿Ｐ２の差と、信号ＮＰ１、ＮＰ２に基づく補正後目標カウント値Ｃｅｎ*＿ＮＰ１、Ｃｅｎ*＿ＮＰ２の差と、が異なる場合、差が小さい信号群の方が、より信頼性が高いとみなす。例えば、補正後目標カウント値Ｃｅｎ*＿Ｐ１、Ｃｅｎ*＿Ｐ２の差の方が小さければ、信号ＮＰ１、ＮＰ２と比較して、信号Ｐ１、Ｐ２の信頼性が高いとみなす、といった具合である。この場合、補正後目標カウント値Ｃｅｎ*＿Ｐ１、Ｃｅｎ*＿Ｐ２のいずれか、または、２つの平均値等を選択するようにしてもよい。
【００７６】
また、ＰレンジからＮｏｔＰレンジへの切り替えであれば、ＮｏｔＰレンジの検出に係る信号ＮＰ１、ＮＰ２に基づく補正後目標カウント値Ｃｅｎ*＿ＮＰ１、Ｃｅｎ*＿ＮＰ２を優先的に選択するようにしてもよい。同様に、ＮｏｔＰレンジからＰレンジへの切り替えであれば、Ｐレンジの検出に係る信号Ｐ１、Ｐ２に基づく補正後目標カウント値Ｃｅｎ*＿Ｐ１、Ｃｅｎ*＿Ｐ２を優先的に選択するようにしてもよい。
【００７７】
正常に演算された補正後目標カウント値Ｃｅｎ*＿＃がなく、かつ、エッジ未検出の信号がある場合（Ｓ２０５：ＮＯ、かつ、Ｓ２０６：ＹＥＳ）に移行するＳ２０８では、目標角度設定部５３は、目標カウント値Ｃｅｎ*をデフォルト値Ｃｅｎ*＿ｄｆとする。
【００７８】
正常に演算された補正後目標カウント値Ｃｅｎ*＿＃がなく、かつ、エッジ未検出の信号がない場合（Ｓ２０５：ＮＯ、かつ、Ｓ２０６：ＮＯ）、すなわち全てのノイズフラグＸｎｏｉｚ＿＃＝１である場合に移行するＳ２０９では、目標角度設定部５３は、目標カウント値Ｃｅｎ*を信号異常時目標値Ｃｅｎ*＿ｅｒｒとする。
【００７９】
Ｓ２１０では、ＥＣＵ５０は、例えばインスツルメンタルパネルのウォーニングランプを点灯させ、シフトバイワイヤシステム１に異常が生じていることをユーザに警告する。ユーザへの警告方法は、ウォーニングランプの点灯に限らず、音声での案内等、どのような方法でもよい。これにより、修理工場等への持ち込みを促す。
【００８０】
図９に戻り、全信号Ｐ１、Ｐ２、ＮＰ１、ＮＰ２による補正値演算処理がエラーであって、目標カウント値Ｃｅｎ*が信号異常時目標値Ｃｅｎ*＿ｅｒｒである場合（Ｓ１０６：ＹＥＳ）に移行するＳ１０７およびＳ１０８の処理について説明する。
Ｓ１０７では、駆動制御部５５は、目標カウント値Ｃｅｎ*である信号異常時目標値Ｃｅｎ*＿ｅｒｒに基づき、電流制限制御を行う。信号異常時目標値Ｃｅｎ*＿ｅｒｒは、ガタ空走区間が最大のときに要求シフトレンジまで回転させるのに要する目標値よりも大きい値とする。信号異常時目標値Ｃｅｎ*＿ｅｒｒは、設定可能な最大値（例えば「９９９９」）等としてもよい。目標カウント値Ｃｅｎ*を信号異常時目標値Ｃｅｎ*＿ｅｒｒとすることで、ディテントローラ２６を壁２２５、２３５（図８参照）に当接させるように、モータ１０を回転させる。詳細には、ＰレンジからＮｏｔＰレンジに切り替える場合、ディテントローラ２６を壁２２５に当接させ、ＮｏｔＰレンジからＰレンジに切り替える場合、ディテントローラ２６を壁２３５に当接させる。
【００８１】
また、駆動制御部５５は、電流制限制御により、モータ１０の回転速度を制限する。本実施形態では、デューティを所定の低速回転値に制限する。電流制限制御を行うことで、ディテントローラ２６が壁２２５、２３５に当接する際の衝撃を低減する。
Ｓ１０８では、駆動制御部５５は、電流制限制御を開始してから制限継続時間Ｔｄが経過したか否かを判断する。制限継続時間Ｔｄは、電流制限制御によりモータ１０を制御したときに、ディテントローラ２６が所望の凹部に至るのに要する時間より長い時間に設定される。電流制限制御を開始してから制限継続時間Ｔｄが経過していないと判断された場合（Ｓ１０８：ＮＯ）、この判断処理を繰り返す。電流制限制御を開始してから制限継続時間Ｔｄが経過したと判断された場合（Ｓ１０８：ＹＥＳ）、Ｓ１１３へ移行し、モータ１０の制御状態を通電オフ制御とする。
【００８２】
本実施形態の駆動制御処理を図１３のタイムチャートに基づいて説明する。図１３では、（ａ）がモータ角度、（ｂ）が信号Ｐ、（ｃ）が信号ＮＰ、（ｄ）がノイズフラグＸｎｏｉｚ＿Ｐ、（ｅ）がノイズフラグＸｎｏｉｚ＿ＮＰ、（ｆ）が通電フラグを示す。図１３（ａ）では、モータ角度をエンコーダ１３のカウント値で表す。
信号Ｐ１および信号Ｐ２は同様の二重系信号であるので、図１３（ｂ）ではまとめて「信号Ｐ」とする。同様に、信号ＮＰ１および信号ＮＰ２は同様の二重系信号であるので、図１３（ｃ）ではまとめて「信号ＮＰ」とする。ノイズフラグについても同様、信号Ｐ１に係るフラグと信号Ｐ２に係るフラグとをまとめて、ノイズフラグＸｎｏｉｚ＿Ｐとし、信号ＮＰ１に係るフラグと信号ＮＰ２に係るフラグとをまとめて、ノイズフラグＸｎｏｉｚ＿ＮＰとする。図１３では、検出ウィンドウ内にて１回のエッジが正常に検出される場合を例に説明する。
【００８３】
時刻ｔ１１にて、ドライバ要求シフトレンジがＰレンジからＮｏｔＰレンジに変化すると、通電フラグがオフからオンに切り替わる。切替制御部７５は、モータ１０の制御状態を通電オフ制御からフィードバック制御に切り替え、モータ１０が回転する。このとき、目標カウント値Ｃｅｎ*は、デフォルト値Ｃｅｎ*＿ｄｆに設定される。
【００８４】
時刻ｔ１２にて、信号Ｐがオンからオフに切り替わり、信号Ｐのエッジが検出される。このエッジは、実カウント値ＣｅｎがＰエッジ検出ウィンドウ内であるときに検出されているので、ノイズフラグＸｎｏｉｚ＿Ｐ＝２とし、エッジが検出されたタイミングである時刻ｔ１２の実カウント値Ｃｅｎに補正量Ｃａ＿Ｐを加算し、補正後目標カウント値Ｃｅｎ*＿Ｐを演算する。また、演算された補正後目標カウント値Ｃｅｎ*＿Ｐを、目標カウント値Ｃｅｎ*に反映させる。
なお、時刻ｔ１２の時点では、ＮＰエッジ検出ウィンドウの手前であって、信号ＮＰのエッジは検出されていないので、ノイズフラグＸｎｏｉｚ＿ＮＰ＝０のままである。
【００８５】
時刻ｔ１３にて、信号ＮＰがオフからオンに切り替わり、信号ＮＰのエッジが検出される。このエッジは、実カウント値ＣｅｎがＮＰエッジ検出ウィンドウ内であるときに検出されているので、ノイズフラグＸｎｏｉｚ＿ＮＰ＝２とし、エッジが検出されたタイミングである時刻ｔ１３の実カウント値Ｃｅｎに補正量Ｃａ＿ＮＰを加算し、補正後目標カウント値Ｃｅｎ*＿ＮＰを演算する。また、目標カウント値Ｃｅｎ*として、補正後目標カウント値Ｃｅｎ*＿ＮＰを選択、反映させる。
【００８６】
また、モータ１０が目標カウント値Ｃｅｎ*にて停止するように、角度偏差ｅに基づき、フィードバック制御と固定相通電制御とを切り替えている。固定相通電制御に切り替えた後、通電継続時間Ｔａが経過した時刻ｔ１４にて、通電フラグをオフにする。
本実施形態では、角度偏差ｅが角度判定閾値ｅ＿ｔｈ以下となった場合、モータ１０の制御状態を、フィードバック制御から固定相通電制御に切り替える。固定相通電とすることで、モータ１０を速やかに停止させることができる。また、固定相通電制御を、通電継続時間Ｔａに亘って継続することで、モータ１０を確実に停止させることができ、ディテントローラ２６を要求シフトレンジに応じた凹部に適切に嵌め込むことができる。
【００８７】
本実施形態では、モータ１０としてＤＣブラシレスモータを用いており、角度偏差ｅが角度判定閾値ｅ＿ｔｈより大きい場合、フィードバック制御としているので、応答性を高めることができる。また、速度状態が定常状態または減速状態のとき、位相進みフィルタ処理を行った位相進み値Ｍｓｐ＿ｐｌをフィードバックしているので、ハンチングを抑制することができる。
【００８８】
本実施形態では、信号Ｐについて、複数のエッジが検出された場合、または、Ｐエッジ検出ウィンドウ外にてエッジが検出された場合、信号Ｐにノイズやチャタリングが生じている可能性がある。そこで本実施形態では、このような場合、信号Ｐに基づく目標カウント値Ｃｅｎ*の補正を無効にしている。
同様に、信号ＮＰについて、複数エッジが検出された場合、または、ＮＰエッジ検出ウィンドウ外にてエッジが検出された場合、信号ＮＰのノイズやチャタリングが生じている可能性があるので、信号ＮＰに基づく目標カウント値Ｃｅｎ*の補正を無効にしている。
これにより、ノイズやチャタリングが生じている信号による目標カウント値Ｃｅｎ*の誤補正を防いでいる。
【００８９】
また、本実施形態では、信号Ｐおよび信号ＮＰを二重化し、計４つの信号に基づいた目標カウント値Ｃｅｎ*の補正が可能である。そのため、４つの信号のうちの少なくとも１つにて、正常なエッジ検出ができれば、目標カウント値Ｃｅｎ*を補正可能である。これにより、モータ１０の駆動を開始してから、モータ軸１０５と減速機１４とが当接するまでのガタ空走区間に応じて補正された目標カウント値Ｃｅｎ*に基づいてモータ１０の駆動が制御されるので、モータ１０を適切に制御することができ、ディテントローラ２６を所望の凹部に適切に嵌め込むことができる。
【００９０】
さらに、全ての信号のエッジを正常に検出できなかった場合、電流を制限しつつ、ディテントローラ２６が壁２２５、２３５に当接するようにモータ１０を制御する壁当て制御を行っている。これにより、全ての信号のエッジを正常に検出できなかった場合であっても、レンジの切り替えが可能である。
【００９１】
以上説明したように、シフトレンジ制御装置４０は、モータ１０の駆動を制御することでシフトレンジを切り替える。
シフトレンジ制御装置４０は、目標角度設定部５３と、駆動制御部５５と、を備える。
出力軸センサ１６は、モータ１０の駆動が伝達される出力軸１５のシフトレンジに応じた回転位置にてオンオフされる複数のスイッチ１６１〜１６４を有する。
目標角度設定部５３は、出力軸センサ１６から、スイッチ１６１〜１６４に応じた信号Ｐ１、Ｐ２、ＮＰ１、ＮＰ２を取得する。また、目標角度設定部５３は、要求シフトレンジに応じた目標カウント値Ｃｅｎ*を、それぞれの信号Ｐ１、Ｐ２、ＮＰ１、ＮＰ２に応じて補正可能である。
駆動制御部５５は、目標カウント値Ｃｅｎ*に基づき、モータ１０の駆動を制御する。
【００９２】
信号Ｐ１、Ｐ２、ＮＰ１、ＮＰ２の立ち上がり、または、立ち下がりを、エッジとする。
目標角度設定部５３は、それぞれの信号Ｐ１、Ｐ２、ＮＰ１、ＮＰ２について、補正後目標カウント値Ｃｅｎ*＿＃を演算する。
詳細には、目標角度設定部５３は、信号Ｐ１について、信号Ｐ１に応じた検出範囲であるＰ１エッジ検出ウィンドウ内にて、正規数（本実施形態では１）のエッジが検出された場合、エッジの検出タイミングにおけるモータ１０の回転角度である実カウント値Ｃｅｎに基づき、補正後目標カウント値Ｃｅｎ*＿Ｐ１を演算する。また、信号Ｐ１について、正規数よりも多いエッジが検出された場合、または、Ｐ１エッジ検出ウィンドウ外にてエッジが検出された場合、信号Ｐ１に基づく目標カウント値Ｃｅｎ*の補正を無効にする。
信号Ｐ２、ＮＰ１、ＮＰ２についても同様である。
【００９３】
本実施形態では、出力軸センサ１６が複数のスイッチ１６１〜１６４を有しており、スイッチ１６１〜１６４のそれぞれの信号Ｐ１、Ｐ２、ＮＰ１、ＮＰ２に基づいて目標カウント値Ｃｅｎ*を補正可能であるので、少なくとも１つの信号Ｐ１、Ｐ２、ＮＰ１、ＮＰ２が正常であれば、目標カウント値Ｃｅｎ*を適切に補正することができる。
また、正規数より多いエッジが検出された場合、または、検出ウィンドウ外にてエッジが検出された場合、当該信号には、ノイズやチャタリングが生じている虞があるので、当該信号に基づく目標カウント値Ｃｅｎ*の補正を無効にする。これにより、ノイズやチャタリングによる目標カウント値Ｃｅｎ*の誤補正を防ぐことができる。
【００９４】
全ての信号Ｐ１、Ｐ２、ＮＰ１、ＮＰ２に基づく目標カウント値Ｃｅｎ*の補正が無効である場合、目標角度設定部５３は、目標カウント値Ｃｅｎ*を、切り替え前後のシフトレンジに応じて設定されるデフォルト値Ｃｅｎ*＿ｄｆよりも大きい値である信号異常時目標値Ｃｅｎ*＿ｅｒｒとする。
駆動制御部５５は、モータ１０に通電される電流を制限する電流制限制御を行う。また、駆動制御部５５は、電流制限制御を開始してから、制限継続時間Ｔｄが経過した場合、モータ１０への通電をオフにする。
これにより、全ての信号Ｐ１、Ｐ２、ＮＰ１、ＮＰ２にノイズやチャタリングが生じている場合であっても、シフトレンジを切り替え可能である。
【００９５】
本実施形態では、目標カウント値Ｃｅｎ*が「モータ角度目標値」、補正後目標カウント値Ｃｅｎ*＿＃が「補正後モータ角度目標値」、実カウント値Ｃｅｎが「モータ角度」に対応する。また、信号Ｐ１、Ｐ２、ＮＰ１、ＮＰ２が「出力軸信号」に対応し、エッジ検出ウィンドウが「検出範囲」に対応する。
【００９６】
（他の実施形態）
（ア）目標補正処理
上記実施形態では、信号Ｐが、オンまたはオフの一方から他方に切り替わった場合、エッジが検出されたと判定する。他の実施形態では、信号Ｐが例えばオンからオフに切り替わる場合、信号Ｐのオフが所定回数（例えば３回）連続で検出された場合、エッジが検出されたと判定するようにしてもよい。オフからオンへの切り替え時、また、信号ＮＰについても同様である。なお、複数回のオンまたはオフ検出にてエッジ検出を行う場合、最初にオンまたはオフの一方から他方への切り替えが検出されたときのモータ角度に基づいて、補正後目標カウント値を演算する。
上記実施形態では、エッジ検出の正規数を１とした。他の実施形態では、エッジ検出の正規数を２以上としてもよい。
【００９７】
上記実施形態では、エッジが検出される毎に、モータ角度目標値が補正される。他の実施形態では、ＰレンジからＮｏｔＰレンジに切り替える場合、ＮＰエッジ検出ウィンドウを通過後に、モータ角度目標値を補正してもよい。また他の実施形態では、ＰレンジからＮｏｔＰレンジに切り替える場合、Ｐエッジ検出範囲を通過後に、信号Ｐに基づくモータ角度目標値の補正を行い、ＮＰエッジ検出範囲を通過後に、信号ＮＰに基づくモータ角度目標値の補正を行うといった具合に、それぞれのエッジ検出範囲を通過したときに、当該検出範囲に係る出力軸信号に基づくモータ角度目標値の補正を行ってもよい。ＮｏｔＰレンジからＰレンジに切り替える場合も同様である。
【００９８】
上記実施形態では、全ての出力軸信号によるモータ角度目標値の補正が無効である場合、モータ角度目標値を信号異常時目標値とし、電流制限制御により、モータを駆動する。他の実施形態では、全ての出力軸信号によるモータ角度目標値の補正が無効である場合、無効が確定した段階で、モータへの通電をオフし、シフトレンジの切り替えを禁止してもよい。
【００９９】
（イ）出力軸センサ
上記実施形態では、出力軸センサは、Ｐレンジを検出するＰスイッチ、および、ＮｏｔＰレンジを検出するＮＰスイッチが、それぞれ２つずつ設けられる。他の実施形態では、各レンジに応じたスイッチは、１つでもよいし、３つ以上であってもよい。
【０１００】
（ウ）モータ
上記実施形態では、モータは、永久磁石式の３相ブラシレスモータである。他の実施形態では、モータは、ＳＲモータ等、どのようなものを用いてもよい。また、上記実施形態では、モータに２組の巻線組が設けられる。他の実施形態では、モータの巻線組は、１組でもよいし３組以上であってもよい。また、モータの制御方法は、上記実施形態に限らず、どのような制御方法であってもよい。
上記実施形態では、モータの回転角を検出する回転角センサとして、エンコーダを用いる。他の実施形態では、回転角センサは、エンコーダに限らず、レゾルバ等、どのようなものを用いてもよい。
【０１０１】
（エ）レンジ切替機構
上記実施形態では、ディテントプレートには２つの凹部が設けられる。他の実施形態では、凹部の数は、２つに限らず、３つ以上であってもよい。凹部が３つ以上の場合、出力軸センサには、凹部の数に応じて出力軸センサのスイッチを設けてもよい。
また、シフトレンジ切替機構やパーキングロック機構等は、上記実施形態と異なっていてもよい。
以上、本発明は、上記実施形態になんら限定されるものではなく、発明の趣旨を逸脱しない範囲において種々の形態で実施可能である。
【符号の説明】
【０１０２】
１・・・シフトバイワイヤシステム
１０・・・モータ
１５・・・出力軸
１６・・・出力軸センサ
１６１〜１６４・・・スイッチ
４０・・・シフトレンジ制御装置
５０・・・ＥＣＵ
５３・・・目標角度設定部
５５・・・駆動制御部
【図１】
2018071593.tif 000003
【図２】
2018071593.tif 000004
【図３】
2018071593.tif 000005
【図４】
2018071593.tif 000006
【図５】
2018071593.tif 000007
【図６】
2018071593.tif 000008
【図７】
2018071593.tif 000009
【図８】
2018071593.tif 000010
【図９】
2018071593.tif 000011
【図１０】
2018071593.tif 000012
【図１１】
2018071593.tif 000013
【図１２】
2018071593.tif 000014
【図１３】
2018071593.tif 000015