以下、図面を参照しつつ、この発明の実施形態について説明する。
<第1実施形態>
図1は、この発明の第1実施形態の並列多重インバータシステム1の構成を示すブロック図である。図1では、並列多重インバータシステム1に接続された交流電源やAC/DCコンバータ等の図示は省略している。並列多重インバータシステム1は、図1に示すように、マスタインバータ10、スレーブインバータ20、スレーブインバータ30および負荷50を有する。そして、マスタインバータ10とスレーブインバータ20および30は、バス型トポロジのネットワーク60を介して接続されている。負荷50は例えば3相モータである。
マスタインバータ10とスレーブインバータ20および30は、図示しない交流電源から供給される交流電圧を直流電圧に変換し、その直流電圧を交流電圧に変換することで負荷50の駆動を行う装置である。マスタインバータ10とスレーブインバータ20および30は、互いに同一の周期長のキャリア信号を生成するキャリア信号生成部190、290および390を各々備えている。マスタインバータ10とスレーブインバータ20および30は、各々のキャリア信号生成部が生成するキャリア信号を用いて負荷50を駆動するための交流電圧を発生する。
また、マスタインバータ10とスレーブインバータ20および30には、時間軸上において重複しない送信期間が割り当てられており、各々に割り当てられた送信期間を利用して他のインバータへのブロードキャストまたはユニキャストを行う。その際、マスタインバータ10とスレーブインバータ20および30は、各々のキャリア信号生成部が生成するキャリア信号の信号値を時刻情報として利用し、この時刻情報に基づいて各々の送信期間を判定する。本実施形態においてマスタインバータ10とスレーブインバータ20および30の各送信期間の始期は、各々のキャリア信号の位相がδm(0<δm)、δS1(δm<δS1)、δS2(δS1<δS2<2π)となるタイミングである。
制御装置40は、並列多重インバータシステム1の外部装置であり、負荷50に対する電流指令値(合成電流指令値)をマスタインバータ10に供給する装置である。
マスタインバータ10は、電流制御部110、合成電流演算部120、指令補正部125、受信部130、送信部140、ゲート信号生成部150、インバータ主回路160、電流センサ170、A/Dコンバータ180およびキャリア信号生成部190を有する。これらのうち電流制御部110、合成電流演算部120および指令補正部125は、マスタインバータ10の制御中枢であるCPU(図示略)が不揮発性メモリ(図示略)内のプログラムを実行することにより実現される機能である。
キャリア信号生成部190は、上述した所定の周期長のキャリア信号を生成し、ゲート信号生成部150に出力する。さらにキャリア信号生成部190は、キャリア信号の同期タイミング、すなわち、キャリア信号の位相が上述した位相δmとなるタイミングを示す同期信号を生成して送信部140に出力する。ゲート信号生成部150は、キャリア信号生成部190が出力するキャリア信号を指令補正部125が出力する補正電圧指令値V1と比較することにより、PWM(Pulse Width Modulation;パルス幅変調)パルス列であるゲート信号を生成し、インバータ主回路160のスイッチング素子に供給する。
インバータ主回路160は、図示しないAC/DCコンバータが正電圧端子および負電圧端子間に出力する直流電圧を、ゲート信号生成部150が生成したゲート信号に応じてスイッチングすることにより負荷50を駆動するための3相の駆動電圧を出力する回路である。このインバータ主回路160は、例えば、3相の出力端子と正電圧端子の間に各々介挿された3相のスイッチング素子としてのIGBT(Insulated Gate Bipolar Transistor;絶縁ゲートバイポーラトランジスタ)と、3相の出力端子と負電圧端子の間に各々介挿された3相のIGBTを有している。また、インバータ主回路160は、各IGBTに逆並列接続されたフリーホイールダイオードを有する。このインバータ主回路160の各IGBTのゲートには、ゲート信号生成部150が生成したゲート信号が供給される。なお、スイッチング素子はMOSFET(Metal Oxide Semiconductor Field Effect Transistor;金属−酸化膜−半導体構造の電界効果トランジスタ)等であってもよい。また、インバータ主回路160は、2レベルインバータだけでなく、3レベル以上のマルチレベルインバータの主回路であってもよい。
電流センサ170は、インバータ主回路160の出力端子から負荷50に出力される駆動電流波形を示すアナログ信号を出力する。A/Dコンバータ180は、電流センサ170が出力するアナログ信号をA/D変換し、インバータ主回路160から出力される駆動電流波形の時系列サンプル列である電流信号を出力する。
合成電流演算部120は、スレーブインバータ20および30の各々の電流値と、A/Dコンバータ180から取得した電流値とをベクトル加算して合成電流値を算出する合成電流演算手段である。ここで、スレーブインバータ20および30の各々の電流値は、後述の受信部130が受信する応答フレームに含まれている情報である。
電流制御部110は、制御装置40から電流指令値を取得するとともに、合成電流演算部120から合成電流値を取得する。電流制御部110は、電流指令値と合成電流値に基づいて、マスタインバータ10とスレーブインバータ20および30とをそれぞれ制御するための基準電圧指令値V0を生成する。さらに詳述すると、電流制御部110は、電流指令値と合成電流値に基づいて、負荷50に所望の電流を供給するためにインバータ主回路160、260および360がそれぞれ負荷50に供給すべき駆動電圧の周波数、振幅を決定する。そして、電流制御部110は、そのような周波数、振幅を持った交流波形を示す基準電圧指令値V0を指令補正部125と送信部140に供給する。この指令補正部125は、基準電圧指令値V0および合成電流値を受信すると、合成電流値をマスタインバータ10とスレーブインバータ20および30の装置の合計数である3で割って、平均電流値を算出する。そして、指令補正部125は、A/Dコンバータ180から電流値を取得し、平均電流値からその電流値を減算した値に比例した電圧補正値ΔV1を算出する。指令補正部125は、この電圧補正値ΔV1と基準電圧指令値V0を加算した補正電圧指令値V1をゲート信号生成部150に出力する。
受信部130は、スレーブインバータ20および30から後述する応答要求フレームに対する応答信号である応答フレームを受信し、図示しない揮発性メモリ内の受信バッファに格納する手段である。本実施形態において、スレーブインバータ20および30は、各々のキャリア信号の位相をマスタインバータ10のキャリア信号の位相に同期化させたことを検知すると、各々に割り当てられた送信期間を利用して、各々の図示しない揮発性メモリ内の送信バッファの同期化完了信号を含む応答フレームをマスタインバータ10にユニキャストする。また、スレーブインバータ20および30は、マスタインバータ10からの指令に従って負荷50の駆動を開始すると、同期化完了信号に加えて、各々の電流値を含む応答フレームをマスタインバータ10にユニキャストする。受信部130は、このようにしてスレーブインバータ20および30からユニキャストされる応答フレームを受信する。
送信部140は、キャリア信号の位相が所定の位相δmになり、キャリア信号生成部190が同期信号を出力すると、そのタイミングを始期とするマスタインバータ10の送信期間を利用して、スレーブインバータ20および30に図示しない送信バッファ内の応答要求フレームを送信する。
この応答要求フレームに含まれる情報は、マスタインバータ10が置かれた局面により異なったものとなる。マスタインバータ10とスレーブインバータ20および30の各キャリア信号の同期化が完了していない局面では、送信部140は、キャリア信号生成部190が出力する同期信号、マスタインバータ10の動作モードを示す情報およびスレーブインバータ20および30の応答を要求する、すなわちスレーブインバータ20および30の応答フレーム送信を指示する情報を含む運転待ち用フレームを応答要求フレームとしてスレーブインバータ20および30にブロードキャストする。マスタインバータ10の動作モードを示す情報とは、マスタインバータ10が負荷50を駆動する運転モードであるか否かを示す情報である。スレーブインバータ20および30の両方から同期化完了信号を含む応答フレームが受信されると、送信部140は、運転待ち用フレームに含まれる情報に加えて、電流制御部110が出力する基準電圧指令値V0および合成電流演算部120が出力する合成電流値を含む運転用フレームを応答要求フレームとしてスレーブインバータ20および30にブロードキャストする。
また、スレーブインバータ20は、受信部210、同期化制御部220、送信部230、指令補正部240、ゲート信号生成部250、インバータ主回路260、電流センサ270、A/Dコンバータ280およびキャリア信号生成部290を有する。これらのうち同期化制御部220および指令補正部240は、スレーブインバータ20の制御中枢であるCPU(図示略)が不揮発性メモリ(図示略)内のプログラムを実行することにより実現される機能である。ゲート信号生成部250、インバータ主回路260、電流センサ270およびA/Dコンバータ280は、マスタインバータ10のゲート信号生成部150、インバータ主回路160、電流センサ170およびA/Dコンバータ180に相当する。
キャリア信号生成部290は、マスタインバータ10のキャリア信号生成部190が生成するキャリア信号と同一の周期長のキャリア信号を生成し、ゲート信号生成部250に出力する。
同期化制御部220は、このキャリア信号生成部290が生成するキャリア信号の位相を同期信号が示すマスタインバータ10のキャリア信号の位相に同期化させる制御を行う。また、同期化制御部220は、スレーブインバータ20の応答フレームの送信の制御を行う。
さらに詳述すると、同期化制御部220は、受信部210が同期信号を含む応答要求フレームをマスタインバータ10から受信すると、この同期信号の示すマスタインバータ10のキャリア信号の位相と、キャリア信号生成部290が生成するキャリア信号の位相とを比較する。両者の位相差が所定の許容値δ以内に収まっていない場合、同期化制御部220は、スレーブインバータ20の送信期間(始期=位相δS1)となっても送信部230に応答フレームの送信を行わせない。ここで、許容値δは、スレーブインバータ20がフレームの送信を行った場合に他のインバータが送信するフレームとの衝突が発生することのないスレーブインバータ20とマスタインバータ10の各キャリア信号の位相差の許容値である。許容値δは、マスタインバータ10と接続するスレーブインバータの数や、マスタインバータ10とスレーブインバータ20および30のキャリア信号の周期長などにより決定される。
同期信号が示すマスタインバータ10のキャリア信号の位相と、キャリア信号生成部290が生成するキャリア信号の位相との位相差が許容値δ以内に収まり、かつ、負荷50が未駆動で、マスタインバータ10とスレーブインバータ20の各々のキャリア信号の位相差が許容値δよりも小さい許容値δa以上であると、同期化制御部220は、スレーブインバータ20の送信期間(始期=位相δS1)において、同期化が完了していない旨の応答情報を含む同期化未完フレームを応答フレームとして送信部230に送信させる。許容値δaは、スレーブインバータ20がマスタインバータ10とともに共通の負荷50の駆動を行うことが可能なスレーブインバータ20とマスタインバータ10の各キャリア信号の位相差の許容値である。さらに、負荷50が未駆動で、マスタインバータ10とスレーブインバータ20の位相差が許容値δaよりも小さいと、同期化制御部220は、スレーブインバータ20の送信期間(始期=位相δS1)において、同期化完了信号を含む同期化完了フレームを応答フレームとして送信部230に送信させる。
また、同期化制御部220は、同期信号が示すマスタインバータ10のキャリア信号の位相と、キャリア信号生成部290が生成するキャリア信号の位相差が許容値δaより小さく、かつ、マスタインバータ10からの基準電圧指令値V0に従って負荷50の駆動を開始した後においては、同期化完了信号に加えて、A/Dコンバータ280から取得される電流値を含む運転中応答フレームを応答フレームとして送信部230に送信させる。
指令補正部240は、受信部210がマスタインバータ10から基準電圧指令値V0および合成電流値を含む応答要求フレームを受信すると、合成電流値をマスタインバータ10とスレーブインバータ20および30の装置の合計数である3で割って、平均電流値を算出する。そして、指令補正部240は、A/Dコンバータ280から電流値を取得し、平均電流値からその電流値を減算した値に比例した基準電圧指令値V0の電圧補正値ΔV2を算出する。指令補正部240は、この電圧補正値ΔV2と基準電圧指令値V0を加算した補正電圧指令値V2をゲート信号生成部250に出力する。
受信部210は、マスタインバータ10からネットワーク60を介して応答要求フレームを受信する手段である。受信部210は、同期信号を含む応答要求フレームを受信した場合、その同期信号を同期化制御部220に出力する。また、受信部210は、同期信号、基準電圧指令値V0および合成電流値を含む応答要求フレームを受信した場合、その基準電圧指令値V0と合成電流値を指令補正部240に出力する。
また、スレーブインバータ30は、受信部310、同期化制御部320、送信部330、指令補正部340、ゲート信号生成部350、インバータ主回路360、電流センサ370、A/Dコンバータ380およびキャリア信号生成部390を有する。これらは、スレーブインバータ20の受信部210、同期化制御部220、送信部230、指令補正部240、ゲート信号生成部250、インバータ主回路260、電流センサ270、A/Dコンバータ280およびキャリア信号生成部290に各々相当するため、説明を省略する。ただし、指令補正部340は、A/Dコンバータ380から取得した電流値から電圧補正値ΔV3を算出し、この電圧補正値ΔV3と基準電圧指令値V0を加算した補正電圧指令値V3をゲート信号生成部350に出力する。
以上が並列多重インバータシステム1の構成である。
図2は、マスタインバータ10のCPUが定期的に実行するプログラムの処理内容を示すフローチャートである。また、図3はスレーブインバータ20(30)のCPUが定期的に実行するプログラムの処理内容を示すフローチャートである。図2および3に示すプログラムが実行される周期長は、キャリア信号の周期長よりも短い。これは1キャリア周期中に、マスタインバータ10からの応答要求フレームの送信の機会と、全スレーブインバータ20、30からの応答フレームの返送の機会が発生しなければならないからである。
なお、他の好ましい態様では、受信部130がスレーブインバータ20および30から応答フレームを受信するごとに、マスタインバータ10のCPUは図2に示すプログラムを実行する。同様に受信部210(310)がマスタインバータ10から応答要求フレームを受信するごとに、スレーブインバータ20(30)のCPUは図3に示すプログラムを実行する。
本実施形態においてマスタインバータ10のCPUは、図2のプログラムの実行を開始すると、揮発性メモリ内の受信バッファを参照し、スレーブインバータ20或いは30から応答フレームが受信されたか否かを判定する(ステップS101)。この判定結果が「NO」である場合、CPUはプログラムを終了し、「YES」である場合、CPUの処理は、ステップS102に進む。
次にステップS102に進むと、マスタインバータ10のCPUは、揮発性メモリ内の運転モードフラグが「1」であるか否かを判定する。ここで、運転モードフラグは、マスタインバータ10の動作モードが負荷50を駆動する運転モードであるか否かを示すフラグである。この運転モードフラグは、動作モードが運転モードである場合に「1」、そうでない場合に「0」となる。そして、初期状態において運転モードフラグは「0」になっている。ステップS102の判定結果が「YES」である場合、CPUの処理はステップS111に進み、「NO」である場合はステップS121に進む。
次にステップS121に進むと、マスタインバータ10のCPUは、スレーブインバータ20および30の両方から同期化完了信号を受信したか否かを判定する。この判定結果が「YES」である場合、CPUの処理はステップS122に進み、「NO」である場合、CPUの処理は、ステップS123に進む。
次にステップS123に進むと、マスタインバータ10のCPUは、運転待ち用フレームを生成し、揮発性メモリ内の送信バッファに書き込む。上述したように、運転待ち用フレームは、同期信号、マスタインバータ10の動作モードを示す情報(この場合、運転モードでない旨を示す情報)を含む。この運転待ち用フレームは、マスタインバータ10の送信期間を利用してスレーブインバータ20および30にブロードキャストされる。そしてCPUは、プログラムを終了する。
以後、マスタインバータ10の動作モードが運転モードでない状態においてスレーブインバータ20または30から応答フレームが受信され、その後にマスタインバータ10のCPUが図2のプログラムを開始すると、CPUの処理は、ステップS101を介してステップS102に進む。そして、マスタインバータ10の動作モードが運転モードでない場合、マスタインバータ10のCPUの処理は、ステップS102からステップS121に進む。この時点において、全てのスレーブインバータ、すなわち、スレーブインバータ20および30から同期化完了信号を含む同期化完了フレームを応答フレームとして受信していた場合、ステップS121の判断結果は「YES」となり、マスタインバータ10のCPUの処理はステップS122に進む。次にステップS122に進むと、マスタインバータ10のCPUは、揮発性メモリ内の運転モードフラグを「1」に切り替える。
次にステップS113に進むと、マスタインバータ10のCPUは、基準電圧指令値V0を算出する。ここで、運転モードフラグを「1」に切り替えた段階では、合成電流値の算出が行われていない。そこで、この段階でのステップS113においてマスタインバータ10のCPUは、合成電流値を0とし、電流指令値と合成電流値とから基準電圧指令値V0を生成する。
次にステップS114に進むと、マスタインバータ10のCPUは、指令補正部125により基準電圧指令値V0、合成電流値(この場合、0)および電流値から補正電圧指令値V1を生成する。
次にステップS115に進むと、マスタインバータ10のCPUは、同期信号、動作モードが運転モードである旨の情報、電流制御部110が出力する基準電圧指令値V0および合成電流演算部120が出力する合成電流値(この場合、0)を含む運転用フレームを生成し、揮発性メモリ内の送信バッファに書き込む。この運転用フレームは、マスタインバータ10の送信期間を利用してスレーブインバータ20および30にブロードキャストされる。そしてCPUは、プログラムを終了する。
その後、マスタインバータ10の動作モードが運転モードである状態において、スレーブインバータ20または30から応答フレームが受信され、その後にマスタインバータ10のCPUが図2のプログラムを開始すると、CPUの処理は、ステップS101およびS102を介してステップS111に進む。次にステップS111に進むと、マスタインバータ10のCPUは、スレーブインバータ20および30の両方から応答フレームを受信し、スレーブインバータ20および30の両方が応答要求フレームに対する応答を完了したか否かを判定する。この判定結果が「NO」である場合、CPUはプログラムを終了し、「YES」である場合、CPUの処理は、ステップS112に進む。
次にステップS112に進むと、マスタインバータ10のCPUは、合成電流演算部120によりスレーブインバータ20および30から受信された各応答フレームに含まれる各電流値とA/Dコンバータ180から得られる電流値を用いて合成電流値を生成する。
次にステップS113に進むと、マスタインバータ10のCPUは、電流制御部110により電流指令値とステップS112において得られた合成電流値とから基準電圧指令値V0を生成する。
次にステップS114に進むと、マスタインバータ10のCPUは、指令補正部125により基準電圧指令値V0、ステップS112において得られた合成電流値およびA/Dコンバータ180からの自身の電流値から補正電圧指令値V1を生成する。
次にステップS115に進むと、マスタインバータ10のCPUは、同期信号、動作モードが運転モードである旨の情報、電流制御部110が出力する基準電圧指令値V0および合成電流演算部120が出力する合成電流値を含む運転用フレームを生成し、揮発性メモリ内の送信バッファに書き込む。この運転用フレームは、マスタインバータ10の送信期間を利用してスレーブインバータ20および30にブロードキャストされる。そしてCPUは、プログラムを終了する。
以上がマスタインバータ10の動作である。
一方、スレーブインバータ20(30)のCPUは、図3のプログラムの実行を開始すると、揮発性メモリ内の受信バッファを参照し、マスタインバータ10からの応答要求フレームが受信されたか否かを判定する(ステップS201)。この判定結果が「NO」である場合、CPUはプログラムを終了し、「YES」である場合、CPUの処理は、ステップS202に進む。
次にステップS202に進むと、スレーブインバータ20(30)のCPUは、応答要求フレームに含まれるマスタインバータ10の動作モードを示す情報からマスタインバータ10が運転モードであるか否かを判定する。この判定結果が「YES」である場合、CPUの処理はステップS211に進み、「NO」である場合、CPUの処理は、ステップS222に進む。
次にステップS222に進むと、スレーブインバータ20(30)のCPUは、応答要求フレームに含まれる同期信号が示すマスタインバータ10のキャリア信号の位相とスレーブインバータ20のキャリア信号との位相との位相差を求める。そして、この位相差が許容値δよりも大きいと、CPUは、応答フレームを生成せずにプログラムを終了する。位相差が所定の許容値δ以下であり、かつ、許容値δa以上であると、CPUの処理はステップS224に進む。位相差が許容値δaよりも小さいと、CPUの処理はステップS223に進む。
次にステップS224に進むと、スレーブインバータ20(30)のCPUは、同期化未完フレームを生成し、揮発性メモリ内に送信バッファに書き込む。ステップS223に進むと、スレーブインバータ20(30)のCPUは、同期化完了フレームを生成し、揮発性メモリ内の送信バッファに書き込む。この同期化完了フレーム或いは同期化未完フレームは、スレーブインバータ20(30)の送信期間を利用してマスタインバータ10にユニキャストされる。そしてCPUは、プログラムを終了する。
そして、動作モードが運転モードである旨の情報を含む応答要求フレームがマスタインバータ10から受信され、その後、スレーブインバータ20(30)のCPUが図3に示すプログラムを開始すると、CPUの処理は、ステップS201およびS202を介してステップS211に進む。次にステップS211に進むと、スレーブインバータ20(30)のCPUは、指令補正部240(340)により補正電圧指令値V2(V3)を算出する。ここで、全スレーブインバータ20、30の同期がとれ、マスタインバータ10を含む各インバータの出力電流値に異常がない(ゼロに近い)ことを確認してから、運転可能にしている。
次にステップS212に進むと、スレーブインバータ20(30)のCPUは、同期信号が示すマスタインバータ10のキャリア信号の位相とスレーブインバータ20のキャリア信号との位相との位相差を求める。この位相差が所定の許容値δaより小さいと、スレーブインバータ20(30)のCPUは、当該スレーブインバータの出力電流値を含む運転中応答フレームを生成し、揮発性メモリ内の送信バッファに書き込む。この運転中応答フレームは、スレーブインバータ20(30)の送信期間を利用してマスタインバータ10にユニキャストされる。そしてCPUは、プログラムを終了する。
以上がスレーブインバータ20(30)の動作である。
図4および図5は並列多重インバータシステム1の動作例を示すタイムチャートである。図4および図5において横軸は、時間軸である。図4および図5にはマスタインバータ10、スレーブインバータ20および30の各々が生成するキャリア信号の波形、マスタインバータ10、スレーブインバータ20および30の各々のフレーム送信タイミングが示されている。
図4に示す動作例では、時刻t1においてマスタインバータ10とスレーブインバータ20および30が動作を開始したとき、各インバータが生成するキャリア信号間に位相差はない。
図4に示す動作例において、時刻t1mになると、マスタインバータ10では、キャリア信号の位相がδmとなり、送信部140は応答要求フレームをスレーブインバータ20および30に送信する。この段階において、マスタインバータ10は、スレーブインバータ20および30から同期化完了信号を受信していない。従って、マスタインバータ10のCPUは、時刻t1mにおいて運転待ち用フレームであるフレームF1をスレーブインバータ20および30にブロードキャストする。
スレーブインバータ20では、時刻t1mにおいて受信部210がフレームF1を受信し、スレーブインバータ20のCPUは、このフレームF1から同期信号等を取り出して受信バッファに格納する(図3のステップS201:Yes)。次いでスレーブインバータ20のCPUは、同期化制御部220を起動し、キャリア信号生成部290が生成するキャリア信号をマスタインバータ10からの同期信号が示すキャリア信号の位相に同期化させる。
次にスレーブインバータ20のCPUの処理はステップS202に進み、同CPUは、マスタインバータ10の動作モードが運転モードであるか否かを判定する。この段階において、マスタインバータ10の動作モードは運転モードではない。このため、ステップS202の判定結果は「NO」となり、スレーブインバータ20のCPUの処理はステップS222に進む。そして、CPUは、応答要求フレーム中の同期信号が示すマスタインバータ10のキャリア信号の位相とスレーブインバータ20のキャリア信号との位相との位相差を求める。この動作例では、スレーブインバータ20とマスタインバータ10の各々のキャリア信号間に位相差はないため、スレーブインバータ20のCPUの処理はステップS223に進む。CPUは、同期化完了フレームを生成し、応答フレームとして送信バッファに書き込む(ステップS223)。
そして、時刻t1S1になると、キャリア信号生成部290が生成するキャリア信号の位相がスレーブインバータ20の送信期間の始期に対応した位相δS1になり、スレーブインバータ20のCPUは、マスタインバータ10に対する応答フレームの送信を行う。この段階において、上述したステップS201の判定結果が「YES」、ステップS202の判定結果が「NO」となっており、マスタインバータ10とスレーブインバータ20の各々のキャリア信号の位相差は許容値δaより小さくなっている。従って、スレーブインバータ20のCPUは、時刻t1S1において、同期化完了信号を含む同期化完了フレームであるフレームF4を応答フレームとしてマスタインバータ10に送信する。
スレーブインバータ30においてもスレーブインバータ20と同様な動作が行われる。そして、スレーブインバータ30は、キャリア信号の位相がδS2となる時刻t1S2において同期化完了信号を含む同期化完了フレームであるフレームF4をマスタインバータ10に送信する。
マスタインバータ10では、スレーブインバータ20からのフレームF4が受信されると、そのフレームF4から同期化完了信号が取り出され、受信バッファに格納される。スレーブインバータ30からのフレームF4についても同様である。
その後、マスタインバータ10のCPUは、図2に示すプログラムのステップS121において受信バッファを参照する。この段階において、上述したステップS101の判定結果は「YES」、ステップS102の判定結果は「NO」となっている。この場合、受信バッファにはスレーブインバータ20から受信された同期化完了信号とスレーブインバータ30から受信された同期化完了信号が格納されている。このため、ステップS121の判定結果が「YES」となり、マスタインバータ10のCPUの処理はステップS122に進む。
このステップS122においてCPUは、運転モードフラグを「1」に切り替え、ステップS113以降の処理を実行する。これにより、CPUは、ステップS115において、運転用フレームを生成し、送信バッファに書き込む。そして、CPUはマスタインバータ10の送信期間が到来するまで待機する。
図4の動作例では、時刻t2においてマスタインバータ10のキャリア信号の周期とスレーブインバータ20および30のキャリア信号の周期が切り換わり、その後の時刻t2mにおいてマスタインバータ10のキャリア信号の位相がδmとなる。この結果、マスタインバータ10のCPUは、スレーブインバータ20および30に対する応答要求フレームのブロードキャストを行う。この段階において、上述したステップS101の判定結果は「YES」、ステップS102の判定結果は「NO」、ステップS121の判定結果は「YES」となっている。そこで、マスタインバータ10のCPUは、時刻t2mにおいて、ステップS115において生成した運転用フレームであるフレームF2をブロードキャストする。
スレーブインバータ20では、時刻t2mにおいて受信部210がフレームF2を受信し、スレーブインバータ20のCPUは、このフレームF2から同期信号等を取り出して受信バッファに格納する。次いでスレーブインバータ20のCPUは、同期化制御部220を起動し、キャリア信号生成部290が生成するキャリア信号をマスタインバータ10からの同期信号が示すキャリア信号の位相に同期化させる。
一方、スレーブインバータ20のCPUが実行する図3のプログラムでは、ステップS201の判定結果が「YES」、ステップS202の判定結果が「YES」となって、CPUの処理はステップS211に進む。このステップS211において、CPUは、マスタインバータ10から受信された基準電圧指令値V0に基づいて補正電圧指令値V2を算出する。次いで、CPUは、ステップS212に進み、運転中応答フレームを生成し、送信バッファに書き込む。
そして、時刻t2S1になると、キャリア信号生成部290が生成するキャリア信号の位相がスレーブインバータ20の送信期間の始期に対応した位相δS1になり、スレーブインバータ20のCPUは、マスタインバータ10に対する応答フレームの送信を行う。この段階において、上述したステップS201の判定結果が「YES」、ステップS202の判定結果が「YES」となっている。従って、スレーブインバータ20のCPUは、時刻t2S1において、同期化完了信号に加えて、電流値を含む運転中応答フレームであるフレームF5をマスタインバータ10に送信する。
スレーブインバータ30においてもスレーブインバータ20と同様な動作が行われる。そして、スレーブインバータ30は、キャリア信号の位相がδS2となる時刻t2S2において同期化完了信号および電流値を含む運転中応答フレームであるフレームF5をマスタインバータ10に送信する。
マスタインバータ10では、スレーブインバータ20からのフレームF5が受信されると、そのフレームF5から同期化完了信号および電流値が取り出され、受信バッファに格納される。スレーブインバータ30からのフレームF5についても同様である。
その後、マスタインバータ10のCPUが実行する図2のプログラムでは、ステップS101の判定結果が「YES」、ステップS102の判定結果が「YES」、ステップS111の判定結果が「YES」となり、CPUの処理はステップS112に進む。このステップS112においてCPUは、合成電流演算部120によりマスタインバータ10の電流値とスレーブインバータ20および30からの各フレームF5から取り出した各電流値とから合成電流値を算出する。次にCPUはステップS113以降の処理を実行し、CPUはマスタインバータ10の送信期間が到来するまで待機する。
図4の動作例では、時刻t3においてマスタインバータ10のキャリア信号の周期とスレーブインバータ20および30のキャリア信号の周期が切り換わり、その後の時刻t3mにおいてマスタインバータ10のキャリア信号の位相がδmとなる。この結果、マスタインバータ10のCPUは、スレーブインバータ20および30に対する応答要求フレームのブロードキャストを行う。この段階において、上述したステップS101の判定結果は「YES」、ステップS102の判定結果は「YES」、ステップS111の判定結果は「YES」となっている。そこで、マスタインバータ10のCPUは、時刻t3mにおいて、ステップS115において生成した同期信号を含む運転用フレームであるフレームF3をブロードキャストする。
スレーブインバータ20は、時刻t3mにおいて受信部210がフレームF3を受信し、スレーブインバータ20のCPUは、このフレームF3から同期信号等を取り出して受信バッファに格納する。次いでスレーブインバータ20のCPUは、同期化制御部220を起動し、キャリア信号生成部290が生成するキャリア信号をマスタインバータ10からの同期信号に同期化させる。
一方、スレーブインバータ20のCPUが実行する図3のプログラムでは、ステップS201の判定結果が「YES」、ステップS202の判定結果が「YES」となって、CPUの処理はステップS211に進む。このステップS211において、CPUは、マスタインバータ10から受信された基準電圧指令値V0および合成電流値に基づいて補正電圧指令値V2を算出する。次いで、CPUは、ステップS212に進み、運転中応答フレームを生成し、送信バッファに書き込む。
そして、時刻t3S1になると、キャリア信号生成部290の生成するキャリア信号の位相がスレーブインバータ20の送信期間の始期に対応した位相δS1になり、スレーブインバータ20のCPUは、マスタインバータ10に対する応答フレームの送信を行う。この段階において、上述したステップS201の判定結果が「YES」、ステップS202の判定結果が「YES」となっている。従って、スレーブインバータ20のCPUは、時刻t3S1において、同期化完了信号に加えて、電流値を含む運転中応答フレームであるフレームF6をマスタインバータ10に送信する。
スレーブインバータ30においてもスレーブインバータ20と同様な動作が行われる。そして、スレーブインバータ30は、キャリア信号の位相がδS2となる時刻t3S2において同期化完了信号および電流値を含む運転中応答フレームであるフレームF6をマスタインバータ10に送信する。
以上が図4に示す動作例である。
図5に示す動作例では、時刻t1においてマスタインバータ10とスレーブインバータ20および30が動作を開始したとき、スレーブインバータ20のキャリア信号の位相はマスタインバータ10のキャリア信号の位相よりも位相差δ1だけ遅れている。また、スレーブインバータ30のキャリア信号の位相はマスタインバータ10のキャリア信号の位相よりも位相差δ2だけ遅れている。ここで、位相差δ1は許容値δよりも大きく、位相差δ2は許容値δよりも小さい。
従って、時刻t1mにおいて、同期信号を含むフレームF1がマスタインバータ10からスレーブインバータ20および30にブロードキャストされた場合、スレーブインバータ20ではキャリア信号の位相はマスタインバータ10のキャリア信号の位相よりも位相差δ1だけ遅れており、位相差δ1は許容値δよりも大きいため、時刻t1S1’において、スレーブインバータ20のキャリア信号の位相がスレーブインバータ20の送信期間の始期に対応した位相δS1になったとしても、スレーブインバータ20のCPUは、マスタインバータ10への応答フレームの送信を行わない。
これに対し、時刻t1mにおいて、スレーブインバータ30ではキャリア信号の位相はマスタインバータ10のキャリア信号の位相よりも位相差δ2だけ遅れているが、位相差δ2は許容値δよりも小さいため、時刻t1S2’において、スレーブインバータ30のキャリア信号の位相がスレーブインバータ30の送信期間の始期に対応した位相δS2になった場合、スレーブインバータ30のCPUは、マスタインバータ10への応答フレームであるフレームF4の送信を行う。
このように本実施形態では、スレーブインバータ20および30のうちキャリア信号がマスタインバータ10のキャリア信号に同期化したスレーブインバータのみが自身の送信期間を利用してマスタインバータ10への応答フレームの送信を行う。従って、マスタインバータ10は、データ衝突を被ることなく、各スレーブインバータ20および30に同期信号を含む応答要求フレームをブロードキャストし、各スレーブインバータ20および30のキャリア信号をマスタインバータ10のキャリア信号に迅速に同期化させることができる。そして、各スレーブインバータ20および30のキャリア信号がマスタインバータ10のキャリア信号に同期化すると、図4を参照して説明した制御が並列多重インバータ1において行われる。
図6は本実施形態の比較例である並列多重インバータシステムの動作例を示すタイムチャートである。この比較例において、スレーブインバータは、当該スレーブインバータの送信期間になると必ず応答フレームの送信を行う。このため、マスタインバータ10、スレーブインバータ20および30の各キャリア信号間に位相差があると、各インバータの送信期間が時間軸上において重複し、データ衝突が発生し、各インバータ間の通信が失敗する可能性がある。図6に示す例では、スレーブインバータ20のフレームFの送信期間とスレーブインバータ30のフレームFの送信期間が重複し、データ衝突が発生し、マスタインバータ10とスレーブインバータ20および30との間の通信が失敗する可能性がある。そして、このようなデータ衝突の状況によってはマスタインバータ10からスレーブインバータ20および30への同期信号の送信が妨げられる場合がある。かかる場合、スレーブインバータ20および30のキャリア信号がマスタインバータ10のキャリア信号に同期化されるまでの所要時間が長くなる問題がある。このため、各インバータの送信時間の間の余裕時間を長くすることにより、データの衝突が発生しないようにする対処が必要になる。しかし、このように余裕時間を長くすると、並列多重インバータ全体としての制御周期が長くなり、インバータ制御性能が低下する問題が発生する。
これに対し、本実施形態では、図5に例示するように、スレーブインバータ20および30のうちキャリア信号がマスタインバータ10のキャリア信号に同期化したスレーブインバータのみが自身の送信期間を利用してマスタインバータ10への応答フレームの送信を行う。従って、各インバータの送信期間の間の余裕が少ない場合でも、データ衝突を生じさせることなく各インバータ間で通信することが可能となり、結果として、制御周期を短くでき、インバータ制御性能の高い並列運転が可能となる。
<第2実施形態>
図7は、この発明の第2実施形態である並列多重インバータシステム2の構成を示すブロック図である。図7では、図1におけるものと同一の構成要素には同一の符号が付されている。図7と図1を比較すれば明らかなように、並列多重インバータシステム2は、マスタインバータ10が返信法切替部100を備え、合成電流演算部120の代わりに平均電流演算部121を備える点と、スレーブインバータ20が送信法切替部200を備える点と、スレーブインバータ30が送信法切替部300を備える点とが並列多重インバータシステム1と異なる。
平均電流演算部121は、スレーブインバータ20および30から受信された電流値を加算して合成電流値を算出し、この合成電流値をマスタインバータ10とスレーブインバータ20および30の合計台数3で割った平均電流値を算出し、この平均電流値をスレーブインバータ20および30に送信する。マスタインバータ10の指令補正部125は、平均電流演算部121からの平均電流値とA/Dコンバータ180からの自身の電流値との差に応じて補正電圧指令値V1を生成する。また、スレーブインバータ20および30の指令補正部240および340は、受信部210および310から平均電流値を受信して補正電圧指令値V2およびV3を算出する。
本実施形態では、全てのスレーブインバータ20および30のキャリア信号の位相がマスタインバータ10のキャリア信号の位相に同期化されるまでの間に行われるマスタインバータ10とスレーブインバータ20および30との間の通信制御の態様が上記第1実施形態と異なる。
本実施形態において、マスタインバータ10の返信法切替部100は、スレーブインバータ20および30の中から1台のスレーブインバータを順次選択する。そして、返信法切替部100は、選択したスレーブインバータのキャリア信号のマスタインバータ10のキャリア信号への同期化が完了するまで、選択したスレーブインバータを指定するスレーブインバータ指定情報とスレーブインバータ指定情報により指定されたスレーブインバータの応答フレーム送信を指示する情報を含む運転待ち用フレームをマスタインバータ10の送信期間を利用してスレーブインバータ20および30にブロードキャストする。ここで、スレーブインバータ指定情報は、指定したスレーブインバータ以外のインバータには返信を要求しない旨の応答要求情報である。
また、返信法切替部100は、全てのスレーブインバータ20および30のキャリア信号の位相がマスタインバータ10のキャリア信号の位相に同期化されたことを検知すると、全てのスレーブインバータ20および30に対し、各々に割り当てられた期間を利用しての応答フレーム送信を指示する情報を含む運転用フレームを送信する。
スレーブインバータ20および30は、同期信号を含む応答要求フレームをマスタインバータ10から受信すると、上記第1実施形態と同様、各々の同期化制御部220(320)が各々のキャリア信号の位相を同期信号が示すマスタインバータのキャリア信号の位相に同期化させる制御を行う。
また、同期信号およびスレーブインバータ指定情報を含む応答要求フレームがスレーブインバータ20および30に受信された場合において、それらのうちスレーブインバータ指定情報により指定されたスレーブインバータの送信法切替部200(300)は、応答要求フレームの受信が完了するのに応じて、当該スレーブインバータのキャリア信号をマスタインバータ10のキャリア信号へ同期化させる制御を行い、この制御が完了すると、応答信号である同期化完了フレームを揮発性メモリ内の送信バッファに書き込む。
マスタインバータ10の返信法切替部100は、全てのスレーブインバータ20および30から同期化完了信号を含む応答信号である同期化完了フレームを受信した場合に、同期信号と通常の送信方法での送信を指示する情報とを含む運転用フレームを送信部140によりスレーブインバータ20および30にブロードキャストする。
スレーブインバータ20および30がこの運転用フレームを受信すると、スレーブインバータ20および30の送信法切替部200(300)は、マスタインバータ10に対する応答フレームの送信方法を上記第1実施形態と同様な通常の送信方法に切り替える。これにより各スレーブインバータ20および30は、当該インバータのキャリア信号の周期に対して所定の位相を有する送信期間であって、時間軸上において他のインバータの送信期間と重複しない送信期間を利用した各インバータ間の情報の授受を開始する。
図8は本実施形態の動作例を示すタイムチャートである。この動作例において、マスタインバータ10は、まず、スレーブインバータ20を選択し、同期信号とこのスレーブインバータ20を指定するスレーブインバータ指定情報とを含む運転待ち用フレームであるフレームF10aをスレーブインバータ20および30にブロードキャストする。
スレーブインバータ20は、フレームF10aを受信すると、そのフレームF10a内の同期信号が示すキャリア信号の位相にスレーブインバータ20のキャリア信号の位相を同期化させる制御を行う。
スレーブインバータ20および30のうちフレームF10a内のスレーブインバータ指定情報により指定されたスレーブインバータ20は、キャリア信号の同期化が完了すると、同期化完了を示す応答信号を含む応答フレームをマスタインバータ10に返信する。この例では、スレーブインバータ20のキャリア信号の位相とマスタインバータ10のキャリア信号の位相との位相差が許容値δ以内であるが、同期化が未だ完了していないので、スレーブインバータ20は、同期化完了信号を含まず、同期化が完了していない旨の応答信号を含む同期化未完フレームであるフレームF20nをマスタインバータ10に返信する。
次にマスタインバータ10は、選択したスレーブインバータ20の同期化が未だ完了していないので、同期信号とスレーブインバータ20を指定するスレーブインバータ指定情報を含む運転待ち用フレームであるフレームF10aを再度スレーブインバータ20および30にブロードキャストする。
この例では、2回目のフレームF10aが送信されることにより、スレーブインバータ20のキャリア信号の同期化が完了する。そこで、スレーブインバータ20は、同期化が完了した旨の同期化完了信号を含む同期化完了フレームであるフレームF20pをマスタインバータ10に返信する。
マスタインバータ10は、スレーブインバータ20の同期化が完了したことを検知すると、スレーブインバータ30を選択し、同期信号とスレーブインバータ30を指定するスレーブインバータ指定情報を含む運転待ち用フレームであるフレームF10bをスレーブインバータ20および30にブロードキャストする。
この例では、スレーブインバータ30のキャリア信号の位相とマスタインバータ10のキャリア信号の位相との位相差が許容値δ以内であるが、フレームF10bが送信されることにより、スレーブインバータ30のキャリア信号の同期化が完了しない。そこで、スレーブインバータ30は、同期化が完了していない旨の応答信号を含む同期化未完フレームであるフレームF30nをマスタインバータ10に返信する。
次にマスタインバータ10は、選択したスレーブインバータ30の同期化が未だ完了していないので、同期信号とスレーブインバータ30を指定するスレーブインバータ指定情報を含むフレームF10bを再度スレーブインバータ20および30にブロードキャストする。
この例では、2回目のフレームF10bが送信されることにより、スレーブインバータ30のキャリア信号の同期化が完了する。そこで、スレーブインバータ30は、同期化が完了した旨の同期化完了信号を含む同期化完了フレームであるフレームF30pをマスタインバータ10に返信する。
マスタインバータ10は、全てのスレーブインバータ20および30の同期化が完了したことを検知すると、同期信号と通常の送信方法への切替を指示する情報を含む運転用フレームであるフレームF10cをスレーブインバータ20および30にブロードキャストする。
これによりスレーブインバータ20(30)は、上記第1実施形態と同様、各々のキャリア信号の周期に対して所定の位相を有する送信期間であって、時間軸上において他のインバータの送信期間と重複しない送信期間を利用して運転中応答フレームであるフレームF20(F30)の送信を行う。
本実施形態においても、上記第1実施形態と同様な効果が得られる。また、本実施形態では、指令補正部240および340は合成電流値から平均電流値を算出する必要がないので、上記第1実施形態に比べて、スレーブインバータ20および30の処理負荷が少なくなる。
<他の実施形態>
以上、この発明の第1および第2実施形態について説明したが、この発明には他にも実施形態があり得る。例えば次の通りである。
(1)上記各実施形態では、スレーブインバータはスレーブインバータ20および30の2つだけであったが、1つでもよいし、3つ以上であってもよい。
(2)上記第1実施形態において平均電流演算部121を用いてもよいし、上記第2実施形態において合成電流演算部120を用いてもよい。
(3)上記各実施形態では、マスタインバータ10とスレーブインバータ20および30のキャリア信号の周期長と並列多重インバータシステム1および2の制御周期の周期長が等しくなっていたが、制御周期の周期長が各インバータのキャリア信号の周期長の整数倍となっていてもよい。