JP4082164B2 - モータ制御装置 - Google Patents
モータ制御装置 Download PDFInfo
- Publication number
- JP4082164B2 JP4082164B2 JP2002293270A JP2002293270A JP4082164B2 JP 4082164 B2 JP4082164 B2 JP 4082164B2 JP 2002293270 A JP2002293270 A JP 2002293270A JP 2002293270 A JP2002293270 A JP 2002293270A JP 4082164 B2 JP4082164 B2 JP 4082164B2
- Authority
- JP
- Japan
- Prior art keywords
- phase
- rotor
- encoder
- initial drive
- energized
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Control Of Electric Motors In General (AREA)
Description
【発明の属する技術分野】
本発明は、エンコーダのパルス信号のカウント値に基づいてロータの回転位置を検出してモータの通電相を順次切り換えることでロータを目標位置まで回転駆動するモータ制御装置に関するものである。
【0002】
【従来の技術】
近年、構造が簡単で安価なモータとして需要が増加しているスイッチトリラクタンスモータ等のブラシレス型のモータは、ロータの回転に同期してパルス信号を出力するエンコーダを搭載し、このエンコーダのパルス信号をカウントして、そのエンコーダカウント値に基づいてロータの回転位置を検出して通電相を順次切り換えることでロータを回転駆動するようにしたものがある。このようなエンコーダ付きのモータは、起動後のエンコーダカウント値に基づいてロータの回転位置を検出することができるため、フィードバック制御系(F/B制御系)によりロータを目標位置まで回転させる位置切換制御(位置決め制御)を行う各種の位置切換装置の駆動源として用いられている(例えば特許文献1参照)。
【0003】
しかし、この種のエンコーダ付きのモータは、起動後のエンコーダカウント値に基づいてロータの起動位置からの回転量(回転角度)を検出できるだけであるので、電源投入後に、何等かの方法で、ロータの絶対的な回転位置を検出して、ロータの回転位置と通電相との対応関係をとらないと、モータを正常に駆動することができない。
【0004】
そこで、例えば、スイッチトリラクタンスモータでは、特許文献2(特開2000−69779号公報)に示すように、起動開始時(初期駆動時)に、2つの相を同時に励磁(通電)して、ロータの振動が停止するのに必要な一定時間が経過した後に、そのときのロータの回転位置を基準位置として学習して通電相を決めるようにしたものがある。
【0005】
【特許文献1】
特開2001−271917号公報(第4頁〜第8頁等)
【特許文献2】
特開2000−69779号公報(第1頁)
【0006】
【発明が解決しようとする課題】
しかしながら、上記特許文献2のロータ基準位置学習方法では、初期駆動時に2つの相を同時に励磁(通電)してからロータの基準位置を学習するまでに、ロータの振動が停止するまでの一定時間待機する必要があるため、ロータ基準位置の学習に要する時間が長くかかってしまい、モータのフィードバック制御を素早く立ち上げることができないという欠点がある。
【0007】
本発明はこのような事情を考慮してなされたものであり、従ってその目的は、初期駆動時にロータの振動が停止するのを待たずにロータ基準位置の学習を行うことができて、その学習時間を短くすることができ、モータのフィードバック制御を素早く立ち上げることができるモータ制御装置を提供することにある。
【0008】
【課題を解決するための手段】
上記目的を達成するために、本発明の請求項1のモータ制御装置は、モータのロータの回転に同期して所定の位相差(一般的には電気角で90°の位相差)を有するA相信号とB相信号を出力するエンコーダと、このエンコーダのA相信号及び前記B相信号の立ち上がり/立ち下がりのエッジをカウントするエンコーダカウント手段と、このエンコーダカウント手段のカウント値(以下「エンコーダカウント値」という)に基づいて前記ロータの回転位置を検出して前記モータの通電相を順次切り換えることで前記ロータを目標位置まで回転駆動する制御手段とを備え、電源投入後にオープンループ制御により通電相を切り換える初期駆動を実行し、この初期駆動中に前記エンコーダのA相・B相の信号値の組み合わせがその時の通電相に対応する組み合わせになったときの前記エンコーダカウント値に基づいて前記ロータの基準位置を学習し、初期駆動後は、前記エンコーダカウント値を前記基準位置の学習値で補正し、補正後のエンコーダカウント値に基づいて通電相を決定するようにしたものである。
【0009】
本発明のように、A相信号とB相信号を出力するエンコーダを用いれば、A相信号とB相信号の発生順序によってロータの回転方向を判定して、ロータの回転方向に応じてエンコーダカウント値をカウントアップしたりカウントダウンすることができ、ロータが正回転/逆回転のいずれの方向に回転しても、エンコーダカウント値とロータの回転位置との対応関係を維持することができて、正回転/逆回転のいずれの回転方向でも、エンコーダカウント値に基づいてロータの回転位置を検出することができる。
【0010】
この場合、ロータの回転に応じて、エンコーダのA相・B相の信号値の組み合わせが次の▲1▼→▲2▼→▲3▼→▲4▼の順序で繰り返し変化する(図7参照)。
▲1▼A相信号=0(ローレベル)、B相信号=0(ローレベル)
▲2▼A相信号=1(ハイレベル)、B相信号=0(ローレベル)
▲3▼A相信号=1(ハイレベル)、B相信号=1(ハイレベル)
▲4▼A相信号=0(ローレベル)、B相信号=1(ハイレベル)
【0011】
例えば、後述する実施形態のように、通電相を切り換える毎にエンコーダカウント値が2つずつ変化する構成では、1つ目の通電相で▲1▼の状態になると、2つめ目の通電相では▲3▼の状態となり、3つ目の通電相で再び▲1▼の状態に戻るというように、通電相の切り換え毎に▲1▼と▲3▼との間で切り換わる。この場合、1つ目の通電相に切り換えた直後は、ロータが振動しているために、ロータの振動に応じてエンコーダのA相・B相の信号値が▲1▼を中心にして▲2▼又は▲4▼の状態に切り換わるが、2つ目の通電相に対応する▲3▼の位置までは振動しないため、1つ目の通電相に対応する▲1▼の状態になったときに、ロータの回転位置が1つ目の通電相に対応する位置になっていると判断して、その時点のエンコーダカウント値に基づいてロータの基準位置を学習する。このようにすれば、初期駆動時にロータの振動が停止するのを待たずに、ロータの振動中でもロータの基準位置の学習を行うことができて、その学習時間を短くすることができ、モータのフィードバック制御を素早く立ち上げることができる利点がある。
【0012】
尚、通電相の切り換えとエンコーダのA相・B相の信号値の組み合わせとの関係は、上記の例に限定されず、例えば1つ目の通電相で▲2▼、2つめ目の通電相で▲4▼の状態となり、3つ目の通電相で再び▲2▼の状態に戻るというように、通電相の切り換え毎に▲2▼と▲4▼との間で切り換わるように構成しても良い。
【0013】
この場合、ロータの基準位置の学習は1回行うだけでも良いが、請求項2のように、初期駆動中に通電相を切り換える毎にロータの基準位置を学習し、当該初期駆動終了時にそれまでに求めた基準位置の学習値が全て一致しているか否かを判定し、一致していなければ、初期駆動による基準位置の学習を再実行するようにすると良い。このようにすれば、エンコーダの信号にノイズ等が混入しても、基準位置の誤学習を未然に防止することができ、信頼性の高い学習値を求めることができる。本発明では、前述したように、ロータの振動中でも基準位置を学習できるため、基準位置の学習を複数回繰り返しても、ロータの振動が停止するのを待つよりも短い時間で全ての学習を終えることが可能となり、短い学習時間で信頼性の高い基準位置の学習を行うことができる。
【0014】
また、請求項3のように、初期駆動中に通電相の切り換えを一巡させるようにしても良い。このようにすれば、初期駆動の途中まで通電相とロータの回転位置との同期を取ることができなくても、初期駆動を終了するまでに、いずれかの通電相で必ずロータの回転位置と通電相との同期を取ることができて、ロータの基準位置をより確実に学習することができる。
【0015】
また、請求項4のように、初期駆動開始から通電相の切り換えを1回又は数回行うまでは前記基準位置の学習を行わず、それ以後に切り換えられる通電相について前記基準位置の学習を行うようにすると良い。このようにすれば、初期駆動開始後、ロータの回転位置と通電相との同期を確実に取ることができる状態になるのを待って、ロータの基準位置を学習することができ、より信頼性の高い基準位置の学習を行うことができる。
【0016】
また、請求項5のように、モータとしてスイッチトリラクタンスモータを使用するようにしても良い。スイッチトリラクタンスモータは、永久磁石が不要で構造が簡単であるため、安価であり、温度環境等に対する耐久性・信頼性も高いという利点がある。
【0017】
以上説明した請求項1〜5に係る発明は、スイッチトリラクタンスモータ等のブラシレス型のモータを駆動源とする各種の位置切換装置に適用でき、例えば、請求項6のように、車両の自動変速機のレンジを切り換えるレンジ切換機構を駆動するモータの制御装置に適用しても良い。これにより、信頼性の高いモータ駆動式のレンジ切換装置を構成することができる。
【0018】
【発明の実施の形態】
以下、本発明を車両のレンジ切換装置に適用した一実施形態を図面に基づいて説明する。
【0019】
まず、図1に基づいてレンジ切換機構11の構成を説明する。レンジ切換機構11の駆動源となるモータ12は、例えばスイッチトリラクタンスモータにより構成され、減速機構26(図4参照)を内蔵し、その出力軸13の回転位置を検出する出力軸センサ14が設けられている。この出力軸13には、ディテントレバー15が固定されている。
【0020】
また、ディテントレバー15にはL字形のパーキングロッド18が固定され、このパーキングロッド18の先端部に設けられた円錐体19がロックレバー21に当接している。このロックレバー21は、円錐体19の位置に応じて軸22を中心にして上下動してパーキングギヤ20をロック/ロック解除するようになっている。パーキングギヤ20は、自動変速機27の出力軸に設けられ、このパーキングギヤ20がロックレバー21によってロックされると、車両の駆動輪が回り止めされた状態(パーキング状態)に保持される。
【0021】
一方、ディテントレバー15をパーキングレンジ(以下「Pレンジ」と表記する)と他のレンジ(以下「NotPレンジ」と表記する)に保持するためのディテントバネ23が支持ベース17に固定され、このディテントバネ23の先端に設けられた係合部23aがディテントレバー15のPレンジ保持凹部24に嵌まり込んだときに、ディテントレバー15がPレンジの位置に保持され、該ディテントバネ23の係合部23aがディテントレバー15のNotPレンジ保持凹部25に嵌まり込んだときに、ディテントレバー15がNotPレンジの位置に保持されるようになっている。
【0022】
Pレンジでは、パーキングロッド18がロックレバー21に接近する方向に移動して、円錐体19の太い部分がロックレバー21を押し上げてロックレバー21の凸部21aがパーキングギヤ20に嵌まり込んでパーキングギヤ20をロックした状態となり、それによって、自動変速機27の出力軸(駆動輪)がロックされた状態(パーキング状態)に保持される。
【0023】
一方、NotPレンジでは、パーキングロッド18がロックレバー21から離れる方向に移動して、円錐体19の太い部分がロックレバー21から抜け出てロックレバー21が下降し、それによって、ロックレバー21の凸部21aがパーキングギヤ20から外れてパーキングギヤ20のロックが解除され、自動変速機27の出力軸が回転可能な状態(走行可能な状態)に保持される。
【0024】
尚、前述した出力軸センサ14は、モータ12の減速機構26の出力軸13の回転角度に応じた電圧を出力する回転センサ(例えばポテンショメータ)によって構成され、その出力電圧によって現在のレンジがPレンジとNotPレンジのいずれであるかを確認できるようになっている。
【0025】
次に、図2に基づいてモータ12の構成を説明する。本実施形態では、モータ12として、スイッチトリラクタンスモータ(以下「SRモータ」と表記する)が用いられている。このSRモータ12は、ステータ31とロータ32が共に突極構造を持つモータで、永久磁石が不要で構造が簡単であるという利点がある。円筒状のステータ31の内周部には、例えば12個の突極31aが等間隔に形成され、これに対して、ロータ32の外周部には、例えば8個の突極32aが等間隔に形成され、ロータ32の回転に伴い、ロータ32の各突極32aがステータ31の各突極31aと微小ギャップを介して順番に対向するようになっている。ステータ31の12個の突極31aには、U相、V相、W相の合計6個の巻線33と、U’相、V’相、W’相の合計6個の巻線34が順番に巻回されている。尚、ステータ31とロータ32の突極31a,32aの数は適宜変更しても良いことは言うまでもない。
【0026】
本実施形態の巻線33,34の巻回順序は、ステータ31の12個の突極31aに対して、例えば、V相→W相→U相→V相→W相→U相→V’相→W’相→U’相→V’相→W’相→U’相の順序で巻回されている。図3に示すように、U相、V相、W相の合計6個の巻線33と、U’相、V’相、W’相の合計6個の巻線34は、2系統のモータ励磁部35,36を構成するように結線されている。一方のモータ励磁部35は、U相、V相、W相の合計6個の巻線33をY結線して構成され(同じ相の2個の巻線33はそれぞれ直列に接続されている)、他方のモータ励磁部36は、U’相、V’相、W’相の合計6個の巻線34をY結線して構成されている(同じ相の2個の巻線34はそれぞれ直列に接続されている)。2つのモータ励磁部35,36は、U相とU’相が同時に通電され、V相とV’相が同時に通電され、W相とW’相が同時に通電される。
【0027】
これら2つのモータ励磁部35は、車両に搭載されたバッテリ40を電源として、それぞれ別個のモータドライバ37,38によって駆動される。このように、モータ励磁部35,36とモータドライバ37,38をそれぞれ2系統ずつ設けることで、一方の系統が故障しても、他方の系統でSRモータ12を回転させることができるようになっている。図3に示すモータドライバ37,38の回路構成例では、各相毎にトランジスタ等のスイッチング素子39を1個ずつ設けたユニポーラ駆動方式の回路構成としているが、各相毎にスイッチング素子を2個ずつ設けたバイポーラ駆動方式の回路構成を採用しても良い。尚、本発明は、モータ励磁部とモータドライバをそれぞれ1系統ずつ設けた構成としても良いことは言うまでもない。
【0028】
各モータドライバ37,38の各スイッチング素子39のオン/オフは、ECU41(制御手段)によって制御される。図4に示すように、このECU41と各モータドライバ37,38は、レンジ切換制御装置42に搭載され、このレンジ切換制御装置42には、Pレンジへの切換操作を行うPレンジスイッチ43と、NotPレンジへの切換操作を行うNotPレンジスイッチ44の操作信号が入力される。Pレンジスイッチ43又はNotPレンジスイッチ44の操作により選択されたレンジは、インストルメントパネル(図示せず)に設けられたレンジ表示部45に表示される。
【0029】
SRモータ12には、ロータ32の回転位置を検出するためのエンコーダ46が設けられている。このエンコーダ46は、例えば磁気式のロータリエンコーダにより構成されており、その具体的な構成は、図5及び図6に示すように、N極とS極が円周方向に交互に等ピッチで着磁された円環状のロータリマグネット47がロータ32の側面に同軸状に固定され、このロータリマグネット47に対向する位置に、3個のホールIC等の磁気検出素子48,49,50が配置された構成となっている。本実施形態では、ロータリマグネット47のN極とS極の着磁ピッチが7.5°に設定されている。このロータリマグネット47の着磁ピッチ(7.5°)は、SRモータ12の励磁1回当たりのロータ32の回転角度と同じに設定されている。後述するように、1−2相励磁方式でSRモータ12の通電相の切り換えを6回行うと、全ての通電相の切り換えが一巡してロータ32とロータリマグネット47が一体的に7.5°×6=45°回転する。このロータリマグネット47の45°の回転角度範囲に存在するN極とS極の数は、合計6極となっている。
【0030】
更に、ロータ32の基準回転位置に相当する位置のN極(N’)とその両側のS極(S’)がそれ以外の磁極よりも径方向の幅が広くなるように形成されている。尚、本実施形態では、SRモータ12の通電相の切り換えが一巡する間にロータ32とロータリマグネット47が一体的に45°回転することを考慮して、ロータ32の基準回転位置に相当する幅広な着磁部分(N’)が45°ピッチで形成されており、従って、ロータリマグネット47全体として、基準回転位置に相当する幅広な着磁部分(N’)が合計8個形成されている。尚、基準回転位置に相当する幅広な着磁部分(N’)は、ロータリマグネット47全体として、1個のみ形成した構成としても良い。
【0031】
このロータリマグネット47に対して3個の磁気検出素子48,49,50が次のような位置関係で配置されている。A相信号を出力する磁気検出素子48とB相信号を出力する磁気検出素子49は、ロータリマグネット47の幅狭な着磁部分(N,S)と幅広な着磁部分(N’,S’)の両方に対向し得る位置の同一円周上に配置されている。一方、Z相信号を出力する磁気検出素子50は、ロータリマグネット47の幅狭な着磁部分(N,S)よりも径方向外側又は内側の位置で、且つ、幅広な着磁部分(N’,S’)のみに対向し得る位置に配置されている。A相信号とB相信号を出力する2個の磁気検出素子48,49の間隔は、図7に示すように、A相信号とB相信号の位相差が、電気角で90°(機械角で3.75°)となるように設定されている。ここで、“電気角”はA・B相信号の発生周期を1周期(360°)とした場合の角度で、“機械角”は機械的な角度(ロータ32の1回転を360°とした場合の角度)であり、A相信号の立ち下がり(立ち上がり)からB相信号の立ち下がり(立ち上がり)までにロータ32が回転する角度がA相信号とB相信号の位相差の機械角に相当する。また、Z相信号を出力する磁気検出素子50は、Z相信号とB相信号(又はA相信号)との位相差が0となるように配置されている。
【0032】
各磁気検出素子48,49,50の出力は、N極(N’極)と対向したときにハイレベル“1”となり、S極(S’極)と対向したときにローレベル“0”となる。尚、Z相信号用の磁気検出素子50の出力は、ロータ32の基準回転位置に相当する幅広なN’極に対向する毎にハイレベル“1”となり、それ以外の位置では、ローレベル“0”となる。
【0033】
本実施形態では、ECU41が後述する図14のエンコーダカウンタルーチンによってA相信号とB相信号の立ち上がり/立ち下がりの両方のエッジをカウントして、そのエンコーダカウント値に応じてSRモータ12の通電相を切り換えることでロータ32を回転駆動する。この際、A相信号とB相信号の発生順序によってロータ32の回転方向を判定し、正回転(Pレンジ→NotPレンジの回転方向)ではエンコーダカウント値をカウントアップし、逆回転(NotPレンジ→Pレンジの回転方向)ではエンコーダカウント値をカウントダウンする。これにより、ロータ32が正回転/逆回転のいずれの方向に回転しても、エンコーダカウント値とロータ32の回転位置との対応関係が維持されるため、正回転/逆回転のいずれの回転方向でも、エンコーダカウント値によってロータ32の回転位置(回転角度)を検出して、その回転位置に対応した相の巻線33,34に通電してロータ32を回転駆動する。
【0034】
図7は、ロータ32を逆回転方向(NotPレンジ→Pレンジの回転方向)に回転させたときのエンコーダ46の出力波形と通電相の切換パターンを示している。逆回転方向(NotPレンジ→Pレンジの回転方向)と正回転方向(Pレンジ→NotPレンジの回転方向)のいずれの場合も、ロータ32が7.5°回転する毎に1相通電と2相通電とを交互に切り換えるようになっており、ロータ32が45°回転する間に、例えば、U相通電→UW相通電→W相通電→VW相通電→V相通電→UV相通電の順序で通電相の切り換えを一巡するようになっている。そして、この通電相の切り換え毎に、ロータ32が7.5°ずつ回転して、A相、B相信号用の磁気検出素子48,49に対向するロータリマグネット47の磁極がN極→S極(N’極→S’極)又はS極→N極(S’極→N’極)に変化してA相信号とB相信号のレベルが交互に反転し、それによって、ロータ32が7.5°回転する毎に、エンコーダカウント値が2ずつカウントアップ(又はカウントダウン)する。また、通電相の切り換えが一巡してロータ32が45°回転する毎に、Z相用の磁気検出素子50がロータ32の基準回転位置に相当する幅広なN’極に対向して、Z相信号がハイレベル“1”となる。尚、本明細書では、A相、B相、Z相信号がハイレベル“1”となることを、A相、B相、Z相信号が出力されると言う場合がある。
【0035】
このようなエンコーダ46付きのSRモータ12でレンジ切換制御を行う場合は、指令シフトレンジ(目標位置)がPレンジからNotPレンジ又はその反対方向に切り換えられる毎に、ロータ32を回転駆動して、エンコーダカウント値に基づいてSRモータ12の通電相を順次切り換えることでロータ32を目標位置に向かって回転駆動するフィードバック制御(以下「F/B制御」と表記する)を実行し、エンコーダカウント値が目標位置に応じて設定された目標カウント値に到達した時点で、ロータ32の回転位置が目標位置に到達したと判断してF/B制御を終了し、ロータ32を目標位置で停止させるようにしている。
【0036】
ところで、エンコーダカウント値は、ECU41のRAMに記憶されるため、ECU41の電源がオフされると、エンコーダカウント値の記憶が消えてしまう。そのため、ECU41の電源投入直後のエンコーダカウント値(0)は、実際のロータ32の回転位置(通電相)に対応したものとなっていない。従って、エンコーダカウント値に応じて通電相を切り換えるためには、電源投入後にエンコーダカウント値と実際のロータ32の回転位置とを対応させて、エンコーダカウント値と通電相とを対応させる必要がある。
【0037】
そこで、本実施形態では、レンジ切換制御装置42のECU41(制御手段)によって後述する図8及び図9に示す初期駆動ルーチンを実行することで、ECU41への電源投入後の初期駆動時に、オープンループ制御によりSRモータ12の通電相の切り換えを所定のタイムスケジュールで一巡させてエンコーダ46のA相信号及びB相信号のエッジをカウントし、更に、後述する図12に示す基準位置学習ルーチンをAB相割り込み処理により実行することで、初期駆動中に通電相を切り換える毎にエンコーダ46のA相・B相の信号値の組み合わせがその時の通電相に対応する組み合わせになった瞬間を検出して、その時点のエンコーダカウント値に基づいてロータ32の基準位置(本実施形態では初期駆動終了後の最初の通電相に対応するロータ32の回転位置)を学習し、その後のF/B制御時に、エンコーダカウント値を基準位置の学習値で補正し、補正後のエンコーダカウント値に基づいて通電相を決定するようにしている。
【0038】
この初期駆動時の基準位置の学習は、具体的には次のようにして行われる。
図13に示すように、PレンジでECU41に電源が投入されたときに初期駆動を行う場合は、オープンループ制御により、例えば、W相通電→UW相通電→U相通電→UV相通電→V相通電→VW相通電の順序で通電相の切り換えを所定のタイムスケジュールで一巡し、ロータ32を正回転方向(Pレンジ→NotPレンジの回転方向)に駆動する。
【0039】
一方、NotPレンジでECU41に電源が投入されたときに初期駆動を行う場合は、例えば、V相通電→UV相通電→U相通電→UW相通電→W相通電→VW相通電の順序で通電相の切り換えを所定のタイムスケジュールで一巡し、ロータ32を逆回転方向(NotPレンジ→Pレンジの回転方向)に駆動する。
【0040】
このように、初期駆動時に通電相の切り換えを一巡させれば、初期駆動の途中まで通電相とロータ32の回転位置との同期を取ることができなくても、初期駆動を終了するまでに、いずれかの通電相で必ずロータ32の回転位置と通電相との同期を取ることができて、ロータ32の基準位置を確実に学習することができる。初期駆動中に、ロータ32の回転位置と通電相との同期が取れた後は、通電相の切り換えに同期してロータ32が回転して、このロータ32の回転に同期してエンコーダ46からA相信号及びB相信号が出力されるようになる。
【0041】
この初期駆動中に、エンコーダ46のA相信号及びB相信号の立ち上がり/立ち下がりの両方のエッジをカウントする。従って、通電相の切り換えに同期してロータ32が回転すれば、通電相を切り換える毎にエンコーダカウント値が2つずつ変化する。
【0042】
図13の例では、初期駆動時に最初の通電相(W相)からロータ32が同期して回転し、通電相の切り換え毎にロータ32が7.5°ずつ回転してエンコーダカウント値が2ずつカウントアップし、初期駆動終了時にエンコーダカウント値が12となる。
【0043】
これに対し、例えば、初めの2回の励磁(W相通電→UW相通電)でロータ32が回転しない場合、つまり3回目以降の励磁(U相通電→UV相通電→V相通電→VW相通電)でロータ32の回転位置と通電相とが同期して初期駆動中にロータ32が4回の励磁分だけ回転する場合は、初期駆動終了時までにロータ32が7.5°×4=30°回転して、エンコーダカウント値が2×4=8となる。従って、初期駆動終了時のエンコーダカウント値を見れば、初期駆動が終了するまでにロータ32が実際に通電相の切り換えに同期して回転した角度(回転量)が判明する。
【0044】
初期駆動の最後の通電相は、常にVW相となるが、エンコーダカウント値は、必ずしも12になるとは限らず、例えば10、或は8である場合もある。初期駆動終了後のF/B制御時には、エンコーダカウント値に基づいて通電相が決定されるため、初期駆動によるエンコーダカウント値のずれを修正しないと、F/B制御時に正しい通電相を選択することができない。
【0045】
そこで、本実施形態では、初期駆動中に通電相を切り換える毎に、エンコーダ46のA相・B相の信号値の組み合わせがその時の通電相に対応する組み合わせになった瞬間を検出して、その時点のエンコーダカウント値Ncntに基づいてロータ32の基準位置(本実施形態では初期駆動終了後の最初の通電相に対応するロータ32の回転位置)の学習値Gcntを次式により演算する。
【0046】
[現在のレンジがPレンジの場合]
Gcnt=Ncnt+2×(6−CASE)
[現在のレンジがNotPレンジの場合]
Gcnt=Ncnt−2×(6−CASE)
ここで、CASEは、初期駆動中の励磁回数(通電相の切り換え回数)に応じて1ずつカウントアップする励磁回数カウンタであり、初期駆動開始時の1回目の励磁でCASE=0、2回目の励磁でCASE=1、3回目の励磁でCASE=2、……、初期駆動の最後の励磁(6回目の励磁)でCASE=5となる。
【0047】
上式において、2×(6−CASE)は、基準位置学習値Gcntを演算する時のロータ32の実際の回転位置から基準位置(本実施形態では初期駆動終了後の最初の通電相に対応するロータ32の回転位置)までの回転角度に相当するカウントアップ値である。
【0048】
例えば、初期駆動時に最初の通電相(W相)からロータ32が同期して回転した場合は、通電相を切り換える毎に、ロータ32の基準位置学習値Gcntを演算すると、下記の表1に示すように全ての基準位置学習値Gcntが同じ値(この場合はGcnt=14)となる。
【0049】
【表1】
【0050】
また、初期駆動中に、例えば、初めの2回の励磁でロータ32が回転せず、3回目以降の励磁からロータ32が同期して回転する場合には、下記の表2に示すように、ロータ32が同期して回転する3回目以降の励磁(CASE=2〜5)では、全ての基準位置学習値Gcntが同じ値(この場合はGcnt=10)となる。
【0051】
【表2】
【0052】
従って、初期駆動中に通電相の切り換えに同期してロータ32が回転するようになった後は、基準位置学習値Gcntの演算は1回でも良いが、本実施形態では、基準位置学習値Gcntの信頼性を高めるために、初期駆動中に通電相を切り換える毎に、基準位置学習値Gcntを演算し、初期駆動終了時に、それまでに求めた全ての基準位置学習値Gcntが一致しているか否かを判定し、一致していなければ、初期駆動による基準位置学習値Gcntの演算を再実行するようにしている。
【0053】
但し、初期駆動の初めの1回又は2回の励磁では、ロータ32が回転していない可能性があるため、本実施形態では、初期駆動の初めの2回の励磁については、基準位置学習値Gcntの演算を行わず、ロータ32が確実に同期して回転する3回目以降の励磁について、通電相を切り換える毎に基準位置学習値Gcntを演算するようにしている。
【0054】
また、初期駆動中に通電相の切り換えに同期してロータ32が回転するようになった後は、ロータ32の回転に応じて、エンコーダ46のA相・B相の信号値の組み合わせが次の▲1▼→▲2▼→▲3▼→▲4▼の順序で繰り返し変化する(図7参照)。
▲1▼A相信号=0(ローレベル)、B相信号=0(ローレベル)
▲2▼A相信号=1(ハイレベル)、B相信号=0(ローレベル)
▲3▼A相信号=1(ハイレベル)、B相信号=1(ハイレベル)
▲4▼A相信号=0(ローレベル)、B相信号=1(ハイレベル)
【0055】
前述したように、本実施形態では、通電相を切り換える毎にエンコーダカウント値Ncntが2つずつ変化するため、1つ目の通電相で▲1▼の状態になると、2つめ目の通電相では▲3▼の状態となり、3つ目の通電相で再び▲1▼の状態に戻るというように、通電相の切り換え毎に▲1▼と▲3▼との間で切り換わる。この場合、1つ目の通電相に切り換えた直後は、ロータ32が振動しているために、ロータ32の振動に応じてエンコーダ46のA相・B相の信号値が▲1▼を中心にして▲2▼又は▲4▼の状態に切り換わるが、2つ目の通電相に対応する▲3▼の位置までは振動しないため、1つ目の通電相に対応する▲1▼の状態になったときに、ロータ32の回転位置が1つ目の通電相に対応する位置になっていると判断して、その時点のエンコーダカウント値に基づいてロータ32の基準位置を学習する。このようにすれば、初期駆動時にロータ32の振動が停止するのを待たずに、ロータ32の振動中でもロータ32の基準位置の学習を行うことができて、その学習時間を短くすることができ、SRモータ12のF/B制御を素早く立ち上げることができる。
【0056】
本実施形態では、ロータ32の振動中でもロータ32の基準位置の学習を行うことができるため、初期駆動中の1相通電の時間T1と2相通電の時間T2は、例えば10ms程度の短い時間に設定されている。
【0057】
初期駆動終了後のF/B制御時には、エンコーダカウント値Ncntを基準位置学習値Gcntで補正することで、初期駆動終了時のエンコーダカウント値Ncntと通電相(ロータ32の回転位置)とのずれを補正して、F/B制御時に正しい通電相を選択できるようにしている。
【0058】
尚、初期駆動終了後は、図13に示すように、まず初期駆動終了時の通電相(VW相)と同じ相に例えば10ms通電してロータ32の位置を初期駆動終了時の位置に保持し、その後、後述するF/B制御により、その時点のエンコーダカウント値と基準位置学習値とに基づいて通電相を切り換えてロータ32を目標位置Acntの方向へ回転させる。これにより、ロータ32の回転位置(エンコーダカウント値)が目標位置Acntから例えば0.5°以内に到達した時点で、通電相の切り換えを終了してロータ32を停止させ、その後は、同じ相に通電し続けてロータ32の停止状態を保持し、この保持状態を例えば50ms継続する。この後、目標位置Acntが変化しなければ、通電フラグXonをOFFして通電を停止する。
【0059】
以上説明した初期駆動(基準位置学習)とF/B制御は、レンジ切換制御装置42のECU41によって後述する各ルーチンに従って実行される。以下、これら各ルーチンの処理内容を説明する。
【0060】
[初期駆動]
図8及び図9に示す初期駆動ルーチンは、ECU41への電源投入直後(イグニッションスイッチをOFF位置からACC位置へ操作した直後)に、初期駆動が終了するまで所定周期(例えば1ms周期)で実行される。
【0061】
本ルーチンが起動されると、まずステップ101で、オープンループ制御実行フラグXopen=ON、又は、初期駆動異常フラグXfail=ONであるか否かを判定する。ここで、オープンループ制御実行フラグXopenは、エンコーダ46又はSRモータ12が故障したときに実行されるオープンループ制御(フェイルセーフ処理)が実行されているか否かを判定するフラグであり、ONは実行されていることを意味する。また、初期駆動異常フラグXfailは、初期駆動が異常で基準位置の学習を失敗した場合に後述するステップ122でONにセットされるフラグである。
【0062】
もし、上記ステップ101で、「Yes」と判定されれば、以降の処理を行うことなく、本ルーチンを終了し、「No」と判定されれば、ステップ102に進み、ECU41のイニシャル処理から出力軸センサ14の出力電圧が安定するまで待つための所定時間(例えば100ms)が経過したか否かを判定する。そして、イニシャル処理から所定時間経過した時点で、ステップ103に進み、出力軸センサ14の出力電圧を読み込んで、この出力電圧がレンジ判定値以下であるか否かで、現在のレンジがPレンジかNotPレンジかを判定し、Pレンジであれば、ステップ104に進み、レンジ判定フラグXnpをPレンジを意味する「0」にセットし、NotPレンジであれば、ステップ105に進み、レンジ判定フラグXnpをNotPレンジを意味する「1」にセットする。
【0063】
この後、ステップ106に進み、レンジ判定フラグXnp=0(Pレンジ)であるか否かを判定し、レンジ判定フラグXnp=0(Pレンジ)であれば、ステップ107に進み、図10のPレンジ初期駆動ルーチンを実行し、レンジ判定フラグXnp=1(NotPレンジ)であれば、ステップ108に進み、図11のNotPレンジ初期駆動ルーチンを実行する。
【0064】
上記ステップ107で、図10のPレンジ初期駆動ルーチンが起動されると、ステップ201〜206で、初期駆動中の励磁回数をカウントする励磁回数カウンタCASEが0〜5のいずれであるかを判定する。この励磁回数カウンタCASEは、イニシャル処理でセットされる初期値が0で、励磁を1回行う毎に1ずつカウントアップされる(図9のステップ114)。そして、励磁回数カウンタCASEの判定結果に応じて通電相と通電時間Tを次のように設定する。
【0065】
CASE=0(1回目の励磁)の場合は、ステップ207に進み、W相通電を選択し、その通電時間TをT1(例えば10ms)にセットする。
CASE=1(2回目の励磁)の場合は、ステップ208に進み、UW相通電を選択し、その通電時間TをT2(例えば10ms)にセットする。
【0066】
CASE=2(3回目の励磁)の場合は、ステップ209に進み、U相通電を選択し、その通電時間TをT1(例えば10ms)にセットする。
CASE=3(4回目の励磁)の場合は、ステップ210に進み、UV相通電を選択し、その通電時間TをT2(例えば10ms)にセットする。
【0067】
CASE=4(5回目の励磁)の場合は、ステップ211に進み、V相通電を選択し、その通電時間TをT1(例えば10ms)にセットする。
CASE=5(6回目の励磁)の場合は、ステップ212に進み、VW相通電を選択し、その通電時間TをT2(例えば10ms)にセットする。
【0068】
これにより、Pレンジで初期駆動を行う場合は、W相通電→UW相通電→U相通電→UV相通電→V相通電→VW相通電の順序で通電相の切り換えを一巡し、ロータ32を正回転方向(Pレンジ→NotPレンジの回転方向)に駆動する。この際、1相通電の時間T1を2相通電の時間T2よりも短く設定する。
【0069】
一方、ステップ108で、図11のNotPレンジ初期駆動ルーチンが起動されると、ステップ221〜226で、励磁回数カウンタCASEが0〜5のいずれであるかを判定し、その判定結果に応じて通電相と通電時間Tを次のように設定する。
【0070】
CASE=0(1回目の励磁)の場合は、ステップ227に進み、V相通電を選択し、その通電時間TをT1(例えば10ms)にセットする。
CASE=1(2回目の励磁)の場合は、ステップ228に進み、UV相通電を選択し、その通電時間TをT2(例えば10ms)にセットする。
【0071】
CASE=2(3回目の励磁)の場合は、ステップ229に進み、U相通電を選択し、その通電時間TをT1(例えば10ms)にセットする。
CASE=3(4回目の励磁)の場合は、ステップ230に進み、UW相通電を選択し、その通電時間TをT2(例えば10ms)にセットする。
【0072】
CASE=4(5回目の励磁)の場合は、ステップ231に進み、W相通電を選択し、その通電時間TをT1(例えば10ms)にセットする。
CASE=5(6回目の励磁)の場合は、ステップ232に進み、VW相通電を選択し、その通電時間TをT2(例えば10ms)にセットする。
【0073】
これにより、NotPレンジで初期駆動を行う場合は、V相通電→UV相通電→U相通電→UW相通電→W相通電→VW相通電の順序で通電相の切り換えを一巡し、ロータ32を逆回転方向(NotPレンジ→Pレンジの回転方向)に駆動する。この場合も、1相通電の時間T1を2相通電の時間T2よりも短く設定する。
【0074】
以上のようにして、図10のPレンジ初期駆動ルーチン又は図11のNotPレンジ初期駆動ルーチンを実行した後、図8のステップ112に進み、現在の通電相の通電時間をカウントする通電時間カウンタCTをカウントアップする。この後、図9のステップ113に進み、現在の通電相の通電時間CTが前記図10又は図11のルーチンで設定した通電時間T(=T1,T2)を越えたか否かを判定し、越えていなければ、以降の処理を行うことなく、本ルーチンを終了する。これにより、現在の通電相の通電時間CTが図10又は図11のルーチンで設定した通電時間T(=T1,T2)を越えるまで、現在の通電相への通電が継続される。
【0075】
その後、現在の通電相の通電時間CTが図10又は図11のルーチンで設定した通電時間T(=T1,T2)を越えた時点で、ステップ114に進み、励磁回数カウンタCASEを1だけカウントアップし、通電相を次の通電相に切り換える。そして、次のステップ115で、通電時間カウンタCTをリセットした後、ステップ116に進み、励磁回数カウンタCASEが初期駆動の終了を意味する「6」に達したか否かを判定し、まだ、励磁回数カウンタCASEが「6」に達していない場合、つまり、初期駆動の途中である場合は、以降の処理を行うことなく、本ルーチンを終了し、初期駆動を継続する。
【0076】
この初期駆動中は、後述する図12の基準位置学習ルーチンをAB相割り込み処理により実行することで、初期駆動開始後にロータ32が確実に同期して回転する3回目以降の励磁について、通電相を切り換える毎(励磁回数カウンタCASEがカウントアップされる毎)に、エンコーダ46のA相・B相の信号値の組み合わせがその時の通電相に対応する組み合わせになった瞬間を検出し、その時点のエンコーダカウント値に基づいて基準位置学習値Gcntを演算する。
【0077】
その後、励磁回数カウンタCASEが「6」に達した時点で、ステップ117に進み、初期駆動終了フラグXendを初期駆動の終了を意味する「ON」にセットする。そして、次のステップ118で、後述する図12の基準位置学習ルーチンによって3回目以降の励磁毎に演算した全ての基準位置学習値Gcnt(3) ,Gcnt(4) ,Gcnt(5) ,Gcnt(6) が一致しているか否かを判定し、一致していれば、初期駆動による基準位置の学習が正常に行われたと判断して、ステップ119に進み、最後の励磁(6回目の励磁)で求めた基準位置学習値Gcnt(6) を最終的な基準位置学習値GcntとしてECU41のRAMに記憶する。
【0078】
これに対して、上記ステップ118で、3回目以降の励磁毎に演算した基準位置学習値Gcnt(3) ,Gcnt(4) ,Gcnt(5) ,Gcnt(6) が一致していないと判定されれば、初期駆動による基準位置の学習が異常であると判断して、ステップ120に進み、再び初期駆動を実行するために、初期駆動繰り返し回数カウンタCFを1カウントアップして、ステップ121に進み、初期駆動繰り返し回数カウンタCFの値が2以上であるか否かを判定する。
【0079】
ECU41の電源投入時に初期化ルーチン(図示せず)によって初期駆動繰り返し回数カウンタCFの初期値が0にセットされるため、1回目の初期駆動が異常で2回目の初期駆動を実行する場合は、ステップ120の処理により、初期駆動繰り返し回数カウンタCFの値が1となり、ステップ121で「No」と判定されて、ステップ123に進み、初期駆動終了フラグXendをOFFにリセットすると共に、励磁回数カウンタCASEを0にリセットする。これにより、2回目の初期駆動(基準位置学習値Gcntの演算)が実行される。
【0080】
その後、2回目の初期駆動中に演算した全ての基準位置学習値Gcnt(3) ,Gcnt(4) ,Gcnt(5) ,Gcnt(6) が一致すれば、ステップ118で「Yes」と判定されて、ステップ119に進み、2回目の初期駆動の最後の励磁(6回目の励磁)で求めた基準位置学習値Gcnt(6) を最終的な基準位置学習値GcntとしてECU41のRAMに記憶する。
【0081】
これに対して、2回目の初期駆動でも、基準位置学習値Gcnt(3) ,Gcnt(4) ,Gcnt(5) ,Gcnt(6) が一致しなかった場合は、2回目の初期駆動も異常であると判断して、ステップ120に進み、初期駆動繰り返し回数カウンタCFを1カウントアップする。これにより、2回目の初期駆動でも異常と判定された場合は、初期駆動繰り返し回数カウンタCFが2となり、ステップ121で「Yes」と判定されてステップ122に済み、初期駆動異常フラグXfailを、初期駆動が異常であることを意味するONにセットして本ルーチンを終了する。
【0082】
初期駆動異常フラグXfailがONにセットされた後は、本ルーチンが起動されても、ステップ101で「Yes」と判定されて、本ルーチンが強制的に終了され、以後、初期駆動(基準位置学習値Gcntの演算)は行われない。
【0083】
尚、本ルーチンでは、2回目の初期駆動でも、基準位置学習値Gcnt(3) ,Gcnt(4) ,Gcnt(5) ,Gcnt(6) が一致しなかった場合は、初期駆動の異常と判定して最終的な基準位置学習値を決定しないようにしたが、例えば、2回目の初期駆動中に演算した基準位置学習値Gcnt(3) ,Gcnt(4) ,Gcnt(5) ,Gcnt(6) の中で、最も多く一致する基準位置学習値又は平均的な基準位置学習値を最終的な基準位置学習値GcntとしてECU41のRAMに記憶するようにしても良い。
【0084】
また、本ルーチンでは、初期駆動の最大繰り返し回数を1回としたが、これを2回以上の適宜回数としても良いことは言うまでもない。
【0085】
[基準位置学習]
図12に示す基準位置学習ルーチンは、AB相割り込み処理によりA相信号とB相信号の立ち上がり/立ち下がりの両方のエッジに同期して起動され、初期駆動開始後にロータ32が確実に同期して回転する3回目以降の励磁について、通電相を切り換える毎(励磁回数カウンタCASEがカウントアップされる毎)にエンコーダ46のA相・B相の信号値の組み合わせがその時の通電相に対応する組み合わせになった瞬間を検出して、その時点のエンコーダカウント値Ncntに基づいて基準位置学習値Gcntを演算する。
【0086】
本実施形態では、励磁回数カウンタCASE(励磁する通電相)とエンコーダ46のA相・B相の信号値の組み合わせとの関係は、次の表3に示すように設定されている。
【0087】
【表3】
【0088】
初期駆動中に通電相の切り換えに同期してロータ32が回転するようになった後は、ロータ32の回転に応じて、エンコーダ46のA相・B相の信号値の組み合わせが次の▲1▼→▲2▼→▲3▼→▲4▼の順序で繰り返し変化する(図7参照)。
▲1▼A相信号=0(ローレベル)、B相信号=0(ローレベル)
▲2▼A相信号=1(ハイレベル)、B相信号=0(ローレベル)
▲3▼A相信号=1(ハイレベル)、B相信号=1(ハイレベル)
▲4▼A相信号=0(ローレベル)、B相信号=1(ハイレベル)
【0089】
本実施形態のように、通電相を切り換える毎にエンコーダカウント値Ncntが2つずつ変化する構成では、1つ目の通電相で▲1▼の状態になると、2つめ目の通電相で▲3▼の状態となり、3つ目の通電相で再び▲1▼の状態に戻るというように、通電相の切り換え毎にエンコーダ46のA相・B相の信号値の組み合わせが▲1▼と▲3▼との間で切り換わる。この関係から、本実施形態では、例えば3つ目の通電相(U相,CASE=2)を励磁しているときに、3つ目の通電相に対応する▲1▼の状態になったときに、ロータ32の回転位置が3つ目の通電相に対応する位置になっていると判断して、その時点のエンコーダカウント値Ncntを用いて基準位置学習値Gcnt(3) を演算し、その後、4つ目の通電相(UV相,CASE=3)を励磁しているときに、4つ目の通電相に対応する▲3▼の状態になったときに、ロータ32の回転位置が4つ目の通電相に対応する位置になっていると判断して、その時点のエンコーダカウント値Ncntを用いて基準位置学習値Gcnt(4) を演算する。
【0090】
図12に示す基準位置学習ルーチンが起動されると、まずステップ251で、励磁回数カウンタCASEの値が2以上であるか否か(つまり励磁回数が3回以上であるか否か)を判定し、励磁回数カウンタCASEの値が2未満であれば、通電相の切り換えに同期してロータ32が回転していない可能性があると判断して、以降の処理を行わずに、本ルーチンを終了する。
【0091】
これに対して、上記ステップ251で、励磁回数カウンタCASEの値が2以上と判定された場合は、ステップ252に進み、励磁回数カウンタCASEの値が2又は4であるか否かを判定し、励磁回数カウンタCASEの値が2又は4であれば、ステップ253に進み、エンコーダ46のA相・B相の信号値の組み合わせがその時の通電相(U相又はV相)に対応する組み合わせ(A相信号=0且つB相信号=0)になっているか否かを判定する。このような判定をAB相割り込み処理により繰り返すことで、エンコーダ46のA相・B相の信号値の組み合わせがその時の通電相(U相又はV相)に対応する組み合わせ(A相信号=0且つB相信号=0)になった瞬間を検出して、ステップ254に進み、レンジ判定フラグXnp=0(Pレンジ)であるか否かを判定し、レンジ判定フラグXnp=0(Pレンジ)であれば、ステップ255に進み、その時点のエンコーダカウント値Ncntを用いて基準位置学習値Gcnt(i) を次式により演算する。
Gcnt(i) =Ncnt+2×(6−CASE)
(この場合はi=3又は5)
【0092】
また、レンジ判定フラグXnp=1(NotPレンジ)であれば、ステップ256に進み、その時点のエンコーダカウント値Ncntを用いて基準位置学習値Gcnt(i) を次式により演算する。
Gcnt(i) =Ncnt−2×(6−CASE)
(この場合はi=3又は5)
【0093】
一方、励磁回数カウンタCASEの値が3又は5の場合は、ステップ252で「No」と判定されてステップ257に進み、エンコーダ46のA相・B相の信号値の組み合わせがその時の通電相(UV相又はVW相)に対応する組み合わせ(A相信号=1且つB相信号=1)になっているか否かを判定する。このような判定をAB相割り込み処理により繰り返すことで、エンコーダ46のA相・B相の信号値の組み合わせがその時の通電相(UV相又はVW相)に対応する組み合わせ(A相信号=1且つB相信号=1)になった瞬間を検出して、ステップ258に進み、レンジ判定フラグXnp=0(Pレンジ)であるか否かを判定し、レンジ判定フラグXnp=0(Pレンジ)であれば、ステップ259に進み、その時点のエンコーダカウント値Ncntを用いて基準位置学習値Gcnt(i) を次式により演算する。
Gcnt(i) =Ncnt+2×(6−CASE)
(この場合はi=4又は6)
【0094】
また、レンジ判定フラグXnp=1(NotPレンジ)であれば、ステップ260に進み、その時点のエンコーダカウント値Ncntを用いて基準位置学習値Gcnt(i) を次式により演算する。
Gcnt(i) =Ncnt−2×(6−CASE)
(この場合はi=4又は6)
【0095】
[エンコーダカウンタ]
次に、図14に示すエンコーダカウンタルーチンの処理内容を説明する。本ルーチンは、AB相割り込み処理によりA相信号とB相信号の立ち上がり/立ち下がりの両方のエッジに同期して起動され、A相信号とB相信号の立ち上がり/立ち下がりの両方のエッジを次のようにしてカウントする。本ルーチンが起動されると、まずステップ301で、A相信号とB相信号の値A(i) 、B(i) を読み込み、次のステップ302で、図15のカウントアップ値ΔN算出マップを検索して、A相信号とB相信号の今回値A(i) 、B(i) と、前回値A(i-1) 、B(i-1) に応じたカウントアップ値ΔNを算出する。
【0096】
ここで、A相信号とB相信号の今回値A(i) 、B(i) と、前回値A(i-1) 、B(i-1) を用いる理由は、A相信号とB相信号の発生順序によってロータ32の回転方向を判定するためであり、図16に示すように、正回転(Pレンジ→NotPレンジの回転方向)ではカウントアップ値ΔNをプラス値にしてエンコーダカウント値Ncntをカウントアップし、逆回転(NotPレンジ→Pレンジの回転方向)ではカウントアップ値ΔNをマイナス値にしてエンコーダカウント値Ncntをカウントダウンする。
【0097】
カウントアップ値ΔNの算出後、ステップ303に進み、前回のエンコーダカウント値Ncntに上記ステップ302で算出したカウントアップ値ΔNを加算して、今回のエンコーダカウント値Ncntを求める。この後、ステップ304に進み、次回のカウント処理のために、A相信号とB相信号の今回値A(i) 、B(i) をそれぞれA(i-1) 、B(i-1) として記憶して本ルーチンを終了する。
【0098】
以上説明した図14のエンコーダカウンタルーチンは、特許請求の範囲でいうエンコーダカウント手段としての役割を果たす。
【0099】
[F/B制御]
次に、図17に示すF/B制御ルーチンの処理内容を説明する。本ルーチンは、AB相割り込み処理により実行され、初期駆動終了後にF/B制御実行条件が成立しているときに、ロータ32の回転位置(エンコーダカウント値Ncnt−Gcnt)が目標位置(目標カウント値Acnt)から例えば0.5°以内に到達するまで、エンコーダカウント値Ncntと基準位置学習値Gcntとに基づいて通電相を切り換えてロータ32を回転させる。
【0100】
図17のF/B制御ルーチンが起動されると、まずステップ601で、F/B許可フラグXfbがONにセットされているか否か(モータF/B制御実行条件が成立しているか否か)を判定し、F/B許可フラグXfbがOFF(F/B制御実行条件が不成立)であれば、以降の処理を行うことなく、本ルーチンを終了する。
【0101】
これに対して、F/B許可フラグXfbがONにセットされていれば、ステップ602に進み、後述する図18の通電相設定ルーチンを実行して、現在のエンコーダカウント値Ncntと基準位置学習値Gcntとに基づいて通電相を設定し、次のステップ603で、当該通電相を励磁する通電処理を実行する。
【0102】
[通電相設定]
図18に示す通電相設定ルーチンは、図17のF/B制御ルーチンのステップ602で起動されるサブルーチンである。本ルーチンが起動されると、まずステップ611で、回転方向指示値Dが正回転(Pレンジ→NotPレンジの回転方向)を意味する「1」であるか否かを判定する。その結果、回転方向指示値D=1(正回転)と判定されれば、ステップ612に進み、回転方向が回転方向指示に反して逆転したか否か(エンコーダカウント値Ncntが減少したか否か)を判定し、逆転していなければ、ステップ613に進み、現在のエンコーダカウント値Ncnt、基準位置学習値Gcnt、正回転方向位相進み量K1、速度補正量Ksを用いて通電相判定値Mptnを次式により更新する。
Mptn=Ncnt−Gcnt+K1+Ks
【0103】
ここで、正回転方向位相進み量K1は、ロータ32を正回転させるのに必要な通電相の位相進み量(ロータ32の現在位置に対する通電相の位相進み量)であり、例えばK1=4に設定されている。
【0104】
また、速度補正量Ksは、ロータ32の回転速度に応じて設定される位相進み補正量である。低速域では、速度補正量Ksが0に設定され、高速になるに従って、速度補正量Ksが例えば1又は2に増加される。これにより、ロータ32の回転速度に適した通電相となるように通電相判定値Mptnが補正される。
【0105】
一方、上記ステップ612で、回転方向が回転方向指示に反して逆転したと判定された場合は、逆転防止のために通電相判定値Mptnを更新しない。この場合は、逆転直前の通電相(前回の通電相)に通電され、ロータ32の逆転を抑制する方向に制動トルクが発生する。
【0106】
また、上記ステップ611で、回転方向指示値D=−1(逆回転)、つまりNotPレンジ→Pレンジの回転方向と判定された場合は、ステップ614に進み、回転方向が回転方向指示に反して逆転したか否か(エンコーダカウント値Ncntが増加したか否か)を判定し、逆転していなければ、ステップ615に進み、現在のエンコーダカウント値Ncnt、基準位置学習値Gcnt、逆回転方向位相進み量K2、速度補正量Ksを用いて通電相判定値Mptnを次式により更新する。
Mptn=Ncnt−Gcnt−K2−Ks
【0107】
ここで、逆回転方向位相進み量K2は、ロータ32を逆回転させるのに必要な通電相の位相進み量(ロータ32の現在位置に対する通電相の位相進み量)であり、例えばK2=3に設定されている。速度補正量Ksは正回転の場合と同じである。
【0108】
一方、上記ステップ614で、回転方向が回転方向指示に反して逆転したと判定された場合は、逆転防止のために通電相判定値Mptnを更新しない。この場合は、逆転直前の通電相(前回の通電相)に通電され、ロータ32の逆転を抑制する方向に制動トルクが発生する。
【0109】
以上のようにして、今回の通電相判定値Mptnを決定した後、ステップ615に進み、通電相判定値Mptnを“12”で割り算して、その余りMptn%12を求める。ここで、“12”は、通電相を一巡させる間のエンコーダカウント値Ncntの増減量に相当する。
【0110】
Mptn%12の算出後、ステップ616に進み、図19の変換テーブルを検索して、Mptn%12に対応する通電相を選択し、これを今回の通電相に設定する。
【0111】
図20はU相から回転を開始する場合に最初に通電する相を説明するタイムチャートである。この場合、速度補正量Ks=0となるため、正回転(Pレンジ→NotPレンジ方向への回転)を開始する場合は、通電相判定値Mptnは次式により算出される。
Mptn=Ncnt−Gcnt+K1=Ncnt−Gcnt+4
U相から正回転を開始する場合は、(Ncnt−Gcnt)/12の余りは、6となるため、Mptn%12=6+4=10となり、最初の通電相はV相となる。
【0112】
一方、U相から逆回転(NotPレンジ→Pレンジ方向への回転)を開始する場合は、通電相判定値Mptnは次式により算出される。
Mptn=Ncnt−Gcnt−K2=Ncnt−Gcnt−3
U相から逆回転を開始する場合は、Mptn%12=6−3=3となり、最初の通電相はW相となる。
【0113】
このように、正回転方向位相進み量K1と逆回転方向位相進み量K2をそれぞれ4と3に設定することで、正回転方向と逆回転方向の通電相の切換パターンを対称にすることができ、正回転方向と逆回転方向のいずれの場合も、ロータ32の現在位置から2ステップ分ずらした位置の相を最初に励磁して回転を開始することができる。
【0114】
以上説明した本実施形態によれば、ECU41への電源投入後の初期駆動時に、通電相を切り換える毎にエンコーダ46のA相・B相の信号値の組み合わせがその時の通電相に対応する組み合わせになった瞬間を検出して、その時点のエンコーダカウント値に基づいてロータ32の基準位置を学習するようにしたので、初期駆動時にロータ32の振動が停止するのを待たずに、ロータ32の振動中でもロータ32の基準位置の学習を行うことができて、その学習時間を短くすることができ、SRモータ12のF/B制御を素早く立ち上げることができる。
【0115】
しかも、本実施形態では、初期駆動中に通電相を切り換える毎にロータ32の基準位置を学習し、初期駆動終了時にそれまでに求めた基準位置学習値が全て一致しているか否かを判定し、一致していなければ、初期駆動による基準位置の学習を再実行するようにしたので、エンコーダ46の信号にノイズ等が混入しても、基準位置の誤学習を未然に防止することができ、信頼性の高い学習値を求めることができる。本実施形態では、前述したように、ロータ32の振動中でも基準位置を学習できるため、基準位置の学習を複数回繰り返しても、ロータ32の振動が停止するのを待つよりも短い時間で全ての学習を終えることが可能となり、短い学習時間で信頼性の高い基準位置の学習を行うことができる。
【0116】
但し、本発明は、初期駆動の最後に基準位置の学習を1回のみ行ったり、或は、数回の学習を行うようにしても良く、基準位置の学習回数は、要求される信頼性の程度に応じて適宜設定すれば良い。
【0117】
また、本実施形態では、初期駆動中に通電相の切り換えを一巡させるようにしたので、初期駆動の途中まで通電相とロータ32の回転位置との同期を取ることができなくても、初期駆動を終了するまでに、いずれかの通電相で必ずロータ32の回転位置と通電相との同期を取ることができて、ロータ32の基準位置をより確実に学習することができる。
【0118】
しかしながら、本発明は、初期駆動中に通電相の切り換えを一巡させる構成に限定されず、初期駆動中に通電相の切り換えを例えば2〜5回実行して基準位置を学習するようにしても良い。
【0119】
尚、本実施形態では、初期駆動とF/B制御中に、1相通電と2相通電とを交互に切り換える1−2相励磁方式で駆動するようにしたが、1相通電のみで駆動する1相励磁方式、又は、2相通電のみで駆動する2相励磁方式を採用しても良い。
【0120】
また、本発明に用いるエンコーダは、磁気式のエンコーダ46に限定されず、例えば、光学式のエンコーダやブラシ式のエンコーダを用いても良い。
また、本発明に用いるモータは、SRモータ12に限定されず、エンコーダの出力信号のカウント値に基づいてロータの回転位置を検出してモータの通電相を順次切り換えるブラシレス型のモータであれば、SRモータ以外のブラシレス型のモータを用いても良い。
【0121】
また、本実施形態のレンジ切換装置は、PレンジとNotPレンジの2つのレンジを切り換える構成であるが、例えば、ディテントレバー15の回動動作に連動して自動変速機のレンジ切換弁とマニュアルバルブを切り換えて、自動変速機のP、R、N、D等の各レンジを切り換えるレンジ切換装置にも本発明を適用して実施できる。
【0122】
その他、本発明は、レンジ切換装置に限定されず、SRモータ等のブラシレス型のモータを駆動源とする各種の装置に適用して実施できることは言うまでもない。
【図面の簡単な説明】
【図1】本発明の一実施形態を示すレンジ切換装置の斜視図
【図2】SRモータの構成を説明する図
【図3】SRモータを駆動する回路構成を示す回路図
【図4】レンジ切換装置の制御システム全体の構成を概略的に示す図
【図5】エンコーダのロータリマグネットの構成を説明する平面図
【図6】エンコーダの側面図
【図7】(a)はエンコーダの出力波形を示すタイムチャート、(b)は通電相切り換えパターンを示すタイムチャート
【図8】初期駆動ルーチンの処理の流れを示すフローチャート(その1)
【図9】初期駆動ルーチンの処理の流れを示すフローチャート(その2)
【図10】Pレンジ初期駆動ルーチンの処理の流れを示すフローチャート
【図11】NotPレンジ初期駆動ルーチンの処理の流れを示すフローチャート
【図12】基準位置学習ルーチンの処理の流れを示すフローチャート
【図13】初期駆動の制御例を示すタイムチャート
【図14】エンコーダカウンタルーチンの処理の流れを示すフローチャート
【図15】カウントアップ値ΔN算出マップの一例を示す図
【図16】指令レンジシフト、A相信号、B相信号、エンコーダカウント値の関係を示すタイムチャート
【図17】モータF/B制御ルーチンの処理の流れを示すフローチャート
【図18】通電相設定ルーチンの処理の流れを示すフローチャート
【図19】mod(Mptn/12)から通電相への変換テーブルの一例を示す図
【図20】通電処理を説明するタイムチャート
【符号の説明】
11…レンジ切換機構、12…SRモータ、14…出力軸センサ、15…ディテントレバー、18…パーキングロッド、20…パーキングギヤ、21…ロックレバー、23…ディテントバネ、24…Pレンジ保持凹部、25…NotPレンジ保持凹部、26…減速機構、27…自動変速機、31…ステータ、32…ロータ、33,34…巻線、35,36…モータ励磁部、37,38…モータドライバ、41…ECU(制御手段,エンコーダカウント手段)、43…Pレンジスイッチ、44…NotPレンジスイッチ、46…エンコーダ、47…ロータリマグネット、48…A相信号用の磁気検出素子、49…B相信号用の磁気検出素子、50…Z相信号用の磁気検出素子。
Claims (6)
- 制御対象を回転駆動するモータのロータの回転に同期して所定の位相差を有するA相信号とB相信号を出力するエンコーダと、このエンコーダのA相信号及び前記B相信号の立ち上がり/立ち下がりのエッジをカウントするエンコーダカウント手段と、このエンコーダカウント手段のカウント値(以下「エンコーダカウント値」という)に基づいて前記ロータの回転位置を検出して前記モータの通電相を順次切り換えることで前記ロータを目標位置まで回転駆動する制御手段とを備えたモータ制御装置において、
前記制御手段は、電源投入後にオープンループ制御で通電相を切り換える初期駆動を実行し、この初期駆動中に前記エンコーダのA相・B相の信号値の組み合わせがその時の通電相に対応する組み合わせになったときの前記エンコーダカウント値に基づいて前記ロータの基準位置を学習し、初期駆動後は、前記エンコーダカウント値を前記基準位置の学習値で補正し、補正後のエンコーダカウント値に基づいて通電相を決定することを特徴とするモータ制御装置。 - 前記制御手段は、前記初期駆動中に通電相を切り換える毎に前記ロータの基準位置を学習し、当該初期駆動終了時にそれまでに求めた基準位置の学習値が全て一致しているか否かを判定し、一致していなければ、前記初期駆動による基準位置の学習を再実行することを特徴とする請求項1に記載のモータ制御装置。
- 前記制御手段は、前記初期駆動中に通電相の切り換えを一巡させることを特徴とする請求項1又は2に記載のモータ制御装置。
- 前記制御手段は、前記初期駆動開始から通電相の切り換えを1回又は数回行うまでは前記基準位置の学習を行わず、それ以後に切り換えられる通電相について前記基準位置の学習を行うことを特徴とする請求項1乃至3のいずれかに記載のモータ制御装置。
- 前記モータは、スイッチトリラクタンスモータであることを特徴とする請求項1乃至4のいずれかに記載のモータ制御装置。
- 前記モータは、車両の自動変速機のレンジを切り換えるレンジ切換機構を駆動することを特徴とする請求項1乃至5のいずれかに記載のモータ制御装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002293270A JP4082164B2 (ja) | 2002-10-07 | 2002-10-07 | モータ制御装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002293270A JP4082164B2 (ja) | 2002-10-07 | 2002-10-07 | モータ制御装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004129451A JP2004129451A (ja) | 2004-04-22 |
JP4082164B2 true JP4082164B2 (ja) | 2008-04-30 |
Family
ID=32284230
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002293270A Expired - Fee Related JP4082164B2 (ja) | 2002-10-07 | 2002-10-07 | モータ制御装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4082164B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE112019005755T5 (de) | 2018-11-15 | 2021-08-12 | Denso Corporation | Schaltbereich-Steuervorrichtung |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4936069B2 (ja) * | 2007-10-31 | 2012-05-23 | 株式会社デンソー | モータ制御装置 |
KR100969582B1 (ko) | 2008-06-13 | 2010-07-12 | 한국기계연구원 | 정현파 엔코더의 출력신호를 이용한 회전자의 정밀위치검출방법 |
JP5472044B2 (ja) * | 2010-11-04 | 2014-04-16 | 株式会社デンソー | モータ制御装置 |
JP5605254B2 (ja) * | 2011-02-14 | 2014-10-15 | 株式会社デンソー | モータ制御装置 |
JP5533907B2 (ja) * | 2012-02-07 | 2014-06-25 | 株式会社デンソー | モータ制御装置 |
JP6357798B2 (ja) | 2014-02-26 | 2018-07-18 | 株式会社デンソー | モータ制御装置 |
JP2020034013A (ja) * | 2018-08-27 | 2020-03-05 | 株式会社デンソー | シフトレンジ制御装置 |
CN112039397B (zh) * | 2020-08-21 | 2022-03-18 | 深圳大学 | 无位置传感器平面开关磁阻电机动子位置校正方法和系统 |
WO2023276593A1 (ja) * | 2021-06-29 | 2023-01-05 | マブチモーター株式会社 | 制御装置、及び制御方法 |
-
2002
- 2002-10-07 JP JP2002293270A patent/JP4082164B2/ja not_active Expired - Fee Related
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE112019005755T5 (de) | 2018-11-15 | 2021-08-12 | Denso Corporation | Schaltbereich-Steuervorrichtung |
US11333241B2 (en) | 2018-11-15 | 2022-05-17 | Denso Corporation | Shift range control device |
Also Published As
Publication number | Publication date |
---|---|
JP2004129451A (ja) | 2004-04-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4936069B2 (ja) | モータ制御装置 | |
JP5454962B2 (ja) | モータ制御装置 | |
US7161314B2 (en) | Motor control apparatus having current supply phase correction | |
US6992451B2 (en) | Motor control apparatus operable in fail-safe mode | |
JP5093624B2 (ja) | モータ制御装置 | |
JP6398782B2 (ja) | モータ制御装置 | |
US20130154537A1 (en) | Motor control apparatus | |
JP3800529B2 (ja) | モータ制御装置 | |
JP4082164B2 (ja) | モータ制御装置 | |
JP6547663B2 (ja) | 制御装置 | |
JP2004023890A (ja) | モータ制御装置 | |
JP4189953B2 (ja) | 位置切換制御装置 | |
JP3849931B2 (ja) | モータ制御装置 | |
JP3947922B2 (ja) | モータ制御装置 | |
JP3871130B2 (ja) | モータ制御装置 | |
JP3849627B2 (ja) | モータ制御装置 | |
JP3888940B2 (ja) | モータ制御装置 | |
JP3888278B2 (ja) | モータ制御装置 | |
JP3849629B2 (ja) | モータ制御装置 | |
JP6357798B2 (ja) | モータ制御装置 | |
JP3800532B2 (ja) | モータ制御装置 | |
JP2004312856A (ja) | 回転体制御装置 | |
JP5472038B2 (ja) | モータ制御装置 | |
JP2004023889A (ja) | モータ制御装置 | |
JP4748611B2 (ja) | 位置切換制御装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20041222 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20080117 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20080122 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080204 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4082164 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110222 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120222 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130222 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140222 Year of fee payment: 6 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |