JP2014139054A - 電動パワーステアリング装置 - Google Patents
電動パワーステアリング装置 Download PDFInfo
- Publication number
- JP2014139054A JP2014139054A JP2013008591A JP2013008591A JP2014139054A JP 2014139054 A JP2014139054 A JP 2014139054A JP 2013008591 A JP2013008591 A JP 2013008591A JP 2013008591 A JP2013008591 A JP 2013008591A JP 2014139054 A JP2014139054 A JP 2014139054A
- Authority
- JP
- Japan
- Prior art keywords
- rotation angle
- value
- magnetic
- calculation
- calculated
- 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.)
- Pending
Links
Images
Landscapes
- Power Steering Mechanism (AREA)
- Steering Control In Accordance With Driving Conditions (AREA)
Abstract
【課題】操舵トルク検出装置に含まれている複数のセンサのうちの一部のセンサの故障に起因して、操舵トルクの検出精度が低下した場合に、本来発生させるべき操舵補助トルクの方向と反対方向の操舵補助トルクが電動モータから発生されるのを防止できる電動パワーステアリング装置を提供する。
【解決手段】第2センサ故障フラグFA2および第5センサ故障フラグFB5の値が共に2である場合には、検出操舵トルクThの絶対値が想定最大トルク誤差以下の領域には、q軸電流指令値Iq *が零となる不感帯が設定される。第2センサ故障フラグFA2および第5センサ故障フラグFB5のうちのいずれか一方の値のみが2である場合には、検出操舵トルクThの絶対値が想定最大トルク誤差の1/2以下の領域には、q軸電流指令値Iq *が零となる不感帯が設定される。
【選択図】図14
【解決手段】第2センサ故障フラグFA2および第5センサ故障フラグFB5の値が共に2である場合には、検出操舵トルクThの絶対値が想定最大トルク誤差以下の領域には、q軸電流指令値Iq *が零となる不感帯が設定される。第2センサ故障フラグFA2および第5センサ故障フラグFB5のうちのいずれか一方の値のみが2である場合には、検出操舵トルクThの絶対値が想定最大トルク誤差の1/2以下の領域には、q軸電流指令値Iq *が零となる不感帯が設定される。
【選択図】図14
Description
この発明は、電動パワーステアリング装置に関する。
電動パワーステアリング装置(EPS:Electric Power Steering System)として、操舵トルク検出装置によって検出された操舵トルクに基づいて、操舵補助トルクを発生させる電動モータを制御するものが知られている。具体的には、操舵トルク検出装置によって検出された操舵トルクに基づいて、電動モータに流すべき電流の目標値である電流指令値が設定される。そして、電動モータに流れる実電流が電流指令値と等しくなるように、電動モータがフィードバック制御される。
この発明の目的は、操舵トルク検出装置に含まれている複数のセンサのうちの一部のセンサの故障に起因して、操舵トルクの検出精度が低下した場合に、本来発生させるべき操舵補助トルクの方向と反対方向の操舵補助トルクが電動モータから発生されるのを防止できる電動パワーステアリング装置を提供することである。
請求項1記載の発明は、入力軸(8)、出力軸(9)およびこれらの2つの軸を連結するトーションバー(10)を含むステアリングシャフト(6)と、操舵補助力を発生させるための電動モータ(18)と、第1の複数のセンサ(71,72,73)の出力に基づいて前記入力軸の回転角を第1の回転角として検出するための第1の回転角演算装置(61,71,72,73,77A)、第2の複数のセンサ(74,75,76)の出力に基づいて前記出力軸の回転角を第2の回転角として検出するための第2の回転角演算装置(62,74,75,76,77B)と、前記第1の回転角演算装置によって検出された第1の回転角と、前記第2の回転角演算装置によって検出された第2の回転角と基づいて、前記入力軸に与えられる操舵トルクを演算する操舵トルク演算手段(77C)と、前記操舵トルク演算手段によって演算された操舵トルクを用いて、前記電動モータを駆動制御するモータ制御手段(12)とを含み、前記各回転角演算装置は、高い精度で対応する回転角を演算する高精度演算モードと、対応する複数のセンサのうちの所定のセンサが故障したことに起因して、低い精度で対応する回転角を演算する低精度演算モードとを有しており、前記モータ制御手段は、前記操舵トルクの演算に用いられた前記第1の回転角および前記第2の回転角のうちの少なくとも一方が、前記低精度演算モードによって演算されたときまたは演算される可能性が高いときにおいて、前記操舵トルクの絶対値が、前記低精度演算モードによって回転角が演算される場合に想定される操舵トルク演算誤差以下のときには、前記電動モータに流すべき電流の目標値である電流指令値が零となるように制御形態を切替える制御形態切替手段(41)を含む、電動パワーステアリング装置(1)である。なお、括弧内の英数字は、後述の実施形態における対応構成要素等を表すが、むろん、この発明の範囲は当該実施形態に限定されない。以下、この項において同じ。
この発明によれば、入力軸の回転角および出力軸の回転角のうちの少なくとも一方が低精度演算モードによって演算されたことによって、操舵トルク演算手段によって演算される操舵トルクに誤差が発生したとしても、本来発生させるべき操舵補助トルクの方向と反対方向の操舵補助トルクが電動モータから発生されるのを防止することが可能となる。
請求項2記載の発明は、前記制御形態切替手段は、前記操舵トルクの演算に用いられた前記第1の回転角および前記第2の回転角のうちの少なくとも一方が、前記低精度演算モードによって演算される可能性が高いときにおいて、前記操舵トルク演算手段によって演算された操舵トルクが零のときに前記制御形態の切替えを行う手段(41,図17のS127,S128,S131,S129,S130)を含む、請求項1に記載の電動パワーステアリング装置である。この構成によれば、制御形態が切り替えられたときに、操舵補助トルクが急変する確率を低下させることができる。
請求項2記載の発明は、前記制御形態切替手段は、前記操舵トルクの演算に用いられた前記第1の回転角および前記第2の回転角のうちの少なくとも一方が、前記低精度演算モードによって演算される可能性が高いときにおいて、前記操舵トルク演算手段によって演算された操舵トルクが零のときに前記制御形態の切替えを行う手段(41,図17のS127,S128,S131,S129,S130)を含む、請求項1に記載の電動パワーステアリング装置である。この構成によれば、制御形態が切り替えられたときに、操舵補助トルクが急変する確率を低下させることができる。
請求項3記載の発明は、前記制御形態切替手段は、前記操舵トルクの演算に用いられた前記第1の回転角および前記第2の回転角のうちの少なくとも一方が、前記低精度演算モードによって演算される可能性が高いときにおいて、前記操舵トルク演算手段によって演算された操舵トルクに応じた電流指令値から、制御形態切替後に設定されるべき電流指令値まで、前記電流指令値を徐々に変化させることにより、前記制御形態の切替えを行う手段(41,図20のS148,S152,S153,S154,S155,S156)を含む、請求項1に記載の電動パワーステアリング装置である。この構成によれば、制御形態が切り替えられるときに、操舵補助トルクが急変する確率を低下させることができる。
請求項4記載の発明は、前記各回転角演算装置は、前記入力軸または前記出力軸のうち、回転角を演算すべき軸に応じて回転し、複数の磁極を有する多極磁石(61,62)と、前記多極磁石の回転に応じて、互いに所定の位相差を有する正弦波信号をそれぞれ出力し、前記多極磁石の周方向に並んで配置された3つの磁気センサ(71,72,73;74,75,76)と、前記各磁気センサに故障が発生したか否かを判定する故障判定手段(77A,S1,77B)と、前記3つの磁気センサのうちの中央の磁気センサを含む少なくとも2つの磁気センサが正常である場合において、中央の磁気センサを含む正常な2つの磁気センサが共に同じ1つの磁極を3サンプリング周期連続して検出しているという条件を満たしているときには、それらの2つの磁気センサの3サンプリング分の出力信号に基づいて、前記軸の回転角を演算するとともに、常にまたは前記3サンプリング分の出力信号が一定の要件を満たしているときには、それらの2つの磁気センサが検出している磁極の磁極幅に関する情報およびそれらの2つの磁気センサの出力信号の振幅に関する情報を演算して当該磁極に関連付けて記憶する第1演算手段(77A,S84,S89,77B)と、前記3つの磁気センサのうちの中央の磁気センサを含む少なくとも2つの磁気センサが正常である場合において、前記条件を満たしていないときには、正常な磁気センサのうち、磁極幅に関する情報が関連付けて記憶されている磁極を検出している1つの磁気センサを含む2つの磁気センサの1サンプリング分の出力信号と、前記第1演算手段によって記憶されている前記情報とを用いて、前記軸の回転角を演算する第2演算手段(77A,S93,S95,S96,77B)と、前記3つの磁気センサのうちの前記中央の磁気センサのみが故障している場合において、他の2つの磁気センサが検出している磁極のうち、少なくとも一方の磁極の磁極幅に関する情報が記憶されている場合には、前記他の2つの磁気センサの1サンプリング分の出力信号と、前記第1演算手段によって記憶されている前記情報とを用いて、前記軸の回転角を演算する第3演算手段(77A,S99,S101,77B)と、前記3つの磁気センサのうちの前記中央の磁気センサのみが故障している場合において、他の2つの磁気センサが検出している2つの磁極の磁極幅に関する情報のいずれもが記憶されていない場合には、前記他の2つの磁気センサの2サンプリング分の出力信号に基づいて前記軸の回転角を演算する第4演算手段(77A,S103,77B)とを含み、前記1演算手段、第2演算手段および第3演算手段による演算モードが前記高精度演算モードに相当し、前記第4演算手段による演算モードが前記低精度演算モードに相当する、請求項1〜3のいずれか一項に記載の電動パワーステアリング装置である。
請求項5記載の発明は、前記3つの磁気センサを第1磁気センサ、第2磁気センサおよび第3磁気センサとすると、前記第1磁気センサの出力信号と前記第2磁気センサの出力信号との位相差が120度であり、前記第1磁気センサの出力信号と前記第3磁気センサの出力信号との位相差が240度である、請求項4に記載の電動パワーステアリング装置である。
以下では、この発明の実施形態を、添付図面を参照して詳細に説明する。
図1は、本発明の一実施形態に係る電動パワーステアリング装置の概略構成を示す模式図である。
電動パワーステアリング装置1は、車両を操向するための操舵部材としてのステアリングホイール2と、このステアリングホイール2の回転に連動して転舵輪3を転舵する転舵機構4と、運転者の操舵を補助するための操舵補助機構5とを備えている。ステアリングホイール2と転舵機構4とは、ステアリングシャフト6および中間軸7を介して機械的に連結されている。
図1は、本発明の一実施形態に係る電動パワーステアリング装置の概略構成を示す模式図である。
電動パワーステアリング装置1は、車両を操向するための操舵部材としてのステアリングホイール2と、このステアリングホイール2の回転に連動して転舵輪3を転舵する転舵機構4と、運転者の操舵を補助するための操舵補助機構5とを備えている。ステアリングホイール2と転舵機構4とは、ステアリングシャフト6および中間軸7を介して機械的に連結されている。
ステアリングシャフト6は、ステアリングホイール2に連結された入力軸8と、中間軸7に連結された出力軸9とを含む。入力軸8と出力軸9とは、トーションバー10を介して同一軸線上で相対回転可能に連結されている。すなわち、ステアリングホイール2が回転されると、入力軸8および出力軸9は、互いに相対回転しつつ同一方向に回転するようになっている。
ステアリングシャフト6の周囲には、本発明の一実施形態に係る回転角検出装置が適用されたトルクセンサ(トルク検出装置)11が設けられている。トルクセンサ11は、入力軸8および出力軸9の相対回転変位量に基づいて、ステアリングホイール2に与えられた操舵トルクを検出する。トルクセンサ11によって検出される操舵トルクは、モータ制御用ECU(電子制御ユニット:Electronic Control Unit)12に入力される。
転舵機構4は、ピニオン軸13と、転舵軸としてのラック軸14とを含むラックアンドピニオン機構からなる。ラック軸14の各端部には、タイロッド15およびナックルアーム(図示略)を介して転舵輪3が連結されている。ピニオン軸13は、中間軸7に連結されている。ピニオン軸13は、ステアリングホイール2の操舵に連動して回転するようになっている。ピニオン軸13の先端には、ピニオン16が連結されている。
ラック軸14は、自動車の左右方向(直進方向に直交する方向)に沿って直線状に延びている。ラック軸14の軸方向の中間部には、ピニオン16に噛み合うラック17が形成されている。このピニオン16およびラック17によって、ピニオン軸13の回転がラック軸14の軸方向移動に変換される。ラック軸14を軸方向に移動させることによって、転舵輪3を転舵することができる。
ステアリングホイール2が操舵(回転)されると、この回転が、ステアリングシャフト6および中間軸7を介して、ピニオン軸13に伝達される。そして、ピニオン軸13の回転は、ピニオン16およびラック17によって、ラック軸14の軸方向移動に変換される。これにより、転舵輪3が転舵される。
操舵補助機構5は、操舵補助力を発生するための電動モータ18と、電動モータ18の出力トルクを転舵機構4に伝達するための減速機構19とを含む。電動モータ18は、この実施形態では、三相ブラシレスモータからなる。減速機構19は、ウォーム軸20と、このウォーム軸20と噛み合うウォームホイール21とを含むウォームギヤ機構からなる。減速機構19は、伝達機構ハウジングとしてのギヤハウジング22内に収容されている。
操舵補助機構5は、操舵補助力を発生するための電動モータ18と、電動モータ18の出力トルクを転舵機構4に伝達するための減速機構19とを含む。電動モータ18は、この実施形態では、三相ブラシレスモータからなる。減速機構19は、ウォーム軸20と、このウォーム軸20と噛み合うウォームホイール21とを含むウォームギヤ機構からなる。減速機構19は、伝達機構ハウジングとしてのギヤハウジング22内に収容されている。
ウォーム軸20は、電動モータ18によって回転駆動される。また、ウォームホイール21は、ステアリングシャフト6とは同方向に回転可能に連結されている。ウォームホイール21は、ウォーム軸20によって回転駆動される。
電動モータ18によってウォーム軸20が回転駆動されると、ウォームホイール21が回転駆動され、ステアリングシャフト6が回転する。そして、ステアリングシャフト6の回転は、中間軸7を介してピニオン軸13に伝達される。ピニオン軸13の回転は、ラック軸14の軸方向移動に変換される。これにより、転舵輪3が転舵される。すなわち、電動モータ18によってウォーム軸20を回転駆動することによって、転舵輪3が転舵されるようになっている。
電動モータ18によってウォーム軸20が回転駆動されると、ウォームホイール21が回転駆動され、ステアリングシャフト6が回転する。そして、ステアリングシャフト6の回転は、中間軸7を介してピニオン軸13に伝達される。ピニオン軸13の回転は、ラック軸14の軸方向移動に変換される。これにより、転舵輪3が転舵される。すなわち、電動モータ18によってウォーム軸20を回転駆動することによって、転舵輪3が転舵されるようになっている。
電動モータ18のロータの回転角(ロータ回転角)は、レゾルバ等の回転角センサ25によって検出される。回転角センサ25の出力信号は、モータ制御用ECU12に入力される。電動モータ18は、モータ制御装置としてのモータ制御用ECU12によって制御される。
図2は、トルクセンサ11の構成を図解的に示す模式図である。
図2は、トルクセンサ11の構成を図解的に示す模式図である。
入力軸8には、環状の第1の磁石(多極磁石)61が一体回転可能に連結されている。第1の磁石61の下側には、第1の磁石61の回転に応じて互いに位相差を有する正弦波状の信号をそれぞれ出力する3つの磁気センサ71,72,73が配置されている。
出力軸9には、環状の第2の磁石(多極磁石)62が一体回転可能に連結されている。第2の磁石62の上側には、第2の磁石62の回転に応じて互いに位相差を有する正弦波状の信号をそれぞれ出力する3つの磁気センサ74,75,76が配置されている。
出力軸9には、環状の第2の磁石(多極磁石)62が一体回転可能に連結されている。第2の磁石62の上側には、第2の磁石62の回転に応じて互いに位相差を有する正弦波状の信号をそれぞれ出力する3つの磁気センサ74,75,76が配置されている。
各磁気センサ71〜76の出力信号S1〜S6は、入力軸8に加えられる操舵トルクを演算するためのトルク演算用ECU77に入力されている。トルク演算用ECU77の電源は、イグニッションキーがオン操作されることによってオンとなる。イグニッションキーがオフ操作されたときには、そのことを示すイグニッションキーオフ操作信号が、トルク演算用ECU77に入力される。なお、磁気センサとしては、たとえば、ホール素子、磁気抵抗素子(MR素子)等、磁界の作用により電気的特性が変化する特性を有する素子を備えたものを用いることができる。この実施形態では、磁気センサとしては、ホール素子が用いられている。
前記磁石61,62、前記磁気センサ71〜76およびトルク演算用ECU77によって、トルクセンサ11が構成されている。
トルク演算用ECU77は、マイクロコンピュータを含んでいる。マイクロコンピュータは、CPUおよびメモリ(ROM,RAM,不揮発性メモリ等)を備えており、所定のプログラムを実行することによって、複数の機能処理部として機能する。この複数の機能処理部には、第1の回転角演算部77Aと、第2の回転角演算部77Bと、トルク演算部77Cとを含んでいる。
トルク演算用ECU77は、マイクロコンピュータを含んでいる。マイクロコンピュータは、CPUおよびメモリ(ROM,RAM,不揮発性メモリ等)を備えており、所定のプログラムを実行することによって、複数の機能処理部として機能する。この複数の機能処理部には、第1の回転角演算部77Aと、第2の回転角演算部77Bと、トルク演算部77Cとを含んでいる。
第1の回転角演算部77Aは、3つの磁気センサ71,72,73の出力信号S1,S2,S3に基づいて入力軸8の回転角(電気角θA)を演算する。第2の回転角演算部77Bは、3つの磁気センサ74,75,73の出力信号S4,S5,S6に基づいて出力軸9の回転角(電気角θB)を演算する。
トルク演算部77Cは、第1の回転角演算部77Aによって検出された入力軸8の回転角θAと第2の回転角演算部77Bによって検出された出力軸9の回転角θBとに基づいて、入力軸8に加えられた操舵トルクThを演算する。具体的には、操舵トルクThは、トーションバー10のバネ定数をKとし、各磁石61,62に設けられた磁極対数をNとすると、次式(1)に基づいて演算される。
トルク演算部77Cは、第1の回転角演算部77Aによって検出された入力軸8の回転角θAと第2の回転角演算部77Bによって検出された出力軸9の回転角θBとに基づいて、入力軸8に加えられた操舵トルクThを演算する。具体的には、操舵トルクThは、トーションバー10のバネ定数をKとし、各磁石61,62に設けられた磁極対数をNとすると、次式(1)に基づいて演算される。
Th={(θA−θB)/N}×K …(1)
第1の磁石61、磁気センサ71,72,73および第1の回転角演算部77Aによって、入力軸8の回転角θAを検出するための第1の回転角検出装置が構成されている。また、第2の磁石62、磁気センサ74,75,76および第2の回転角演算部77Bによって、出力軸9の回転角θBを検出するための第2の回転角検出装置が構成されている。第1の回転角検出装置(第1の回転角演算部77A)の動作と第2の回転角検出装置(第2の回転角演算部77B)の動作は同様であるので、以下、第1の回転角検出装置(第1の回転角演算部77A)の動作についてのみ説明する。
第1の磁石61、磁気センサ71,72,73および第1の回転角演算部77Aによって、入力軸8の回転角θAを検出するための第1の回転角検出装置が構成されている。また、第2の磁石62、磁気センサ74,75,76および第2の回転角演算部77Bによって、出力軸9の回転角θBを検出するための第2の回転角検出装置が構成されている。第1の回転角検出装置(第1の回転角演算部77A)の動作と第2の回転角検出装置(第2の回転角演算部77B)の動作は同様であるので、以下、第1の回転角検出装置(第1の回転角演算部77A)の動作についてのみ説明する。
図3は、第1の磁石61の構成および3つの磁気センサ71,72,73の配置を示す模式図である。
第1の磁石61は、周方向に等角度間隔で配された4組の磁極対(M1,M2),(M3,M4),(M5,M6),(M7,M8)を有している。つまり、第1の磁石61は、等角度間隔で配置された8個の磁極M1〜M8を有している。各磁極M1〜M8は、入力軸8の中心軸を中心として、ほぼ45°(電気角ではほぼ180°)の角度間隔(角度幅)で配置されている。各磁極M1〜M8の磁力の大きさは、ほぼ一定である。
第1の磁石61は、周方向に等角度間隔で配された4組の磁極対(M1,M2),(M3,M4),(M5,M6),(M7,M8)を有している。つまり、第1の磁石61は、等角度間隔で配置された8個の磁極M1〜M8を有している。各磁極M1〜M8は、入力軸8の中心軸を中心として、ほぼ45°(電気角ではほぼ180°)の角度間隔(角度幅)で配置されている。各磁極M1〜M8の磁力の大きさは、ほぼ一定である。
3つの磁気センサ71,72,73は、第1の磁石61の下側の環状端面に対向して、配置されている。以下において、磁気センサ71を第1磁気センサ71、磁気センサ72を第2磁気センサ72、磁気センサ73を第3磁気センサ73という場合がある。第1磁気センサ71と第2磁気センサ72とは、入力軸8の中心軸を中心として電気角で120°の角度間隔で配置されている。また、第2磁気センサ72と第3磁気センサ73とは、入力軸8の中心軸を中心として電気角で120°の角度間隔で配置されている。したがって、第1磁気センサ71と第3磁気センサ73とは、入力軸8の中心軸を中心として電気角で240°の角度間隔で配置されている。
図3に矢印で示す方向を入力軸8の正方向の回転方向とする。そして、入力軸8が正方向に回転されると入力軸8の回転角が大きくなり、入力軸8が逆方向に回転されると、入力軸2の回転角が小さくなるものとする。各磁気センサ71,72,73からは、図4に示すように、入力軸8の回転に伴って、正弦波状の信号S1,S2,S3が出力される。なお、図4の横軸の回転角[deg]は、機械角を表している。
以下において、第1磁気センサ71の出力信号S1を第1出力信号S1または第1センサ値S1といい、第2磁気センサ72の出力信号S2を第2出力信号S2または第2センサ値S2といい、第3磁気センサ73の出力信号S3を第3出力信号S3または第3センサ値S3という場合がある。
以下においては、説明の便宜上、入力軸8の回転角をθAではなく、θで表すことにする。各出力信号S1,S2,S3が正弦波信号であるとみなし、入力軸8の回転角をθ(電気角)とすると、第1磁気センサ71の出力信号S1は、S1=A1・sinθと表され、第2磁気センサ72の出力信号S2は、S2=A2・sin(θ+120)と表され、第3磁気センサ73の出力信号S3は、S3=A3・sin(θ+240)と表される。A1,A2,A3は、それぞれ振幅を表している。第1出力信号S1と第2出力信号S2との位相差は120度である。第2出力信号S2と第3出力信号S3との位相差も120度である。したがって、第1出力信号S1と第3出力信号S3との位相差は240度である。
以下においては、説明の便宜上、入力軸8の回転角をθAではなく、θで表すことにする。各出力信号S1,S2,S3が正弦波信号であるとみなし、入力軸8の回転角をθ(電気角)とすると、第1磁気センサ71の出力信号S1は、S1=A1・sinθと表され、第2磁気センサ72の出力信号S2は、S2=A2・sin(θ+120)と表され、第3磁気センサ73の出力信号S3は、S3=A3・sin(θ+240)と表される。A1,A2,A3は、それぞれ振幅を表している。第1出力信号S1と第2出力信号S2との位相差は120度である。第2出力信号S2と第3出力信号S3との位相差も120度である。したがって、第1出力信号S1と第3出力信号S3との位相差は240度である。
第1の回転角演算部77Aによる回転角θの演算方法の基本的な考え方について説明する。第1の回転角演算部77Aによる回転角演算モードには、第1演算モード〜第6演算モードがある。以下、各演算モードについて説明する。
[1]第1演算モード
第1演算モードは、第1および第2磁気センサ71,72が、3サンプリング周期(3演算周期)連続して共に同じ1つの磁極を検出している場合に適用される演算モードである。第1演算モードでは、第1および第2磁気センサ71,72における3サンプリング分の出力信号に基づいて回転角θが演算される。
[1]第1演算モード
第1演算モードは、第1および第2磁気センサ71,72が、3サンプリング周期(3演算周期)連続して共に同じ1つの磁極を検出している場合に適用される演算モードである。第1演算モードでは、第1および第2磁気センサ71,72における3サンプリング分の出力信号に基づいて回転角θが演算される。
第1出力信号S1と第2出力信号S2との位相差(電気角)をCで表すことにする。また、今回のサンプリング周期の番号(今回の演算周期の番号)を[n]、前回のサンプリング周期の番号を[n-1]、前々回のサンプリング周期の番号を[n-2]で表すことにする。また、各磁極M1〜M8の角度幅(ピッチ幅)のばらつきに基づく回転角演算誤差を補正するための補正値を、角度幅誤差補正値といい、Eで表すことことにする。
位相差C、サンプリング周期番号[n],[n-1],[n-2]および角度幅誤差補正値Eを用いると、今回、前回および前々回にサンプリングされた第1出力信号S1ならびに今回、前回および前々回にサンプリングされた第2出力信号S2を、それぞれ次式(2a),(2b),(2c), (2d),(2e),(2f)で表すことができる。
S1[n]=A1[n]sin(E1[n]θ[n]) …(2a)
S1[n-1]=A1[n-1]sin(E1[n-1]θ[n-1]) …(2b)
S1[n-2]=A1[n-2]sin(E1[n-2]θ[n-2]) …(2c)
S2[n]=A2[n]sin(E2[n]θ[n]+C) …(2d)
S2[n-1]=A2[n-1]sin(E2[n-1]θ[n-1]+C) …(2e)
S2[n-2]=A2[n-2]sin(E2[n-2]θ[n-2]+C) …(2f)
前記式(2a)〜(2f)において、E1[x]は、x番目の演算周期において第1磁気センサ71が検出している磁極に対応する角度幅誤差補正値である。E2[x]は、x番目の演算周期において第2磁気センサ72が検出している磁極に対応する角度幅誤差補正値である。
S1[n]=A1[n]sin(E1[n]θ[n]) …(2a)
S1[n-1]=A1[n-1]sin(E1[n-1]θ[n-1]) …(2b)
S1[n-2]=A1[n-2]sin(E1[n-2]θ[n-2]) …(2c)
S2[n]=A2[n]sin(E2[n]θ[n]+C) …(2d)
S2[n-1]=A2[n-1]sin(E2[n-1]θ[n-1]+C) …(2e)
S2[n-2]=A2[n-2]sin(E2[n-2]θ[n-2]+C) …(2f)
前記式(2a)〜(2f)において、E1[x]は、x番目の演算周期において第1磁気センサ71が検出している磁極に対応する角度幅誤差補正値である。E2[x]は、x番目の演算周期において第2磁気センサ72が検出している磁極に対応する角度幅誤差補正値である。
ある磁極の角度幅をw(電気角)とすると、その磁極の角度幅誤差θerr(電気角)は、次式(3)で定義される。
θerr=w−180 …(3)
その磁極に対する角度幅誤差補正値Eは、次式(4)で定義される。
E=180/w
=180/(θerr+180) …(4)
各磁極の角度幅誤差補正値Eは、各磁極の磁極幅に関する情報である。なお、各磁極の磁極幅に関する情報は、各磁極の角度幅wであってもよいし、各磁極の角度幅誤差θerrであってもよい。
θerr=w−180 …(3)
その磁極に対する角度幅誤差補正値Eは、次式(4)で定義される。
E=180/w
=180/(θerr+180) …(4)
各磁極の角度幅誤差補正値Eは、各磁極の磁極幅に関する情報である。なお、各磁極の磁極幅に関する情報は、各磁極の角度幅wであってもよいし、各磁極の角度幅誤差θerrであってもよい。
Cが既知であるとすると、前記式(2a)〜(2f)で表される6つの式に含まれる未知数の数は16となる。つまり、未知数の数が方程式の数より多いため、このままでは、6つの式からなる連立方程式を解くことができない。
この実施形態では、サンプリング間隔(サンプリング周期)を短く設定することにより、3サンプリング間の温度変化による振幅の変化がないとみなす。つまり、3サンプリング間の第1磁気センサ71の出力信号の振幅A1[n],A1[n-1],A1[n-2]が互いに等しいとみなして、これらをA1とする。同様に、3サンプリング間の第2磁気センサ72の出力信号の振幅A2[n],A2[n-1],A2[n-2]が互いに等しいとみなし、これらをA2とする。
この実施形態では、サンプリング間隔(サンプリング周期)を短く設定することにより、3サンプリング間の温度変化による振幅の変化がないとみなす。つまり、3サンプリング間の第1磁気センサ71の出力信号の振幅A1[n],A1[n-1],A1[n-2]が互いに等しいとみなして、これらをA1とする。同様に、3サンプリング間の第2磁気センサ72の出力信号の振幅A2[n],A2[n-1],A2[n-2]が互いに等しいとみなし、これらをA2とする。
3サンプリング間において、両磁気センサ71,72が共に同じ1つの磁極を検出している場合には、3サンプリング分の両磁気センサ71,72の出力信号に含まれている角度幅誤差補正値E1[n],E1[n-1],E1[n-2],E2[n],E2[n-1],E2[n-2]は同じ値となるので、これらをEで表すことにする。これにより、前記式(2a)〜(2f)は、それぞれ次式(5a)〜(5f)で表わされる。
S1[n]=A1sin(Eθ[n]) …(5a)
S1[n-1]=A1sin(Eθ[n-1]) …(5b)
S1[n-2]=A1sin(Eθ[n-2]) …(5c)
S2[n]=A2sin(Eθ[n]+C) …(5d)
S2[n-1]=A2sin(Eθ[n-1]+C) …(5e)
S2[n-2]=A2sin(Eθ[n-2]+C) …(5f)
これら6つの式に含まれる未知数(A1,A2,E,θ[n],θ[n-1],θ[n-2])の数は6となる。つまり、未知数の数が方程式の数以下となるため、6つの式からなる連立方程式を解くことができる。したがって、前記6つの式(5a)〜(5f) からなる連立方程式を解くことにより、入力軸8の回転角θ[n]を演算することができる。
S1[n-1]=A1sin(Eθ[n-1]) …(5b)
S1[n-2]=A1sin(Eθ[n-2]) …(5c)
S2[n]=A2sin(Eθ[n]+C) …(5d)
S2[n-1]=A2sin(Eθ[n-1]+C) …(5e)
S2[n-2]=A2sin(Eθ[n-2]+C) …(5f)
これら6つの式に含まれる未知数(A1,A2,E,θ[n],θ[n-1],θ[n-2])の数は6となる。つまり、未知数の数が方程式の数以下となるため、6つの式からなる連立方程式を解くことができる。したがって、前記6つの式(5a)〜(5f) からなる連立方程式を解くことにより、入力軸8の回転角θ[n]を演算することができる。
以下、両磁気センサ間の位相差Cが120度である場合について、具体的に説明する。位相差Cが120度である場合には、前記6つの式(5a)〜(5f) は、それぞれ次式(6a)〜(6f)で表わすことができる。
S1[n]=A1sin(Eθ[n]) …(6a)
S1[n-1]=A1sin(Eθ[n-1]) …(6b)
S1[n-2]=A1sin(Eθ[n-2]) …(6c)
S2[n]=A2sin(Eθ[n]+120) …(6d)
S2[n-1]=A2sin(Eθ[n-1]+120) …(6e)
S2[n-2]=A2sin(Eθ[n-2]+120) …(6f)
Eθ[n]を1つの未知数と考えると、前記6つの式(6a)〜(6f)のうちの4つの式(6a),(6b),(6d),(6e) からなる連立方程式を解くことにより、Eθ[n]は、次式(7) (以下、「Eθ基本演算式(7)」という。)で表わされる。
S1[n]=A1sin(Eθ[n]) …(6a)
S1[n-1]=A1sin(Eθ[n-1]) …(6b)
S1[n-2]=A1sin(Eθ[n-2]) …(6c)
S2[n]=A2sin(Eθ[n]+120) …(6d)
S2[n-1]=A2sin(Eθ[n-1]+120) …(6e)
S2[n-2]=A2sin(Eθ[n-2]+120) …(6f)
Eθ[n]を1つの未知数と考えると、前記6つの式(6a)〜(6f)のうちの4つの式(6a),(6b),(6d),(6e) からなる連立方程式を解くことにより、Eθ[n]は、次式(7) (以下、「Eθ基本演算式(7)」という。)で表わされる。
また、前記6つの式(6a)〜(6f)からなる連立方程式を解くことにより、角度幅誤差補正値Eは、次式(8) (以下、「E演算式(8)」という。)で表わされる。
したがって、前記Eθ基本演算式(7)により演算されたEθ[n]を、前記E演算式(8)により演算された角度幅誤差補正値Eで除することにより、θ[n]を求めることができる。つまり、次式(9)により、θ[n]を求めることができる。
θ[n]=Eθ[n]/E …(9)
ただし、E演算式(8) に含まれている分数のいずれかの分母が零になる場合には、E演算式(8)に基づいて角度幅誤差補正値Eを演算することはできない。そこで、この実施形態では、E演算式(8) に含まれている分数のいずれかの分母が零になる場合には、前回に演算された角度幅誤差補正値Eを今回の角度幅誤差補正値Eとして用いるようにしている。
θ[n]=Eθ[n]/E …(9)
ただし、E演算式(8) に含まれている分数のいずれかの分母が零になる場合には、E演算式(8)に基づいて角度幅誤差補正値Eを演算することはできない。そこで、この実施形態では、E演算式(8) に含まれている分数のいずれかの分母が零になる場合には、前回に演算された角度幅誤差補正値Eを今回の角度幅誤差補正値Eとして用いるようにしている。
なお、E演算式(8) に含まれている分数のいずれかの分母が零になる場合とは、次式(10),(11),(12)でそれぞれ表される3つの条件のうちの少なくとも1つの条件を満たす場合である。
また、Eθ基本演算式(7)に含まれている分数のいずれかの分母が零になる場合には、Eθ基本演算式(7)に基づいてEθ[n]を演算することはできない。そこで、この実施形態では、Eθ基本演算式(7)に含まれている分数のいずれかの分母が零になる場合には、Eθ基本演算式(7)とは異なる演算式によってEθ[n]を演算するようにしている。さらに、この実施形態では、Eθ基本演算式(7)に基づいてEθ[n]を演算することができるけれども、より簡単な演算式によってEθ[n]を演算できる場合には、Eθ基本演算式(7)とは異なる演算式によってEθ[n]を演算するようにしている。この実施形態では、Eθ基本演算式(7)よりも簡単にEθ[n]を演算できる場合とは、S2[n]=0の場合またはS1[n]=0の場合である。
この実施形態では、Eθ[n]を演算するための演算式として、Eθ基本演算式(7)を含めて10種類の演算式が用意されている。表1は、10種類の演算式と、その演算式が適用される条件とを示している。なお、Eθ[n]を演算する際には、表1の上から順番にその条件を満たしているか否かが判別され、条件を満たしたと判別されるとそれ以降の条件判別は行われず、当該条件に対応する演算式により、Eθ[n]が演算される。
表1の上から1番目の演算式は、Eθ基本演算式(7)である。Eθ基本演算式(7)は、S1[n]およびS2[n]のいずれもが零でなく、かつEθ基本演算式(7)に含まれている分数のいずれの分母も零でないという条件を満たしている場合に、適用される。Eθ基本演算式(7)に含まれている分数のいずれの分母も零でないという条件は、p1−p2≠0でかつ、p1 2+p1p2+p2 2≠0でかつ、S1[n-1]≠0でかつS2[n-1]≠0である場合に満たされる。なお、S1[n-1]はp1の分母であり、S2[n-1]はp2の分母である。
ただし、p1 2+p1p2+p2 2=0が成立するのは、p1=p2=0の場合だけであるが、第1磁気センサ71と第2磁気センサ72とは位相が120度ずれているため、両磁気センサ71,72のセンサ値S1,S2が同時に零になることはない。このため、p1 2+p1p2+p2 2=0が成立することはない。したがって、Eθ基本演算式(7)に含まれている分数のいずれの分母も零でないという条件は、p1−p2≠0でかつ、S1[n-1]≠0でかつS2[n-1]≠0である場合に満たされる。
表1の上から2番目の演算式は、p1−p2=0である場合に適用される演算式である。p1−p2=0が成立する場合について検討する。この場合には、p1=p2であるから、次式(13)が成立する。
これを変形すると、次式(14)が得られる。
前記式(14)が成立する場合とは、Eθ[n]とEθ[n-1]とが等しい場合である。つまり、今回のEθ[n]が前回のEθ[n-1]に等しい場合である。そこで、S1[n]およびS2[n]のいずれもが零でなく、かつp1の分母S1[n-1]およびp2の分母S2[n-1]のいずれもが零でなく、かつp1−p2=0であるという条件を満たした場合には、前回に演算されたEθ[n-1]が今回のEθ[n]として用いられる。
表1の上から3番目および4番目の演算式は、p1の分母S1[n-1]が零となる場合に適用される演算式である。S1[n-1]=A1sinEθ[n-1]であるので、sinEθ[n-1]=0のときに、S1[n-1]=0となる。つまり、Eθ[n-1]が0度または180度のときに、S1[n-1]が零となる。S2[n-1]=A2sin(Eθ[n-1]+120)であるので、Eθ[n-1]が0度のときにはS2[n-1]>0となり、Eθ[n-1]が180度のときにはS2[n-1]<0となる。したがって、S1[n-1]=0でかつS2[n-1]>0のときにはEθ[n-1]=0となり、S1[n-1]=0でかつS2[n-1]<0のときにはEθ[n-1]=180となる。
Eθ[n-1]=0である場合には、前記式 (6c),(6d)は、それぞれ次式 (15c),(15d)で表される。
S2[n]=A2sin(Eθ[n]+120) …(15c)
S2[n-1]=A2sin120=√3/2・A2 …(15d)
前記式(15d)から、次式(16)が得られる。
S2[n]=A2sin(Eθ[n]+120) …(15c)
S2[n-1]=A2sin120=√3/2・A2 …(15d)
前記式(15d)から、次式(16)が得られる。
A2=(2/√3)・S2[n-1] …(16)
前記式(16)を前記式(15c)に代入すると、次式(17)が得られる。
sin(Eθ[n]+120)=(√3/2)・(S2[n]/S2[n-1]) …(17)
したがって、Eθ[n]は、次式(18)により演算することができる。
前記式(16)を前記式(15c)に代入すると、次式(17)が得られる。
sin(Eθ[n]+120)=(√3/2)・(S2[n]/S2[n-1]) …(17)
したがって、Eθ[n]は、次式(18)により演算することができる。
つまり、表1の上から3番目に示すように、S1[n]およびS2[n]のいずれもが零でなく、かつp2の分母S2[n-1]が零でなく、かつp1の分母S1[n-1]が零であり、かつS2[n-1]>0であるという条件を満たした場合には、前記式(18)で表される演算式に基づいてEθ[n]が演算される。
一方、Eθ[n-1]=180である場合には、前記式 (6c),(6d)は、それぞれ次式(19c),(19d)で表される。
一方、Eθ[n-1]=180である場合には、前記式 (6c),(6d)は、それぞれ次式(19c),(19d)で表される。
S2[n]=A2sin(Eθ[n]+120) …(19c)
S2[n-1]=A2sin300=−√3/2・ A2 …(19d)
前記式(19d)から、次式(20)が得られる。
A2=(−2/√3)・S2[n-1] …(20)
前記式(20)を前記式(19c)に代入すると、次式(21)が得られる。
S2[n-1]=A2sin300=−√3/2・ A2 …(19d)
前記式(19d)から、次式(20)が得られる。
A2=(−2/√3)・S2[n-1] …(20)
前記式(20)を前記式(19c)に代入すると、次式(21)が得られる。
sin(Eθ[n]+120)=(−√3/2)・(S2[n]/S2[n-1]) …(21)
したがって、Eθ[n]は、次式(22)により演算することができる。
したがって、Eθ[n]は、次式(22)により演算することができる。
つまり、表1の上から4番目に示すように、S1[n]およびS2[n]のいずれもが零でなく、かつp2の分母S2[n-1]が零でなく、かつp1の分母S1[n-1]が零であり、かつS2[n-1]<0であるという条件を満たした場合には、前記式(22)で表される演算式に基づいてEθ[n]が演算される。
表1の上から5番目および6番目の演算式は、S2[n]=0となる場合に適用される演算式である。S2[n]=A2sin(Eθ[n]+120)であるので、sin(Eθ[n]+120)=0のときに、S2[n]=0となる。つまり、Eθ[n]が−120度または60度のときに、S2[n]=0となる。S1[n]=A1sinEθ[n]であるので、Eθ[n]が−120度のときにはS1[n]<0となり、Eθ[n]が60度のときにはS1[n]>0となる。したがって、S2[n]=0でかつS1[n]>0のときにはEθ[n]=60となり、S2[n]=0でかつS1[n]<0であればEθ[n]=−120となる。
表1の上から5番目および6番目の演算式は、S2[n]=0となる場合に適用される演算式である。S2[n]=A2sin(Eθ[n]+120)であるので、sin(Eθ[n]+120)=0のときに、S2[n]=0となる。つまり、Eθ[n]が−120度または60度のときに、S2[n]=0となる。S1[n]=A1sinEθ[n]であるので、Eθ[n]が−120度のときにはS1[n]<0となり、Eθ[n]が60度のときにはS1[n]>0となる。したがって、S2[n]=0でかつS1[n]>0のときにはEθ[n]=60となり、S2[n]=0でかつS1[n]<0であればEθ[n]=−120となる。
つまり、表1の上から5番目に示すように、S1[n]が零でなく、かつp2の分母S2[n-1]が零でなく、かつS2[n]=0であり、かつS1[n]>0であるという条件を満たした場合には、Eθ[n]は60度として演算される。また、表1の上から6番目に示すように、S1[n]が零でなく、かつp2の分母S2[n-1]が零でなく、かつS2[n]=0であり、かつS1[n]>0であるという条件を満たした場合には、Eθ[n]は−120度として演算される。
表1の上から7番目および8番目の演算式は、p2の分母S2[n-1]が零となる場合に適用される演算式である。S2[n-1]=A2sin(Eθ[n-1]+120)であるので、sin(Eθ[n-1]+120)=0のときに、S2[n-1]=0となる。つまり、Eθ[n-1]が−120度または60度のときに、S2[n-1]が零となる。S1[n-1]=A1sinEθ[n-1]であるので、Eθ[n-1]が−120度のときにはS1[n-1]<0となり、Eθ[n-1]が60度のときにはS1[n-1]>0となる。したがって、S2[n-1]=0でかつS1[n-1]>0のときにはEθ[n-1]=60となり、S2[n-1]=0でかつS1[n-1]<0のときにはEθ[n-1]=−120となる。
Eθ[n-1]=60である場合には、前記式 (6a),(6b)は、それぞれ次式 (23a),(23b)で表される。
S1[n]=A1sinEθ[n] …(23a)
S1[n-1]=A1sin60=√3/2・ A1 …(23b)
前記式(23b)から、次式(24)が得られる。
S1[n]=A1sinEθ[n] …(23a)
S1[n-1]=A1sin60=√3/2・ A1 …(23b)
前記式(23b)から、次式(24)が得られる。
A1=(2/√3)・S1[n-1] …(24)
前記式(24)を前記式(23a)に代入すると、次式(25)が得られる。
sinEθ[n]=(√3/2)・(S1[n]/S1[n-1]) …(25)
したがって、Eθ[n]は、次式(26)により演算することができる。
前記式(24)を前記式(23a)に代入すると、次式(25)が得られる。
sinEθ[n]=(√3/2)・(S1[n]/S1[n-1]) …(25)
したがって、Eθ[n]は、次式(26)により演算することができる。
つまり、表1の上から7番目に示すように、S1[n]が零でなく、かつp2の分母S2[n-1]が零であり、かつS1[n-1]>0であるという条件を満たした場合には、前記式(26)で表される演算式に基づいてEθ[n]が演算される。
一方、Eθ[n-1]=−120である場合には、前記式 (6a),(6b)は、それぞれ次式 (27a),(27b)で表される。
一方、Eθ[n-1]=−120である場合には、前記式 (6a),(6b)は、それぞれ次式 (27a),(27b)で表される。
S1[n]=A1sinEθ[n] …(27a)
S1[n-1]=A1sin(−120)=−√3/2・ A2 …(27b)
前記式(27b)から、次式(28)が得られる。
A1=(−2/√3)・S1[n-1] …(28)
前記式(28)を前記式(27a)に代入すると、次式(29)が得られる。
S1[n-1]=A1sin(−120)=−√3/2・ A2 …(27b)
前記式(27b)から、次式(28)が得られる。
A1=(−2/√3)・S1[n-1] …(28)
前記式(28)を前記式(27a)に代入すると、次式(29)が得られる。
sinEθ[n]=(−√3/2)・(S1[n]/S1[n-1]) …(29)
したがって、Eθ[n]は、次式(30)により演算することができる。
したがって、Eθ[n]は、次式(30)により演算することができる。
つまり、表1の上から8番目に示すように、S1[n]が零でなく、かつp2の分母S2[n-1]が零であり、かつS1[n-1]<0であるという条件を満たした場合には、前記式(30)で表される演算式に基づいてEθ[n]が演算される。
表1の上から9番目および10番目の演算式は、S1[n]=0となる場合に適用される演算式である。S1[n]=A1sinEθ[n]であるので、sinEθ[n]=0のときに、S1[n]=0となる。つまり、Eθ[n]が0度または180度のときに、S1[n]=0となる。S2[n]=A2sin(Eθ[n]+120]であるので、Eθ[n]が0度のときにはS2[n]>0となり、Eθ[n]が180度のときにはS2[n]<0となる。したがって、S1[n]=0でかつS2[n]>0であればEθ[n]=0となり、S1[n]=0でかつS2[n]<0であればEθ[n]=180となる。
表1の上から9番目および10番目の演算式は、S1[n]=0となる場合に適用される演算式である。S1[n]=A1sinEθ[n]であるので、sinEθ[n]=0のときに、S1[n]=0となる。つまり、Eθ[n]が0度または180度のときに、S1[n]=0となる。S2[n]=A2sin(Eθ[n]+120]であるので、Eθ[n]が0度のときにはS2[n]>0となり、Eθ[n]が180度のときにはS2[n]<0となる。したがって、S1[n]=0でかつS2[n]>0であればEθ[n]=0となり、S1[n]=0でかつS2[n]<0であればEθ[n]=180となる。
つまり、表1の上から9番目に示すように、S1[n]が零であり、かつS2[n]>0であるという条件を満たした場合には、Eθ[n]は0度として演算される。また、表1の上から10番目に示すように、S1[n]が零であり、かつS2[n]<0であるという条件を満たした場合には、Eθ[n]は180度として演算される。
Eθ[n]が演算されると、前記式(6a)に基づいて振幅A1を演算することができるとともに、前記式(6d)に基づいて振幅A2を演算することができる。つまり、第1演算モードによって、E,θ[n],A1,A2を演算することができる。
[2]第2演算モード
第2演算モードは、第2および第3磁気センサ72,73が、3サンプリング周期(3演算周期)連続して共に同じ1つの磁極を検出している場合に適用される演算モードである。第2演算モードでは、第2および第3磁気センサ72,73における3サンプリング分の出力信号に基づいて回転角θが演算される。
Eθ[n]が演算されると、前記式(6a)に基づいて振幅A1を演算することができるとともに、前記式(6d)に基づいて振幅A2を演算することができる。つまり、第1演算モードによって、E,θ[n],A1,A2を演算することができる。
[2]第2演算モード
第2演算モードは、第2および第3磁気センサ72,73が、3サンプリング周期(3演算周期)連続して共に同じ1つの磁極を検出している場合に適用される演算モードである。第2演算モードでは、第2および第3磁気センサ72,73における3サンプリング分の出力信号に基づいて回転角θが演算される。
第2磁気センサ72および第3磁気センサ73の出力信号S2,S3を、角度幅誤差補正値Eを用いて表すと、第2磁気センサ72の出力信号S2[n]はS2[n]=A2・sin(E2θ[n]+120)で表され、第3磁気センサ73の出力信号S3[n]は、S3[n]=A3・sin(E3θ[n]+240)と表される。ここで、E3は、第3磁気センサ73が検出している磁極に対応する角度幅誤差補正値である。第2磁気センサ72および第3磁気センサ73が同じ磁極を検出している場合には、E2とE3とは等しいので、これらをEで表すと、第2磁気センサ72の出力信号S2[n]はS2[n]=A2・sin(Eθ[n]+120)で表され、第3磁気センサ73の出力信号S3[n]は、S3[n]=A3・sin(Eθ[n]+240)と表される。
(Eθ[n]+120)をEΘ[n]に置き換えると、第2出力信号S2[n]はS2[n]=A2・sinEΘ[n]で表され、第3出力信号S3[n]はS3[n]=A3・sin(EΘ[n]+120)で表わされる。したがって、第2出力信号S2と第3出力信号S3とを用い、前述した方法と同様な方法でEΘ[n]とEとを演算することができる。EΘ[n]=Eθ[n]+120であるので、θ[n]=(EΘ[n]−120)/Eである。したがって、θ[n]=(EΘ[n]−120)/Eの式に、演算されたEΘ[n]とEを代入することにより、入力軸8の回転角θ[n]を演算することができる。また、EΘ[n]が演算されると、振幅A2および振幅A3を演算することができる。つまり、第2演算モードによって、E,θ[n],A2,A3を演算することができる。
第2演算モードによる回転角演算に用いられる3サンプリング分の第2および第3出力信号を、前記式(6a) 〜(6f)にならって次式(31a) 〜(31f)で表すと、EΘ基本演算式およびE演算式はそれぞれ次式(32) および(33)で表すことができる。
S2[n]=A2sin(Eθ[n]+120) …(31a)
S2[n-1]=A2sin(Eθ[n-1]+120) …(31b)
S2[n-2]=A2sin(Eθ[n-2]+120) …(31c)
S3[n]=A3sin(Eθ[n]+120) …(31d)
S3[n-1]=A3sin(Eθ[n-1]+120) …(31e)
S3[n-2]=A3sin(Eθ[n-2]+120) …(31f)
S2[n]=A2sin(Eθ[n]+120) …(31a)
S2[n-1]=A2sin(Eθ[n-1]+120) …(31b)
S2[n-2]=A2sin(Eθ[n-2]+120) …(31c)
S3[n]=A3sin(Eθ[n]+120) …(31d)
S3[n-1]=A3sin(Eθ[n-1]+120) …(31e)
S3[n-2]=A3sin(Eθ[n-2]+120) …(31f)
第1演算モードまたは第2演算モードでは、3つの磁気センサ71,72,73のうちの2つの磁気センサにおける3サンプリング分の出力信号に基づいて入力軸8の回転角θ[n]を演算しているので、精度の高い回転角を演算することが可能となる。また、第1演算モードまたは第2演算モードでは、入力軸8の回転角θ[n]の演算に用いられる数式の数が、これらの数式に含まれている本来の未知数の数より少なくても、入力軸8の回転角θ[n]を演算することができるので、入力軸8の回転角θ[n]を演算するために必要なセンサ値の数を少なくすることが可能となる。
第1演算モードまたは第2演算モードでは、3サンプリング間での同じ磁気センサの出力信号の振幅が互いに等しいとみなしている。3サンプリング間での同じ磁気センサの出力信号の振幅は、温度変化の影響によって異なる値となる可能性がある。しかしながら、サンプリング間隔が小さい場合には、3サンプリング間の温度変化は非常に小さいので、3サンプリング間での同じ磁気センサの出力信号の振幅は等しいとみなすことができる。したがって、第1演算モードまたは第2演算モードでは、3サンプリング間での温度変化の影響による振幅のばらつきを補償することができる。また、第1演算モードまたは第2演算モードでは、回転角の演算に用いられている2つの磁気センサ間の振幅は、別々の未知数として扱っているので、それらの2つの磁気センサ間の温度特性のばらつきの影響を補償することができる。これにより、精度の高い回転角を検出することができる。
また、第1演算モードまたは第2演算モードでは、磁石61の各磁極M1〜M8の角度幅(ピッチ幅)のばらつきを高い精度で補償できるので、誤差のより小さい回転角を検出することが可能となる。
[3]第3演算モード
第3演算モードは、第1演算モードおよび第2演算モードのいずれもが適用できない場合であって、第1磁気センサ71が検出している磁極に対応する角度幅誤差補正値E1および第1出力信号S1の振幅A1が第1演算モードによって既に演算されてメモリに記憶されている場合に適用される演算モードである。第3演算モードでは、主として第1磁気センサ71の出力信号S1に基づいて回転角θが演算される。
[3]第3演算モード
第3演算モードは、第1演算モードおよび第2演算モードのいずれもが適用できない場合であって、第1磁気センサ71が検出している磁極に対応する角度幅誤差補正値E1および第1出力信号S1の振幅A1が第1演算モードによって既に演算されてメモリに記憶されている場合に適用される演算モードである。第3演算モードでは、主として第1磁気センサ71の出力信号S1に基づいて回転角θが演算される。
たとえば、図5Aに示すように、磁石61(入力軸8)が矢印で示す方向に回転している場合において、第1および第2磁気センサ71,72が同じ磁極(この例ではM1)を検出している状態から、第2磁気センサ72の検出している磁極が変化した場合に、第3演算モードは適用される。
角度幅誤差補正値Eと今演算周期の番号nを用いると、今演算周期においてサンプリングされた第1磁気センサ71の出力信号S1は、次式(34)で表される。
角度幅誤差補正値Eと今演算周期の番号nを用いると、今演算周期においてサンプリングされた第1磁気センサ71の出力信号S1は、次式(34)で表される。
S1[n]=A1[n]sin(E1θ[n]) …(34)
E1は、第1磁気センサ71が検出している磁極に対応する角度幅誤差補正値である。
前記式(34)から回転角θ[n]は、次式(35)で表される。
θ[n]=(1/E1)sin−1(S1[n]/A1) …(35)
メモリに記憶されており、第1磁気センサ71が検出している磁極に対応するE1およびA1を、前記式(35)に代入することにより、θ[n]が演算される。ただし、式(35)によって回転角θ[n]を演算する場合には、2つの回転角θ[n]が演算されるので、いずれの回転角が実際の回転角であるかを判定する必要がある。この判定方法について、図6を参照して説明する。図6には、第1出力信号S1、第2出力信号S2および第3出力信号S3の1周期分の波形が示されている。図6の横軸の回転角[deg]は、電気角を表している。
E1は、第1磁気センサ71が検出している磁極に対応する角度幅誤差補正値である。
前記式(34)から回転角θ[n]は、次式(35)で表される。
θ[n]=(1/E1)sin−1(S1[n]/A1) …(35)
メモリに記憶されており、第1磁気センサ71が検出している磁極に対応するE1およびA1を、前記式(35)に代入することにより、θ[n]が演算される。ただし、式(35)によって回転角θ[n]を演算する場合には、2つの回転角θ[n]が演算されるので、いずれの回転角が実際の回転角であるかを判定する必要がある。この判定方法について、図6を参照して説明する。図6には、第1出力信号S1、第2出力信号S2および第3出力信号S3の1周期分の波形が示されている。図6の横軸の回転角[deg]は、電気角を表している。
図6に示すように、第1出力信号S1[n]がたとえば正の値である場合には、(1/E1)sin−1(S1[n]/A1)に対応する回転角θ[n]は、0度〜90度の領域R1内の回転角と、90度〜180度の領域R2内の回転角との2つの回転角となる。また、第1出力信号S1[n]がたとえば負の値である場合には、(1/E1)sin−1(S1[n]/A1)に対応する回転角θ[n]は、180度〜270度の領域U1内の回転角と、270度〜360度の領域U2内の回転角との2つの回転角となる。
この実施形態では、第1磁気センサ71以外の2つの磁気センサ72,73の出力信号S2,S3のいずれか一方に基づいて、前記式(35)によって演算される2つの回転角のうちのいずれが実際の回転角であるかが判定される。なお、第2磁気センサ72および第3磁気センサ73のうちのいずれか一方が故障している場合には、正常である一方の磁気センサの出力信号に基づいて、前記判定が行われる。
まず、第2出力信号S2[n]に基づいて、前記判定が行われる場合について説明する。第2出力信号S2の振幅A2の1/2を閾値a(a>0)とする。この閾値aは、たとえば、メモリに記憶されている第2出力信号S2の振幅A2であって、第1磁気センサ71が検出している磁極に対応する振幅A2に基づいて求めることができる。なお、第1出力信号S1の振幅A1の1/2を閾値a(a>0)としてもよい。
第2出力信号S2[n]がa以上のときに取り得る入力軸8の回転角θ[n]は、0度〜30度の範囲および270度〜360度の範囲である。第2出力信号S2[n]が−a未満のときに取り得る入力軸8の回転角θ[n]は、90度〜210度の範囲である。第2出力信号S2[n]が−a以上a未満のときに取り得る入力軸8の回転角θ[n]は、30度〜90度の範囲および210度〜270度の範囲である。
したがって、前記式(35)によって演算された2つの回転角のうち、いずれの回転角が実際の回転角であるかを、第2出力信号S2[n]に基づいて判定することができる。具体的には、第1出力信号S1[n]が正の値である場合には、第2出力信号S2[n]が−a以上であれば、前記式(35)によって演算された2つの回転角のうち領域R1内の回転角が実際の回転角であると判定される。一方、第2出力信号S2[n]が−a未満であれば、前記式(35)によって演算された2つの回転角のうち領域R2内の回転角が実際の回転角であると判定される。
第1出力信号S1[n]が負の値である場合には、第2出力信号S2[n]がa未満であれば、前記式(35)によって演算された2つの回転角のうち領域U1内の回転角が実際の回転角であると判定される。一方、第2出力信号S2[n]がa以上であれば、前記式(35)によって演算された2つの回転角のうち領域U2内の回転角が実際の回転角であると判定される。
次に、第3出力信号S3[n]に基づいて、前記判定が行われる場合について説明する。第3出力信号S3の振幅A3の1/2を閾値a(a>0)とする。この閾値aは、たとえば、メモリに記憶されている第3出力信号S3の振幅A3であって、第1磁気センサ71が検出している磁極に対応する振幅A3に基づいて求めることができる。なお、第1出力信号S1の振幅A1の1/2を閾値a(a>0)としてもよい。
第1出力信号S1[n]が正の値である場合には、第3出力信号S3[n]が−a未満であれば、前記式(35)によって演算された2つの回転角のうち領域R1内の回転角が実際の回転角であると判定される。一方、第3出力信号S3[n]が−a以上であれば、前記式(35)によって演算された2つの回転角のうち領域R2内の回転角が実際の回転角であると判定される。
第1出力信号S1[n]が負の値である場合には、第3出力信号S3[n]がa以上であれば、前記式(35)によって演算された2つの回転角のうち領域U1内の回転角が実際の回転角であると判定される。一方、第3出力信号S3[n]がa未満であれば、前記式(35)によって演算された2つの回転角のうち領域U2内の回転角が実際の回転角であると判定される。
[4]第4演算モード
第4演算モードは、第1演算モードおよび第2演算モードのいずれもが適用できない場合であって、第2磁気センサ72が検出している磁極に対応する角度幅誤差補正値E2および第2出力信号S2の振幅A2が第1演算モードまたは第3演算モードによって既に演算されてメモリに記憶されている場合に適用される演算モードである。第4演算モードでは、主として第2磁気センサ72の出力信号S2に基づいて回転角θが演算される。
[4]第4演算モード
第4演算モードは、第1演算モードおよび第2演算モードのいずれもが適用できない場合であって、第2磁気センサ72が検出している磁極に対応する角度幅誤差補正値E2および第2出力信号S2の振幅A2が第1演算モードまたは第3演算モードによって既に演算されてメモリに記憶されている場合に適用される演算モードである。第4演算モードでは、主として第2磁気センサ72の出力信号S2に基づいて回転角θが演算される。
たとえば、図5Bに示すように、磁石61(入力軸8)が矢印で示す方向に回転している場合において、第1および第2磁気センサ71,72が同じ磁極(この例ではM1)を検出している状態から、第1磁気センサ71が検出している磁極が変化した場合に、第4演算モードは適用される。
角度幅誤差補正値Eと今演算周期の番号nを用いると、今演算周期においてサンプリングされた第2磁気センサ72の出力信号S2は、次式 (36)で表される。
角度幅誤差補正値Eと今演算周期の番号nを用いると、今演算周期においてサンプリングされた第2磁気センサ72の出力信号S2は、次式 (36)で表される。
S2[n]=A2[n]sin(E2θ[n]+120) …(36)
E2は、第2磁気センサ72が検出している磁極に対応する角度幅誤差補正値である。
前記式(36)から回転角θ[n]は、次式(37)で表される。
θ[n]=(1/E2){sin−1(S2[n]/A2)−120} …(37)
メモリに記憶されており、第2磁気センサ72が検出している磁極に対応するE2およびA2を、前記式(37)に代入することにより、θ[n]が演算される。
E2は、第2磁気センサ72が検出している磁極に対応する角度幅誤差補正値である。
前記式(36)から回転角θ[n]は、次式(37)で表される。
θ[n]=(1/E2){sin−1(S2[n]/A2)−120} …(37)
メモリに記憶されており、第2磁気センサ72が検出している磁極に対応するE2およびA2を、前記式(37)に代入することにより、θ[n]が演算される。
前記式(37)によって回転角θ[n]を演算すると、2つの回転角θ[n]が演算される。そこで、第2磁気センサ72以外の2つの磁気センサ71,73の出力信号S1,S3のいずれか一方に基づいて、前記式(37)によって演算された2つの回転角θ[n]のうちのいずれが実際の回転角であるかを判定する。なお、第1磁気センサ71および第3磁気センサ73のうちのいずれか一方が故障している場合には、正常である一方の磁気センサの出力信号に基づいて、前記判定が行われる。
まず、第1出力信号S1[n]に基づいて、前記判定が行われる場合について説明する。メモリに記憶されている第1出力信号S1の振幅A1の1/2または第2出力信号S2の振幅A2の1/2を閾値a(a>0)とする。
第2出力信号S2[n]が正の値である場合には、第1出力信号S1[n]が−a未満であれば、前記式(37)によって演算された2つの回転角のうち240度〜330度の領域内の回転角が実際の回転角であると判定される。一方、第1出力信号S1[n]が−a以上であれば、前記式(37)によって演算された2つの回転角のうち0度〜60度または330度〜360度の領域内の回転角が実際の回転角であると判定される。
第2出力信号S2[n]が正の値である場合には、第1出力信号S1[n]が−a未満であれば、前記式(37)によって演算された2つの回転角のうち240度〜330度の領域内の回転角が実際の回転角であると判定される。一方、第1出力信号S1[n]が−a以上であれば、前記式(37)によって演算された2つの回転角のうち0度〜60度または330度〜360度の領域内の回転角が実際の回転角であると判定される。
第2出力信号S2[n]が負の値である場合には、第1出力信号S1[n]がa以上であれば、前記式(37)によって演算された2つの回転角のうち60度〜150度の領域内の回転角が実際の回転角であると判定される。一方、第1出力信号S1[n]がa未満であれば、前記式(37)によって演算された2つの回転角のうち150度〜240度の領域内の回転角が実際の回転角であると判定される。
次に、第3出力信号S3[n]に基づいて、前記判定が行われる場合について説明する。メモリに記憶されている第3出力信号S2の振幅A3の1/2または第2出力信号S2の振幅A2の1/2を閾値a(a>0)とする。
第2出力信号S2[n]が正の値である場合には、第3出力信号S3[n]が−a以上であれば、前記式(37)によって演算された2つの回転角のうち240度〜330度の領域内の回転角が実際の回転角であると判定される。一方、第3出力信号S3[n]が−a未満であれば、前記式(37)によって演算された2つの回転角のうち0度〜60度または330度〜360度の領域内の回転角が実際の回転角であると判定される。
第2出力信号S2[n]が正の値である場合には、第3出力信号S3[n]が−a以上であれば、前記式(37)によって演算された2つの回転角のうち240度〜330度の領域内の回転角が実際の回転角であると判定される。一方、第3出力信号S3[n]が−a未満であれば、前記式(37)によって演算された2つの回転角のうち0度〜60度または330度〜360度の領域内の回転角が実際の回転角であると判定される。
第2出力信号S2[n]が負の値である場合には、第3出力信号S3[n]がa未満であれば、前記式(37)によって演算された2つの回転角のうち60度〜150度の領域内の回転角が実際の回転角であると判定される。一方、第3出力信号S3[n]がa以上であれば、前記式(37)によって演算された2つの回転角のうち150度〜240度の領域内の回転角が実際の回転角であると判定される。
[5]第5演算モード
第5演算モードは、第1演算モードおよび第2演算モードのいずれもが適用できない場合であって、第3磁気センサ73が検出している磁極に対応する角度幅誤差補正値E3および第3出力信号S3の振幅A3が第2演算モードによって既に演算されてメモリに記憶されている場合に適用される演算モードである。第5演算モードでは、主として第3磁気センサ72の出力信号S3に基づいて回転角θが演算される。
[5]第5演算モード
第5演算モードは、第1演算モードおよび第2演算モードのいずれもが適用できない場合であって、第3磁気センサ73が検出している磁極に対応する角度幅誤差補正値E3および第3出力信号S3の振幅A3が第2演算モードによって既に演算されてメモリに記憶されている場合に適用される演算モードである。第5演算モードでは、主として第3磁気センサ72の出力信号S3に基づいて回転角θが演算される。
たとえば、図5Cに示すように、磁石61(入力軸8)が矢印で示す方向に回転している場合において、第2および第3磁気センサ72,73が同じ磁極(この例ではM2)を検出している状態から、第2磁気センサ72が検出している磁極が変化した場合に、第5演算モードは適用される。
角度幅誤差補正値Eと今演算周期の番号nを用いると、今演算周期においてサンプリングされた第3磁気センサ73の出力信号S3は、次式 (38)で表される。
角度幅誤差補正値Eと今演算周期の番号nを用いると、今演算周期においてサンプリングされた第3磁気センサ73の出力信号S3は、次式 (38)で表される。
S3[n]=A3[n]sin(E3θ[n]+240) …(38)
E3は、第3磁気センサ72が検出している磁極に対応する角度幅誤差補正値である。
前記式(38)から回転角θ[n]は、次式(39)で表される。
θ[n]=(1/E3){sin−1(S3[n]/A3)−120} …(39)
メモリに記憶されており、第3磁気センサ73が検出している磁極に対応するE3およびA3を、前記式(39)に代入することにより、θ[n]が演算される。
E3は、第3磁気センサ72が検出している磁極に対応する角度幅誤差補正値である。
前記式(38)から回転角θ[n]は、次式(39)で表される。
θ[n]=(1/E3){sin−1(S3[n]/A3)−120} …(39)
メモリに記憶されており、第3磁気センサ73が検出している磁極に対応するE3およびA3を、前記式(39)に代入することにより、θ[n]が演算される。
前記式(39)によって回転角θ[n]を演算すると、2つの回転角θ[n]が演算される。そこで、第3磁気センサ73以外の2つの磁気センサ71,72の出力信号S1,S2のいずれか一方に基づいて、前記式(39)によって演算された2つの回転角θ[n]のうちのいずれが実際の回転角であるかを判定する。なお、第1磁気センサ71および第2磁気センサ72のうちのいずれか一方が故障している場合には、正常である一方の磁気センサの出力信号に基づいて、前記判定が行われる。
まず、第2出力信号S2[n]に基づいて、前記判定が行われる場合について説明する。メモリに記憶されている第2出力信号S2の振幅A2の1/2または第3出力信号S3の振幅A3の1/2を閾値a(a>0)とする。
第3出力信号S3[n]が正の値である場合には、第2出力信号S2[n]が−a未満であれば、前記式(39)によって演算された2つの回転角のうち120度〜210度の領域内の回転角が実際の回転角であると判定される。一方、第2出力信号S2[n]が−a以上であれば、前記式(39)によって演算された2つの回転角のうち210度〜300度の領域内の回転角が実際の回転角であると判定される。
第3出力信号S3[n]が正の値である場合には、第2出力信号S2[n]が−a未満であれば、前記式(39)によって演算された2つの回転角のうち120度〜210度の領域内の回転角が実際の回転角であると判定される。一方、第2出力信号S2[n]が−a以上であれば、前記式(39)によって演算された2つの回転角のうち210度〜300度の領域内の回転角が実際の回転角であると判定される。
第3出力信号S3[n]が負の値である場合には、第2出力信号S2[n]がa以上であれば、前記式(39)によって演算された2つの回転角のうち300度〜360度または0度〜30度の領域内の回転角が実際の回転角であると判定される。一方、第2出力信号S2[n]がa未満であれば、前記式(39)によって演算された2つの回転角のうち30度〜120度の領域内の回転角が実際の回転角であると判定される。
次に、第1出力信号S1[n]に基づいて、前記判定が行われる場合について説明する。メモリに記憶されている第1出力信号S1の振幅A1の1/2または第3出力信号S3の振幅A3の1/2を閾値a(a>0)とする。
第3出力信号S3[n]が正の値である場合には、第1出力信号S1[n]が−a以上であれば、前記式(39)によって演算された2つの回転角のうち120度〜210度の領域内の回転角が実際の回転角であると判定される。一方、第1出力信号S1[n]が−a未満であれば、前記式(39)によって演算された2つの回転角のうち210度〜300度の領域内の回転角が実際の回転角であると判定される。
第3出力信号S3[n]が正の値である場合には、第1出力信号S1[n]が−a以上であれば、前記式(39)によって演算された2つの回転角のうち120度〜210度の領域内の回転角が実際の回転角であると判定される。一方、第1出力信号S1[n]が−a未満であれば、前記式(39)によって演算された2つの回転角のうち210度〜300度の領域内の回転角が実際の回転角であると判定される。
第3出力信号S3[n]が負の値である場合には、第1出力信号S1[n]がa未満であれば、前記式(39)によって演算された2つの回転角のうち300度〜360度または0度〜30度の領域内の回転角が実際の回転角であると判定される。一方、第1出力信号S1[n]がa以上であれば、前記式(39)によって演算された2つの回転角のうち30度〜120度の領域内の回転角が実際の回転角であると判定される。
[6]第6演算モード
第6演算モードは、3つの磁気センサ71,72,73のうち、第2磁気センサ72のみが故障しており、かつ第3演算モードまたは第5演算モードによって回転角を演算できない場合に適用される演算モードである。第6演算モードでは、第1および第3磁気センサ71,73における2サンプリング分の出力信号に基づいて回転角θが演算される。
[6]第6演算モード
第6演算モードは、3つの磁気センサ71,72,73のうち、第2磁気センサ72のみが故障しており、かつ第3演算モードまたは第5演算モードによって回転角を演算できない場合に適用される演算モードである。第6演算モードでは、第1および第3磁気センサ71,73における2サンプリング分の出力信号に基づいて回転角θが演算される。
第1出力信号S1と第3出力信号S3との位相差(電気角)をCで表すことにする。また、今回のサンプリング周期の番号(今回の演算周期の番号)を[n]、前回のサンプリング周期の番号(前回の演算周期の番号)を[n-1]で表すことにする。
位相差Cおよびサンプリング周期の番号[n],[n-1]を用いると、今回サンプリングされた第1出力信号S1、前回サンプリングされた第1出力信号S1、今回サンプリングされた第3出力信号S3および前回サンプリングされた第3出力信号S3を、それぞれ次式(40a),(40b),(40c),(40d)で表すことができる。
位相差Cおよびサンプリング周期の番号[n],[n-1]を用いると、今回サンプリングされた第1出力信号S1、前回サンプリングされた第1出力信号S1、今回サンプリングされた第3出力信号S3および前回サンプリングされた第3出力信号S3を、それぞれ次式(40a),(40b),(40c),(40d)で表すことができる。
S1[n]=A1[n]sinθ[n] …(40a)
S1[n-1]=A1[n-1]sinθ[n-1] …(40b)
S3[n]=A3[n]sin(θ[n]+C) …(40c)
S3[n-1]=A3[n-1]sin(θ[n-1]+C) …(40d)
Cが既知であるとすると、これら4つの式に含まれる未知数(A1[n],A1[n-1],A3[n],A3[n-1],θ[n],θ[n-1])の数は6となる。つまり、未知数の数が方程式の数より多いため、このままでは、4つの式からなる連立方程式を解くことができない。
S1[n-1]=A1[n-1]sinθ[n-1] …(40b)
S3[n]=A3[n]sin(θ[n]+C) …(40c)
S3[n-1]=A3[n-1]sin(θ[n-1]+C) …(40d)
Cが既知であるとすると、これら4つの式に含まれる未知数(A1[n],A1[n-1],A3[n],A3[n-1],θ[n],θ[n-1])の数は6となる。つまり、未知数の数が方程式の数より多いため、このままでは、4つの式からなる連立方程式を解くことができない。
そこで、サンプリング間隔(サンプリング周期)を短く設定することにより、2サンプリング間の温度変化による振幅の変化がないとみなす。つまり、2サンプリング間の第1磁気センサ71の出力信号の振幅A1[n],A1[n-1]が互いに等しいとみなして、これらをA1で表すことにする。同様に、2サンプリング間の第3磁気センサ73の出力信号の振幅A3[n],A3[n-1]が互いに等しいとみなし、これらをA3で表すことにする。これにより、前記式(40a),(40b),(40c)および(40d)を、それぞれ次式(41a),(41b),(41c)および(41d)で表わすことができる。
S1[n]=A1sinθ[n] …(41a)
S1[n-1]=A1sinθ[n-1] …(41b)
S3[n]=A3sin(θ[n]+C) …(41c)
S3[n-1]=A3sin(θ[n-1]+C) …(41d)
これら4つの式に含まれる未知数(A1,A3,θ[n],θ[n-1])の数は4となる。つまり、未知数の数が方程式の数以下となるため、4つの式からなる連立方程式を解くことができる。したがって、前記4つの式(41a),(41b),(41c)および(41d) からなる連立方程式を解くことにより、入力軸8の回転角θ[n]を演算することができる。
S1[n-1]=A1sinθ[n-1] …(41b)
S3[n]=A3sin(θ[n]+C) …(41c)
S3[n-1]=A3sin(θ[n-1]+C) …(41d)
これら4つの式に含まれる未知数(A1,A3,θ[n],θ[n-1])の数は4となる。つまり、未知数の数が方程式の数以下となるため、4つの式からなる連立方程式を解くことができる。したがって、前記4つの式(41a),(41b),(41c)および(41d) からなる連立方程式を解くことにより、入力軸8の回転角θ[n]を演算することができる。
以下、両磁気センサ71,73間の位相差Cが240度である場合について、具体的に説明する。位相差Cが240度である場合には、前記4つの式(41a),(41b),(41c)および(41d)は、それぞれ次式(42a),(42b),(42c)および(42d)で表わすことができる。
S1[n]=A1sinθ[n] …(42a)
S1[n-1]=A1sinθ[n-1] …(42b)
S3[n]=A3sin(θ[n]+240)=A3sin(θ[n]−120) …(42c)
S3[n-1]=A3sin(θ[n-1]+240)=A3sin(θ[n-1]−120)…(42d)
ここで、θ−120=δとおくと、前記4つの式(42a),(42b),(42c)および(42d)は、それぞれ次式(43a),(43b),(43c)および(43d)で表わすことができる。
S1[n]=A1sinθ[n] …(42a)
S1[n-1]=A1sinθ[n-1] …(42b)
S3[n]=A3sin(θ[n]+240)=A3sin(θ[n]−120) …(42c)
S3[n-1]=A3sin(θ[n-1]+240)=A3sin(θ[n-1]−120)…(42d)
ここで、θ−120=δとおくと、前記4つの式(42a),(42b),(42c)および(42d)は、それぞれ次式(43a),(43b),(43c)および(43d)で表わすことができる。
S1[n]=A1sin(δ[n]+120) …(43a)
S1[n-1]A1sin(δ[n-1]+120)…(43b)
S3[n]=A3sinδ[n] …(43c)
S3[n-1]=A3sinδ[n-1] …(43d)
前記4つの式(43a),(43b),(43c)および(43d)からなる連立方程式を解くと、δ[n]は、次式(44)(以下、「δ基本演算式(44)」という。)で表わされる。
S1[n-1]A1sin(δ[n-1]+120)…(43b)
S3[n]=A3sinδ[n] …(43c)
S3[n-1]=A3sinδ[n-1] …(43d)
前記4つの式(43a),(43b),(43c)および(43d)からなる連立方程式を解くと、δ[n]は、次式(44)(以下、「δ基本演算式(44)」という。)で表わされる。
したがって、入力軸の回転角θは、次式(45) (以下、「θ基本演算式(45)」という。)に基づいて、求めることができる。
θ[n]=δ[n]+120 …(45)
前記δ基本演算式(44)は、第1演算モードで用いられる前述のEθ基本演算式(7)と類似している。つまり、Eθ基本演算式(7)におけるEθ[n]をδ[n]に置き換え、Eθ基本演算式(7)におけるp1をp3=S3[n]/S3[n-1]に置き換え、Eθ基本演算式(7)におけるp2をp1=S1[n]/S1[n-1]に置き換えると、前記式(44)が得られる。
θ[n]=δ[n]+120 …(45)
前記δ基本演算式(44)は、第1演算モードで用いられる前述のEθ基本演算式(7)と類似している。つまり、Eθ基本演算式(7)におけるEθ[n]をδ[n]に置き換え、Eθ基本演算式(7)におけるp1をp3=S3[n]/S3[n-1]に置き換え、Eθ基本演算式(7)におけるp2をp1=S1[n]/S1[n-1]に置き換えると、前記式(44)が得られる。
そのため、第6演算モードにおいても第1演算モードと同様に、θ基本演算式(45) (δ基本演算式(44))に含まれている分数のいずれかの分母が零になる場合には、θ基本演算式(45)とは異なる演算式によって回転角θ[n]を演算するようにしている。さらに、この実施形態では、θ基本演算式(45)によって回転角θ[n]を演算することができるけれども、より簡単な演算式によって回転角θ[n]を演算できる場合には、θ基本演算式(45)とは異なる演算式によって回転角θ[n]を演算するようにしている。この実施形態では、θ基本演算式(45)より簡単に回転角θ[n]を演算できる場合とは、S1[n]=0の場合またはS3[n]=0の場合である。
この実施形態では、回転角θ[n]を演算するための演算式として、θ基本演算式(45)を含めて10種類の演算式が用意されている。表2は、10種類の演算式と、その演算式が適用される条件とを示している。なお、回転角θ[n]を演算する際には、表2の上から順番にその条件を満たしているか否かが判別され、条件を満たしたと判別されるとそれ以降の条件判別は行われず、当該条件に対応する演算式により、回転角θ[n]が演算される。
3つの磁気センサ71,72,73のうち第2磁気センサ72のみが故障している場合には、入力軸8の回転角θは、第3演算モード、第5演算モードまたは第6演算モードによって演算されることになる。第6演算モードによって回転角θが演算される場合は、各磁極の角度幅誤差を補正することができないため、第3演算モードまたは第5演算モードによって回転角θが演算される場合に比べて、演算精度が低下する。
図7は、第1の回転角演算部77Aの動作を示すフローチャートである。
トルク演算用ECU77の電源がオンすると、第1の回転角演算部77Aは、各磁気センサ71,72,73が故障しているか否かを判定するため故障判定処理を行う(ステップS1)。この処理の詳細については後述する。
ステップS1の故障判定処理において、3つの磁気センサ71,72,73の全てが故障していないと判定された場合または1個の磁気センサのみが故障していると判定された場合には、第1の回転角演算部77Aは、ステップS2に移行する。
トルク演算用ECU77の電源がオンすると、第1の回転角演算部77Aは、各磁気センサ71,72,73が故障しているか否かを判定するため故障判定処理を行う(ステップS1)。この処理の詳細については後述する。
ステップS1の故障判定処理において、3つの磁気センサ71,72,73の全てが故障していないと判定された場合または1個の磁気センサのみが故障していると判定された場合には、第1の回転角演算部77Aは、ステップS2に移行する。
ステップS2では、第1の回転角演算部77Aは、強制回転フラグFAKの値が1であるか否かを判別する。強制回転フラグFAKは、トルク演算用ECU77の電源がオンされたにおいて、後述するステップS3の強制回転に基づく回転角演算処理が行われたことを記憶するためのフラグである。強制回転フラグFAKの初期値は0であり、強制回転に基づく回転角演算処理が行われたときには強制回転フラグFAKの値が1に設定される。
強制回転フラグFAKの値が0である場合には(ステップS2:NO)、第1の回転角演算部77Aは、強制回転に基づく回転角演算処理を行う(ステップS3)。この処理は、電動モータ18を一時的に強制回転させることにより、入力軸8(出力軸9)を回転させ、入力軸8の回転角θを演算する処理である。この処理の詳細については後述する。
前述した第1演算モードまたは第2演算モードでは、前回のサンプリング時点と今回のサンプリング時点とにおいて、回転角θ[n]の演算に用いられる2つの磁気センサの出力信号が変化していない場合には、前回演算されたEθ[n](またはEΘ[n])、Eおよびθ[n]が、今回のEθ[n](またはEΘ[n])、Eおよびθ[n]として用いられる(表1の上から2番目の演算式を参照)。しかしながら、イグニッションキーがオン操作されることによって、トルク演算用ECU77の電源がオンされた時点では、前回演算されたEθ[n](またはEΘ[n])、Eおよびθ[n]は存在しない。このため、トルク演算用ECU77の電源がオンされた後に、回転角θ[n]の演算に用いられる2つの磁気センサの出力信号が変化していない場合には、回転角θ[n]を演算できなくなる。そこで、Eθ[n](またはEΘ[n])、Eおよびθ[n]の前回値を作成するために、強制回転に基づく回転角演算処理を行っている。
前述した第1演算モードまたは第2演算モードでは、前回のサンプリング時点と今回のサンプリング時点とにおいて、回転角θ[n]の演算に用いられる2つの磁気センサの出力信号が変化していない場合には、前回演算されたEθ[n](またはEΘ[n])、Eおよびθ[n]が、今回のEθ[n](またはEΘ[n])、Eおよびθ[n]として用いられる(表1の上から2番目の演算式を参照)。しかしながら、イグニッションキーがオン操作されることによって、トルク演算用ECU77の電源がオンされた時点では、前回演算されたEθ[n](またはEΘ[n])、Eおよびθ[n]は存在しない。このため、トルク演算用ECU77の電源がオンされた後に、回転角θ[n]の演算に用いられる2つの磁気センサの出力信号が変化していない場合には、回転角θ[n]を演算できなくなる。そこで、Eθ[n](またはEΘ[n])、Eおよびθ[n]の前回値を作成するために、強制回転に基づく回転角演算処理を行っている。
なお、第6演算モードによって回転角θが演算される場合においても、トルク演算用ECU77の電源がオンされた後に、回転角θ[n]の演算に用いられる2つの磁気センサ71,73の出力信号が変化していない場合には、回転角θ[n]を演算できなくなる。そこで、θ[n]の前回値を作成するために、強制回転に基づく回転角演算処理を行っている。
強制回転に基づく回転角演算処理が終了すると、第1の回転角演算部77Aは、強制回転フラグFAKの値を1に設定した後(ステップS4)、ステップS6に移行する。
ステップS6では、第1の回転角演算部77Aは、イグニッションキーオフ操作信号が入力されたか否かを判別する。イグニッションキーオフ操作信号が入力されていなれば(ステップS6:NO)、第1の回転角演算部77Aは、ステップS1に戻る。
ステップS6では、第1の回転角演算部77Aは、イグニッションキーオフ操作信号が入力されたか否かを判別する。イグニッションキーオフ操作信号が入力されていなれば(ステップS6:NO)、第1の回転角演算部77Aは、ステップS1に戻る。
前記ステップS2において、強制回転フラグFAKの値が1であると判別された場合には(ステップS2:YES)、第1の回転角演算部77Aは、通常時の回転角演算処理を行う(ステップS5)。この処理の詳細については後述する。
通常時の回転角演算処理によって回転角が演算されると、第1の回転角演算部77Aは、ステツプS6に移行し、イグニッションキーオフ操作信号が入力されたか否かを判別する。イグニッションキーオフ操作信号が入力されていなれば(ステップS6:NO)、第1の回転角演算部77Aは、ステップS1に戻る。
通常時の回転角演算処理によって回転角が演算されると、第1の回転角演算部77Aは、ステツプS6に移行し、イグニッションキーオフ操作信号が入力されたか否かを判別する。イグニッションキーオフ操作信号が入力されていなれば(ステップS6:NO)、第1の回転角演算部77Aは、ステップS1に戻る。
ステップS6で、イグニッションキーオフ操作信号が入力されたと判別された場合には(ステップS6:YES)、第1の回転角演算部77Aは回転角演算処理を終了する。
図8は、図7のステップS1の故障判定処理の手順を示すフローチャートである。
まず、第1の回転角演算部77Aは、各磁気センサ71,72,73のセンサ値S1[n], S2[n] ,S3[n]を取得する(ステップS11)。トルク演算用ECU77内のメモリには、所定回数前に取得されたセンサ値から最新に取得されたセンサ値までの複数回分(3回以上)のセンサ値が記憶されるようになっている。
図8は、図7のステップS1の故障判定処理の手順を示すフローチャートである。
まず、第1の回転角演算部77Aは、各磁気センサ71,72,73のセンサ値S1[n], S2[n] ,S3[n]を取得する(ステップS11)。トルク演算用ECU77内のメモリには、所定回数前に取得されたセンサ値から最新に取得されたセンサ値までの複数回分(3回以上)のセンサ値が記憶されるようになっている。
そして、第1の回転角演算部77Aは、取得したセンサ値S1[n], S2[n] ,S3[n]に基づいて、第1磁気センサ71、第2磁気センサ72および第3磁気センサ73が故障しているか否かを判定する(ステップS12,S14,S16)。磁気センサが故障した場合には、その出力信号が所定値に固定される。そこで、たとえば、第2および第3磁気センサのセンサ値が変化しているにもかかわらず、第3磁気センサのセンサ値が変化しないような状態が継続した場合には、第1磁気センサが故障している判定される。
第1磁気センサが故障していると判定された場合には(ステップS12:YES)、第1の回転角演算部77Aは、第1センサ故障フラグFA1の値を1に設定する(ステップS13)。第1センサ故障フラグFA1の初期値は0である。
第2磁気センサが故障していると判定された場合には(ステップS14:YES)、第1の回転角演算部77Aは、第2センサ故障フラグFA2の値を1に設定する(ステップS15)。第2センサ故障フラグFA2の初期値は0である。なお、後述するように、第2磁気センサが故障しており、かつ入力軸8の回転角θが第6演算モードで演算されたときには、第2センサ故障フラグFA2の値は2に設定される。
第2磁気センサが故障していると判定された場合には(ステップS14:YES)、第1の回転角演算部77Aは、第2センサ故障フラグFA2の値を1に設定する(ステップS15)。第2センサ故障フラグFA2の初期値は0である。なお、後述するように、第2磁気センサが故障しており、かつ入力軸8の回転角θが第6演算モードで演算されたときには、第2センサ故障フラグFA2の値は2に設定される。
第3磁気センサが故障していると判定された場合には(ステップS16:YES)、第1の回転角演算部77Aは、第3センサ故障フラグFA3の値を1に設定する(ステップS17)。
このようにして、各磁気センサ71,72,73についての故障判定が終了すると、第1の回転角演算部77Aは、2以上の磁気センサが故障しているか否かを判別する(ステップS18)。2以上の磁気センサが故障している場合には(ステップS18:YES)、第1の回転角演算部77Aは、異常処理を行う(ステップS19)。つまり、第1の回転角演算部77Aは、回転角演算処理を停止するとともに、モータ制御用ECU12に、電動モータ18の制御を停止させるための指令を送信する。これにより、電動モータ18は、駆動されなくなる。
このようにして、各磁気センサ71,72,73についての故障判定が終了すると、第1の回転角演算部77Aは、2以上の磁気センサが故障しているか否かを判別する(ステップS18)。2以上の磁気センサが故障している場合には(ステップS18:YES)、第1の回転角演算部77Aは、異常処理を行う(ステップS19)。つまり、第1の回転角演算部77Aは、回転角演算処理を停止するとともに、モータ制御用ECU12に、電動モータ18の制御を停止させるための指令を送信する。これにより、電動モータ18は、駆動されなくなる。
2以上の磁気センサが故障していない場合には(ステップS18:NO)、つまり、全ての磁気センサ71,72,73が正常であるか、または1つの磁気センサのみが故障している場合には、第1の回転角演算部77Aは、図7のステップS2に移行する。
図9A、図9Bおよび図9Cは、図7のステップS3の強制回転に基づく回転角演算処理の手順を示すフローチャートである。
図9A、図9Bおよび図9Cは、図7のステップS3の強制回転に基づく回転角演算処理の手順を示すフローチャートである。
強制回転に基づく回転角演算処理開始時において、正常な任意の1つの磁気センサが検出している磁極を基準磁極として、各磁極に相対的な番号を割り当てた場合の各磁極の番号を相対的極番号と定義する。第1磁気センサ71が検出している磁極の相対的極番号(以下、「第1相対的極番号」という)を変数r1で表し、第2磁気センサ72が検出している磁極の相対的極番号(以下、「第2相対的極番号」という)を変数r2で表し、第3磁気センサ73が検出している磁極の相対的極番号(以下、「第3相対的極番号」という)を変数r3で表すことにする。なお、各相対的極番号r1,r2,r3は、1〜8の整数をとり、1より1少ない相対的極番号は8となり、8より1大きい相対的極番号は1となるものとする。
トルク演算用ECU77内のメモリには、図10に示すように、e1〜e7で示すエリア等が設けられている。エリアe1には、1〜8の相対的磁極番号毎に角度幅誤差補正値Eの値が記憶される。エリアe2には、1〜8の相対的磁極番号毎に第1出力信号S1の振幅A1が記憶される。エリアe3には、1〜8の相対的磁極番号毎に第2出力信号S2の振幅A2が記憶される。エリアe4には、1〜8の相対的磁極番号毎に第3出力信号S3の振幅A3が記憶される。
エリアe5には、複数演算周期分の第1相対的極番号r1[n-k]〜r1[n](kは、3以上の自然数)が記憶される。エリアe6には、複数演算周期分の第2相対的極番号r2[n-k]〜r2[n]が記憶される。エリアe7には、複数演算周期分の第3相対的極番号r3[n-k]〜r3[n]が記憶される。
図9Aに戻り、強制回転に基づく回転角演算処理では、短時間ではあるがステアリングホイール2が自動的に回転する。このため、運転者は何らかの故障が発生したと誤解するおそれがある。そこで、第1の回転角演算部77Aは、運転者への警告を行う(ステップS21)。具体的には、第1の回転角演算部77Aは、車内に設けられた表示装置(図示略)、音声出力装置(図示略)等を制御するための映像音声制御装置(図示略)に、警告出力指令を送信する。映像音声制御装置は、この警告出力指令を受信すると、「ステアリングホイールが強制的に回転しますが故障ではありません」等のメッセージを表示装置に表示したり、音声出力装置によって音声出力したりする。
図9Aに戻り、強制回転に基づく回転角演算処理では、短時間ではあるがステアリングホイール2が自動的に回転する。このため、運転者は何らかの故障が発生したと誤解するおそれがある。そこで、第1の回転角演算部77Aは、運転者への警告を行う(ステップS21)。具体的には、第1の回転角演算部77Aは、車内に設けられた表示装置(図示略)、音声出力装置(図示略)等を制御するための映像音声制御装置(図示略)に、警告出力指令を送信する。映像音声制御装置は、この警告出力指令を受信すると、「ステアリングホイールが強制的に回転しますが故障ではありません」等のメッセージを表示装置に表示したり、音声出力装置によって音声出力したりする。
次に、第1の回転角演算部77Aは、第1方向に電動モータ18を回転駆動させる(ステップS22)。具体的には、第1の回転角演算部77Aは、第1方向に電動モータ18を回転駆動させるための第1強制回転指令をモータ制御用ECU12に送信する。モータ制御用ECU12は、この第1強制回転指令を受信すると、第1方向に電動モータ18を回転駆動させる。
第1の回転角演算部77Aは、各磁気センサ71,72,73のセンサ値S1[n], S2[n] ,S3[n]を取得する(ステップS23)。ステップS23の処理は、後述するステップS29、ステップS31またはステップS33でYESと判定されるまで、所定の演算周期毎に繰り返し実行される。トルク演算用ECU77内のメモリには、所定回数前に取得されたセンサ値から最新に取得されたセンサ値までの複数回分(3回以上)のセンサ値が記憶されるようになっている。
第1の回転角演算部77Aは、今回の処理が強制回転に基づく回転角演算処理開始後の初回の処理であるか否かを判別する(ステップS24)。今回の処理が強制回転に基づく回転角演算処理開始後の初回の処理である場合には(ステップS24:YES)、第1の回転角演算部77Aは、相対的極番号の設定処理を行う(ステップS25)。
図11は、相対的極番号の設定処理の詳細な手順を示すフローチャートである。
図11は、相対的極番号の設定処理の詳細な手順を示すフローチャートである。
ここでは、全ての磁気センサ71,72,73が正常であり、第1磁気センサ71が検出している磁極を基準磁極として各磁極に相対的な番号を割り当てた場合の各磁極の番号を相対的極番号と定義した場合を例にとって説明する。
第1の回転角演算部77Aは、まず、第1出力信号S1が0より大きいか否かを判別する(ステップS51)。第1出力信号S1が0より大きい場合には(ステップS51:YES)、第1の回転角演算部77Aは、第1磁気センサ71が検出している磁極がN極の磁極であると判別し、第1相対的極番号r1を1に設定する(ステップS54)。そして、ステップS56に進む。
第1の回転角演算部77Aは、まず、第1出力信号S1が0より大きいか否かを判別する(ステップS51)。第1出力信号S1が0より大きい場合には(ステップS51:YES)、第1の回転角演算部77Aは、第1磁気センサ71が検出している磁極がN極の磁極であると判別し、第1相対的極番号r1を1に設定する(ステップS54)。そして、ステップS56に進む。
一方、第1出力信号S1が0以下である場合には(ステップS51:NO)、第1の回転角演算部77Aは、第1出力信号S1が0より小さいか否かを判別する(ステップS52)。第1出力信号S1が0より小さい場合には(ステップS52:YES)、第1の回転角演算部77Aは、第1磁気センサ71が検出している磁極がS極の磁極であると判別し、第1相対的極番号r1を2に設定する(ステップS55)。そして、ステップS56に進む。
前記ステップS52において、第1出力信号S1が0以上であると判別された場合には(ステップS52:NO)、つまり、第1出力信号S1が0である場合には、第1の回転角演算部77Aは、入力軸8の回転角が0°であるか180°であるかを判別するために、第2出力信号S2が0より大きいか否かを判別する(ステップS53)。第2出力信号S2が0より大きい場合には(ステップS53:YES)、第1の回転角演算部77Aは、入力軸8の回転角が0°であると判別し、第1相対的極番号r1を1に設定する(ステップS54)。そして、ステップS56に進む。
一方、第2出力信号S2が0以下である場合には(ステップS53:NO)、第1の回転角演算部77Aは、入力軸8の回転角が180°であると判別し、第1相対的極番号r1を2に設定する(ステップS55)。そして、ステップS56に進む。
ステップS56では、第1の回転角演算部77Aは、「S1≧0かつS2>0」または「S1≦0かつS2<0」の条件を満たしているか否かを判別する。この条件を満たしている場合には(ステップS56:YES)、第1の回転角演算部77Aは、第2磁気センサ72が検出している磁極の極番号は、第1磁気センサ71が検出している磁極の極番号と同じであると判別し、第2相対的極番号r2に第1相対的極番号r1と同じ番号(r2=r1)を設定する(ステップS57)。そして、ステップS59に進む。
ステップS56では、第1の回転角演算部77Aは、「S1≧0かつS2>0」または「S1≦0かつS2<0」の条件を満たしているか否かを判別する。この条件を満たしている場合には(ステップS56:YES)、第1の回転角演算部77Aは、第2磁気センサ72が検出している磁極の極番号は、第1磁気センサ71が検出している磁極の極番号と同じであると判別し、第2相対的極番号r2に第1相対的極番号r1と同じ番号(r2=r1)を設定する(ステップS57)。そして、ステップS59に進む。
一方、前記ステップS56の条件を満たしていない場合には(ステップS56:NO)、第1の回転角演算部77Aは、第2磁気センサ72が検出している磁極の極番号は、第1磁気センサ71が検出している磁極の極番号より1だけ大きい番号であると判別し、第2相対的極番号r2に、第1相対的極番号r1より1だけ大きい番号(r2=r1+1)を設定する(ステップS58)。そして、ステップS59に進む。
ステップS59では、第1の回転角演算部77Aは、「S1≧0かつS3<0」または「S1≦0かつS3>0」の条件を満たしているか否かを判別する。この条件を満たしている場合には(ステップS59:YES)、第1の回転角演算部77Aは、第3磁気センサ73が検出している磁極の極番号は、第1磁気センサ71が検出している磁極の極番号より1だけ大きい番号であると判別し、第3相対的極番号r3に、第1相対的極番号r1より1だけ大きい番号(r3=r1+1)を設定する(ステップS60)。そして、図9AのステップS28に移行する。
一方、前記ステップS59の条件を満たしていない場合には(ステップS59:NO)、第1の回転角演算部77Aは、第3磁気センサ73が検出している磁極の極番号は、第1磁気センサ71が検出している磁極の極番号より2だけ大きい番号であると判別し、第3相対的極番号r3に、第1相対的極番号r1より2だけ大きい番号(r3=r1+2)を設定する(ステップS61)。そして、図9AのステップS28に移行する。
前記ステップS56の条件に基づいて第2相対的極番号r2を決定している理由および前記ステップS59の条件に基づいて第3相対的極番号r3を決定している理由について説明する。たとえば、磁石61における磁極M1と磁極M2とからなる磁極対が第1磁気センサ71を通過する際の、第1、第2および第3出力信号S1,S2,S3の信号波形を模式的に表すと、図12の(a),(b),(c)のようになる。
図12において、Q1およびQ4で示す領域においては、第2磁気センサ72が検出している磁極の極番号は、第1磁気センサ71が検出している磁極の極番号と同じである。一方、Q2,Q3,Q5およびQ6で示す領域においては、第2磁気センサ72が検出している磁極の極番号は、第1磁気センサ71が検出している磁極の極番号より1だけ大きい。
領域Q1においては、両センサ値S1,S2は、S1≧0かつS2>0の第1条件を満たす。領域Q2およびQ3においては、両センサ値S1,S2は、S1>0かつS2≦0の第2条件を満たす。領域Q4においては、両センサ値S1,S2は、S1≦0かつS2<0の第3条件を満たす。領域Q5およびQ6においては、両センサ値S1,S2は、S1<0かつS2≧0の第4条件を満たす。そこで、第1の回転角演算部77Aは、第1条件および第3条件の一方を満たしているときには、第2磁気センサ72が検出している磁極の極番号が、第1磁気センサ71が検出している磁極の極番号と同じであると判別している。一方、第1条件および第3条件のいずれの条件をも満たしていないときには、第1の回転角演算部77Aは、第2磁気センサ72が検出している磁極の極番号が、第1磁気センサ71が検出している磁極の極番号より1だけ大きいと判別している。
図12において、Q1およびQ2で示す領域ならびにQ4およびQ5で示す領域においては、第3磁気センサ73が検出している磁極の極番号は、第1磁気センサ71が検出している磁極の極番号より1だけ大きい。一方、Q3およびQ6で示す領域においては、第3磁気センサ72が検出している磁極の極番号は、第1磁気センサ71が検出している磁極の極番号より2だけ大きい。
領域Q1およびQ2においては、両センサ値S1,S3は、S1≧0かつS3<0の第5条件を満たす。領域Q3においては、両センサ値S1,S3は、S1>0かつS3≧0の第6条件を満たす。領域Q4およびQ5においては、両センサ値S1,S3は、S1≦0かつS3>0の第7条件を満たす。領域Q6においては、両センサ値S1,S2は、S1<0かつS3≦0の第8条件を満たす。そこで、第1の回転角演算部77Aは、第5条件および第7条件のいずれか一方を満たしているときには、第3磁気センサ73が検出している磁極の極番号が、第1磁気センサ71が検出している磁極の極番号より1だけ大きいと判別している。一方、第5条件および第7条件のいずれをも満たしていないときには、第1の回転角演算部77Aは、第3磁気センサ73が検出している磁極の極番号が、第1磁気センサ71が検出している磁極の極番号より2だけ大きいと判別している。
図9Aに戻り、前記ステップS24において、今回の処理が強制回転に基づく回転角演算処理開始後の初回の処理ではないと判別された場合には(ステップS24:NO)、ステップS26に移行する。
ステップS26では、第1の回転角演算部77Aは、メモリに記憶されているセンサ値S1,S2,S3に基づいて、センサ値S1,S2,S3毎に、センサ値の符号が反転するゼロクロスを検出したか否かを判別する。ゼロクロスが検出されなかったときには(ステップS26:NO)、第1の回転角演算部77Aは、ステップS28に移行する。
ステップS26では、第1の回転角演算部77Aは、メモリに記憶されているセンサ値S1,S2,S3に基づいて、センサ値S1,S2,S3毎に、センサ値の符号が反転するゼロクロスを検出したか否かを判別する。ゼロクロスが検出されなかったときには(ステップS26:NO)、第1の回転角演算部77Aは、ステップS28に移行する。
前記ステップS26において、いずれかのセンサ値S1,S2,S3に対してゼロクロスが検出された場合には(ステップS26:YES)、第1の回転角演算部77Aは、相対的極番号の更新処理を行なう(ステップS27)。具体的には、第1の回転角演算部77Aは、前記ステップS26でゼロクロスが検出された磁気センサに対して現在設定されている相対的極番号r1,r2またはr3を、入力軸8(磁石61)の回転方向に応じて、1だけ大きい番号または1だけ小さい番号に変更する。
入力軸8の回転方向が正方向(図3に矢印で示す方向)である場合には、第1の回転角演算部77Aは、前記ステップS26でゼロクロスが検出された磁気センサに対して現在設定されている相対的極番号r1,r2またはr3を、1だけ大きい番号に更新する。一方、入力軸8の回転方向が逆方向である場合には、第1の回転角演算部77Aは、ゼロクロスが検出された磁気センサに対して現在設定されている相対的極番号r1,r2またはr3を、1だけ小さい番号に更新する。ただし、前述したように、”1”の相対的極番号に対して、1だけ小さい相対的極番号は、”8”となる。また、”8”の相対的極番号に対して、1だけ大きい相対的極番号は、”1”となる。
なお、入力軸8の回転方向は、例えば、ゼロクロスが検出された出力信号の前回値および今回値と、他方の出力信号の今回値とに基づいて判定することができる。具体的には、ゼロクロスが検出された出力信号が第1出力信号S1である場合には、「第1出力信号S1の前回値が0より大きくかつその今回値が0以下であり、第2出力信号S2が0より小さい」という条件、または「第1出力信号S1の前回値が0未満でかつその今回値が0以上であり、第2出力信号S2が0より大きい」という条件を満たしている場合には、回転方向は正方向(図3に矢印で示す方向)であると判定される。
一方、「第1出力信号S1の前回値が0以上でかつその今回値が0未満であり、第2出力信号S2が0より大きい」という条件、または「第1出力信号S1の前回値が0以下でかつその今回値が0より大きく、第2出力信号S2が0より小さい」という条件を満たしている場合には、回転方向は逆方向であると判定される。
ゼロクロスが検出された出力信号が第2出力信号S2である場合には、「第2出力信号S2の前回値が0より大きくかつその今回値が0以下であり、第1出力信号S1が0より大きい」という条件、または「第2出力信号S2の前回値が0未満でかつその今回値が0以上であり、第1出力信号S1が0より小さい」という条件を満たしている場合には、回転方向は正方向(図3に矢印で示す方向)であると判定される。一方、「第2出力信号S2の前回値が0以上でかつその今回値が0未満であり、第1出力信号S1が0より小さい」という条件、または「第2出力信号S2の前回値が0以下でかつその今回値が0より大きく、第1出力信号S1が0より大きい」という条件を満たしている場合には、回転方向は逆方向であると判定される。
ゼロクロスが検出された出力信号が第2出力信号S2である場合には、「第2出力信号S2の前回値が0より大きくかつその今回値が0以下であり、第1出力信号S1が0より大きい」という条件、または「第2出力信号S2の前回値が0未満でかつその今回値が0以上であり、第1出力信号S1が0より小さい」という条件を満たしている場合には、回転方向は正方向(図3に矢印で示す方向)であると判定される。一方、「第2出力信号S2の前回値が0以上でかつその今回値が0未満であり、第1出力信号S1が0より小さい」という条件、または「第2出力信号S2の前回値が0以下でかつその今回値が0より大きく、第1出力信号S1が0より大きい」という条件を満たしている場合には、回転方向は逆方向であると判定される。
ゼロクロスが検出された出力信号が第3出力信号S3である場合には、「第3出力信号S3の前回値が0より大きくかつその今回値が0以下であり、第2出力信号S2が0より大きい」という条件、または「第3出力信号S3の前回値が0未満でかつその今回値が0以上であり、第2出力信号S2が0より小さい」という条件を満たしている場合には、回転方向は正方向(図3に矢印で示す方向)であると判定される。
一方、「第3出力信号S3の前回値が0以上でかつその今回値が0未満であり、第2出力信号S2が0より小さい」という条件、または「第3出力信号S3の前回値が0以下でかつその今回値が0より大きく、第2出力信号S2が0より大きい」という条件を満たしている場合には、回転方向は逆方向であると判定される。
相対的極番号の更新処理が終了すると、第1の回転角演算部77Aは、ステップS28に移行する。ステップS28では、第1の回転角演算部77Aは、第2センサ故障フラグFA2の値が0であるか否かを判別する。第2センサ故障フラグFA2の値が0である場合には(ステップS28:YES)、つまり、第2磁気センサ72が故障していない場合には、第1の回転角演算部77Aは、図9BのステップS30に移行する。
相対的極番号の更新処理が終了すると、第1の回転角演算部77Aは、ステップS28に移行する。ステップS28では、第1の回転角演算部77Aは、第2センサ故障フラグFA2の値が0であるか否かを判別する。第2センサ故障フラグFA2の値が0である場合には(ステップS28:YES)、つまり、第2磁気センサ72が故障していない場合には、第1の回転角演算部77Aは、図9BのステップS30に移行する。
ステップS30では、第1の回転角演算部77Aは、第1および第2磁気センサ71,72が正常でありかつそれらが共に同じ1つの磁極を3演算周期連続して検出しているという条件を満たしている否かを判別する。ステップS30の条件を満たしていない場合には(ステップS30:NO)、第1の回転角演算部77Aは、第2および第3磁気センサ72,73が正常でありかつそれらが共に同じ1つの磁極を3演算周期連続して検出しているという条件を満たしている否かを判別する(ステップS32)。ステップS32の条件を満たしていない場合には(ステップS32:NO)、第1の回転角演算部77Aは、図9AのステップS23に戻る。
前記ステップS30において、ステップS30の条件を満たしていると判別された場合には(ステップS30:YES)、第1の回転角演算部77Aは、EθおよびEを演算するための演算式に含まれている分数のいずれの分母も零でないという条件を満たしているか否かを判別する(ステップS31)。ステップS31の条件を満たしていない場合には(ステップS31:NO)、第1の回転角演算部77Aは、図9AのステップS23に戻る。一方、ステップS31の条件を満たしている場合には(ステップS31:YES)、第1の回転角演算部77Aは、ステップS34に移行する。
前記ステップS32において、ステップS32の条件を満たしていると判別された場合には(ステップS32:YES)、第1の回転角演算部77Aは、EΘおよびEを演算するための演算式に含まれている分数のいずれの分母も零でないという条件を満たしているか否かを判別する(ステップS33)。ステップS33の条件を満たしていない場合には(ステップS33:NO)、第1の回転角演算部77Aは、図9AのステップS23に戻る。一方、ステップS33の条件を満たしている場合には(ステップS33:YES)、第1の回転角演算部77Aは、ステップS34に移行する。
ステップS34では、第1の回転角演算部77Aは、第1方向とは反対方向である第2方向に電動モータ18を回転駆動させる。具体的には、第1の回転角演算部77Aは、第2方向に電動モータ18を回転駆動させるための第2強制回転指令をモータ制御用ECU12に送信する。モータ制御用ECU12は、この第2強制回転指令を受信すると、第2方向に電動モータ18を回転駆動させる。
この後、第1の回転角演算部77Aは、各磁気センサ71,72,73のセンサ値S1[n], S2[n] ,S3[n]を取得する(ステップS35)。ステップS35の処理は、後述するステップS39、S43またはステップS47でYESと判定されるまで、所定の演算周期毎に繰り返し実行される。そして、第1の回転角演算部77Aは、メモリに記憶されているセンサ値S1,S2,S3に基づいて、センサ値S1,S2,S3毎に、センサ値の符号が反転するゼロクロスを検出したか否かを判別する(ステップS36)。ゼロクロスが検出されなかったときには(ステップS36:NO)、第1の回転角演算部77Aは、ステップS38に移行する。
前記ステップS36において、いずれかのセンサ値S1,S2,S3に対してゼロクロスが検出された場合には(ステップS36:YES)、第1の回転角演算部77Aは、相対的極番号の更新処理を行なう(ステップS37)。この相対的極番号の更新処理は、前述したステップS27における相対的極番号の更新処理と同じである。ステップS37の相対的極番号の更新処理が終了すると、第1の回転角演算部77Aは、ステップS38に移行する。
ステップS38では、第1の回転角演算部77Aは、第2センサ故障フラグFA2の値が0であるか否かを判別する。第2センサ故障フラグFA2の値が0である場合には(ステップS38:YES)、つまり、第2磁気センサ72が故障していない場合には、第1の回転角演算部77Aは、図9CのステップS42に移行する。
ステップS42では、第1の回転角演算部77Aは、第1および第2磁気センサ71,72が正常でありかつそれらが共に同じ1つの磁極を3演算周期連続して検出しているという条件を満たしている否かを判別する。ステップS42の条件を満たしていない場合には(ステップS42:NO)、第1の回転角演算部77Aは、第2および第3磁気センサ72,73が正常でありかつそれらが共に同じ1つの磁極を3演算周期連続して検出しているという条件を満たしている否かを判別する(ステップS46)。ステップS46の条件を満たしていない場合には(ステップS46:NO)、第1の回転角演算部77Aは、図9BのステップS35に戻る。
ステップS42では、第1の回転角演算部77Aは、第1および第2磁気センサ71,72が正常でありかつそれらが共に同じ1つの磁極を3演算周期連続して検出しているという条件を満たしている否かを判別する。ステップS42の条件を満たしていない場合には(ステップS42:NO)、第1の回転角演算部77Aは、第2および第3磁気センサ72,73が正常でありかつそれらが共に同じ1つの磁極を3演算周期連続して検出しているという条件を満たしている否かを判別する(ステップS46)。ステップS46の条件を満たしていない場合には(ステップS46:NO)、第1の回転角演算部77Aは、図9BのステップS35に戻る。
前記ステップS42において、ステップS42の条件を満たしていると判別された場合には(ステップS42:YES)、第1の回転角演算部77Aは、第1演算モードのためのEθ基本演算式およびE演算式に含まれている分数のいずれの分母も零でないという条件を満たしているか否かを判別する(ステップS43)。ステップS43の条件を満たしていない場合には(ステップS43:NO)、第1の回転角演算部77Aは、図9BのステップS35に戻る。
ステップS43の条件を満たしていると判別された場合には(ステップS43:YES)、第1の回転角演算部77Aは、第1演算モードによってθ[n],E,A1,A2を演算する(ステップS44)。そして、第1の回転角演算部77Aは、演算されたE、A1およびA2を、第1および第2磁気センサ71,72が検出している磁極の相対的極番号に関連付けてメモリに記憶する(ステップS45)。第1および第2磁気センサ71,72が検出している磁極の相対的極番号は、現在設定されている第1相対的極番号r1または第2相対的極番号r2と同じ値となる。具体的には、第1の回転角演算部77Aは、メモリのエリアe1,e2,e3内の現在設定されている第1相対的極番号r1に対応する記憶場所に、演算されたE、A1およびA2をそれぞれ記憶する。この後、第1の回転角演算部77Aは、ステップS50に進む。
前記ステップS46において、ステップS46の条件を満たしていると判別された場合には(ステップS46:YES)、第1の回転角演算部77Aは、第2演算モードのためのEΘ基本演算式およびE演算式に含まれている分数のいずれの分母も零でないという条件を満たしているか否かを判別する(ステップS47)。ステップS47の条件を満たしていない場合には(ステップS47:NO)、第1の回転角演算部77Aは、図9BのステップS35に戻る。
ステップS47の条件を満たしている場合には(ステップS47:YES)、第1の回転角演算部77Aは、第2演算モードによってθ[n],E,A2,A3を演算する(ステップS48)。そして、第1の回転角演算部77Aは、演算されたE、A2およびA3を、第2および第3磁気センサ72,73が検出している磁極の相対的極番号に関連付けてメモリに記憶する(ステップS49)。第2および第3磁気センサ72,73が検出している磁極の相対的極番号は、現在設定されている第2相対的極番号r2または第3相対的極番号r3と同じ値となる。具体的には、第1の回転角演算部77Aは、メモリのエリアe1,e3,e4内の現在設定されている第3相対的極番号r3に対応する記憶場所に、演算されたE、A2およびA3をそれぞれ記憶する。この後、第1の回転角演算部77Aは、ステップS50に進む。
図9Aに戻り、前記ステップS28において、第2センサ故障フラグFA2の値が0ではないと判別された場合には(ステップS28:NO)、つまり、電源オンの直後から第2磁気センサ72が故障していると判定されている場合には、第1の回転角演算部77Aは、ステップS29に移行する。ステップS29では、第1の回転角演算部77Aは、第1方向に電動モータ18が回転駆動された後において、2回分のセンサ値S1,S3を取得したか否かを判別する。
2回分のセンサ値S1,S3を取得していない場合には(ステップS29:NO)、第1の回転角演算部77Aは、ステップS23に戻り、センサ値S1,S2,S3を取得する。前記ステップS29において、2回分のセンサ値S1,S3を取得していると判別された場合には(ステップS29:YES)、第1の回転角演算部77Aは、図9BのステップS34に移行し、第2方向に電動モータ18を駆動する。
図9Bの前記ステップS38において、第2センサ故障フラグFA2の値が0ではないと判別された場合には(ステップS38:NO)、つまり、電源オンの直後から第2磁気センサ72が故障していると判定されている場合には、第1の回転角演算部77Aは、ステップS39に移行する。ステップS39では、第1の回転角演算部77Aは、第2方向に電動モータ18が回転駆動された後において、2回分のセンサ値S1,S3を取得したか否かを判別する。
2回分のセンサ値S1,S3を取得していない場合には(ステップS39:NO)、第1の回転角演算部77Aは、ステップS35に戻り、センサ値S1,S2,S3を取得する。前記ステップS39において、2回分のセンサ値S1,S3を取得していると判別された場合には(ステップS39:YES)、第1の回転角演算部77Aは、第2センサ故障フラグFA2の値を2に設定する(ステップS40)。そして、第1の回転角演算部77Aは、第6演算モードによって入力軸8の回転角θを演算する(ステップS41)。
この時点では、第1磁気センサ71が検出している磁極に対応する角度幅誤差補正値Eおよび第3磁気センサ73が検出している磁極に対応する角度幅誤差補正値Eのいずれもがメモリに記憶されていない。このため、第1の回転角演算部77Aは、第3演算モードまたは第5演算モードによって回転角θを演算することができない。そこで、第1の回転角演算部77Aは、第6演算モードによって入力軸8の回転角θを演算している。第1の回転角演算部77Aは、第6演算モードによって回転角θを演算した後、図9CのステップS50に移行する。
ステップS50では、第1の回転角演算部77Aは、電動モータ18の駆動を停止させるとともに運転者への警告を停止させる。具体的には、第1の回転角演算部77Aは、電動モータ18の駆動停止指令をモータ制御用ECU12に送信するとともに、映像音声制御装置に警告停止指令を送信する。モータ制御用ECU12は、電動モータ18の駆動停止指令を受信すると電動モータ18の駆動を停止させる。映像音声制御装置は、警告停止指令を受信すると、警告表示、警告音声出力等を停止させる。これにより、強制回転に基づく回転角演算処理が終了する。
図13A、図13Bおよび図13Cは、図7のステップS5の通常時の回転角演算処理の手順を示すフローチャートである。
通常時の回転角演算処理においては、第1の回転角演算部77Aは、図7のステップS1の故障判定処理(より詳しくは図8のステップS11)において取得されたセンサ値S1[n], S2[n] ,S3[n]に基づいて、入力軸18の回転角θを演算する。
通常時の回転角演算処理においては、第1の回転角演算部77Aは、図7のステップS1の故障判定処理(より詳しくは図8のステップS11)において取得されたセンサ値S1[n], S2[n] ,S3[n]に基づいて、入力軸18の回転角θを演算する。
第1の回転角演算部77Aは、メモリに記憶されているセンサ値S1,S2,S3に基づいて、センサ値S1,S2,S3毎に、センサ値の符号が反転するゼロクロスを検出したか否かを判別する(ステップS81)。ゼロクロスが検出されなかったときには(ステップS81:NO)、第1の回転角演算部77Aは、ステップS83に移行する。
前記ステップS81において、いずれかのセンサ値S1,S2,S3に対してゼロクロスが検出された場合には(ステップS81:YES)、第1の回転角演算部77Aは、相対的極番号の更新処理を行なう(ステップS82)。この相対的極番号の更新処理は、前述した図9AのステップS27における相対的極番号の更新処理と同じである。ステップS82の相対的極番号の更新処理が終了すると、第1の回転角演算部77Aは、ステップS83に移行する。
前記ステップS81において、いずれかのセンサ値S1,S2,S3に対してゼロクロスが検出された場合には(ステップS81:YES)、第1の回転角演算部77Aは、相対的極番号の更新処理を行なう(ステップS82)。この相対的極番号の更新処理は、前述した図9AのステップS27における相対的極番号の更新処理と同じである。ステップS82の相対的極番号の更新処理が終了すると、第1の回転角演算部77Aは、ステップS83に移行する。
ステップS83では、第1の回転角演算部77Aは、第2センサ故障フラグFA2の値が0であるか否かを判別する。第2センサ故障フラグFA2の値が0である場合には(ステップS83:YES)、つまり、第2磁気センサ72が故障していない場合には、第1の回転角演算部77Aは、ステップS84に移行する。
ステップS84では、第1の回転角演算部77Aは、第1および第2磁気センサ71,72が正常でありかつそれらが共に同じ1つの磁極を3演算周期連続して検出しているという条件を満たしている否かを判別する。ステップS84の条件を満たしている場合には(ステップS84:YES)、第1の回転角演算部77Aは、第1演算モードによってθ[n],E,A1,A2を演算する(ステップS85)。第1演算モードによって回転角θ[n]を演算する際においては、第1の回転角演算部77Aは、Eθ基本演算式に含まれている分数の分母が零でないか否か、E演算式に含まれている分数の分母が零でないか否かを判定し、それらの判定結果に応じてθ[n],E,A1,A2を演算する。
ステップS84では、第1の回転角演算部77Aは、第1および第2磁気センサ71,72が正常でありかつそれらが共に同じ1つの磁極を3演算周期連続して検出しているという条件を満たしている否かを判別する。ステップS84の条件を満たしている場合には(ステップS84:YES)、第1の回転角演算部77Aは、第1演算モードによってθ[n],E,A1,A2を演算する(ステップS85)。第1演算モードによって回転角θ[n]を演算する際においては、第1の回転角演算部77Aは、Eθ基本演算式に含まれている分数の分母が零でないか否か、E演算式に含まれている分数の分母が零でないか否かを判定し、それらの判定結果に応じてθ[n],E,A1,A2を演算する。
第1の回転角演算部77Aは、θ[n],E,A1,A2を演算すると、Eθ基本演算式およびE演算式に含まれている分数のいずれの分母も零でないという条件を満たしていたか否かを判別する(ステップS86)。ステップS86の条件を満たしていた場合には(ステップS86:YES)、第1の回転角演算部77Aは、演算されたE、A1およびA2を、第1および第2磁気センサ71,72が検出している磁極の相対的極番号に関連付けてメモリに記憶する(ステップS87)。第1および第2磁気センサ71,72が検出している磁極の相対的極番号は、現在設定されている第1相対的極番号r1または第2相対的極番号r2と同じ値となる。具体的には、第1の回転角演算部77Aは、メモリのエリアe1,e2,e3内の現在設定されている第1相対的極番号r1に対応する記憶場所に、演算されたE、A1およびA2をそれぞれ記憶する。なお、メモリのエリアe1,e2,e3の前記記憶場所に既にE、A1およびA2が記憶されている場合には、今回演算されたE、A1およびA2が上書きされる。この後、第1の回転角演算部77Aは、今回の通常時の回転角演算処理を終了する。
前記ステップS86において、ステップS86の条件を満たしていなかったと判別された場合には(ステップS86:NO)、第1の回転角演算部77Aは、ステップS87の処理を行うことなく、今回の通常時の回転角演算処理を終了する。したがって、この場合には、ステップS85で演算されたE、A1およびA2は、メモリのエリアe1,e2,e3に記憶されない。
前記ステップS84において、ステップS84の条件を満たしていないと判別された場合には(ステップS84:NO)、第1の回転角演算部77Aは、第2および第3磁気センサ72,73が正常でありかつそれらが共に同じ1つの磁極を3演算周期連続して検出しているという条件を満たしている否かを判別する(ステップS88)。ステップS88の条件を満たしている場合には(ステップS88:YES)、第1の回転角演算部77Aは、第2演算モードによってθ[n],E,A2,A3を演算する(ステップS89)。第2演算モードによって回転角θ[n]を演算する際においては、第1の回転角演算部77Aは、EΘ基本演算式に含まれている分数の分母が零でないか否か、E演算式に含まれている分数の分母が零でないか否かを判定し、それらの判定結果に応じてθ[n],E,A2,A3を演算する。
第1の回転角演算部77Aは、θ[n],E,A2,A3を演算すると、EΘ基本演算式およびE演算式に含まれている分数のいずれの分母も零でないという条件を満たしていたか否かを判別する(ステップS90)。ステップS90の条件を満たしていた場合には(ステップS90:YES)、第1の回転角演算部77Aは、演算されたE、A2およびA3を、第2および第3磁気センサ72,73が検出している磁極の相対的極番号に関連付けてメモリに記憶する(ステップS91)。第2および第3磁気センサ72,73が検出している磁極の相対的極番号は、現在設定されている第2相対的極番号r2または第3相対的極番号r3と同じ値となる。具体的には、第1の回転角演算部77Aは、メモリのエリアe1,e3,e4内の現在設定されている第3相対的極番号r3に対応する記憶場所に、演算されたE、A2およびA3をそれぞれ記憶する。なお、メモリのエリアe1,e3,e4の前記記憶場所に既にE、A2およびA3が記憶されている場合には、今回演算されたE、A2およびA3が上書きされる。この後、第1の回転角演算部77Aは、今回の通常時の回転角演算処理を終了する。
前記ステップS90において、ステップS90の条件を満たしていなかったと判別された場合には(ステップS90:NO)、第1の回転角演算部77Aは、ステップS91の処理を行うことなく、今回の通常時の回転角演算処理を終了する。したがって、この場合には、ステップS89で演算されたE、A2およびA3は、メモリのエリアe1,e3,e4に記憶されない。
前記ステップS88において、ステップS88の条件を満たしていないと判別された場合には(ステップS88:NO)、第1の回転角演算部77Aは、図13BのステップS92に移行する。ステップS92では、第1の回転角演算部77Aは、第1磁気センサ71が正常でありかつ第1磁気センサ71が検出している磁極に対応する角度幅誤差補正値Eがメモリに記憶されているか否かを判別する。第1磁気センサ71が検出している磁極に対応する角度幅誤差補正値Eがメモリに記憶されているか否かの判別は、メモリのエリアe1内の現在設定されている第1相対的極番号r1に対応する記憶場所に、角度幅誤差補正値Eが記憶されているか否かに基づいて行われる。
第1磁気センサ71が正常でありかつ第1磁気センサ71が検出している磁極に対応する角度幅誤差補正値Eがメモリに記憶されている場合には(ステップS92:YES)、第1の回転角演算部77Aは、第3演算モードによって回転角θ[n]を演算する(ステップS93)。そして、第1の回転角演算部77Aは、今回の通常時の回転角演算処理を終了する。
前記ステップS92において、第1磁気センサ71が故障していると判定されている場合または第1磁気センサ71が検出している磁極に対応する角度幅誤差補正値Eがメモリに記憶されていないと判別された場合には(ステップS92:NO)、第1の回転角演算部77Aは、ステップS94に進む。ステップS94では、第1の回転角演算部77Aは、第2磁気センサ72が検出している磁極に対応する角度幅誤差補正値Eがメモリに記憶されているか否かを判別する。この判別は、メモリのエリアe1内の現在設定されている第2相対的極番号r2に対応する記憶場所に、角度幅誤差補正値Eが記憶されているか否かに基づいて行われる。
第2磁気センサ72が検出している磁極に対応する角度幅誤差補正値Eがメモリに記憶されている場合には(ステップS94:YES)、第1の回転角演算部77Aは、第4演算モードによって回転角θ[n]を演算する(ステップS93)。そして、第1の回転角演算部77Aは、今回の通常時の回転角演算処理を終了する。
前記ステップS94において、第2磁気センサ721が検出している磁極に対応する角度幅誤差補正値Eがメモリに記憶されていないと判別された場合には(ステップS94:NO)、第1の回転角演算部77Aは、第5演算モードによって回転角θ[n]を演算する(ステップS96)。そして、第1の回転角演算部77Aは、今回の通常時の回転角演算処理を終了する。
前記ステップS94において、第2磁気センサ721が検出している磁極に対応する角度幅誤差補正値Eがメモリに記憶されていないと判別された場合には(ステップS94:NO)、第1の回転角演算部77Aは、第5演算モードによって回転角θ[n]を演算する(ステップS96)。そして、第1の回転角演算部77Aは、今回の通常時の回転角演算処理を終了する。
図13Aに戻り、前記ステップS83において、第2センサ故障フラグFA2の値が0でないと判別された場合には(ステップS83:NO)、つまり、第2磁気センサ72が故障している場合には、第1の回転角演算部77Aは、図13CのステップS97に移行する。ステップS97では、第1の回転角演算部77Aは、第2センサ故障フラグFA2の値が2であるか否かを判別する。第2センサ故障フラグFA2の値が2でない場合には(ステップS97:YES)、つまり、第2センサ故障フラグFA2の値が1である場合には、第1の回転角演算部77Aは、ステップS98に移行する。なお、第2センサ故障フラグFA2の値が2でない場合とは、故障判定処理(図7のステップS1参照)によって第2磁気センサ72が故障していると判定されてはいるが、入力軸8の回転角θが第6演算モードによって演算されていない場合である。
ステップS98では、第1の回転角演算部77Aは、第1磁気センサ71が検出している磁極に対応する角度幅誤差補正値Eがメモリに記憶されているか否かを判別する。この判別は、メモリのエリアe1内の現在設定されている第1相対的極番号r1に対応する記憶場所に、角度幅誤差補正値Eが記憶されているか否かに基づいて行われる。
第1磁気センサ71が検出している磁極に対応する角度幅誤差補正値Eがメモリに記憶されている場合には(ステップS98:YES)、第1の回転角演算部77Aは、第3演算モードによって回転角θ[n]を演算する(ステップS99)。そして、第1の回転角演算部77Aは、今回の通常時の回転角演算処理を終了する。
第1磁気センサ71が検出している磁極に対応する角度幅誤差補正値Eがメモリに記憶されている場合には(ステップS98:YES)、第1の回転角演算部77Aは、第3演算モードによって回転角θ[n]を演算する(ステップS99)。そして、第1の回転角演算部77Aは、今回の通常時の回転角演算処理を終了する。
前記ステップS98において、第1磁気センサ71が検出している磁極に対応する角度幅誤差補正値Eがメモリに記憶されていないと判別された場合には(ステップS98:NO)、第1の回転角演算部77Aは、ステップS100に進む。ステップS100では、第1の回転角演算部77Aは、第3磁気センサ73が検出している磁極に対応する角度幅誤差補正値Eがメモリに記憶されているか否かを判別する。この判別は、メモリのエリアe1内の現在設定されている第3相対的極番号r3に対応する記憶場所に、角度幅誤差補正値Eが記憶されているか否かに基づいて行われる。
第3磁気センサ73が検出している磁極に対応する角度幅誤差補正値Eがメモリに記憶されている場合には(ステップS100:YES)、第1の回転角演算部77Aは、第5演算モードによって回転角θ[n]を演算する(ステップS101)。そして、第1の回転角演算部77Aは、今回の通常時の回転角演算処理を終了する。
前記ステップS100において、第3磁気センサ73が検出している磁極に対応する角度幅誤差補正値Eがメモリに記憶されていないと判別された場合には(ステップS100:NO)、第1の回転角演算部77Aは、第2センサ故障フラグFA2の値を2に設定する(ステップS102)。この後、第1の回転角演算部77Aは、第6演算モードによって入力軸8の回転角θを演算する(ステップS103)。そして、今回の通常時の回転角演算処理を終了する。
前記ステップS100において、第3磁気センサ73が検出している磁極に対応する角度幅誤差補正値Eがメモリに記憶されていないと判別された場合には(ステップS100:NO)、第1の回転角演算部77Aは、第2センサ故障フラグFA2の値を2に設定する(ステップS102)。この後、第1の回転角演算部77Aは、第6演算モードによって入力軸8の回転角θを演算する(ステップS103)。そして、今回の通常時の回転角演算処理を終了する。
前記ステップS97において、第2センサ故障フラグFA2の値が2であると判別された場合には(ステップS97:NO)、第1の回転角演算部77Aは、第6演算モードによって入力軸8の回転角θを演算する(ステップS103)。そして、今回の通常時の回転角演算処理を終了する。
なお、図13AのステップS86を省略して、ステップS85の処理が終了したときには、ステップS87に進むようにしてもよい。同様に、図13AのステップS90を省略して、ステップS89の処理が終了したときには、ステップS91に進むようにしてもよい。
なお、図13AのステップS86を省略して、ステップS85の処理が終了したときには、ステップS87に進むようにしてもよい。同様に、図13AのステップS90を省略して、ステップS89の処理が終了したときには、ステップS91に進むようにしてもよい。
図2を参照して、第1の回転角演算部77Aは、前述したように、第1、第2および第3磁気センサ71,72,73の出力信号S1,S2,S3に基づいて入力軸8の回転角θ(θA)を演算する。そして、第1の回転角演算部77Aは、演算した回転角θAを第2センサ故障フラグFA2とともに、トルク演算部77Cに与える。
第2の回転角演算部77Bは、第1の回転角演算部77Aと同様な処理を行うことにより、出力軸9の回転角θBを演算する。第4、第5および第6磁気センサ74,75,76は、それぞれ第1、第2および第3磁気センサ71,72,73に対応しているものとする。第2の回転角演算部77Bは、第1の回転角演算部77Aで用いられたフラグFAK,FA1,FA2,FA3にそれぞれ対応するフラグFBK,FB4,FB5,FB6を用い、第4、第5および第6磁気センサ74,75,76の出力信号S4,S5,S6に基づいて出力軸9の回転角θBを演算する。そして、第2の回転角演算部77Bは、演算した回転角θBを第5センサ故障フラグFB5とともに、トルク演算部77Cに与える。
第2の回転角演算部77Bは、第1の回転角演算部77Aと同様な処理を行うことにより、出力軸9の回転角θBを演算する。第4、第5および第6磁気センサ74,75,76は、それぞれ第1、第2および第3磁気センサ71,72,73に対応しているものとする。第2の回転角演算部77Bは、第1の回転角演算部77Aで用いられたフラグFAK,FA1,FA2,FA3にそれぞれ対応するフラグFBK,FB4,FB5,FB6を用い、第4、第5および第6磁気センサ74,75,76の出力信号S4,S5,S6に基づいて出力軸9の回転角θBを演算する。そして、第2の回転角演算部77Bは、演算した回転角θBを第5センサ故障フラグFB5とともに、トルク演算部77Cに与える。
なお、第4、第5および第6磁気センサ74,75,76のうちの第5磁気センサ75が、それらの中央に配置された磁気センサである。第5磁気センサ75の故障が検出されたときに第5センサ故障フラグFB5の値が1に設定される。そして、第2の回転角演算部77Bが第6演算モードに対応する演算モードで回転角θBを演算するときには第5センサ故障フラグFB5の値が2に設定される。
トルク演算部77Cは、第1の回転角演算部77Aから与えられた入力軸8の回転角θAと、第2の回転角演算部77Bから与えられた出力軸9の回転角θBとに基づいて、操舵トルクThを演算する(前記式(1)参照)。そして、トルク演算部77Cは、演算された操舵トルクThを、第2センサ故障フラグFA2および第5センサ故障フラグFB5とともに、モータ制御用ECU12に与える。
また、トルク演算部77Cは、全ての磁極に対する、角度幅誤差補正値E、第1磁気センサ71の出力信号S1の振幅A1および第3磁気センサ73の出力信号S3の振幅A3がメモリに記憶されているか否かを監視しており、その監視結果を記憶するための第1補正値監視フラグFAEをモータ制御用ECU12に与える。第1補正値監視フラグFAEの初期値は0であり、全ての磁極対する、角度幅誤差補正値Eおよび前記2つの磁気センサ71,73の出力信号S1,S3の振幅A1, A3が記憶されている場合には、第1補正値監視フラグFAEの値は1に設定される。
同様に、トルク演算部77Cは、メモリ内に全ての磁極に対する、角度幅誤差補正値、第4磁気センサ74の出力信号の振幅および第6磁気センサ76の出力信号の振幅がメモリに記憶されているか否かを監視しており、その監視結果を記憶するための第2補正値監視フラグFBEをモータ制御用ECU12に与える。第2補正値監視フラグFBEの初期値は0であり、全ての磁極に対する、角度幅誤差補正値および前記2つの磁気センサ74,76の出力信号振幅が記憶されている場合には、第2補正値監視フラグFBEの値は1に設定される。
図14は、モータ制御用ECU12の電気的構成を示す概略図である。
モータ制御用ECU12は、トルクセンサ11によって検出される操舵トルクThに応じて電動モータ18を駆動することによって、操舵状況に応じた適切な操舵補助を実現する。なお、ここでは、具体的な説明を省略するが、モータ制御用ECU12は、回転角演算部77A,77B(図2参照)から指令(前記第1強制回転指令、前記第2強制回転指令および前記駆動停止指令)が与えられたときには、その指令に対応した処理を実行する機能をも備えている。
モータ制御用ECU12は、トルクセンサ11によって検出される操舵トルクThに応じて電動モータ18を駆動することによって、操舵状況に応じた適切な操舵補助を実現する。なお、ここでは、具体的な説明を省略するが、モータ制御用ECU12は、回転角演算部77A,77B(図2参照)から指令(前記第1強制回転指令、前記第2強制回転指令および前記駆動停止指令)が与えられたときには、その指令に対応した処理を実行する機能をも備えている。
モータ制御用ECU12は、マイクロコンピュータ40と、マイクロコンピュータ40によって制御され、電動モータ18に電力を供給する駆動回路(インバータ回路)31と、電動モータ18に流れるモータ電流を検出する電流検出部32とを備えている。
電動モータ18は、例えば三相ブラシレスモータであり、図15に図解的に示すように、界磁としてのロータ100と、U相、V相およびW相のステータ巻線101,102,103を含むステータ105とを備えている。電動モータ18は、ロータの外部にステータを対向配置したインナーロータ型のものであってもよいし、筒状のロータの内部にステータを対向配置したアウターロータ型のものであってもよい。
電動モータ18は、例えば三相ブラシレスモータであり、図15に図解的に示すように、界磁としてのロータ100と、U相、V相およびW相のステータ巻線101,102,103を含むステータ105とを備えている。電動モータ18は、ロータの外部にステータを対向配置したインナーロータ型のものであってもよいし、筒状のロータの内部にステータを対向配置したアウターロータ型のものであってもよい。
各相のステータ巻線101,102,103の方向にU軸、V軸およびW軸をとった三相固定座標(UVW座標系)が定義される。また、ロータ100の磁極方向にd軸(磁極軸)をとり、ロータ100の回転平面内においてd軸と直角な方向にq軸(トルク軸)をとった二相回転座標系(dq座標系。実回転座標系)が定義される。dq座標系は、ロータ100とともに回転する回転座標系である。dq座標系では、q軸電流のみがロータ100のトルク発生に寄与するので、d軸電流を零とし、q軸電流を所望のトルクに応じて制御すればよい。ロータ100の回転角(電気角)θ-Sは、U軸に対するd軸の回転角である。dq座標系は、ロータ角θ-Sに従う実回転座標系である。このロータ角θ-Sを用いることによって、UVW座標系とdq座標系との間での座標変換を行うことができる。
マイクロコンピュータ40は、CPUおよびメモリ(ROM、RAM、不揮発性メモリなど)を備えており、所定のプログラムを実行することによって、複数の機能処理部として機能するようになっている。この複数の機能処理部には、電流指令値設定部41と、電流偏差演算部42と、PI(比例積分)制御部43と、dq/UVW変換部44と、PWM(Pulse Width Modulation)制御部45と、UVW/dq変換部46と、回転角演算部47とを含む。
回転角演算部47は、回転角センサ25の出力信号に基づいて、電動モータ18のロータの回転角(電気角。以下、「ロータ角θS」という。)を演算する。
電流指令値設定部41は、dq座標系の座標軸に流すべき電流値を電流指令値として設定する。具体的には、電流指令値設定部41は、d軸電流指令値Id *およびq軸電流指令値Iq *(以下、これらを総称するときには「二相電流指令値Idq *」という。)を設定する。さらに具体的には、電流指令値設定部41は、q軸電流指令値Iq *を有意値とする一方で、d軸電流指令値Id *を零とする。より具体的には、電流指令値設定部41は、トルクセンサ11から与えられる操舵トルク(検出操舵トルク)Thならびに第2センサ故障フラグFA2および第5センサ故障フラグFB5に基づいて、q軸電流指令値Iq *を設定する。
電流指令値設定部41は、dq座標系の座標軸に流すべき電流値を電流指令値として設定する。具体的には、電流指令値設定部41は、d軸電流指令値Id *およびq軸電流指令値Iq *(以下、これらを総称するときには「二相電流指令値Idq *」という。)を設定する。さらに具体的には、電流指令値設定部41は、q軸電流指令値Iq *を有意値とする一方で、d軸電流指令値Id *を零とする。より具体的には、電流指令値設定部41は、トルクセンサ11から与えられる操舵トルク(検出操舵トルク)Thならびに第2センサ故障フラグFA2および第5センサ故障フラグFB5に基づいて、q軸電流指令値Iq *を設定する。
第2センサ故障フラグFA2および第5センサ故障フラグFB5の値が共に2以外の値(0または1)である場合には(FA2≠2でかつFB5≠2)である場合の、q軸電流指令値Iq *の設定方法について説明する。この場合には、入力軸8の回転角θAは第6演算モード以外の演算モードによって演算され、出力軸98の回転角θBは第6演算モードに対応する演算モード以外の演算モードによって演算されるので、検出操舵トルクThの検出精度は高いと考えられる。
この場合における、検出操舵トルクThに対するq軸電流指令値Iq *の設定例は、図16Aに示されている。検出操舵トルクThは、たとえば、右方向への操舵のためのトルクが正の値にとられ、左方向への操舵のためのトルクが負の値にとられている。また、q軸電流指令値Iq *は、電動モータ18から右方向操舵のための操作補助力を発生させるべきときには正の値とされ、電動モータ18から左方向操舵のための操作補助力を発生させるべきときには負の値とされる。q軸電流指令値Iq *は、検出操舵トルクThの正の値に対しては正をとり、検出操舵トルクThの負の値に対しては負をとる。検出操舵トルクThが零のときには、q軸電流指令値Iq *は零とされる。そして、検出操舵トルクThの絶対値が大きくなるほど、q軸電流指令値Iq *の絶対値が大きくなるように、q軸電流指令値Iq *が設定されている。
次に、第2センサ故障フラグFA2および第5センサ故障フラグFB5の値が共に2である場合の、q軸電流指令値Iq *の設定方法について説明する。この場合には、入力軸8の回転角θAは第6演算モード(以下、「誤差許容演算モード」という)によって演算され、出力軸9の回転角θBは前記第6演算モードに対応する演算モード(以下、「誤差許容演算モード」という)によって演算されている。
入力軸8の回転角θAが誤差許容演算モードによって演算された場合の、回転角θAの想定される最大誤差をεAとする。また、出力軸9の回転角θBが誤差許容演算モードによって演算された場合の、回転角θBの想定される最大誤差をεBとする。ここでは、εAとεBとは等しいと仮定し、これらをεで表すことにする(εA=εB=ε)とする。操舵トルクThの演算に用いられた入力軸8および出力軸9の回転角θA,θBのそれぞれに前記最大誤差εが発生していると仮定した場合に、これらの最大誤差εに起因して発生する検出操舵トルクの誤差の大きさ(想定最大トルク誤差)をTh1(>0)とする。この想定最大トルク誤差Th1の大きさは、予め演算によって求められているものとする。
第2センサ故障フラグFA2および第5センサ故障フラグFB5の値が共に2である場合における、検出操舵トルクThに対するq軸電流指令値Iq *の設定例は、図16Bに実線の曲線で示されている。図16Bの破線の曲線は、図16Aの設定例を示している。検出操舵トルクThの絶対値が前記想定最大トルク誤差Th1以下の領域には、q軸電流指令値Iq *が零となる不感帯が設定されている。検出操舵トルクThがTh1より大きい領域では、q軸電流指令値Iq *は正の値をとり、検出操舵トルクThが大きくなるほど大きくなるように設定されている。検出操舵トルクThが−Th1より小さい領域では、q軸電流指令値Iq *は負の値をとり、検出操舵トルクThが小さくなるほど小さくなるように設定されている。
これにより、入力軸8の回転角θAおよび出力軸9の回転角θBの両方が誤差許容演算モードによって演算されたことによって、操舵トルクThに誤差が発生したとしても、本来発生させるべき操舵補助トルクの方向と反対方向の操舵補助トルクが電動モータ18から発生されるのを防止することができる。
次に、第2センサ故障フラグFA2および第5センサ故障フラグFB5のうちのいずれか一方の値が2であり、他方の値が2以外の値(0または1)である場合の、q軸電流指令値Iq *の設定方法について説明する。この場合には、入力軸8の回転角θAおよび出力軸の回転角θBのうちの一方のみが誤差許容演算モードで演算されているので、想定される検出操舵トルクの最大誤差は、前記想定最大トルク誤差Th1の1/2となる。したがって、この場合の検出操舵トルクThに対するq軸電流指令値Iq *の設定例は、図16Cに実線の曲線で示すようになる。図16Bの破線の曲線は、図16Aの設定例を示している。検出操舵トルクThの絶対値が前記想定最大トルク誤差Th1の1/2以下の領域には、q軸電流指令値Iq *が零となる不感帯が設定されている。検出操舵トルクThがTh1の1/2より大きい領域では、q軸電流指令値Iq *は正の値をとり、検出操舵トルクThが大きくなるほど大きくなるように設定されている。検出操舵トルクThが−Th1の1/2より小さい領域では、q軸電流指令値Iq *は負の値をとり、検出操舵トルクThが小さくなるほど小さくなるように設定されている。
次に、第2センサ故障フラグFA2および第5センサ故障フラグFB5のうちのいずれか一方の値が2であり、他方の値が2以外の値(0または1)である場合の、q軸電流指令値Iq *の設定方法について説明する。この場合には、入力軸8の回転角θAおよび出力軸の回転角θBのうちの一方のみが誤差許容演算モードで演算されているので、想定される検出操舵トルクの最大誤差は、前記想定最大トルク誤差Th1の1/2となる。したがって、この場合の検出操舵トルクThに対するq軸電流指令値Iq *の設定例は、図16Cに実線の曲線で示すようになる。図16Bの破線の曲線は、図16Aの設定例を示している。検出操舵トルクThの絶対値が前記想定最大トルク誤差Th1の1/2以下の領域には、q軸電流指令値Iq *が零となる不感帯が設定されている。検出操舵トルクThがTh1の1/2より大きい領域では、q軸電流指令値Iq *は正の値をとり、検出操舵トルクThが大きくなるほど大きくなるように設定されている。検出操舵トルクThが−Th1の1/2より小さい領域では、q軸電流指令値Iq *は負の値をとり、検出操舵トルクThが小さくなるほど小さくなるように設定されている。
これにより、入力軸8の回転角θAおよび出力軸9の回転角θBのうちの一方が誤差許容演算モードによって演算されたことによって、操舵トルクThに誤差が発生したとしても、本来発生させるべき操舵補助トルクの方向と反対方向の操舵補助トルクが電動モータ18から発生されるのを防止することができる。
電流指令値設定部41によって設定された二相電流指令値Idq *は、電流偏差演算部42に与えられる。
電流指令値設定部41によって設定された二相電流指令値Idq *は、電流偏差演算部42に与えられる。
電流検出部32は、電動モータ18のU相電流IU、V相電流IVおよびW相電流IW(以下、これらを総称するときは、「三相検出電流IUVW」という。)を検出する。電流検出部32によって検出された三相検出電流IUVWは、UVW/dq変換部46に与えられる。
UVW/dq変換部46は、電流検出部32によって検出されるUVW座標系の三相検出電流IUVW(U相電流IU、V相電流IVおよびW相電流IW)を、dq座標系の二相検出電流IdおよびIq(以下総称するときには「二相検出電流Idq」という。)に座標変換する。この座標変換には、回転角演算部47によって演算されたロータ角θSが用いられる。
UVW/dq変換部46は、電流検出部32によって検出されるUVW座標系の三相検出電流IUVW(U相電流IU、V相電流IVおよびW相電流IW)を、dq座標系の二相検出電流IdおよびIq(以下総称するときには「二相検出電流Idq」という。)に座標変換する。この座標変換には、回転角演算部47によって演算されたロータ角θSが用いられる。
電流偏差演算部42は、電流指令値設定部41によって設定される二相電流指令値Idq *と、UVW/dq変換部46から与えられる二相検出電流Idqとの偏差を演算する。より具体的には、電流偏差演算部42は、d軸電流指令値Id *に対するd軸検出電流Idの偏差およびq軸電流指令値Iq *に対するq軸検出電流Iqの偏差を演算する。これらの偏差は、PI制御部43に与えられる。
PI制御部43は、電流偏差演算部42によって演算された電流偏差に対するPI演算を行なうことにより、電動モータ18に印加すべき二相電圧指令値Vdq *(d軸電圧指令値Vd *およびq軸電圧指令値Vq *)を生成する。この二相電圧指令値Vdq *は、dq/UVW変換部44に与えられる。
dq/UVW変換部44は、二相電圧指令値Vdq *を三相電圧指令値VUVW *に座標変換する。この座標変換には、回転角演算部47によって演算されたロータ角θSが用いられる。三相電圧指令値VUVW *は、U相電圧指令値VU *、V相電圧指令値VV *およびW相電圧指令値VW *からなる。この三相電圧指令値VUVW *は、PWM制御部45に与えられる。
dq/UVW変換部44は、二相電圧指令値Vdq *を三相電圧指令値VUVW *に座標変換する。この座標変換には、回転角演算部47によって演算されたロータ角θSが用いられる。三相電圧指令値VUVW *は、U相電圧指令値VU *、V相電圧指令値VV *およびW相電圧指令値VW *からなる。この三相電圧指令値VUVW *は、PWM制御部45に与えられる。
PWM制御部45は、U相電圧指令値VU *、V相電圧指令値VV *およびW相電圧指令値VW *にそれぞれ対応するデューティのU相PWM制御信号、V相PWM制御信号およびW相PWM制御信号を生成し、駆動回路31に供給する。
駆動回路31は、U相、V相およびW相に対応した三相インバータ回路からなる。このインバータ回路を構成するパワー素子がPWM制御部45から与えられるPWM制御信号によって制御されることにより、三相電圧指令値VUVW *に相当する電圧が電動モータ18の各相のステータ巻線101,102、103に印加されることになる。
駆動回路31は、U相、V相およびW相に対応した三相インバータ回路からなる。このインバータ回路を構成するパワー素子がPWM制御部45から与えられるPWM制御信号によって制御されることにより、三相電圧指令値VUVW *に相当する電圧が電動モータ18の各相のステータ巻線101,102、103に印加されることになる。
電流偏差演算部42およびPI制御部43は、電流フィードバック制御手段を構成している。この電流フィードバック制御手段の働きによって、電動モータ18に流れるモータ電流が、電流指令値設定部41によって設定された二相電流指令値Idq *に近づくように制される。
次に、図17を参照して、電流指令値設定部41の第1変形例について説明する。図17は、電流指令値設定部41の第1変形例の動作を示すフローチャートである。図17の処理は、所定の演算周期毎に繰り返し行われる。
次に、図17を参照して、電流指令値設定部41の第1変形例について説明する。図17は、電流指令値設定部41の第1変形例の動作を示すフローチャートである。図17の処理は、所定の演算周期毎に繰り返し行われる。
第1変形例では、電流指令値設定部41は、トルクセンサ11から与えられる操舵トルク(検出操舵トルク)Th、第2センサ故障フラグFA2、第5センサ故障フラグFB5、第1補正値監視フラグFAEおよび第2補正値監視フラグFBEに基づいて、q軸電流指令値Iq *を設定する。また、検出操舵トルクThとq軸電流指令値Iq *との関係を記憶したマップとして、図16Aに示す通常時用マップと、図16Bに示す故障時用マップとの2種類が予め設定されているものとする。
まず、電流指令値設定部41は、故障モードフラグFfの値が1であるか否かを判別する(ステップS121)。故障モードフラグFfの初期値は0であり、後述するように、図16Bに示す故障時用マップを用いてq軸電流指令値Iq *が設定された場合には、故障モードフラグFfの値は1に設定される(ステップS132参照)。
前記ステップS121において、故障モードフラグFfの値が0である場合には(ステップS121:NO)、つまり、現時点では通常時用マップを用いてq軸電流指令値Iq *が設定されている場合には、電流指令値設定部41は、第2センサ故障フラグFA2の値が0であるか否かを判別する(ステップS122)。第2センサ故障フラグFA2の値が0である場合には(ステップS122:YES)、電流指令値設定部41は、第2磁気センサ72が正常であると判断し、第5センサ故障フラグFB5の値が0であるか否かを判別する(ステップS123)。
前記ステップS121において、故障モードフラグFfの値が0である場合には(ステップS121:NO)、つまり、現時点では通常時用マップを用いてq軸電流指令値Iq *が設定されている場合には、電流指令値設定部41は、第2センサ故障フラグFA2の値が0であるか否かを判別する(ステップS122)。第2センサ故障フラグFA2の値が0である場合には(ステップS122:YES)、電流指令値設定部41は、第2磁気センサ72が正常であると判断し、第5センサ故障フラグFB5の値が0であるか否かを判別する(ステップS123)。
第5センサ故障フラグFB5の値が0である場合には(ステップS123:YES)、電流指令値設定部41は、第2磁気センサ72および第5磁気センサ75が共に正常であると判断し、通常時用マップ(図16A)を用いてq軸電流指令値Iq *を設定する(ステップS124)。そして、今演算周期の処理を終了する。
前記ステップS122において、第2センサ故障フラグFA2の値が0以外の値である場合には(ステップS122:NO)、つまり、第2磁気センサ72が故障している場合には、電流指令値設定部41は、第1補正値監視フラグFAEの値が1であるか否かを判別する(ステップS125)。第1補正値監視フラグFAEの値が1である場合には(ステップS125:YES)、入力軸8の回転角θAが誤差許容演算モード(第6演算モード)によって演算されることはないので、電流指令値設定部41は、ステップS123に移行する。
前記ステップS122において、第2センサ故障フラグFA2の値が0以外の値である場合には(ステップS122:NO)、つまり、第2磁気センサ72が故障している場合には、電流指令値設定部41は、第1補正値監視フラグFAEの値が1であるか否かを判別する(ステップS125)。第1補正値監視フラグFAEの値が1である場合には(ステップS125:YES)、入力軸8の回転角θAが誤差許容演算モード(第6演算モード)によって演算されることはないので、電流指令値設定部41は、ステップS123に移行する。
前記ステップS123において、第5センサ故障フラグFB5の値が0以外の値であると判別された場合には(ステップS123:NO)、つまり、第5磁気センサ75が故障している場合には、電流指令値設定部41は、第2補正値監視フラグFBEの値が1であるか否かを判別する(ステップS126)。第2補正値監視フラグFBEの値が1である場合には(ステップS126:YES)、出力軸9の回転角θBが誤差許容演算モードによって演算されることはないので、電流指令値設定部41は、ステップS124に移行する。
前記ステップS125において、第1補正値監視フラグFAEの値が0であると判別された場合には(ステップS125:NO)、電流指令値設定部41は、第2センサ故障フラグFA2の値が1であるか2であるかを判別する(ステップS127)。第2センサ故障フラグFA2の値が2である場合には(ステップS127:NO)、電流指令値設定部41は、入力軸8の回転角θAが誤差許容演算モードによって演算されていると判断し、故障時用マップ(図16B)を用いてq軸電流指令値Iq *を設定する(ステップS131)。そして、電流指令値設定部41は、故障モードフラグFfの値を1に設定した後(ステップS132)、今演算周期の処理を終了する。
前記ステップS127において、第2センサ故障フラグFA2の値が1であると判別された場合には(ステップS127:YES)、電流指令値設定部41は、検出操舵トルクThが0であるか否かを判別する(ステップS128)。検出操舵トルクThが0でないと判別された場合には(ステップS128:NO)、電流指令値設定部41は、ステップS124に進んで、通常時用マップ(図16A)を用いてq軸電流指令値Iq *を設定する。そして、今演算周期の処理を終了する。
前記ステップS128において、検出操舵トルクThが0であると判別された場合には(ステップS128:YES)、電流指令値設定部41は、ステップS131に進んで、故障時用マップ(図16B)を用いてq軸電流指令値Iq *を設定する。そして、電流指令値設定部41は、故障時用マップフラグFMBの値を1に設定した後(ステップS132)、今演算周期の処理を終了する。
第2センサ故障フラグFA2の値が1であり、検出操舵トルクThが0の場合に、通常時用マップを用いてq軸電流指令値Iq *を設定し、第2センサ故障フラグFA2の値が1であり、検出操舵トルクThが1である場合には、故障時用マップを用いてq軸電流指令値Iq *を設定している理由について説明する。第2センサ故障フラグFA2の値が1である場合には、入力軸8の回転角θAは誤差許容演算モードによって演算されていないので、故障時用マップを用いてq軸電流指令値Iq *を設定する必要はない。しかし、第1補正値監視フラグFAEの値が0であるため(ステップS125参照)、近いうちに入力軸8の回転角θAが誤差許容演算モードで演算されるようになる。つまり、第1補正値監視フラグFAEの値が0であり、第2センサ故障フラグFA2の値が1である場合には、入力軸8の回転角θAが誤差許容演算モードで演算される可能性が高い状態であると言える。
そこで、このような場合には、マップを切り替えることによって操舵補助トルクが変動しないような条件が満たされるときには、通常時用マップを故障時用マップに切り替え、そうでないときには通常時用マップを用いることにした。具体的には、検出操舵トルクThが0であるときには、通常時用マップを故障時用マップに切り替え、そうでないときには通常時用マップを用いることにした。
前記ステップS126において、第2補正値監視フラグFBEの値が0であると判別された場合には(ステップS126:NO)、電流指令値設定部41は、第5センサ故障フラグFB5の値が1であるか2であるかを判別する(ステップS129)。第2センサ故障フラグFA2の値が2である場合には(ステップS129:NO)、電流指令値設定部41は、出力軸9の回転角θBが誤差許容演算モードによって演算されていると判断し、故障時用マップ(図16B)を用いてq軸電流指令値Iq *を設定する(ステップS131)。そして、電流指令値設定部41は、故障時モードフラグFfの値を1に設定した後(ステップS131)、今演算周期の処理を終了する。
前記ステップS129において、第5センサ故障フラグFB5の値が1であると判別された場合には(ステップS129:YES)、電流指令値設定部41は、検出操舵トルクThが0であるか否かを判別する(ステップS130)。検出操舵トルクThが0でないと判別された場合には(ステップS130:NO)、前記ステツプS128でNOと判別された場合と同様に、電流指令値設定部41は、ステップS124に進んで、通常時用マップ(図16A)を用いてq軸電流指令値Iq *を設定する。そして、今演算周期の処理を終了する。
前記ステップS130において、検出操舵トルクThが0であると判別された場合には(ステップS130:YES)、前記ステツプS128でYESと判別された場合と同様に、電流指令値設定部41は、ステップS131に進んで、故障時用マップ(図16B)を用いてq軸電流指令値Iq *を設定する。そして、電流指令値設定部41は、故障モードフラグFfの値を1に設定した後(ステップS132)、今演算周期の処理を終了する。
前記ステップS121において、故障モードフラグFfの値が1であると判別された場合には(ステップS121:YES)、電流指令値設定部41は、ステップS131に移行する。
第1変形例によれば、入力軸8の回転角θAおよび出力軸9の回転角θBのうちの一方または両方が誤差許容演算モードによって演算されたことによって、操舵トルクThに誤差が発生したとしても、本来発生させるべき操舵補助トルクの方向と反対方向の操舵補助トルクが電動モータ18から発生されるのを防止することができる。また、通常時用マップから故障時用マップにマップが切り替えられたときに、操舵補助トルクが急変する確率を低下させることができる。
第1変形例によれば、入力軸8の回転角θAおよび出力軸9の回転角θBのうちの一方または両方が誤差許容演算モードによって演算されたことによって、操舵トルクThに誤差が発生したとしても、本来発生させるべき操舵補助トルクの方向と反対方向の操舵補助トルクが電動モータ18から発生されるのを防止することができる。また、通常時用マップから故障時用マップにマップが切り替えられたときに、操舵補助トルクが急変する確率を低下させることができる。
次に、図18A〜図18Dを参照して、電流指令値設定部41の第2変形例について説明する。図18A〜図18Dは、電流指令値設定部41の第2変形例を説明するためのグラフである。
第2変形例では、電流指令値設定部41は、トルクセンサ11から与えられる操舵トルク(検出操舵トルク)Thならびに第2センサ故障フラグFA2および第5センサ故障フラグFB5に基づいて、まず、制御用トルク値Tcを設定する。そして、電流指令値設定部41は、制御用トルク値Tcに基づいてq軸電流指令値Iq *を設定する。
第2変形例では、電流指令値設定部41は、トルクセンサ11から与えられる操舵トルク(検出操舵トルク)Thならびに第2センサ故障フラグFA2および第5センサ故障フラグFB5に基づいて、まず、制御用トルク値Tcを設定する。そして、電流指令値設定部41は、制御用トルク値Tcに基づいてq軸電流指令値Iq *を設定する。
制御用トルク値Tcに対するq軸電流指令値Iq *の設定例は、図18Dに示されている。図18Dの制御用トルク値Tcに対するq軸電流指令値Iq *の関係は、図16Aの検出操舵トルクThに対するq軸電流指令値Iq *との関係とほぼ同じである。つまり、q軸電流指令値Iq *は、制御用トルク値Tcの正の値に対しては正をとり、制御用トルク値Tcの負の値に対しては負をとる。制御用トルク値Tcが零のときには、q軸電流指令値Iq *は零とされる。そして、制御用トルク値Tcの絶対値が大きくなるほど、q軸電流指令値Iq *の絶対値が大きくなるように、q軸電流指令値Iq *が設定されている。
第2センサ故障フラグFA2および第5センサ故障フラグFB5の値が共に2以外の値(0または1)である場合(FA2≠2でかつFB5≠2)の、制御用トルク値Tcの設定方法について説明する。この場合には、検出操舵トルクThの検出精度は高いと考えられる。
この場合における、検出操舵トルクThに対する制御用トルク値Tcの設定例は、図18Aに示されている。この場合には、制御用トルク値Tcは、検出操舵トルクThと同じ値に設定される。
この場合における、検出操舵トルクThに対する制御用トルク値Tcの設定例は、図18Aに示されている。この場合には、制御用トルク値Tcは、検出操舵トルクThと同じ値に設定される。
次に、第2センサ故障フラグFA2および第5センサ故障フラグFB5の値が共に2である場合の、制御用トルク値Tcの設定方法について説明する。この場合には、入力軸8の回転角θAおよび出力軸9の回転角θBの両方が、誤差許容演算モードによって演算されている。
入力軸8の回転角θAが誤差許容演算モードによって演算された場合の、回転角θAの想定される最大誤差をεAとする。また、出力軸9の回転角θBが誤差許容演算モードによって演算された場合の、回転角θBの想定される最大誤差をεBとする。ここでは、εAとεBとは等しいと仮定し、これらをεで表すことにする(εA=εB=ε)とする。操舵トルクThの演算に用いられた入力軸8および出力軸9の回転角θA,θBのそれぞれに前記最大誤差εが発生していると仮定した場合に、これらの最大誤差εに起因して発生する検出操舵トルクの誤差の大きさ(想定最大トルク誤差)をTh1(>0)とする。この想定最大トルク誤差Th1の大きさは、予め演算によって求められているものとする。
入力軸8の回転角θAが誤差許容演算モードによって演算された場合の、回転角θAの想定される最大誤差をεAとする。また、出力軸9の回転角θBが誤差許容演算モードによって演算された場合の、回転角θBの想定される最大誤差をεBとする。ここでは、εAとεBとは等しいと仮定し、これらをεで表すことにする(εA=εB=ε)とする。操舵トルクThの演算に用いられた入力軸8および出力軸9の回転角θA,θBのそれぞれに前記最大誤差εが発生していると仮定した場合に、これらの最大誤差εに起因して発生する検出操舵トルクの誤差の大きさ(想定最大トルク誤差)をTh1(>0)とする。この想定最大トルク誤差Th1の大きさは、予め演算によって求められているものとする。
第2センサ故障フラグFA2および第5センサ故障フラグFB5の値が共に2である場合における、検出操舵トルクThに対する制御用トルク値Tcの設定例は、図18Bに示されている。検出操舵トルクThの絶対値が前記想定最大トルク誤差Th1以下の領域には、制御用トルク値Tcが零となる不感帯が設定されている。検出操舵トルクThがTh1より大きい領域および検出操舵トルクThが−Th1より小さい領域では、制御用トルク値Tcは検出操舵トルクThと同じ値となるように設定されている。
検出操舵トルクThの絶対値が前記想定最大トルク誤差Th1以下の領域では、制御用トルク値Tcが零となるため、q軸電流指令値Iq *も零となる。これにより、入力軸8の回転角θAおよび出力軸9の回転角θBの両方が誤差許容演算モードによって演算されたことによって、操舵トルクThに誤差が発生したとしても、本来発生させるべき操舵補助トルクの方向と反対方向の操舵補助トルクが電動モータ18から発生されるのを防止することができる。
次に、第2センサ故障フラグFA2および第5センサ故障フラグFB5のうちのいずれか一方の値が2であり、他方の値が2以外の値(0または1)である場合の、制御用トルク値Tcの設定方法について説明する。この場合には、入力軸8の回転角θAおよび出力軸の回転角θBのうちの一方のみが誤差許容演算モードで演算されているので、想定される検出操舵トルクの最大誤差は、前記想定最大トルク誤差Th1の1/2となる。したがって、この場合の検出操舵トルクThに対する制御用トルク値Tcの設定例は、図18Cに示すようになる。検出操舵トルクThの絶対値が前記想定最大トルク誤差Th1の1/2以下の領域には、制御用トルク値Tcが零となる不感帯が設定されている。検出操舵トルクThがTh1の1/2より大きい領域および検出操舵トルクThが−Th1の1/2より小さい領域では、制御用トルク値Tcは検出操舵トルクThと同じ値となるように設定されている。
検出操舵トルクThの絶対値が前記想定最大トルク誤差Th1の1/2以下の領域では、制御用トルク値Tcが零となるため、q軸電流指令値Iq *も零となる。これにより、入力軸8の回転角θAおよび出力軸9の回転角θBのうちの一方が誤差許容演算モードによって演算されたことによって、操舵トルクThに誤差が発生したとしても、本来発生させるべき操舵補助トルクの方向と反対方向の操舵補助トルクが電動モータ18から発生されるのを防止することができる。
次に、図19A、図19Bおよび図20を参照して、電流指令値設定部41の第3変形例について説明する。
第3変形例では、電流指令値設定部41は、トルクセンサ11から与えられる操舵トルク(検出操舵トルク)Th、第2センサ故障フラグFA2、第5センサ故障フラグFB5、第1補正値監視フラグFAEおよび第2補正値監視フラグFBEに基づいて、q軸電流指令値Iq *を設定する。また、電流指令値設定部41は、検出操舵トルクThと故障時用トルク値Tfとの関係を記憶した故障時用トルクマップと、制御用トルク値Tcとq軸電流指令値Iq *との関係を記憶した電流マップとを保持している。
第3変形例では、電流指令値設定部41は、トルクセンサ11から与えられる操舵トルク(検出操舵トルク)Th、第2センサ故障フラグFA2、第5センサ故障フラグFB5、第1補正値監視フラグFAEおよび第2補正値監視フラグFBEに基づいて、q軸電流指令値Iq *を設定する。また、電流指令値設定部41は、検出操舵トルクThと故障時用トルク値Tfとの関係を記憶した故障時用トルクマップと、制御用トルク値Tcとq軸電流指令値Iq *との関係を記憶した電流マップとを保持している。
故障時用トルク値Tfとは、入力軸8の回転角θAおよび出力軸9の回転角θBのうちの少なくとも一方が誤差許容演算モードによって演算されている場合に、制御用トルク値Tcとして使用されるトルク値である。
図19Aは、故障時用トルクマップの内容を示すグラフである。図19Aのグラフは、図18Bで示される検出操舵トルクThと制御用トルク値Tcとの関係を示すグラフと同じである。具体的には、検出操舵トルクThの絶対値が前記想定最大トルク誤差Th1以下の領域には、故障時用トルク値Tfは零となる。検出操舵トルクThがTh1より大きい領域および検出操舵トルクThが−Th1より小さい領域では、故障時用トルク値Tfは検出操舵トルクThと同じ値となる。
図19Aは、故障時用トルクマップの内容を示すグラフである。図19Aのグラフは、図18Bで示される検出操舵トルクThと制御用トルク値Tcとの関係を示すグラフと同じである。具体的には、検出操舵トルクThの絶対値が前記想定最大トルク誤差Th1以下の領域には、故障時用トルク値Tfは零となる。検出操舵トルクThがTh1より大きい領域および検出操舵トルクThが−Th1より小さい領域では、故障時用トルク値Tfは検出操舵トルクThと同じ値となる。
図19Bは、電流マップの内容を示すグラフである。図19Bのグラフは、図16Aまたは図18Dのグラフと同じであるので、その説明を省略する。
図20は、電流指令値設定部41の第3変形例の動作を示すフローチャートである。図20の処理は、所定の演算周期毎に繰り返し行われる。
まず、電流指令値設定部41は、故障モードフラグFfの値が1であるか否かを判別する(ステップS141)。故障モードフラグFfの初期値は0であり、後述するように、故障時用トルク値Tfが、制御用トルク値Tcとして用いられた場合には、故障モードフラグFfの値は1に設定される(ステップS150参照)。
図20は、電流指令値設定部41の第3変形例の動作を示すフローチャートである。図20の処理は、所定の演算周期毎に繰り返し行われる。
まず、電流指令値設定部41は、故障モードフラグFfの値が1であるか否かを判別する(ステップS141)。故障モードフラグFfの初期値は0であり、後述するように、故障時用トルク値Tfが、制御用トルク値Tcとして用いられた場合には、故障モードフラグFfの値は1に設定される(ステップS150参照)。
前記ステップS141において、故障モードフラグFfの値が0である場合には(ステップS141:NO)、電流指令値設定部41は、第2センサ故障フラグFA2の値が0であるか否かを判別する(ステップS142)。第2センサ故障フラグFA2の値が0である場合には(ステップS142:YES)、電流指令値設定部41は、第2磁気センサ72が正常であると判断し、第5センサ故障フラグFB5の値が0であるか否かを判別する(ステップS143)。
第5センサ故障フラグFB5の値が0である場合には(ステップS143:YES)、電流指令値設定部41は、第2磁気センサ72および第5磁気センサ75が共に正常であると判断し、トルクセンサ11から与えられた検出操舵トルクThを制御用トルク値Tcとして設定する(ステップS144)。この後、電流指令値設定部41は、当該制御用トルク値Tcと電流マップ(図19B参照)を用いてq軸電流指令値Iq *を設定する(ステップS157)。そして、今演算周期の処理を終了する。
前記ステップS142において、第2センサ故障フラグFA2の値が0以外の値である場合には(ステップS142:NO)、つまり、第2磁気センサ72が故障している場合には、電流指令値設定部41は、第1補正値監視フラグFAEの値が1であるか否かを判別する(ステップS145)。第1補正値監視フラグFAEの値が1である場合には(ステップS145:YES)、入力軸8の回転角θAが誤差許容演算モードによって演算されることはないので、電流指令値設定部41は、ステップS143に移行する。
前記ステップS143において、第5センサ故障フラグFB5の値が0以外の値であると判別された場合には(ステップS143:NO)、つまり、第5磁気センサ75が故障している場合には、電流指令値設定部41は、第2補正値監視フラグFBEの値が1であるか否かを判別する(ステップS146)。第2補正値監視フラグFBEの値が1である場合には(ステップS146:YES)、出力軸9の回転角θBが誤差許容演算モードによって演算されることはないので、電流指令値設定部41は、ステップS144に移行する。
前記ステップS145において、第1補正値監視フラグFAEの値が0であると判別された場合には(ステップS145:NO)、電流指令値設定部41は、検出操舵トルクThと故障時用トルクマップ(図19A参照)を用いて故障時用トルク値Tfを演算する(ステップS147)。
次に、電流指令値設定部41は、第2センサ故障フラグFA2の値が1であるか2であるかを判別する(ステップS148)。第2センサ故障フラグFA2の値が2である場合には(ステップS148:NO)、電流指令値設定部41は、入力軸8の回転角θAが誤差許容演算モードによって演算されていると判断し、前記ステップS147で演算された故障時用トルク値Tfを制御用トルク値Tcとして設定する(ステップS149)。また、電流指令値設定部41は、故障モードフラグFfの値を1に設定する(ステップS150)。この後、電流指令値設定部41は、当該制御用トルク値Tcと電流マップ(図19B参照)を用いてq軸電流指令値Iq *を設定する(ステップS157)。そして、今演算周期の処理を終了する。
次に、電流指令値設定部41は、第2センサ故障フラグFA2の値が1であるか2であるかを判別する(ステップS148)。第2センサ故障フラグFA2の値が2である場合には(ステップS148:NO)、電流指令値設定部41は、入力軸8の回転角θAが誤差許容演算モードによって演算されていると判断し、前記ステップS147で演算された故障時用トルク値Tfを制御用トルク値Tcとして設定する(ステップS149)。また、電流指令値設定部41は、故障モードフラグFfの値を1に設定する(ステップS150)。この後、電流指令値設定部41は、当該制御用トルク値Tcと電流マップ(図19B参照)を用いてq軸電流指令値Iq *を設定する(ステップS157)。そして、今演算周期の処理を終了する。
前記ステップS148において、第2センサ故障フラグFA2の値が1であると判別された場合には(ステップS148:YES)、入力軸8の回転角θAは誤差許容演算モードによって演算されてはいないが、近いうちに誤差許容演算モードによって演算されるようになる。つまり、第1補正値監視フラグFAEの値が0であり、第2センサ故障フラグFA2の値が1である場合には、入力軸8の回転角θAが誤差許容演算モードで演算される可能性が高い状態であると言える。
そこで、このような場合には、電流指令値設定部41は、制御用トルク値Tcを、検出操舵トルクThから故障時用トルク値Tfに徐々に近づけていくための処理を行う。具体的には、まず、電流指令値設定部41は、係数Kの前回値(n−1)に定数g(0<g<1)を乗算することにより、係数Kの今回値K(n)(0<K(n)<1)を演算する(ステップS153)。なお、係数Kの前回値K(n−1)の初期値は1である。定数gは、0より大きく1より小さい値であり、たとえば、0.8に設定される。係数Kの前回値K(n−1)は、ステップS153において係数Kの今回値K(n)が演算された場合にのみ、後述するステップS156において更新される。ステップS153が繰り返されると、係数Kの今回値K(n)は徐々に零に近づいていく。
前記ステツプS153によって、係数Kの今回値K(n)が演算されると、電流指令値設定部41は、係数Kの今回値K(n)が所定値α(>0)未満であるか否かを判別する(ステップS154)。所定値αは零に近い正の値に設定される。たとえば、所定値αは0.1に設定される。係数Kの今回値K(n)が所定値α以上である場合には(ステップS154:NO)、電流指令値設定部41は、次式(46)に基づいて、制御用トルク値Tcを演算する(ステップS155)。
Tc=Tf+K(n)×(Th−Tf) …(46)
Tc:制御用トルク値
Tf:故障時用トルク値
Th:検出操舵トルク
K(n):係数Kの今回値
前記式(46)において、K(n)=1とするとTc=Thとなり、K(n)=0とするとTc=Tfとなる。K(n)は、0<K(n)<1の範囲内において徐々に小さくされるから、制御用トルク値Tcは、検出操舵トルクThと故障時用トルク値Tfとの間の値をとり、検出操舵トルクThに近い値から故障時用トルク値Tfに徐々に近づいていくことがわかる。このため、制御用トルク値Tcが検出操舵トルクThから故障時用トルク値Tfに移行されるときに、q軸電流指令値Iq *が急変するのを抑制することが可能となる。
Tc:制御用トルク値
Tf:故障時用トルク値
Th:検出操舵トルク
K(n):係数Kの今回値
前記式(46)において、K(n)=1とするとTc=Thとなり、K(n)=0とするとTc=Tfとなる。K(n)は、0<K(n)<1の範囲内において徐々に小さくされるから、制御用トルク値Tcは、検出操舵トルクThと故障時用トルク値Tfとの間の値をとり、検出操舵トルクThに近い値から故障時用トルク値Tfに徐々に近づいていくことがわかる。このため、制御用トルク値Tcが検出操舵トルクThから故障時用トルク値Tfに移行されるときに、q軸電流指令値Iq *が急変するのを抑制することが可能となる。
ステップS155で制御用トルク値Tcが演算されると、電流指令値設定部41は、係数Kの今回値K(n)を前回値K(n−1)として設定する(ステップS156)。そして、電流指令値設定部41は、制御用トルク値Tcと電流マップ(図19B参照)を用いてq軸電流指令値Iq *を設定する(ステップS157)。そして、今演算周期の処理を終了する。
前記ステップS154において、係数Kの今回値K(n)が所定値α未満であると判別された場合には(ステップS154:YES)、電流指令値設定部41は、ステップS149に移行し、制御用トルク値Tcを故障時用トルク値Tfに設定する。
前記ステップS146において、第2補正値監視フラグFBEの値が0であると判別された場合には(ステップS146:NO)、電流指令値設定部41は、検出操舵トルクThと故障時用トルクマップ(図19A参照)を用いて故障時用トルク値Tfを演算する(ステップS151)。
前記ステップS146において、第2補正値監視フラグFBEの値が0であると判別された場合には(ステップS146:NO)、電流指令値設定部41は、検出操舵トルクThと故障時用トルクマップ(図19A参照)を用いて故障時用トルク値Tfを演算する(ステップS151)。
次に、電流指令値設定部41は、第5センサ故障フラグFB5の値が1であるか2であるかを判別する(ステップS152)。第5センサ故障フラグFB5の値が2である場合には(ステップS152:NO)、電流指令値設定部41は、出力軸9の回転角θBが誤差許容演算モードによって演算されていると判断し、ステップS149に移行し、前記ステップS151で演算された故障時用トルク値Tfを制御用トルク値Tcとして設定する。そして、電流指令値設定部41は、故障モードフラグFfの値を1に設定する(ステップS150)。この後、電流指令値設定部41は、当該制御用トルク値Tcと電流マップ(図19B参照)を用いてq軸電流指令値Iq *を設定する(ステップS157)。そして、今演算周期の処理を終了する。
前記ステップS152において、第5センサ故障フラグFB5の値が1であると判別された場合には(ステップS152:YES)、出力軸9の回転角θBは誤差許容演算モードによって演算されてはいないが、近いうちに誤差許容演算モードによって演算されるようになる。つまり、第2補正値監視フラグFBEの値が0であり、第5センサ故障フラグFB5の値が1である場合には、出力軸9の回転角θBが誤差許容演算モードで演算される可能性が高い状態であると言える。そこで、このような場合には、電流指令値設定部41は、ステップS153に移行して、制御用トルク値Tcを、検出操舵トルクThから故障時用トルク値Tfに徐々に近づけていくための処理を行う。
前記ステップS141において、故障モードフラグFfの値が1であると判別された場合には(ステップS141:YES)、電流指令値設定部41は、ステップS149に移行する。
第3変形例によれば、入力軸8の回転角θAおよび出力軸9の回転角θBのうちの一方または両方が誤差許容演算モードによって演算されたことによって、操舵トルクThに誤差が発生したとしても、本来発生させるべき操舵補助トルクの方向と反対方向の操舵補助トルクが電動モータ18から発生されるのを防止することができる。また、制御用トルク値Tcを検出操舵トルクThから故障時用トルク値Tfに移行するときに、操舵補助トルクが変動する確率を低減することができる。
第3変形例によれば、入力軸8の回転角θAおよび出力軸9の回転角θBのうちの一方または両方が誤差許容演算モードによって演算されたことによって、操舵トルクThに誤差が発生したとしても、本来発生させるべき操舵補助トルクの方向と反対方向の操舵補助トルクが電動モータ18から発生されるのを防止することができる。また、制御用トルク値Tcを検出操舵トルクThから故障時用トルク値Tfに移行するときに、操舵補助トルクが変動する確率を低減することができる。
なお、この発明は、特許請求の範囲に記載された事項の範囲で種々の設計変更を施すことが可能である。
1…電動パワーステアリング装置、6…ステアリングシャフト、8…入力軸、9…出力軸、12…モータ制御用ECU、18…電動モータ、41…電流指令値設定部、61,62…磁石、71〜76…磁気センサ、77…トルク演算用ECU、77A…第1の回転角演算部、77B…第2の回転角演算部、
Claims (5)
- 入力軸、出力軸およびこれらの2つの軸を連結するトーションバーを含むステアリングシャフトと、
操舵補助力を発生させるための電動モータと、
第1の複数のセンサの出力に基づいて前記入力軸の回転角を第1の回転角として検出するための第1の回転角演算装置と、
第2の複数のセンサの出力に基づいて前記出力軸の回転角を第2の回転角として検出するための第2の回転角演算装置と、
前記第1の回転角演算装置によって検出された第1の回転角と、前記第2の回転角演算装置によって検出された第2の回転角と基づいて、前記入力軸に与えられる操舵トルクを演算する操舵トルク演算手段と、
前記操舵トルク演算手段によって演算された操舵トルクを用いて、前記電動モータを駆動制御するモータ制御手段とを含み、
前記各回転角演算装置は、高い精度で対応する回転角を演算する高精度演算モードと、対応する複数のセンサのうちの所定のセンサが故障したことに起因して、低い精度で対応する回転角を演算する低精度演算モードとを有しており、
前記モータ制御手段は、前記操舵トルクの演算に用いられた前記第1の回転角および前記第2の回転角のうちの少なくとも一方が、前記低精度演算モードによって演算されたときまたは演算される可能性が高いときにおいて、前記操舵トルクの絶対値が、前記低精度演算モードによって回転角が演算される場合に想定される操舵トルク演算誤差以下のときには、前記電動モータに流すべき電流の目標値である電流指令値が零となるように制御形態を切替える制御形態切替手段を含む、電動パワーステアリング装置。 - 前記制御形態切替手段は、前記操舵トルクの演算に用いられた前記第1の回転角および前記第2の回転角のうちの少なくとも一方が、前記低精度演算モードによって演算される可能性が高いときにおいて、前記操舵トルク演算手段によって演算された操舵トルクが零のときに前記制御形態の切替えを行う手段を含む、請求項1に記載の電動パワーステアリング装置。
- 前記制御形態切替手段は、前記操舵トルクの演算に用いられた前記第1の回転角および前記第2の回転角のうちの少なくとも一方が、前記低精度演算モードによって演算される可能性が高いときにおいて、前記操舵トルク演算手段によって演算された操舵トルクに応じた電流指令値から、制御形態切替後に設定されるべき電流指令値まで、前記電流指令値を徐々に変化させることにより、前記制御形態の切替えを行う手段を含む、請求項1に記載の電動パワーステアリング装置。
- 前記各回転角演算装置は、
前記入力軸または前記出力軸のうち、回転角を演算すべき軸に応じて回転し、複数の磁極を有する多極磁石と、
前記多極磁石の回転に応じて、互いに所定の位相差を有する正弦波信号をそれぞれ出力し、前記多極磁石の周方向に並んで配置された3つの磁気センサと、
前記各磁気センサに故障が発生したか否かを判定する故障判定手段と、
前記3つの磁気センサのうちの中央の磁気センサを含む少なくとも2つの磁気センサが正常である場合において、中央の磁気センサを含む正常な2つの磁気センサが共に同じ1つの磁極を3サンプリング周期連続して検出しているという条件を満たしているときには、それらの2つの磁気センサの3サンプリング分の出力信号に基づいて、前記軸の回転角を演算するとともに、常にまたは前記3サンプリング分の出力信号が一定の要件を満たしているときには、それらの2つの磁気センサが検出している磁極の磁極幅に関する情報およびそれらの2つの磁気センサの出力信号の振幅に関する情報を演算して当該磁極に関連付けて記憶する第1演算手段と、
前記3つの磁気センサのうちの中央の磁気センサを含む少なくとも2つの磁気センサが正常である場合において、前記条件を満たしていないときには、正常な磁気センサのうち、磁極幅に関する情報が関連付けて記憶されている磁極を検出している1つの磁気センサを含む2つの磁気センサの1サンプリング分の出力信号と、前記第1演算手段によって記憶されている前記情報とを用いて、前記軸の回転角を演算する第2演算手段と、
前記3つの磁気センサのうちの前記中央の磁気センサのみが故障している場合において、他の2つの磁気センサが検出している磁極のうち、少なくとも一方の磁極の磁極幅に関する情報が記憶されている場合には、前記他の2つの磁気センサの1サンプリング分の出力信号と、前記第1演算手段によって記憶されている前記情報とを用いて、前記軸の回転角を演算する第3演算手段と、
前記3つの磁気センサのうちの前記中央の磁気センサのみが故障している場合において、他の2つの磁気センサが検出している2つの磁極の磁極幅に関する情報のいずれもが記憶されていない場合には、前記他の2つの磁気センサの2サンプリング分の出力信号に基づいて前記軸の回転角を演算する第4演算手段とを含み、
前記1演算手段、第2演算手段および第3演算手段による演算モードが前記高精度演算モードに相当し、前記第4演算手段による演算モードが前記低精度演算モードに相当する、請求項1〜3のいずれか一項に記載の電動パワーステアリング装置。 - 前記3つの磁気センサを第1磁気センサ、第2磁気センサおよび第3磁気センサとすると、前記第1磁気センサの出力信号と前記第2磁気センサの出力信号との位相差が120度であり、前記第1磁気センサの出力信号と前記第3磁気センサの出力信号との位相差が240度である、請求項4に記載の電動パワーステアリング装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013008591A JP2014139054A (ja) | 2013-01-21 | 2013-01-21 | 電動パワーステアリング装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013008591A JP2014139054A (ja) | 2013-01-21 | 2013-01-21 | 電動パワーステアリング装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2014139054A true JP2014139054A (ja) | 2014-07-31 |
Family
ID=51416069
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013008591A Pending JP2014139054A (ja) | 2013-01-21 | 2013-01-21 | 電動パワーステアリング装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2014139054A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111361633A (zh) * | 2019-11-21 | 2020-07-03 | 大连创新零部件制造公司 | 用于商用车的具备多种驾驶模式选择的电动助力转向系统 |
US11639192B2 (en) * | 2019-03-28 | 2023-05-02 | Denso Corporation | Detection unit |
-
2013
- 2013-01-21 JP JP2013008591A patent/JP2014139054A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11639192B2 (en) * | 2019-03-28 | 2023-05-02 | Denso Corporation | Detection unit |
CN111361633A (zh) * | 2019-11-21 | 2020-07-03 | 大连创新零部件制造公司 | 用于商用车的具备多种驾驶模式选择的电动助力转向系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6024969B2 (ja) | 回転角検出装置およびそれを備えた電動パワーステアリング装置 | |
JP6086205B2 (ja) | 位相差検出装置およびそれを備えた回転角検出装置 | |
JP5679136B2 (ja) | 回転角検出装置、および、回転角検出装置を備えた電動パワーステアリング装置 | |
JP5250979B2 (ja) | 電動パワーステアリング装置の制御装置 | |
JP2006335252A (ja) | 電動パワーステアリング装置 | |
JP6024971B2 (ja) | 回転角検出装置 | |
US8823305B2 (en) | Electric power steering system | |
JP2018057084A (ja) | モータ制御装置 | |
JP6024970B2 (ja) | 回転角検出装置およびそれを備えた電動パワーステアリング装置 | |
JP2014219364A (ja) | 回転角検出装置 | |
JP2015229385A (ja) | 電動パワーステアリング装置 | |
JP2014139054A (ja) | 電動パワーステアリング装置 | |
JP2017229216A (ja) | モータ制御装置 | |
JP6468461B2 (ja) | モータ制御装置 | |
JP6202302B2 (ja) | 回転角検出装置 | |
JP5699972B2 (ja) | ツインレゾルバ式トルクセンサ及び電動パワーアシスト装置 | |
JP2016192882A (ja) | モータ制御装置 | |
JP2014142322A (ja) | 回転角検出装置 | |
JP2006337208A (ja) | 電動パワーステアリング装置 | |
JP6024976B2 (ja) | 操舵角センサの信頼性判定装置 | |
JP5645062B2 (ja) | モータ制御装置 | |
JP2017083422A (ja) | 回転角検出装置 | |
JP2016013755A (ja) | 電動パワーステアリング装置 | |
JP2019156110A (ja) | 車両用操舵装置 | |
JP2019214239A (ja) | 転舵制御装置 |