JP2007252056A - 電動機の制御装置および制御方法 - Google Patents
電動機の制御装置および制御方法 Download PDFInfo
- Publication number
- JP2007252056A JP2007252056A JP2006070317A JP2006070317A JP2007252056A JP 2007252056 A JP2007252056 A JP 2007252056A JP 2006070317 A JP2006070317 A JP 2006070317A JP 2006070317 A JP2006070317 A JP 2006070317A JP 2007252056 A JP2007252056 A JP 2007252056A
- Authority
- JP
- Japan
- Prior art keywords
- motor
- calculation
- processing
- time
- command value
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Control Of Multiple Motors (AREA)
Abstract
【課題】1つのディジタル演算手段を用いて複数の電動機の電流フィードバック制御を共通に行い、かつ複数の電動機毎に異なったキャリア周期でも使用可能な電動機の制御装置を提供する。
【解決手段】電流値の取り込みからPWM信号出力までを全て行うA処理と、A処理の一部を省略して前回演算した電圧指令値を用いてPWM信号の演算を行うB処理とに分け、それぞれの電動機における各演算処理の残り時間を検出し、次に行う演算処理については残り時間に応じてA処理とB処理の何れかを選択する、つまり、残り時間が十分あってA処理を行うことが可能であれば正常なA処理を行い、残り時間が少なくてA処理が無理であれば必要最低限のB処理を行うように構成した電動機の制御装置。
【選択図】図1
【解決手段】電流値の取り込みからPWM信号出力までを全て行うA処理と、A処理の一部を省略して前回演算した電圧指令値を用いてPWM信号の演算を行うB処理とに分け、それぞれの電動機における各演算処理の残り時間を検出し、次に行う演算処理については残り時間に応じてA処理とB処理の何れかを選択する、つまり、残り時間が十分あってA処理を行うことが可能であれば正常なA処理を行い、残り時間が少なくてA処理が無理であれば必要最低限のB処理を行うように構成した電動機の制御装置。
【選択図】図1
Description
本発明は、複数の電動機を一つのデジタル演算手段で電流フィードバック制御する技術に関する。
複数の電動機を一つのデジタル演算手段(CPU)で電流フィードバック制御(電流フィードバック制御によるベクトル制御)する技術に関しては下記特許文献1に記載のものがある。
この装置においては、複数の電動機を制御すべくディジタル演算手段における電流フィードバックの演算周期をディジタル出力の出力周期のn倍とし、かつ、各々の電動機に対する電流フィードバック演算を互いに重ならないタイミングで行うように構成している。
特開2002−272184号公報
この装置においては、複数の電動機を制御すべくディジタル演算手段における電流フィードバックの演算周期をディジタル出力の出力周期のn倍とし、かつ、各々の電動機に対する電流フィードバック演算を互いに重ならないタイミングで行うように構成している。
上記特許文献1に記載の装置においては、1つのディジタル演算手段を用いて複数の電動機の電流フィードバック制御を共通に行うことが可能である。しかし、電圧制御信号をPWM(パルス幅変調)信号に変換する際のキャリア信号(例えば三角波信号)の周期として、複数の電動機に同一のキャリア周期を用いることを前提としているため、電動機毎にキャリア周期が変わると、制御の演算処理が間に合わなくなる場合が生じる。つまり、上記特許文献1においては、キャリア信号の谷の位置で制御演算開始の割り込みを行っているが、電動機毎にキャリア周期が異なると、次の割り込みまでに他方の電動機用の演算が終了しなくなる場合が生じるという問題点があった。
本発明は上記の問題を解決するものであり、1つのディジタル演算手段を用いて複数の電動機の電流フィードバック制御を共通に行い、かつ、複数の電動機毎に異なったキャリア周期でも使用可能な電動機の制御装置および制御方法を提供することを目的とする。
本発明は上記の問題を解決するものであり、1つのディジタル演算手段を用いて複数の電動機の電流フィードバック制御を共通に行い、かつ、複数の電動機毎に異なったキャリア周期でも使用可能な電動機の制御装置および制御方法を提供することを目的とする。
上記目的を達成するため、本発明においては、少なくとも、電動機の回転子位相θを読み込むθ入力処理と、電動機巻線に流れる電流値をA/D変換して取り込むA/D変換処理と、電流指令値と前記取り込んだ電流値との偏差から電圧指令値を求める電圧指令値演算処理と、前記電圧指令値からインバータを制御するPWM信号を生成するPWM演算処理と、前記PWM信号をレジスタに設定するレジスタ設定処理とを含み、電流値の取り込みからPWM信号出力までを行う一連の演算処理をA処理とし、
前記A処理から、前記A/D変換処理と、前記電圧指令値演算処理とを省き、今回の回転子位相θと前回演算した電圧指令値とを用いてPWM信号を出力するまでの一連の演算処理をB処理とし、
他の電動機の一回の演算処理が終了した時点から自己の一演算周期の終端までの時間を残り時間とした場合に、
それぞれの電動機における各演算処理の残り時間を検出し、次に行う演算処理については前記残り時間に応じて前記A処理と前記B処理の何れかを選択して行うように構成している。
すなわち、本発明においては、電流値の取り込みからPWM信号出力までを全て行うA処理と、A処理の一部を省略して前回演算した電圧指令値を用いてPWM信号の演算を行うB処理とに分け、それぞれの電動機における各演算処理の残り時間を検出し、次に行う演算処理については残り時間に応じてA処理とB処理の何れかを選択する、つまり、残り時間が十分あってA処理を行うことが可能であれば正常なA処理を行い、残り時間が少なくてA処理が無理であれば必要最低限のB処理を行うように構成している。
前記A処理から、前記A/D変換処理と、前記電圧指令値演算処理とを省き、今回の回転子位相θと前回演算した電圧指令値とを用いてPWM信号を出力するまでの一連の演算処理をB処理とし、
他の電動機の一回の演算処理が終了した時点から自己の一演算周期の終端までの時間を残り時間とした場合に、
それぞれの電動機における各演算処理の残り時間を検出し、次に行う演算処理については前記残り時間に応じて前記A処理と前記B処理の何れかを選択して行うように構成している。
すなわち、本発明においては、電流値の取り込みからPWM信号出力までを全て行うA処理と、A処理の一部を省略して前回演算した電圧指令値を用いてPWM信号の演算を行うB処理とに分け、それぞれの電動機における各演算処理の残り時間を検出し、次に行う演算処理については残り時間に応じてA処理とB処理の何れかを選択する、つまり、残り時間が十分あってA処理を行うことが可能であれば正常なA処理を行い、残り時間が少なくてA処理が無理であれば必要最低限のB処理を行うように構成している。
上記のように構成したことにより、本発明においては、複数の電動機を一つのCPUにより駆動制御する際に、複数の電動機毎にキャリア周期が異なり、PWMのキャリア信号の割り込みがランダムに変化するような場合でも、少なくとも処理時間の短いB処理は完了することが出来るので、演算負荷の増加を抑制しながら演算のタイミングやキャリア周期の設定の自由度を向上させることができる、という効果が得られる。
図1は、本発明を適用する電動機の制御装置のブロック図であり、電動機1台分について示している。実際には電動機の数だけ同じ制御ブロックがあるが、それらは全て1台のCPUにおけるデジタル演算によって行われる。
以下、まず図1に示した制御系における通常の電動機制御について説明する。
電動機1を流れるu、v、w各相の電流値iu[A]、iv[A]、iw[A]を図示しない電流センサによって検出する。なお、三相電流には iu+iv+iw=0 の関係があり、三相のうちの二相を検出すれば他の一相は演算によって求められるので、二相分を検出すればよい。
電動機1を流れるu、v、w各相の電流値iu[A]、iv[A]、iw[A]を図示しない電流センサによって検出する。なお、三相電流には iu+iv+iw=0 の関係があり、三相のうちの二相を検出すれば他の一相は演算によって求められるので、二相分を検出すればよい。
A/D変換部2では、アナログ値の上記電流値をA/D変換し、デジタル値として取り込む。ここではiu、ivの二相を変換して取り込む場合を示している。iwは上記のように演算によって求める。
θ検出部3では、電動機1の回転子位相(電気角)θ[rad]を図示しない位置検出器(レゾルバやエンコーダなど)によって検出し読み込む。そしてこの回転子位相θを微分部4で微分することにより、電動機の回転子角速度(電気角)ω[rad/s]を求める。
電流マップ部5では、外部から与えられるトルク指令値T*[N・m]と回転子角速度ωに応じてマップ引きを行うことにより、dq軸電流指令値id *、iq *を求める。
θ検出部3では、電動機1の回転子位相(電気角)θ[rad]を図示しない位置検出器(レゾルバやエンコーダなど)によって検出し読み込む。そしてこの回転子位相θを微分部4で微分することにより、電動機の回転子角速度(電気角)ω[rad/s]を求める。
電流マップ部5では、外部から与えられるトルク指令値T*[N・m]と回転子角速度ωに応じてマップ引きを行うことにより、dq軸電流指令値id *、iq *を求める。
dq軸電流演算部6では、下記(数1)式に示す演算を行って、三相電流iu、iv、iwをdq軸電流値id、iqに変換する。
三相変換部8は、下記(数3)式に示す演算を行い、上記のdq軸電圧指令値vd *、vq *を二相−三相変換して三相電圧指令値、つまりv相電圧指令値vu *、v相電圧指令値vv *[V]、w相電圧指令値vw *を出力する。なお、ここで用いるθは遅れ補償をした値を用いてもよい。
PWM変換部9は、三相電圧指令値をPWM信号に変換するものであり、下記(数4)式に示す演算を行って三相のPWM信号のパルス幅、すなわち、u相パルス幅tu、v相パルス幅tv、w相パルス幅twを求める。
デッドタイム補償部10は、三相電流値(iu、iv、iw)によって決まる補償値をマップ引きにより求め、それぞれのパルス幅に加えた値tu’、tv’、tw’を出力する。
なお、ここで用いる三相電流値としては、dq軸電流目標値を三相変換した三相電流目標値でもよいし、dq軸電流目標値に電流応答相当のフィルタをかけたdq軸電流推定値を三相変換した三相電流推定値でもよい。
但し、iu:u相電流値[A]、iv:v相電流値[A]、iw:w相電流値[A]
上記デッドタイム補償後の三相のパルス幅tu’、tv’、tw’は図示しないレジスタに設定され、このパルス幅に応じたPWM信号によってインバータ11が駆動制御される。それによって電動機1の各相巻線にはそれぞれu相電圧値vu[V]、v相電圧値vv[V]、w相電圧値vw[V]が印加され、電動機1に対して電流フィードバックによるベクトル制御が行われる。
但し、iu:u相電流値[A]、iv:v相電流値[A]、iw:w相電流値[A]
上記デッドタイム補償後の三相のパルス幅tu’、tv’、tw’は図示しないレジスタに設定され、このパルス幅に応じたPWM信号によってインバータ11が駆動制御される。それによって電動機1の各相巻線にはそれぞれu相電圧値vu[V]、v相電圧値vv[V]、w相電圧値vw[V]が印加され、電動機1に対して電流フィードバックによるベクトル制御が行われる。
上記の電動機制御は、CPUを用いたデジタル制御で行われるものであるが、複数の電動機について共通の一つのCPUを用いて上記のような制御を行う場合には、(発明が解決しようとする課題)に記載したように、電動機毎にキャリア周期が異なると、次の割り込みまでに他方の電動機用の演算が終了しなくなる場合が生じるという問題があった。
上記の問題を解決するため、本発明においては次のように構成している。
まず、図1に示すように、太実線で囲んだ部分をA処理とし、破線で囲んだ部分をB処理とする。すなわち、A処理は、全体の制御演算処理を含むものであり、電動機の回転子位相θを読み込むθ入力処理(1)と、電動機巻線に流れる電流値をA/D変換して取り込むA/D変換処理(2)と、三相電流iu、iv、iwをdq軸電流値id、iqに変換するdq軸電流演算処理(3)と、dq軸電圧指令値vd *、vq *を演算するdq軸電圧指令値演算処理(4)と、前記電圧指令値からインバータを制御するPWM信号を生成するPWM演算処理(5)と、演算したPWM信号をレジスタに設定するレジスタ設定処理(6)とを含む。
まず、図1に示すように、太実線で囲んだ部分をA処理とし、破線で囲んだ部分をB処理とする。すなわち、A処理は、全体の制御演算処理を含むものであり、電動機の回転子位相θを読み込むθ入力処理(1)と、電動機巻線に流れる電流値をA/D変換して取り込むA/D変換処理(2)と、三相電流iu、iv、iwをdq軸電流値id、iqに変換するdq軸電流演算処理(3)と、dq軸電圧指令値vd *、vq *を演算するdq軸電圧指令値演算処理(4)と、前記電圧指令値からインバータを制御するPWM信号を生成するPWM演算処理(5)と、演算したPWM信号をレジスタに設定するレジスタ設定処理(6)とを含む。
なお、表示を省略したが非干渉制御を含めてもよい。また、三相変換処理とPWM変換処理とデッドタイム補償処理とを一つにしてPWM演算処理(5)として示している。また、電流マップ部5は基本的にトルク指令値T*が変動した場合に演算するものであり、本発明におけるPWMキャリア信号の谷における割り込みで演算を開始する部分とは異なるので、微分部4と電流マップ部5は除いている。
また、特許請求の範囲においては、dq軸電流演算処理(3)とdq軸電圧指令値演算処理(4)と一つにして、「電流指令値と取り込んだ電流値との偏差から電圧指令値を求める電圧指令値演算処理」として記載している。
また、特許請求の範囲においては、dq軸電流演算処理(3)とdq軸電圧指令値演算処理(4)と一つにして、「電流指令値と取り込んだ電流値との偏差から電圧指令値を求める電圧指令値演算処理」として記載している。
上記のA処理に対してB処理は、A処理から、A/D変換処理(2)と、dq軸電流演算処理(3)と、dq軸電圧指令値演算処理(4)とを省いたものであり、今回の回転子位相θと前回演算した電圧指令値とを用いてPWM信号を演算する処理である。つまり、全ての演算処理を行うA処理に対し、電圧指令値の演算は行わず、前回の電圧指令値を用いることにより、演算処理時間を短縮したものがB処理である。
上記のようにB処理は、前回演算した電圧指令値を用いるので、演算値に誤差が生じる可能性があるが、連続して行わなければ実用的には支障を生じない。そのため本発明においては、基本的にはA処理とB処理とを組み合わせて用い、それぞれの電動機における各演算処理の残り時間を検出し、次に行う演算処理については残り時間に応じてA処理とB処理の何れかを選択する、つまり、残り時間が十分あってA処理を行うことが可能であれば正常なA処理を行い、残り時間が少なくてA処理が無理であれば必要最低限のB処理を行うように構成している。なお、残り時間とは他の電動機の一回の演算処理が終了した時点から自己(当該電動機)の一演算周期の終端までの時間を意味し、この間に自己の一回の演算処理を終了する必要がある。この残り時間は他の電動機についての演算終了時点から当該電動機のキャリア信号の次の谷までの時間なので、キャリア信号を計数するタイマのカウント値から容易に求めることが出来る。
図2は本発明におけるA処理とB処理の基本的な内容を示すタイムチャートであり、一つの電動機を制御する場合を示している。図2において、三角波12はPWM信号のキャリアであり、この谷の時点(山の時点でも可能)でCPUに割り込みを掛けて演算をスタートさせる。また、丸付きの数字は、θ入力処理(1)、A/D変換処理(2)、dq軸電流演算処理(3)、dq軸電圧指令値演算処理(4)、PWM演算処理(5)、レジスタ設定処理(6)をそれぞれ表している。
図2の(A)に記載している従来例においては、一演算周期(三角波の一周期)内で(1)〜(6)までの各演算を順に処理している。これに対して図2の(B)に示した本発明においては、最初の一演算周期ではA処理、つまり(1)〜(6)までの各演算を順に処理しているが、2番目の一演算周期ではB処理、つまり(1)、(5)、(6)の処理のみを行い、3番目の一演算周期ではA処理を行っている。なお、2番目の一演算周期では、(2)〜(4)の電圧指令値の演算を行わないので、最初の一演算周期で求めた電圧指令値を用いて(5)と(6)の処理を行っている。
図2に示した例は、一つの電動機を制御する例なので、従来例においても各演算周期において(1)〜(6)の全演算処理が完了している。しかし、一つのCPUで複数の電動機を制御する場合には、演算に使用できる残り時間、つまり他の電動機の一回の演算処理が終了した時点から自己の一演算周期の終端までの時間が(1)〜(6)の全演算処理を行うに要する時間よりも短い場合は、演算を完了することが不可能になる。そのため、本発明においては、2番目の一演算周期に示すように、前回の演算で求めた電圧指令値を用いた簡単なB処理を行うように構成している。B処理は演算時間が短いので、残り時間が短い場合でも演算を完了することが可能である。
(実施例1)
図3は本発明の実施例1の方法を説明するためのタイムチャートであり、一つのCPUで2台の電動機(モータαとモータβ)を制御する場合の例を示す。図3(A)はモータαとモータβのキャリア周期は同一であるが、位相が半周期ずれている場合、図3(B)はモータαとモータβのキャリア周期が同一で、かつ同位相の場合を示す。
図3は本発明の実施例1の方法を説明するためのタイムチャートであり、一つのCPUで2台の電動機(モータαとモータβ)を制御する場合の例を示す。図3(A)はモータαとモータβのキャリア周期は同一であるが、位相が半周期ずれている場合、図3(B)はモータαとモータβのキャリア周期が同一で、かつ同位相の場合を示す。
図3において、各モータについてキャリア信号の谷の時点で割り込みを行うが、その時点で他のモータについての演算を行っている場合には、他のモータの1回の演算が終了した時点で自己の演算を開始する。また、基本的には一つの電動機についてA処理とB処理を交互に行うが、A処理の順番であっても残り時間が少なくA処理が不可能であればB処理を行う。
図3(A)に示すように、時点t1においてモータβの割り込みが行われるが、この時点ではモータαについてのA処理が行われているので、そのA処理が終了した時点t2からモータβについての処理が開始される。この場合には残り時間τ1(t2〜t5)がA処理に要する時間よりも長いので、モータβについてもA処理が行われる。次に時点t3においてモータαの割り込みが行われるが、この時点ではモータβについてのA処理が行われているので、そのA処理が終了した時点t4からモータαについての処理が開始される。この場合には、モータαについての残り時間τ2(t4〜t6)がA処理に要する時間以上であっても、B処理の順番なのでB処理が行われる。次に、モータβについてもB処理が行われ、次に、モータαについてA処理が行われ、この順番で順次演算処理が行われる。上記のように、キャリア周期が半周期ずれている場合には、モータαのA処理とモータβのA処理を連続して行っても処理は間に合う。
次に、図3(B)に示したように、モータαとモータβのキャリア周期が同一で、かつ同位相の場合は、最初の一演算周期におけるモータαのA処理が終了した時点からモータβの次の割り込みまでの残り時間τ3が短いので、モータβについてはA処理を行うことが出来ずB処理を行う。次に、モータαについてB処理を行うことにより、モータβについての残り時間が長くなるので、モータβについての次の処理はA処理が可能になる。
上記のように、両モータのキャリア周期に位相のずれがない場合は、モータαのA処理とモータβのA処理を連続して行うと処理が間に合わないので、モータβの処理開始時に残り時間を計算してB処理を行うことにより、次の割り込み前に処理を終了することができる。
上記のように、両モータのキャリア周期に位相のずれがない場合は、モータαのA処理とモータβのA処理を連続して行うと処理が間に合わないので、モータβの処理開始時に残り時間を計算してB処理を行うことにより、次の割り込み前に処理を終了することができる。
図4は、上記実施例1の処理内容を示すフローチャートであり、図1の各処理を実行するCPUにおける演算処理の内容を示す。
図4において、ステップS1ではキャリア信号の谷における割り込みが発生したか否かを判断する。
割り込みが発生した場合(ステップS1=Yes)には、ステップS2で前回の処理がA処理であったか否かを判断し、A処理であった場合(ステップS2=Yes)には、ステップS3で他のモータについての処理中か否かを判断する。
他のモータが処理中(ステップS3=Yes)の場合には、他のモータについての処理が終了するまで待機する。
他のモータが処理中でない(ステップS3=No)の場合には、ステップS4でB処理を行う。
図4において、ステップS1ではキャリア信号の谷における割り込みが発生したか否かを判断する。
割り込みが発生した場合(ステップS1=Yes)には、ステップS2で前回の処理がA処理であったか否かを判断し、A処理であった場合(ステップS2=Yes)には、ステップS3で他のモータについての処理中か否かを判断する。
他のモータが処理中(ステップS3=Yes)の場合には、他のモータについての処理が終了するまで待機する。
他のモータが処理中でない(ステップS3=No)の場合には、ステップS4でB処理を行う。
一方、前記ステップS2で前回の処理がA処理でなかった場合(ステップS2=No)には、ステップS5で他のモータについての処理中か否かを判断する。
他のモータが処理中(ステップS5=Yes)の場合には、他のモータについての処理が終了するまで待機する。
他のモータが処理中でない(ステップS5=No)の場合には、ステップS6で次の自己の割り込みまでにA処理が完了できるか否か、つまり、残り時間がA処理に要する時間以上か否かを判断し、A処理が可能(ステップS6=Yes)な場合にはステップS7でA処理を行う。
残り時間が短くA処理が不可能(ステップS6=No)の場合には、ステップS4でB処理を行う。
他のモータが処理中(ステップS5=Yes)の場合には、他のモータについての処理が終了するまで待機する。
他のモータが処理中でない(ステップS5=No)の場合には、ステップS6で次の自己の割り込みまでにA処理が完了できるか否か、つまり、残り時間がA処理に要する時間以上か否かを判断し、A処理が可能(ステップS6=Yes)な場合にはステップS7でA処理を行う。
残り時間が短くA処理が不可能(ステップS6=No)の場合には、ステップS4でB処理を行う。
上記のように、各モータについてキャリア信号の谷の時点で割り込みを行うが、その時点で他のモータについての演算を行っている場合には、他のモータの1回の演算が終了した時点で自己の演算を開始し、かつ、基本的には一つのモータについてA処理とB処理を交互に行うが、A処理の順番であっても残り時間が少なくA処理が不可能であればB処理を行うように構成すれば、前記図3に示したようにキャリア周期の位相がずれている場合でも同位相の場合でも確実に各モータについての演算を完了させることが出来る。したがって、複数の電動機を一つのCPUで駆動する際に、PWMのキャリアによる割り込みの関係がランダムに変化しても制御ができるので、演算負荷の増加を抑制しながら演算のタイミングやキャリア周期の設定の自由度を向上させることができる。また、A処理が割り込みに間に合わない時でもB処理を行うことができるので、電流制御性が向上する。
(実施例2)
図5は本発明の実施例2の方法を説明するためのタイムチャートであり、一つのCPUで2台の電動機(モータαとモータβ)を制御する場合に、モータαとモータβのキャリア周期が異なる場合を示す。
図5は本発明の実施例2の方法を説明するためのタイムチャートであり、一つのCPUで2台の電動機(モータαとモータβ)を制御する場合に、モータαとモータβのキャリア周期が異なる場合を示す。
図5(A)は、キャリア周期が異なる際に前記実施例1に示した方法を適用した場合を示す。
図5(A)に示すように、モータαのキャリア周期はモータβのキャリア周期よりも短い。そのためモータαについての3番目の演算周期では、残り時間τ4がA処理に要する時間よりも短くなる。したがって本来ならA処理の順番であるが、やむを得ずB処理が行われてしまい、前回と連続してB処理が行われることになる。しかし、B処理は前回A処理を行った際の電圧指令値を用いて三相電圧演算をしているため、B処理が連続して行われると電流制御性が低下するので、なるべくB処理が連続するのは避けることが望ましい。そのため実施例2においては、図5(B)のように構成している。
図5(A)に示すように、モータαのキャリア周期はモータβのキャリア周期よりも短い。そのためモータαについての3番目の演算周期では、残り時間τ4がA処理に要する時間よりも短くなる。したがって本来ならA処理の順番であるが、やむを得ずB処理が行われてしまい、前回と連続してB処理が行われることになる。しかし、B処理は前回A処理を行った際の電圧指令値を用いて三相電圧演算をしているため、B処理が連続して行われると電流制御性が低下するので、なるべくB処理が連続するのは避けることが望ましい。そのため実施例2においては、図5(B)のように構成している。
図5(B)においては、モータαが割り込んだ時点でモータβが処理を行っている場合でも、モータβの残り時間を計算して、モータαについてのA処理を先に行っても、モータβの処理が完了することが出来る場合には、モータβの処理を中断してモータαについてのA処理を先に行わせるように構成している。つまり、モータβの2番目の演算周期におけるA処理を中断してモータαについてのA処理を先に行い、それが終了してからモータβのA処理の続きを行っている。
この例の場合、モータβのキャリア周期はモータαのキャリア周期よりも長く、残り時間も長くなる場合が多いと考えられるので、上記のようにすれば、モータαについてのA処理を行うことが出来る可能性が大きくなり、モータαについてB処理が連続して行われる可能性が減少する。そのため制御特性を向上させることが出来る。
図6は、上記実施例2の処理内容を示すフローチャートであり、図1の各処理を実行するCPUにおける演算処理の内容を示す。
図6において、ステップS1〜ステップS7は前記図4と同等であり、ステップS8を追加したものである。
すなわち、ステップS5で他のモータが処理中(ステップS5=Yes)の場合には、ステップS8へ行き、自己のA処理を行っても当該他のモータの処理が終了するのか否かを判断する。そして他のモータの処理が終了する場合(ステップS8=Yes)には、ステップS7で自己のA処理を先に行う。この場合、当該他のモータについての処理は自己のA処理が終了するまで中断され、自己のA処理が終了してから再開されることになる。
図6において、ステップS1〜ステップS7は前記図4と同等であり、ステップS8を追加したものである。
すなわち、ステップS5で他のモータが処理中(ステップS5=Yes)の場合には、ステップS8へ行き、自己のA処理を行っても当該他のモータの処理が終了するのか否かを判断する。そして他のモータの処理が終了する場合(ステップS8=Yes)には、ステップS7で自己のA処理を先に行う。この場合、当該他のモータについての処理は自己のA処理が終了するまで中断され、自己のA処理が終了してから再開されることになる。
上記のように、A処理を行う順番で割り込んだ時点で、他のモータ制御が処理を行っている場合、他のモータ制御の残り時間を検出し、自分がA処理を先に行ったとしても他のモータ御の処理が完了することを確認できれば自分のA処理を先に行うことができるので、B処理が連続する可能性が小さくなり、電流制御性を向上することが出来る。
(実施例3)
図7は本発明の実施例3の方法を説明するためのタイムチャートであり、一つのCPUで2台の電動機(モータαとモータβ)を制御する場合に、モータαとモータβのキャリア周期が異なり、かつ、モータβのキャリア周期が変化する場合を示す。
図7は本発明の実施例3の方法を説明するためのタイムチャートであり、一つのCPUで2台の電動機(モータαとモータβ)を制御する場合に、モータαとモータβのキャリア周期が異なり、かつ、モータβのキャリア周期が変化する場合を示す。
図7(A)は、キャリア周期が変化する場合に前記実施例2に示した方法を適用した場合を示す。
この場合には、モータβのキャリア周期が変化するため、モータαの3番目の演算周期において、A処理を入れるだけの間隔が取れないので、実施例2の方法を適用してもB処理が連続してしまう。そのため実施例3においては、図7(B)に示すように構成している。
この場合には、モータβのキャリア周期が変化するため、モータαの3番目の演算周期において、A処理を入れるだけの間隔が取れないので、実施例2の方法を適用してもB処理が連続してしまう。そのため実施例3においては、図7(B)に示すように構成している。
図7(B)において、モータαの2番目の演算周期は、本来ならB処理の順番であるが、モータαが割り込んだ際にモータβの残り時間を計算し、モータαについてA処理を行ったとしてもモータβの処理が間に合う場合は、モータαについてのB処理をA処理に代えている。したがってモータαについての最初と2番目の演算周期ではA処理が連続して行われることになり、次がB処理になってもB処理が連続するのを回避することが出来る。
このように、本来ならB処理の順番である場合にも他のモータの処理が間に合う場合には、A処理を行わせることにより、B処理が連続して行われることを回避し、電流制御性を向上させることができる。なお、B処理は前回演算した電圧指令値を用いるので、演算値に誤差が生じる可能性があるため、出来るだけA処理を行った方がよいので、上記のようにA処理が連続しても、むしろ制御性は向上するのであり、全く問題は無い。
図8は、上記実施例3の処理内容を示すフローチャートであり、図1の各処理を実行するCPUにおける演算処理の内容を示す。
図8において、ステップS1〜ステップS8は前記図6と同等であり、ステップS9を追加したものである。
ステップS9においては、次の他のモータの割り込みまでに自己のA処理が可能か否かを判断し、可能な場合にはステップS5へ行くように構成している。これにより、本来ならB処理の順番である場合にも他のモータの処理が間に合う場合には、A処理を行わせることが可能になる。
図8において、ステップS1〜ステップS8は前記図6と同等であり、ステップS9を追加したものである。
ステップS9においては、次の他のモータの割り込みまでに自己のA処理が可能か否かを判断し、可能な場合にはステップS5へ行くように構成している。これにより、本来ならB処理の順番である場合にも他のモータの処理が間に合う場合には、A処理を行わせることが可能になる。
上記のように、自己のモータがB処理を行う順番で割り込んだ瞬間に他のモータ制御処理を行っている場合、他のモータ制御の残り時間を検出し、自己がA処理を先に行ったとしても他のモータ処理が完了することを確認できればA処理を先に行うことにより、B処理が連続するのを回避して電流制御性を向上させることが出来る。
(実施例4)
図9は本発明の実施例4の方法を説明するためのタイムチャートであり、一つのCPUで2台の電動機(モータαとモータβ)を制御する場合に、モータαとモータβのキャリア周期が異なり、かつ、モータβのキャリア周期が変化する場合における他の方法を示す。
図9は本発明の実施例4の方法を説明するためのタイムチャートであり、一つのCPUで2台の電動機(モータαとモータβ)を制御する場合に、モータαとモータβのキャリア周期が異なり、かつ、モータβのキャリア周期が変化する場合における他の方法を示す。
図9に示すように、モータβの3番目の演算周期において、モータβの今回のキャリア周期τ6がモータαのキャリア周期τ5の複数倍(図9では2倍)以上あり、かつ、空白時間がA処理に要する時間以上の場合には、モータβについてB処理の順番でもA処理を行う。
なお、空白時間とは、自己のキャリア周期からA処理に要する時間の前記複数倍を減算した値、つまり自己のキャリア周期の中で他のモータの処理が行われていない時間の合計値であり、図9においては、空白時間=τ7+τ8+τ9に相当する。
上記の空白時間がA処理に要する時間以上であれば、その時間内にA処理を行うことが出来る。なお、モータβの3番目の演算周期では、A処理を3回に分けて行っている。
なお、空白時間とは、自己のキャリア周期からA処理に要する時間の前記複数倍を減算した値、つまり自己のキャリア周期の中で他のモータの処理が行われていない時間の合計値であり、図9においては、空白時間=τ7+τ8+τ9に相当する。
上記の空白時間がA処理に要する時間以上であれば、その時間内にA処理を行うことが出来る。なお、モータβの3番目の演算周期では、A処理を3回に分けて行っている。
また、上記の例ではモータαとモータβの2台の場合なので、最短周期はモータαのキャリア周期に相当するが、一般的には電動機制御装置のシステムが設定可能なキャリア周期の最短周期を意味する。
図10は、上記実施例4の処理内容を示すフローチャートであり、図1の各処理を実行するCPUにおける演算処理の内容を示す。
図10において、ステップS1〜ステップS9は前記図8と同等であり、ステップS10を追加したものである。ステップS10では、自己のキャリア周期が最短周期の複数倍以上(この“以上”とはピッタリ複数倍でなくとも、それ以上であればよいとの意味)であり、かつ、自己のキャリア周期からA処理に要する時間の前記複数倍を減算した空白時間がA処理に要する時間以上か否かを判断し、以上の場合(ステップS10=Yes)の場合には、ステップS5へ行く。これにより、上記の条件に適合する場合には、B処理の順番でもA処理を行わせることが可能になる。
図10において、ステップS1〜ステップS9は前記図8と同等であり、ステップS10を追加したものである。ステップS10では、自己のキャリア周期が最短周期の複数倍以上(この“以上”とはピッタリ複数倍でなくとも、それ以上であればよいとの意味)であり、かつ、自己のキャリア周期からA処理に要する時間の前記複数倍を減算した空白時間がA処理に要する時間以上か否かを判断し、以上の場合(ステップS10=Yes)の場合には、ステップS5へ行く。これにより、上記の条件に適合する場合には、B処理の順番でもA処理を行わせることが可能になる。
上記のように実施例4においては、B処理を行う順番で自己の周期が最短周期の複数倍以上ある場合、空白時間がA処理に要する時間以上あると判断できれば、A処理を行うことができるので、電流制御性が向上する。
(実施例5)
図11は本発明の実施例5の方法を説明するためのタイムチャートであり、これまで説明した各方法において、一方の電動機がA/D変換処理を行っている時間に、他方の電動機についてはA/D変換処理以外の電流制御演算を行う場合を示す。つまり、A/D変換処理は他の演算と独立に行われるので、その間は他方の電動機についての電流制御処理を行うことが可能である。
図11は本発明の実施例5の方法を説明するためのタイムチャートであり、これまで説明した各方法において、一方の電動機がA/D変換処理を行っている時間に、他方の電動機についてはA/D変換処理以外の電流制御演算を行う場合を示す。つまり、A/D変換処理は他の演算と独立に行われるので、その間は他方の電動機についての電流制御処理を行うことが可能である。
図11は、一例として二つの電動機のキャリア周期が同一で、かつ、位相が同じ場合、つまり前記図3(B)と同様の場合における例を示すものであり、(A)は単にA処理とB処理を交互に行う場合、(B)は実施例1の場合、(C)は実施例1に本実施例を組み合わせた場合を示す。
図11に示すように、(A)では、モータαの2番目の割り込みまでにモータβのA処理が完了しないので、制御が出来なくなっている。
(B)では、残り時間によってA処理とB処理を選択することにより、制御が正常に行われている。
(C)では、最初の演算周期では、モータαでA/D変換処理(2)を行っている間にモータβではθ検出処理(1)を行い、また、モータβでA/D変換処理(2)を行っている間にモータαではdq軸電流演算処置(3)とdq軸電圧指令値演算処理(4)を行っている。また、2番目の演算周期では、モータβでA/D変換処理(2)を行っている間にモータαではθ検出処理(1)と三相変換処理(5)を行っている。
このように一方の電動機でA/D変換処理を行っている間に、他方の電動機ではA/D変換処理以外の電流制御演算処理を行うことにより、(B)の場合よりも演算負荷が小さくなる。
(B)では、残り時間によってA処理とB処理を選択することにより、制御が正常に行われている。
(C)では、最初の演算周期では、モータαでA/D変換処理(2)を行っている間にモータβではθ検出処理(1)を行い、また、モータβでA/D変換処理(2)を行っている間にモータαではdq軸電流演算処置(3)とdq軸電圧指令値演算処理(4)を行っている。また、2番目の演算周期では、モータβでA/D変換処理(2)を行っている間にモータαではθ検出処理(1)と三相変換処理(5)を行っている。
このように一方の電動機でA/D変換処理を行っている間に、他方の電動機ではA/D変換処理以外の電流制御演算処理を行うことにより、(B)の場合よりも演算負荷が小さくなる。
なお、図11においては、実施例1に実施例5を組み合わせた場合のみを示しているが、これまで説明したどの実施例とも組み合わせることが出来る。
上記のように、実施例5によれば、一方の電動機のA/D変換処理中に他の電動機ではA/D変換処理以外の制御演算処理を行うことにより、電流制御の演算負荷が小さくなり、A処理の頻度が多くなるので、電流制御性が向上する。
上記のように、実施例5によれば、一方の電動機のA/D変換処理中に他の電動機ではA/D変換処理以外の制御演算処理を行うことにより、電流制御の演算負荷が小さくなり、A処理の頻度が多くなるので、電流制御性が向上する。
1…電動機 2…A/D変換部
3…θ検出部 4…微分部
5…電流マップ部 6…dq軸電流演算部
7…dq軸制御部 8…三相変換部
9…PWM変換部 10…デッドタイム補償部
11…インバータ 12…三角波
(1)…θ入力処理 (2)…A/D変換処理
(3)…dq軸電流演算処理 (4)…dq軸電圧指令値演算処理
(5)…PWM演算処理 (6)…レジスタ設定処理
3…θ検出部 4…微分部
5…電流マップ部 6…dq軸電流演算部
7…dq軸制御部 8…三相変換部
9…PWM変換部 10…デッドタイム補償部
11…インバータ 12…三角波
(1)…θ入力処理 (2)…A/D変換処理
(3)…dq軸電流演算処理 (4)…dq軸電圧指令値演算処理
(5)…PWM演算処理 (6)…レジスタ設定処理
Claims (7)
- 一つのデジタル演算装置を用いて複数の電動機を制御する電動機の制御装置において、
前記デジタル演算装置は、各電動機毎に任意の周期で演算処理を繰り返し、
少なくとも、電動機の回転子位相θを読み込むθ入力処理と、電動機巻線に流れる電流値をA/D変換して取り込むA/D変換処理と、電流指令値と前記取り込んだ電流値との偏差から電圧指令値を求める電圧指令値演算処理と、前記電圧指令値からインバータを制御するPWM信号を生成するPWM演算処理と、前記PWM信号をレジスタに設定するレジスタ設定処理とを含み、電流値の取り込みからPWM信号出力までを行う一連の演算処理をA処理とし、
前記A処理から、前記A/D変換処理と、前記電圧指令値演算処理とを省き、今回の回転子位相θと前回演算した電圧指令値とを用いてPWM信号を出力するまでの一連の演算処理をB処理とし、
他の電動機の一回の演算処理が終了した時点から自己の一演算周期の終端までの時間を残り時間とした場合に、
それぞれの電動機における各演算処理の残り時間を検出し、次に行う演算処理については前記残り時間に応じて前記A処理と前記B処理の何れかを選択して行う手段を備えたことを特徴とする電動機の制御装置。 - 一つのデジタル演算装置を用いて複数の電動機を制御する電動機の制御方法であって、
前記デジタル演算装置における演算は、各電動機毎に任意の周期で演算処理を繰り返し、
少なくとも、電動機の回転子位相θを読み込むθ入力処理と、電動機巻線に流れる電流値をA/D変換して取り込むA/D変換処理と、電流指令値と前記取り込んだ電流値との偏差から電圧指令値を求める電圧指令値演算処理と、前記電圧指令値からインバータを制御するPWM信号を生成するPWM演算処理と、前記PWM信号をレジスタに設定するレジスタ設定処理とを含み、電流値の取り込みからPWM信号出力までを行う一連の演算処理をA処理とし、
前記A処理から、前記A/D変換処理と、前記電圧指令値演算処理とを省き、今回の回転子位相θと前回演算した電圧指令値とを用いてPWM信号を出力するまでの一連の演算処理をB処理とし、
他の電動機の一回の演算処理が終了した時点から自己の一演算周期の終端までの時間を残り時間とした場合に、
それぞれの電動機における各演算処理の残り時間を検出し、次に行う演算処理については前記残り時間に応じて前記A処理と前記B処理の何れかを選択して行うことを特徴とする電動機の制御方法。 - 一つの電動機についての演算処理は、基本的には1回のA処理と1回または複数回のB処理とを組み合わせて繰り返し実行し、任意のα電動機についての次の演算処理は、先に実行している他のβ電動機の演算処理が完了した時点で実行し、次の演算がA処理を行う順番であった場合に、前記α電動機の残り時間を検出し、該残り時間がA処理に要する時間よりも短い場合はA処理に代えてB処理を実行することを特徴とする請求項2に記載の電動機の制御方法。
- 一つの電動機についての演算処理は、基本的には1回のA処理と1回または複数回のB処理とを組み合わせて繰り返し実行し、任意のα電動機についての次の演算がA処理を行う順番であった場合に、演算の割り込みを行った時点で他のβ電動機の演算処理を行っていた場合には、前記β電動機についての残り時間を検出し、前記α電動機についてA処理を先に行ったとしても前記β電動機の処理が完了することを確認できれば前記α電動機のA処理を先に行い、前記β電動機の処理が終わらない場合は前記β電動機の処理が完了した時点で、前記α電動機についての残り時間を検出し、該残り時間がA処理に要する時間よりも短ければA処理に代えてB処理を行い、
また、演算の割り込みを行った時点で他の電動機について処理を行っていない場合は、前記α電動機についての残り時間を検出し、該残り時間がA処理に要する時間よりも短ければA処理に代えてB処理を行うことを特徴とする請求項2に記載の電動機の制御方法。 - 任意のα電動機についての次の演算処理がB処理を行う順番であった場合に、演算の割り込みを行った時点で他のβ電動機の演算処理を行っていた場合には、前記β電動機の残り時間を検出し、前記α電動機がA処理を先に行ったとしても前記β電動機の処理が完了することが確認できれば前記α電動機のA処理を先に行い、
また、他の電動機について処理を行っていない場合も、当該他のβ電動機の残り時間を検出し、前記α電動機がA処理を先に行ったとしても前記β電動機の処理が可能な場合には前記α電動機のA処理を先に行い、不可能な場合はB処理を行うことを特徴とする請求項3または請求項4に記載の電動機の制御方法。 - 任意のα電動機についての次の演算処理がB処理を行う順番であった場合に、前記α電動機の演算周期が他の電動機における最短周期の複数倍以上ある場合には、自己の今回の演算周期からA処理に要する時間の前記複数倍を減算した空白時間がA処理に要する時間以上あると判断できれば、B処理に代えてA処理を行うことを特徴とする請求項3乃至請求項5の何れかに記載の電動機の制御方法。
- 任意のα電動機について電動機巻線に流れる電流値をA/D変換して取り込むA/D変換処理を行っている間は、他の電動機ついてのA/D変換処理以外の各演算処理を行うことを特徴とする請求項3乃至請求項6の何れかに記載の電動機の制御方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006070317A JP2007252056A (ja) | 2006-03-15 | 2006-03-15 | 電動機の制御装置および制御方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006070317A JP2007252056A (ja) | 2006-03-15 | 2006-03-15 | 電動機の制御装置および制御方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007252056A true JP2007252056A (ja) | 2007-09-27 |
Family
ID=38595786
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006070317A Pending JP2007252056A (ja) | 2006-03-15 | 2006-03-15 | 電動機の制御装置および制御方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2007252056A (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010016981A (ja) * | 2008-07-03 | 2010-01-21 | Toyota Motor Corp | 電動機制御装置、制御方法 |
JP2010110116A (ja) * | 2008-10-30 | 2010-05-13 | Ricoh Co Ltd | モータ駆動装置 |
JP2012016243A (ja) * | 2010-07-05 | 2012-01-19 | Honda Motor Co Ltd | 制御装置 |
US20120229067A1 (en) * | 2011-03-10 | 2012-09-13 | Barbero Maurizio | Voltage regulator for dc motors |
-
2006
- 2006-03-15 JP JP2006070317A patent/JP2007252056A/ja active Pending
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010016981A (ja) * | 2008-07-03 | 2010-01-21 | Toyota Motor Corp | 電動機制御装置、制御方法 |
JP2010110116A (ja) * | 2008-10-30 | 2010-05-13 | Ricoh Co Ltd | モータ駆動装置 |
JP2012016243A (ja) * | 2010-07-05 | 2012-01-19 | Honda Motor Co Ltd | 制御装置 |
US20120229067A1 (en) * | 2011-03-10 | 2012-09-13 | Barbero Maurizio | Voltage regulator for dc motors |
CN102684574A (zh) * | 2011-03-10 | 2012-09-19 | 盖茨股份有限公司 | 驱动电路、电机驱动方法及车辆引擎热交换系统 |
US8796977B2 (en) * | 2011-03-10 | 2014-08-05 | Gate S.R.L. | Voltage regulator for DC motors |
CN102684574B (zh) * | 2011-03-10 | 2016-08-17 | 盖茨股份有限公司 | 驱动电路、电机驱动方法及车辆引擎热交换系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8294395B2 (en) | Controller for AC rotary machine and controller for electric power steering | |
JP2011142791A (ja) | 多相回転機の制御装置 | |
JP5413420B2 (ja) | 回転機の制御装置 | |
JP2019193445A (ja) | モータ駆動装置 | |
JP4710474B2 (ja) | 交流電動機の制御装置 | |
JP2007252056A (ja) | 電動機の制御装置および制御方法 | |
JP2010029031A (ja) | モータ制御装置 | |
JP2005065439A (ja) | 電圧形インバータの制御方法 | |
JP5011892B2 (ja) | 電動機制御装置 | |
JP2007259677A (ja) | 電動機の制御装置および制御方法 | |
JP5573930B2 (ja) | モータ制御装置及びモータ制御方法 | |
JP4539192B2 (ja) | 交流電動機の制御装置 | |
JP5167768B2 (ja) | 電動機制御装置および電動機制御方法 | |
JP2006074951A (ja) | 交流電動機の制御装置 | |
US11356037B2 (en) | Inverter control device, inverter control method, inverter control program | |
JP4619712B2 (ja) | 交流電動機の制御装置 | |
JP6946988B2 (ja) | 駆動装置 | |
JP2010252432A (ja) | 回転機の制御装置 | |
JP2011061956A (ja) | 電動機の制御装置 | |
JP2007252139A (ja) | 電動機制御装置および電動機制御方法 | |
JP2006081322A (ja) | 交流電動機の制御装置 | |
JP5303903B2 (ja) | 電動機の制御装置およびその制御方法 | |
JP4682521B2 (ja) | 誘導電動機の可変速制御装置 | |
JP6772844B2 (ja) | 交流電動機の制御装置 | |
JP2005117757A (ja) | 電流検出回路の故障診断装置およびモータ制御システム |