(57)【要約】【課題】モータを駆動する各相電流指令値のゼロクロス時においても、モータからの異音の発生することがなく、且つ操舵フィーリングの良い電動パワーステアリング装置を提供すること。【解決手段】デッドタイム補償演算手段は、電流指令値が負値からゼロクロス近傍の所定範囲に属する値になった場合には、正値の前記デッドタイム補償量を各相ＤＵＴＹ指令値に加算し、電流指令値が正値からゼロクロス近傍の所定範囲に属する値になった場合には、負値の前記デッドタイム補償量を各相ＤＵＴＹ指令値に加算する。【選択図】図３
2012011965.tif 000002
【特許請求の範囲】
【請求項１】
ステアリング機構に操舵補助力を与えるモータと、
操舵トルクを検出する操舵トルク検出手段と、
車速を検出する車速検出手段と、
前記操舵トルク検出手段により検出された操舵トルク及び前記車速検出手段により検出された車速に基づいて電流指令値を演算する電流指令値演算手段と、
前記電流指令値演算手段より演算された電流指令値に基づき前記モータを駆動制御するモータ制御信号を生成するモータ制御信号生成手段と、
前記モータ制御信号に基づき前記モータに対して駆動電力を出力するモータ駆動手段と、
前記モータの各相に流れる各相電流値を検出する各相電流値検出手段と、を備え、
前記モータ制御信号生成手段は、
前記モータ制御信号の基礎となる各相ＤＵＴＹ指令値を生成する各相ＤＵＴＹ指令値生成手段と、
前記電流指令値演算手段からの出力に基づいて前記モータの各相の電流指令値を生成する各相電流指令値生成手段と、
前記各相電流指令値が正値である場合には、所定のデッドタイム補償量を前記各相ＤＵＴＹ指令値に加算し、前記各相電流指令値が負値である場合には、正負の符号を変えた前記デッドタイム補償量を前記各相ＤＵＴＹ指令値に加算することで前記モータ駆動手段のデッドタイムを補償するデッドタイム補償演算手段と、を備え、
前記デッドタイム補償演算手段は、
前記各相電流指令値がゼロクロス近傍の所定範囲内にある場合には、前記デッドタイム補償量の正負の符号を変えないことを特徴とする電動パワーステアリング装置。
【請求項２】
前記デッドタイム補償演算手段は、
前記電流指令値が負値からゼロクロス近傍の所定範囲に属する値になった場合には、正値の前記デッドタイム補償量を前記各相ＤＵＴＹ指令値に加算し、
前記電流指令値が正値からゼロクロス近傍の所定範囲に属する値になった場合には、負値の前記デッドタイム補償量を前記各相ＤＵＴＹ指令値に加算することを特徴とする請求項１に記載の電動パワーステアリング装置。
【請求項３】
前記デッドタイム補償演算手段は、
前記電流指令値が負値からゼロクロス近傍の所定範囲に属する値になった場合には、負値の前記デッドタイム補償量を前記各相ＤＵＴＹ指令値に加算し、
前記電流指令値が正値からゼロクロス近傍の所定範囲に属する値になった場合には、正値の前記デッドタイム補償量を前記各相ＤＵＴＹ指令値に加算することを特徴とする請求項１に記載の電動パワーステアリング装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電動パワーステアリング装置に関するものである。
【背景技術】
【０００２】
従来、直流電源から供給される直流電圧をＰＷＭインバータにより三相（Ｕ、Ｖ、Ｗ）の駆動電力に変換してブラシレスモータに供給するモータ制御装置がある。
図８に示すように、ＰＷＭインバータは、直列に接続された一対のスイッチング素子（パワーＭＯＳＦＥＴ等）５１a、５１bからなるアーム５２を基本単位として、各相に対応する３つのアーム５２を並列接続することにより構成されている。そして、モータ制御装置は、各アームの高位側のスイッチング素子５１aと低位側のスイッチング素子５１bとを所定のタイミングで交互にオン/オフすることにより、ブラシレスモータ２１に三相の駆動電力を供給する。
【０００３】
ところで、こうしたモータ制御装置では、通常、高位側のスイッチング素子５１aと低位側のスイッチング素子５１bとの短絡（アーム短絡）を防止するために、そのオン/オフの切替時には、各スイッチング素子５１a、５１bが共にオフとなるデッドタイムが設けられている。しかし、このデッドタイムの存在により、電圧指令値とＰＷＭインバータの出力電圧との間に誤差が生じ、これによりトルクリップルや振動、異音の原因となる電流歪みが発生するという問題があった。
【０００４】
特に、このようなモータ制御装置を使用する電動パワーステアリング装置（ＥＰＳ）においては、トルクリップルや振動は操舵フィーリングを低下させると同時に、異音は車室内の静粛性を損なうものとなる。
【０００５】
そこで、従来、こうしたＥＰＳ用のものを含む多くのモータ制御装置では、デッドタイムに起因する電流歪みを抑制すべく、その電圧指令値と出力電圧との間の誤差を低減するデッドタイム補償が行なわれている。
【０００６】
例えば、非特許文献１には、図９に示すように、搬送波である三角波δとの比較により各スイッチング素子５１a、５１bのオン/オフタイミングを決定するためのＤＵＴＹ指令値αｘに対し、その電流方向に応じて、予め設定されたデッドタイム補償量βを加算又は減算する方法が開示されている。
【０００７】
具体的には、アーム５２に対応するx相（x相＝u,v,w以下同様）の電流方向が、アーム５２からモータ２１に向かう方向、即ち「正」（図８中右方向矢印）である場合にはＤＵＴＹ指令値αｘにデッドタイム補償量βを加算する。そして、その電流方向が、モータ２１からアーム５２に向かう方向、即ち「負」（図８中左方向矢印）である場合にはＤＵＴＹ指令値αｘからデッドタイム補償量βを減算する。これにより、図９に示す三角波δの周期Ｔ内にx相の出力電圧Ｖｘが電源電圧Ｖｂとなる時間（ｔ３+ｔ４又はｔ５+ｔ６）と、デッドタイムを設けない場合（理想電圧波形）のその時間（ｔ１+ｔ２）とを等しくすることができ、電圧指令値とＰＷＭインバータの出力電圧とを一致させてデッドタイムに起因する電流歪みを抑制することができるようになる。
【０００８】
【非特許文献１】杉本英彦、「ＡＣサーボモータシステムの理論と設計の実際」、第６版、総合電子出版社、２００２年８月、Ｐ５６-５８
【発明の概要】
【発明が解決しようとする課題】
【０００９】
上述した従来の電動パワーステアリング装置では、駆動されるモータの各相電流値を検出し、検出された各相電流値の正負に応じて所定のデッドタイム補償量を各相電圧指令値に加算又は減算していた。しかし、各相電流値がゼロ近傍の小さな値になると、各相電流値のはねにより各相電流値の正負の判断が困難になるため、デッドタイム補償量を誤った方向に補償してしまい振動や異音を発生するおそれがあるという課題があった。
【００１０】
上記課題について本願発明者は、その原因がデッドタイム補償量を各相電流値の流れる方向によって決定していることが原因であると考え、駆動されるモータの各相電流指令値の正負に応じて所定のデッドタイム補償量を決定し、このデッドタイム補償量を各相電圧指令値に加算又は減算することとした。その結果、上記ゼロ近傍での振動及び異音にはかなりの減衰が見られたが、振動及び異音が消えたわけではなく、更なる改善の余地が残されていた。
【００１１】
本発明の目的は、モータからの振動及び異音の発生を低減し、安定したデッドタイム補償を行い、且つ操舵フィーリングの良い電動パワーステアリング装置を提供することにある。
【課題を解決するための手段】
【００１２】
上記の課題を解決するため、請求項１に記載の発明は、ステアリング機構に操舵補助力を与えるモータと、操舵トルクを検出する操舵トルク検出手段と、車速を検出する車速検出手段と、前記操舵トルク検出手段により検出された操舵トルク及び前記車速検出手段により検出された車速に基づいて電流指令値を演算する電流指令値演算手段と、前記電流指令値演算手段より演算された電流指令値に基づき前記モータを駆動制御するモータ制御信号を生成するモータ制御信号生成手段と、前記モータ制御信号に基づき前記モータに対して駆動電力を出力するモータ駆動手段と、前記モータの各相に流れる各相電流値を検出する各相電流値検出手段と、を備え、前記モータ制御信号生成手段は、前記モータ制御信号の基礎となる各相ＤＵＴＹ指令値を生成する各相ＤＵＴＹ指令値生成手段と、  前記電流指令値演算手段からの出力に基づいて前記モータの各相の電流指令値を生成する各相電流指令値生成手段と、前記各相電流指令値が正値である場合には、所定のデッドタイム補償量を前記各相ＤＵＴＹ指令値に加算し、前記各相電流指令値が負値である場合には、正負の符号を変えた前記デッドタイム補償量を前記各相ＤＵＴＹ指令値に加算することで前記モータ駆動手段のデッドタイムを補償するデッドタイム補償演算手段と、を備え、前記デッドタイム補償演算手段は、前記各相電流指令値がゼロクロス近傍の所定範囲内にある場合には、前記デッドタイム補償量の正負の符号を変えないこと、を要旨とする。
【００１３】
本請求項の電動パワーステアリング装置は、各相電流指令値がゼロクロス近傍の所定範囲内にあって、ノイズによりゼロ値に近い正値と負値の間を頻繁にクロスする場合であっても、デッドタイム補償量の正負の符号が変わらない。そのため、本請求項の電動パワーステアリング装置は、デッドタイム補償量が正値と負値の間を頻繁にクロスする現象を効果的に抑制することができる。その結果、本請求項の電動パワーステアリング装置は、モータからの異音の発生を防止するとともに操舵フィーリングの向上を図ることができる。
【００１４】
上記請求項１に記載の電動パワーステアリング装置は、前記デッドタイム補償演算手段は、前記電流指令値が負値からゼロクロス近傍の所定範囲に属する値になった場合には、正値の前記デッドタイム補償量を前記各相ＤＵＴＹ指令値に加算し、前記電流指令値が正値からゼロクロス近傍の所定範囲に属する値になった場合には、負値の前記デッドタイム補償量を前記各相ＤＵＴＹ指令値に加算すること、を要旨とするもの（請求項２）、又は、前記デッドタイム補償演算手段は、前記電流指令値が負値からゼロクロス近傍の所定範囲に属する値になった場合には、負値の前記デッドタイム補償量を前記各相ＤＵＴＹ指令値に加算し、前記電流指令値が正値からゼロクロス近傍の所定範囲に属する値になった場合には、正値の前記デッドタイム補償量を前記各相ＤＵＴＹ指令値に加算すること、を要旨とするもの（請求項３）であってもよい。
【発明の効果】
【００１５】
本発明によれば、モータからの振動及び異音の発生を低減し、安定したデッドタイム補償を行い、且つ操舵フィーリングの良い電動パワーステアリング制御装置を提供することができる。
【図面の簡単な説明】
【００１６】
【図１】電動パワーステアリング装置（ＥＰＳ）の概略構成図。
【図２】ＥＰＳの制御ブロック図。
【図３】デッドタイム補償演算の処理手順を示すフローチャート図。
【図４】各相電流指令値のゼロクロス近傍をあらわす概念図。
【図５】各相電流指令値が負値から正値に推移する時のゼロクロス近傍をあらわす詳細図。
【図６】各相電流指令値が正値から負値に推移する時のゼロクロス近傍をあらわす詳細図。
【図７】モータ制御の処理手順を示すフローチャート図。
【図８】ＰＷＭインバータを構成するアームの概略図。
【図９】デッドタイム補償の作用を説明する波形図。
【発明を実施するための形態】
【００１７】
以下、コラム型の電動パワーステアリング装置（以下、ＥＰＳという）に具体化した本発明の一実施形態を図面に従って説明する。
図1に示すように、本実施形態のＥＰＳ１において、ステアリング２が固定されたステアリングシャフト３は、ラックアンドピニオン機構４を介してラック軸５と連結されている。ステアリング操作に伴うステアリングシャフト３の回転は、ラックアンドピニオン機構４によりラック軸５の往復直線運動に変換される。尚、本実施形態のステアリングシャフト３は、コラムシャフト８、インターミディエイトシャフト９、及びピニオンシャフト１０を連結してなる。そして、このステアリングシャフト３の回転に伴うラック軸５の往復直線運動が、同ラック軸５の両端に連結されたタイロッド１１を介して図示しないナックルに伝達されることにより、転舵輪１２の舵角が変更されるようになっている。
【００１８】
また、ＥＰＳ１は、モータ２１を駆動源として操舵系にステアリング操作を補助するためのアシスト力を付与する操舵力補助装置としてのＥＰＳアクチュエータ２４と、ＥＰＳアクチュエータ２４の作動を制御する制御手段としてのＥＣＵ２７とを備えている。
【００１９】
本実施形態のＥＰＳアクチュエータ２４は、コラム型のＥＰＳアクチュエータであり、その駆動源であるモータ２１は、減速機構２３を介してコラムシャフト８と駆動連結されている。そして、同モータ２１の回転を減速機構２３により減速してコラムシャフト８に伝達することによって、そのモータトルクをアシスト力として操舵系に付与する構成となっている。
【００２０】
一方、ＥＣＵ２７には、車速センサ２５（車速検出手段）、トルクセンサ２６（操舵トルク検出手段）、及びモータ回転角センサ２２が接続されており、ＥＣＵ２７は、これら各センサの出力信号に基づいて、車速Ｖ、操舵トルクτ、及びモータ回転角θを検出する。
【００２１】
尚、トルクセンサ２６はツインレゾルバ型のトルクセンサである。ＥＣＵ２７は、図示しないトーションバーの両端に設けられた一対のレゾルバの各出力信号に基づいて操舵トルクτを演算する。また、ＥＣＵ２７は、これら検出される各状態量に基づいて目標アシスト力を演算し、その駆動源であるモータ２１への駆動電力の供給を通じて、ＥＰＳアクチュエータ２４の作動、即ち操舵系に付与するアシスト力を制御する。
【００２２】
次に、本実施形態のＥＰＳ１における電気的構成について説明する。
図２は、本実施形態のＥＰＳ１の制御ブロック図である。同図に示すように、ＥＣＵ２７は、モータ制御信号を出力するＣＰＵ２９と、そのモータ制御信号に基づいて、ＥＰＳアクチュエータ２４の駆動源であるモータ２１に三相の駆動電力を供給するモータ駆動回路４０（モータ駆動手段）とを備えている。
【００２３】
モータ駆動回路４０は、直列に接続された一対のスイッチング素子を基本単位（アーム）として各相に対応する３つのアームを並列接続してなる公知のＰＷＭインバータ（図示せず）である。また、ＣＰＵ２９の出力するモータ制御信号は、モータ駆動回路４０を構成する各スイッチング素子のオンデューティ比を規定するものとなっている。モータ制御信号が各スイッチング素子のゲート端子に印加され、モータ制御信号に応答して、各スイッチング素子がオン／オフすることにより、バッテリ２８の電源電圧に基づく三相のモータ駆動電力を生成して、モータ２１へと出力する構成になっている。
【００２４】
ＥＣＵ２７には、モータ２１に通電される各相電流値Ｉｕ、Ｉｖ、Ｉｗを検出するための電流センサ３０ｕ、３０ｖ、３０ｗ（各相電流値検出手段）、及びモータ２１の回転角θを検出するためのモータ回転角センサ２２が接続されている。そして、ＣＰＵ２９は、これら各センサの出力信号に基づき検出されたモータ２１の各相電流値Ｉｕ、Ｉｖ、Ｉｗ及びモータ回転角θ、並びに上記操舵トルクτ及び車速Ｖに基づいて、モータ駆動回路４０にモータ制御信号を出力する。
【００２５】
以下に示す各制御ブロックは、ＣＰＵ２９が実行するコンピュータプログラムにより実現されるものである。ＣＰＵ２９は、所定のサンプリング周期で上記各状態量を検出し、所定周期毎に以下の各制御ブロックに示される各演算処理を実行することにより、モータ制御信号を生成する。
【００２６】
図２に示すように、ＣＰＵ２９は、モータ２１を制御する電流指令値を演算する電流指令値演算部３１（電流指令値演算手段）と、上記モータ駆動回路４０を制御するモータ制御信号を生成するモータ制御信号生成部４４（モータ制御信号生成手段）と、を備えている。
【００２７】
ＣＰＵ２９は、各相電流値Ｉｕ、Ｉｖ、Ｉｗをｄ／ｑ座標系に写像することにより（ｄ／ｑ変換）、同ｄ／ｑ座標系における電流フィードバック制御を実行する。そして、モータ駆動回路４０を構成するＦＥＴのオン/オフタイミングを決定するＤＵＴＹ指令値を生成し、そのＤＵＴＹ指令値に基づいてゲートオン/オフ信号の出力を実行する。
【００２８】
詳述すると、トルクセンサ２６により検出された操舵トルクτ、及び車速センサ２５により検出された車速Ｖは、電流指令値演算部３１に入力され、電流センサ３０ｕ、３０ｖ、３０ｗにより検出された各相電流値Ｉｕ、Ｉｖ、Ｉｗ、及び回転角センサ２２により検出された回転角θは、ｄ／ｑ変換演算部３２へと入力される。そして、電流指令値演算部３１は、その操舵トルクτ及び車速Ｖに基づいて、アシストトルクの制御目標であるｑ軸電流指令値Ｉｑ＊を演算し、ｄ／ｑ変換演算部３２は、入力された回転角θに基づいて、各相電流値Ｉｕ、Ｉｖ、Ｉｗをｄ／ｑ座標系のｄ軸電流値Ｉｄ及びｑ軸電流値Ｉｑに変換する。
【００２９】
電流指令値演算部３１により演算されたｑ軸電流指令値Ｉｑ＊、並びにｄ／ｑ変換演算部３２により演算されたｄ軸電流値Ｉｄ及びｑ軸電流値Ｉｑは、それぞれｄ／ｑ各軸に対応するＰＩ制御演算部３３、３４に入力される。尚、本実施形態では、ｄ軸に対応するＰＩ制御演算部３３には、ｄ軸電流指令値Ｉｄ＊としてゼロ（Ｉｄ＊＝０）が入力される。そして、ＰＩ制御演算部３３は、ｄ軸電流指令値Ｉｄ＊とｄ軸電流値Ｉｄとの偏差に基づくフィードバック制御（比例・積分制御）によりｄ軸電圧指令値Ｖｄ＊を演算し、同様に、ＰＩ制御演算部３４は、ｑ軸電流指令値Ｉｑ＊とｑ軸電流値Ｉｑとの偏差に基づくフィードバック制御（比例・積分制御）によりｑ軸電圧指令値Ｖｑ＊を演算する。
【００３０】
各ＰＩ制御演算部３３、３４により演算されたｄ軸電圧指令値Ｖｄ＊及びｑ軸電圧指令値Ｖｑ＊は、回転角θとともにｄ／ｑ逆変換演算部３７に入力され、同ｄ／ｑ逆変換演算部３７は、入力された回転角θに基づきｄ軸電圧指令値Ｖｄ＊及びｑ軸電圧指令値Ｖｑ＊を三相の相電圧指令値Ｖｕ＊、Ｖｖ＊、Ｖｗ＊に変換し各相ＤＵＴＹ指令値演算部３８に出力する。そして、各相ＤＵＴＹ指令値演算部３８は、この各相電圧指令値Ｖｕ＊、Ｖｖ＊、Ｖｗ＊に基づいて、各相のＤＵＴＹ指令値αu、αｖ、αｗを生成する。即ち、本実施形態では、ｄ／ｑ変換演算部３２、ＰＩ制御演算部３３、３４、ｄ／ｑ逆変換演算部３７、及び各相ＤＵＴＹ指令値演算部３８により各相ＤＵＴＹ指令値生成手段が構成されている。
【００３１】
また、ＣＰＵ２９は、デッドタイムに起因する電流歪みを補償すべく各相のＤＵＴＹ指令値αu、αｖ、αｗを補正するデッドタイム補償演算部３９を備えている。そして、ＣＰＵ２９は、ｑ軸電流指令値Ｉｑ＊から三相電流指令値Iｕ＊、Iｖ＊、Iｗ＊を生成するための各相電流指令値生成部３５（各相電流指令値生成手段）、デッドタイム補償量（β）マップ４３a、ゼロクロス近傍の所定範囲を決定する所定範囲値（ε）マップ４３b,及び状態フラグ（ＦＬＧ１、ＦＬＧ２：後述する）マップ４３cを備えている。そして、デッドタイム補償演算部３９により補正された補正後の各相ＤＵＴＹ指令値αu’、αｖ’、αｗ’が、ＰＷＭ出力部４１に入力されるようになっている。
【００３２】
デッドタイム補償演算部３９には、各相のＤＵＴＹ指令値αx（ｘ＝u,v,w）及びデッドタイム補償量β、ゼロクロス近傍の所定範囲を決定する所定範囲値ε、及び状態フラグＦＬＧ１、ＦＬＧ２とともに、その各相電流指令値Ｉx*（ｘ＝u,v,w）が入力されるようになっている。デッドタイム補償演算部３９は、各相電流指令値Ｉx*の正負に応じて、デッドタイム補償量βの正負を決定し、このデッドタイム補償量βを各相のＤＵＴＹ指令値αxに加算又は減算することでデッドタイムに起因する電流歪みを補償する。
【００３３】
ここで、各相電流指令値Ｉx*の生成に用いるモータ回転角センサ２２の出力信号にはノイズが乗り易く、各相電流指令値がゼロクロス近辺にあるときには、各相電流指令値Ｉx*が正値と負値の間を頻繁にクロスする現象が現れる。この現象が発生すると、各相電流指令値Ｉx*の正負の判断が困難になるとともに、デッドタイム補償量βの正負が頻繁に入れ替わってしまう。その結果、各相電流指令値Ｉx*のはねが大きくなり、そのはねによってモータ２１に振動及び異音が生じるおそれがある。
【００３４】
そこで、本実施形態のＥＰＳ１は、各相電流指令値Ｉx*がゼロクロス近傍の所定範囲内（｜Ｉx*｜≦｜±ε｜）にある場合には、デッドタイム補正量βの正負を変化させないようにし、上記現象により発生するモータ２１の振動及び異音を抑制する。
【００３５】
ここで、状態フラグＦＬＧ１、ＦＬＧ２について図４，図５，図６を用いて説明する。図４はＵ相電流指令値をあらわす（Ｖ相、Ｗ相も考え方は同一なので説明は省略する）。Ｕ相電流指令値はｑ軸電流指令値Iq*とモータ回転角θのsinθとの積で（１）式のようにあらわされる。
Iu*=Iq* sinθ  ・・・（１）
【００３６】
図５は、図４のグラフにおいて、Ｕ相電流指令値Iu*が負値の領域からゼロクロス近傍に設定される所定範囲の負側の所定範囲値（−ε）を通り、ゼロ点を通過後、所定範囲の正側の所定範囲値（ε）を通って、正値の領域に出ていく経過を拡大表示している。
【００３７】
ここで、状態フラグＦＬＧ１は、Ｕ相電流指令値Iu*が負値の領域からゼロクロス近傍の所定範囲内に入っていることを示すフラグであり、Ｕ相電流指令値Iu*が負値の領域からＡ点（Iu*＝−ε）に到達すると、状態フラグＦＬＧ１には「１」が書き込まれる（「１」は状態フラグＦＬＧ１がセットされたことを表している）。また、Ｕ相電流指令値Iu*がゼロ点を通過後、ゼロクロス近傍の所定範囲から正値の領域に出ていくＢ点（Iu*＝ε）で、状態フラグＦＬＧ１には「０」が書き込まれる（「０」は状態フラグＦＬＧ１がリセットされたことを表している）。
【００３８】
また、Ｕ相電流指令値Iu*が負値の領域からゼロクロス近傍の所定範囲内に入るＡ点で状態フラグＦＬＧ１に「１」が書き込まれるまでは、デッドタイム補償量は−β（Ｌ１）となる。そして、状態フラグＦＬＧ１に「１」が書き込まれた時点でデッドタイム補償量はβ（Ｈ１）となる。状態フラグＦＬＧ１に「１」が書き込まれた場合は、Ｕ相電流指令値Iu*がゼロクロス近傍の所定範囲外に出ない限り、状態フラグＦＬＧ１はリセットされない。
【００３９】
そのため、Ｕ相電流指令値Iu*がゼロクロス近傍の所定範囲に入った後は、ゼロクロス近傍でＵ相電流指令値Iu*がはねて正負を頻繁にクロスするような場合であっても、デッドタイム補償量はβ（Ｈ１）から変化しない。即ち、上記（１）式から導かれる各相電流指令値Iu*が、モータ回転角θを検出するモータ位置検出器に乗ったノイズにより、正値と負値の間を頻繁にクロスする場合でも、それに伴いデッドタイム補償量が切り替えられることはない。
【００４０】
図６は、図４のグラフにおいて、Ｕ相電流指令値Iu*が正値の領域からゼロクロス近傍に設定される所定範囲の正側の所定範囲値（ε）を通り、ゼロ点を通過後、所定範囲の負側の所定範囲値（−ε）を通って、負値の領域に出ていく経過を拡大表示している。
【００４１】
ここで、状態フラグＦＬＧ２は、Ｕ相電流指令値Iu*が正値の領域からゼロクロス近傍の所定範囲内に入っていることを示すフラグであり、Ｕ相電流指令値Iu*が正値の領域からＣ点（Iu*＝ε）に到達すると、状態フラグＦＬＧ２には「１」が書き込まれる（「１」は状態フラグＦＬＧ２がセットされたことを表している）。また、Ｕ相電流指令値Iu*がゼロ点を通過後、ゼロクロス近傍の所定範囲から負値の領域に出ていくＤ点（Iu*＝−ε）で、状態フラグＦＬＧ２には「０」が書き込まれる（「０」は状態フラグＦＬＧ２がリセットされたことを表している）。
【００４２】
また、Ｕ相電流指令値Iu*が正値の領域からゼロクロス近傍の所定範囲内に入るＣ点で状態フラグＦＬＧ２に「１」が書き込まれるまでは、デッドタイム補償量はβ（Ｈ２）となる。そして、状態フラグＦＬＧ２に「１」が書き込まれた時点でデッドタイム補償量は−β（Ｌ２）となる。状態フラグＦＬＧ２に「１」が書き込まれた場合は、Ｕ相電流指令値Iu*がゼロクロス近傍の所定範囲外に出ない限り状態フラグＦＬＧ２はリセットされない。
【００４３】
そのため、Ｕ相電流指令値Iu*がゼロクロス近傍の所定範囲に入った後は、ゼロクロス近傍でＵ相電流指令値Iu*がはねて正負を頻繁にクロスするような場合であっても、デッドタイム補償量は−β（Ｌ２）から変化しない。即ち、上記（１）式から導かれる各相電流指令値Iu*が、モータ回転角θを検出するモータ位置検出器に乗ったノイズにより、正値と負値の間を頻繁にクロスする場合でも、それに伴いデッドタイム補償量が切り替えられることはない。
【００４４】
次に、本実施形態のＣＰＵ２９によるモータ制御の処理手順について説明する。
本実施形態では、ＣＰＵ２９は、定時割り込みにより所定周期毎（例えば２００μ秒毎）に、図７のフローチャートに示すステップ７０１〜ステップ７０９の各処理を実行する。
【００４５】
即ち、ＣＰＵ２９は、先ず、上記各センサの出力信号に基づいて各状態量（相電流値Iｕ、Iｖ、Iｗ、回転角θ、操舵トルクτ、車速Ｖ）を検出し（ステップ７０１）、続いてブラシレスモータ２１が発生するアシストトルクの制御目標であるｑ軸電流指令値Ｉｑ＊、並びにｄ軸電流指令値Ｉｄ＊（Ｉｄ＊＝０）を演算する（ステップ７０２）。そして、ｄ/ｑ変換により、上記ステップ７０１において検出された相電流値Iｕ、Iｖ、Iｗをｄ軸電流値Ｉｄ及びｑ軸電流値Ｉｑに変換する（ステップ７０３）。
【００４６】
次に、ＣＰＵ２９は、ｄ軸電流指令値Ｉｄ＊とｄ軸電流値Ｉｄ、並びにｑ軸電流指令値Ｉｑ＊とｑ軸電流値Ｉｑとの偏差に基づくフィードバック制御演算（比例・積分制御）を実行することにより、ｄ軸電圧指令値Ｖｄ＊及びｑ軸電圧指令値Ｖｑ＊を演算する（ステップ７０４）。
【００４７】
続いて、ＣＰＵ２９は、ｄ/ｑ逆変換により、上記ステップ７０４において演算したｄ軸電圧指令値Ｖｄ＊及びｑ軸電圧指令値Ｖｑ＊を三相の各相電圧指令値Ｖｕ＊，Ｖｖ＊，Ｖｗ＊に変換する（ステップ７０５）。そして、この各相電圧指令値Ｖｕ＊，Ｖｖ＊，Ｖｗ＊に基づいて各相のＤＵＴＹ指令値αu、αｖ、αｗを生成する（ＤＵＴＹ指令値演算、ステップ７０６）。
【００４８】
次に、ＣＰＵ２９は、デッドタイム補償量マップ４３aから該当するデッドタイム補償量βを読み出し（ステップ７０７）、上記ステップ７０６で生成された各相ＤＵＴＹ指令値αu、αｖ、αｗを補正する（デッドタイム補償演算(図３参照)、ステップ７０８）。そして、このステップ７０８において演算された補正後の各相ＤＵＴＹ指令値αu’、αｖ’、αｗ’に基づいてゲートオン/オフ信号を生成し、そのゲートオン/オフ信号をモータ駆動回路４０へと出力する（ＰＷＭ出力、ステップ７０９）。
【００４９】
次に、上記ステップ７０８におけるデッドタイム補償演算の詳細を図３のフローチャートに従って説明する。
ＣＰＵ２９のデッドタイム補償演算部３９は、各相電流指令値生成部３５から各相電流指令値Ｉx*を取得し（ステップ３０１）、各相ＤＵＴＹ指令値演算部３８から各相ＤＵＴＹ指令値αxを取得する（ステップ３０２）。また、デッドタイム補償量マップ４３aからデッドタイム補償量βを取得し（ステップ３０３）、各相電流指令値のゼロクロス近傍の所定範囲値マップ４３bから各相電流指令値のゼロクロス近傍の所定範囲を決定する所定範囲値εを取得する（ステップ３０４）。そして、状態フラグマップ４３cからは各相電流指令値が負値からゼロクロス近傍の所定範囲に属する値になったことを記憶する状態フラグＦＬＧ１及び各相電流指令値が正値からゼロクロス近傍の所定範囲に属する値になったことを記憶する状態フラグＦＬＧ２を取得する（ステップ３０５）。
【００５０】
そして、デッドタイム補償演算部３９は、状態フラグマップ４３cから取得した状態フラグＦＬＧ１が「１」か否かを判定する（ステップ３０６）。次に、このステップ３０６において、状態フラグＦＬＧ１が「１」の場合（ステップ３０６：ＹＥＳ）には、デッドタイム補償演算部３９は、各相の相電流指令値Ｉx*がゼロクロス近傍の所定範囲に属さないか否か、即ち、各相の相電流指令値Ｉx*の絶対値がステップ３０４で取得されたゼロクロス近傍の所定範囲値±εの絶対値以上か否かを判定する（ステップ３０７）。
【００５１】
各相の相電流指令値Ｉx*の絶対値がゼロクロス近傍の所定範囲値±εの絶対値より小さい場合（｜Ｉx*｜＜｜±ε｜、ステップ３０７：ＮＯ）、即ち、相電流指令値Ｉx*がゼロクロス近傍の所定範囲内に属する場合には、各相ＤＵＴＹ指令値演算部３８から取得した各相ＤＵＴＹ指令値αxに、デッドタイム補償量マップ４３aから取得したデッドタイム補償量βを加算して（ステップ３１３）、デッドタイム補償後の各相ＤＵＴＹ指令値αx’をＰＷＭ出力部４１へ出力する（ステップ３２１）。
【００５２】
また、上記ステップ３０７において、各相の相電流指令値Ｉx*の絶対値がゼロクロス近傍の所定範囲値±εの絶対値以上の場合（｜Ｉx*｜≧｜±ε｜、ステップ３０７：ＹＥＳ）、即ち、各相の相電流指令値Ｉx*がゼロクロス近傍の所定範囲内に属さない場合には、状態フラグＦＬＧ１に「０」を書き込み（状態フラグＦＬＧ１リセット、ステップ３０８）、ステップ３１０に移行する。そして、デッドタイム補償演算部３９は、ステップ３１０では、各相電流指令値生成部３５から取得した各相電流指令値Ｉx*がゼロ以上か否かを判定する（ステップ３１０）。
【００５３】
各相電流指令値Ｉx*がゼロより小さい場合（Ｉx*＜０、ステップ３１０：ＮＯ）、即ち、各相電流指令値Ｉx*が負値の場合には、デッドタイム補償演算部３９は、次に、各相電流指令値Ｉx*が負の所定範囲値−ε以下か否かを判定する（ステップ３１１）。そして、各相電流指令値Ｉx*が負の所定範囲値−εより大きい場合（Ｉx*＞−ε、ステップ３１１：ＮＯ）、即ち、各相の相電流指令値Ｉx*がゼロクロス近傍の所定範囲内に属する場合には、状態フラグＦＬＧ１に「１」を書き込み（状態フラグＦＬＧ１セット、ステップ３１２）、各相ＤＵＴＹ指令値αxに、デッドタイム補償量βを加算して（ステップ３１３）、デッドタイム補償後の各相ＤＵＴＹ指令値αx’をＰＷＭ出力部４１へ出力する（ステップ３２１）。
【００５４】
一方、上記ステップ３１１において、各相電流指令値Ｉx*が負の所定範囲値−ε以下の場合（Ｉx*≦−ε、ステップ３１１：ＹＥＳ）、即ち、各相の相電流指令値Ｉx*がゼロクロス近傍の所定範囲に属さない場合には、各相ＤＵＴＹ指令値αxから、デッドタイム補償量βを減算して（ステップ３１４）、デッドタイム補償後の各相ＤＵＴＹ指令値αx’をＰＷＭ出力部４１へ出力する（ステップ３２１）。
【００５５】
また、上記ステップ３１０において、各相電流指令値Ｉx*がゼロ以上の場合（Ｉx*≧０、ステップ３１０：ＹＥＳ）即ち、各相電流指令値Ｉx*が正値の場合には、各相電流指令値Ｉx*が正の所定範囲値ε以下か否かを判定する（ステップ３１７）。各相電流指令値Ｉx*が正の所定範囲値εより大きい場合（Ｉx*＞ε、ステップ３１７：ＮＯ）、即ち、各相の相電流指令値Ｉx*がゼロクロス近傍の所定範囲に属さない場合には、各相ＤＵＴＹ指令値αxに、デッドタイム補償量βを加算して（ステップ３１９）、デッドタイム補償後の各相ＤＵＴＹ指令値αx’をＰＷＭ出力部４１へ出力する（ステップ３２１）。
【００５６】
一方、各相電流指令値Ｉx*が正の所定範囲値ε以下の場合（Ｉx*≦ε、ステップ３１７：ＹＥＳ）、即ち、各相の相電流指令値Ｉx*がゼロクロス近傍の所定範囲内に属する場合には、状態フラグＦＬＧ２に「１」を書き込み（状態フラグＦＬＧ２セット、ステップ３１８）、各相ＤＵＴＹ指令値αxから、デッドタイム補償量βを減算して（ステップ３２０）、デッドタイム補償後の各相ＤＵＴＹ指令値αx’をＰＷＭ出力部４１へ出力する（ステップ３２１）。
【００５７】
また、上記ステップ３０６において、状態フラグＦＬＧ１が「１」でない場合（ステップ３０６：ＮＯ）には、デッドタイム補償演算部３９は、状態フラグマップ４３cから取得した状態フラグＦＬＧ２が「１」か否かを判定する（ステップ３０９）。状態フラグＦＬＧ２が「１」でない場合（ステップ３０６：ＮＯ）には、ステップ３１０に移行し、上述したステップ３１０以下と同一の処理を実行する。
【００５８】
一方、上記ステップ３０９において、状態フラグＦＬＧ２が「１」の場合（ステップ３０９：ＹＥＳ）には、各相の相電流指令値Ｉx*がゼロクロス近傍の所定範囲に属さないか否か、即ち、各相の相電流指令値Ｉx*の絶対値がゼロクロス近傍の所定範囲値±εの絶対値以上か否かを判定する（ステップ３１５）。
【００５９】
そして、各相の相電流指令値Ｉx*の絶対値がゼロクロス近傍の所定範囲値±εの絶対値以上の場合（｜Ｉx*｜≧｜±ε｜、ステップ３１５：ＹＥＳ）、即ち、相電流指令値Ｉx*がゼロクロス近傍の所定範囲に属さない場合には、状態フラグＦＬＧ２に「０」を書き込み（状態フラグＦＬＧ２リセット、ステップ３１６）、ステップ３１０に移行し、上述したステップ３１０以下と同一の処理を実行する。
【００６０】
また、上記ステップ３１５において、各相の相電流指令値Ｉx*の絶対値がゼロクロス近傍の所定範囲値±εの絶対値より小さい場合（｜Ｉx*｜＜｜±ε｜、ステップ３１５：ＮＯ）、即ち、相電流指令値Ｉx*がゼロクロス近傍の所定範囲内に属する場合には、各相ＤＵＴＹ指令値αxから、デッドタイム補償量βを減算して（ステップ３２０）、デッドタイム補償後の各相ＤＵＴＹ指令値αx’をＰＷＭ出力部４１へ出力する（ステップ３２１）。
【００６１】
このように、デッドタイム補償演算部３９は、Ｕ，Ｖ，Ｗ相の各相毎に上記ステップ３０１〜ステップ３２１の処理を実行することにより、各相のＤＵＴＹ指令値αu、αｖ、αｗを補正し、その補正後の各相ＤＵＴＹ指令値αu’、αｖ’、αｗ’をＰＷＭ出力部４１に出力する。そして、ＰＷＭ出力部４１は、デッドタイム補償演算部３９により補正された補正後の各相ＤＵＴＹ指令値αu’、αｖ’、αｗ’と搬送波である三角波δとの比較に基づいてゲートオン/オフ信号を生成し（図９参照）、そのゲートオン/オフ信号をモータ駆動回路４０へと出力する。
【００６２】
次に、上記のように構成された本実施形態のＥＰＳ１の作用及び効果について説明する。
上述のように、上記（１）式から導かれる各相電流指令値Iu*がゼロクロスに近い値になった場合には、モータ回転角θを検出するモータ位置検出器にノイズが乗るため、各相電流指令値Iu*は、正値と負値の間を頻繁にクロスする現象が発生する。そのため、従来のＥＰＳのように各相電流指令値の正負に応じてデットタイム補償量が決定されると、本来、各相ＤＵＴＹ指令値αｘにデッドタイム補償量βを加算すべきところを減算してしまったり、或いは減算すべきところを加算してしまい、却って電流歪を助長するおそれや、正しく補償しても加算、減算が短時間に繰り返し行なわれると振動及び異音が発生するおそれがある。
【００６３】
この点を踏まえ、本実施形態のＥＰＳ１は、各相電流指令値Iu*が負値からゼロクロス近傍の所定範囲に属する値になった場合には、正値の前記デッドタイム補償量を各相ＤＵＴＹ指令値に加算し、各相電流指令値Iu*が正値からゼロクロス近傍の所定範囲に属する値になった場合には、負値のデッドタイム補償量を各相ＤＵＴＹ指令値に加算するようにした。これにより、モータ位置検出器に乗ったノイズにより、各相電流指令値Iu*がゼロ値に近い正値と負値の間を頻繁にクロスする場合でも、デッドタイム補償量が頻繁に切り替えられない。その結果、モータからの振動及び異音の発生を防止するとともに操舵フィーリングの向上を図ることができる。
【００６４】
なお、本実施形態は以下のように変更してもよい。
（１）本実施形態では、各相電流指令値Iu*の正値/負値にかかわらず同じ大きさのデッドタイム補償量βが用いられたが、各相電流指令値Iu*の正値/負値に応じて大きさの異なるデッドタイム補償量を使い分けてもよい。
【００６５】
（２）本実施形態では、ゼロクロス近傍の所定範囲を決定する所定範囲値εを正領域/負領域にかかわらず同じ大きさとしたが、勿論、正領域/負領域によって異なる値としてもよい。
【００６６】
（３）本実施形態では、ゼロクロス近傍の所定範囲を決定する所定範囲値εを各相電流指令値の大きさにかかわらず同じ大きさとしたが、各相電流指令値演算手段により演算された各相電流指令値が増加するほど線形又は非線形に増加するように所定範囲値εを決定してもよい。
【００６７】
（４）本実施形態では、Ｕ，Ｖ，Ｗ相の各相において同一のデッドタイム補償量βが用いられたが、Ｕ，Ｖ，Ｗ相の各相に応じた各相デッドタイム補償量βxを使い分けてもよい。
【００６８】
（５）本実施形態では、ゼロクロス近傍の所定範囲内に入った各相電流指令値Ix*が、再び所定範囲外に出た場合には、直ちに状態フラグＦＬＧ１（又は状態フラグＦＬＧ２）がリセットされる構成であった。しかし、本発明はこの様な構成に限定されるわけではない。例えば、負値の領域からゼロクロス近傍の所定範囲内に入った各相電流指令値Ix*が、再び負側の所定範囲外に出た場合には、各相電流指令値Ix*が複数周期（例えば２周期）以上連続して所定範囲外にあることが確認された場合にのみ、状態フラグＦＬＧ１をリセットする構成であってもよい。また、状態フラグＦＬＧ２についても、同様に、正値の領域からゼロクロス近傍の所定範囲内に入った各相電流指令値Ix*が、再び正側の所定範囲外に出た場合には、各相電流指令値Ix*が複数周期（例えば２周期）以上連続して所定範囲外にあることが確認された場合にのみ、状態フラグＦＬＧ２をリセットする構成としてもよい。この様な構成を備えることで、各相電流指令値Ix*が所定範囲の上下限値（±ε）近傍ではねて所定範囲の内外を行き来する場合であっても、デッドタイム補償値βがそれに伴い頻繁に切り替えられるのを効果的に防止することが可能である。
【００６９】
（６）本実施形態では、本発明をコラムアシストＥＰＳに具体化したが、本発明をラックアシストＥＰＳやピニオンアシストＥＰＳに適用してもよい。
【符号の説明】
【００７０】
１：電動パワーステアリング装置（ＥＰＳ）、２：ステアリング、
３：ステアリングシャフト、４：ラックアンドピニオン機構、５：ラック軸、
８：コラムシャフト、９：インターミディエイトシャフト、１０：ピニオンシャフト、１１：タイロッド、１２：転舵輪、２１：モータ、２２：モータ回転角センサ、
２３：減速機構、２４：ＥＰＳアクチュエータ、２５：車速センサ、
２６：トルクセンサ、２７：ＥＣＵ、２８：バッテリ、
２９：ＣＰＵ、３０ｕ、３０ｖ、３０ｗ：電流センサ、３１：電流指令値演算部、
３２：ｄ／ｑ変換演算部、３３，３４：ＰＩ制御演算部、
３５：各相電流指令値生成部、３７：ｄ／ｑ逆変換演算部、
３８：各相ＤＵＴＹ指令値演算部、３９：デッドタイム補償演算部、
４０：モータ駆動回路、４１：ＰＷＭ出力部、
４３a：デッドタイム補償量（β）マップ、
４３b：ゼロクロス近傍の所定範囲を決定する所定範囲値（ε）マップ、
４３c：状態フラグ（ＦＬＧ１、ＦＬＧ２）マップ、４４：モータ制御信号生成部、
Ｖ：車速、τ：操舵トルク、θ：モータ回転角、Ｉｕ、Ｉｖ、Ｉｗ：各相電流値、
Ｉｑ＊：ｑ軸電流指令値、Ｉｄ＊：ｄ軸電流指令値、Ｉｄ：ｄ軸電流値、
Ｉｑ：ｑ軸電流値、Ｖｄ＊：ｄ軸電圧指令値、Ｖｑ＊：ｑ軸電圧指令値、
Ｖｕ＊、Ｖｖ＊、Ｖｗ＊：各相電圧指令値、
αu、αｖ、αｗ：各相ＤＵＴＹ指令値、β：デッドタイム補償量、
αu’、αｖ’、αｗ’： デッドタイム補償後の各相ＤＵＴＹ指令値、
Ｉｕ＊、Ｉｖ＊、Ｉｗ＊：各相電流指令値、
ε：各相電流指令値のゼロクロス近傍の所定範囲を決定する所定範囲値、
δ：三角波（搬送波）、  
【図１】
2012011965.tif 000003
【図２】
2012011965.tif 000004
【図３】
2012011965.tif 000005
【図４】
2012011965.tif 000006
【図５】
2012011965.tif 000007
【図６】
2012011965.tif 000008
【図７】
2012011965.tif 000009
【図８】
2012011965.tif 000010
【図９】
2012011965.tif 000011