(実施形態1)
実施形態1のモータ制御装置100について説明する。図1は、実施形態のモータ制御装置100の全体構成を示すブロック図である。モータ制御装置100では、制御対象は3相同期モータ110の3相電流iu、iv、iwであり、制御量は3相同期モータ110に印加する3相電圧vu、vv、vwである。
3相同期モータ110は、回転子コア(不図示)に磁石を埋め込み、固定子コア(不図示)に電機子巻線を巻回して構成した埋込磁石同期モータである。ただし、3相モータであればよく、これに限定されるものではない。モータ制御装置100は、トルク指令Req_trqに等しいトルクを3相同期モータ110から出力すべく、制御演算を行って3相電圧vu、vv、vwを制御する。ここで、トルク指令Req_trqは、モータ制御装置100の内部で演算されても良いし、モータ制御装置100の外部からの指令であっても良い。
図1に示すように、モータ制御装置100は、2個の電流検出部108a、108bと、回転検出部107と、2相実電流演算部115と、2相指令電圧演算部120と、3相指令電圧演算部104と、インバータ制御部130と、インバータ106とを主に備えている。ここで、2相実電流演算部115、2相指令電圧演算部120、3相指令電圧演算部104、インバータ制御部130が、ソフトウェアで動作するコンピュータを含むコントローラとして構成されている。ただし、当該部分をハードウェアで構成してもよい。
2個の電流検出部108a、108bは、3相同期モータ110の電機子巻線に接続された3相の入力線のうちのV相入力線およびW相入力線にそれぞれ設けられている。電流検出部108a、108bは、例えば周知の変流器や分路抵抗器などを用いて構成することができ、V相電流ivおよびW相電流iwを検出して、その検出信号を2相実電流演算部115に出力する。ここで、2相実電流演算部115は、3相電流iu、iv、iwのベクトル和がゼロであることを利用して、3相目のU相電流iuを演算する。
回転検出部107は、3相同期モータ110の回転子が回転する位相角θを検出する角度センサである。本実施形態では、回転検出部107としてレゾルバを用いている。回転検出部107により検出された位相角θは、3相指令電圧演算部104に送出される。
2相実電流演算部115は、入力されたトルク指令Req_trq、検出した3相電流iv、iwおよび導出した3相電流iuを用いて、公知の手法により、dq座標軸上のd軸電流idおよびq軸電流iqに変換して、2相指令電圧演算部120に送出する。
ここで、d軸電流idは、3相同期モータ110の電機子巻線に流れる電流(電機子電流)のd軸成分であり、q軸電流iqは、上記電機子電流のq軸成分である。また、d軸電圧vdは、3相同期モータ110の電機子巻線に印加する電圧(電機子電圧)のd軸成分であり、q軸電圧vqは、上記電機子電圧のq軸成分である。ここで、d軸電流idとq軸電流iqとを2相実電流と呼ぶ。
2相指令電圧演算部120は、2相実電流演算部115から出力される2相実電流(d軸電流idおよびq軸電流iq)と、電子制御装置(ECU)等外部からのトルク指令Req_trqとを入力して、これらに基づいて指令d軸電圧Req_vdおよび指令q軸電圧Req_vqを演算し、3相指令電圧演算部104に指令する。
図2は、2相指令電圧演算部120の機能的構成を示すブロック図である。2相指令電圧演算部120は、図2に示すように、PWM制御演算部121と、矩形波制御演算部125とを備えている。ここで、本実施形態では、後述するように、ゲート電圧のインバータ106への出力において、制御モードがPWM制御と矩形波制御とが切り替えて実行される。ここで、実行中の制御モードについては不図示のメモリ等に設定される。
PWM制御演算部121は、PWM制御時に、指令d軸電圧Req_vdおよび指令q軸電圧Req_vqを演算する。PWM制御演算部121は、図2に示すように、電流指令部122と、電流偏差演算部123と、電流制御部124とを備えている。
電流指令部122は、トルク指令Req_trqを、d軸、q軸それぞれの電流指令に変換して、各軸の電流指令を電流偏差演算部123に受け渡す。この変換処理は、例えば、最大トルク/電流制御法を用いて行うことができるが、これに限定されない。
電流偏差演算部123は、電流指令と2相実電流との電流偏差を算出する。すなわち、電流偏差演算部123は、d軸の電流指令からd軸電流idを減算してd軸の電流偏差を算出し、q軸の電流指令からq軸電流iqを減算してq軸の電流偏差を算出する。そして、電流偏差演算部123は、d軸およびq軸の各電流偏差を電流制御部124に受け渡す。
電流制御部124は、d軸およびq軸の電流偏差が0になるように、2相指令電圧を算出する。ここで、2相指令電圧とは、指令d軸電圧Req_vdと指令q軸電圧Req_vqである。
すなわち、電流制御部124は、d軸の電流偏差が0になるように指令d軸電圧Req_vdを算出し、q軸の電流偏差が0になるように指令q軸電圧Req_vqを算出する。例えば、電流制御部124は、電流偏差が0になるように、比例積分制御により、各軸の電流偏差に対して所定の比例定数を乗算した値と電流偏差を時間積分した値を加算して2相指令電圧(指令d軸電圧Req_vd、指令q軸電圧Req_vq)を求めることができる。ただし、かかる手法は一例であり、2相指令電圧の算出手法は、これに限定されるものではない。
電流制御部124は、算出した2相指令電圧(指令d軸電圧Req_vd、指令q軸電圧Req_vq)を、3相指令電圧演算部104に出力する。
矩形波制御演算部125は、矩形波制御時に、指令d軸電圧Req_vdおよび指令q軸電圧Req_vqを演算する。矩形波制御演算部125は、図2に示すように、トルク推定部126と、トルク偏差演算部127と、トルク制御部128とを備えている。
トルク推定部126は、2相実電流(d軸電流id、q軸電流iq)からトルク(推定トルク)を推定し、推定トルクをトルク偏差演算部127に出力する。トルク推定の手法としては、予め2相実電流とトルクとの関係を定めたマップを参照して決定する他、トルクを実測して推定するように構成してもよい。
トルク偏差演算部127は、トルク指令と、トルク推定部126で推定した推定トルクとの差分であるトルク偏差を算出し、トルク偏差をトルク制御部128に出力する。
トルク制御部128は、トルク偏差が0になるように、2相指令電圧(指令d軸電圧Req_vd、指令q軸電圧Req_vq)を算出する。例えば、トルク制御部128は、トルク偏差が0になるように、比例積分制御により、指令d軸電圧Req_vdを算出し、指令d軸電圧Req_vdとバッテリ電圧とから、指令q軸電圧Req_vqを算出することができる。
あるいは、トルク制御部128は、トルク偏差が0になるように、比例積分制御により、指令q軸電圧Req_vqを算出し、指令q軸電圧Req_vqとバッテリ電圧とから、指令d軸電圧Req_vdを算出してもよい。ただし、かかる手法は一例であり、2相指令電圧の算出手法は、これらに限定されるものではない。
トルク制御部128は、算出した2相指令電圧(指令d軸電圧Req_vd、指令q軸電圧Req_vq)を、3相指令電圧演算部104に出力する。
図1に戻り、3相指令電圧演算部104は、位相角θを用いた公知の変換式により、2相指令電圧Req_vd、Req_vqを3相指令電圧Req_vu、Req_vv、Req_vwに変換し、インバータ制御部130に指令する。
インバータ制御部130は、駆動制御部に相当し、3相指令電圧Req_vu、Req_vv、Req_vwからU相、V相、W相の各相用のスイッチ素子に印加するゲート電圧を求めて、インバータ106に逐次出力する。ここで、インバータ制御部130は、ゲート電圧のインバータ106への出力において、制御モードをPWM制御と矩形波制御とを切り替えて行う。
インバータ106は、駆動部に相当し、各相のゲート電圧に基づき、実際の3相電圧vu、vv、vwを生成して3相同期モータ110の電機子巻線に印加する。これにより、3相同期モータ110の電機子巻線には3相電流iu、iv、iwが流れる。
次に、インバータ制御部130の詳細について説明する。図3は、インバータ制御部130の機能的構成を示すブロック図である。インバータ制御部130は、図3に示すように、制御部131と、タイミング算出部132と、負荷状態判断部133と、モード切替え部134とを主に備えている。
制御部131は、PWM制御または矩形波制御を行って、3相指令電圧演算部104から出力される3相指令電圧Req_vu、Req_vv、Req_vwからU相、V相、W相の各相用のスイッチ素子に印加するゲート電圧を求めてインバータ106へ出力する。
制御部131は、PWM制御を実行する場合には、3相指令電圧Req_vu、Req_vv、Req_vwから各相のデューティ比を決定してインバータ106に逐次出力する。制御部131は、矩形波制御を実行する場合には、3相指令電圧Req_vu、Req_vv、Req_vwから矩形波電圧を発生させるためのゲート電圧をインバータ106に逐次出力する。
制御部131は、矩形波制御の実行中において、3相指令電圧Req_vu、Req_vv、Req_vwの各相の指令電圧のゼロクロス点のタイミングで、矩形波となる3相電圧の電圧極性を切り替える。ここで、ゼロクロス点のタイミングは、後述するタイミング算出部132により算出される。
タイミング算出部132は、制御部131において矩形波制御を実行中に、3相指令電圧Req_vu、Req_vv、Req_vwの各相の指令電圧から、数点のサンプリングを行い、サンプリングされた時点の電圧値であるサンプリング値の変化から、各相の指令電圧のゼロクロス点のタイミングを予測して算出する。かかるタイミングが電圧極性の切替えタイミングとなる。例えば、タイミング算出部132は、ゼロクロス点のタイミングとして、現時点から次のゼロクロス点までの時間をサンプル値から算出する。
負荷状態判断部133は、インバータ制御部130による演算の負荷状態を判断する。例えば、負荷状態判断部133は、3相指令電圧Req_vu、Req_vv、Req_vwの各相の指令電圧のゼロクロス点を負荷状態が大きい時点と判断し、当該ゼロクロス点以外のタイミングを、負荷状態が所定負荷より少ないタイミングと判断する。ここで、負荷状態判断部133は、各相の指令電圧の絶対値がピークになる時点を演算の負荷状態が最小であると判断する。3相指令電圧Req_vu、Req_vv、Req_vwの各相の指令電圧のゼロクロス点は、タイミング算出部132により算出する。
モード切替え部134は、処理実行部に相当し、負荷状態判断部133により判断された、負荷状態が所定負荷より少ないタイミングであるゼロクロス点以外のタイミングで、所定の処理としての制御モードを切り替える処理を実行する。モード切替え部134は、制御モードを、PWM制御と矩形波制御との間で切替える。ここで、3相指令電圧Req_vu、Req_vv、Req_vwの各相の指令電圧がピーク値となるタイミングが負荷が最小となることから、モード切替え部134は、3相指令電圧Req_vu、Req_vv、Req_vwの各相の指令電圧がピーク値となるタイミングにモード切替え処理を実行することが好ましい。
次に、以上のように構成された実施形態1のモータ制御処理について説明する。図4は、実施形態1のモータ制御処理の手順を示すフローチャートである。
まず、2相指令電圧演算部120は、不図示のメモリ等に記憶されている前回の制御モードについて判断する(ステップS11)。
そして、前回の制御モードがPWM制御である場合には(ステップS11:PWM制御)、PWM制御演算部121の電流指令部122が、d軸およびq軸の電流指令を算出する(ステップS12a)。
次に、電流偏差演算部123は、d軸およびq軸の電流指令と2相実電流(d軸電流id、q軸電流iq)の差分により各軸の電流偏差を算出する(ステップS13a)。そして、電流制御部124は、d軸およびq軸の電流偏差が0になるように、2相指令電圧(指令d軸電圧Req_vd、指令q軸電圧Req_vq)を算出する(ステップS14a)。
一方、ステップS11において、前回の制御モードが矩形波制御である場合には(ステップS11:矩形波制御)、矩形波制御演算部125のトルク推定部126が、2相実電流(d軸電流id、q軸電流iq)からトルクを算出することにより推定する(ステップS12b)。
次に、トルク偏差演算部127は、トルク指令と、トルク推定部126で推定した推定トルクとの差分であるトルク偏差を算出する(ステップS13b)。そして、トルク制御部128は、トルク偏差が0になるように、2相指令電圧(指令d軸電圧Req_vd、指令q軸電圧Req_vq)を算出する(ステップS14b)。
次に、3相指令電圧演算部104は、2相指令電圧Req_vd、Req_vqから3相指令電圧Req_vu、Req_vv、Req_vwを算出する(ステップS15)。そして、3相指令電圧演算部104は、算出した3相指令電圧Req_vu、Req_vv、Req_vwをインバータ制御部130に出力する。
インバータ制御部130のモード切替え部134は、制御モードの切替え条件が具備されたか否かを判断する(ステップS16)。ここで、制御モードの切替え条件としては、例えば、3相指令電圧Req_vu、Req_vv、Req_vwの電圧振幅がバッテリ電圧の所定割合(例えば、0.7〜0.8)に達した場合等があげられるが、これに限定されるものではない。
制御モードの切替え条件が具備された場合には(ステップS16:Yes)、負荷状態判断部133は、インバータ制御部130における演算負荷の状態を判断する(ステップS17)。具体的には、上述したとおり、負荷状態判断部133は、ゼロクロス点を負荷状態が大きい時点と判断し、ゼロクロス点以外のタイミングを、負荷状態が所定負荷より少ないタイミングと判断する。
そして、負荷状態判断部133が、3相指令電圧Req_vu、Req_vv、Req_vwがゼロクロス点以外のタイミングをあり、負荷状態が所定負荷より少ないと判断した場合には(ステップS18:Yes)、モード切替え部134は、制御モードを切り替える(ステップS19)。すなわち、現在の制御モードがPWM制御である場合には、矩形波制御に切替え、現在の制御モードが矩形波制御である場合には、PWM制御に切替える。
そして、制御部131は、切替え後の制御モードを実行し、PWM制御または矩形波制御を行う(ステップS20a,S20b)。
ステップS16において制御モード切替え条件を具備していない場合(ステップS16:No)、およびステップS18において演算の負荷状態が所定負荷以上の場合、言い換えれば現在、ゼロクロス点のタイミングの場合(ステップS18:No)、モード切替え部134は、制御モードの切替え処理を行わず、制御部131は、現在の制御モードのまま、PWM制御または矩形波制御を行う(ステップS20a,S20b)。
次に、2相実電流演算部115は、3相同期モータ110からの3相電流iv、iw、iuをdq座標軸上のd軸電流idおよびq軸電流iq(2相実電流)に変換して、当該2相実電流を、2相指令電圧演算部120にフィードバックする(ステップS21)。
そして、インバータ制御部130の制御部131は終了指示の有無を判断し(ステップS22)、終了指示がない場合には(ステップS22:No)、ステップS11からS21までの処理を繰り返し実行する。一方、終了指示があった場合には(ステップS22:Yes)、処理を終了する。
次に、ステップS20bで行われる矩形波制御処理について説明する。図5は、実施形態1の矩形波制御処理の手順を示すフローチャートである。
まず、タイミング算出部132は、生成する矩形波のゲート電圧の電圧極性の切替えタイミングとして、3相指令電圧Req_vu、Req_vv、Req_vwの各相の指令電圧のゼロクロス点のタイミングを算出する(ステップS31)。
次に、制御部131は、ステップS31で算出された各相の指令電圧のゼロクロス点のタイミングでゲート電圧の電圧極性が切り替わる可変の矩形波を生成して、当該矩形波のゲート電圧をインバータ106に出力する(ステップS32)。
ここで、各相の指令電圧のゼロクロス点のタイミングでゲート電圧の電圧極性が切り替わる可変の矩形波を生成しているのは以下の理由による。
インバータ制御部130は、トルク指令と実際のトルクの差であるトルク偏差を0とするように、3相同期モータ110の位相角0度を基準として、180度ごとに電圧極性が変化する電圧位相の矩形波のゲート電圧でインバータ106を印加させる。
しかしながら、矩形波は、位相角0度を基準として180度ごとにゲート電圧の電圧極性が変化するため、従来技術では、位相角一周期(180度)内にゲート電圧の電圧位相を変化させることができない。すなわち、ゲート電圧における矩形波の立ち下がりのタイミングを変化させるような制御は可能であっても、矩形波の立ち上がりのタイミングは180度で固定であり変化させる制御を行うことはできない。
しかしながら、位相が180度進む間にも、3相同期モータ110のトルクの変動要因である電力消費によるバッテリ電圧の変動、磁気飽和によるインダクタンスの変動、温度による磁束鎖交数の変動は、位相以外の要因でも変動する。すなわち、位相角一周期にゲート電圧の電圧位相が変化しない矩形波制御を行う場合には、位相角一周期内におけるトルクの変動を考慮したトルクフィードバック制御を行うことが困難である。
このため、本実施形態では、制御部131は、トルク偏差をなくすように、ゲート電圧の電圧極性を、位相角180度のタイミング(立ち下がりのタイミング)の他、上記ゼロクロス点のタイミングで切り替えることで、立ち上がりのタイミングをも制御している。
図6は、実施形態1における矩形波制御における3相指令電圧とゲート電圧との関係を示すグラフである。図6に示すように、各相の指令電圧のゼロクロス点で、矩形波のゲート電圧の電圧極性が切り替わっている。これにより、本実施形態では、3相同期モータ110の位相角一周期内におけるトルクの変動を考慮したトルクのフィードバック制御が可能となる。
このように本実施形態では、インバータ106へのゲート電圧の出力を矩形波制御で実行している場合において、ゲート電圧の電圧極性を、位相角180度のタイミング(立ち下がりのタイミング)の他、ゼロクロス点のタイミングで切り替えることで、立ち上がりのタイミングをも制御しているので、3相同期モータ110の位相角一周期内におけるトルクの変動を考慮したトルクのフィードバック制御を行うことができる。
また、本実施形態では、インバータ制御部130の演算の負荷状態が少ない、3相指令電圧のゼロクロス点以外のタイミングで制御モードの切替えを実行しているので、モード切替え処理を円滑に行うことができる。
すなわち、本実施形態では、インバータ制御部130の演算の負荷状態を考慮し、負荷が少ない状態でPWM制御と矩形波制御の切り替えタイミングを設定するので、制御切り替え時の初回のスイッチングを演算する時間が確保できる。このため、本実施形態では、制御モードの切り替え時のタスクオーバーランを防止し、スイッチング異常に起因するトルク抜けを回避することが可能となる。
(実施形態2)
実施形態1では、インバータ制御部130の演算の負荷状態が少なくなるタイミングで、制御モードの切替えを実行していたが、この実施形態2では、実施形態1の機能に加え、さらに、当該タイミングにおいて、スイッチング状態の異常の有無の判断処理を行っている。
実施形態2のモータ制御装置100の全体構成は図1を用いて説明した実施形態1と同様である。本実施形態ではインバータ制御部の機能、構成が実施形態1と異なっている。
図7は、実施形態2のインバータ制御部630の機能的構成を示すブロック図である。本実施形態のインバータ制御部630は、図7に示すように、制御部131と、タイミング算出部132と、負荷状態判断部133と、モード切替え部134と、スイッチング異常判断部635と、復旧部636とを主に備えている。ここで、制御部131、タイミング算出部132、負荷状態判断部133、モード切替え部134の機能は実施形態1と同様である。
スイッチング異常判断部635は、処理実行部に相当し、矩形波制御の実行中に、負荷状態判断部133により判断された、負荷状態が所定負荷より少ないタイミングであるゼロクロス点以外のタイミングで、所定の処理として、スイッチング状態の異常を判断する処理を実行する。ここで、スイッチング状態の異常を判断する処理とは、インバータ制御部130の制御部131で生成されるゲート電圧の異常の有無を判断する処理である。
ここで、3相指令電圧Req_vu、Req_vv、Req_vwの各相の指令電圧がピーク値となるタイミングが負荷が最小となることから、スイッチング異常判断部635は、3相指令電圧Req_vu、Req_vv、Req_vwの各相の指令電圧がピーク値となるタイミングに、スイッチングの異常判断処理を実行することが好ましい。
スイッチング異常判断部635は、一例として、インバータ106に出力した各相のゲート電圧の信号をバッファに保存しておき、3相のゲート電圧の波形からゲート電圧の異常を判断する。ただし、かかる判断手法は一例であり、これらに限定されるものではない。
復旧部636は、スイッチング異常判断部635により、出力したゲート電圧に異常があると判断された場合に、当該ゲート電圧の信号を、正しい3相指令電圧Req_vu、Req_vv、Req_vwに基づいて復旧する。復旧の手法は、公知の手法が種々あるが、本実施形態では特に限定されるものではない。
次に、以上のように構成された実施形態1の矩形波制御処理について説明する。図8は、実施形態2の矩形波制御処理の手順を示すフローチャートである。
まず、制御部131は、3相指令電圧Req_vu、Req_vv、Req_vwからゲート電圧の矩形波を生成し、当該矩形波のゲート電圧をインバータ106に出力する(ステップS41)。
次に、負荷状態判断部133は、インバータ制御部130における演算負荷の状態を判断する(ステップS42)。具体的には、実施形態1と同様に、負荷状態判断部133は、ゼロクロス点を負荷状態が大きい時点と判断し、ゼロクロス点以外のタイミングを、負荷状態が所定負荷より少ないタイミングと判断する。
そして、負荷状態判断部133が、3相指令電圧Req_vu、Req_vv、Req_vwがゼロクロス点のタイミングであり、負荷状態が所定負荷より大きいと判断した場合には(ステップS43:No)、処理を終了する。
一方、負荷状態判断部133が、3相指令電圧Req_vu、Req_vv、Req_vwがゼロクロス点以外のタイミングであり、負荷状態が所定負荷より少ないと判断した場合には(ステップS43:Yes)、スイッチング異常判断部635は、ステップS41で出力した各相のゲート電圧の信号の異常の有無を判断する(ステップS44)。
そして、スイッチング異常判断部635がゲート電圧の信号に異常ありと判断した場合には(ステップS45:Yes)、復旧部636は、ゲート電圧の信号の復旧処理を行う(ステップS46)。一方、ステップS45で、スイッチング異常判断部635がゲート電圧の信号に異常なしと判断した場合には(ステップS45:No)、復旧処理は行われない。そして、処理を終了する。
このように本実施形態では、インバータ制御部130の演算の負荷状態が少なくなるタイミングにおいて、スイッチング状態の異常の有無の判断処理を行っているので、スイッチング異常判定処理を円滑に行うことができる。
すなわち、本実施形態では、スイッチング異常の状態監視を、すなわちゲート電圧の信号の異常の判断を、インバータ制御部130における演算の負荷の少ない状態で実施することにより、不要な演算負荷の増大を招くことなく、スイッチング異常に起因するトルク抜けを防止することができる。
上記実施形態では、タイミング算出部132、負荷状態判断部133、モード切替え部134、スイッチング異常判断部635、復旧部636をいずれもインバータ制御部130、630内部に設けた構成としているが、これに限定されるものではない。タイミング算出部132、負荷状態判断部133、モード切替え部134、スイッチング異常判断部635、復旧部636の一部若しくは全部を、インバータ制御部130、630の外部に設けた構成としてもよい。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、請求の範囲に記載された発明とその均等の範囲に含まれる。