(57)【要約】【課題】飽和時においてもモータにより大きなトルクを発生させることが可能なモータ制御装置およびモータ制御方法を提供する。【解決手段】ｄｑ直交座標に変換するｄｑ変換によってｄ相およびｑ相の電流値ｉｄ，ｉｑを求めｄｑ各相に電流ループ処理を行ってモータの駆動電流を制御するモータ制御装置２０であって、ｄｑ各相の電圧指令値Ｖｄ，Ｖｑの合成ベクトルのｑ軸に対するベクトル角度θｖを制御するベクトル角度制御手段２５を備えているので、飽和時においてもモータにより大きなトルクを発生させることが可能である。【選択図】図４
2008067582.tif 000002
【特許請求の範囲】
【請求項１】
ｄｑ直交座標に変換するｄｑ変換によってｄ相およびｑ相の電流値を求めｄｑ各相毎に電流ループ処理を行ってモータの駆動電流を制御するモータ制御装置において、ｄｑ各相の電圧指令値の合成ベクトルのベクトル角度を制御するベクトル角度制御手段を備えたことを特徴とするモータ制御装置。
【請求項２】
ｄｑ各相の電流制御偏差に基づく比例積分制御とベクトル角度制御のいずれか選択する選択手段を備え、選択手段によって選択された制御を行うことを特徴とする請求項１に記載のモータ制御装置。
【請求項３】
選択手段は、ｄｑ各相の電圧指令値の合成ベクトルの長さが閾値より大きい場合にベクトル角度制御に切換えることを特徴とする請求項２に記載のモータ制御装置。
【請求項４】
ベクトル角度制御手段は、ベクトル角度目標値と合成ベクトル長さからｄｑ各相の電圧指令値を求めることを特徴とする請求項１から３のいずれかに記載のモータ制御装置。
【請求項５】
ベクトル角度制御手段は、ｑ相の電流制御偏差と、ベクトル角度の角度制御偏差から、合成ベクトルの回転方向を決定し、回転方向からベクトル角度目標値を設定することを特徴とする請求項１から４のいずれかに記載のモータ制御装置。
【請求項６】
角度制御偏差は、ｑ相電流の絶対値を最大にするベクトル角度最終値とベクトル角度の偏差に基づいて決定されることを特徴とする請求項１から５のいずれかに記載のモータ制御装置。
【請求項７】
ベクトル角度制御手段は、予め電気角速度をパラメータとして作成したベクトル角度のマップを参照してベクトル角度最終値を求めることを特徴とする請求項６に記載のモータ制御装置。
【請求項８】
ベクトル角度制御手段は、ｑ相電流ループにおける積分値を補正して合成ベクトルのベクトル角度を制御することを特徴とする請求項１から３  のいずれかに記載のモータ制御装置。
【請求項９】
ベクトル角度制御手段は、ｑ相電流ループにおける積分値をフィードバックして当該積分値を補正することを特徴とする請求項８に記載のモータ制御装置。
【請求項１０】
ベクトル角度制御手段は、電気角速度からｑ相積分値目標値を求め、ｑ相の積分値をｑ相積分値目標値になるように補正することを特徴とする請求項８または９に記載のモータ制御装置。
【請求項１１】
ベクトル角度制御手段は、電気角速度からｑ相積分値目標値を求め、ｑ相積分値目標値とｑ相の積分値の積分値偏差に補正ゲインを乗じた値をｑ相電流ループにおける積分器の入力へ帰還してｑ相の積分値を補正することを特徴とする請求項８から１０のいずれかに記載のモータ制御装置。
【請求項１２】
ベクトル角度制御手段は、ロータが正回転しモータがロータの正回転を助勢するトルクを発生している場合にはｄ相電流目標値を負の値に設定することを特徴とする請求項８から１１のいずれかに記載のモータ制御装置。
【請求項１３】
ｑ相電流目標値を電気角速度に依存したリミット値に制限するｑ相電流制限手段を備えたことを特徴とする請求項１から１２のいずれかに記載のモータ制御装置。
【請求項１４】
リミット値は、ｑ相電流の絶対値が取りうる最大値に設定されることを特徴とする請求項１３に記載のモータ制御装置。
【請求項１５】
ｄ相電流目標値の絶対値を、鎖交磁束最大数をｄ相インダクタンスで除した値に制限するｄ相電流制限手段を備えたことを特徴とする請求項８から１４のいずれかに記載のモータ制御装置。
【請求項１６】
閾値は、電源電圧に１／√２を乗じた値に設定されることを特徴とする請求項３から１４のいずれかに記載のモータ制御装置。
【請求項１７】
閾値は、電源電圧に√６／４を乗じた値に設定されることを特徴とする請求項３から１４のいずれかに記載のモータ制御装置。
【請求項１８】
閾値は、ＰＷＭ開度が飽和しない値に設定されることを特徴とする請求項３から１７のいずれかに記載のモータ制御装置。 
【請求項１９】
ベクトル角度制御手段による制御から比例積分制御手段による制御へ切換後、比例積分制御手段が初めて出力するｄｑ各相の電圧指令値が、ベクトル角度制御手段が切換前に出力したｄｑ各相の電圧指令値と同じ値となるようにしたことを特徴とする請求項１から１８のいずれかに記載のモータ制御装置。
【請求項２０】
比例積分制御手段における積分ループのｄｑ相の積分値は、ベクトル角度制御手段による制御から比例積分制御手段による制御に切換後に比例積分制御手段が初めて出力するｄｑ各相の電圧指令値が、ベクトル角度制御手段が切換前に出力したｄｑ各相の電圧指令値と同じ値となるように設定されることを特徴とする請求項１から１８のいずれかに記載のモータ制御装置。
【請求項２１】
回転部材と回転部材の回転運動によって直線運動を呈する直動部材とを備えた運動変換機構と、回転部材に連結されて回転部材にトルクを与えるモータと、請求項１から２０のいずれかに記載のモータ制御装置を備えたアクチュエータ。
【請求項２２】
ｄｑ直交座標に変換するｄｑ変換によってｄ相およびｑ相の電流値を求めｄｑ各相毎に電流ループ処理を行ってモータの駆動電流を制御するモータ制御方法において、ｄｑ各相の電圧指令値の合成ベクトルのベクトル角度を制御するベクトル角度制御ステップを含むことを特徴とするモータ制御方法。
【請求項２３】
ｄｑ各相の電流制御偏差に基づく比例積分制御とベクトル角度制御のいずれかを選択する選択ステップを含み、選択された制御を行うことを特徴とする請求項２２に記載のモータ制御方法。
【請求項２４】
選択ステップではｄｑ各相の電圧指令値合成ベクトルの長さが閾値以上となる場合にベクトル角度制御ステップを選択することを特徴とする請求項２３に記載のモータ制御方法。
【請求項２５】
ベクトル角度制御ステップでは、ベクトル角度目標値と合成ベクトル長さからｄｑ各相の電圧指令値を求めることを特徴とする請求項２２から２４のいずれかに記載のモータ制御方法。
【請求項２６】
ベクトル角度制御ステップでは、ｑ相の電流制御偏差と、ベクトル角度の角度制御偏差から、合成ベクトルの回転方向を決定し、回転方向からベクトル角度目標値を設定することを特徴とする請求項２２から２５のいずれかに記載のモータ制御方法。
【請求項２７】
角度制御偏差は、ｑ相電流の絶対値を最大にするベクトル角度最終値とベクトル角度の偏差に基づいて決定されることを特徴とする請求項２２から２６のいずれかに記載のモータ制御方法。
【請求項２８】
ベクトル角度制御ステップでは、予め電気角速度をパラメータとして作成したベクトル角度のマップを参照してベクトル角度最終値を求めることを特徴とする請求項２７に記載のモータ制御方法。
【請求項２９】
ベクトル角度制御ステップでは、ｑ相電流ループにおける積分値を補正して合成ベクトルのベクトル角度を制御することを特徴とする請求項２２から２４のいずれかに記載のモータ制御方法。
【請求項３０】
ベクトル角度制御ステップでは、ｑ相電流ループにおける積分値をフィードバックして当該積分値を補正することを特徴とする請求項２９に記載のモータ制御方法。
【請求項３１】
ベクトル角度制御ステップでは、電気角速度からｑ相積分値目標値を求め、ｑ相の積分値をｑ相積分値目標値になるように補正することを特徴とする請求項２９または３０に記載のモータ制御装置。
【請求項３２】
ベクトル角度制御ステップでは、電気角速度からｑ相積分値目標値を求め、ｑ相積分値目標値とｑ相の積分値の積分値偏差に補正ゲインを乗じた値をｑ相電流ループにおける積分器の入力へ帰還してｑ相の積分値を補正することを特徴とする請求項２９から３１のいずれかに記載のモータ制御方法。
【請求項３３】
ベクトル角度制御ステップでは、ｄ相電流目標値を負の値に設定することを特徴とする請求項２９から３２のいずれかに記載のモータ制御方法。
【請求項３４】
ｑ相電流目標値を電気角速度に依存したリミット値に制限するｑ相電流制限ステップを含むことを特徴とする請求項２２から３３のいずれかに記載のモータ制御方法。
【請求項３５】
リミット値は、ｑ相電流の絶対値が取りうる最大値に設定されることを特徴とする請求項３４に記載のモータ制御方法。
【請求項３６】
ｄ相電流目標値の絶対値を、鎖交磁束最大数をｄ相インダクタンスで除した値に制限するｄ相電流制限ステップを含むことを特徴とする請求項２９から３５のいずれかに記載のモータ制御方法。
【請求項３７】
閾値は、電源電圧に１／√２を乗じた値に設定されることを特徴とする請求項２４から３６のいずれかに記載のモータ制御方法。
【請求項３８】
閾値は、電源電圧に√６／４を乗じた値に設定されることを特徴とする請求項２４から３６のいずれかに記載のモータ制御方法。
【請求項３９】
閾値は、ＰＷＭ開度が飽和しない値に設定されることを特徴とする請求項２４から３８のいずれかに記載のモータ制御方法。 
【請求項４０】
ベクトル角度制御から比例積分制御へ切換後、比例積分制御ステップで出力するｄｑ各相の電圧指令値を、ベクトル角度制御ステップで切換前に出力したｄｑ各相の電圧指令値と同じ値となるように調節する調節ステップを含むことを特徴とする請求項２２から３９のいずれかに記載のモータ制御方法。
【請求項４１】
調節ステップでは、ベクトル角度制御から比例積分制御へ切換後に比例積分制御ステップが初めて出力するｄｑ各相の電圧指令値とベクトル角度制御ステップが切換前に出力したｄｑ各相の電圧指令値とが同じ値となるように、比例積分制御ステップにおける積分ループのｄｑ相の積分値を設定することを特徴とする請求項４０に記載のモータ制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、モータ制御装置、モータ制御方法およびアクチュエータに関する。
【背景技術】
【０００２】
この種、モータの制御装置としては、三相の巻線に流れる電流のうち任意の二相の電流値とロータの電気角から磁界の作る磁束方向のｄ軸とｄ軸に直交するｑ軸のｄｑ座標に変換してｄ相とｑ相の電流値を演算し、ｄ相電流目標値を０として、ｑ相電流目標値を演算し、各相毎に電流ループ処理を行って、ｄ相電圧指令値およびｑ相電圧指令を演算し、さらに、ｄ相電圧指令値およびｑ相電圧指令値を三相の電圧指令値に変換し、この三相の電圧指令値に基づいてモータをＰＷＭ（Ｐｕｌｓｅ  Ｗｉｄｔｈ  Ｍｏｄｕｌａｔｉｏｎ）制御するものが知られている（たとえば、特許文献１参照）。
【０００３】
そして、上記電流ループにおける処理は、ｄ相とｑ相の電流値とｄ相電流目標値とｑ相電流目標値との偏差を取り、この偏差に基づいて比例積分制御則に基づいてｄ相電圧指令値およびｑ相電圧指令値を演算するようにしており、ｄ相電圧指令値とｑ相電圧指令値の合成ベクトルが飽和電圧に達する場合、すなわち、ｄ相電圧指令値とｑ相電圧指令値の合成ベクトルが飽和する場合には、各巻線の端子間へは電源電圧以上の電圧を印加することができないため、電流ループにおける積分値の絶対値が増大するようになって、モータを正常に制御できない状態となる。
【０００４】
そこで、上記従来のモータ制御装置にあっては、ｄ相電圧指令値とｑ相電圧指令値の合成ベクトルが飽和電圧に達すると、電流ループにおける積分値の飽和処理を行うようにして、モータに安定したトルクを発生させるようにしている。
【特許文献１】特開平６−１５３５６９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来のモータ制御装置では、ｄ相電圧指令値とｑ相電圧指令値の合成ベクトルが飽和電圧に達すると、強制的にｄ相電圧とｑ相電圧の合成ベクトルのｑ軸に対する角度を一定に維持するようにしているので、飽和時においてモータにより大きなトルクを発生させることができない。
【０００６】
すなわち、モータを正回転させるときにｑ相が正の値をとるものとすると、飽和突入時に、ｑ相電流が最大値をとる場合にはよいが、ｑ相電流が最大値を取らない状態では、ｄ相電圧とｑ相電圧の合成ベクトルのｑ軸に対する角度を一定に維持するので、ｑ相電流を最大値に制御することができない。
【０００７】
また、飽和時におけるｑ相電流は、ｄ相電圧指令値とｑ相電圧指令値の合成ベクトルのｑ軸に対する角度に依存して変化し、さらに、電気角速度に依存して変化する。
【０００８】
そこで、本発明は、上記不具合を改善するために創案されたものであって、その目的とするところは、飽和時においてもモータにより大きなトルクを発生させることが可能なモータ制御装置およびモータ制御方法を提供することであり、さらに、飽和時においてもモータにより大きなトルクを発生させてより大きな推力を出力することが可能なアクチュエータを提供することである。
【課題を解決するための手段】
【０００９】
上記した目的を達成するため、本発明の課題解決手段におけるモータ制御装置は、ｄｑ直交座標に変換するｄｑ変換によってｄ相およびｑ相の電流値を求めｄｑ各相毎に電流ループ処理を行ってモータの駆動電流を制御するモータ制御装置において、ｄｑ各相の電圧指令値の合成ベクトルのベクトル角度を制御するベクトル角度制御手段を備える。
【００１０】
また、本発明の課題解決手段におけるアクチュエータは、回転部材と回転部材の回転運動によって直線運動を呈する直動部材とを備えた運動変換機構と、回転部材に連結されて回転部材にトルクを与えるモータと、上記モータ制御装置を備える。
【００１１】
さらに、本発明の課題解決手段におけるモータ制御方法は、ｄｑ直交座標に変換するｄｑ変換によってｄ相およびｑ相の電流値を求めｄｑ各相毎に電流ループ処理を行ってモータの駆動電流を制御するモータ制御方法において、ｄｑ各相の電圧指令値の合成ベクトルのベクトル角度を制御するベクトル角度制御ステップを含む。
【発明の効果】
【００１２】
本発明のモータ制御装置によれば、ｄｑ各相の電圧指令値の合成ベクトルのｑ軸に対する角度を制御することが可能となり、ｄｑ各相の電圧指令値の合成ベクトルが飽和する場合にあっても、モータが発生するトルクを適切に制御することが可能であるとともに、また、従来のモータ制御装置に比較してモータにより一層大きなトルクを発生させることが可能である。
【００１３】
また、モータにより一層大きなトルクを発生させることが可能であるので、トルク制御範囲が大きくなるとともに、種々の機器に搭載されるモータを小型化することができる。
【発明を実施するための最良の形態】
【００１４】
以下、図に示した実施の形態に基づき、本発明を説明する。図１は、一実施の形態におけるモータ制御装置を適用したアクチュエータの概念図である。図２は、電気角速度に対するq軸電流を最大とするｄｑ各相の電圧指令値の合成ベクトルのベクトル角度の変化を示す図である。図３（Ａ）は、ｄ相電流をゼロにし、飽和時に積分中止するようにモータを制御した場合のアクチュエータのストローク変位に対するｄｑ各相の電圧指令値の合成ベクトルのベクトル角度の変化を示すグラフである。図３（Ｂ）は、弱め界磁制御を行いつつ飽和時に積分中止してモータを制御した場合のアクチュエータのストローク変位に対するｄｑ各相の電圧指令値の合成ベクトルのベクトル角度の変化を示すグラフである。図４は、一実施の形態におけるモータ制御装置のシステム図である。図５は、ＰＷＭ回路を示す図である。図６（Ａ）は、モータに逆回転方向のトルクを発生させる場合に使用される電気角速度をパラメータとして作成したベクトル角度最終値のマップを示す図である。図６（Ｂ）は、モータに正回転方向のトルクを発生させる場合に使用される電気角速度をパラメータとして作成したベクトル角度最終値のマップを示す図である。図７は、ｄｑ各相の電圧指令値の合成ベクトルのｑ軸に対する回転方向を決定するための表である。図８は、ｑ相電流目標値がプラスの場合の合成ベクトルの回転方向を説明する図である。図９は、ｑ相電流目標値がプラスの場合のｄｑ直交座標における合成ベクトルの回転方向を説明する図である。図１０は、ｑ相電流目標値がマイナスの場合の合成ベクトルの回転方向を説明する図である。図１１は、ｑ相電流目標値がマイナスの場合のｄｑ直交座標における合成ベクトルの回転方向を説明する図である。図１２は、電気角速度をパラメータとして作成したｑ相電流目標値を制限するリミット値のマップを示す図である。図１３は、一実施の形態のモータ制御装置における処理手順を示すフローチャートである。図１４は、他の実施の形態におけるモータ制御装置のシステム図である。図１５は、選択手段におけるスイッチコントローラのシステム図である。図１６は、他の実施の形態のモータ制御装置における処理手順を示すフローチャートである。
【００１５】
一実施の形態におけるモータ制御装置が適用されるアクチュエータは、図１に示すように、回転部材たるピニオンギア１と直動部材たるラック軸２とを有してピニオンギア１の回転運動をラック軸２の直線運動に変換する運動変換機構Ｈと、ピニオンギア１に連結されるロータＲを有するモータＭとを備えて構成されている。
【００１６】
詳しくは、ピニオンギア１は、ラック軸２のラック歯２ａに歯合されており、モータＭを駆動してピニオンギア１を回転駆動すると、ラック軸２を直線運動させることが可能とされている。
【００１７】
なお、運動変換機構Ｈは、上記したところでは、ピニオンギアとラック軸２とで構成されたラックピニオン機構とされているが、これ以外にも、回転部材と摩擦車とし直動部材を軸としてもよいし、ボール螺子ナットおよび螺子軸の一方を回転部材として他方を直動部材とする送り螺子機構とされてもよい。また、ピニオンギア１とロータＲとの間に歯車機構等で構成される減速機を介装し、ロータＲの回転運動を減速して上記ピニオンギア１に伝達するようにしてもよい。
【００１８】
そして、当該アクチュエータは、上述のようにモータＭによってピニオンギア１を回転駆動し、さらに、ピニオンギア１の回転によってラック軸２を直動させるようになっており、直動アクチュエータとして機能するとともに、ピニオンギア１とラック軸２が軸方向の直線相対運動を呈すると、回転部材であるピニオンギア１が回転運動を呈することになり、このピニオンギア１の回転運動がモータＭのロータＲに伝達されることになるので、モータＭの発生トルクでピニオンギア１の回転運動を抑制してラック軸２の制動を行うことが可能となる。
【００１９】
つづき、モータＭは、この場合、筒状のフレーム１０と、フレーム１０の内周側に設けた電機子であるステータＳと、フレーム１０に回転自在に軸支されるロータＲとを備え三相ブラシレスモータとして構成され、詳しくは、ステータＳは、複数のティースを備えた環状のステータコア１１と、各ティースに巻回されたＵ，Ｖ，Ｗ相の各相における巻線１２とを備えており、他方のロータＲは、螺子軸１の一端に連結されるシャフト１３と、シャフト１３の中間部外周に装着された駆動用磁石１４とを備えている。
【００２０】
なお、駆動用磁石１４は、駆動用磁石１４を所定数の極数を実現できるようにブロック化してシャフト１３の外周に接着されるか、環状に形成して分割着磁されてシャフト１３の外周に嵌着される。
【００２１】
また、このモータＭには、ロータＲの回転角（電気角）θを検出するために、回転角センサ１５が搭載されており、具体的にはたとえば、回転角センサ１５は、シャフト１３に設けたレゾルバコアとフレーム１０に設けられるレゾルバコアに対向するレゾルバステータとを備え、さらに、電気角θから電気角速度ωを得られるようになっている。なお、電気角θから電気角速度ωを演算する演算部を別途設けるのであれば、他にも、光学式のエンコーダを採用してもよいし、ロータＲにセンシング用磁石を設ける場合にはホール素子やＭＲ素子等の磁気センサをフレーム１０に設けるとした構成としてもよい。
【００２２】
他方、モータ制御装置２０は、基本的には、モータＭを比例積分制御する。具体的には、モータ制御装置２０は、比例積分制御に当たり、モータＭのＵ，Ｖ，Ｗの三相の巻線１２に流れる電流をｄｑ座標におけるｄｑ各相の電流に変換する二相変換を行い、このｄｑ各相の電流値ｉｄ，ｉｑとｄｑ各相の電流目標値ｉｄ＊，ｉｑ＊との偏差εｄ，εｑを求め、ｄｑ各相毎に偏差εｄ，εｑに比例ゲインＫＰを乗じた値と、偏差εｄ，εｑを積分して積分ゲインＫＩを乗じた値とを加算してｄｑ各相の電圧指令値Ｖｄ，Ｖｑを演算し、電圧指令値Ｖｄ，Ｖｑを実際の三相の電圧指令値Ｖｕ，Ｖｖ，Ｖｗに変換し、電圧指令値Ｖｕ，Ｖｖ，Ｖｗに応じたＰＷＭ開度（デューティ比）で三相の巻線１２に電圧を印加してモータＭの駆動電流を制御する。
【００２３】
ここで、ｄｑ各相の電圧指令値Ｖｄ，Ｖｑの合成ベクトルが飽和する、すなわち、ｄｑ各相の電圧指令値Ｖｄ，Ｖｑの合成ベクトルの長さが飽和電圧Ｖｓに達すると、ｄ相電流ｉｄおよびｑ相電流ｉｑが互いに他相に干渉することと、電気角速度ωに比例する誘導起電力の影響によって各相の電流値ｉｄ，ｉｑを各相の電流目標値ｉｄ*，ｉｑ*通りに制御することができなくなり、モータＭに狙い通りのトルクを発生させることができなくなる。
【００２４】
詳しくは、ｄｑ変換によるｄ相およびｑ相は、実際のモータＭにおけるＵ，Ｖ，Ｗの三相巻線１２と等価な直交二相巻線に変換されたものであるので、実際のｄ相電圧とｑ相の電圧の合成ベクトル長さの値は、飽和電圧Ｖｓを超える値をとることができないが、ｄ相電圧指令値Ｖｄおよびｑ相電圧指令値Ｖｑの合成ベクトルの長さ（Ｖｄ２＋Ｖｑ２）１／２は、上記制限とは無関係に各電流目標値ｉｄ*，ｉｑ*と上記ｄ相およびｑ相の電流値ｉｄ，ｉｑの偏差εｄ，εｑに基づいて演算されるので、上記制限を超える場合がある。ここで、飽和電圧Ｖｓは、ｄｑ座標における電源Ｅの電圧に相当する値である。
【００２５】
したがって、ｄ相電圧指令値Ｖｄおよびｑ相電圧指令値Ｖｑの合成ベクトル長さが飽和電圧Ｖｓを超える場合、すなわち、ｄ相電圧指令値Ｖｄおよびｑ相電圧指令値Ｖｑの合成ベクトルが飽和している場合には、これらｄ相電圧指令値Ｖｄおよびｑ相電圧指令値Ｖｑを三相の巻線１２にそれぞれ印加すべき電圧指令値Ｖｕ，Ｖｖ，Ｖｗに変換しても、実際には電圧指令値Ｖｕ，Ｖｖ，Ｖｗ通りには、三相各相の巻線１２を印加できないため、各電流値ｉｄ，ｉｑが各電流目標値ｉｄ*，ｉｑ*に追随できず、各電流目標値ｉｄ*，ｉｑ*と各電流値ｉｄ，ｉｑとの偏差εｄ，εｑの絶対値が大きくなってしまう。
【００２６】
すると、ｄ相電圧指令値Ｖｄおよびｑ相電圧指令値Ｖｑの合成ベクトルが飽和しているにもかかわらず、ｄ相電圧指令値Ｖｄおよびｑ相電圧指令値Ｖｑの絶対値は増大するので、飽和の影響でモータＭのトルクにリップルを生じて制御性が悪化することになる。
【００２７】
他方、ロータＲをマイナスの速度方向に回転させるトルクをモータＭに発生させる場合にｑ軸の電流値ｉｑがプラスの値を持つという符号の採りかたをして、ｄ軸を縦軸としｑ軸を横軸に採るｄｑ直交座標では、ｄ相電圧指令値Ｖｄおよびｑ相電圧指令値Ｖｑの合成ベクトルが飽和している状態において、ｑ相の電流値ｉｑが最大値を採るときのｄ相電圧指令値Ｖｄおよびｑ相電圧指令値Ｖｑの合成ベクトルのｑ軸に対する角度（ベクトル角度）は、図２に示すように、電気角速度ωの変化によって変化する。なお、説明の都合上と理解の容易のため、ｄ相電圧指令値Ｖｄおよびｑ相電圧指令値Ｖｑの合成ベクトルのベクトル角度は、ｄ相電圧指令値Ｖｄおよびｑ相電圧指令値Ｖｑの合成ベクトルがｄｑ直交座標におけるｑ軸に対してなす角度として説明するが、本発明の意図するところは、ｄ相電圧指令値Ｖｄおよびｑ相電圧指令値Ｖｑの合成ベクトルのベクトル角度を制御することによってｑ相電流を適切に制御するところにあり、ｄｑ直交座標の原点から伸びる任意の直線を基準として、この直線に対してｄ相電圧指令値Ｖｄおよびｑ相電圧指令値Ｖｑの合成ベクトルのなす角度をベクトル角度としてもよく、たとえば、当該直線をｄｑ直交座標におけるｄ軸とするとしてもよい。
【００２８】
図２中実線で示すように、ロータＲがマイナスの速度を持って逆回転しており、このロータＲの逆回転を助勢するトルクをモータＭが発生している場合（力行状態）には、ｑ相の電流値ｉｑが最大値となる合成ベクトルの角度は、電気角速度ωの減少（マイナス側に増大）によって０度から時計回りに−９０度へ近付き、最終的には、−９０度となり、対して、ロータＲがプラスの速度を持って正回転しており、このロータＲの正回転を抑制するトルクをモータＭが発生している場合（制動状態）には、ｑ相の電流値ｉｑが最大値となる合成ベクトルの角度は、電気角速度ωの上昇によって０度から反時計回りに９０度へ近付き、最終的には、９０度となる。
【００２９】
なお、図２中破線で示すように、ロータＲがプラスの速度を持って正回転しており、このロータＲの正回転を助勢するトルクをモータＭが発生している場合（力行状態）には、ｑ相の電流値ｉｑが最小値（マイナス側の最大値）となる合成ベクトルの角度は、電気角速度ωの上昇によって−１８０度から反時計回りに−９０度へ近付き、最終的には、−９０度となり、対し、ロータＲがマイナスの速度を持って逆回転しており、このロータＲの逆回転を抑制するトルクをモータＭが発生している場合（制動状態）には、ｑ相の電流値ｉｑが最小値（マイナス側の最大値）となる合成ベクトルの角度は、電気角速度ωの減少（マイナス側に増大）によって１８０度から時計回りに９０度へ近付き、最終的には、９０度となる。
【００３０】
そして、ｑ相電流は、モータＭが出力するトルクに寄与する電流であるので、ｑ相の電流値ｉｑの絶対値が大きければ大きいほど、モータＭの発生トルクも大きくなる。
【００３１】
このことから、ｄｑ各相の電圧指令値Ｖｄ，Ｖｑの合成ベクトルが飽和する場合、合成ベクトルのｑ軸に対する角度を制御してやれば、飽和状態にあっても、モータＭの発生トルクに寄与するｑ相電流を制御することができ、モータＭにより大きなトルクを発生させることができる。
【００３２】
これに対し、モータＭをｄｑの二相変換を行ってｄ相電流ｉｄをゼロに制御するとともにｄ相およびｑ相の電圧指令値Ｖｄ，Ｖｑの合成ベクトルが飽和すると偏差εｄ，εｑの積分演算を中止するようにした場合、ｄ相およびｑ相の電圧指令値Ｖｄ，Ｖｑの合成ベクトルが飽和すると、図３（Ａ）に示すように、力行状態では、ｄ相電圧指令値Ｖｄとｑ相電圧指令値Ｖｑの合成ベクトルのｑ軸に対する角度は、０度から−５０度程度との間で推移し、制動状態においては、８０度から１２０度程度の間で推移する。
【００３３】
さらに、弱め界磁制御を行い、かつ、ｄ相およびｑ相の電圧指令値Ｖｄ，Ｖｑの合成ベクトルが飽和すると偏差εｄ，εｑの積分演算を中止してモータＭを制御する場合、図３（Ｂ）に示すように、力行状態では、ｄ相電圧指令値Ｖｄとｑ相電圧指令値Ｖｑの合成ベクトルのｑ軸に対する角度は、−２０度から−５０度程度との間で推移し、制動状態においては、３０度から７０度程度の間で推移する。
【００３４】
なお、図３（Ａ），（Ｂ）の各グラフは、モータＭを従来からある制御手法によって制御した場合の結果であり、具体的には、各グラフは、ラック軸２に正弦波振動を与えてストロークさせて、ストロークの途中でｄ相およびｑ相の電圧指令値Ｖｄ，Ｖｑの合成ベクトルが飽和するようにラック軸２を往復動させた場合におけるｄ相電圧指令値Ｖｄとｑ相電圧指令値Ｖｑの合成ベクトルのｑ軸に対する角度を示しており、モータＭにロータＲを逆回転させるトルクを与えるようにしている。また、ラック軸２に正弦波振動を与えてストロークさせているため、各グラフの両端および中央付近ではストローク速度は低くなるのでｄ相およびｑ相の電圧指令値Ｖｄ，Ｖｑの合成ベクトルが飽和していないため、ｄ相電圧指令値Ｖｄとｑ相電圧指令値Ｖｑの合成ベクトルのｑ軸に対しなす角度に変化が現れている。さらに、電気角速度ωの絶対値が一番大きくなるのは、横軸の１／４および３／４の部分である。
【００３５】
上記したところから、理解できるように、モータＭを従来と同様に制御したのでは、ｄ相およびｑ相の電圧指令値Ｖｄ，Ｖｑの合成ベクトルが飽和しても、本発明のようにベクトル角度制御が行われないため、電気角速度ωの絶対値の上昇に対して合成ベクトルのｑ軸に対する角度の絶対値が減少してしまい、ｑ相の電流値ｉｑの絶対値が最大となるように制御されていない。
【００３６】
そこで、本発明の一実施の形態におけるモータ制御装置２０にあっては、ｄｑ各相の電圧指令値Ｖｄ，Ｖｑの合成ベクトルのｑ軸に対する角度を制御することが可能なベクトル角度制御手段を備えている。
【００３７】
そして、このベクトル角度制御手段によって、ｄｑ各相の電圧指令値Ｖｄ，Ｖｑの合成ベクトルのｑ軸に対する角度を制御することによって、ｄｑ各相の電圧指令値Ｖｄ，Ｖｑの合成ベクトルが飽和する場合にあっても、モータＭが発生するトルクを適切に制御することが可能であるとともに、また、モータＭに従来のモータ制御装置に比較してより一層大きなトルクを発生させることが可能である。
【００３８】
また、このモータ制御装置２０にあっては、モータＭにより一層大きなトルクを発生させることが可能であるので、トルク制御範囲が大きくなるとともに、より小型のモータを使用してもアクチュエータの必要推力を確保することができる。換言すれば、より小さなモータを使用することができ、アクチュエータのコストを低減することが可能となり、アクチュエータを使用する装置へのアクチュエータの搭載性をも向上させることが可能となる。
【００３９】
つづいて、より具体的にモータ制御装置２０を説明する。このモータ制御装置２０は、具体的には、図４に示すように、各電流目標値ｉｄ*，ｉｑ*を演算する電流目標値演算部２１と、ｑ相電流目標値ｉｑ*がリミット値を超える場合にこれをリミット値Iｌｉｍに制限するｑ相電流制限手段たる電流制限部２２と、上記巻線１２の三相のうち二相に流れる電流をｄｑ変換してｄ相電流値ｉｄおよびｑ相電流値ｉｑを演算する二相電流演算部２３と、各電流目標値ｉｄ*，ｉｑ*と上記ｄ相およびｑ相の電流値ｉｄ，ｉｑに基づいてｄ相電圧指令値Ｖｄおよびｑ相電圧指令値Ｖｑを演算する比例積分制御部２４と、ｄ相およびｑ相の各電圧指令値Ｖｄ，Ｖｑの合成ベクトルのｑ軸に対する角度を制御するベクトル角度制御手段たるベクトル角度制御部２５と、ｄ相およびｑ相の各電圧指令値Ｖｄ，Ｖｑの合成ベクトルが飽和しているか否かを判断して比例積分制御とベクトル角度制御のいずれかを選択する選択手段である飽和判断部２６と、ｄ相電圧指令値Ｖｄおよびｑ相電圧指令値ＶｑをＵ，Ｖ，Ｗの三相各相の電圧指令値Ｖｕ，Ｖｖ，Ｖｗに変換する三相変換演算部２７と、三相変換演算部２７が出力する上記各電圧指令値Ｖｕ，Ｖｖ，Ｖｗのうち、ＰＷＭ開度が全開、すなわち、ＰＷＭデューティ比が最大値以上となる場合に、ＰＷＭデューティ比を最大値とする値に電圧指令値Ｖｕ，Ｖｖ，Ｖｗを制限するリミッタ２８と、モータMのＵ，Ｖ，Ｗのうち二相ｉｕ，ｉｖに流れる電流値を検出する電流検出器２９と、電圧指令値Ｖｕ，Ｖｖ，Ｖｗに応じて所定のＰＷＭ開度でＵ，Ｖ，Ｗの各巻線１２を印加するＰＷＭ回路３０とを備えて構成されている。
【００４０】
そして、このモータ制御装置２０は、基本的には、電流目標値演算部２１によって決定されるｄ相およびｑ相の各電流目標値ｉｄ*，ｉｑ*と、二相電流演算部２３の演算結果として得られるｄ相およびｑ相の電流値ｉｄ，ｉｑとのそれぞれの偏差εｄ，εｑに基づいてモータＭを比例積分制御する。なお、偏差εｄ，εｑを微分して得られる要素を追加して比例微分積分制御を行うようにしてもよい。
【００４１】
ここで、電流目標値演算部２１は、ｄ相およびｑ相の電流目標値ｉｄ*，ｉｑ*を所定の制御則に則って上記比例積分制御部２４に出力するものであるが、所定の制御側は、アクチュエータが使用される機器に適するものが採用される。
【００４２】
また、この電流目標値演算部２１は、基本的には、ｄ相電流目標値ｉｄ*を０としてｑ相電流目標値ｉｑ*を演算するようになっているが、ロータの電気角速度ωが大きい場合に、ｄ相電流目標値ｉｄ*をマイナスの値に誘導して弱め界磁制御をするようにしてもよいことは無論である。
【００４３】
そして、電流検出器２９としては、ホール素子や巻線等を用いた非接触型や、三相の巻線１２のいずれか二つに直列介装した抵抗の電圧降下から電流値を得る電流センサを用いればよい。
【００４４】
また、上記電流検出器２９は、Ｕ，Ｖ，Ｗ相のうち二相に流れる電流値を検出すればよく、これは、二相の電流値が分かればロータＲの電気角θから後述する下記式（１）を用いてｄ相およびｑ相の電流値に変換可能であるからである。
【００４５】
さらに、ＰＷＭ回路３０は、図５に示すように、電源Ｅと、モータＭにおける三相各相の巻線１２に電流供給を行う６つのスイッチング素子３０ａと、各スイッチング素子３０ａにＰＷＭパルス信号を与えるマルチバイブレータ等の図示しないパルス発生器とを備えて構成されており、このＰＷＭ回路３１は、比例積分制御部２１が出力する各電圧指令値に基づいて所定のＰＷＭ開度で上記各相に電流供給を行う。
【００４６】
そして、二相電流演算部２３は、電気角θを用いて、以下の式（１）に示したように、上記各電流値ｉｖ，ｉｕをｄ相およびｑ相の電流値ｉｄ，ｉｑへ変換する演算を行い、この変換されたｄ相およびｑ相の電流値ｉｄ，ｉｑを比例積分制御部２４へ出力する。
【数１】
2008067582.tif 000003
比例積分制御部２４は、各電流目標値ｉｄ*，ｉｑ*とｄ相およびｑ相の電流値ｉｄ，ｉｑの各偏差εｄ，εｑを求め、上記各偏差εｄ，εｑをそれぞれ積分した値に積分ゲインＫＩを乗じるとともに、各偏差εｄ，εｑに比例ゲインＫＰを乗じることで得られる二つの値を加算して、ｄ相電圧指令値Ｖｄおよびｑ相電圧指令値Ｖｑを演算する。
【００４７】
具体的には、各相毎の偏差εｄ，εｑは、それぞれ、εｄ＝ｉｄ*−ｉｄ、εｑ＝ｉｑ*−ｉｑの計算式によって演算され、各偏差εｄ，εｑの積分については、各相毎に積分値ｆｄ，ｆｑは、それぞれ前回制御時に演算されたｄ相およびｑ相の積分値ｆｄｐｒｅ，ｆｑｐｒｅに対応する相の偏差εｄ，εｑを加算演算することによりｄ相およびｑ相の積分値を演算される。つまり、ｄ相の積分値ｆｄはｆｄ＝ｆｄｐｒｅ＋εｄで，ｑ相の積分値ｆｑはｆｑ＝ｆｑｐｒｅ＋εｑでそれぞれを演算される。
【００４８】
したがって、ｄ相の電圧指令値Ｖｄは、Ｖｄ＝ＫＩ・ｆｄ＋ＫＰ・εｄで演算され、ｑ相の電圧指令値Ｖｑは、Ｖｑ＝ＫＩ・ｆｑ＋ＫＰ・εｑで演算され、上記した比例積分制御部２４は、上記のようにして演算した各電圧指令値Ｖｄ，Ｖｑを出力する。
【００４９】
すなわち、モータ制御装置２０の場合、電流ループは、二相電流演算部２３、比例積分制御部２４および制御対象であるモータＭとで作られる電流フィードバックループとなる。
【００５０】
そして、さらに、ｄ相電圧指令値Ｖｄおよびｑ相電圧指令値Ｖｑは、上記したようにＵ，Ｖ，Ｗの各相の電圧指令値に変換する三相変換演算部２７に入力され、この三相変換演算部２７は、下記式（２）の演算によって、上記ｄ相電圧指令値Ｖｄおよびｑ相電圧指令値Ｖｑを実際のＵ，Ｖ，Ｗ各相の電圧指令値Ｖｕ，Ｖｖ，Ｖｗへ変換し、この変換された電圧指令値Ｖｕ，Ｖｖ，ＶｗをＰＷＭ回路３０に出力する。なお、リミッタ２８は、ＰＷＭ回路３０におけるＰＷＭ開度が最大から最小となる値の範囲内になるように、電圧指令値Ｖｕ，Ｖｖ，Ｖｗを制限するために設けられているものである。
【数２】
2008067582.tif 000004
以上によって、モータ制御装置２０は、基本的には、電流ループ処理を行って比例積分制御によってモータＭを駆動するようになっている。
【００５１】
つづき、本実施の形態における発明のモータ制御装置２０にあっては、ｄｑ各相の電圧指令値Ｖｄ，Ｖｑの合成ベクトルのｑ軸に対する角度を制御することができるようにベクトル角度制御部２５を備えており、ベクトル角度を制御することで、ｄｑ各相の電圧指令値Ｖｄ，Ｖｑの合成ベクトルが飽和する場合にあっても、モータＭが発生するトルクを適切に制御することができるようになっている。
【００５２】
このベクトル角度制御部２５は、ベクトル角度目標値θｄｑを求めて、このベクトル角度目標値θｄｑと合成ベクトル長さ（Ｖｄ２＋Ｖｑ２）１／２から、ｄ相の電圧指令値ＶｄをＶｄ＝（Ｖｄ２＋Ｖｑ２）１／２・ｓｉｎθｄｑで演算し、ｑ相の電圧指令値ＶｑをＶｑ＝（Ｖｄ２＋Ｖｑ２）１／２・ｃｏｓθｄｑで演算して、これらｄｑ各相の電圧指令値Ｖｄ，Ｖｑを三相変換演算部２７に出力するようになっている。
【００５３】
なお、ｓｉｎθｄｑ、ｃｏｓθｄｑの演算にあたっては、実際には、ベクトル角度制御部２５は、ｓｉｎ関数マップを用いるようにしている。このｓｉｎ関数マップは、もともと、三相変換演算部２７がｄｑ−ＵＶＷ変換の際に使用するため、ｓｉｎ関数マップをベクトル角度制御部２５でも使用することによって、モータ制御装置２０にｓｉｎ関数マップを重複して保持させる必要はない。
【００５４】
もどって、詳細に説明すると、ベクトル角度制御部２５は、まず、ロータＲの電気角速度ωに基づいて、ｑ相電流目標値ｉｑ*がプラスである場合には、ｑ相電流ｉｑが最大値をとるベクトル角度を、ｑ相電流目標値ｉｑ*がマイナスである場合にはｑ相電流ｉｑが最小値をとるベクトル角度をそれぞれベクトル角度最終値θｄｑ*とする。
【００５５】
具体的には、上記ベクトル角度最終値θｄｑ*は電気角速度ωに依存して変化するので、予め、図６（Ａ），（Ｂ）に示すように、電気角速度ωをパラメータとして変動するベクトル角度最終値θｄｑ*をマップ化しておき、ベクトル角度制御部２５で電気角速度ωをモニタし、当該マップを参照してベクトル角度最終値θｄｑ*をマップ演算するようにしてある。
【００５６】
このようにマップ演算を行うことによって、ベクトル角度を制御するのに必要なベクトル角度最終値θｄｑ*を簡単に得ることができ、これによって、演算時間の短縮を図って制御応答性を向上することができ、さらには、コスト高となる高性能なＣＰＵを用いなければならない事態も回避することができる。
【００５７】
そして、上記マップは、図６（Ａ）に示したモータＭにロータＲを逆回転させるトルクを発生させる場合におけるマップと、図６（Ｂ）に示したモータＭにロータＲを正回転させるトルクを発生させる場合におけるマップの二種類が用意される。
【００５８】
なお、実際には、ベクトル角度最終値θｄｑ*は、電気角速度ωの変化に対して連続して変化するが、マップ作成に当たっては、電気角速度ωの任意の値ずつ変化させた時の不連続なベクトル角度最終値θｄｑ*として、実際にモニタされた電気角速度ωに対応するベクトル角度最終値θｄｑ*がマップ上に存在しない場合には、線形補間によってベクトル角度最終値θｄｑ*を演算するようにしておけばよい。
【００５９】
さらに、マップ演算を行う代わりに、θｄｑ*を式（３）によって近似的に求め、モータＭにロータＲを逆回転させるトルクを発生させる場合には、−９０度から９０度の範囲でθｄｑ＊を求め、モータＭにロータＲを正回転させるトルクを発生させる場合には、−１８０度から−９０度および９０度から１８０度の範囲でθｄｑ＊を求めるようにしてもよい。なお、式（３）中、ωは電気角速度を示し、ａは、任意の正の小さな定数である。
【数３】
2008067582.tif 000005
つづいて、ベクトル角度制御部２５は、前回制御時の電圧指令値Ｖｄ，Ｖｑの合成ベクトルを取り込み、前回制御時の電圧指令値Ｖｄ，Ｖｑの合成ベクトルのベクトル角度θｖを今回制御に当たっての現在のベクトル角度として、ベクトル角度最終値θｄｑ*とベクトル角度θｖの角度制御偏差たるベクトル角度制御偏差εθｄｑと、ｑ相電流目標値ｉｑ*の符号、および、ｑ相電流目標値ｉｑ*とｑ相電流値ｉｑの偏差である電流制御偏差εｑ（εｑ＝ｉｑ*−ｉｑ）とから、図７に示すような判断を行って、合成ベクトルのｑ軸に対する回転方向を決定し、この回転方向からベクトル角度目標値θｄｑを設定するようにする。
【００６０】
なお、ベクトル角度θｖは、電圧指令値Ｖｄ，Ｖｑの合成ベクトルのｑ軸に対する角度であるが、ｑ軸に対して合成ベクトルが反時計回りには０度から１８０度の間で変化し、ｑ軸に対して合成ベクトルが時計回りには０度から−１８０度の間で変化するものとしてあり、また、ベクトル角度目標値θｄｑも同様である。
【００６１】
また、上記ベクトル角度制御偏差εθｄｑは、ベクトル角度最終値θｄｑ*とベクトル角度θｖの単純偏差ｅθ（ｅθ＝θｄｑ*−θｖ、単位は角度）に基づいて求められる量であって、単純偏差ｅθが−１８０以上１８０度未満の範囲内にある場合、単純偏差ｅθがそのままベクトル角度制御偏差εθｄｑとなり、単純偏差ｅθが１８０度以上の場合、ベクトル角度制御偏差εθｄｑは、εθｄｑ＝ｅθ−３６０で演算され、単純偏差ｅθが−１８０度未満の場合、ベクトル角度制御偏差εθｄｑは、εθｄｑ＝ｅθ＋３６０で演算される。したがって、ベクトル角度制御偏差εθｄｑは、必ず−１８０度以上１８０度未満の範囲内の値を採るように調整されていることになる。
【００６２】
上記判断では、ｑ相電流目標値ｉｑ*の符号がプラスの場合、すなわち、モータＭにロータＲを逆回転させるトルクを発生させる場合であって、電流制御偏差εｑがプラスの値を採る状況で、ベクトル角度制御偏差εθｄｑが−１８０度以上０度未満の時には、ベクトル角度θｖを時計回りに回転させ、逆に、ベクトル角度制御偏差εθｄｑが０度以上１８０度未満の時には、ベクトル角度θｖを反時計回りに回転させる。
【００６３】
他方、ｑ相電流目標値ｉｑ*の符号がプラスの場合であっても、電流制御偏差εｑがマイナスの値を採る状況では、ベクトル角度制御偏差εθｄｑが−１８０度以上０度未満の時には、ベクトル角度θｖを反時計回りに回転させ、逆に、ベクトル角度制御偏差εθｄｑが０度以上１８０度未満の時には、ベクトル角度θｖを時計回りに回転させる。
【００６４】
すなわち、ｑ相電流目標値ｉｑ*の符号がプラスであることを前提にして、ｑ相電流目標値ｉｑ*よりｑ相電流値ｉｑが小さい場合、つまり、電流制御偏差εｑがプラスの値の場合であってベクトル角度制御偏差εθｄｑが−１８０度以上０度未満の場合には、図８に示すように、前回制御時のベクトル角度θｖは、ｑ相電流ｉｑを最大にするベクトル角度最終値θｄｑ*のラインＬ１と、このラインＬ１に対して１８０度位相の異なるラインＬ２との間の領域（ａ）内に存在していることになる。また、ｑ相電流目標値ｉｑ*よりｑ相電流値ｉｑが小さいので、この場合、前回制御時のベクトル角度θｖをｑ相電流ｉｑを最大にするベクトル角度最終値θｄｑ*のラインＬ１に近づけることでｑ相電流ｉｑをｑ相電流目標値ｉｑ*に近づけることができることから、ラインＬ１に対して図８中下方へ合成ベクトルを移動させる、つまり、ｄｑ軸の直交座標で考えると合成ベクトルを時計回りに回転させると、合成ベクトルの回転角度が最大でも１８０度以下にすることができ、より早くｑ相電流ｉｑをｑ相電流目標値ｉｑ*に追随させることができる。
【００６５】
上記したところをもう少し詳しく説明すると、たとえば、ベクトル角度最終値θｄｑ*が−９０度である場合、ｄｑ軸の直交座標で考えると、図９に示すように、前回制御時の合成ベクトルのベクトル角度θｖが−９０度より大きく９０度以下の範囲内にある状態となり、このような範囲内に合成ベクトルがある場合、合成ベクトルがｑ軸に対して成す角度であるベクトル角度θｖをベクトル角度最終値θｄｑ*にするには、合成ベクトルを図９中時計回りに回転させるほうが回転角度が少なくて済むことが理解できるであろう。
【００６６】
このように、上記判断を行うことによって、より速くｑ相電流ｉｑをｑ相電流目標値ｉｑ*に追随させるには、ベクトル角度最終値θｄｑ*に対して、合成ベクトルを時計回りと反時計回りのいずれに回転させるべきかを見極めることができるのである。
【００６７】
同様に、ｑ相電流目標値ｉｑ*の符号がプラスであることを前提にして、ｑ相電流目標値ｉｑ*よりｑ相電流値ｉｑが小さい場合、つまり、電流制御偏差εｑがプラスの値の場合であってベクトル角度制御偏差εθｄｑが０度以上１８０度未満の場合には、図８に示すように、前回制御時のベクトル角度θｖは、ｑ相電流ｉｑを最大にするベクトル角度最終値θｄｑ*のラインＬ１と、このラインＬ１に対して１８０度位相の異なるラインＬ２との間の領域（ｂ）内に存在していることになる。また、ｑ相電流目標値ｉｑ*よりｑ相電流値ｉｑが小さいので、この場合、前回制御時のベクトル角度θｖをｑ相電流ｉｑを最大にするベクトル角度最終値θｄｑ*のラインＬ１に近づけることでｑ相電流ｉｑをｑ相電流目標値ｉｑ*に近づけることができることから、ラインＬ１に対して図８中上方へ合成ベクトルを移動させる、つまり、ｄｑ軸の直交座標で考えると合成ベクトルを反時計回りに回転させると、合成ベクトルの回転角度が最大でも１８０度以下にすることができることになる。
【００６８】
さらに、ｑ相電流目標値ｉｑ*の符号がプラスであることを前提にして、ｑ相電流目標値ｉｑ*よりｑ相電流値ｉｑが大きい場合、つまり、電流制御偏差εｑがマイナスの値の場合であってベクトル角度制御偏差εθｄｑが−１８０度以上０度未満の場合には、図８に示すように、前回制御時のベクトル角度θｖは、ｑ相電流ｉｑを最大にするベクトル角度最終値θｄｑ*のラインＬ１と、このラインＬ１に対して１８０度位相の異なるラインＬ２との間の領域（ａ）内に存在していることになるが、今度は、ｑ相電流目標値ｉｑ*よりｑ相電流値ｉｑが大きいので、この場合、前回制御時のベクトル角度θｖをｑ相電流ｉｑを最大にするベクトル角度最終値θｄｑ*のラインＬ１から遠ざける必要がある。
【００６９】
したがって、ラインＬ１に対して図８中上方へ合成ベクトルを移動させる、つまり、ｄｑ軸の直交座標で考えると合成ベクトルを反時計回りに回転させると、合成ベクトルをベクトル角度最終値θｄｑ*のラインＬ１から確実に遠ざけてより早くｑ相電流ｉｑをｑ相電流目標値ｉｑ*に追随させることができる。ここで、仮に、合成ベクトルを時計回りに回転させると、一端、ｑ相電流ｉｑは最大値まで増加してからｑ相電流目標値ｉｑ*に追随することになるので、制御性が悪化することになるので、上述の判断によって回転方向を定めることで、制御性の悪化を防止することが可能となるのである。
【００７０】
また、すなわち、ｑ相電流目標値ｉｑ*の符号がプラスであることを前提にして、ｑ相電流目標値ｉｑ*よりｑ相電流値ｉｑが大きい場合、つまり、電流制御偏差εｑがマイナスの値の場合であってベクトル角度制御偏差εθｄｑが０度以上１８０度未満の場合には、図８に示すように、前回制御時のベクトル角度θｖは、ｑ相電流ｉｑを最大にするベクトル角度最終値θｄｑ*のラインＬ１と、このラインＬ１に対して１８０度位相の異なるラインＬ２との間の領域（ｂ）内に存在していることになるが、上記と同様にｑ相電流目標値ｉｑ*よりｑ相電流値ｉｑが大きいので、この場合、前回制御時のベクトル角度θｖをｑ相電流ｉｑを最大にするベクトル角度最終値θｄｑ*のラインＬ１から遠ざける必要がある。
【００７１】
したがって、ラインＬ１に対して図８中下方へ合成ベクトルを移動させる、つまり、ｄｑ軸の直交座標で考えると合成ベクトルを時計回りに回転させると、合成ベクトルをベクトル角度最終値θｄｑ*のラインＬ１から確実に遠ざけてより早くｑ相電流ｉｑをｑ相電流目標値ｉｑ*に追随させることができる。
【００７２】
つづき、ｑ相電流目標値ｉｑ*の符号がマイナスの場合、すなわち、モータＭにロータＲを正回転させるトルクを発生させる場合であって、電流制御偏差εｑがプラスの値を採る状況で、ベクトル角度制御偏差εθｄｑが−１８０度以上０度未満の時には、ベクトル角度θｖを反時計回りに回転させ、逆に、ベクトル角度制御偏差εθｄｑが０度以上１８０度未満の時には、ベクトル角度θｖを時計回りに回転させる。
【００７３】
他方、ｑ相電流目標値ｉｑ*の符号がマイナスの場合であっても、電流制御偏差εｑがマイナスの値を採る状況では、ベクトル角度制御偏差εθｄｑが−１８０度以上０度未満の時には、ベクトル角度θｖを時計回りに回転させ、逆に、ベクトル角度制御偏差εθｄｑが０度以上１８０度未満の時には、ベクトル角度θｖを反時計回りに回転させる。
【００７４】
すなわち、ｑ相電流目標値ｉｑ*の符号がマイナスであることを前提にして、ｑ相電流目標値ｉｑ*よりｑ相電流値ｉｑが小さい場合、つまり、電流制御偏差εｑがプラスの値の場合であってベクトル角度制御偏差εθｄｑが−１８０度以上０度未満の場合には、図１０に示すように、前回制御時のベクトル角度θｖは、ｑ相電流ｉｑを最小にするベクトル角度最終値θｄｑ*のラインＬ３と、このラインＬ３に対して１８０度位相の異なるラインＬ４との間の領域（ｃ）内に存在していることになる。
【００７５】
また、ｑ相電流目標値ｉｑ*よりｑ相電流値ｉｑが小さいので、この場合、前回制御時のベクトル角度θｖをｑ相電流ｉｑを最小にするベクトル角度最終値θｄｑ*のラインＬ３から遠ざけることでｑ相電流ｉｑをｑ相電流目標値ｉｑ*に近づけることができることから、ラインＬ３に対して図１０中上方へ合成ベクトルを移動させる、つまり、ｄｑ軸の直交座標で考えると合成ベクトルを反時計回りに回転させると、合成ベクトルをベクトル角度最終値θｄｑ*のラインＬ３から確実に遠ざけてより早くｑ相電流ｉｑをｑ相電流目標値ｉｑ*に追随させることができる。ここで、仮に、合成ベクトルを時計回りに回転させると、一端、ｑ相電流ｉｑはマイナスの最大の値である最小値まで減少してからｑ相電流目標値ｉｑ*に追随することになるので、制御性が悪化することになるので、上述の判断によって回転方向を定めることで、制御性の悪化を防止することが可能となるのである。
【００７６】
上記したところをもう少し詳しく説明すると、たとえば、ベクトル角度最終値θｄｑ*が９０度である場合、ｄｑ軸の直交座標で考えると、図１１に示すように、前回制御時の合成ベクトルのベクトル角度θｖが９０度より大きく１８０度以下の範囲内および−９０度より小さく−１８０度より大きい範囲内にある状態となり、このような範囲内に合成ベクトルがある場合、合成ベクトルがｑ軸に対して成す角度であるベクトル角度θｖをベクトル角度最終値θｄｑ*から遠ざけるには、合成ベクトルを図１１中反時計回りに回転させることが合理的であることが理解できるであろう。
【００７７】
同様に、ｑ相電流目標値ｉｑ*の符号がマイナスであることを前提にして、ｑ相電流目標値ｉｑ*よりｑ相電流値ｉｑが小さい場合、つまり、電流制御偏差εｑがプラスの値の場合であってベクトル角度制御偏差εθｄｑが０度以上１８０度未満の場合には、図１０に示すように、前回制御時のベクトル角度θｖは、ｑ相電流ｉｑを最小にするベクトル角度最終値θｄｑ*のラインＬ３と、このラインＬ３に対して１８０度位相の異なるラインＬ４との間の領域（ｄ）内に存在していることになる。
【００７８】
また、ｑ相電流目標値ｉｑ*よりｑ相電流値ｉｑが小さいので、この場合、前回制御時のベクトル角度θｖをｑ相電流ｉｑを最小にするベクトル角度最終値θｄｑ*のラインＬ３から遠ざけることでｑ相電流ｉｑをｑ相電流目標値ｉｑ*に近づけることができることから、ラインＬ３に対して図１０中下方へ合成ベクトルを移動させる、つまり、ｄｑ軸の直交座標で考えると合成ベクトルを時計回りに回転させると、合成ベクトルの回転角度が最大でも１８０度以下にすることができることになる。
【００７９】
さらに、ｑ相電流目標値ｉｑ*の符号がマイナスであることを前提にして、ｑ相電流目標値ｉｑ*よりｑ相電流値ｉｑが大きい場合、つまり、電流制御偏差εｑがマイナスの値の場合であってベクトル角度制御偏差εθｄｑが−１８０度以上０度未満の場合には、図１０に示すように、前回制御時のベクトル角度θｖは、ｑ相電流ｉｑを最小にするベクトル角度最終値θｄｑ*のラインＬ３と、このラインＬ３に対して１８０度位相の異なるラインＬ４との間の領域（ｃ）内に存在していることになるが、今度は、ｑ相電流目標値ｉｑ*よりｑ相電流値ｉｑが大きいので、この場合、前回制御時のベクトル角度θｖをｑ相電流ｉｑを最小にするベクトル角度最終値θｄｑ*のラインＬ３に近づける必要がある。
【００８０】
したがって、ラインＬ３に対して図１０中下方へ合成ベクトルを移動させる、つまり、ｄｑ軸の直交座標で考えると合成ベクトルを時計回りに回転させると、合成ベクトルをベクトル角度最終値θｄｑ*のラインＬ３にいち早く近づけることができ、より早くｑ相電流ｉｑをｑ相電流目標値ｉｑ*に追随させることができる。
【００８１】
すなわち、ｄｑ軸の直交座標で考えると合成ベクトルを時計回りに回転させると、合成ベクトルの回転角度が最大でも１８０度以下にすることができ、より早くｑ相電流ｉｑをｑ相電流目標値ｉｑ*に追随させることができるのである。
【００８２】
また、ｑ相電流目標値ｉｑ*の符号がマイナスであることを前提にして、ｑ相電流目標値ｉｑ*よりｑ相電流値ｉｑが大きい場合、つまり、電流制御偏差εｑがマイナスの値の場合であってベクトル角度制御偏差εθｄｑが０度以上１８０度未満の場合には、図１０に示すように、前回制御時のベクトル角度θｖは、ｑ相電流ｉｑを最小にするベクトル角度最終値θｄｑ*のラインＬ３と、このラインＬ３に対して１８０度位相の異なるラインＬ４との間の領域（ｄ）内に存在していることになるが、上記と同様にｑ相電流目標値ｉｑ*よりｑ相電流値ｉｑが大きいので、この場合、前回制御時のベクトル角度θｖをｑ相電流ｉｑを最大にするベクトル角度最終値θｄｑ*のラインＬ３に近づける必要がある。
【００８３】
したがって、ラインＬ３に対して図１０中上方へ合成ベクトルを移動させる、つまり、ｄｑ軸の直交座標で考えると合成ベクトルを反時計回りに回転させると、合成ベクトルをベクトル角度最終値θｄｑ*のラインＬ３に近づけてより早くｑ相電流ｉｑをｑ相電流目標値ｉｑ*に追随させることができる。
【００８４】
つまり、上記判断によって、ベクトル角度θｖの回転方向を決定することによって、ベクトル角度θｖをベクトル角度最終値θｄｑ*を基準として、遠近させることによって、ｑ相電流をｑ相電流目標値ｉｑ*に追随させることが可能となるのである。
【００８５】
そして、上記判断から合成ベクトルのｑ軸に対する回転方向が決定されると、回転方向からベクトル角度目標値θｄｑを設定するのであるが、このベクトル角度目標値θｄｑは、たとえば、現在のベクトル角度θｖに対し回転方向に所定のα度を加算した角度に設定される。したがって、ベクトル角度目標値θｄｑは、θｄｑ＝θｖ±αで演算されることになる。なお、αの前の符号は合成ベクトルの回転方向によって上記のように決定される。
【００８６】
ベクトル角度θｖに加算される角度αは、ｑ相電流偏差εｑに制御ゲインを乗じて演算される。この場合、αを演算するための制御ゲインは、ｑ相電流はベクトル角度θｖに対してｓｉｎ関数で増減するので、制御ゲインもこれに準じてｓｉｎ関数で表せる非線形なものとしておけば、どのような状態においても同じ応答性を確保することが可能となる。
【００８７】
このようにして、ベクトル角度制御部２５は、ベクトル角度目標値θｄｑから、上述のようにｄ相電圧指令値Ｖｄおよびｑ相電圧指令値Ｖｑを演算し、これら電圧指令値Ｖｄ，Ｖｑは、Ｕ，Ｖ，Ｗの各相の電圧指令値Ｖｖ，Ｖｕ，Ｖｗに変換する三相変換演算部２７に入力され、ＰＷＭ回路３０によってモータＭが駆動されることになる。
【００８８】
このように、ベクトル角度制御部２５によって、ｄｑ各相の電圧指令値Ｖｄ，Ｖｑの合成ベクトルのベクトル角度θｖを制御するので、飽和状態でもモータＭのトルクを極限にまで大きくしてトルク指令の要求になるべく近いトルクを出力させることが可能である。
【００８９】
なお、ロータＲの電気角速度ωからｑ相電流目標値ｉｑ*を実現可能なベクトル角度を求めて、このベクトル角度を直接にベクトル角度目標値θｄｑとして制御するようにしてもよいが、上述のように、回転方向を求めて、ベクトル角度目標値θｄｑを設定することによって、ｄｑ各相の電圧指令値Ｖｄ，Ｖｑの急激に変動してしまうことを防止でき、トルク変動が大きくなってしまうことを防止できる。また、ベクトル角度目標値θｄｑをｑ相電流目標値ｉｑ*を実現可能なベクトル角度に定めるとベクトル角度の回転方向は一義的には決められないが、上記判断によってベクトル角度の回転方向を決定するので、ベクトル角度の操作量を小さくすることができる。
【００９０】
上記したように、ベクトル角度目標値θｄｑを求めることができ、これによって、トルクの制御範囲を拡大することができるが、上記判断よって回転方向を決定する場合、ベクトル角度最終値θｄｑ*を基準として回転方向が反転することになるので、ベクトル角度θｖがベクトル角度最終値θｄｑ*付近で振動的になってしまったり、急激に変化してしまったりする場合があるため、これを防止するため、ｑ相電流目標値ｉｑ*の絶対値を採りうる最大値に制限する電流制限部２２を設けている。
【００９１】
電流制限部２２は、モータMがロータＲを逆回転させるようにトルクを発生している場合には、ｑ相電流目標値ｉｑ*をｑ相電流が採りうる最大値となるリミット値Ｉｌｉｍに制限し、反対に、モータＭがロータＲを正回転させるようにトルクを発生している場合には、ｑ相電流目標値ｉｑ*をｑ相電流が採りうる最小値となるリミット値Ｉｌｉｍに制限する。
【００９２】
具体的には、このリミット値Ｉｌｉｍは、モータＭがロータＲを逆回転させるトルクを発生している場合、ｄｑ各相の電圧指令値Ｖｄ，Ｖｑの合成ベクトルが飽和電圧Ｖｓに達している状態で、この合成ベクトルをｄｑ座標において原点回りに３６０度一周させたときのｑ相電流値ｉｑが取りうる最大値とされ、他方、モータＭがロータＲを正回転させるトルクを発生している場合、ｄｑ各相の電圧指令値Ｖｄ，Ｖｑの合成ベクトルが飽和電圧Ｖｓに達している状態で、この合成ベクトルをｄｑ座標において原点回りに３６０度一周させたときのｑ相電流値ｉｑが取りうる最小値とされる。
【００９３】
したがって、ロータＲを逆回転させるトルクをモータＭが発生している場合、ｑ相電流目標値ｉｑ*の上限が、ｄ相およびｑ相の電圧指令値Ｖｄ，Ｖｑの合成ベクトルの飽和時において、ｑ相電流値ｉｑが取り得る最大値に制限され、ロータＲを正回転させるトルクをモータＭが発生している場合、ｑ相電流目標値ｉｑ*の下限が、ｄ相およびｑ相の電圧指令値Ｖｄ，Ｖｑの合成ベクトルの飽和時において、ｑ相電流値ｉｑが取り得る最小値に制限されるため、合成ベクトルが飽和しても、ｑ相電流目標値ｉｑ*とｑ相電流ｉｑとの偏差εｑの絶対値が大きくなることが無く、上記したベクトル角度制御時に、ベクトル角度θｖがベクトル角度最終値θｄｑ*付近ではαも小さい値となり、ベクトル角度θｖがベクトル角度最終値θｄｑ*となると偏差εｑが０となるので、ベクトル角度θｖがベクトル角度最終値θｄｑ*付近で振動的になるような不具合が解消されることになる。
【００９４】
なお、ｑ相電流値ｉｑの絶対値の最大値は、ロータＲの電気角速度ωの絶対値が大きくなればなるほど、ｄ相およびｑ相の相互干渉と誘導起電力の影響により０に近付くように小さくなり、電気角速度ωに依存した値となる。
【００９５】
したがって、上記リミット値Ｉｌｉｍも電気角速度ωに依存して変更する必要があるが、予め、図１２に示すように、電気角速度ωをパラメータとして変動するリミット値Ｉｌｉｍをマップ化しておき、電流制限部２２で電気角速度ωをモニタし、当該マップを参照してリミット値Ｉｌｉｍを選択するようにしておくとよい。なお、電気角速度ωが０近傍の値をとる場合のリミット値Ｉｌｉｍが電気角速度ωの変化に対して一定値をとるのは、モータ制御装置２０の最大通電能力によって制限されるからであり、同方向にトルクを発生する場合の力行時と制動時でリミット値Ｉｌｉｍが異なっているのは、誘導起電力の発生方向等の影響によるものである。
【００９６】
このようにマップ演算を行うことによって、ｑ相電流目標値ｉｑ*の制限に必要なリミット値Ｉｌｉｍを簡単に得ることができ、これによって、演算時間の短縮を図って制御応答性を向上することができ、さらには、コスト高となる高性能なＣＰＵを用いなければならない事態も回避することができる。
【００９７】
そして、上記マップは、電気角速度ωがプラスの実用最大値からマイナスの実用最小値まで変化した場合のリミット値Ｉｌｉｍとしてプロットすることにより作成すればよく、実際には、リミット値Ｉｌｉｍは、電気角速度ωの変化に対して連続して変化するが、マップ作成に当たっては、電気角速度ωの任意の値ずつ変化させた時の不連続なリミット値Ｉｌｉｍとして、実際にモニタされた電気角度ωに対応するリミット値Ｉｌｉｍがマップ上に存在しない場合には、線形補間によってリミット値Ｉｌｉｍを演算するようにしておけばよい。
【００９８】
このようにｑ相電流目標値ｉｑ*をリミット値Ｉｌｉｍに制限するが、上記リミット値Ｉｌｉｍをｄ相およびｑ相の電圧指令値Ｖｄ，Ｖｑの合成ベクトルの飽和時におけるｑ相電流ｉｑの最大値および最小値とする場合、ｑ相電流値ｉｑの最大値および最小値は、電源Ｅの電圧に左右されるので、電源Ｅの電圧変化に応じてリミット値Ｉｌｉｍを補正するようにしてもよい。
【００９９】
なお、ｄ相およびｑ相の電圧指令値Ｖｄ，Ｖｑの合成ベクトルが飽和したときのｑ相電流ｉｑの最大値および最小値は、ほぼ電源電圧に比例して変化することから、電源Ｅの電圧変化に対しリミット値Ｉｌｉｍを比例的に補正するようにしてもよく、この場合には、電気角速度ωをパラメータとして作成したリミット値Ｉｌｉｍのマップにおけるリミット値Ｉｌｉｍの値を、予めマップ作成時の電源Ｅの電圧で割って補正用のマップを作成しておき、このマップを参照して得たリミット値Ｉｌｉｍに実際の電源電圧を乗算することでリミット値Ｉｌｉｍを補正すればよい。
【０１００】
つづき、このモータ制御装置２０にあっては、ｄ相およびｑ相の各電圧指令値Ｖｄ，Ｖｑの合成ベクトルが飽和しているか否か、すなわち、ｄｑ各相の電圧指令値Ｖｄ，Ｖｑの合成ベクトルの長さが閾値より大きいか否かを判断し、上記した比例積分制御とベクトル角度制御のいずれかを選択する選択手段である飽和判断部２６を備えている。
【０１０１】
この飽和判断部２６は、比例積分制御を行う比例積分制御部２４が出力するｄｑ各相の電圧指令値Ｖｄ，Ｖｑを取り込んで、この電圧指令値Ｖｄ，Ｖｑの合成ベクトルの長さが閾値より大きいか否かを判断し、電圧指令値Ｖｄ，Ｖｑの合成ベクトルの長さが閾値より大きい場合には、ベクトル角度制御を選択すべくスイッチ２６ａをベクトル角度制御部２５が出力するｄｑ各相の電圧指令値Ｖｄ，Ｖｑが三相変換演算部２７に入力されるように動作させ、他方、電圧指令値Ｖｄ，Ｖｑの合成ベクトルが閾値以下である場合には、スイッチ２６ａを比例積分制御部２４が出力するｄｑ各相の電圧指令値Ｖｄ，Ｖｑが三相変換演算部２７に入力されるように動作させる。
【０１０２】
なお、いずれの制御が選択される場合にも、比例積分制御部２４は、ｄｑ各相の電流目標値ｉｄ＊，ｉｑ＊が入力される上記電流ループにおける処理を継続し続け、ｄｑ各相の電圧指令値Ｖｄ，Ｖｑを飽和判断部２６に出力する。
【０１０３】
また、飽和判断部２６は、電圧指令値Ｖｄ，Ｖｑの合成ベクトルが飽和すると、電流目標値ｉｄ＊，ｉｑ＊にｄｑ各相の電流値ｉｄ，ｉｑが追随できないにも拘わらず、比例積分制御部２４の積分パスの積分値ｆｄ，ｆｑの値の絶対値が増大してしまうことになるので、積分パスにおける積分演算を中止させる。
【０１０４】
そして、上記したように、電圧指令値Ｖｄ，Ｖｑの合成ベクトルが飽和すると、ベクトル角度制御が選択されてベクトル角度制御部２５が出力するｄｑ各相の電圧指令値Ｖｄ，Ｖｑが有効となるが、その後、比例積分制御部２４が出力するｄｑ各相の電圧指令値Ｖｄ，Ｖｑの合成ベクトルが飽和しない状態となると、スイッチ２６ａを切換動作させて比例積分制御部２４が出力するｄｑ各相の電圧指令値Ｖｄ，Ｖｑを有効とする。
【０１０５】
このような切換時には、すなわち、比例積分制御を選択し比例積分制御へ移行するときには、飽和判断部２６は、比例積分制御部２４へ積分値ｆｄ，ｆｑを書き換える積分値書換指令を出力する。他方、比例積分制御部２４は、ベクトル角度制御部２５が出力するｄｑ各相の電圧指令値Ｖｄ，Ｖｑをモニタしており、飽和判断部２６からスイッチ２６ａの切換によって上記積分値書換指令を受け取ると、ベクトル角度制御部２５が出力した電圧指令値Ｖｄ，Ｖｑを同じ値の電圧指令値Ｖｄ，Ｖｑを出力するように、積分パスにおける積分値ｆｄ，ｆｑの値を書き換える。この書換に当たっては、比例積分制御部２４に入力されるｄｑ各相の電流目標値ｉｄ*，ｉｑ*とｄｑ各相の電流値ｉｄ，ｉｑの偏差εｄ，εｑを考慮し、ベクトル角度制御部２５が出力した電圧指令値Ｖｄ，Ｖｑから偏差εｄ，εｑに基づいて演算される比例パスにおける値εｄ・ＫＰ，εｑ・ＫＰをそれぞれ引いて、各相の積分パスの値を求め、積分ゲインＫＩから逆算して積分値ｆｄ，ｆｑを演算し、積分値ｆｄ，ｆｑを書き換える。
【０１０６】
つまり、比例積分制御部２４は、スイッチ２６ａの切換直後には、スイッチ２６ａの切換前にベクトル角度制御部２５が出力していたｄｑ各相の電圧指令値Ｖｄ，Ｖｑの値と同じ値の電圧指令値Ｖｄ，Ｖｑを出力することになる。
【０１０７】
すると、このように、飽和判断部２６がベクトル角度制御から比例積分制御へ移行した時に、ｄｑ各相の電圧指令値Ｖｄ，Ｖｑの値が急激に変化してしまうような事態が防止され、モータＭの出力トルクにリップルが生じてしまう事態が回避されることになる。
【０１０８】
またさらに、ベクトル角度制御においても上述のように、ｄｑ各相の電圧指令値Ｖｄ，Ｖｑが急激に変化しないように、ベクトル角度目標値θｄｑを設定しており、スイッチ２６ａの切換時に、電圧指令値Ｖｄ，Ｖｑに急激に変化を生じさせることがないので、スイッチ２６ａをいずれに切換えても、出力トルクに急激な変化を生じさせることがなく、比例積分制御およびベクトル角度制御のいずれもフェードイン・フェードアウトさせる必要が無く、制御アルゴリズムが複雑となってしまう不具合もない。
【０１０９】
また、飽和判断部２６の判断において閾値を飽和電圧Ｖｓとしておくと、ｄｑ各相の電圧指令値Ｖｄ，Ｖｑの合成ベクトルが飽和するまでは、すなわち、通常時（非飽和時）には、比例積分制御部２４における比例積分制御が行われることになり、演算負荷の高いベクトル角度制御を飽和時のみに行えばよいことになることから、制御応答性の点で有利となる。
【０１１０】
なお、飽和判断部２６における判断において、閾値を飽和電圧Ｖｓとする場合、閾値は、Ｕ，Ｖ，Ｗの各相巻線１２の端子間電圧を電源Ｅの電圧まで向上させることができうるような制御を実施する場合には１／√２を電源Ｅの初期設定電圧に乗じた値とすればよく、また、Ｕ，Ｖ，Ｗの各相巻線１２に正弦波電圧を印加するように制御する場合には、√６／４を電源Ｅの設定電圧に乗じた値とすればよい。
【０１１１】
転じて、上述のように構成されるモータ制御装置２０の電流検出器２９、回転角センサ１５およびＰＷＭ回路３０以外の各部におけるハードウェア資源としては、具体的にはたとえば、電流検出器３２および回転角センサ１５が出力する各信号を増幅するためのアンプと、アナログ信号をデジタル信号に変換する変換器と、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｓｓｅｓｉｎｇ  Ｕｎｉｔ）と、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）等の記憶装置と、ＣＰＵに記憶領域を提供するＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）と、水晶発振子及びこれらを連絡するバスラインとを備えた図示しない周知のコンピュータシステムとして構成され、また、ＰＷＭ回路３０に電圧指令値Ｖｕ，Ｖｖ，Ｖｗを出力することができるようになっている。なお、このハードウェアとしてモータ制御装置２０の電流検出器３２、回転角センサ１５およびＰＷＭ回路３０以外の各部は、モータＭが適用される機器に搭載されるコントローラ等に統合されてもよい。
【０１１２】
そして、この場合、上記電流目標値演算部２１、電流制限部２２、二相電流演算部２３、比例積分制御部２４、ベクトル角度制御部２５、飽和判断部２６、三相変換演算部２７およびリミッタ２８における処理手順は、プログラムとしてＲＯＭや他の記憶装置に予め格納され、上記これら各部は、ＣＰＵが上記プログラムを読み込んで、上記した各演算処理を実行することによって実現される。
【０１１３】
ここで、上記したモータ制御装置２０における処理手順について、図１３に示すフローチャートに基づいて説明する。
【０１１４】
まず、ステップＳ１でモータ制御装置２０は、三相の巻線１２のうちの任意の二相、たとえば、Ｕ相とＶ相の電流値ｉｕ，ｉｖと、モータＭの電気角θと、電気角速度ωを読み込む。
【０１１５】
つづき、ステップＳ２に移行して、モータ制御装置２０は、各電流目標値ｉｄ*，ｉｑ*を演算する。
【０１１６】
さらに、ステップＳ３では、電流目標値ｉｑ*からリミット値Ｉｌｉｍを演算するためのマップを選択し、電気角速度ωに基づいて電流目標値ｉｑ*を制限する処理を行う。
【０１１７】
つづいて、ステップＳ４では、モータ制御装置２０は、電流値ｉｕ，ｉｖと電気角θを用いて、上記各電流値ｉｖ，ｉｕをｄ相およびｑ相の電流値ｉｄ，ｉｑへ変換する演算を行って、ステップＳ５に移行する。
【０１１８】
ステップＳ５では、前回制御時にｄ相電圧指令値Ｖｄおよびｑ相電圧指令値Ｖｑの合成ベクトルの長さが閾値以上であったか、すなわち、ｄ相電圧指令値Ｖｄおよびｑ相電圧指令値Ｖｑの合成ベクトル長さ（Ｖｄ２＋Ｖｑ２）１／２が閾値以上であったかを、選択フラグを参照して判断し、前回制御時にｄ相電圧指令値Ｖｄおよびｑ相電圧指令値Ｖｑの合成ベクトルの長さが閾値以上でない場合、ステップＳ６へ移行し、前回制御時にｄ相電圧指令値Ｖｄおよびｑ相電圧指令値Ｖｑの合成ベクトルの長さが閾値以上である場合、ステップＳ１０へ移行する。なお、選択フラグは、後述するステップＳ１４、ステップＳ１７によってセットされ、たとえば、選択フラグが０である場合には、前回制御時にｄ相電圧指令値Ｖｄおよびｑ相電圧指令値Ｖｑの合成ベクトルの長さが閾値未満であり、選択フラグが１である場合には、前回制御時にｄ相電圧指令値Ｖｄおよびｑ相電圧指令値Ｖｑの合成ベクトルの長さが閾値以上であったことを示す。
【０１１９】
つづき、ステップＳ６に移行して、モータ制御装置２０は、前回制御時に比例積分制御が行われていたか否かを、制御移行フラグを参照して判断し、前回制御時に比例積分制御が行われている場合には、ステップＳ７へ移行し、そうでない場合にはステップＳ１６に移行する。なお、制御移行フラグは、後述するステップＳ９、ステップＳ１５によってセットされ、たとえば、制御移行フラグが０である場合には、前回制御時に比例積分制御が行われており、制御移行フラグが１である場合には、前回制御時にベクトル角度制御が行われていたことを示す。
【０１２０】
ステップＳ７では、前回制御時にｄ相電圧指令値Ｖｄおよびｑ相電圧指令値Ｖｑの合成ベクトルが閾値以上となっておらず、前回も通常の比例積分制御が行われていたため、通常制御を行うため、モータ制御装置２０は、各電流目標値ｉｄ*，ｉｑ*とｄ相およびｑ相の電流値ｉｄ，ｉｑとの偏差εｄ，εｑを演算するとともに積分値ｆｄ，ｆｑを演算して、ステップＳ８へ移行する。なお、ステップＳ７においては、通常の比例積分制御を行うため、積分値ｆｄ，ｆｑは、それぞれ、ｆｄ＝ｆｄｐｒｅ＋εｄ、ｆｑ＝ｆｑｐｒｅ＋εｑを演算することによって算出される。
【０１２１】
ステップＳ８では、Ｖｄ＝ＫＩ・ｆｄ＋ＫＰ・εｄを演算してｄ相の電圧指令値Ｖｄを算出し、Ｖｑ＝ＫＩ・ｆｑ＋ＫＰ・εｑを演算してｑ相の電圧指令値Ｖｑを算出してステップＳ９へ移行する。
【０１２２】
ステップＳ９では、今回制御では比例積分制御を行うので、制御移行フラグを０にセットして、ステップＳ１７へ移行する。
【０１２３】
他方、ステップＳ１０では、モータ制御装置２０は、前回制御時にｄ相電圧指令値Ｖｄおよびｑ相電圧指令値Ｖｑの合成ベクトルが閾値以上となっているので、ベクトル角度制御を行うため、前回制御時に出力されたｄｑ各相の電圧指令値Ｖｑ，Ｖｄからベクトル角度θｖを求める。このベクトル角度θｖの算出に当たっては、ｔａｎ−１（Ｖｄ／Ｖｑ）を演算して求めればよい。
【０１２４】
そして、ステップＳ１１では、ｑ相電流目標値ｉｑ*の符合からベクトル角度最終値θｄｑ*を求めるためのマップを選択し、電気角速度ωに基づいてベクトル角度最終値θｄｑ*を求める。
【０１２５】
つづき、ステップＳ１２では、ｑ相電流目標値ｉｑ*の符号と、ベクトル角度制御偏差εθｄｑと、ｑ相電流目標値ｉｑ*とｑ相電流値ｉｑの偏差である電流制御偏差εｑを求めて、合成ベクトルの回転方向を決定し、さらに、ベクトル角度目標値θｄｑを、ベクトル角度θｖと前述のαと合成ベクトルの回転方向からθｄｑ＝θｖ＋αあるいはθｄｑ＝θｖ−αによって求める。
【０１２６】
そして、ステップＳ１３に移行して、ベクトル角度目標値θｄｑからｄｑ各相の電圧指令値Ｖｄ，Ｖｑを求める。すなわち、ｄ相の電圧指令値ＶｄをＶｄ＝（Ｖｄ２＋Ｖｑ２）１／２・ｓｉｎθｄｑで演算し、ｑ相の電圧指令値ＶｑをＶｑ＝（Ｖｄ２＋Ｖｑ２）１／２・ｃｏｓθｄｑで演算する。
【０１２７】
さらに、ステップＳ１４に移行して、比例積分制御における積分パスの積分演算のみを中止してｄｑ各相の電圧指令値Ｖｄ，Ｖｑを演算し、積分を中止して演算したｄｑ相の電圧指令値Ｖｄ，Ｖｑの合成ベクトルの長さが閾値以上となる場合には、選択フラグを１に、そうでない場合には選択フラグを０にセットする。なお、この判断において、ｄ相電圧指令値Ｖｄおよびｑ相電圧指令値Ｖｑの合成ベクトル長さ（Ｖｄ２＋Ｖｑ２）１／２と閾値とを比較する演算を行うとルート演算が必要であり演算時間が長くなるので、ｄ相電圧指令値Ｖｄおよびｑ相電圧指令値Ｖｑの合成ベクトル長さの自乗の値（Ｖｄ２＋Ｖｑ２）と閾値の自乗の値とを比較するようにしておくとよい。
【０１２８】
つづき、ステップＳ１５では、今回制御ではベクトル角度制御を行うので、制御移行フラグを１にセットして、ステップＳ１８へ移行する。
【０１２９】
また、ステップＳ１６では、前回制御時にｄ相電圧指令値Ｖｄおよびｑ相電圧指令値Ｖｑの合成ベクトルが閾値以上となってはいないが、前回制御時にベクトル角度制御が行われており、今回制御では通常制御に移行するため、モータ制御装置２０は、ベクトル角度制御が行われた前回制御時のｄｑ各相の電圧指令値Ｖｄ，Ｖｑと偏差εｄ，εｑとから、ｄｑ各相の積分パスにおける積分値ｆｄ，ｆｑを書換えて、ｄｑ各相の電圧指令値Ｖｄ，Ｖｑを演算し、ステップＳ９へ移行する。
【０１３０】
戻って、ステップＳ１７では、上記したステップＳ８およびステップＳ１６の処理後に移行するステップであり、このステップＳ１７では、モータ制御装置２０は、ステップＳ８あるいはステップＳ１６で演算されたｄｑ相の電圧指令値Ｖｄ，Ｖｑの合成ベクトルの長さが閾値以上となる場合には、選択フラグを１に、そうでない場合には選択フラグを０にセットする。
【０１３１】
そして、ステップＳ１８では、モータ制御装置２０は、上記ｄ相電圧指令値Ｖｄおよびｑ相電圧指令値Ｖｑを三相の電圧指令値Ｖｕ，Ｖｖ，Ｖｗに変換する演算を行って、ステップＳ１９に移行する。
【０１３２】
そして、ステップＳ１９では、モータ制御装置２０は、電圧指令値Ｖｕ，Ｖｖ，Ｖｗを採り得る値に制限する処理が必要な場合には、この制限処理を行い、必要が無い場合には、制限処理を施さずにステップＳ２０に移行する。
【０１３３】
ステップＳ２０では、モータ制御装置２０は、電圧指令値Ｖｕ，Ｖｖ，ＶｗをＰＷＭ回路３０へ出力して、これらの一連の処理を終了する。
【０１３４】
そして、このモータ制御装置２０は、以上のステップＳ１からＳ２０までを繰り返し処理してモータＭを制御する。
【０１３５】
したがって、制御装置２０が上記した一連の処理を実行することで、上述した電流目標値演算部２１、電流制限部２２、二相電流演算部２３、比例積分制御部２４、ベクトル角度制御部２５、飽和判断部２６、三相変換演算部２７およびリミッタ２８の各部の処理が実現され、これによって、ｄｑ各相の電圧指令値Ｖｄ，Ｖｑの合成ベクトルのｑ軸に対する角度を制御することが可能となり、ｄｑ各相の電圧指令値Ｖｄ，Ｖｑの合成ベクトルが飽和する場合にあっても、モータＭが発生するトルクを適切に制御することが可能であるとともに、また、モータＭに従来のモータ制御装置に比較してより一層大きなトルクを発生させることが可能である。
【０１３６】
また、このモータ制御装置２０にあっては、モータＭにより一層大きなトルクを発生させることが可能であるので、トルク制御範囲が大きくなるとともに、種々の機器に搭載されるモータを小型化でき、たとえば、より小型のモータを使用してもアクチュエータの必要推力を確保することができる。換言すれば、より小さなモータを使用することができ、アクチュエータのコストを低減することが可能となり、アクチュエータを使用する装置へのアクチュエータの搭載性をも向上させることが可能となる。
【０１３７】
つづいて、他の実施の形態におけるモータ制御装置５０について説明する。この他の実施の形態におけるモータ制御装置５０が一実施の形態におけるモータ制御装置２０と異なるのは、ｄｑ各相の電圧指令値Ｖｄ，Ｖｑの合成ベクトルのベクトル角度を直接制御するのではなく、ｄ相の電圧指令値Ｖｄとｑ相の電圧指令値Ｖｑを独立に調節して、ベクトル角度を制御する点である。
【０１３８】
以下、この異なる点について詳しく説明する。この他の実施の形態におけるモータ制御装置５０は、具体的には、図１４に示すように、各電流目標値ｉｄ*，ｉｑ*を演算する電流目標値演算部２１と、一実施の形態における電流制限部２２と同様にｑ相電流目標値ｉｑ*がリミット値を超える場合にこれをリミット値Iｌｉｍに制限することに加えて、ｄ相電流目標値ｉｄ＊の下限を−Φ／Ｌｄの値に制限する電流制限部２２ａと、上記巻線１２の三相のうち二相に流れる電流をｄｑ変換してｄ相電流値ｉｄおよびｑ相電流値ｉｑを演算する二相電流演算部２３と、各電流目標値ｉｄ*，ｉｑ*と上記ｄ相およびｑ相の電流値ｉｄ，ｉｑに基づいてｄ相電圧指令値Ｖｄおよびｑ相電圧指令値Ｖｑを演算する比例積分制御部５１と、ｄ相およびｑ相の各電圧指令値Ｖｄ，Ｖｑの合成ベクトルのｑ軸に対する角度を制御するベクトル角度制御手段たるベクトル角度制御部５２と、ｄ相およびｑ相の各電圧指令値Ｖｄ，Ｖｑの合成ベクトルが飽和しているか否かを判断して比例積分制御とベクトル角度制御のいずれかを選択する選択手段である飽和判断部５３と、ｄ相電圧指令値Ｖｄおよびｑ相電圧指令値ＶｑをＵ，Ｖ，Ｗの三相各相の電圧指令値Ｖｕ，Ｖｖ，Ｖｗに変換する三相変換演算部２７と、三相変換演算部２７が出力する上記各電圧指令値Ｖｕ，Ｖｖ，Ｖｗのうち、ＰＷＭ開度が全開、すなわち、ＰＷＭデューティ比が最大値以上となる場合に、ＰＷＭデューティ比を最大および最小とする値に電圧指令値Ｖｕ，Ｖｖ，Ｖｗを制限するリミッタ２８と、モータMのＵ，Ｖ，Ｗのうち二相ｉｕ，ｉｖに流れる電流値を検出する電流検出器２９と、電圧指令値Ｖｕ，Ｖｖ，Ｖｗに応じて所定のＰＷＭ開度でＵ，Ｖ，Ｗの各巻線１２を印加するＰＷＭ回路３０とを備えて構成されている。
【０１３９】
比例積分制御部５１は、上述の一実施の形態におけるモータ制御装置２０の比例積分制御部２４と同様に、各電流目標値ｉｄ*，ｉｑ*とｄ相およびｑ相の電流値ｉｄ，ｉｑの各偏差εｄ，εｑを求め、上記各偏差εｄ，εｑをそれぞれ積分した値に積分ゲインＫＩを乗じるとともに、各偏差εｄ，εｑに比例ゲインＫＰを乗じることで得られる二つの値を加算して、ｄ相電圧指令値Ｖｄおよびｑ相電圧指令値Ｖｑを演算する。
【０１４０】
具体的には、比例積分制御部５１は、各相の偏差εｄ，εｑを演算する加減算部６１，６２と、各偏差εｄ，εｑに比例ゲインＫＰを乗じる乗算部６３，６４と、各偏差εｄ，εｑをそれぞれ積分する積分部６５，６６と、積分部６５，６６の演算結果である各積分値ｆｄ，ｆｑに積分ゲインＫＩを乗じる乗算部６７，６８と、乗算部６３が演算した比例ゲインＫＰを乗算後の偏差εｄと乗算部６７が演算した積分ゲインＫＩを乗算後の積分値ｆｄとを加算する加算部６９と、乗算部６４が演算した比例ゲインＫＰを乗算後の偏差εｑと乗算部６８が演算した積分ゲインＫＩを乗算後の積分値ｆｑとを加算する加算部７０とを備えて構成されている。
【０１４１】
すなわち、モータ制御装置５０の場合、電流ループは、二相電流演算部２３、比例積分制御部５１および制御対象であるモータＭとで作られる電流フィードバックループとなる。
【０１４２】
つづき、この他の実施の形態における発明のモータ制御装置５０にあっては、ベクトル角度制御部５２は、ｑ相電流ループにおける積分値ｆｑ、すなわち、上記比例積分制御部５１の積分部６６において演算される積分値ｆｑを、当該積分値ｆｑをフィードバックして補正して、ｑ相電圧指令値Ｖｑを調節してｄｑ各相の電圧指令値Ｖｄ，Ｖｑの合成ベクトルのベクトル角度を制御する。
【０１４３】
以下、この他の実施の形態におけるベクトル角度制御について、詳しく説明すると、ベクトル角度制御部５２は、積分部６６が演算した積分値ｆｑと、ｑ相積分値目標値ｆｑ＊との偏差である積分値偏差εｆｑを演算する加減算部７１と、上記積分値偏差εｆｑにゲインＧを乗じる乗算部７２と、この乗算部７２の出力であるＧ・εｆｑと上記した比例積分制御部５１の加減算部６２によって演算される偏差εｑとのいずれかを選択的に積分部６６への入力とするスイッチ７３と、スイッチ７３の切換を制御するスイッチコントローラ７５と、を備えて構成されている。
【０１４４】
ここで、スイッチ７３が加減算部６２によって演算される偏差εｑを積分部６６へ入力する場合には、ベクトル角度制御部５２によるベクトル角度制御は行われずに通常の比例積分制御が行われ、反対に、スイッチ７３が乗算部７２の出力であるＧ・εｆｑを積分部６６へ入力する場合には、比例積分制御からベクトル角度制御部５２によるベクトル角度制御に切換り、ベクトル角度制御部５２は、積分値ｆｑをフィードバックするループによって積分部６６の演算結果である積分値ｆｑを徐々に積分値目標値ｆｑ＊に誘導してｄｑ各相の電圧指令値Ｖｄ，Ｖｑの合成ベクトルのｑ軸に対する角度を制御する。
【０１４５】
そして、図６に示したマップを利用して電気角速度ωから得られるベクトル角度最終値θｄｑ*を求めて、ｄｑ各相の電圧指令値Ｖｄ，Ｖｑの合成ベクトルの長さ（Ｖｄ２＋Ｖｑ２）１／２とｃｏｓθｄｑ*の乗算結果を積分値目標値ｆｑ＊に設定することで、合成ベクトルのベクトル角度を一実施の形態と同様に制御することが可能となる。
【０１４６】
つまり、ｑ相電流目標値ｉｑ*は、電流制限部２２によって制限されているので、比例積分制御部５１における比例パスはｑ相電流値ｉｑがｑ相電流目標値ｉｑ*に追随することで小さな値を出力するようになって、ベクトル角度制御が行われている積分パスの値がｑ相電圧指令値Ｖｑを支配するようになるので、最終的には、ｑ相電圧指令値Ｖｑは、積分値目標値ｆｑ＊に誘導されることになり、ｑ相電圧指令値Ｖｑを狙った値に制御することができる。
【０１４７】
なお、実際には、（Ｖｄ２＋Ｖｑ２）１／２・ｃｏｓθｄｑ*を乗算するには、時間がかかるので、電気角速度ωをパラメータとした（Ｖｄ２＋Ｖｑ２）１／２・ｃｏｓθｄｑ*のマップを用いて、マップ演算すればよい。しがたって、たとえば、上記の力行状態では、電気角速度ωがマイナスの大きな値である場合、ベクトル角度を−９０度に設定することになるので、積分値目標値ｆｑ＊を０に設定すればよい。
【０１４８】
また、ロータＲの回転を助勢するトルクをモータＭが発生している場合（力行状態）では、電流目標値演算部２１が出力するｄ相電流目標値ｉｄ*をマイナスの値とする弱め界磁制御を実施する。
【０１４９】
上記の力行状態において、ベクトル角度制御を実施する場合、合成ベクトルのベクトル角度θｖをマイナスの角度に誘導する必要があるが、ｄ相電流目標値ｉｄ*を０とする制御を実施すると、実際にはマイナスの値を採るｄ相電流ｉｄの影響により、偏差εｄがプラスとなって、ｄ相電圧指令値Ｖｄがプラス方向に誘導され、ベクトル角度を狙い通りに制御できなくなる虞がある。そこで、上述したように、特に、力行状態では、電流目標値演算部２１が出力するｄ相電流目標値ｉｄ*をマイナスの値とする弱め界磁制御を実施することで、ｄ相電圧指令値Ｖｄをマイナスの値にすることができ、合成ベクトルのベクトル角度θｖを狙い通りに制御できるようになる。
【０１５０】
なお、弱め界磁制御を実施して、ｄ相電圧指令値Ｖｄをマイナスに誘導する場合において、電流目標値演算部２１は、ｄ相電流目標値ｉｄ*をマイナスの値に設定することになるが、この値がマイナスであって過剰に大きい場合には、ｑ相電流ｉｑの絶対値を最大とすることができない。そこで、ｑ相電流ｉｑを最大にするｄ相電流ｉｄは、モータＭの鎖交磁束最大数Φをｄ相インダクタンスＬｄで除した値−Φ／Ｌｄであるため、この電流目標値演算部２１が出力するｄ相電流目標値ｉｄ*を電流制限部２２ａによって−Φ／Ｌｄに制限するようにしている。したがって、上記の力行状態にあっては、ｄ相電流目標値ｉｄ*が−Φ／Ｌｄに制限され、これによって、ｑ相電流ｉｑの絶対値が最大値を取れないような事態が防止される。ここで、電流制限部２２ａは、ｑ相電流目標値ｉｑ＊に関しては上述の一実施の形態と同様に制限する。
【０１５１】
なお、制動状態において、もともと、電流目標値演算部２１がｄ相電流目標値ｉｄ*を０として制御しているような場合には、ｄｑ各相の合成ベクトルが飽和する状態においてｄ相電流値ｉｄがマイナスの値をとるため、ｄ相の偏差εｄがプラスの値を持ち、ｄ相電圧指令値Ｖｄがプラスの値となることから、特に、このような制動状態においては、電流目標値演算部２１がｄ相電流目標値ｉｄ*をマイナスの値に設定する弱め界磁制御を実施しなくともよい。
【０１５２】
また、ベクトル角度制御を行う際、実際には、電気角速度ωの絶対値が小さく、すなわち、ロータＲの回転速度が小さい場合には、ｄｑ各相の電圧指令値Ｖｄ，Ｖｑの合成ベクトルが飽和するケースはあまりないことから、積分値目標値ｆｑ＊を上記のごとく可変とするのではなく０に設定しておくようにしても、実用上は差し支えなく、制御に必要な演算も簡単となり、演算周期も短縮することが可能となる。
【０１５３】
ちなみに、積分値目標値ｆｑ＊を０に設定しておく場合には、ｄ相電圧指令値Ｖｄとｑ相電圧指令値Ｖｑの合成ベクトルがｑ軸に対しなす角度が９０度および−９０度になるように誘導することができ、モータ制御装置２０の処理手順を実現するプログラム上にｑ相の積分値目標値ｆｑ＊を演算する記述をする必要が無くなりプログラムが簡素化することが可能となる。
【０１５４】
なお、上記したところでは、積分値ｆｑをフィードバックしているが、積分ゲインＫＩ乗算後の値ｆｑ・ＫＩをフィードバックするループによって、最終的に積分パスが出力する値、すなわち、乗算部６８が出力する値ｆｑ・ＫＩを積分値目標値ｆｑ＊に積分ゲインＫＩを乗じた値に誘導するようにしてもよいことは勿論であり、積分値をフィードバックすることにはｑ相積分パスにおける乗算部６８が出力する値をフィードバックすることも含まれる。
【０１５５】
また、このように、このモータ制御装置５０にあっては、ベクトル角度制御部５２は、積分値ｆｑをフィードバックして当該積分値ｆｑを補正するので、積分値ｆｑは、一次遅れ系のフィードバックループの時定数に依存して徐々に積分値目標値ｆｑ＊に変化することになるとともに、比例パスに対しては補正処理を行わずに積分値ｆｑのみを補正するので、スイッチ７３の切換時に、電流ループにおける積分部６６のフィルタ特性を利用して、ｑ相電圧指令値Ｖｑに急激に変化を生じさせることもなく、モータＭの発生トルクに急激な変化を生じさせることがなく、アクチュエータのストローク速度に急激な変化を生じさせることがない。
【０１５６】
さらに、スイッチ７３の切換時に、ｑ相電圧指令値Ｖｑに急激に変化を生じさせることがないので、積分値ｆｑの補正に当たり、補正制御をフェードイン・フェードアウトさせる必要が無く、制御アルゴリズムが複雑となってしまう不具合もない。
【０１５７】
換言すれば、直接的に、ｑ相の電圧指令値Ｖｑを補正したり、比例パスの値をも補正したりすることも可能ではあるが、すると、その制御に当たってフェードイン・フェードアウトさせなくてはｑ相電圧指令値Ｖｑの変化が急激となることから、制御が煩雑となるが、本実施の形態のモータ制御装置５０にあっては、このような不具合がないのである。
【０１５８】
つづき、スイッチ７３の切換について説明する。上記スイッチ７３の切換、すなわち、比例積分制御とベクトル角度制御の切換は、本実施の形態においては、ｄｑ各相の電圧指令値Ｖｄ，Ｖｑの合成ベクトルが飽和することを条件としている。
【０１５９】
すなわち、ｄｑ各相の電圧指令値Ｖｄ，Ｖｑの合成ベクトルが飽和するまでは、比例積分制御を行えば足りるので、ｄｑ各相の電圧指令値Ｖｄ，Ｖｑの合成ベクトルが飽和状態であってもモータＭに大きなトルクを発生させるべくベクトル角度制御を行えばよいことから、ｄｑ各相の電圧指令値Ｖｄ，Ｖｑの合成ベクトルが飽和することを条件として比例積分制御からベクトル角度制御へ切換る。
【０１６０】
上記したところから、通常の比例積分制御が可能である時、スイッチ７３を加減算部６２によって演算される偏差εｑが積分部６６へ入力するようにしておき、ｄ相およびｑ相の電圧指令値Ｖｄ，Ｖｑの合成ベクトルが飽和することの条件を満たす場合に、上記スイッチ７３を乗算部７２の出力であるＧ・εｆｑが積分部６６へ入力されるように切換えてやればよいことになる。
【０１６１】
このため、本実施の形態におけるモータ制御装置５０は、ｄｑ各相の各電圧指令値Ｖｄ，Ｖｑの合成ベクトルが飽和しているか否かを判断する飽和判断部５３を備え、飽和判断部５３の判断の結果、上記条件を満たす場合に、スイッチコントローラ７５がベクトル角度制御を選択して比例積分制御からベクトル角度制御へと切換えるように、スイッチ７３を切換えるようにしている。
【０１６２】
詳しく説明すると、飽和判断部５３は、ｄ相電圧指令値Ｖｄおよびｑ相電圧指令値Ｖｑの合成ベクトル長さの自乗の値（Ｖｄ２＋Ｖｑ２）と上述の閾値の自乗の値とを比較して、ｄ相電圧指令値Ｖｄおよびｑ相電圧指令値Ｖｑの合成ベクトル長さが閾値を超えているかを判断する。なお、この場合、上述のように、閾値を飽和電圧Ｖｓとしておくことによって、上記判断により、ｄ相電圧指令値Ｖｄおよびｑ相電圧指令値Ｖｑの合成ベクトルが飽和している状態であるかを判断することができる。
【０１６３】
このように、ｄ相電圧指令値Ｖｄおよびｑ相電圧指令値Ｖｑの合成ベクトル長さの自乗の値、すなわち、ｄ相電圧指令値Ｖｄの二乗の値とｑ相電圧指令値Ｖｑの二乗の値とを足し合わせた加算値（Ｖｄ２＋Ｖｑ２）と閾値の自乗とを比較して、ｄ相電圧指令値Ｖｄとｑ相電圧指令値Ｖｑの合成ベクトル長さ（Ｖｄ２＋Ｖｑ２）１／２が閾値を超えているかを判断するようにしているので、この判断に必要な演算にルート演算を行わずに済み、演算時間の短縮に寄与することができる。
【０１６４】
なお、飽和の判断は、上記したところに代えて、ｑ相電流目標値ｉｑ*がリミット値Ｉｌｉｍを超える場合には、ｑ相電流目標値ｉｑ*はｑ相電流ｉｑが採りえない値となっていることから、ｄ相電圧指令値Ｖｄおよびｑ相電圧指令値Ｖｑの合成ベクトルが飽和することになるので、このように、ｑ相電流目標値ｉｑ*がリミット値Ｉｌｉｍを超えることをもってして飽和判断部５３が合成ベクトルが飽和状態であることを判断してもよい。
【０１６５】
そして、飽和判断部５３は、ｄ相電圧指令値Ｖｄおよびｑ相電圧指令値Ｖｑの合成ベクトルが飽和している場合、０をスイッチコントローラ７５に出力し、飽和していない場合には、１をスイッチコントローラ７５に出力するようにする。
【０１６６】
他方、スイッチコントローラ７５は、図１５に示すように、飽和判断部５３が出力する値を否定する否定演算部７６を備え、また、スイッチコントローラ７５は、飽和判断部５３が出力した値をそのままｑ相電流目標値ｉｑ*とｑ相電流ｉｑとの偏差εｑを演算する加減算部６２とスイッチ７３との間に設けた乗算部７７およびｄ相の積分ループ中の積分部６５の手前に設けた乗算部８０へ出力するとともに、否定演算部７６が出力する値を積分値ｆｑの補正用のフィードバックループの途中であってスイッチ７３と乗算部７２との間に設けた乗算部７８へ出力し、さらには、飽和判断部５３が出力する値をそのままスイッチ７３へ出力するようになっている。
【０１６７】
また、スイッチ７３は、この場合、スイッチコントローラ７５から１未満の値を受け取ると、ベクトル角度制御を有効とするべく、乗算部７２の出力であるＧ・εｆｑが積分部３９へ入力されるように切換り、スイッチコントローラ７５から１以上の値を受け取ると、加減算部６２によって演算される偏差εｑが積分部６６へ入力されるように切換るようになっている。
【０１６８】
ここで、飽和判断部５３がｄ相電圧指令値Ｖｄとｑ相電圧指令値Ｖｑの合成ベクトルが飽和していると判断して０を出力すると、スイッチコントローラ７５は、スイッチ７３に対しては０を、乗算部７７，８０に対しては０を、乗算部７８に対しては１をそれぞれ出力する。
【０１６９】
すると、スイッチ７３は、ベクトル角度制御を選択するべく、乗算部７２の出力であるＧ・εｆｑが積分部６６へ入力されるように切換り、乗算部７２の出力であるＧ・εｆｑとスイッチコントローラ７５が出力する１とが乗算部７８へ入力されるので、積分部６６へは、Ｇ・εｆｑがそのまま入力されるようになる。また、乗算部８０へはスイッチコントローラ７５が出力する０と偏差εｄが入力されるので、積分部６５へは０が入力されるようになる。
【０１７０】
つまり、この場合には、ベクトル角度制御が行われるので、積分値ｆｑを補正する制御が実施されるとともに、乗算部８０には０が出力されることから、ｄ相電流ループにおける積分演算は中止されることになる。なお、電流目標値演算部２１は、飽和判断部５３がｄ相電圧指令値Ｖｄとｑ相電圧指令値Ｖｑの合成ベクトルが飽和しているか否かに関わらず、ｄ相電流目標値ｉｄ＊をマイナスの値にする弱め界磁制御を実施するようになっている。
【０１７１】
対し、飽和判断部５３がｄ相電圧指令値Ｖｄとｑ相電圧指令値Ｖｑの合成ベクトルが飽和していないと判断して１を出力すると、スイッチコントローラ７５は、スイッチ７３に対しては１を、乗算部７７，８０に対しては１を、乗算部７８に対しては０をそれぞれ出力する。
【０１７２】
すると、スイッチ７３は、比例積分制御を選択するべく、加減算部６２によって演算される偏差εｑが積分部６６へ入力されるように切換り、乗算部７７へはスイッチコントローラ７５が出力する１と偏差εｑが入力されるので、積分部６６へは、偏差εｑがそのまま入力されるようになる。さらに、乗算部８０へはスイッチコントローラ７５が出力する１と偏差εｄが入力されるので、積分部６５へは偏差εｄがそのまま入力されるようになる。
【０１７３】
つまり、この場合には、積分値ｆｑを補正してベクトル角度制御を行う必要が無いので、通常の比例積分制御が行われることになる。
【０１７４】
また、ベクトル角度制御では、ｄ相電流ループにおける積分演算が中止され、さらに、ｑ相積分値ｆｑは、小さい値の積分値目標値ｆｑ＊に誘導されることになるので、ｄｑ各相の積分値ｆｄ，ｆｑの絶対値が大きな値を持つようなことがなく、比例積分制御を再開するときに、制御応答性が悪化してしまうことが無い。さらに、本実施の形態におけるベクトル角度制御では、ｄ相電流ループにおける積分演算が中止するとともにｑ相の積分値ｆｑを補正するようにしているので、比例積分制御に切換るときにベクトル角度制御をフェードアウトさせたり、ｄｑ各相の積分値ｆｄ，ｆｑの書換えを行わずとも、ｄｑ各相の電圧指令値Ｖｄ，Ｖｑに大きな段差が生じることがなく、モータＭの発生トルクに大きな変動が生じてしまう事態が防止される。
【０１７５】
かくして、飽和判断部５３は、上記のように、モータ制御装置５０が通常の比例積分制御をするべきか、ベクトル角度制御をするべきかを判断し、比例積分制御とベクトル角度制御のうち、いずれかの制御を選択するので、モータＭを適切に制御することが可能となる。
【０１７６】
さらに、スイッチコントローラ７５を上記のごとく構成することで、高度な演算処理を要せずして、飽和判断部５３が出力する値を論理演算のみによってスイッチ７３を制御して、比例積分制御とベクトル角度制御のいずれかを選択することが可能となる。
【０１７７】
そして、この他の実施の形態におけるモータ制御装置５０も、上記した一実施の形態におけるモータ制御装置２０と同様に、ｄｑ各相の電圧指令値Ｖｄ，Ｖｑの合成ベクトルのｑ軸に対する角度を制御することが可能となり、ｄｑ各相の電圧指令値Ｖｄ，Ｖｑの合成ベクトルが飽和する場合にあっても、モータＭが発生するトルクを適切に制御することが可能であるとともに、また、モータＭに従来のモータ制御装置に比較してより一層大きなトルクを発生させることが可能である。
【０１７８】
また、このモータ制御装置５０にあっても、モータＭにより一層大きなトルクを発生させることが可能であるので、トルク制御範囲が大きくなるとともに、より小型のモータを使用してもアクチュエータの必要推力を確保することができる。換言すれば、より小さなモータを使用することができ、アクチュエータのコストを低減することが可能となり、アクチュエータを使用する装置へのアクチュエータの搭載性をも向上させることが可能となる。
【０１７９】
さらに、この他の実施の形態のモータ制御装置においては、ベクトル角度制御では、演算に時間を要するベクトル角度計算を用いずにｄ相およびｑ相の電圧指令値Ｖｄ，Ｖｑを独立して調節することによってｄｑ各相の電圧指令値Ｖｄ，Ｖｑの合成ベクトルのベクトル角度を制御することが可能であるから、演算周期が短縮されるとともに、演算負担も軽減され、モータ制御装置５０の実用性が向上することになる。
【０１８０】
つづいて、上述のように構成されるモータ制御装置５０の電流検出器２９、回転角センサ１５およびＰＷＭ回路３０以外の各部におけるハードウェア資源は、上述のモータ制御装置２０と同様であり、電流目標値演算部２１、電流制限部２２、二相電流演算部２３、比例積分制御部５１、ベクトル角度制御部５２、飽和判断部５３、三相変換演算部２７、リミッタ２８、スイッチ７３およびスイッチコントローラ７５における処理手順は、プログラムとしてＲＯＭや他の記憶装置に予め格納され、上記これら各部は、ＣＰＵが上記プログラムを読み込んで、上記した各演算処理を実行することによって実現される。
【０１８１】
ここで、上記したモータ制御装置５０における処理手順について、図１６に示すフローチャートに基づいて説明する。
【０１８２】
まず、ステップＳ３１でモータ制御装置５０は、三相の巻線１２のうちの任意の二相、たとえば、Ｕ相とＶ相の電流値ｉｕ，ｉｖと、モータＭの電気角θと電気角速度ωを読み込む。
【０１８３】
つづき、ステップＳ３２に移行して、モータ制御装置５０は、各電流目標値ｉｄ*，ｉｑ*を演算する。なお、必要がある場合、電気角速度ωに基づいて電流目標値ｉｑ*を制限する処理を行う。また、ｄ相電流目標値ｉｄ*については、弱め界磁制御が適用されて演算される。
【０１８４】
さらに、ステップＳ３３では、モータ制御装置５０は、電流値ｉｕ，ｉｖと電気角θを用いて、上記各電流値ｉｖ，ｉｕをｄ相およびｑ相の電流値ｉｄ，ｉｑへ変換する演算を行って、ステップＳ３４に移行する。
【０１８５】
ステップＳ３４では、前回制御時にｄ相電圧指令値Ｖｄおよびｑ相電圧指令値Ｖｑの合成ベクトルの長さが閾値以上であったか、すなわち、ｄ相電圧指令値Ｖｄおよびｑ相電圧指令値Ｖｑの合成ベクトル長さ（Ｖｄ２＋Ｖｑ２）１／２が閾値以上であったかを、選択フラグを参照して判断する。なお、この閾値は上述の一実施の形態と同様のものである。そして、選択フラグが１の場合、ｄ相電圧指令値Ｖｄおよびｑ相電圧指令値Ｖｑの合成ベクトルの長さが閾値以上であり、選択フラグが０である時は、ｄ相電圧指令値Ｖｄおよびｑ相電圧指令値Ｖｑの合成ベクトルの長さが閾値未満と判断する。そして、前回制御時にｄ相電圧指令値Ｖｄおよびｑ相電圧指令値Ｖｑの合成ベクトルの長さが閾値以上でない場合、ステップＳ３５へ移行し、前回制御時にｄ相電圧指令値Ｖｄおよびｑ相電圧指令値Ｖｑの合成ベクトルの長さが閾値以上である場合、ステップＳ３７へ移行する。
【０１８６】
つづき、ステップＳ３５に移行して、前回制御時にｄ相電圧指令値Ｖｄおよびｑ相電圧指令値Ｖｑの合成ベクトルが閾値以上となっておらず、今回も通常の比例積分制御を行うため、モータ制御装置５０は、各電流目標値ｉｄ*，ｉｑ*とｄ相およびｑ相の電流値ｉｄ，ｉｑとの偏差εｄ，εｑを演算するとともに積分値ｆｄ，ｆｑを演算して、ステップＳ３６へ移行する。なお、ステップＳ３５においては、通常の比例積分制御を行うため、積分値ｆｄ，ｆｑは、それぞれ、ｆｄ＝ｆｄｐｒｅ＋εｄ、ｆｑ＝ｆｑｐｒｅ＋εｑを演算することによって算出される。ここで、上述したように、ｆｄｐｒｅ，ｆｑｐｒｅは、それぞれ、前回制御時に演算されたｄ相およびｑ相の積分値である。
【０１８７】
ステップＳ３６では、Ｖｄ＝ＫＩ・ｆｄ＋ＫＰ・εｄを演算してｄ相の電圧指令値Ｖｄを算出し、Ｖｑ＝ＫＩ・ｆｑ＋ＫＰ・εｑを演算してｑ相の電圧指令値Ｖｑを算出してステップＳ４０へ移行する。
【０１８８】
他方、ステップＳ３７では、モータ制御装置５０は、前回制御時にｄ相電圧指令値Ｖｄおよびｑ相電圧指令値Ｖｑの合成ベクトルが閾値以上となっているので、今回制御においてはベクトル角度制御を行うため、積分値目標値ｆｑ＊を演算する。
【０１８９】
そして、ステップＳ３８へ移行して、ｑ相積分ループの積分値ｆｑを補正する処理を行い、さらに、ｄ相積分ループにおける積分演算が中止される。具体的には、今回制御時の積分値ｆｑをｆｑ＝ｆｑｐｒｅ＋Ｇ・εｆｑの演算を行うことによって求め、ｄ相の積分値ｆｄをｆｄ＝ｆｄｐｒｅの演算によって求める。
【０１９０】
そして、ステップＳ３９に移行して、ｄｑ相の電圧指令値Ｖｄ，Ｖｑを算出し、ステップＳ４０へ移行する。具体的には、Ｖｄ＝ＫＩ・ｆｄ＋ＫＰ・εｄを演算してｄ相の電圧指令値Ｖｄを算出し、Ｖｑ＝ＫＩ・ｆｑ＋ＫＰ・εｑを演算してｑ相の電圧指令値Ｖｑを算出する。
【０１９１】
ステップＳ４０では、ｄｑ相の電圧指令値Ｖｄ，Ｖｑの合成ベクトルの長さが閾値以上となる場合には、選択フラグを１に、そうでない場合には選択フラグを０にセットする。なお、閾値を飽和電圧Ｖｓとする場合には、ｑ相電流目標値ｉｑ*がリミット値Ｉｌｉｍを超えるか否かをもってして、ｄ相電圧指令値Ｖｄおよびｑ相電圧指令値Ｖｑの合成ベクトルが飽和しているか否かを判断することが可能であり、選択フラグをセットする当該ステップＳ４０を、上記ステップＳ３２とステップＳ３３との間に設け、前回制御時におけるｄｑ各相の電圧指令値Ｖｄ，Ｖｑの合成ベクトルが飽和しているか否かで比例積分制御とベクトル角度制御のいずれかを選択するのではなく、今回の制御のルーチンで比例積分制御とベクトル角度制御のいずれかを選択するようにしてもよい。
【０１９２】
そして、ステップＳ４１では、モータ制御装置５０は、上記ｄ相電圧指令値Ｖｄおよびｑ相電圧指令値Ｖｑを三相の電圧指令値Ｖｕ，Ｖｖ，Ｖｗに変換する演算を行って、ステップＳ４３に移行する。
【０１９３】
そして、ステップＳ４２では、モータ制御装置５０は、電圧指令値Ｖｕ，Ｖｖ，Ｖｗを採り得る値に制限する処理が必要な場合には、この制限処理を行い、必要が無い場合には、制限処理を施さずにステップＳ４３に移行する。
【０１９４】
ステップＳ４３では、モータ制御装置５０は、電圧指令値Ｖｕ，Ｖｖ，ＶｗをＰＷＭ回路３０へ出力して、これらの一連の処理を終了する。
【０１９５】
そして、このモータ制御装置５０は、以上のステップＳ３１からＳ４３までを繰り返し処理してモータＭを制御する。
【０１９６】
したがって、モータ制御装置５０が上記した一連の処理を実行することで、上述した電流目標値演算部２１、電流制限部２２、二相電流演算部２３、比例積分制御部５１、ベクトル角度制御部５２、飽和判断部５３、三相変換演算部２７、リミッタ２８、スイッチ７３およびスイッチコントローラ７５の各部の処理が実現され、これによって、ｄｑ各相の電圧指令値Ｖｄ，Ｖｑの合成ベクトルのｑ軸に対する角度を制御することが可能となり、ｄｑ各相の電圧指令値Ｖｄ，Ｖｑの合成ベクトルが飽和する場合にあっても、モータＭが発生するトルクを適切に制御することが可能であるとともに、また、モータＭに従来のモータ制御装置に比較してより一層大きなトルクを発生させることが可能である。
【０１９７】
また、この他の実施の形態におけるモータ制御装置５０のベクトル角度制御にあっては、比例積分制御部５１のｄｑ各相の電流ループにおける入力数値を変更するようにしているので、通常の比例積分制御とベクトル角度制御との切換え時には、ｄｑ各相の電圧指令値Ｖｄ，Ｖｑが特別な処理を施すことなく急激に変化することがなく、制御が煩雑となるような不具合もない。
【０１９８】
以上で、本発明の実施の形態についての説明を終えるが、本発明の範囲は図示されまたは説明された詳細そのものには限定されないことは勿論である。
【図面の簡単な説明】
【０１９９】
【図１】一実施の形態におけるモータ制御装置を適用したアクチュエータの概念図である。
【図２】電気角速度に対するq軸電流を最大とするｄｑ各相の電圧指令値の合成ベクトルのベクトル角度の変化を示す図である。
【図３】（Ａ）は、ｄ相電流をゼロにし、飽和時に積分中止するようにモータを制御した場合のアクチュエータのストローク変位に対するｄｑ各相の電圧指令値の合成ベクトルのベクトル角度の変化を示すグラフである。（Ｂ）は、弱め界磁制御を行いつつ飽和時に積分中止してモータを制御した場合のアクチュエータのストローク変位に対するｄｑ各相の電圧指令値の合成ベクトルのベクトル角度の変化を示すグラフである。
【図４】一実施の形態におけるモータ制御装置のシステム図である。
【図５】ＰＷＭ回路を示す図である。
【図６】（Ａ）は、モータに逆回転方向のトルクを発生させる場合に使用される電気角速度をパラメータとして作成したベクトル角度最終値のマップを示す図である。（Ｂ）は、モータに正回転方向のトルクを発生させる場合に使用される電気角速度をパラメータとして作成したベクトル角度最終値のマップを示す図である。
【図７】ｄｑ各相の電圧指令値の合成ベクトルのｑ軸に対する回転方向を決定するための表である。
【図８】ｑ相電流目標値がプラスの場合の合成ベクトルの回転方向を説明する図である。
【図９】ｑ相電流目標値がプラスの場合のｄｑ直交座標における合成ベクトルの回転方向を説明する図である。
【図１０】ｑ相電流目標値がマイナスの場合の合成ベクトルの回転方向を説明する図である。
【図１１】ｑ相電流目標値がマイナスの場合のｄｑ直交座標における合成ベクトルの回転方向を説明する図である。
【図１２】電気角速度をパラメータとして作成したｑ相電流目標値を制限するリミット値のマップを示す図である。
【図１３】一実施の形態のモータ制御装置における処理手順を示すフローチャートである。
【図１４】他の実施の形態におけるモータ制御装置のシステム図である。
【図１５】選択手段におけるスイッチコントローラのシステム図である。
【図１６】他の実施の形態のモータ制御装置における処理手順を示すフローチャートである。
【符号の説明】
【０２００】
１  回転部材たるピニオンギア
２  直動部材たるラック軸
１０  フレーム
１１  ステータコア
１２  巻線
１３  シャフト
１４  駆動用磁石
１５  回転角センサ
２０，５０  モータ制御装置
２１  電流目標値演算部
２２，２２ａ  電流制限部
２３  二相電流演算部
２４，５１  比例積分制御部
２５，５２  ベクトル角度制御部
２６，５３  飽和判断部
２７  三相変換演算部
２８  リミッタ
２９  電流検出器
３０  ＰＷＭ回路
３０ａ  スイッチング素子
６１，６２，７１  加減算部
６３，６４，６７，６８，７２，７７，７８  乗算部
６５，６６  積分部
６９，７０  加算部
７３  スイッチ
７５  スイッチコントローラ
７６  否定演算部
８０  乗算部
Ｅ  電源
Ｈ  運動変換機構
Ｍ  モータ
Ｒ  ロータ
Ｓ  ステータ
【図１】
2008067582.tif 000006
【図２】
2008067582.tif 000007
【図３】
2008067582.tif 000008
【図４】
2008067582.tif 000009
【図５】
2008067582.tif 000010
【図６】
2008067582.tif 000011
【図７】
2008067582.tif 000012
【図８】
2008067582.tif 000013
【図９】
2008067582.tif 000014
【図１０】
2008067582.tif 000015
【図１１】
2008067582.tif 000016
【図１２】
2008067582.tif 000017
【図１３】
2008067582.tif 000018
【図１４】
2008067582.tif 000019
【図１５】
2008067582.tif 000020
【図１６】
2008067582.tif 000021