以下、本発明の実施形態について図面を用いて詳細に説明する。図1は、本発明に係る回転角検出装置のための異常検出装置の適用例としての車両の操舵装置を示している。
この車両の操舵装置は、操舵ハンドル11に上端を一体回転するように接続したステアリングシャフト12を備え、同シャフト12の下端にはピニオンギア13が一体回転するように接続されている。ピニオンギア13は、ラックバー14に形成されたラック歯と噛み合ってラックアンドピニオン機構を構成する。ラックバー14の両端には左右前輪FW1,FW2が操舵可能に接続されており、左右前輪FW1,FW2はステアリングシャフト12の軸線回りの回転に伴うラックバー14の軸線方向の変位に応じて左右に操舵される。
ステアリングシャフト12の中間部には、操舵ハンドル11の操舵角に対する左右前輪FW1,FW2の操舵角の比を変更するためのステアリングギア比可変機構15が設けられている。また、ラックバー14には、操舵ハンドル11の回動操作をアシストするための操舵アシスト機構16が設けられている。なお、この操舵アシスト機構16をステアリングシャフト12の中間部に組み付けるようにしてもよい。ステアリングギア比可変機構15および操舵アシスト機構16内には、モータ15a,16aがそれぞれ内蔵されているとともに、モータ15a,16aの回転角をそれぞれ検出するための本発明に関係したレゾルバ15b,16bがそれぞれ内蔵されている。
これらのモータ15a,16aおよびレゾルバ15b,16bには、電気制御回路20が接続されている。電気制御回路20は、それぞれ複数のA/D変換器、D/A変換器、CPU、ROM、RAMなどを備えたマイクロコンピュータ装置、駆動回路などからなる。電気制御回路20は、レゾルバ15b,16bとの協働によってモータ15a,16aの回転角を検出するとともに、各種運転状態量センサ21からの車両の各種運転状態量を表す信号を入力し、検出したモータ15a,16aの回転角および入力した車両の各種運転状態量を用いて、モータ15a,16aの回転を制御することによってステアリングギア比および操舵アシスト力を制御する。各種運転状態量センサ21には、車速を検出するための車速センサ、操舵ハンドル11の操舵角を検出するための操舵角センサ、操舵ハンドル11に付与される操舵トルクを検出するための操舵トルクセンサ、車両のヨーレートを検出するためのヨーレートセンサ、車両の横加速度を検出するための横加速度センサなどが含まれる。
電気制御回路20には、バッテリ22が直接およびイグニッションスイッチ23を介して接続されている。これにより、電気制御回路20にバッテリ電圧が電源電圧として供給されるとともに、電気制御回路20にてイグニッションスイッチ23のオン・オフが検出されるようになっている。なお、図1では、ステアリングギア比可変機構15および操舵アシスト機構16の両方を備えるようにしたが、両機構15,16のうちの一方を備えるようにしてもよい。
次に、電気制御回路20内に設けられて、レゾルバ30を用いた回転角検出装置および同装置のための異常検出装置について図2を用いて説明する。レゾルバ30は前記レゾルバ15b,16bに対応するもので、中心軸を共通とする断面楕円かつ柱状のロータ31および環状のステータ32からなる。ステータ32には、周方向に沿って等間隔に複数のコイルが設けられている。これらのコイルにおいては、いずれかは励磁コイルとして機能し、いずれかは正弦波相コイルとして機能し、またいずれかは余弦波相コイルとして機能する。図2においては、各一つの励磁コイル32a、正弦波相コイル32bおよび余弦波相コイル32cのみを示す。このレゾルバ30においては、励磁コイル32aに正弦波状に周期的に変化する図5(A)に示す励磁信号Srを与えて、ロータ31をステータ32に対して回転させると、正弦波相コイル32bからは図5(B)に示す正弦波相出力信号Ssが出力される。また、余弦波相コイル32cからは図5(C)に示す余弦波相出力信号Scが出力される。
ここで、レゾルバ30においては、ロータ31の断面が楕円状であるため、正弦波相出力信号Ssおよび余弦波相出力信号Scの振幅は、ロータ31のステータ32に対する回転角θ(ただし、電気角θ)に応じて変化するとともに回転角θの2πを周期として正弦波状に変化する。また、正弦波相出力信号Ssおよび余弦波相出力信号Scの振幅の位相は、ロータ31のステータ32に対する回転角πごとに、励磁信号Srに対してそれぞれ逆相になる。このような正弦波相出力信号Ssおよび余弦波相出力信号Scの振幅の変化をそれぞれ表す正弦波相振幅信号As(θ)および余弦波相振幅信号Ac(θ)を図5(B)(C)に実線で示している。また、正弦波相振幅信号As(θ)と余弦波相振幅信号Ac(θ)は、図5(B)(C)および図7に示すように、電気角で互いにπ/2だけ位相がずれている。図6は、正弦波相出力信号Ssおよび余弦波相出力信号Scのうちで、図5のΔtで示すように、励磁信号Srの1周期に相当する部分を拡大して示している。
励磁コイル32aには、所定の周期波形を有する励磁信号Srとしての正弦波信号を出力する励磁回路40が接続されている。励磁回路40は、基準クロック発生器41、タイミング信号発生器42、正弦波信号発生器43およびD/A変換器44からなる。基準クロック発生器41は、測定の基準となるクロック信号を発生する。タイミング信号発生器42は、前記クロック信号を入力して、各種演算のタイミングを規定する種々のタイミング制御信号を出力する。正弦波信号発生器43は、0〜2πに渡って正弦波の瞬時値を表す複数のサンプリングデータを、微小角度ずつ増加する位相に対応した複数のアドレスに対応させて記憶した正弦波テーブルを備えており、タイミング信号発生器42からのタイミング制御信号によって制御されて同テーブルに記憶されたサンプリングデータを順次読み出すことにより、デジタル正弦波信号を出力する。D/A変換器44は、正弦波信号発生器43から出力されたデジタル正弦波信号をD/A変換して、励磁コイル32aに励磁信号Sr(=Ar・sinωt)として供給する。
正弦波相コイル32bおよび余弦波相コイル32cには、A/D変換器51,52がそれぞれ接続されている。A/D変換器51,52は、タイミング信号発生器42からのタイミング制御信号に基づいて、所定のサンプリングレートで正弦波相出力信号Ssおよび余弦波相出力信号Scをサンプリングするとともに、同サンプリングしたアナログ信号をA/D変換して、マイクロコンピュータ装置60に供給する。なお、このサンプリングレートは、励磁信号Srの正弦波を再現できる程度の比較的速いレート、すなわち正弦波相出力信号Ssおよび余弦波相出力信号Scに含まれる励磁信号Srの1周期分に相当する振幅変調された正弦波状の信号を再現できる程度の比較的速いレートである。
マイクロコンピュータ装置60は、プログラム処理により各種機能を発揮するものであるが、図2においては、簡単化のために機能ブロック図により示している。この機能ブロック図には、正弦波相振幅計算部61、余弦波相振幅計算部62、回転角計算部63、正弦波相信号レベル計算部64、余弦波相信号レベル計算部65、出力部66、モータ制御部67および異常判定部68が含まれている。
正弦波相振幅計算部61は、A/D変換器51からの正弦波相出力信号Ssおよびタイミング信号発生器42からのタイミング制御信号を入力する。そして、正弦波相振幅計算部61は、正弦波相出力信号Ssのうちで励磁信号Sr(=Ar・sinωt)の1周期相当の複数のサンプリング値を、励磁信号Srと同一周波数および同一位相の正弦波関数で近似して、下記式1で表わされる近似曲線Ps(t)の振幅値As(θ)およびオフセット値Asoを計算する。この場合、近似に関しては、最小2乗法を用いることができる。なお、オフセット値Asoは、正弦波相出力信号Ssのバイアス電圧値に相当する。
Ps(t)=As(θ)・sinωt+Aso …式1
そして、この計算された振幅値As(θ)(図5(B)および図7の正弦波相振幅信号As(θ))が回転角計算部63に供給される。
余弦波相振幅計算部62は、A/D変換器52からの余弦波相出力信号Scおよびタイミング信号発生器42からのタイミング制御信号を入力する。そして、余弦波相振幅計算部62は、正弦波相振幅計算部61の場合と同様にして、余弦波相出力信号Scのうちで励磁信号Sr(=Ar・sinωt)の1周期相当の複数のサンプリング値を、励磁信号Srと同一周波数および同一位相の正弦波関数で近似して下記式2で表わされる近似曲線Pc(t)の振幅値Ac(θ)およびオフセット値Acoを計算する。
Pc(t)=Ac(θ)・sinωt+Aco …式2
そして、この計算された振幅値Ac(θ)(図5(C)および図7の余弦波相振幅信号Ac(θ))が回転角計算部63に供給される。また、この場合も、オフセット値Acoは、余弦波相出力信号Scのバイアス電圧値に相当するもので、前記正弦波相出力信号Ssのオフセット値Asoに略等しい。
回転角計算部63は、前記入力した正弦波相振幅信号As(θ)および余弦波相振幅信号Ac(θ)を用いた下記式3の演算の実行により、ロータ31のステータ32に対する回転角θ(ただし、電気角θ)を計算する。
θ=tan−1(As(θ)/Ac(θ)) …式3
これは、正弦波相振幅信号As(θ)および余弦波相振幅信号Ac(θ)(図5(B)(C)および図7参照)は、互いにπ/2だけずれた正弦波状の信号で、それらの振幅を共にAとすると、下記式4,5のように表されるからである。なお、高精度な正弦波相振幅信号As(θ)および余弦波相振幅信号Ac(θ)が得られれば、前記両信号As(θ),Ac(θ)の振幅は互いに等しい。
As(θ)=A・sinθ …式4
Ac(θ)=A・cosθ …式5
前記式4,5における値Aは、レゾルバ30およびその周辺の回路電圧によって決まる値である。
正弦波相信号レベル計算部64は、A/D変換器51からの正弦波相出力信号Ssおよびタイミング信号発生器42からのタイミング制御信号を入力する。そして、正弦波相信号レベル計算部64は、正弦波相出力信号Ssの1周期(励磁信号Sr(=Ar・sinωt)の1周期に等しい)分のサンプリング値のうちで等間隔の複数のサンプリング値を用いて、正弦波相出力信号Ssの平均値を計算して、同平均値を正弦波相信号レベル値LVsとして出力する。例えば、図6に示すように、正弦波相出力信号Ssの1周期分のサンプリング値の中からπ/2間隔の4点P1〜P4を指定し、4点P1〜P4の信号値の平均値を算出して正弦波相信号レベル値LVsとして出力する。なお、この正弦波相信号レベル値LVsは、正弦波相出力信号Ssが正常であれば、前述したオフセット値Asoに等しい。
余弦波相信号レベル計算部65は、A/D変換器52からの余弦波相出力信号Scおよびタイミング信号発生器42からのタイミング制御信号を入力する。そして、余弦波相信号レベル計算部65は、正弦波相信号レベル値LVsの場合と同様に、余弦波相出力信号Scの1周期分のサンプリング値のうちで等間隔の複数のサンプリング値を用いて、余弦波相出力信号Scの平均値を計算して、同平均値を余弦波相信号レベル値LVcとして出力する。この場合も、例えば、図6に示すように、余弦波相出力信号Scの1周期分のサンプリング値の中からπ/2間隔の4点P1’〜P4’を指定し、4点P1’〜P4’の信号値の平均値を算出して余弦波相信号レベル値LVcとして出力する。なお、この余弦波相信号レベル値LVcは、余弦波相出力信号Scが正常であれば、前述したオフセット値Acoに等しい。
出力部66は、回転角計算部63によって計算された回転角θを、モータ制御部67および他の車両制御用のマイクロコンピュータ装置に出力するもので、異常判定部68により前記出力の有無が制御される。モータ制御部67は、前記出力された回転角θに加えて、図1の各種運転状態量センサ21からの各種センサ値に応じてモータ15a,16aの回転を制御する。
異常判定部68は、図3に示す異常検出プログラム(図4の正常復帰判定ルーチンを含む)を所定の短時間ごとに繰り返し実行することにより、レゾルバ30およびその周辺回路の異常すなわち回転角検出装置の異常(以下、単にレゾルバ30の異常という)を判定して、出力部66による回転角θの出力の有無を制御するとともに、図示しない警報装置およびダイアグ記録装置による異常警報の発生およびダイアグ記録をそれぞれ制御する。このレゾルバ30の異常判定のために、異常判定部68には、正弦波相振幅計算部61からの正弦波相振幅信号As(θ)、余弦波相振幅計算部62からの余弦波相振幅信号Ac(θ)、回転角計算部63からの回転角θ、正弦波相信号レベル計算部64からの正弦波相信号レベル値LVsおよび余弦波相信号レベル計算部65からの余弦波相信号レベル値LVcに加え、バッテリ22からの電源電圧値Vigおよび励磁コイル32aに励磁信号Srを与えるための励磁電圧値Vmtも入力されている。これらの電源電圧値Vigおよび励磁電圧値Vmtは既知であり、詳細な説明は省略する。
次に、図3に示す異常検出プログラム(図4の正常復帰判定ルーチンを含む)に沿って、異常判定部68の処理について詳細に説明する。異常検出プログラムの実行は、イグニッションスイッチ23の投入により、すなわちレゾルバ30による回転角の検出開始に同期して、ステップS10から開始される。異常判定部(すなわち、マイクロコンピュータ装置)68は、ステップS11にて異常確定フラグEFが”1”であるか否かを判定する。異常確定フラグEFは、”0”によってレゾルバ30の異常未確定状態を表し、”1”によってレゾルバ30の異常確定状態を表すもので、初期には”0”に設定されている。したがって、初期には、異常判定部68は、ステップS11にて「No」と判定して、ステップS12に進む。
ステップS12においては、正弦波相振幅信号As(θ)および余弦波相振幅信号Ac(θ)を用いた下記式6の演算の実行により、両信号値As(θ),Ac(θ)の2乗値の和の平方根Assを計算する。なお、以下においては、この平方根Assを2乗和平方根という。
Ass=(As(θ)2+Ac(θ)2)1/2 …式6
この場合、正弦波相振幅信号As(θ)および余弦波相振幅信号Ac(θ)が正常であれば、前述のように、正弦波相振幅信号As(θ)および余弦波相振幅信号Ac(θ)は、それぞれA・sinθ,A・cosθであるため、2乗和平方根Assは値Aに等しい。また、本実施形態では2乗和平方根Assを用いるが、この2乗和平方根Assに代えて、両信号As(θ),Ac(θ)の2乗値Ass2(=As(θ)2+Ac(θ)2)を用いてもよい。
そして、レゾルバ30に異常が発生すると、2乗和平方根Assは値Aからのずれ量が大きくなる。ここで、正弦波相振幅信号As(θ)および余弦波相振幅信号Ac(θ)の特性について説明しておく。正弦波相振幅信号As(θ)および余弦波相振幅信号Ac(θ)に誤差が含まれていなければ、As(θ)=A・sinθおよびAc(θ)=A・cosθであるから、図8に示す座標系で正弦波相振幅信号As(θ)および余弦波相振幅信号Ac(θ)により特定される座標位置は、回転角θの変化に応じて半径Aの円(図示1点鎖線の円)上を移動する。そして、前記座標位置は、レゾルバ30およびその周辺回路の誤差により、レゾルバ30に異常が発生しなくても、前記半径Aの円から多少ずれる。一方、レゾルバ30に異常が発生すると、前記座標位置は前記半径Aの円から大きくずれる。図8の半径Amaxおよび半径Aminの両実線円で挟まれた領域(図示、ドットで示す領域)は、レゾルバ30に異常が発生していないとみなされる領域である。
ふたたび、図3の異常検出プログラムの説明に戻ると、ステップS13においては、異常判定部68は、2乗和平方根Assが両値Amin,Amaxによって規定される範囲内にあるか、すなわちレゾルバ30に異常が発生しているか否かを判定する。2乗和平方根Assが両値Amin,Amaxによって規定される範囲内にあれば、ステップS13にて「Yes」と判定してステップS18に進む。ステップS18においては、異常暫定確定カウント値TCNTが所定値N1以上であるか否かを判定する。この異常暫定確定カウント値TCNTは、前記ステップS13の処理によってレゾルバ30の異常が検出されるごとに「1」ずつカウントアップされるもので、初期には「0」に設定されている。したがって、この場合には、ステップS18にて「No」と判定してステップS21に進む。
ステップS21においては、異常確定フラグEFが”0”であり、かつ異常暫定確定フラグTEFが”1”であるか否かを判定する。異常暫定確定フラグTEFは、”0”によってレゾルバ30の異常の未暫定確定状態を表し、”1”によってレゾルバ30の異常暫定確定状態を表すもので、初期には”0”に設定されている。したがって、この場合には、異常判定部68は、ステップS21にて「No」と判定してステップS23に進む。
ステップS23においては、暫定確定解除フラグCRFが”1”であるか否かを判定する。この暫定確定解除フラグCRFは、通常”0”に設定されていて、レゾルバ30の異常が暫定的に確定された後、レゾルバ30が正常に復帰したことが確認されたときに”1”に設定される。したがって、この場合には、ステップS23にて「No」と判定してステップS26に進む。
ステップS26においては、異常確定カウント値CNTが所定値N2以上であるか否かを判定する。なお、この所定値N2は、前記異常暫定確定カウント値TCNTと比較された所定値N1よりも大きな値である。この異常確定カウント値CNTは、前記ステップS13の処理に加えて、後述するステップS15,S16によって電源電圧値Vigおよび励磁電圧値Vmtが共に異常でないと判定されたときに、「1」ずつカウントアップされるもので、初期には「0」に設定されている。したがって、この場合には、ステップS26にて「No」と判定し、ステップS29にてこの異常検出プログラムの実行を一旦終了する。
そして、2乗和平方根Assが正常である限り、言い換えれば、レゾルバ30が正常である限り、上述した異常検出プログラムの処理が繰り返し実行される。そして、レゾルバ30が正常である場合には、異常判定部68は、出力部66による回転角θ(電気角θ)の出力を許容する。
次に、2乗和平方根Assが所定値Amin,Amaxによって規定される範囲内でなくなった場合、言い換えれば、レゾルバ30に異常が発生した(異常確定)あるいは異常の発生が疑われる(暫定異常)場合について説明する。この場合、前述した図3のステップS13にて「No」と判定され、異常判定部68は、ステップS14にて、異常暫定確定カウント値TCNTを「1」だけカウントアップする。そして、ステップS15,S16にて、励磁電圧値Vmtおよび電源電圧値Vigが、ぞれぞれ正常時における励磁電圧値Vmtoおよび電源電圧値Vigoに等しいまたは近傍の値であるかを判定する。励磁電圧値Vmtおよび電源電圧値Vigが正常であれば、ステップS15,S16にて共に「No」と判定して、異常確定カウント値CNTを「1」だけカウントアップする。励磁電圧値Vmtおよび電源電圧値Vigのいずれか一方でも異常があれば、ステップS15,S16のいずれかにて「Yes」と判定して、ステップS17の処理を実行することなくステップS18に進む。これは、レゾルバ30の異常を確定するには、より慎重な判定を期待するためであり、これらのステップS15,S16の判定処理を省略することもできる。
異常暫定確定カウント値TCNTは、前述のように、2乗和平方根Assが所定値Amin,Amaxによって規定される範囲内でない状態が検出されるごとに、ステップS13,S14の処理によってカウントアップされる。そして、この状態が継続して、異常暫定確定カウント値TCNTが所定値N1以上になると、言い換えれば、異常暫定が確定すると、ステップS18にて「Yes」と判定されて、異常判定部68はステップS19,S20の処理を実行する。ステップS19においては、出力部66に対して回転角θ(電気角θ)の出力禁止を指示する。したがって、以降、回転角θは無効とみなされ、出力部66からは回転角θは出力されなくなる。これは、異常な回転角θをモータ15a,16aの制御に利用されないようにするとともに、他の制御装置においても利用されないようにするためである。なお、ステアリングギア比可変機構15のモータ15aに関しては、ステアリングギア比を固定するために、モータ制御部67はモータ15aに対して回転を許容しないロック制御を実行する。
ステップS20においては、異常暫定確定フラグTEFを”1”に設定し、かつ領域フラグFL(1)〜FL(8)を”0”に初期設定する。この領域フラグFL(1)〜FL(8)は、レゾルバ30の異常が前述のようにして暫定的に確定された状態であっても、レゾルバ30が正常に復帰し、またはレゾルバ30が正常であることを確認するために利用されるものである。具体的には、各領域フラグFL(1)〜FL(8)は、正弦波相振幅信号As(θ)と余弦波相振幅信号Ac(θ)によって規定される座標値が図7および図8のπ/4ごとに分割した8個の領域R1〜R8に存在したことをそれぞれ確認するためのものであり、”1”により存在確認状態を表す。
前記ステップS20の処理によって異常暫定確定フラグTEFが”1”に設定された直後には、異常確定フラグEFは”0”に保たれているため、異常判定部68は、ステップS21にて「Yes」と判定して、ステップS22の正常復帰判定ルーチンを実行する。したがって、この正常復帰判定ルーチンは、レゾルバ30の異常が最終的に確定されず、暫定的にのみ確定された状態にある限り、異常検出プログラムの実行に合わせて繰り返し実行される。
正常復帰判定ルーチンの実行は、図4のステップS30にて開始される。異常判定部68は、ステップS31にて正常復帰カウント値RCNTが所定時間だけ継続してカウントアップしているか否かを判定する。正常復帰カウント値RCNTは、異常暫定確定フラグTEFが”1”に設定されてレゾルバ30の異常が暫定的に確定された後において、異常暫定確定カウント値TCNTがカウントアップしない状態であるときに、カウントアップするものである。すなわち、正常復帰カウント値RCNTがカウントアップする状況は、異常検出プログラムの前記ステップS20にて異常暫定確定フラグTEFが”1”に設定されており、その後に実行される前記ステップS13にて「Yes」と判定される状況である。
具体的には、一時的に2乗和平方根Assが所定値Amin,Amaxによって規定される範囲内でない状態が検出される状態が継続して異常暫定確定フラグTEFが”1”に設定されたものの、その後、2乗和平方根Assが所定値Amin,Amaxによって規定される範囲内にある状態が検出されると、異常暫定確定カウント値TCNTがカウントアップされずに正常復帰カウント値RCNTがカウントアップされる。すなわち、正常復帰カウント値RCNTがカウントアップしている状況においては、レゾルバ30が暫定的に正常な状態となっている。
このため、異常判定部68は、ステップS31にて、正常復帰カウント値RCNTが所定時間だけ継続してカウントアップしていれば、レゾルバ30が暫定的に正常な状態となっているため「Yes」と判定してステップS32に進む。一方、正常復帰カウント値RCNTが所定時間だけカウントアップを継続していない、言い換えれば、異常暫定確定カウント値TCNTがカウントアップしている場合には、「No」と判定してステップS46にて正常復帰判定ルーチンの実行を終了する。
ステップS32においては、レゾルバ30が暫定的に正常な状態であるため、異常判定部68は、モータ制御部67と協働してモータ15a,16aすなわちレゾルバ30のロータ31を強制的に回転させてステップS33に進む。このとき、モータ制御部67は、モータ15a,16すなわちレゾルバ30のロータ31aを、例えば、電気角で0〜2πまで強制的に回転させる。なお、前述したように、モータ15aに関しては、異常暫定が確定するとロック制御されているため、モータ制御部67は、このロック制御を解除してモータ15aを強制的に回転させる。
異常判定部68は、ステップS33,S34,S37,S38の処理により、領域フラグFL(1)〜FL(8)を示す変数iを「1」から「8」まで「1」ずつ増加させながら、領域R1〜R8のうちで、領域フラグFL(i)が”0”を示す領域に対してステップS35,S36の処理を実行する。すなわち、領域R1〜R8のうちで、レゾルバ30の異常の暫定確定後に正弦波相振幅信号As(θ)と余弦波相振幅信号Ac(θ)によって規定される座標値が存在したことが検出されない領域に対してステップS35,S36の処理を実行する。
ステップS35においては、回転角θが下記式7の不等式を満足するか否かを判定することにより、正弦波相振幅信号As(θ)と余弦波相振幅信号Ac(θ)によって規定される座標値が変数iによって指定される領域Riに存在するかを判定する。
(i−1)・π/4≦θ<i・π/4 …式7
そして、前記座標値が領域Riに存在すれば、ステップS35にて「Yes」と判定して、ステップS36にて領域フラグFL(i)を”1”に設定する。前記座標値が領域Riに存在しなければ、ステップS35にて「No」と判定されて、領域フラグFL(i)は”0”に保たれる。
これらのステップS33〜S38の処理後、異常判定部68は、ステップS39にて、モータ制御部67と協働してモータ15a,16aの回転を停止させる。そして、異常判定部68は、後述するステップS40〜S43の処理を経て、ステップS44にて全ての領域フラグFL(1)〜FL(8)が”1”であるかを判定する。領域フラグFL(1)〜FL(8)のいずれかでも”1”でなければ、ステップS44にて「No」と判定して、ステップS46にて正常復帰判定ルーチンの実行を終了する。
前記ステップS13,S15〜S17の処理によって異常確定カウント値CNTが所定値N2以上になる前に、全ての領域フラグFL(1)〜FL(8)が”1”に設定されると、ステップS44にて「Yes」と判定して、ステップS45にて暫定確定解除フラグCRFを”1”に設定する。暫定確定解除フラグCRFが”1”に設定されると、前記ステップS23にて「Yes」と判定して、ステップS24にて異常暫定確定フラグTEFを”0”に戻す。これにより、レゾルバ30の異常の暫定確定状態は解除される。このことを図8を用いて説明すると、2乗和平方根Assが異常な値を示して異常暫定確定フラグTEFが”1”に設定されても、暫定的に正常な状態において、実線楕円のように回転角θ(電気角θ)の0〜2πに渡る検出が可能になれば、レゾルバ30の異常の暫定確定状態は解除されて、レゾルバ30が正常であることが確定する。なお、図8の破線楕円は、回転角θ(電気角θ)の0〜2πに渡る検出が不能である状態を示している。そして、この図8の破線楕円の場合には、後述するレゾルバ30の異常が確定する。
また、前記ステップS24においては、異常暫定確定カウント値TCNTおよび異常確定カウント値CNTも「0」にクリアされるとともに、暫定確定解除フラグCRFも”0”に戻される。そして、ステップS25にて、異常判定部68は、出力部66に対して回転角θ(電気角θ)の出力再開を指示する。したがって、出力部66からは回転角θが出力されるようになり、モータ制御部67および他の制御装置は回転角θを利用した制御が可能となる。
また、正常復帰判定ルーチンにおいては、ステップS40〜S41の処理も実行される。ステップS40においては、正弦波相信号レベル値LVsが所定値LVsmin,LVsmaxによって規定される範囲内にあるか否かを判定することにより、正弦波相信号レベル値LVsが正常であるか否かを判定する。なお、所定値LVsmin,LVsmaxは、正弦波相出力信号Ssが正常である場合のオフセット値Asoよりも若干小さな値Aso−ΔAおよび若干大きな値Aso+ΔAにそれぞれ予め設定されている。正弦波相信号レベル値LVsが正常であれば、ステップS40にて「Yes」と判定してステップS41に進む。一方、正弦波相信号レベル値LVsが異常であれば、ステップS40にて「No」と判定して、ステップS43にて全ての領域フラグFL(1)〜FL(8)を”0”にクリアする。
ステップS41においては、余弦波相信号レベル値LVcが所定値LVcmin,LVcmaxによって規定される範囲内にあるか否かを判定することにより、余弦波相信号レベル値LVcが正常であるか否かを判定する。なお、所定値LVcmin,LVcmaxは、余弦波相出力信号Scが正常である場合のオフセット値Acoよりも若干小さな値Aco−ΔAおよび若干大きな値Aco+ΔAにそれぞれ予め設定されている。余弦波相信号レベル値LVcが正常であれば、ステップS41にて「Yes」と判定してステップS42に進む。一方、余弦波相信号レベル値LVcが異常であれば、ステップS41にて「No」と判定して、ステップS43にて全ての領域フラグFL(1)〜FL(8)を”0”にクリアする。
ステップS42においては、今回の異常検出プログラムの実行時の回転角θnewと前回の異常検出プログラムの実行時の回転角θoldとの差の絶対値|θnew−θold|が所定値Δθ以下であるかを判定する。この判定は、回転角θ(電気角θ)の大きな変化により、回転角θの異常を判定するためのものである。したがって、回転角θが正常であれば、ステップS42にて「Yes」と判定してステップS44に進む。回転角θが異常であれば、ステップS42にて「No」と判定し、ステップS43にて全ての領域フラグFL(1)〜FL(8)を”0”にクリアする。
このステップS43の処理は、ステップS33〜S38の処理により、領域フラグFL(1)〜FL(8)のいずれかが”1”に設定された状態であっても、全ての領域フラグFL(1)〜FL(8)を”0”にクリアするものである。したがって、ステップS31〜S39,S44からなるレゾルバ30の正常復帰の確認動作中に、正弦波相信号レベル値LVs、余弦波相信号レベル値LVcおよび回転角θの異常が検出された場合には、レゾルバ30の正常復帰の確認のための検出が最初からふたたび行われることになる。
一方、レゾルバ30の異常の暫定的な確定が解除される前に、前記ステップS13,S15,S16,S17の処理によってカウントアップされる異常確定カウント値CNTが所定値N2以上になると、ステップS26にて「Yes」と判定してステップS27,S28の処理を実行する。ステップS27においては、異常確定フラグEFを”1”に設定する。すなわち、この場合には、レゾルバ30の異常が確定する。そして、この場合、以降、ステップS11にて「Yes」と判定されるため、ステップS12〜S28の処理が実行されなくなる。したがって、出力部66は回転角θ(電気角θ)の出力を禁止された状態に維持され、モータ制御部67およびその他の制御装置による回転角θの利用が停止される。
前記ステップS27の処理後、異常判定部68は、ステップS28にて、図示しない警報装置およびダイアグ記録装置による異常警報の発生およびダイアグ記録をそれぞれ制御する。したがって、運転者はレゾルバ30の異常に気が付くと同時に、この異常は記録される。
以上の作動説明からも理解できるとおり、上記実施形態によれば、図9に概略的に示すように、ステップS13,S14,S18,S20の処理により、異常暫定確定カウント値TCNTが所定値N1以上となった場合には、レゾルバ30の異常が暫定的に確定されて、回転角θ(電気角θ)が無効とみなされる。そして、このような状態がさらに継続すると、ステップS13,S15〜S17,S26,S27の処理により、レゾルバ30の異常が確定される。しかし、前記異常が暫定的に確定された後であっても、ステップS21の処理によって正常復帰判定ルーチンを実行し、ステップS31の処理により復帰カウント値RCNTが所定時間だけ継続してカウントアップしていれば、レゾルバ30が正常であると暫定的に確定される。
そして、レゾルバ30が暫定的に正常であるときに、ステップS32の処理によってモータ15a,16aを強制的に回転させることにより、図8の実線楕円で示すように、回転角θ(電気角θ)が0〜2πに渡って検出可能である状態が確認されるとともに、正弦波相信号レベル値、余弦波相信号レベル値LVcおよび回転角θ(電気角θ)が正常である場合には、レゾルバ30が正常であると確定される。一方、ステップS26の処理により異常確定カウント値CNTが所定値N2以上となる、言い換えれば、繰り返し正常復帰判定ルーチンを実行したにもかかわらず、図8の破線楕円で示すように、回転角θ(電気角θ)が0〜2πに渡って検出可能でない場合のような異常がレゾルバ30に発生している場合には、レゾルバ30の異常が確定される。
ここで、異常判定部68は、正常復帰判定ルーチンを実行することにより、モータ15a,16aを強制的に回転させることができる。これにより、前述したレゾルバ30の正常または異常を速やかに判定することができる。このことは、特にステアリングギア比可変機構15のように、モータ15aが回転しないようにロック制御される場合に有効である。すなわち、モータ15aがロック制御されて回転しにくい場合には、レゾルバ30において回転角θ(電気角θ)が0〜2πに渡って検出可能であるか否かを判定するために、例えば、路面からの外力が入力する必要があり時間を要する。これに対して、レゾルバ30が正常であると暫定的に確定された状態でモータ15aを強制的に(積極的に)回転させることにより、レゾルバ30において回転角θ(電気角θ)が0〜2πに渡って検出可能であるか否かを速やかに判定することができるため、レゾルバ30の正常または異常を速やかに判定することができる。
また、前記のように異常が暫定的に確定された場合には、ステップS25の処理により、出力部66による回転角θ(電気角θ)の出力が禁止される。したがって、レゾルバ30の異常が暫定的に確定されて、レゾルバ30の異常発生の可能性が高い場合には、異常な回転角θを用いた不適格な制御を回避できる。また、前記回転角θの出力禁止状態であっても、回転角θ(電気角θ)が0〜2πに渡って検出可能である状態が確認されたとき、すなわちレゾルバ30の異常の確定が解除されて正常の確定がなされた場合には、ステップS25の処理により、出力部66による回転角θ(電気角θ)の出力が再開されるため、回転角θが有用に利用される。
上記実施形態においては、レゾルバ30が暫定的に正常であるときに、異常判定部68は、正常復帰判定ルーチンのステップS32にてモータ制御部67と協働してモータ15a,16aを強制的に(積極的に)回転させるように実施した。この場合、モータ15a,16a(すなわちレゾルバ30)は電気角で0〜2πまで回転するのみであるため、左右前輪FW1,FW2の操舵状態に対する影響は小さい。しかしながら、例えば、車両が高速走行している場合には、モータ15a,16aの回転(回転速度)が左右前輪FW1,FW2の操舵状態に影響を与える可能性がある。
このため、モータ制御部67が、各種運転状態量センサ21によって検出される状態量のうち、特に、車速を用いて、モータ15a,16aの回転速度を制御するように変形して実施することも可能である。すなわち、この場合には、モータ制御部67は、下記式8の演算の実行により、モータ15a,16aの回転速度を計算し、この計算した回転速度によってモータ15a,16aを回転させる。
Rv=Ka・Kv …式8
ここで、前記式8中のKaは予め設定される回転速度定数であり、Kvは図10に示すように、検出車速の増大に伴って「0」まで変化する回転速度ゲインである。
このように、車両の車速に応じて、モータ15a,16aの回転速度を変更制御することにより、左右前輪FW1,FW2の操舵状態に影響を与えにくい低速域においてモータ15a,16aを高速で回転させることができ、その結果、レゾルバ30の正常または異常をより速やかに判定することができる。また中・高速域においては、ゲインKvを減少させ、特に、高速域においてゲインKvを「0」とすることができる。これにより、左右前輪FW1,FW2の操舵状態に影響を与えやすい中・高速域においてモータ15a,16aを低速で回転させ、あるいは、モータ15a,16aを回転させず車速が低下したときにモータ15a,16aを低速で回転させることができ、その結果、レゾルバ30の正常または異常の判定に伴う車両の走行挙動の乱れを防止することができる。
また、上記実施形態および変形例においては、左右前輪FW1,FW2を操舵する車両の操舵装置を適用例として実施した。この場合、車両の後輪を操舵する車両の後輪操舵装置に対して、本発明に係る回転角検出装置のための異常検出装置を適用して実施することも可能である。以下、詳細に説明するが、上記実施形態と同一部分に同一の符号を付し、その説明を省略する。
この車両の後輪操舵装置は、図11に概略的に示すように、左右後輪RW1,RW2を転舵させるための後輪操舵アクチュエータ71と後輪操舵機構72を備えている。後輪操舵アクチュエータ71は、左右後輪RW1,RW2を操舵させる操舵力を発生するモータ71aが内蔵されているとともに、モータ71aの回転角を検出するための本発明に関連したレゾルバ71bが内蔵されている。後輪操舵機構72は、周知のギア機構を有していて、モータ71aの回転を減速するとともにこの減速された回転運動を軸線方向運動に変換するものである。そして、後輪操舵機構72は、例えば、トーコントロールアームを介して左右後輪RW1,RW2に接続されている。
この構成により、運転者による操舵ハンドル11の回動操作に応じて、すなわち、左右前輪FW1,FW2の転舵に合わせて後輪操舵アクチュエータ71のモータ71aが回転駆動し、後輪操舵機構72によって減速された回転が軸線方向運動に変換される。そして、この軸線方向運動がトーコントロールアームに伝達され、このトーコントロールアームに接続された左右後輪RW1,RW2が左右に転舵されるようになっている。
そして、このように構成された車両の後輪操舵装置においても、上記実施形態と同様に、マイクロコンピュータ装置60の異常判定部68が図3に示した異常検出プログラム(図4に示した正常復帰判定ルーチンを含む)を実行することにより、モータ71aを強制的(積極的に)に回転させてレゾルバ30(レゾルバ71b)の正常または異常を速やかに判定することができる。特に、左右後輪RW1,RW2は、左右前輪FW1,FW2側に比して、外力によってモータ71aおよびレゾルバ71bが回転されにくい。このため、モータ71aを強制的に(積極的に)回転させない場合には、レゾルバ30(レゾルバ71b)の正常または異常の判定に極めて長い時間を要し、その結果、レゾルバ30(レゾルバ71b)を正常復帰させることが困難となる。
これに対して、この変形例においては、上記実施形態と同様に、レゾルバ30が暫定的に正常であるときに、モータ71aを強制的(積極的に)に回転させてレゾルバ30(レゾルバ71b)の正常または異常を速やかに判定することができる。したがって、レゾルバ30(レゾルバ71b)を速やかに正常復帰させることができる。
さらに、本発明は上記実施形態およびその変形例に限定されることなく、本発明の範囲内において種々の変形例を採用することができる。
例えば、上記実施形態では、レゾルバ30の異常が確定した場合でも、イグニッションスイッチ23が新たに投入されたときには、レゾルバ30の異常が異常暫定確定を含めて最初から検出される。しかし、レゾルバ30の異常が一旦確定された場合には、イグニッションスイッチ23が新たに投入された後においても、この異常確定を有効に利用するようにしてもよい。
この場合、異常判定部68は、図3の異常検出プログラムの一部を変更した図12の異常検出プログラムを実行する。この異常検出プログラムにおいては、ステップS10の異常検出プログラムの実行開始後、ステップS51にてイグニッションスイッチ23の投入直後であるかを判定する。すなわち、イグニッションスイッチ23の投入後に始めて異常検出プログラムが実行されたかを判定する。イグニッションスイッチ23の投入直後であれば、ステップS51にて「Yes」と判定して、ステップS52にて、図2にて破線で示す不揮発性メモリ69に“1”に設定されている異常確定フラグEFが存在しているかを調べる。この不揮発性メモリ69は、例えばマイクロコンピュータ装置60内に設けたEEPROMで構成され、電力供給が解除されても記憶内容が消去されないメモリである。
前記異常確定フラグEFが存在していなければ、異常判定部68は、ステップS52にて「No」と判定して、上記実施形態の場合と同様なステップS11以降の処理を実行する。また、イグニッションスイッチ23の投入直後でない場合も、上記実施形態の場合と同様なステップS11以降の処理を実行する。ステップS11においては、上記実施形態の場合と同様に、異常確定フラグEFが“1”であるかを判定する。この場合、異常確定フラグEFが“1”でなければ、上記実施形態の場合と同様なステップS12以降の処理を実行する。しかし、異常確定フラグEFが“1”であれば、ステップS11に「Yes」と判定した後、ステップS53,S54の処理を経てステップS29にてこの異常検出プログラムの実行を終了する。
ステップS53においては、異常判定部68は、イグニッションスイッチ23がオフされたかを判定する。イグニッションスイッチ23がオン状態にあれば、ステップS53にて「No」と判定して、ステップS29にてこの異常検出プログラムの実行を一旦終了する。一方、イグニッションスイッチ23がオフされると、ステップS53にて「Yes」と判定して、ステップS54にて、“1”に設定されている異常確定フラグEFを不揮発性メモリ69に書き込み、ステップS29にてこの異常検出プログラムの実行を終了する。なお、これ以降は、イグニッションスイッチ23が再投入されるまで、異常検出プログラムは実行されない。
前記のように異常確定フラグEFが不揮発性メモリ69に書き込まれている場合には、イグニッションスイッチ23の投入直後のステップS52にて「Yes」と判定して、ステップS19,S20に進む。ステップS19の処理は、出力部66に対して検出回転角θの出力禁止を指示する処理である。ステップS20の処理は、異常暫定確定フラグTEFを“1”に設定する処理である。したがって、この場合には、上記実施形態におけるレゾルバ30の異常を暫定的に確定した状態に設定される。すなわち、異常判定部68は、これ以降、例えば、異常確定フラグEFを一時的に”0”に設定することにより、レゾルバ30の異常が確定されるか、異常暫定確定が解除されるかの処理を実行することになる。なお、これ以降の処理において、異常暫定確定が解除された場合には、不揮発性メモリ69内の“1”に設定された異常確定フラグEFを消去しておくとよい。
このような変形例によれば、マイクロコンピュータ装置60の前回の作動時にレゾルバ30の異常が確定している場合には、今回の作動時の初期においても、検出された回転角θが正常であるとみなされなくなるので、検出回転角θの不適切な使用を回避できる。また、前回の作動時と今回の作動時との間にレゾルバ30の異常が排除された場合には、異常確定が回避されるので、検出回転角θが有効に利用されるようになる。
また、上記実施形態およびその変形例においては、異常判定部68が、2乗和平方根Assが所定値Amin,Amaxによって規定される範囲内でなくなった場合に、レゾルバ30に異常が発生した(異常確定)あるいは異常の発生が疑われる(暫定異常)と判定するように実施した。この場合、異常判定部68が、例えば、レゾルバ30の断線や各端子間のショートなどによって発生する電圧オフセット(オフセット値Aso,Acoの異常)に基づいてレゾルバ30の異常確定あるいは暫定異常を判定したり、回転角計算部63によって計算された回転角θ(電気角θ)の変化量が短時間のうちに大きく変化したことに基づいてレゾルバ30の異常確定あるいは暫定異常を判定することも可能である。
また、上記実施形態およびその変形例においては、0〜2πに渡る回転角θ(電気角θ)の検出可能性の判定のために、π/4ごとに分割した領域R1〜R8を用いたが、これらの領域R1〜R8に関しては、π/4よりも細かく分割したり、粗く分割してもよい。
また、上記実施形態およびその変形例においては、本発明に係る回転角検出装置のための異常検出装置を車両の操舵装置に適用した例について説明した。しかし、この異常検出装置は、レゾルバを用いた車両の他の制御装置にも適用されることはもちろんのこと、車両以外の装置にも適用されるものである。