(57)【要約】【課題】１つのディジタル演算手段を用いて複数の電動機の制御を共通に行い、かつ複数の電動機毎に異なったキャリア周期でも使用可能な電動機の制御装置を提供する。【解決手段】電流値の取り込みからＰＷＭ信号出力までを全て行うＡ処理と、Ａ処理の一部を省略して前回演算した電圧指令値を用いてＰＷＭ信号の演算を行うＢ処理とに分け、それぞれの電動機における各演算処理の残り時間を検出し、次に行う演算処理については残り時間に応じてＡ処理とＢ処理の何れかを選択する、つまり、残り時間が十分あってＡ処理を行うことが可能であれば正常なＡ処理を行い、残り時間が少なくてＡ処理が無理であれば必要最低限のＢ処理を行うように構成しており、さらにＡ処理をＡ’処理とＡ”処理とに分け、Ａ’処理を先に行う、つまり電圧指令値演算処理の前にＰＷＭ演算処理とレジスタ設定処理とを行うように構成した電動機の制御装置。【選択図】図１
2007259677.tif 000002
【特許請求の範囲】
【請求項１】
一つのデジタル演算装置を用いて複数の電動機を制御する電動機の制御装置において、
前記デジタル演算装置は、各電動機毎に任意の周期で演算処理を繰り返し、
少なくとも、電動機の回転子位相θを読み込むθ入力処理と、電動機巻線に流れる電流値をＡ／Ｄ変換して取り込むＡ／Ｄ変換処理と、電流指令値と前記取り込んだ電流値との偏差から電圧指令値を求める電圧指令値演算処理と、前記電圧指令値からインバータを制御するＰＷＭ信号を生成するＰＷＭ演算処理と、前記ＰＷＭ信号をレジスタに設定するレジスタ設定処理とを含み、電流値の取り込みからＰＷＭ信号出力までを行う一連の演算処理をＡ処理とし、このＡ処理の中で、前記θ入力処理と、前記Ａ／Ｄ変換処理と、前記ＰＷＭ演算処理と、前記レジスタ設定処理とをＡ’処理とし、前記電圧指令値演算処理をＡ”処理とし、
前記Ａ処理から、前記Ａ／Ｄ変換処理と、前記電圧指令値演算処理とを省き、今回の回転子位相θと以前に演算した電圧指令値とを用いてＰＷＭ信号を出力するまでの一連の演算処理をＢ処理とし、
他の電動機の一回の演算処理が終了した時点から自己の一演算周期の終端までの時間を残り時間とした場合に、
それぞれの電動機の演算処理について、前記Ａ処理においては前記Ａ’処理を行ってから前記Ａ”処理を行い、
それぞれの電動機における各演算処理の残り時間を検出し、次に行う演算処理については前記残り時間に応じて前記Ａ処理と前記Ｂ処理の何れかを選択して行う手段を備えたことを特徴とする電動機の制御装置。
【請求項２】
一つのデジタル演算装置を用いて複数の電動機を制御する電動機の制御方法であって、
前記デジタル演算装置における演算は、各電動機毎に任意の周期で演算処理を繰り返し、
少なくとも、電動機の回転子位相θを読み込むθ入力処理と、電動機巻線に流れる電流値をＡ／Ｄ変換して取り込むＡ／Ｄ変換処理と、電流指令値と前記取り込んだ電流値との偏差から電圧指令値を求める電圧指令値演算処理と、前記電圧指令値からインバータを制御するＰＷＭ信号を生成するＰＷＭ演算処理と、前記ＰＷＭ信号をレジスタに設定するレジスタ設定処理とを含み、電流値の取り込みからＰＷＭ信号出力までを行う一連の演算処理をＡ処理とし、このＡ処理の中で、前記θ入力処理と、前記Ａ／Ｄ変換処理と、前記ＰＷＭ演算処理と、前記レジスタ設定処理とをＡ’処理とし、前記電圧指令値演算処理をＡ”処理とし、
前記Ａ処理から、前記Ａ／Ｄ変換処理と、前記電圧指令値演算処理とを省き、今回の回転子位相θと以前に演算した電圧指令値とを用いてＰＷＭ信号を出力するまでの一連の演算処理をＢ処理とし、
他の電動機の一回の演算処理が終了した時点から自己の一演算周期の終端までの時間を残り時間とした場合に、
それぞれの電動機の演算処理について、前記Ａ処理においては前記Ａ’処理を行ってから前記Ａ”処理を行い、
それぞれの電動機における各演算処理の残り時間を検出し、次に行う演算処理については前記残り時間に応じて前記Ａ処理と前記Ｂ処理の何れかを選択して行うことを特徴とする電動機の制御方法。
【請求項３】
一つの電動機についての演算処理は、基本的には１回のＡ処理と１回または複数回のＢ処理とを組み合わせて繰り返し実行し、任意のα電動機についての次の演算処理は、先に実行している他のβ電動機の演算処理が完了した時点で実行し、次の演算がＡ処理を行う順番であった場合に、前記α電動機の残り時間を検出し、前記残り時間がＡ処理全体に要する時間以上の場合はＡ処理全体を行い、前記残り時間がＡ処理全体に要する時間よりは短いがＡ’処理に要する時間以上の場合はＡ’処理のみを行ってその後にＡ”処理を行い、前記残り時間がＡ’処理に要する時間よりも短い場合はＡ処理に代えてＢ処理を実行することを特徴とする請求項２に記載の電動機の制御方法。
【請求項４】
一つの電動機についての演算処理は、基本的には１回のＡ処理と１回または複数回のＢ処理とを組み合わせて繰り返し実行し、任意のα電動機についての次の演算がＡ処理を行う順番であった場合に、演算の割り込みを行った時点で他のβ電動機の演算処理を行っていた場合には、前記β電動機についての残り時間を検出し、前記α電動機についてＡ処理を先に行ったとしても前記β電動機の処理が完了することを確認できればＡ処理を先に行い、前記β電動機の処理が終わらない場合は前記β電動機の処理が完了した時点で、前記α電動機についての残り時間を検出し、前記残り時間がＡ処理全体に要する時間以上の場合はＡ処理全体を行い、前記残り時間がＡ処理全体に要する時間よりは短いがＡ’処理に要する時間以上の場合はＡ’処理のみを行ってその後にＡ”処理を行い、前記残り時間がＡ’処理に要する時間よりも短い場合はＡ処理に代えてＢ処理を行い、
また、演算の割り込みを行った時点で他の電動機について処理を行っていない場合は、前記α電動機についての残り時間を検出し、前記残り時間がＡ処理全体に要する時間よりも長い場合はＡ処理全体を行い、前記残り時間がＡ処理全体に要する時間よりは短いがＡ’処理に要する時間以上の場合はＡ’処理のみを行ってその後にＡ”処理を行い、前記残り時間がＡ’処理に要する時間よりも短い場合はＡ処理に代えてＢ処理を行うことを特徴とする請求項２に記載の電動機の制御方法。
【請求項５】
任意のα電動機についての次の演算処理がＢ処理を行う順番であった場合に、演算の割り込みを行った時点で他のβ電動機の演算処理を行っていた場合には、前記β電動機の残り時間を検出し、前記α電動機がＡ処理を先に行ったとしても前記β電動機の処理が完了することが確認できればＢ処理に代えてＡ処理を先に行い、
また、他の電動機について処理を行っていない場合も、当該他の電動機の残り時間を検出し、前記α電動機がＡ処理を先に行ったとしても前記β電動機の処理が可能な場合にはＡ処理を先に行い、不可能な場合はＢ処理を行うことを特徴とする請求項３または請求項４に記載の電動機の制御方法。
【請求項６】
任意のα電動機についての次の演算処理がＢ処理を行う順番であった場合に、前記α電動機の演算周期が他の電動機における最短周期の複数倍以上ある場合には、自己の今回の演算周期からＡ処理に要する時間の前記複数倍を減算した空白時間がＡ処理に要する時間以上あると判断できれば、Ｂ処理に代えてＡ処理を行うことを特徴とする請求項３乃至請求項５の何れかに記載の電動機の制御方法。
【請求項７】
任意のα電動機について電動機巻線に流れる電流値をＡ／Ｄ変換して取り込むＡ／Ｄ変換処理を行っている間は、他の電動機ついてのＡ／Ｄ変換以外の各演算処理を行うように構成したことを特徴とする請求項２乃至請求項６の何れかに記載の電動機の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の電動機を一つのデジタル演算手段で電流フィードバック制御する技術に関する。
【背景技術】
【０００２】
複数の電動機を一つのデジタル演算手段（ＣＰＵ）で電流フィードバック制御（電流フィードバック制御によるベクトル制御）する技術に関しては下記特許文献１に記載のものがある。  
この装置においては、複数の電動機を制御すべくディジタル演算手段における電流フィードバックの演算周期をディジタル出力の出力周期のｎ倍とし、かつ、各々の電動機に対する電流フィードバック演算を互いに重ならないタイミングで行うように構成している。
【特許文献１】特開２００２−２７２１８４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
上記特許文献１に記載の装置においては、１つのディジタル演算手段を用いて複数の電動機の電流フィードバック制御を共通に行うことが可能である。しかし、電圧制御信号をＰＷＭ（パルス幅変調）信号に変換する際のキャリア信号（例えば三角波信号）の周期として、複数の電動機に同一のキャリア周期を用いることを前提としているため、電動機毎にキャリア周期が変わると、制御の演算処理が間に合わなくなる場合が生じる。つまり、上記特許文献１においては、キャリア信号の谷の位置で制御演算開始の割り込みを行っているが、電動機毎にキャリア周期が異なると、次の割り込みまでに他方の電動機用の演算が終了しなくなる場合が生じるという問題点があった。  
本発明は上記の問題を解決するものであり、１つのディジタル演算手段を用いて複数の電動機の電流フィードバック制御を共通に行い、かつ、複数の電動機毎に異なったキャリア周期でも使用可能な電動機の制御装置および制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００４】
上記目的を達成するため、本発明においては、少なくとも、電動機の回転子位相θを読み込むθ入力処理と、電動機巻線に流れる電流値をＡ／Ｄ変換して取り込むＡ／Ｄ変換処理と、電流指令値と前記取り込んだ電流値との偏差から電圧指令値を求める電圧指令値演算処理と、前記電圧指令値からインバータを制御するＰＷＭ信号を生成するＰＷＭ演算処理と、前記ＰＷＭ信号をレジスタに設定するレジスタ設定処理とを含み、電流値の取り込みからＰＷＭ信号出力までを行う一連の演算処理をＡ処理とし、
前記Ａ処理の中で、前記θ入力処理と、前記Ａ／Ｄ変換処理と、前記ＰＷＭ演算処理と、前記レジスタ設定処理とをＡ’処理とし、前記電圧指令値演算処理をＡ”処理とし、
前記Ａ処理から、前記Ａ／Ｄ変換処理と、前記電圧指令値演算処理とを省き、今回の回転子位相θと以前に演算した電圧指令値とを用いてＰＷＭ信号を出力するまでの一連の演算処理をＢ処理とし、
他の電動機の一回の演算処理が終了した時点から自己の一演算周期の終端までの時間を残り時間とした場合に、
それぞれの電動機の演算処理について、前記Ａ処理においては前記Ａ’処理を行ってから前記Ａ”処理を行い、
それぞれの電動機における各演算処理の残り時間を検出し、次に行う演算処理については前記残り時間に応じて前記Ａ処理（Ａ処理全体を一度に行う場合と、Ａ’処理とＡ”処理に分けて行う場合とがあるが、何れにしてもＡ処理）と前記Ｂ処理の何れかを選択して行うように構成している。
【０００５】
すなわち、本発明においては、電流値の取り込みからＰＷＭ信号出力までを全て行うＡ処理と、Ａ処理の一部を省略して前回演算した電圧指令値を用いてＰＷＭ信号の演算を行うＢ処理とに分け、それぞれの電動機における各演算処理の残り時間を検出し、次に行う演算処理については残り時間に応じてＡ処理とＢ処理の何れかを選択する、つまり、残り時間が十分あってＡ処理を行うことが可能であれば正常なＡ処理を行い、残り時間が少なくてＡ処理が無理であれば必要最低限のＢ処理を行うように構成しており、さらに、Ａ処理をＡ’処理とＡ”処理とに分け、Ａ’処理を先に行う、つまり電圧指令値演算処理の前にＰＷＭ演算処理とレジスタ設定処理とを行うように構成している。
【発明の効果】
【０００６】
上記のように構成したことにより、本発明においては、複数の電動機を一つのＣＰＵにより駆動制御する際に、複数の電動機毎にキャリア周期が異なり、ＰＷＭのキャリア信号の割り込みがランダムに変化するような場合でも、少なくとも処理時間の短いＢ処理は完了することが出来るので、演算負荷の増加を抑制しながら演算のタイミングやキャリア周期の設定の自由度を向上させることができる、という効果が得られる。  
また、Ａ処理をＡ’処理とＡ”処理とに分け、電圧指令値演算処理の前にＰＷＭ演算処理とレジスタ設定処理とを行うように構成しているので、少なくともＡ’処理が終わればＰＷＭ信号を出力してインバータを駆動することが出来る。そのため残り時間がＡ処理全体を行うには短いがＡ’処理なら可能な場合には、まずＡ’処理のみを行ってその後にＡ”処理を行うことが出来るので、残り時間が短い場合でもＡ処理を行える可能性が大きくなり、Ｂ処理が連続するのを回避出来る。
【発明を実施するための最良の形態】
【０００７】
図１は、本発明を適用する電動機の制御装置のブロック図であり、電動機１台分について示している。実際には電動機の数だけ同じ制御ブロックがあるが、それらは全て１台のＣＰＵにおけるデジタル演算によって行われる。
【０００８】
以下、まず図１に示した制御系における通常の電動機制御について説明する。  
電動機１を流れるｕ、ｖ、ｗ各相の電流値ｉｕ［Ａ］、ｉｖ［Ａ］、ｉｗ［Ａ］を図示しない電流センサによって検出する。なお、三相電流には  ｉｕ＋ｉｖ＋ｉｗ＝０  の関係があり、三相のうちの二相を検出すれば他の一相は演算によって求められるので、二相分を検出すればよい。
【０００９】
Ａ／Ｄ変換部２では、アナログ値の上記電流値をＡ／Ｄ変換し、デジタル値として取り込む。ここではｉｕ、ｉｖの二相を変換して取り込む場合を示している。ｉｗは上記のように演算によって求める。  
θ検出部３では、電動機１の回転子位相（電気角）θ［ｒａｄ］を図示しない位置検出器（レゾルバやエンコーダなど）によって検出し読み込む。そしてこの回転子位相θを微分部４で微分することにより、電動機の回転子角速度（電気角）ω［ｒａｄ／ｓ］を求める。  
電流マップ部５では、外部から与えられるトルク指令値Ｔ＊［Ｎ・ｍ］と回転子角速度ωに応じてマップ引きを行うことにより、ｄｑ軸電流指令値ｉｄ＊、ｉｑ＊を求める。
【００１０】
ｄｑ軸電流演算部６では、下記（数１）式に示す演算を行って、三相電流ｉｕ、ｉｖ、ｉｗをｄｑ軸電流値ｉｄ、ｉｑに変換する。
【００１１】
【数１】
2007259677.tif 000003
ｄｑ軸制御部７では、下記（数２）式に示す演算を行い、ｄｑ軸電流指令値ｉｄ＊、ｉｑ＊と実際のｄｑ軸電流値ｉｄ、ｉｑとの偏差（ｉｄ＊−ｉｄ、ｉｑ＊−ｉｑ）に応じたｄｑ軸電圧指令値ｖｄ＊、ｖｑ＊を演算する。なお、この際、非干渉制御を追加しても良い。
【００１２】
【数２】
2007259677.tif 000004
但し、ｖｄ＊：ｄ軸電圧指令値［Ｖ］、ｖｑ＊：ｑ軸電圧指令値［Ｖ］、ｉｄ：ｄ軸電流値［Ａ］、ｉｑ：ｑ軸電流値［Ａ］、Ｋｐｄ：ｄ軸比例ゲイン、Ｋｐｑ：ｑ軸比例ゲイン、Ｋｉｄ：ｄ軸積分ゲイン、Ｋｉｑ：ｑ軸積分ゲイン、ｓ：ラプラス演算子
三相変換部８は、下記（数３）式に示す演算を行い、上記のｄｑ軸電圧指令値ｖｄ＊、ｖｑ＊を二相−三相変換して三相電圧指令値、つまりｖ相電圧指令値ｖｕ＊、ｖ相電圧指令値ｖｖ＊［Ｖ］、ｗ相電圧指令値ｖｗ＊を出力する。なお、ここで用いるθは遅れ補償をした値を用いてもよい。
【００１３】
【数３】
2007259677.tif 000005
但し、ｖｕ＊：ｖ相電圧指令値［Ｖ］、ｖｖ＊：ｖ相電圧指令値［Ｖ］、ｖｗ＊：ｗ相電圧指令値［Ｖ］、ｖｄ＊：ｄ軸電圧指令値［Ｖ］、ｖｑ＊：ｑ軸電圧指値［Ｖ］、θ：電動機の回転子位相［ｒａｄ］
ＰＷＭ変換部９は、三相電圧指令値をＰＷＭ信号に変換するものであり、下記（数４）式に示す演算を行って三相のＰＷＭ信号のパルス幅、すなわち、ｕ相パルス幅ｔｕ、ｖ相パルス幅ｔｖ、ｗ相パルス幅ｔｗを求める。
【００１４】
【数４】
2007259677.tif 000006
但し、Ｔ０：ＰＷＭキャリア周期［ｓ］、ｖｄｃ：直流電圧［Ｖ］、ｔｕ：ｕ相パルス幅［ｓ］、ｔｖ：ｖ相パルス幅［ｓ］、ｔｗ：ｗ相パルス幅［ｓ］
デッドタイム補償部１０は、三相電流値（ｉｕ、ｉｖ、ｉｗ）によって決まる補償値をマップ引きにより求め、それぞれのパルス幅に加えた値ｔｕ’、ｔｖ’、ｔｗ’を出力する。
【００１５】
なお、ここで用いる三相電流値としては、ｄｑ軸電流目標値を三相変換した三相電流目標値でもよいし、ｄｑ軸電流目標値に電流応答相当のフィルタをかけたｄｑ軸電流推定値を三相変換した三相電流推定値でもよい。  
但し、ｉｕ：ｕ相電流値［Ａ］、ｉｖ：ｖ相電流値［Ａ］、ｉｗ：ｗ相電流値［Ａ］
上記デッドタイム補償後の三相のパルス幅ｔｕ’、ｔｖ’、ｔｗ’は図示しないレジスタに設定され、このパルス幅に応じたＰＷＭ信号によってインバータ１１が駆動制御される。それによって電動機１の各相巻線にはそれぞれｕ相電圧値ｖｕ［Ｖ］、ｖ相電圧値ｖｖ［Ｖ］、ｗ相電圧値ｖｗ［Ｖ］が印加され、電動機１に対して電流フィードバックによるベクトル制御が行われる。
【００１６】
上記の電動機制御は、ＣＰＵを用いたデジタル制御で行われるものであるが、複数の電動機について共通の一つのＣＰＵを用いて上記のような制御を行う場合には、（発明が解決しようとする課題）に記載したように、電動機毎にキャリア周期が異なると、次の割り込みまでに他方の電動機用の演算が終了しなくなる場合が生じるという問題があった。
【００１７】
上記の問題を解決するため、本発明においては次のように構成している。  
まず、図１に示すように、太実線で囲んだ部分をＡ処理とし、破線で囲んだ部分をＢ処理とする。すなわち、Ａ処理は、全体の制御演算処理を含むものであり、電動機の回転子位相θを読み込むθ入力処理（１）と、電動機巻線に流れる電流値をＡ／Ｄ変換して取り込むＡ／Ｄ変換処理（２）と、三相電流ｉｕ、ｉｖ、ｉｗをｄｑ軸電流値ｉｄ、ｉｑに変換するｄｑ軸電流演算処理（３）と、ｄｑ軸電圧指令値ｖｄ＊、ｖｑ＊を演算するｄｑ軸電圧指令値演算処理（４）と、前記電圧指令値からインバータを制御するＰＷＭ信号を生成するＰＷＭ演算処理（５）と、演算したＰＷＭ信号をレジスタに設定するレジスタ設定処理（６）とを含む。
【００１８】
なお、表示を省略したが非干渉制御を含めてもよい。また、三相変換処理とＰＷＭ変換処理とデッドタイム補償処理とを一つにしてＰＷＭ演算処理（５）として示している。また、電流マップ部５は基本的にトルク指令値Ｔ＊が変動した場合に演算するものであり、本発明におけるＰＷＭキャリア信号の谷における割り込みで演算を開始する部分とは異なるので、微分部４と電流マップ部５は除いている。  
また、特許請求の範囲においては、ｄｑ軸電流演算処理（３）とｄｑ軸電圧指令値演算処理（４）と一つにして、「電流指令値と取り込んだ電流値との偏差から電圧指令値を求める電圧指令値演算処理」として記載している。  
さらに本発明においては、Ａ処理の中で、θ入力処理（１）と、Ａ／Ｄ変換処理（２）と、ＰＷＭ演算処理（５）と、レジスタ設定処理（６）とをＡ’処理とし、電圧指令値演算処理（３）（４）をＡ”処理としている。
【００１９】
上記のＡ処理に対してＢ処理は、Ａ処理から、Ａ／Ｄ変換処理（２）と、ｄｑ軸電流演算処理（３）と、ｄｑ軸電圧指令値演算処理（４）とを省いたものであり、今回の回転子位相θと前回演算した電圧指令値とを用いてＰＷＭ信号を演算する処理である。つまり、全ての演算処理を行うＡ処理に対し、電圧指令値の演算は行わず、前回の電圧指令値を用いることにより、演算処理時間を短縮したものがＢ処理である。
【００２０】
上記のようにＢ処理は、前回演算した電圧指令値を用いるので、連続して行うと演算値に誤差が生じる可能性があるが、連続して行わなければ実用的には支障を生じない。そのため本発明においては、基本的にはＡ処理とＢ処理とを組み合わせて用い、それぞれの電動機における各演算処理の残り時間を検出し、次に行う演算処理については残り時間に応じてＡ処理とＢ処理の何れかを選択する、つまり、残り時間が十分あってＡ処理を行うことが可能であれば正常なＡ処理を行い、残り時間が少なくてＡ処理が無理であれば必要最低限のＢ処理を行うように構成している。なお、残り時間とは他の電動機の一回の演算処理が終了した時点から自己（当該電動機）の一演算周期の終端までの時間を意味し、この間に自己の一回の演算処理が終了する必要がある。この残り時間は他の電動機についての演算終了時点から当該電動機のキャリア信号の次の谷までの時間なので、キャリア信号を計数するタイマのカウント値から容易に求めることが出来る。
【００２１】
さらに本発明においては、それぞれの電動機の演算処理について、Ａ処理においてはＡ’処理を行ってからＡ”処理を行うように構成している。つまり、本来は、電圧指令値演算処理（３）（４）を行ってから、その結果をＰＷＭ演算処理してレジスタに設定するのであるが、本発明においては、前回または前々回（なるべく直近）の電圧指令値演算結果を用いてＰＷＭ演算処理（５）とレジスタ設定処理（６）とを先に行い、その次に今回の電圧指令値演算処理を行うようにしている。このようにＰＷＭ演算処理とレジスタ設定処理とを先に行うので、少なくともＡ’処理が終わればＰＷＭ信号を出力してインバータを駆動することが出来る。そのため残り時間がＡ処理全体を行うには短いがＡ’処理なら可能な場合には、まずＡ’処理のみを行ってその後にＡ”処理を行うことが出来るので、残り時間が短い場合でもＡ処理を行える可能性が大きくなり、Ｂ処理が連続するのを回避出来る。
【００２２】
なお、上記のように電圧指令値演算処理（３）（４）の前にＰＷＭ演算処理（５）とレジスタ設定処理（６）とを先に行うので、このＰＷＭ演算処理（５）とレジスタ設定処理（６）は前回または前々回（なるべく直近）の電圧指令値演算結果を用いて行うことになる。そのため少なくとも１回分は電圧指令値演算が遅れた値を用いることになるが、Ａ’処理の後には必ずＡ”処理が行われ、Ａ処理全体が完了するので、遅れが積算されることはない。
【００２３】
図２は本発明におけるＡ処理（Ａ処理全体とＡ’処理とＡ”処理）とＢ処理の基本的な内容を示すタイムチャートであり、一つの電動機を制御する場合を示している。図２において、三角波信号１２はＰＷＭ信号のキャリアであり、この谷の時点（山の時点でも可能）でＣＰＵに割り込みを掛けて演算をスタートさせる。また、丸付きの数字は、θ入力処理（１）、Ａ／Ｄ変換処理（２）、ｄｑ軸電流演算処理（３）、ｄｑ軸電圧指令値演算処理（４）、ＰＷＭ演算処理（５）、レジスタ設定処理（６）をそれぞれ表している。
【００２４】
図２の（Ａ）に記載している従来例においては、一演算周期（三角波の一周期）内で（１）〜（６）までの各演算を順に処理している。これに対して図２の（Ｂ）に示した本発明においては、最初の演算周期ではＡ処理、つまり（１）〜（６）までの各演算を処理しているが、２番目の演算周期ではＢ処理、つまり（１）、（５）、（６）の処理のみを行い、３番目の演算周期ではＡ処理を行っている。なお、２番目の演算周期では、（２）〜（４）の電圧指令値の演算を行わないので、最初の演算周期で求めた電圧指令値を用いて（５）と（６）の処理を行っている。
【００２５】
また、最初と３番目の演算周期に示したように、Ａ処理内の処理順番を（１）（２）（５）（６）（３）（４）としている。つまり、Ａ’処理である（１）（２）（５）（６）を先に行い、Ａ”処理である（３）（４）を後で行っている。そのためＰＷＭ演算処理（５）とレジスタ設定処理（６）で行う演算は、前回または前々回のｄｑ軸電流演算処理（３）とｄｑ軸電圧指令値演算処理（４）で求めた電圧指令値に基づいて演算を行っている。
【００２６】
図２に示した例は、一つの電動機を制御する例なので、従来例においても各演算周期において（１）〜（６）の全演算処理が完了している。しかし、一つのＣＰＵで複数の電動機を制御する場合には、演算に使用できる残り時間、つまり他の電動機の一回の演算処理が終了した時点から自己の一演算周期の終端までの時間が（１）〜（６）の全演算処理を行うに要する時間よりも短い場合は、演算を完了することが不可能になる。そのため、本発明においては、２番目の演算周期に示すように、前回の演算で求めた電圧指令値を用いた簡単なＢ処理を行うように構成している。Ｂ処理は演算時間が短いので、残り時間が短い場合でも演算を完了することが可能である。
【００２７】
（実施例１）
図３は本発明の実施例１の方法を説明するためのタイムチャートであり、一つのＣＰＵで２台の電動機（モータαとモータβ）を制御する場合の例を示す。図３（Ａ）はモータαとモータβのキャリア周期は同一であるが、位相が半周期ずれている場合、図３（Ｂ）はモータαとモータβのキャリア周期が同一で、かつ同位相の場合を示す。
【００２８】
図３において、各モータについてキャリア信号の谷の時点で割り込みを行うが、その時点で他のモータについての演算を行っている場合には、他のモータの１回の演算が終了した時点で自己の演算を開始する。また、基本的には一つの電動機についてＡ処理とＢ処理を交互に行うが、Ａ処理の順番であっても残り時間が少なくＡ処理が不可能であればＢ処理を行う。
【００２９】
図３（Ａ）に示すように、時点ｔ１においてモータβの割り込みが行われるが、この時点ではモータαについてのＡ’処理が行われているので、そのＡ’処理が終了した時点ｔ２からモータβについての処理が開始される。この場合には残り時間τ１（ｔ２〜ｔ６）がＡ処理に要する時間よりも長いので、モータβについてもＡ処理が行われる。なお、この例では残り時間τ１が長いのでＡ処理全体を行うことも可能であるが、図３（Ｂ）との対比を分かりやすくするため、Ａ’処理を行う場合を示している。
【００３０】
次に時点ｔ３においてモータαの割り込みが行われるが、この時点ではモータβについてのＡ’処理が行われているので、そのＡ’処理が終了した時点ｔ４からモータαについての処理が開始される。この場合には、まず前回のＡ処理の残りであるＡ”処理を行い、続いてＢ処理を行う。なお、モータαについての残り時間τ２（ｔ４〜ｔ７）がＡ”処理＋Ａ処理に要する時間以上であっても、Ｂ処理の順番なのでＢ処理が行われる。なお、この場合にはモータαについての最初の演算周期ではＡ’処理のみが行われ、２番目の演算周期でＡ”処理が行われるので、Ａ”処理＋Ａ処理に要する時間で判断する必要がある。
【００３１】
次に、モータβについてもＡ”処理とＢ処理が行われ、この順番で順次演算処理が行われる。上記のように、キャリア周期が半周期ずれている場合には、モータαのＡ’処理とモータβのＡ’処理を連続して行っても処理は間に合う。
【００３２】
次に、図３（Ｂ）に示したように、モータαとモータβのキャリア周期が同一で、かつ同位相の場合は、最初の演算周期におけるモータαのＡ’処理が終了した時点からモータβの次の割り込みまでの残り時間τ３が短いので、モータβについてはＡ’処理を行うことが出来ずＢ処理を行う。次に、モータαについてＡ”処理とＢ処理を行うことにより、モータβについての残り時間が長くなるので、モータβについての次の処理はＡ’処理が可能になる。なお、モータβについての２番目の演算周期においては、残り時間τ４が長いので、Ａ’処理とＡ”処理を続けて、つまりＡ処理全体を行っている。このように残り時間がＡ処理全体を行うに要する時間以上の場合はＡ処理全体を連続して行う。
【００３３】
上記のように、Ａ処理をＡ’処理とＡ”処理に分けて行う場合でも、両モータのキャリア周期に位相のずれがない場合は、モータαのＡ’処理とモータβのＡ’処理を連続して行うと処理が間に合わない場合が生じるので、モータβの処理開始時に残り時間を計算してＢ処理を行うことにより、次の割り込み前に処理を終了することができる。
【００３４】
なお、図３（Ａ）においては、モータαのＡ’処理とモータβのＡ’処理とが連続しているので、モータαの最初の演算周期ではＡ”処理を入れる余裕が無く、Ａ”処理は２番目の演算周期で行っているが、図３（Ｂ）においては、最初の演算周期において、モータαのＡ’処理の後にモータβのＢ処理が行われ、それが終わった後にモータαのＡ”処理が行われている。
【００３５】
図４は、上記実施例１の処理内容を示すフローチャートであり、図１の各処理を実行するＣＰＵにおける演算処理の内容を示す。  
図４において、ステップＳ１ではキャリア信号の谷における割り込みが発生したか否かを判断する。  
割り込みが発生した場合（ステップＳ１＝Ｙｅｓ）には、ステップＳ２で前回の処理がＡ処理であったか否かを判断し、Ａ処理であった場合（ステップＳ２＝Ｙｅｓ）には、ステップＳ３で他のモータについての処理中か否かを判断する。  
他のモータが処理中（ステップＳ３＝Ｙｅｓ）の場合には、他のモータについての処理が終了するまで待機する。  
他のモータが処理中でない（ステップＳ３＝Ｎｏ）の場合には、ステップＳ４でＢ処理を行う。
【００３６】
一方、前記ステップＳ２で前回の処理がＡ処理でなかった場合（ステップＳ２＝Ｎｏ）には、ステップＳ５で他のモータについての処理中か否かを判断する。  
他のモータが処理中（ステップＳ５＝Ｙｅｓ）の場合には、他のモータについての処理が終了するまで待機する。  
他のモータが処理中でない（ステップＳ５＝Ｎｏ）の場合には、ステップＳ６で次の自己の割り込みまでにＡ処理（Ａ処理全体の意味）が完了できるか否か、つまり、残り時間がＡ処理に要する時間以上か否かを判断し、Ａ処理が可能（ステップＳ６＝Ｙｅｓ）な場合にはステップＳ１１でＡ処理を行う。つまり残り時間が十分あればＡ処理全体を連続して行う。
【００３７】
残り時間がＡ処理全体に要する時間よりも短い場合（ステップＳ６＝Ｎｏ）には、ステップＳ７で残り時間がＡ’処理に要する時間以上か否かを判断する。残り時間がＡ’処理に要する時間よりも短い場合（ステップＳ７＝Ｎｏ）には、ステップＳ４でＢ処理を行う。  
ステップＳ７＝Ｙｅｓの場合は、ステップＳ８でＡ’処理を行う。
【００３８】
ステップＳ９では他のモータについての処理中か否かを判断し、他のモータが処理中（ステップＳ９＝Ｙｅｓ）の場合には、他のモータについての処理が終了するまで待機する。  
他のモータが処理中でない（ステップＳ９＝Ｎｏ）の場合には、ステップＳ１０でＡ”処理を行う。つまり、他のモータの処理が終われば残っていたＡ”処理を行う。
【００３９】
上記のように、各モータについてキャリア信号の谷の時点で割り込みを行うが、その時点で他のモータについての演算を行っている場合には、他のモータの１回の演算が終了した時点で自己の演算を開始し、かつ、基本的には一つのモータについてＡ処理とＢ処理を交互に行う。そしてＡ処理の順番であっても残り時間が少なくＡ処理が不可能であればＢ処理を行うが、Ａ処理が不可能でもＡ’処理は可能である場合は、まずＡ’処理を行い、その後にＡ”処理を行うことによってＡ処理全体を完了させる。
【００４０】
上記のように構成すれば、前記図３に示したようにキャリア周期の位相がずれている場合でも同位相の場合でも確実に各モータについての演算を完了させることが出来る。したがって、複数の電動機を一つのＣＰＵで駆動する際に、ＰＷＭのキャリアによる割り込みの関係がランダムに変化しても制御ができるので、演算負荷の増加を抑制しながら演算のタイミングやキャリア周期の設定の自由度を向上させることができる。また、Ａ処理が割り込みに間に合わない時でもＢ処理を行うことができるので、電流制御性が向上する。また、Ａ処理をＡ’処理とＡ”処理とに分けてＡ’処理を先に行うことにより、少なくともＰＷＭ演算処理とレジスタ設定処理とを先に行うことが出来るので、Ａ’処理のみで一演算周期が終了した場合でも、その回の演算終了時点でＰＷＭ信号を出力してインバータを駆動することが出来る。
【００４１】
（実施例２）
図５は本発明の実施例２の方法を説明するためのタイムチャートであり、一つのＣＰＵで２台の電動機（モータαとモータβ）を制御する場合に、モータαとモータβのキャリア周期が異なる場合を示す。
【００４２】
図５（Ａ）は、キャリア周期が異なる際に前記実施例１に示した方法を適用した場合を示す。  
図５（Ａ）に示すように、モータαのキャリア周期はモータβのキャリア周期よりも短い。そのためモータαについての３番目の演算周期では、残り時間τ５がＡ’処理に要する時間よりも短くなる。したがって本来ならＡ処理の順番であるが、やむを得ずＢ処理が行われてしまい、前回と連続してＢ処理が行われることになる。しかし、Ｂ処理は前回Ａ処理を行った際の電圧指令値を用いて三相電圧出力をしているため、Ｂ処理が連続して行われると電流制御性が低下するので、なるべくＢ処理が連続するのは避けることが望ましい。そのため実施例２においては、図５（Ｂ）のように構成している。
【００４３】
図５（Ｂ）においては、モータαが割り込んだ時点でモータβが処理を行っている場合でも、モータβの残り時間を計算して、モータαについてのＡ処理を先に行っても、モータβの処理（この場合にβ電動機の処理としてはＡ処理全体、Ａ’処理、Ｂ処理の場合の３種あるが、何れにしても処理が完了）が完了することが出来る場合には、モータβの処理を中断してモータαについてのＡ処理を先に行わせるように構成している。つまり、モータβの２番目の演算周期におけるＡ処理（この場合にはＡ’処理）を中断してモータαについてのＡ処理を先に行い、それが終了してからモータβのＡ処理の続きを行っている。なお、この場合はモータαについてＡ処理全体（Ａ’処理＋Ａ”処理）を連続して行っているが、Ａ’処理しか入らない場合はＡ’処理とし、その後にＡ”処理を行ってもよい。
【００４４】
モータβのキャリア周期はモータαのキャリア周期よりも長く、残り時間も長くなる場合が多いと考えられるので、上記のようにすれば、モータαについてのＡ処理を行うことが出来る可能性が大きくなり、モータαについてＢ処理が連続して行われる可能性が減少する。そのため制御特性を向上させることが出来る。
【００４５】
図６は、上記実施例２の処理内容を示すフローチャートであり、図１の各処理を実行するＣＰＵにおける演算処理の内容を示す。  
図６において、ステップＳ１〜ステップＳ１１は前記図４と同等であり、ステップＳ１２を追加したものである。  
すなわち、ステップＳ５で他のモータが処理中（ステップＳ５＝Ｙｅｓ）の場合には、ステップＳ１２へ行き、自己のＡ処理を行っても当該他のモータの処理が終了するのか否かを判断する。そして他のモータの処理が終了する場合（ステップＳ１２＝Ｙｅｓ）には、ステップＳ１１で自己のＡ処理を先に行う。この場合、当該他のモータについての処理は自己のＡ処理が終了するまで中断され、自己のＡ処理が終了してから再開されることになる。
【００４６】
上記のように、Ａ処理を行う順番で割り込んだ時点で、他のモータ制御が処理を行っている場合、他のモータ制御の残り時間を検出し、自分がＡ処理を先に行ったとしても他のモータ制御の処理が完了することを確認できれば自分のＡ処理を先に行うことができるので、Ｂ処理が連続する可能性が小さくなり、電流制御性を向上することが出来る。
【００４７】
なお、自分がＡ処理を先に行うと他のモータ制御の処理が完了しない場合（ステップＳ１２＝Ｎｏ）には、図４と同様に、ステップＳ５〜ステップＳ１０のルートへ行き、条件に応じてＡ処理、Ａ’処理、Ａ”処理またはＢ処理が選択される。
【００４８】
（実施例３）
図７は本発明の実施例３の方法を説明するためのタイムチャートであり、一つのＣＰＵで２台の電動機（モータαとモータβ）を制御する場合に、モータαとモータβのキャリア周期が異なり、かつ、モータβのキャリア周期が変化する場合を示す。
【００４９】
図７（Ａ）は、キャリア周期が変化する場合に前記実施例２に示した方法を適用した場合を示す。  
この場合には、モータβのキャリア周期が変化するため、モータαの３番目の演算周期において、Ａ処理を入れるだけの間隔が取れない（Ａ’処理も入らない）ので、実施例２の方法を適用してもＢ処理が連続してしまう。そのため実施例３においては、図７（Ｂ）に示すように構成している。
【００５０】
図７（Ｂ）において、モータαの２番目の演算周期は、本来ならＢ処理の順番であるが、モータαが割り込んだ際にモータβの残り時間を計算し、モータαについてＡ処理を行ったとしてもモータβの処理が間に合う場合は、モータαについてのＢ処理をＡ処理に代えている。したがってモータαについての最初と２番目の演算周期ではＡ処理が連続して行われることになり、次がＢ処理になってもＢ処理が連続するのを回避することが出来る。
【００５１】
このように、本来ならＢ処理の順番である場合にも他のモータの処理が間に合う場合には、Ａ処理を行わせることにより、Ｂ処理が連続して行われることを回避し、電流制御性を向上させることができる。
【００５２】
図８は、上記実施例３の処理内容を示すフローチャートであり、図１の各処理を実行するＣＰＵにおける演算処理の内容を示す。  
図８において、ステップＳ１〜ステップＳ１２は前記図６と同等であり、ステップＳ１３を追加したものである。  
ステップＳ１３においては、次の他のモータの割り込みまでに自己のＡ処理が可能か否かを判断し、可能な場合にはステップＳ５へ行くように構成している。これにより、本来ならＢ処理の順番である場合にも他のモータの処理が間に合う場合には、Ａ処理を行わせることが可能になる。
【００５３】
上記のように、自己のモータがＢ処理を行う順番で割り込んだ瞬間に他のモータ制御処理を行っている場合、他のモータ制御の残り時間を検出し、自己がＡ処理を先に行ったとしても他のモータ処理が完了することを確認できれば、Ｂ処理の代わりにＡ処理を行うことにより、Ｂ処理が連続するのを回避して電流制御性を向上させることが出来る。
【００５４】
（実施例４）
図９は本発明の実施例４の方法を説明するためのタイムチャートであり、一つのＣＰＵで２台の電動機（モータαとモータβ）を制御する場合に、モータαとモータβのキャリア周期が異なり、かつ、モータβのキャリア周期が変化する場合における他の方法を示す。
【００５５】
図９に示すように、モータβの３番目の演算周期において、モータβの今回のキャリア周期τ７がモータαのキャリア周期τ６の複数倍（図９では２倍）以上あり、かつ、空白時間がＡ処理に要する時間以上の場合には、モータβについてＢ処理の順番でもＡ処理を行う。なお、上記モータβの３番目の演算周期においては、Ａ’処理を２回に分けて行い、それとＡ”処理を行っている。
【００５６】
なお、空白時間とは、自己のキャリア周期からＡ処理に要する時間の前記複数倍を減算した値、つまり自己のキャリア周期の中で他のモータの処理が行われていない時間の合計値であり、図９においては、空白時間＝τ８＋τ９＋τ１０に相当する。  
上記の空白時間がＡ処理に要する時間以上であれば、その時間内にＡ処理を行うことが出来る。
【００５７】
また、上記の例ではモータαとモータβの２台の場合なので、最短周期はモータαのキャリア周期に相当するが、一般的には電動機制御装置のシステムが設定可能なキャリア周期の最短周期を意味する。
【００５８】
図１０は、上記実施例４の処理内容を示すフローチャートであり、図１の各処理を実行するＣＰＵにおける演算処理の内容を示す。  
図１０において、ステップＳ１〜ステップＳ１２は前記図８と同等であり、図８のステップＳ１３の代わりにステップＳ１４を設けたものである。ステップＳ１４では、自己のキャリア周期が最短周期の複数倍以上（この“以上”とはピッタリ複数倍でなくとも、それ以上であればよいとの意味）であり、かつ、自己のキャリア周期からＡ処理に要する時間の前記複数倍を減算した空白時間がＡ処理に要する時間以上か否かを判断し、以上の場合（ステップＳ１４＝Ｙｅｓ）の場合には、ステップＳ５へ行く。これにより、上記の条件に適合する場合には、Ｂ処理の順番でもＡ処理を行わせることが可能になる。
【００５９】
上記のように実施例４においては、Ｂ処理を行う順番で自己の周期が最短周期の複数倍以上ある場合、空白時間がＡ処理に要する時間以上あると判断できれば、Ａ処理を行うことができるので、電流制御性が向上する。
【００６０】
（実施例５）
図１１は本発明の実施例５の方法を説明するためのタイムチャートであり、これまで説明した各方法において、一方の電動機がＡ／Ｄ変換処理を行っている時間に、他方の電動機についてはＡ／Ｄ変換処理以外の電流制御演算を行う場合を示す。つまり、Ａ／Ｄ変換処理は他の演算と独立に行われるので、その間は他方の電動機についての電流制御処理を行うことが可能である。
【００６１】
図１１は、一例として二つの電動機のキャリア周期が同一で、かつ、位相が同じ場合、つまり前記図３（Ｂ）と同様の場合における例を示すものであり、（Ａ）は単にＡ処理とＢ処理を交互に行う場合、（Ｂ）は実施例１の場合、（Ｃ）は実施例１に本実施例を組み合わせた場合を示す。
【００６２】
図１１に示すように、（Ａ）では、モータαの２番目の割り込みまでにモータβのＡ処理が完了しないので、制御が出来なくなっている。  
（Ｂ）では、残り時間によってＡ処理とＢ処理を選択することにより、制御が正常に行われている。  
（Ｃ）では、モータαでＡ／Ｄ変換処理（２）を行っている間にモータβではθ検出処理（１）と三相変換処理（５）とレジスタ設定処理（６）とを行い、また、モータβでＡ／Ｄ変換処理（２）を行っている間にモータαでは三相変換処理（５）とレジスタ設定処理（６）とを行っている。だたし、三相変換処理（５）とレジスタ設定処理（６）を行う時期が１回分ずれるので、図１１の表示では、他方のモータのＡ／Ｄ変換処理（２）の時期と自己の三相変換処理（５）とレジスタ設定処理（６）の時期が一致していない。  
このように一方の電動機でＡ／Ｄ変換処理を行っている間に、他方の電動機ではＡ／Ｄ変換処理以外の電流制御演算処理を行うことにより、（Ｂ）の場合よりも演算負荷が小さくなる。
【００６３】
なお、図１１においては、実施例１に実施例５を組み合わせた場合のみを示しているが、これまで説明したどの実施例とも組み合わせることが出来る。  
上記のように、実施例５によれば、一方の電動機のＡ／Ｄ変換処理中に他の電動機ではＡ／Ｄ変換処理以外の制御演算処理を行うことにより、電流制御の演算負荷が小さくなり、Ａ処理の頻度が多くなるので、電流制御性が向上する。
【図面の簡単な説明】
【００６４】
【図１】本発明を適用する電動機の制御装置のブロック図。
【図２】本発明におけるＡ処理とＢ処理の基本的な内容を示すタイムチャート。
【図３】本発明の実施例１の方法を説明するためのタイムチャート。
【図４】実施例１の処理内容を示すフローチャート。
【図５】本発明の実施例２の方法を説明するためのタイムチャート。
【図６】実施例２の処理内容を示すフローチャート。
【図７】本発明の実施例３の方法を説明するためのタイムチャート。
【図８】実施例３の処理内容を示すフローチャート。
【図９】本発明の実施例４の方法を説明するためのタイムチャート。
【図１０】実施例４の処理内容を示すフローチャート。
【図１１】本発明の実施例５の方法を説明するためのタイムチャート。
【符号の説明】
【００６５】
１…電動機                            ２…Ａ／Ｄ変換部
３…θ検出部                          ４…微分部
５…電流マップ部                      ６…ｄｑ軸電流演算部
７…ｄｑ軸制御部                      ８…三相変換部
９…ＰＷＭ変換部                    １０…デッドタイム補償部
１１…インバータ                      １２…三角波信号
（１）…θ入力処理                  （２）…Ａ／Ｄ変換処理
（３）…ｄｑ軸電流演算処理          （４）…ｄｑ軸電圧指令値演算処理
（５）…ＰＷＭ演算処理              （６）…レジスタ設定処理
【図１】
2007259677.tif 000007
【図２】
2007259677.tif 000008
【図３】
2007259677.tif 000009
【図４】
2007259677.tif 000010
【図５】
2007259677.tif 000011
【図６】
2007259677.tif 000012
【図７】
2007259677.tif 000013
【図８】
2007259677.tif 000014
【図９】
2007259677.tif 000015
【図１０】
2007259677.tif 000016
【図１１】
2007259677.tif 000017