以下、図に示した実施の形態に基づき、本発明を説明する。図1は、一実施の形態におけるモータ制御装置を適用したアクチュエータの概念図である。図2は、d相電圧指令値とq相電圧指令値の合成ベクトルのq軸に対しなす角度に対するq相電流の変化を示す図である。図3は、dq座標において振動モードの発現が阻止されるd相電圧指令値とq相電圧指令値の合成ベクトルのq軸に対する角度範囲を示した図である。図4は、d相電圧指令値とq相電圧指令値の合成ベクトルのq軸に対しなす角度に対するq相電流およびd相電流の変化を示す図である。図5(A)は、d相電流をゼロに制御するようにした場合のアクチュエータのストローク変位に対する合成ベクトルがq軸に対しなす角度の変化を示すグラフである。図5(B)は、q相の電流ループにおける積分値の増大を抑制する積分飽和処理を行って制御した場合のアクチュエータのストローク変位に対する合成ベクトルがq軸に対しなす角度の変化を示すグラフである。図5(C)は、弱め界磁制御を実施した場合のアクチュエータのストローク変位に対する合成ベクトルがq軸に対しなす角度の変化を示すグラフである。図6は、モータ制御装置のシステム図である。図7は、PWM回路を示す図である。図8は、補正手段におけるスイッチコントローラのシステム図である。図9は、電気角速度をパラメータとして作成したq相電流目標値を制限するリミット値のマップを示す図である。図10は、一実施の形態のモータ制御装置における処理手順を示すフローチャートである。
一実施の形態におけるモータ制御装置20は、たとえば、図1に示すようなアクチュエータに適用されたモータMを制御することができる。このアクチュエータは、図1に示すように、回転部材たる螺子軸1と直動部材たるボール螺子ナット2とを有してボール螺子ナット2の直線運動を螺子軸2の回転運動に変換する運動変換機構Hと、螺子軸1に連結されるロータRを有するモータMとを備えて構成されている。
詳しくは、螺子軸1は、ボール螺子ナット2に回転自在に螺合されるとともに、螺子軸1の図1中上端は、モータMのロータRに連結されている。したがって、螺子軸1とボール螺子ナット2が軸方向の直線相対運動を呈すると、回転部材である螺子軸1が回転運動を呈することになり、この螺子軸1の回転運動がモータMのロータRに伝達されることになり、運動変換機構Hは、この実施の形態の場合、送り螺子機構とされている。ここで、螺子軸1の回転速度を歯車機構等で構成される減速機を介して減速して上記螺子軸1の回転運動をロータRに伝達するようにしてもよい。
そして、図示しないが、ボール螺子ナット2は被駆動部材に連結され、この場合、被駆動部材は、モータMの駆動によって直動運動されることになる。したがって、本実施の形態においては、モータMの動力を図外の被駆動部材へ伝達する伝達部材は運動変換機構Hとされ、このアクチュエータと図示しない被駆動部材とで駆動系を構成している。
なお、上記螺子軸1とボール螺子ナット2が軸方向の直線相対運動を呈するときに、螺子軸1を回転不能として代わりにボール螺子ナット2を回転させるようにする場合には、このボール螺子ナット2の回転運動をモータMのロータRに伝達するようにしてもよい。また、伝達部材である運動変換機構Hは、上記したもの以外にも、ラックアンドピニオンのような機構とされてもよい。
そして、モータMは、この場合、筒状のフレーム10と、フレーム10の内周側に設けた電機子であるステータSと、フレーム10に回転自在に軸支されるロータRとを備え三相ブラシレスモータとして構成され、詳しくは、ステータSは、複数のティースを備えた環状のステータコア11と、各ティースに巻回されたU,V,W相の各相における巻線12とを備えており、他方のロータRは、螺子軸1の一端に連結されるシャフト13と、シャフト13の中間部外周に装着された駆動用磁石14とを備えている。
なお、駆動用磁石14は、駆動用磁石14を所定数の極数を実現できるようにブロック化してシャフト13の外周に接着されるか、環状に形成して分割着磁されてシャフト13の外周に嵌着される。
また、このモータMには、ロータRの回転角(電気角)θを検出するために、回転角センサ15が搭載されており、具体的にはたとえば、回転角センサ15は、シャフト13に設けたレゾルバコアとフレーム10に設けられるレゾルバコアに対向するレゾルバステータとを備え、さらに、電気角θから電気角速度ωを得られるようになっている。なお、電気角θから電気角速度ωを演算する演算部を別途設けるのであれば、回転角センサ15としては、他にも、光学式のエンコーダを採用してもよいし、ロータRにセンシング用磁石を設ける場合にはホール素子やMR素子等の磁気センサをフレーム10に設けるとした構成としてもよい。
上述のように、このアクチュエータにあっては、駆動源をモータMとしているので、モータMに電気エネルギを与えて駆動する場合には、螺子軸1を回転駆動させて螺子軸1とボール螺子ナット2とを積極的に相対直線運動させる、すなわち、ストロークさせることができ、アクチュエータとしての機能を発揮でき、図外のボール螺子ナット2に連結される被駆動部材を往復動させることができる。
また、モータMは、被駆動部材が外力によって強制的に動かされる場合には、螺子軸1から強制的に回転運動が入力され、誘導起電力や電源からの電力によって巻線12に電流が流れて磁界が形成されて電磁力が発生し、螺子軸1の回転運動を抑制するトルクを発生するので、螺子軸1とボール螺子ナット2の相対直線運動を抑制するように機能する。すなわち、この場合には、モータMが外部から入力される運動エネルギを回生して電気エネルギに変換して得られる電力によって、あるいは、この回生に加えて電源から供給される電力によって、発生するトルクで螺子軸1とボール螺子ナット2の相対直線運動を抑制することができる。
したがって、この駆動系では、モータMをアクチュエータとしてもジェネレータとしても機能させ得るので、上記螺子軸1とボール螺子ナット2の相対直線運動を抑制することもできる。
ここで、上記したアクチュエータの振動モードについて詳しく説明すると、上述したように、アクチュエータのストロークを抑制する状況、すなわち、モータMが発生しているトルクの方向とロータRの回転方向とが一致せず、モータMのトルクがロータRの回転を抑制する制動トルクとなるブレーキ領域でモータMが使用されている場合で、かつ、d相およびq相の電圧指令値Vd,Vqの合成ベクトルが飽和し、ロータRの機械的な共振周波数fmにロータRの回転速度に応じて変化する電気的な共振周波数feが近付くと、発振するような振動モードが発現される。
詳しくは、モータMの三相をdqの二相変換を行って従来技術通りに制御する場合に、d相およびq相の電圧指令値Vd,Vqの合成ベクトルの長さが、dq座標における電源Eの電圧相当である飽和電圧を半径に持つ円(電圧制限円)を超えるようになる、すなわち、d相およびq相の電圧指令値Vd,Vqの合成ベクトルが飽和すると、d相およびq相の電圧指令値Vd,Vqの合成ベクトルは電圧制限円で制限され、d相およびq相の電圧指令値Vd,Vqは上記電圧制限円上の略一定値のオフセットされた電圧指令値となる。
モータMの内部構成が線形なシステムであれば、d相およびq相の電圧指令値Vd,Vqがオフセットされても、システムへの入力が変化しただけであり安定性に変化が無いが、モータMの内部構成はdq各相の干渉パスに正弦波同士が乗算される非線形なシステムであるので、d相およびq相の電圧指令値Vd,Vqがオフセットされると、それに応じてdq各相の干渉成分に機械部分の共振周波数fmと同一周波数を持つ成分が大きく現れたり、機械部分の共振周波数fmの二倍の周波数成分が大きく現れたりすることになる。詳しくは、正弦波同士を乗算すると、位相をずらしても必ず正弦波の周波数の2倍の周波数成分が現れること、および、オフセットを加えると基本成分を持つ信号が発生することに起因する。
このため、dq各相の電圧指令値Vd,Vqの合成ベクトルのq軸に対する角度に応じて、dq各相の干渉成分に現れる機械部分の共振周波数fmと同一周波数を持つ成分の増幅度が変化し、モータMの電気的な共振周波数feとロータRの周方向振動における共振周波数fmとが接近すると、互いの振動を励起して発振を引き起こすような振動モードが発現してしまう場合がある。
そして、巻線12に流れる電流が共振する共振周波数であるモータMの電気的な共振周波数feは、上記の式(2)に示したように、アクチュエータの構造上、電気角速度ωに比例するアクチュエータのストローク速度、すなわち、アクチュエータの伸縮速度に依存して変化する。すなわち、ストローク速度が増加することに伴って、モータMの電気的な共振周波数feも増大することになるので、上記モータMの電気的な共振周波数feとロータRの周方向振動における共振周波数fmとが接近する場合があることは、容易に理解できよう。
したがって、この振動モードは、アクチュエータの螺子軸1のリード、モータMのロータRに接続される機械部品の捩り剛性Kの設定等にもよるが、電気角速度ωがある値まで大きくなると、振動モードが発現し、さらに、その値を超えて充分大きくなると、振動モードは発現しなくなる。すなわち、ロータRに接続される機械部品の捩り剛性Kの値を限りなく大きくすればよいが、そうすると、ロータRの慣性モーメントの影響で、アクチュエータのストロークし始めやストローク速度に変化がある場合に、伸縮しづらい状態となってしまう恐れがある。
そこで、発明者らは、振動モードの発現を阻止するべく、鋭意努力した結果、モータMをdqの二相変換を行って制御するときに、ロータRがマイナスの速度をもって負方向に強制的に回転されている状況でモータMにこれを抑制する制動トルクを発生させる(ブレーキ領域)にはq相電流iqがプラスの値をとり、ロータRがプラスの速度をもって正方向に強制的に回転されている状況でモータMにこれを抑制する制動トルクを発生させる(ブレーキ領域)にはq相電流iqがマイナスの値をとるという取り決めのもと、q軸を横軸としd軸を縦軸にとると、図2に示すように、ロータRがマイナスの速度をもって負方向に強制的に回転(逆回転)され、d相およびq相の電圧指令値Vd,Vqの合成ベクトルが飽和した状態において、モータMにこれを抑制する制動トルクを発生させる場合にd相電圧指令値Vdとq相電圧指令値Vqの合成ベクトルがq軸に対しなす角度が反時計廻りに90度から180度の範囲内で振動モードが完全に発現せず、また、ロータRがプラスの速度をもって正方向に強制的に回転(正回転)され、d相およびq相の電圧指令値Vd,Vqの合成ベクトルが飽和した状態において、モータMにこれを抑制する制動トルクを発生させる場合にd相電圧指令値Vdとq相電圧指令値Vqの合成ベクトルがq軸に対しなす角度が反時計廻りに270度から360度の範囲内で振動モードが完全に発現しないことを知見するに至った。
これを図示すれば、図3に示すように、ロータRがマイナスの速度をもって負方向に強制的に回転されるときは、上記合成ベクトルが図3中斜線部分に示す領域にある場合、ロータRがプラスの速度をもって正方向に強制的に回転されるときは、上記合成ベクトルが図3中縦線部分に示す領域にある場合、振動モードが完全に発現されないことになる。
なお、図2は、アクチュエータのストローク速度を違えてd相電圧指令値とq相電圧指令値の合成ベクトルのq軸に対しなす角度に対するq相電流の変化を計測した複数のグラフであり、各グラフは、d相電圧指令値Vdとq相電圧指令値Vqの合成ベクトルがq軸に対しなす角度を360度一回転させた場合の振動モードの発現と合成ベクトルの上記角度との関係を示している。また、各グラフ中の縦軸はq相電流iqを示し、横軸は合成ベクトルのq軸に対しなす角度を示し、振動モードではq相電流iqが振動的になる部分で発現している。そして、紙面中下方のグラフほどストローク速度が小さい、すなわち、ロータRの電気角速度ωが小さいデータを示し、図2から明らかなように、ストローク速度が大きくなる、つまり、ロータRの電気角速度ωが大きくなると、振動モードが発現するようになることが理解できよう。
また、上記条件の下、電気角速度ωが小さい場合には、図2の上から3番目のグラフに示すように、ロータRがマイナスの速度をもって負方向に強制的に回転され、d相およびq相の電圧指令値Vd,Vqの合成ベクトルが飽和した状態において、モータMにこれを抑制する制動トルクを発生させる場合にd相電圧指令値Vdとq相電圧指令値Vqの合成ベクトルがq軸に対しなす角度が反時計廻りに45度から180度の範囲内で振動モードが発現せず、また、ロータRがプラスの速度をもって正方向に強制的に回転され、d相およびq相の電圧指令値Vd,Vqの合成ベクトルが飽和した状態において、モータMにこれを抑制する制動トルクを発生させる場合にd相電圧指令値Vdとq相電圧指令値Vqの合成ベクトルがq軸に対しなす角度が反時計廻りに225度から360度の範囲内で振動モードが発現しないことを発明者らは知見するに至った。
加えて、ロータRがマイナスの速度をもって負方向に強制的に回転され、d相およびq相の電圧指令値Vd,Vqの合成ベクトルが飽和した状態において、モータMにこれを抑制する制動トルクを発生させる場合には、d相電圧指令値Vdとq相電圧指令値Vqの合成ベクトルがq軸に対しなす角度が45度から180度の範囲内にあると、図4に示すように、実線で示すq相の電流iqは、プラスの値を採り、破線で示すd相の電流idの絶対値は、概ね合成ベクトルのq軸に対しなす角度が0度から180度へ向かうほど小さくなる。
なお、図4の各グラフは、アクチュエータのストローク速度を違えてd相電圧指令値とq相電圧指令値の合成ベクトルのq軸に対しなす角度に対するq相電流iqの変化とd相電流idの変化を計測した複数のグラフであり、各グラフは、d相電圧指令値Vdとq相電圧指令値Vqの合成ベクトルがq軸に対しなす角度を360度一回転させた場合の合成ベクトルの角度とq相電流iqおよびd相電流idとの関係を示している。そして、この図4の各グラフでは、振動モードの影響を除くべく、ロータRに接続される機械部品の捩り剛性Kを非常に大きくした状態で計測している。また、紙面中下方のグラフほどストローク速度が小さい、すなわち、ロータRの電気角速度ωが小さいデータを示している。
これに対し、モータMをdqの二相変換を行って単にd相電流idをゼロにして制御するようにした場合、d相およびq相の電圧指令値Vd,Vqの合成ベクトルが飽和した状態でモータMが上記ブレーキ領域で使用されると、図5(A)に示すように、d相電圧指令値Vdとq相電圧指令値Vqの合成ベクトルがq軸に対しなす角度は、40度前後となる。
さらに、モータMをdqの二相変換を行って単にd相電流idをゼロにして制御するようにするとともに、d相およびq相の電圧指令値Vd,Vqの合成ベクトルが飽和するとq相の電流ループにおける積分値の増大を抑制する積分飽和処理を行う場合、d相およびq相の電圧指令値Vd,Vqの合成ベクトルが飽和した状態でモータMが上記ブレーキ領域で使用されると、図5(B)に示すように、d相電圧指令値Vdとq相電圧指令値Vqの合成ベクトルがq軸に対しなす角度は、60度前後となる。
またさらに、モータMをdqの二相変換を行ってd相電流idをマイナスに誘導する弱め界磁制御を実施して制御する場合、d相およびq相の電圧指令値Vd,Vqの合成ベクトルが飽和した状態でモータMが上記ブレーキ領域で使用されると、図5(C)に示すように、d相電圧指令値Vdとq相電圧指令値Vqの合成ベクトルがq軸に対しなす角度は、40度前後となる。
なお、図5(A),(B),(C)の各グラフは、モータMを従来からある制御手法によって制御した場合の結果であり、具体的には、各グラフは、d相およびq相の電圧指令値Vd,Vqの合成ベクトルが飽和する程度の電気角速度ω以上となるようにアクチュエータをストロークさせた場合におけるd相電圧指令値Vdとq相電圧指令値Vqの合成ベクトルがq軸に対しなす角度を示している。また、アクチュエータに正弦波振動を与えてストロークさせているため、各グラフの両端ではストローク速度は低くなるのでd相およびq相の電圧指令値Vd,Vqの合成ベクトルが飽和していないため、d相電圧指令値Vdとq相電圧指令値Vqの合成ベクトルがq軸に対しなす角度に変化が現れている。
上記したところから、理解できるように、モータMを従来と同様に制御したのでは、d相およびq相の電圧指令値Vd,Vqの合成ベクトルが飽和してモータMがブレーキ領域で使用される場合、d相電圧指令値Vdとq相電圧指令値Vqの合成ベクトルがq軸に対しなす角度は、概ね40度から60度程度の範囲内になる。
したがって、モータMを従来と同様に制御する場合には、振動モードの発現を阻止することはできない。なお、積分飽和処理を行う場合には、d相電圧指令値Vdとq相電圧指令値Vqの合成ベクトルがq軸に対しなす角度は、概ね60度程度となるが、これは、振動モードの発現を抑制することを意図しておらず、たまたまそうなってしまうのであるので、アクチュエータのストローク変位に対するロータRの電気角変位の設定によって、振動モードを完全に阻止することができないことは上記した事から明らかである。
そこで、本発明では、上記知見したところから、d相およびq相の電圧指令値Vd,Vqの合成ベクトルが飽和し、かつ、モータMが上記のようにブレーキ領域で使用されている場合に、q相電流ループにおける積分値fqを当該積分値fqをフィードバックして補正することによって、q相の電圧指令値Vqをコントロールすることで上記振動モードの発現を防止するようにする。
そして、本発明の一実施の形態におけるモータ制御装置20は、これを実現するため、具体的には、U,V,W相の巻線12に接続され、このモータMは、モータ制御装置20によって駆動制御される。
このモータ制御装置20は、具体的には、図6に示すように、図外の被駆動部材の制御を司る図示しない上位の制御装置から入力されるトルク指令に基づいて各電流目標値id*,iq*を演算する電流目標値演算部21と、q相電流目標値iq*がリミット値を超える場合にこれをリミット値Ilimに制限する制限手段たるq相電流制限部22と、上記巻線12の三相のうち二相に流れる電流をdq変換してd相電流値idおよびq相電流値iqを演算する二相電流演算部24と、各電流目標値id*,iq*と上記d相およびq相の電流値id,iqに基づいてd相電圧指令値Vdおよびq相電圧指令値Vqを演算する比例積分制御部25と、q相電流ループにおける積分値fqを当該積分値fqをフィードバックして補正する補正手段たる積分値補正部26と、モータMがその発生トルクとロータRの回転方向とが一致していないブレーキ領域で使用されているか否かを判定する判定手段たる判定部27と、d相およびq相の各電圧指令値Vd,Vqの合成ベクトルが飽和しているか否かを判断する判断手段たる飽和判断部28と、上記d相電圧指令値Vdおよびq相電圧指令値VqをU,V,Wの三相各相の電圧指令値Vu,Vv,Vwに変換する三相変換演算部29と、三相変換演算部29が出力する上記各電圧指令値Vu,Vv,Vwのうち、PWM開度が全開、すなわち、PWMデューティ比が最大値以上となる場合に、PWMデューティ比を最大値とする値に電圧指令値Vu,Vv,Vwを制限するリミッタ30と、モータMのU,V,Wのうち二相iu,ivに流れる電流値を検出する電流検出器32と、電源Eの電圧Vbを検出する電圧検出器33と、モータ駆動回路としてのPWM回路31とを備えて構成されている。
そして、このモータ制御装置20は、基本的には、電流目標値演算部21によって決定されるd相およびq相の各電流目標値id*,iq*と、二相電流演算部24の演算結果として得られるd相およびq相の電流値id,iqとのそれぞれの偏差εd,εqに基づいてモータMを比例積分制御する。なお、偏差εd,εqを微分して得られる要素を追加して比例微分積分制御を行うようにしてもよい。
ここで、電流目標値演算部21は、トルク指令に基づいてd相およびq相の電流目標値id*,iq*を所定の制御則に則って上記比例積分制御部25に出力するものであるが、この場合、電流目標値演算部21への出力としては、トルク指令としてではなくても、アクチュエータが発生すべき力指令の状態で出力し、電流目標値演算部21でその分の換算を行うようにしてもよい。また、制御装置20の電流目標値演算部21で被駆動部材の制御に必要な信号、たとえば、加速度や速度や変位を取り込み、この電流目標値演算部21で上位の制御装置と同様の演算を行うようにしてもよいことは勿論である。
なお、上位の制御装置における被駆動部材の制御に必要となるアクチュエータの伸縮量、ストローク速度や伸縮加速度等については、回転角センサ15から得られる電気角θと螺子軸1のピッチ、減速比から演算すればよく、別途センサを設ける必要は無い。
また、この電流目標値演算部21は、基本的には、d相電流目標値id*を0としてq相電流目標値iq*を演算するようになっているが、ロータの電気角速度ωが大きい場合に、d相電流目標値id*をマイナスの値に誘導して弱め界磁制御をするようにしてもよいことは無論である。
そして、電流検出器32としては、ホール素子や巻線等を用いた非接触型や、三相の巻線12のいずれか二つに直列介装した抵抗の電圧降下から電流値を得る電流センサを用いればよい。
また、上記電流検出器32は、U,V,W相のうち二相に流れる電流値を検出すればよく、これは、二相の電流値が分かればロータRの電気角θから後述する下記式(3)を用いてd相およびq相の電流値に変換可能であるからである。
さらに、PWM回路31は、図7に示すように、電源Eと、モータMにおける三相各相の巻線12に電流供給を行う6つのスイッチング素子31aと、各スイッチング素子31aにPWMパルス信号を与えるマルチバイブレータ等の図示しないパルス発生器とを備えて構成されており、このPWM回路31は、比例積分制御部25が出力する各電圧指令値に基づいて所定のPWMデューティ比で上記各相に電流供給を行う。なお、電源Eについては、車両に搭載されるバッテリとしておけばよい。また、電源Eの電圧Vbをモニタする電圧検出器33が設けられており、この電圧検出器33で検知した電圧の値は、q相電流制限部22に出力される。
そして、二相電流演算部24は、電気角θを用いて、以下の式(3)に示したように、上記各電流値iv,iuをd相およびq相の電流値id,iqへ変換する演算を行い、この変換されたd相およびq相の電流値id,iqを比例積分制御部25へ出力する。
比例積分制御部25は、各電流目標値id*,iq*とd相およびq相の電流値id,iqの各偏差εd,εqを求め、上記各偏差εd,εqをそれぞれ積分した値に積分ゲインKIを乗じるとともに、各偏差εd,εqに比例ゲインKPを乗じることで得られる二つの値を加算して、d相電圧指令値Vdおよびq相電圧指令値Vqを演算する。
具体的には、比例積分制御部25は、各相の偏差εq,εdを演算する加減算部35,36と、各偏差εd,εqに比例ゲインKPを乗じる乗算部37,38と、各偏差εd,εqをそれぞれ積分する積分部39,40と、積分部39,40の演算結果である各積分値fd,fqに積分ゲインKIを乗じる乗算部41,42と、乗算部38が演算した比例ゲインKPを乗算後の偏差εdと乗算部42が演算した積分ゲインKIを乗算後の積分値fdとを加算する加算部44と、乗算部37が演算した比例ゲインKPを乗算後の偏差εqと乗算部41が演算した積分ゲインKIを乗算後の積分値fqとを加算する加算部43とを備えて構成されている。
詳しくは、各相毎の偏差εd,εqは、それぞれ、εd=id*−id、εq=iq*−iqの計算式によって演算され、各偏差εd,εqの積分については、各相毎に積分値fd,fqは、それぞれ前回制御時に演算されたd相およびq相の積分値fdpre,fqpreに対応する相の偏差εd,εqを加算演算することによりd相およびq相の積分値を演算される。つまり、d相の積分値fdはfd=fdpre+εdで,q相の積分値fqはfq=fqpre+εqでそれぞれを演算される。
したがって、d相の電圧指令値Vdは、Vd=KI・fd+KP・εdで演算され、q相の電圧指令値Vqは、Vq=KI・fq+KP・εqで演算され、上記した比例積分制御部25は、上記のようにして演算した各電圧指令値Vd,Vqを出力する。
すなわち、モータ制御装置20の場合、電流ループは、二相電流演算部24、比例積分制御部25および制御対象であるモータMとで作られる電流フィードバックループとなる。
そして、さらに、d相電圧指令値Vdおよびq相電圧指令値Vqは、上記したようにU,V,Wの各相の電圧指令値に変換する三相変換演算部29に入力され、この三相変換演算部29は、下記式(4)の演算によって、上記d相電圧指令値Vdおよびq相電圧指令値Vqを実際のU,V,W各相の電圧指令値Vu,Vv,Vwへ変換し、この変換された電圧指令値Vu,Vv,VwをPWM回路31に出力する。
以上によって、モータ制御装置20は、基本的には、電流ループ処理を行って上記の通常制御によってモータMを駆動するようになっている。
つづき、本実施の形態における発明のモータ制御装置20にあっては、q相電流ループにおける積分値fq、すなわち、上記比例積分制御部25の積分部39において演算される積分値fqをフィードバックして、当該積分値fqを補正する積分値補正部26を備えており、上述したように、この積分値fqの値を補正することによって、q相の電圧指令値Vqをコントロールすることで上記振動モードの発現を防止するようにする。
具体的には、積分値補正部26は、積分部39が演算した積分値fqと、q相積分値目標値fq*との偏差である積分値偏差εfqを演算する加減算部45と、上記積分値偏差εfqにゲインGを乗じる乗算部46と、この乗算部46の出力であるG・εfqと上記した比例積分制御部25の加減算部35によって演算される偏差εqとのいずれかを選択的に積分部39への入力とするスイッチ47と、スイッチ47の切換を制御するスイッチコントローラ48とを備えて構成されている。
ここで、スイッチ47が加減算部35によって演算される偏差εqを積分部39へ入力する場合には、積分値補正部26は、積分値fqを補正する機能を発揮せず、逆に、スイッチ47が乗算部46の出力であるG・εfqを積分部39へ入力する場合には、積分値補正部26は、積分値fqをフィードバックするループによって積分部39の演算結果である積分値fqを徐々に積分値目標値fq*に誘導して、最終的には積分値fqを積分値目標値fq*とすることができる。
そして、モータMが上述したようにマイナスの速度をもって逆回転する場合には、積分値目標値fq*をゼロ近傍の小さなプラスの値以下でマイナスの値を含む任意の値となるように設定しておくと、q相電流ループにおける積分パスの値、すなわち、乗算部41が出力する値をゼロ近傍の小さなプラスの値以下の値に誘導してq相の電圧指令値Vqをゼロ近傍のプラスの値以下でマイナスの値を含む任意の値にすることができる。
逆に、モータMが上述したようにプラスの速度をもって正回転する場合には、積分値目標値fq*をゼロ近傍の小さなマイナスの値以上でプラスの値を含む任意の値となるように設定しておくと、q相電流ループにおける積分パスの値、すなわち、乗算部41が出力する値をゼロ近傍の小さなマイナスの値以上の値に誘導してq相の電圧指令値Vqをゼロ近傍のマイナスの値以上でプラスの値を含む任意の値にすることができる。
ちなみに、積分値目標値fq*を0に設定しておく場合には、d相電圧指令値Vdとq相電圧指令値Vqの合成ベクトルがq軸に対しなす角度が反時計廻りに90度および270度になるように誘導することができ、振動モードが完全に発現しない状態とすることができるとともに、モータ制御装置20の処理手順を実現するプログラム上にq相の積分値目標値fq*を演算する記述をする必要が無くなりプログラムが簡素化することが可能となる。
なお、上記したところでは、積分値fqをフィードバックしているが、積分ゲインKI乗算後の値fq・KIをフィードバックするループによって、最終的に積分パスが出力する値、すなわち、乗算部41が出力する値fq・KIを徐々に積分値目標値fq*に積分ゲインKIを乗じた値に誘導するようにしてもよいことは勿論であり、積分値をフィードバックすることにはq相積分パスにおける乗算部41が出力する値をフィードバックすることも含まれる。
他方、d相電流ループについては、何も補正等をしないが、モータMがマイナスの速度をもって逆回転する場合には、d相の電流idはマイナスの値となることからd相電圧指令値Vdはプラスとなり、モータMがプラスの速度をもって正回転する場合には、d相の電流idはプラスの値となることからd相電圧指令値Vdはマイナスとなり、その結果、このモータ制御装置20では、積分値補正部26が上記機能を発揮すると、モータMがマイナスの速度をもって逆回転する場合には、q相の電圧指令値Vqがゼロ近傍のプラスの値以下でマイナスの値を含む任意の値を採るとともにd相電圧指令値Vdはプラスの値を採って、d相電圧指令値Vdとq相電圧指令値Vqの合成ベクトルがq軸に対しなす角度を45度から180度の範囲に収めることができ、モータMがプラスの速度をもって正回転する場合には、q相の電圧指令値Vqがゼロ近傍のマイナスの値以上でプラスの値を含む任意の値を採るとともにd相電圧指令値Vdはマイナスの値を採って、d相電圧指令値Vdとq相電圧指令値Vqの合成ベクトルがq軸に対しなす角度を225度から360度の範囲に収めることができる。
したがって、このモータ制御装置20にあっては、積分値補正部26の機能、すなわち、q相電流ループの積分値fqをフィードバックして当該積分値fqを補正する機能によって、上記振動モードの発現しない環境を実現することができ、これによって振動モードの発現を阻止することができるのである。
さらに、モータMがマイナスの速度をもって逆回転する場合には、積分値目標値fq*をマイナスの値となるように設定しておくとともに、モータMがプラスの速度をもって正回転する場合には、積分値目標値fq*をプラスの値となるように設定しておくと、この場合には、モータMがマイナスの速度をもって逆回転する場合には、d相電圧指令値Vdとq相電圧指令値Vqの合成ベクトルがq軸に対しなす角度を90度から180度の範囲に収めることができ、モータMがプラスの速度をもって正回転する場合には、d相電圧指令値Vdとq相電圧指令値Vqの合成ベクトルがq軸に対しなす角度を270度から360度の範囲に収めることができることから、この場合には、上記の振動モードの発現を完全に阻止することが可能となる。
また、このように、このモータ制御装置20にあっては、積分値fqをフィードバックして当該積分値fqを補正するので、積分値fqは、一次遅れ系のフィードバックループの時定数に依存して徐々に積分値目標値fq*に変化することになるとともに、比例パスに対しては補正処理を行わずに積分値fqのみを補正するので、スイッチ47の切換時に、電流ループにおける積分部39のフィルタ特性を利用して、q相電圧指令値Vqに急激に変化を生じさせることもなく、モータMの回転速度およびトルクに急激な変化を生じさせることが防止され、アクチュエータのストローク速度、および、発生荷重に急激な変化を生じさせることがない。
したがって、このモータ制御装置20をアクチュエータに適用すれば、アクチュエータのストロークに振動モードを発現させることが無く、上記したように急激にアクチュエータのストローク速度および発生荷重が変化することも無い。
さらに、スイッチ47の切換時に、q相電圧指令値Vqに急激に変化を生じさせることがないので、積分値fqの補正に当たり、補正制御をフェードイン・フェードアウトさせる必要が無く、制御アルゴリズムが複雑となってしまう不具合もない。
換言すれば、振動モードの発生が危惧される場合に、直接的に、q相の電圧指令値Vqを補正したり、比例パスの値をも補正したりすることも可能ではあるが、すると、その制御に当たってフェードイン・フェードアウトさせなくてはq相電圧指令値Vqの変化が急激となることから、制御が煩雑となるが、本実施の形態のモータ制御装置20にあっては、このような不具合がないのである。
つづき、上記積分値fqの補正を行うことによって、振動モードの発現を抑制することができるが、この振動モードの発現条件は、上述したように、モータMがブレーキ領域において使用されること、および、d相およびq相の電圧指令値Vd,Vqの合成ベクトルが飽和することである。
したがって、モータMの発生トルクの方向とロータRの回転方向とが一致しているアクティブ領域においてモータMが使用される場合には、上記積分値fqの補正を行わずに上記した通常制御しても振動モードが発現することが無く、また、d相およびq相の電圧指令値Vd,Vqの合成ベクトルが飽和していない場合にも、上記積分値fqの補正を行わずに上記した通常制御すれば、各相の電流値id,iqを各相の電流目標値id*,iq*に追随させることが可能であるので、振動モードが発現することが無い。
上記したところから、上記のように通常制御が可能である時、スイッチ47を加減算部35によって演算される偏差εqが積分部39へ入力されるようにしておき、モータMがブレーキ領域において使用されること、および、d相およびq相の電圧指令値Vd,Vqの合成ベクトルが飽和することの条件を満たす場合に、上記スイッチ47を、乗算部46の出力であるG・εfqが積分部39へ入力されるように、切換えてやればよいことになる。
このため、本実施の形態におけるモータ制御装置20は、モータMがその発生トルクの方向とロータの回転方向とが一致していないブレーキ領域で使用されているか否かを判定する判定手段たる判定部27と、d相およびq相の各電圧指令値Vd,Vqの合成ベクトルが飽和しているか否かを判断する判断手段たる飽和判断部28とを備え、これら判定部27の判定と飽和判断部28の判断の結果、上記条件を満たす場合に、スイッチコントローラ48がスイッチ47を制御して積分値補正部26が機能するよう切換えるようにしている。
詳しく説明すると、判定部27は、目標電流値演算部21が出力するq相電流目標値iq*の符号と、回転角センサ15が出力する電気角速度ωの符号との不一致をもって、モータMがブレーキ領域で使用されていると判定し、モータMにおけるロータRの回転方向がプラスで正回転しており、q相電流目標値iq*がプラスであるか、モータMにおけるロータRの回転方向がマイナスで逆回転しており、q相電流目標値iq*がマイナスであって、両者の符合が一致する場合には、モータMは、その発生トルクでロータRの回転を助勢しているアクティブ領域で使用されていると判定することになる。
そして、判定部27は、目標電流値演算部21が出力するq相電流目標値iq*の符号と、回転角センサ15が出力する電気角速度ωの符号とが不一致でモータMがブレーキ領域で使用されていると判定する場合には、たとえば、1をスイッチコントローラ48に出力し、両者の符号が一致する場合には、0をスイッチコントローラ48に出力するようにする。
飽和判断部28は、d相電圧指令値Vdおよびq相電圧指令値Vqの合成ベクトル長さの二乗の値(Vd2+Vq2)と飽和電圧Vsの二乗の値とを比較して、d相電圧指令値Vdおよびq相電圧指令値Vqの合成ベクトル長さが飽和電圧Vsを超えてd相電圧指令値Vdおよびq相電圧指令値Vqの合成ベクトルが飽和している状態であるかを判断する。
なお、上記判断の基準となる飽和電圧Vsは、U,V,Wの各相巻線12の端子間電圧を電源Eの電圧まで上昇させることができ得るような制御を実施する場合には1/√2を電源Eの初期設定電圧に乗じた値とすればよく、また、U,V,Wの各相巻線12に正弦波電圧を印加するように制御する場合には、√6/4を電源Eの設定電圧に乗じた値とすればよい。
このように、d相電圧指令値Vdおよびq相電圧指令値Vqの合成ベクトル長さの二乗の値、すなわち、d相電圧指令値Vdの二乗の値とq相電圧指令値Vqの二乗の値とを足し合わせた加算値(Vd2+Vq2)と飽和電圧Vsの二乗とを比較して、d相電圧指令値Vdとq相電圧指令値Vqの合成ベクトル長さ(Vd2+Vq2)1/2が飽和電圧Vsを超えているかを判断するようにしているので、この判断に必要な演算にルート演算を行わずに済み、演算時間の短縮に寄与することができる。
そして、飽和判断部28は、d相電圧指令値Vdおよびq相電圧指令値Vqの合成ベクトルが飽和している場合、0をスイッチコントローラ48に出力し、飽和していない場合には、1をスイッチコントローラ48に出力するようにする。
他方、スイッチコントローラ48は、図8に示すように、飽和判断部28が出力する値を否定する否定演算部51と、否定演算部51が出力した値と判定部27が出力する値の論理積を演算する論理積演算部52と、論理積演算部52が出力する値を否定する否定演算部53と、否定演算部53が出力する値を否定する否定演算部54とを備えて構成され、また、スイッチコントローラ48は、飽和判断部28が出力した値をそのままq相電流目標値iq*とq相電流iqとの偏差εqを演算する加減算部35とスイッチ47との間に設けた乗算部56およびd相の積分ループ中の積分部40の手前に設けた乗算部58へ出力するとともに、否定演算部54が出力する値を積分値fqの補正用のフィードバックループの途中であってスイッチ47と乗算部46との間に設けた乗算部57へ出力し、さらには、否定演算部53が出力する値をスイッチ47へ出力するようになっている。
また、スイッチ47は、この場合、スイッチコントローラ48から1未満の値を受け取ると、積分値補正部26にその機能を発揮させるべく、乗算部46の出力であるG・εfqが積分部39へ入力されるように切換わり、スイッチコントローラ48から1以上の値を受け取ると、加減算部35によって演算される偏差εqが積分部39へ入力されるように切換わるようになっている。
ここで、モータMがブレーキ領域で使用されていると判定部27が判定して、1を出力し、飽和判断部28がd相電圧指令値Vdとq相電圧指令値Vqの合成ベクトルが飽和していると判断して0を出力すると、スイッチコントローラ48は、スイッチ47に対しては0を、乗算部56,58に対しては0を、乗算部57に対しては1をそれぞれ出力する。
すると、スイッチ47は、積分値補正部26にその機能を発揮させるべく、乗算部46の出力であるG・εfqが積分部39へ入力されるように切換わり、乗算部46の出力であるG・εfqとスイッチコントローラ48が出力する1とが乗算部57へ入力されるので、積分部39へは、G・εfqがそのまま入力されるようになる。また、乗算部58へはスイッチコントローラ48が出力する0と偏差εdが入力されるので、積分部40へは0が入力されるようになる。
つまり、この場合には、振動モードの発生条件が整うので、積分値fqを補正する制御が実施されるとともに、乗算部58には0が出力されることから、d相電流ループにおける積分演算は中止されることになる。
さらに、モータMがブレーキ領域で使用されていると判定部27が判定して、1を出力し、飽和判断部28がd相電圧指令値Vdとq相電圧指令値Vqの合成ベクトルが飽和していないと判断して1を出力すると、スイッチコントローラ48は、スイッチ47に対しては1を、乗算部56,58に対しては1を、乗算部57に対しては0をそれぞれ出力する。
すると、スイッチ47は、積分値補正部26が機能できないように、加減算部35によって演算される偏差εqが積分部39へ入力されるように切換わり、乗算部56へはスイッチコントローラ48が出力する1と偏差εqが入力されるので、積分部39へは、偏差εqがそのまま入力されるようになり、乗算部58へはスイッチコントローラ48が出力する1と偏差εdが入力されるので、積分部40へは偏差εdがそのまま入力されるようになる。
つまり、この場合には、振動モードの発生条件が整っていないので、積分値fqを補正する制御が実施されずに、通常制御が行われることになる。
また、モータMがブレーキ領域で使用されていないと判定部27が判定して、0を出力し、飽和判断部28がd相電圧指令値Vdとq相電圧指令値Vqの合成ベクトルが飽和していないと判断して1を出力すると、スイッチコントローラ48は、スイッチ47に対しては1を、乗算部56,58に対しては1を、乗算部57に対しては0をそれぞれ出力する。
すると、スイッチ47は、積分値補正部26が機能できないように、加減算部35によって演算される偏差εqが積分部39へ入力されるように切換わり、乗算部56へはスイッチコントローラ48が出力する1と偏差εqが入力されるので、積分部39へは偏差εqがそのまま入力されるようになり、乗算部58へはスイッチコントローラ48が出力する1と偏差εdが入力されるので、積分部40へは偏差εdがそのまま入力されるようになる。
つまり、この場合には、振動モードの発生条件が整っていないので、積分値fqを補正する制御が実施されずに、通常制御が行われることになる。
そして、さらに、モータMがブレーキ領域で使用されていないと判定部27が判定して、0を出力し、飽和判断部28がd相電圧指令値Vdとq相電圧指令値Vqの合成ベクトルが飽和していると判断して0を出力すると、スイッチコントローラ48は、スイッチ47に対しては1を、乗算部56,58に対しては0を、乗算部57に対しては0をそれぞれ出力する。
すると、スイッチ47は、積分値補正部26が機能できないように、加減算部35によって演算される偏差εqが積分部39へ入力されるように切換わり、乗算部56へはスイッチコントローラ48が出力する0と偏差εqが入力されるので、積分部39へは0が入力されるようになり、また、乗算部58へはスイッチコントローラ48が出力する0と偏差εdが入力されるので、積分部40へは0が入力されるようになる。
つまり、この場合には、振動モードの発生条件は整っていないが、d相電圧指令値Vdおよびq相電圧指令値Vqの合成ベクトルが飽和しているにもかかわらず、偏差εd,εqを積分部40,39で加算し続けると積分値fd,fqの絶対値が増大し、dq各相の電圧指令値Vd,Vqの絶対値は増大するので、飽和の影響でモータMの発生トルクにリップルを生じて制御性が悪化することになり、アクチュエータの発生荷重にリップルを生じて制御性が悪化することになることから積分部40,39に0を入力することによってdq各相の積分ループにおける積分演算を中止する。したがって、振動モードの発生条件が満たされないがd相電圧指令値Vdおよびq相電圧指令値Vqの合成ベクトルが飽和している場合には、dq各相の電流ループ中の積分ループにおける積分中止処理が行われ、積分値飽和による制御遅れが回避されて制御応答性の悪化が防止されるとともに、トルクリップルの発生が防止されることになる。
かくして、これら判定部27と飽和判断部28の判定および判断よって、モータ制御装置20が通常制御を継続するべきか、振動モードの発生を抑制するため積分値fqを補正する処理を実施するべきかを選択することができ、これによって振動モードの発生を阻止しつつモータMを適切に制御することが可能となる。
また、これら判定部27と飽和判断部28の判定および判断よって、通常制御と積分値fqを補正する処理のみならず、振動モードが発現しないもののd相電圧指令値Vdおよびq相電圧指令値Vqの合成ベクトルが飽和している場合には、dq各相の電流ループ中の積分ループにおける積分中止処理が行われるので、モータMの使用状況に合わせ最適な処理を実施することが可能となる。
さらに、スイッチコントローラ48を上記のごとく構成することで、高度な演算処理を要せずして、判定部27と飽和判断部28が出力する値を論理演算のみによってスイッチ47を制御して、積分ループにおける積分値fqの補正処理、通常制御処理、dq各相の積分ループにおける積分演算中止処理のうちモータMの使用状況に合わせ最適な処理を的確に選んで実施することができる。
つづけて、上記したモータ制御装置20の構成で、充分に振動モードの発現を阻止することが可能であるが、たとえば、モータMにおけるロータRの回転速度がマイナスで逆回転しており、モータMがブレーキ領域で使用され、d相およびq相の電圧指令値Vd,Vqの合成ベクトルが飽和する場合、q相電流目標値iq*にq相電流iqが追随することができず偏差εqがプラスとなるため、q相電流ループにおける比例パスの値もプラスの値をとることになる。
そして、積分値fqを積分値補正部26によって補正し積分パスの値をマイナスの値に補正しても比例ゲインKPと積分ゲインKIの設定如何では、d相の電圧指令値Vdとq相の電圧指令値Vqの合成ベクトルがq軸に対するなす角度を45度から180度の範囲内に速やかに誘導することができない場合がある。
反対に、モータMにおけるロータRの回転速度がプラスで正回転しており、モータMがブレーキ領域で使用され、d相およびq相の電圧指令値Vd,Vqの合成ベクトルが飽和する場合、q相電流目標値iq*にq相電流iqが追随することができず偏差εqがマイナスとなるため、q相電流ループにおける比例パスの値もマイナスの値をとることになる。そして、積分値fqを積分値補正部26によって補正し積分パスの値をプラスの値に補正しても比例ゲインKPと積分ゲインKIの設定如何では、d相の電圧指令値Vdとq相の電圧指令値Vqの合成ベクトルがq軸に対するなす角度を225度から360度の範囲内に速やかに誘導することができない場合がある。
そのため、本実施のモータ制御装置20では、より速やかに、振動モードの発現を阻止する環境に移行するため、電流目標値演算部21が出力するq相電流目標値iq*を制限する制限手段によってリミット値Ilimに制限して、q相電流目標値iq*とq相電流iqとの偏差εqが大きくならないようにする。
つまり、制限手段たるq相電流制限部22は、電流目標値演算部21が出力するq相電流目標値iq*を、モータMがブレーキ領域で使用されている場合、モータMが逆回転している場合にはq相電流が取りうる最大値となり、モータMが正回転している場合にはq相電流が取りうる最小値となるリミット値Ilimに制限する。
具体的には、このリミット値Ilimは、モータMが逆回転している場合、d相およびq相の電圧指令値Vd,Vqの合成ベクトルを飽和電圧として、この合成ベクトルをdq座標において原点回りに360度一周させたときq相電流iqが取りうる最大値とされ、他方、モータMが正回転している場合、d相およびq相の電圧指令値Vd,Vqの合成ベクトルを飽和電圧として、この合成ベクトルをdq座標において原点回りに360度一周させたときq相電流iqが取りうる最小値とされる。
したがって、モータMが逆回転している場合、q相電流目標値iq*の上限が、d相およびq相の電圧指令値Vd,Vqの合成ベクトルの飽和時において、q相電流iqが取り得る最大値に制限され、モータMが正回転している場合、q相電流目標値iq*の下限が、d相およびq相の電圧指令値Vd,Vqの合成ベクトルの飽和時において、q相電流iqが取り得る最小値に制限されるため、q相電流目標値iq*とq相電流iqとの偏差εqの絶対値が大きくなることが無く、q相電流ループにおける比例パスの値εq・KPの絶対値が大きくなってしまうことがなく、積分パスの値fq・KIが支配的となり、q相電圧指令値Vqを狙い通りに制御することができるようになる。
これにより、モータMが逆回転しd相およびq相の電圧指令値Vd,Vqの合成ベクトルが飽和している状況において、d相の電圧指令値Vdとq相の電圧指令値Vqの合成ベクトルがq軸に対するなす角度を45度から180度の範囲内に速やかに誘導することができ、モータMが正回転しd相およびq相の電圧指令値Vd,Vqの合成ベクトルが飽和している状況において、積分値fqを積分値補正部26で補正するとd相の電圧指令値Vdとq相の電圧指令値Vqの合成ベクトルがq軸に対するなす角度を225度から360度の範囲内に速やかに誘導することができることになって、振動モードの発現をより確実に阻止しえることになる。
なお、モータMが逆回転してd相およびq相の電圧指令値Vd,Vqの合成ベクトルが飽和する場合、q相電流iqの最大値は、ロータRの電気角速度ωの絶対値が大きくなればなるほど、d相およびq相の相互干渉と誘導起電力の影響により0に近付くように小さくなり、他方、モータMが正回転してd相およびq相の電圧指令値Vd,Vqの合成ベクトルが飽和する場合、q相電流iqの最小値は、ロータRの電気角速度ωの絶対値が大きくなればなるほど、d相およびq相の相互干渉と誘導起電力の影響により0に近付くように大きくなり、電気角速度ωに依存した値となる。
したがって、上記リミット値Ilimも電気角速度ωに依存して変更する必要があるが、予め、図9に示すように、電気角速度ωをパラメータとして変動するリミット値Ilimをマップ化しておき、q相電流制限部22で電気角速度ωをモニタし、当該マップを参照してリミット値Ilimを選択するようにしておくとよい。なお、電気角速度ωが0近傍の値をとる場合のリミット値Ilimが電気角速度ωの変化に対して一定値をとるのは、モータ制御装置20の最大通電能力によって制限されるからである。
このようにマップ演算を行うことによって、q相電流目標値iq*の制限に必要なリミット値Ilimを簡単に得ることができ、これによって、演算時間の短縮を図って制御応答性を向上することができ、さらには、コスト高となる高性能なCPUを用いなければならない事態も回避することができる。
そして、上記マップは、モータMが正回転して電気角速度ωがプラスの値を採る領域にある場合とモータMが逆回転して電気角速度ωがマイナスの値を採る領域にある場合であって、モータMがブレーキ領域にある場合に対応したものであればよいので、正回転時と逆回転時とに分けてマップを作成する必要は無く、電気角速度ωがプラスの実用最大値からマイナスの実用最小値まで変化した場合のリミット値Ilimとしてプロットすることにより作成すればよい。
また、電気角速度ωの実用最小値ωminあるいは実用最大値ωmaxから適当な値Δωずつ変化させたときの不連続なリミット値Ilimとしておき、たとえば、マップが実用最小値ωminから値Δωずつ変化させて作成される場合、電気角速度ωがωmin+(n−1)・Δω<ω<ωmin+n・Δω(n=1,2,3・・・N)であり、マップ上にq相電流制限部22に入力された電気角速度ωに対応するリミット値Ilimが無い場合、q相電流制限部22に入力された電気角速度ωより小さい値で対応するリミット値Ilimがマップ上に存在するωmin+(n−1)・Δωにおけるリミット値Ilimと、q相電流制限部22に入力された電気角速度ωより大きい値で対応するリミット値Ilimがマップ上に存在するωmin+n・Δωにおけるリミット値Ilimを用いて線形補間によってリミット値Ilimを演算するようにしておけばよい。
このようにリミット値Ilimにq相電流目標値iq*を制限するが、上記リミット値Ilimをd相およびq相の電圧指令値Vd,Vqの合成ベクトルの飽和時におけるq相電流iqの最大値と最小値とする場合、q相電流iqの最大値および最小値は、電源Eの電圧Vbに左右されるので、このモータ制御装置20では、電源Eの電圧変化に応じてリミット値Ilimを補正するようにしている。
具体的には、q相電流制限部22は、電圧検出器33で検出する電源Eの電圧Vbをモニタしており、この検出された電源Eの電圧Vbに基づいてリミット値Ilimを補正する。
このリミット値Ilimの補正にあたり、q相電流制限部22に電気角速度ωとリミット値Ilimのマップを電源Eの電圧Vbに対応させて複数用意しておき、電源Eの電圧Vbに対応したマップを選択し、上述のように電気角速度ωからリミット値Ilimをマップ演算するようにすればよい。
また、d相およびq相の電圧指令値Vd,Vqの合成ベクトルが飽和したときのq相電流iqの最大値は、ほぼ電源Eの電圧Vbに比例して変化することから、電源Eの電圧変化に対しリミット値Ilimを比例的に補正するようにしてもよく、この場合には、電気角速度ωをパラメータとして作成したリミット値Ilimのマップにおけるリミット値Ilimの値を、予めマップ作成時の電源Eの電圧で割って補正用のマップを作成しておき、このマップを参照して得たリミット値Ilimに電圧検出器33で検出した電源Eの電圧Vbを乗算することでリミット値Ilimを補正すればよい。
したがって、電源Eの電圧の変動に対して、リミット値Ilimを補正するので、電源Eの電圧が変動してもq相電流目標値iq*とq相電流iqの偏差εqの絶対値が大きくなるようなことが防止され、これによって、電源Eの電圧変動によって振動モードが発現されてしまうことを防止することができるのである。
転じて、上述のように構成されるモータ制御装置20の電流検出器32、電圧検出器33、回転角センサ15およびPWM回路31以外の各部におけるハードウェア資源としては、具体的にはたとえば、電流検出器32、電圧検出器33および回転角センサ15が出力する各信号を増幅するためのアンプと、アナログ信号をデジタル信号に変換する変換器と、CPU(Central Processing Unit)と、ROM(Read Only Memory)等の記憶装置と、CPUに記憶領域を提供するRAM(Random Access Memory)と、水晶発振子及びこれらを連絡するバスラインとを備えた図示しない周知のコンピュータシステムとして構成され、また、PWM回路31に電圧指令値Vu,Vv,Vwを出力することができるようになっている。なお、このハードウェアとしてモータ制御装置20の電流検出器32、電圧検出器33、回転角センサ15およびPWM回路28以外の各部は、このアクチュエータが搭載される機器のコントローラに統合されてもよい。
そして、この場合、上記電流目標値演算部21、q相電流制限部22、二相電流演算部24、比例積分制御部25、積分値補正部26、判定部27、飽和判断部28、三相変換演算部29およびリミッタ30における処理手順は、プログラムとしてROMや他の記憶装置に予め格納され、上記これら各部は、CPUが上記プログラムを読み込んで、上記した各演算処理を実行することによって実現される。
ここで、上記したモータ制御装置20における処理手順について、図10に示すフローチャートに基づいて説明する。
まず、ステップS1でモータ制御装置20は、三相の巻線12のうちの任意の二相、たとえば、U相とV相の電流値iu,ivと、モータMの電気角θと、電源Eの電圧値Vbを読み込む。
つづき、ステップS2に移行して、モータ制御装置20は、電気角速度ωとトルク指令に基づいて各電流目標値id*,iq*を演算する。
さらに、ステップS3では、モータ制御装置20は、電流値iu,ivと電気角θを用いて、上記各電流値iv,iuをd相およびq相の電流値id,iqへ変換する演算を行って、ステップS4に移行する。
そして、ステップS4では、前回制御時にd相電圧指令値Vdおよびq相電圧指令値Vqの合成ベクトルが飽和していたか、すなわち、d相電圧指令値Vdおよびq相電圧指令値Vqの合成ベクトル長さの二乗の値(Vd2+Vq2)が飽和 電圧Vsの二乗の値Vs2を超えていたかを、飽和フラグを参照して判断し、前回制御時にd相電圧指令値Vdおよびq相電圧指令値Vqの合成ベクトルが飽和している場合、ステップS5へ移行し、前回制御時にd相電圧指令値Vdおよびq相電圧指令値Vqの合成ベクトルが飽和していなかった場合、ステップS15へ移行する。なお、飽和フラグは、後述するステップS18によってセットされ、たとえば、飽和フラグが0である場合には、前回制御時にd相電圧指令値Vdおよびq相電圧指令値Vqの合成ベクトルが飽和しており、飽和フラグが1である場合には、前回制御時にd相電圧指令値Vdおよびq相電圧指令値Vqの合成ベクトルが飽和していなかったことを示す。
さらに、ステップS5に移行して、モータ制御装置20は、ロータRの電気角速度ωとq相電流目標値iq*とを乗算した値の符号からモータMがアクティブ領域で使用されているかブレーキ領域で使用されているかを判定し、モータMがブレーキ領域で使用されている場合にはステップS6へ移行し、他方、モータMがアクティブ領域で使用されている場合にはステップS13へ移行する。
つづき、ステップS6に移行して、ステップS6では、d相電圧指令値Vdおよびq相電圧指令値Vqの合成ベクトルが飽和しモータMがブレーキ領域で使用されており振動モードの発現の条件が成立しているので、モータ制御装置20は、ロータRの電気角速度ωに基づいてq相電流目標値iq*を制限するリミット値Ilimを演算する。なお、電源Eの電圧Vbに変動がある場合には、リミット値Ilimを補正する。
ステップS7では、q相電流目標値iq*の絶対値がリミット値Ilimの絶対値を超える場合、q相電流目標値iq*をリミット値Ilimに制限し、他方、q相電流目標値iq*の絶対値がリミット値Ilimの絶対値以下である場合、q相電流目標値iq*を制限せずにそのままとし、ステップS8へ移行する。
ステップS8では、モータ制御装置20は、各電流目標値id*,iq*とd相およびq相の電流値id,iqとの偏差εd,εqを演算して、ステップS9へ移行する。
ステップS9では、モータ制御装置20は、前回制御時のq相積分値fqpreと積分値目標値fq*との積分値偏差εfqを演算して、ステップS10へ移行する。
さらに、ステップS10に移行して、モータ制御装置20は、上記したステップS9で演算した積分値偏差εfqにゲインGを乗じて、G・εfqを演算し、ステップS11へ移行する。
そして、ステップS11では、モータ制御装置20は、G・εfqを入力して積分値fqを補正する処理を行う。具体的には、今回制御時の積分値fqをfq=fqpre+G・εfqの演算を行うことによって求める。そして、ステップS12に移行する。
つづき、ステップS12では、d相積分ループにおける入力を0として積分演算を行うことによってd相積分ループにおける積分を中止する。具体的には、今回制御時の積分値fdをfd=fdpreの演算によって求める。そして、この処理が終了後、ステップS17へ移行する。
他方、ステップS13では、モータ制御装置20は、各電流目標値id*,iq*とd相およびq相の電流値id,iqとの偏差εd,εqを演算してステップS14へ移行する。
そして、ステップS14では、ステップS5までの処理でモータMがアクティブ領域で使用されており振動モードの条件が整っていないと判断されるものの、d相電圧指令値Vdおよびq相電圧指令値Vqの合成ベクトルが飽和しているので、モータ制御装置20は、積分中止処理を行うため、dq相積分ループへの偏差入力を0に設定して積分値fd,fqを演算して、ステップS17へ移行する。具体的には、今回制御時の積分値fd,fqをfd=fdpre,fq=fqpreの演算によって求める。
さらに、ステップS15では、前回制御時にd相電圧指令値Vdおよびq相電圧指令値Vqの合成ベクトルが飽和していないので、通常制御を行うため、モータ制御装置20は、各電流目標値id*,iq*とd相およびq相の電流値id,iqとの偏差εd,εqを演算して、ステップS16へ移行する。
ステップS16では、dq各相の偏差εd,εqを積分する演算を行い今回制御時の積分値fd,fqを求める。具体的には、今回制御時の積分値fd,fqをfd=fdpre+εd,fq=fqpre+εqの演算によって求める。そして、この処理が終了するとステップS17へ移行する。
ステップS17では、Vd=KI・fd+KP・εdを演算してd相の電圧指令値Vdを算出し、Vq=KI・fq+KP・εqを演算してq相の電圧指令値Vqを算出してステップS18へ移行する。
ステップS18では、d相の電圧指令値Vdとq相の電圧指令値Vqの合成ベクトルが飽和しているか否かを判断し、飽和している場合には飽和フラグを0に、飽和していない場合には飽和フラグを1にセットしてステップS19へ移行する。
さらに、ステップS19において、モータ制御装置20は、上記d相電圧指令値Vdおよびq相電圧指令値Vqを三相の電圧指令値Vu,Vv,Vwに変換する演算を行って、ステップS20に移行する。
そして、ステップS20では、モータ制御装置20は、電圧指令値Vu,Vv,Vwを採り得る値に制限する処理が必要な場合には、この制限処理を行い、必要が無い場合には、制限処理を施さずにステップS21に移行する。
ステップS21では、モータ制御装置20は、電圧指令値Vu,Vv,VwをPWM回路31へ出力して、これらの一連の処理を終了する。
そして、このモータ制御装置20は、以上のステップS1からS21までを繰り返し処理してモータMを制御する。
したがって、モータ制御装置20が上記した一連の処理を実行することで、上述した電流目標値演算部21、q相電流制限部22、二相電流演算部24、比例積分制御部25、積分値補正部26、判定部27、飽和判断部28、三相変換演算部29およびリミッタ30の各部の処理が実現され、これによって、モータMの振動モードの発現が阻止されるとともに、アクチュエータにおけるモータMを制御する場合には、アクチュエータのストローク速度および発生荷重にリップルを生じさせることがない。
以上で、本発明の実施の形態についての説明を終えるが、本発明の範囲は図示されまたは説明された詳細そのものには限定されないことは勿論である。