(57)【要約】【課題】複数の回転電機を回転電機の総数よりも少ない演算処理ユニットを用いて良好に制御することが可能な回転電機制御装置を提供する。【解決手段】各回転電機を駆動する電圧の指令である３相電圧指令をそれぞれ演算する電圧制御機能Ｆ３と、電圧制御機能Ｆ３において用いられる各電圧指令をそれぞれ演算する電流制御機能Ｆ２と、所定の周期に設定された基準演算周期ごとに、各回転電機を駆動する電圧制御機能Ｆ３の実行をそれぞれ完了させ、基準演算周期の複数回に１回、各回転電機のうち１つの電流制御機能Ｆ２の実行を完了させると共に、各回転電機のうち１つの電流制御機能Ｆ２を実行していない基準演算周期に、他の回転電機の電流制御機能Ｆ２の実行を完了させるタスク管理機能Ｆ１とを備える。【選択図】図３
2010239809.tif 000002
【特許請求の範囲】
【請求項１】
車両の駆動及び前記車両の直流電源への回生の一方又は双方を行う少なくとも２つの回転電機の３相交流電力をそれぞれ生成するインバータを単一の演算処理ユニットで制御する回転電機制御装置であって、
前記各回転電機を駆動する電圧の指令である電圧指令と前記各回転電機の実際の回転角度とに基づいて前記各回転電機の３相のコイルを駆動する３相交流電圧の指令である３相電圧指令をそれぞれ演算し、当該３相電圧指令に基づいて前記インバータを制御する電圧制御機能と、
前記各回転電機を駆動する電流の指令である電流指令と、前記各回転電機の実際の回転速度と、実際に前記各回転電機を流れる電流のフィードバック電流とに基づいて前記各電圧指令をそれぞれ演算する電流制御機能と、
所定の周期に設定された基準演算周期ごとに、前記各回転電機を駆動する前記電圧制御機能の実行をそれぞれ完了させ、前記基準演算周期の複数回に１回、前記各回転電機のうち１つの前記電流制御機能の実行を完了させると共に、前記各回転電機のうち１つの前記電流制御機能を実行していない前記基準演算周期に、他の回転電機の前記電流制御機能の実行を完了させるタスク管理機能と、
を備える回転電機制御装置。
【請求項２】
前記基準演算周期の複数回に１回、実行を完了され、前記車両の走行制御指令に基づいて、前記各回転電機に対するトルク指令をそれぞれ演算するトルク制御機能と、
前記基準演算周期の複数回に１回、実行を完了され、前記直流電源から供給される直流電圧を昇圧する昇圧指令を演算する昇圧制御機能と、
を、さらに備え、
前記トルク制御機能及び前記昇圧制御機能の演算を完了させる周期は、前記電流制御機能の演算を完了させる周期より大きく設定される請求項１に記載の回転電機制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、少なくとも駆動源として車両に搭載される複数の回転電機を駆動制御する回転電機制御装置に関する。
【背景技術】
【０００２】
１つの装置において複数の回転電機を用いる装置が種々提供されている。内燃機関及びモータにより駆動されるハイブリッド自動車にも複数のモータを用いるシステムがある。モータは、発電機としても機能する回転電機である。このため、例えば、特開２００６−５０７６４号公報（特許文献１）に開示されたハイブリッド自動車においては、２つのモータが、状況によってそれぞれモータ（走行モータ）又は発電機（発電モータ）として機能する。これら２つのモータは、異なる機能を発揮しなければならないので、モータＥＣＵによって、それぞれ個別に制御される。特許文献１のフローチャートや明細書の記載によれば、２つのモータは、独立して同様の制御を施される。従って、モータＥＣＵは、特開２００６−１８０６０２号公報（特許文献２）や特開２００１−３７２７７号公報（特許文献３）に記載されたような手法で、２つのモータを制御していると考えられる。
【０００３】
特許文献２では、制御用マイクロコンピュータが、モータごとに１つずつ設けられる。２つのモータは、独立して同様の制御を施され、並行して駆動される。一方、特許文献３では、２つのモータが共通のＣＰＵを用いて駆動制御される。ＣＰＵは、一方のモータに対する一連の処理を実行した後に他方のモータの一連の処理を実行するのではなく、双方のモータの制御に関する全ての処理を交互にパイプライン処理する。これにより、全体としては、２つのモータに対する一連の処理をシリアル処理していながら、２つのモータはほぼ並行して駆動制御される。
【０００４】
マイクロコンピュータの使用方法としては、特許文献３のようなパイプライン処理ではなく、一部の処理の実行周期と他の処理の実行周期とを大きく異ならせる方法もある。特開２００３−２５９６８０号公報（特許文献４）には、１つのモータに対する一連の制御において、一部の処理の実行周期を他の処理の実行周期よりも遙かに長くする制御方法が開示されている。具体的には、電流位相角を求めて励磁電流の指令を求める励磁電流制御の周期を、励磁電流制御以外の処理、例えば、モータを駆動するための出力電圧を求める出力電圧制御の周期の数回〜数百回に１回程度とする。３相同期モータの制御方法として、ベクトル制御（field oriented control : FOC）という方法が知られている。ベクトル制御では、交流モータの３相各相のステータコイルに流れるモータ電流を、回転子に配置された永久磁石が発生する磁界の方向であるｄ軸と、ｄ軸に直交するｑ軸とのベクトル成分に座標変換してフィードバック制御を行う。特許文献３では、ｄ−ｑ軸に対してさらに位相をずらしたγ−δ軸においてベクトル制御が実施されているがほぼｄ−ｑ軸と等価と考えてよい。電流位相角は、ステータコイルに流れる電流ベクトルをｄ−ｑ軸やγ−δ軸に沿った２つのベクトルにベクトル分解する際に利用される角度で、例えば、電流ベクトルとｑ軸電流との成す角度に相当する。従って、電流位相角を求める演算は、モータ制御において緊急性が低く、駆動制御とは全く別個の処理として扱えるほど、異なる周期で実行されても問題のない演算である。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００６−５０７６４号公報（第１４〜２９、４３〜４６段落、図１〜５等）
【特許文献２】特開２００６−１８０６０２号公報（第２１段落、図１等）
【特許文献３】特開２００１−３７２７７号公報（第２７〜５４段落、図４、５等）
【特許文献４】特開２００３−２５９６８０号公報（第５０〜９８、１０６段落、図１、４、５等）
【発明の概要】
【発明が解決しようとする課題】
【０００６】
複数の回転電機を並行して制御するに際して、複数の回転電機ごとにマイクロコンピュータを設けると、制御装置のコストが高くなり、また、制御装置の占有スペースも増大するので好ましくない。一方、回転電機の数よりも少ないマイクロコンピュータを用いて全ての回転電機を並行して制御すると、総演算時間が長くなり、制御の応答性が損なわれる。総演算時間を短縮するために、処理能力の高いマイクロコンピュータを用いると、制御装置のコストが高くなり、好ましくない。特許文献４のように、緊急性の低い処理を演算させる周期を大幅に長くすることで、演算時間を捻出することは可能である。しかし、その緊急性の低い処理の演算時間が長ければ、その処理の実行中に回転電機の制御が中断されるので、制御の連続性が損なわれる。一方、緊急性の低い処理の演算時間が短ければ、演算の周期を大幅に長くしたとしても、捻出される演算時間は僅かであり、短縮効果が期待できない。
【０００７】
本発明は、上記課題に鑑みて創案されたもので、複数の回転電機を回転電機の総数よりも少ない演算処理ユニットを用いて良好に制御することが可能な回転電機制御装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するための本発明に係る回転電機制御装置の特徴構成は、
車両の駆動及び前記車両の直流電源への回生の一方又は双方を行う少なくとも２つの回転電機の３相交流電力をそれぞれ生成するインバータを単一の演算処理ユニットで制御する回転電機制御装置であって、
前記各回転電機を駆動する電圧の指令である電圧指令と前記各回転電機の実際の回転角度とに基づいて前記各回転電機の３相のコイルを駆動する３相交流電圧の指令である３相電圧指令をそれぞれ演算し、当該３相電圧指令に基づいて前記インバータを制御する電圧制御機能と、
前記各回転電機を駆動する電流の指令である電流指令と、前記各回転電機の実際の回転速度と、実際に前記各回転電機を流れる電流のフィードバック電流とに基づいて前記各電圧指令をそれぞれ演算する電流制御機能と、
所定の周期に設定された基準演算周期ごとに、前記各回転電機を駆動する前記電圧制御機能の実行をそれぞれ完了させ、前記基準演算周期の複数回に１回、前記各回転電機のうち１つの前記電流制御機能の実行を完了させると共に、前記各回転電機のうち１つの前記電流制御機能を実行していない前記基準演算周期に、他の回転電機の前記電流制御機能の実行を完了させるタスク管理機能と、
を備える点にある。
【０００９】
電圧制御機能は、各回転電機を駆動するための３相電圧指令を演算処理ユニットがそれぞれ演算するタスクである。電圧制御は、インバータを制御して直流電源から３相交流電力を作り出すための制御であり、しばしばＰＷＭ（pulse width modulation）制御が採用される。回転電機を円滑に回転させるためには、回転電機の実際の回転角度に応じて、できるだけ高い分解能でＰＷＭ制御が行われることが好ましい。各回転電機の電圧制御に用いられる電圧指令をそれぞれ演算するタスクである電流制御機能も、本来は、フィードバック電流や、回転電機の回転角度、回転速度に応じて短い周期で実行されることが好ましい。但し、最大トルク制御などの通常のモータ制御においては、ＰＷＭ制御を含む電圧制御よりも電流制御の優先順位を下げてもよい。例えば、１回の電流制御の結果から、２回分の電圧制御の結果が演算されてもよい。本特徴構成によれば、所定の周期に設定された基準演算周期ごとに各回転電機を駆動する電圧制御機能の実行をそれぞれ完了させ、各回転電機のうち１つの回転電機の電流制御機能の実行を完了させると共に、各回転電機のうち１つの電流制御機能を実行していない演算周期に、他の回転電機の電流制御機能の実行を完了させる。従って、複数の回転電機を、回転電機の総数よりも少ないコンピュータ（演算処理ユニット）を用いて円滑に制御することが可能となる。つまり、コンピュータの動作クロックを早くしたり、複数の回転電機と同数のコンピュータを用いたりすることがないため、コストを低減することができる。
【００１０】
また、本発明に係る回転電機制御装置は、
前記基準演算周期の複数回に１回、実行を完了され、前記車両の走行制御指令に基づいて、前記各回転電機に対するトルク指令をそれぞれ演算するトルク制御機能と、
前記基準演算周期の複数回に１回、実行を完了され、前記直流電源から供給される直流電圧を昇圧する昇圧指令を演算する昇圧制御機能と、
を、さらに備え、
前記トルク制御機能及び前記昇圧制御機能の演算を完了させる周期が、前記電流制御機能の演算を完了させる周期より大きく設定されると好適である。
【００１１】
複数の回転電機を備え、それぞれの回転電機に対して３相交流電力を作り出すインバータが備えられる場合であっても、直流電源から供給される直流電圧を昇圧するコンバータは、しばしば共通して１つのみ備えられる。コンバータを制御する機能を、回転電機を制御するコンピュータとは別のコンピュータなどに持たせると、複数の回転電機に対するコンピュータの数を削減しても、その効果が限定的となる。そこで、複数の回転電機を制御するタスクを実行する空き時間において、昇圧指令を演算する昇圧制御機能を実行すると好適である。また、複数の回転電機を車輌に備える場合、両回転電機は協調して制御される方が好ましい。従って、各回転電機に与えられるトルク指令も、共通した走行制御指令に基づいて、演算されることが好ましい。昇圧指令の演算と同様に、複数の回転電機を制御するタスクを実行する空き時間において、トルク指令を演算するトルク制御機能が実行されると好適である。
【図面の簡単な説明】
【００１２】
【図１】本発明の回転電機制御装置を含む車両のシステム構成の一例を模式的に示すブロック図
【図２】本発明の回転電機制御装置の構成の一例を模式的に示すブロック図
【図３】回転電機制御プログラムによる制御例１のフローチャート
【図４】制御例１のタイムチャート
【図５】回転電機制御プログラムによる制御例２のフローチャート
【図６】制御例２のタイムチャート
【図７】回転電機制御プログラムによる制御例３のフローチャート
【図８】制御例３のタイムチャート
【発明を実施するための形態】
【００１３】
以下、本発明の実施形態を、ハイブリッド自動車や電気自動車などの車両の駆動源及び当該車両の直流電源への回生源となる回転電機を制御する場合を例として、図面に基づいて説明する。本実施形態では、内燃機関と回転電機とが協働するハイブリッド自動車に搭載される２つの回転電機を制御する場合を例として説明する。２つの回転電機は、共に状況に応じて、電動機及び発電機として機能する。以下、回転電機を適宜、モータと称して説明するが、これは、電動機及び発電機として機能する回転電機を指す。
【００１４】
図１は、そのようなモータＭの制御装置（回転電機制御装置）１００を含む車両のシステム構成の一例を模式的に示すブロック図である。図１に示すように、本実施形態では、２つの３相同期モータＭＧ１、ＭＧ２が備えられる。モータＭＧ１（第１回転電機）は、遊星歯車機構を有して構成される動力分配機構のサンギヤを介して入力された内燃機関からの駆動力により発電する発電機として機能するモータである。モータＭＧ１は、車両のバッテリを充電し、又は、モータＭＧ２に電力を供給する。但し、車両が高速走行する際には、モータＭＧ１が車両の駆動源となる電動機として機能することもある。モータＭＧ２（第２回転電機）は、主に車両の走行用の駆動力を補助する電動機として機能するモータである。モータＭＧ２は、車両の減速時には車両の慣性力を電気エネルギーとして回生する発電機としても機能する。また、２つのモータＭＧ１，ＭＧ２がそれぞれ異なる駆動輪に対して駆動連結される構成を採用することも可能である。
【００１５】
モータＭＧ１、ＭＧ２は、同じ性能のモータであってもよいし、異なる性能のモータであってもよい。また、モータＭＧ１，ＭＧ２をそれぞれ制御するインバータ５７ａ，５７ｂなどの制御回路も、同じ構成であってもよいし、モータの性能や仕様に応じて異なる構成であってもよい。本実施形態では、説明を容易にするために、特に、モータＭＧ１とＭＧ２とを区別することなく、適宜モータＭとして説明する。同様に、制御回路などについても区別することなく、例えば、適宜インバータ５７などとして説明する。
【００１６】
モータＭＧ１，ＭＧ２は、それぞれ、インバータ５７ａ，５７ｂを介して、不図示のバッテリの出力電圧を昇圧するコンバータ５６に電気的に接続される。インバータ５７（５７ａ，５７ｂ）は、コンバータ５６から出力される直流電力を３相交流電力に変換し、変換された３相交流電力によって、モータＭ（ＭＧ１，ＭＧ２）が駆動される。コンバータ５６及びインバータ５７は、複数のスイッチング素子を有して構成される。スイッチング素子には、ＩＧＢＴ（insulated gate bipolar transistor）やＭＯＳＦＥＴ（metal oxide semiconductor field effect transistor）を適用すると好適である。以下、スイッチング素子としてＩＧＢＴを用いる場合を例として説明する。
【００１７】
コンバータ５６は、よく知られているように、リアクトル、フィルタコンデンサ、直列接続された上下一対のＩＧＢＴ、放電用抵抗、平滑コンデンサなどを有して構成される。コンバータ５６の上段のＩＧＢＴのエミッタは下段のＩＧＢＴのコレクタに接続されると共に、リアクトルを介してバッテリのプラス側に接続される。上段のＩＧＢＴのコレクタは、インバータ５７の入力プラス側に接続される。下段のＩＧＢＴのエミッタはバッテリのマイナス側（グラウンド）に接続されると共に、インバータ５７の入力マイナス側に接続される。フィルタコンデンサは、バッテリの出力のプラス−マイナス間に接続され、放電用抵抗、平滑コンデンサは、コンバータ５６の出力のプラス−マイナス間、つまり、上段のＩＧＢＴのコレクタと下段のＩＧＢＴのエミッタとの間に並列接続される。
【００１８】
上段のＩＧＢＴがオフ状態で、下段のＩＧＢＴが例えばＰＷＭ（pulse width modulation ）制御によりスイッチングされることで、バッテリの出力電圧が昇圧され、インバータ５７に供給される。下段のＩＧＢＴがオフ状態で、上段のＩＧＢＴがオン状態となると、モータＭによって発電された電力がバッテリへ回生される。モータＭによって発電された電力を降圧してバッテリに回生させる場合には上段のＩＧＢＴがＰＷＭ制御されてもよい。
【００１９】
インバータ回路５７（５７ａ，５７ｂ）は、よく知られているように３相のブリッジ回路により構成される。インバータ回路５７の入力プラス側と入力マイナス側との間に２つのＩＧＢＴが直列に接続され、この直列回路が３回線並列接続される。つまり、モータＭ（ＭＧ１，ＭＧ２）のｕ相、ｖ相、ｗ相に対応するステータコイルＭｕ（Ｍｕ１，Ｍｕ２）、Ｍｖ（Ｍｖ１，Ｍｖ２）、Ｍｗ（Ｍｗ１，Ｍｗ２）のそれぞれに一組の直列回路が対応したブリッジ回路が構成される。各相の上段側のＩＧＢＴのコレクタはインバータ回路５７の入力プラス側に接続され、エミッタは各相の下段側のＩＧＢＴのコレクタに接続される。また、各相の下段側のＩＧＢＴのエミッタは、インバータ回路５７の入力マイナス側（例えば、グラウンド）に接続される。対となる各相のＩＧＢＴによる直列回路の中間点、つまり、ＩＧＢＴの接続点は、モータＭのステータコイルＭｕ、Ｍｖ、Ｍｗにそれぞれ接続される。
【００２０】
尚、ＩＧＢＴには、それぞれフライホイールダイオード（回生ダイオード）が並列に接続される。フライホイールダイオードは、カソード端子がＩＧＢＴのコレクタ端子に接続され、アノード端子がＩＧＢＴのエミッタ端子に接続される形でＩＧＢＴに対して並列に接続される。各ＩＧＢＴのゲートは、ドライバ回路５５を介してＥＣＵ（electronic control unit）５０に接続されており、それぞれ個別にスイッチング制御される。本実施形態では、他のＥＣＵと区別するために、ＥＣＵ５０をＴＣＵ（trans-axle control unit）５０と称する。
【００２１】
ＴＣＵ５０は、マイクロコンピュータなどの論理回路を中核として構成される。本実施形態では、ＴＣＵ５０は、シングルタスクのマイクロコンピュータであるＣＰＵ（central processing unit）５１と、インターフェース回路５２と、その他の周辺回路等とを有して構成される。ＣＰＵ５１は、回転電機制御プログラムをシリアルに実行するコンピュータである。インターフェース回路５１は、ＥＭＩ（electro-magnetic interference）対策部品やバッファ回路などにより構成される。ＣＰＵ５１は、本発明の回転電機制御装置に相当する制御装置１００を構成する。高電圧をスイッチングするＩＧＢＴやＭＯＳＦＥＴのゲートに入力される駆動信号は、マイクロコンピュータなどの一般的な電子回路の駆動電圧よりも高い電圧を必要とするため、ドライバ回路５５を介して昇圧された後、インバータ５７に入力される。
【００２２】
ＣＰＵ５１は、少なくとも、ＣＰＵコア１１と、プログラムメモリ１２と、パラメータメモリ１３と、ワークメモリ１４と、通信制御部１５と、Ａ／Ｄコンバータ１６と、タイマ１７と、ポート１８とを有して構成される。ＣＰＵコア１１は、ＣＰＵ５１の中核であり、命令レジスタや命令デコーダ、種々の演算の実行主体となるＡＬＵ(arithmetic logic unit)、フラグレジスタ、汎用レジスタ、割り込みコントローラなどを有して構成される。ＣＰＵコア１１は、単一の演算処理ユニットにより、シリアルにプログラムを実行するシングルタスクのコンピュータの中核を担う。
【００２３】
プログラムメモリ１２は、モータ制御プログラム（回転電機制御プログラム）が格納された不揮発性のメモリである。パラメータメモリ１３は、プログラムの実行の際に参照される種々のパラメータが格納された不揮発性のメモリである。パラメータメモリ１３は、プログラムメモリ１２と区別することなく構築されてもよい。プログラムメモリ１２やパラメータメモリ１３は、例えばフラッシュメモリなどによって構成されると好適である。ワークメモリ１４は、プログラム実行中の一時データを一時記憶するメモリである。ワークメモリ１４は、揮発性で問題なく、高速にデータの読み書きが可能なＤＲＡＭ（dynamic RAM）やＳＲＡＭ（static RAM）により構成される。
【００２４】
通信制御部１５は、車両内の他のシステムとの通信を制御する。本実施形態では、車両内のＣＡＮ（controller area network）８０を介して、走行制御システム６０やその他のシステム、センサ等との通信を制御する。例えば、ＣＰＵ５１は、通信制御部１５を介して、走行制御システム６０から、モータ制御指令Ｈｒを受け取り、これに基づいて、モータＭを制御する。
【００２５】
Ａ／Ｄコンバータ１６は、アナログの電気信号をデジタルデータに変換する。本実施形態では、モータＭの各ステータコイルＭｕ，Ｍｖ，Ｍｗに流れるモータ電流Ｉｕ（Ｉｕ１，Ｉｕ２），Ｉｖ（Ｉｖ１，Ｉｖ２），Ｉｗ（Ｉｗ１，Ｉｗ２）の検出結果を電流センサ５８（５８ａ，５８ｂ）から受け取り、デジタル値に変換する。尚、ｕ相、ｖ相、ｗ相の３相は平衡しており、その瞬時値はゼロであるので、２相分のみの電流を検出し、残る１相はＣＰＵ５１において演算により求めてもよい。本実施形態では、３相の全てが検出される場合を例示している。また、本例では、Ａ／Ｄコンバータ１６が６つのアナログ入力を有しているように図示しているが、これは３相２回線の合計６つの電流値を計測していることを明示するためである。従って、必ずしも３つの入力を有する必要はない。例えば、インターフェース回路５２にマルチプレクサを備えて、時分割により１つのアナログ入力からアナログの電流値を取得してもよい。また、２相分のみの電流を検出し、残る１相はＣＰＵ５１において演算により求めるのであれば、Ａ／Ｄコンバータ１６は、４つのアナログ入力を有していれば足りる。
【００２６】
タイマ１７は、ＣＰＵ５１のクロック周期を最小分解能として、時間を計測する。例えば、タイマ１７は、プログラムの実行周期を監視し、ＣＰＵコア１１の割り込みコントローラに通知する。また、タイマ１７は、コンバータ５６及びインバータ５７のＩＧＢＴを駆動するゲート駆動信号の有効時間を計測して、当該ゲート駆動信号を生成する。図１においてインターフェース回路５２からドライバ回路５５に入力される信号の符号ｐ＊は、コンバータ５６及びインバータ５７の上段側のＩＧＢＴのゲート駆動信号を示し、符号ｎ＊は、下段側のＩＧＢＴのゲート駆動信号を示す。符号＊ｃは、コンバータ５６のＩＧＢＴのゲート駆動信号を示す。また、符号＊ｕ，＊ｖ，＊ｗは、インバータ５７のｕ相、ｖ相、ｗ相それぞれのＩＧＢＴのゲート駆動信号を示す。また、符号＊１，＊２は、それぞれモータＭＧ１のインバータ５７ａ、モータＭＧ２のインバータ５７ｂのＩＧＢＴのゲート駆動信号を示す。
【００２７】
ポート１８は、インバータ５７のＩＧＢＴのゲート駆動信号などをＣＰＵ５１の端子を介して出力したり、ＣＰＵ５１に入力される回転検出センサ５９（５９ａ，５９ｂ）からの回転検出信号Ｒ（Ｒ１，Ｒ２）を受け取ったりする端子制御部である。回転検出センサ５９は、モータＭの近傍に設置されてモータＭのロータの回転位置や回転速度を検出センサであり、例えば、レゾルバなどを用いて構成される。
【００２８】
上述したように、ＣＰＵ５１は車内ネットワークであるＣＡＮ８０を介して種々のシステムやセンサと通信可能に接続されている。ＣＰＵ５１は、走行制御システム６０の他、ブレーキシステム６１やパワーステアリングシステム６３と接続される。これら各システムは、モータＭの制御装置１００と同様にＣＰＵなどの電子回路を中核として構成され、ＴＣＵ５０と同様に周辺回路と共にＥＣＵ（electronic control unit）として構成される。
【００２９】
ブレーキシステム６１は、ドライバーにより操作されるブレーキペダルの操作量をブレーキセンサ７２により検出して、アクチュエータ７１を介して車両に制動力を付加してブレーキ力を増強させるブレーキアシストなどを有した電動ブレーキシステムである。パワーステアリングシステム６３は、例えば、ドライバーにより操作されるステアリングホイールの操作量をステアリングセンサ７４により検出してアクチュエータ７３によりアシストトルクを付加する電動パワーステアリング（EPS : electric power steering）システムである。
【００３０】
車輪速センサ７５は、車両の車輪の回転量や単位時間当たりの回転数を検出するセンサである。ブレーキシステム６１が、ブレーキのロックを抑制するＡＢＳ（anti lock braking system）や、コーナリング時の車両の横滑りを抑制する横滑り防止装置（ESC : electronic stability control）である場合、ＣＡＮ８０を介して受け取った車輪速センサ７５の検出結果に基づいて各種制御が実行される。例えば、左右の車輪の回転差などからブレーキのロックや、車輪の空回り、横滑りの兆候などが判定され、判定結果に応じた制御が実行される。従って、車輪速センサ７５は、ブレーキシステム６１に備えられている場合もある。
【００３１】
アクセルセンサ７６は、ドライバーによるアクセルペダルの操作量を検出するセンサである。シフトレバーセンサ７７は、シフトレバーの位置を検出するセンサ又はスイッチである。走行制御システム６０は、アクセルセンサ７６やシフトレバーセンサ７７、車輪速センサ７５などによる検出結果に基づいて、モータＭＧ１とＭＧ２との何れを電動機として、何れを発電機とするかも含め、モータＭに対するモータ制御指令Ｈｒを演算する。このモータ制御指令Ｈｒは、ＣＡＮ８０を介してＣＰＵ５１に伝達され、ＣＰＵ５１の通信制御部１５によって受信される。
【００３２】
本実施形態において、モータＭの制御装置１００は、ＣＰＵ５１を中核として構成される。つまり、ＣＰＵコア１１を主として、ワークメモリ１４やタイマ１７なども含むハードウェアと、プログラムメモリ１２やパラメータメモリ１３に格納されたプログラムやパラメータなどのソフトウェアとの協働により、制御装置１００が構成される。図２に示すように、制御装置１００は、トルク制御部１０と、電流制御部３（３ａ，３ｂ）と、電圧制御部６（６ａ，６ｂ）と、回転状態演算部９（９ａ，９ｂ）と、昇圧制御部２０と、レジスタ９１〜９９と、タスク管理部１とを有して構成される。図２において、モータＭＧ１を制御する機能部は符号＊ａで示され、モータＭＧ２を制御する機能部は符号＊ｂで示されている。本実施形態では、特に断らない限り、モータＭＧ１を制御する機能部とモータＭＧ２を制御する機能部とを区別することなく、適宜、電流制御部３などと称して説明する。
【００３３】
交流モータを制御する方法として、ベクトル制御（field oriented control : FOC）と呼ばれる制御方法が知られている。ベクトル制御では、交流モータの３相各相のステータコイルに流れるコイル電流を、回転子に配置された永久磁石が発生する磁界の方向であるｄ軸と、ｄ軸に直交するｑ軸との２相のベクトル成分に座標変換してフィードバック制御を行う。本例においても、このベクトル制御を採用している。
【００３４】
ベクトル制御における座標変換に際しては、モータＭの回転状態をリアルタイムで知る必要がある。従って、図１に示すように、モータＭの近傍にレゾルバなどの回転検出センサ５９が備えられる。その検出結果は、上述したように、ＣＰＵ５１のポート１８を介して、ＣＰＵコア１１内のレジスタやワークメモリ１４に伝達される。制御装置１００に設けられた回転状態演算部９は、回転検出センサ５９の検出結果Ｒ（Ｒ１，Ｒ２）に基づいて、ロータ位置（電気角θ）や、回転速度（角速度ω）を求める。求められた電気角θや角速度ωは、トルク制御部１０や電流制御部３や電圧制御部６において用いられる。
【００３５】
トルク制御部１０は、走行制御システム６０から与えられるモータ制御指令（走行制御指令）Ｈｒに基づいて、各モータＭを制御するための要求トルク（トルク指令）Ｔｒを演算し、それぞれの要求トルクＴｒに応じて電流フィードバック制御のための２相の目標電流（電流指令）ｉｄ，ｉｑを設定する機能部である。目標電流ｉｄ，ｉｑは、上述したｄ軸及びｑ軸に対応して設定される。このため、トルク制御部１０は、回転状態演算部９により求められた電気角θ（θ１，θ２）に基づいてトルク指令Ｔｒをｄ軸の目標電流ｉｄ及びｑ軸の目標電流ｉｑに座標変換する２相変換部２（２ａ，２ｂ）を有して構成される。２相変換部２ａは、モータＭＧ１の要求トルクＴｒ１に応じて、モータＭＧ１の目標電流ｉｄ，ｉｑを演算する。２相変換部２ｂは、モータＭＧ２の要求トルクＴｒ２に応じて、モータＭＧ２の目標電流ｉｄ，ｉｑを演算する。
【００３６】
電流制御部３は、目標電流ｉｄ，ｉｑと、フィードバックされたモータ電流との偏差に基づいて、例えば比例積分制御（ＰＩ制御）や、比例微積分制御（ＰＩＤ制御）を行い、目標電圧（電圧指令）ｖｄ，ｖｑを設定する機能部である。ここでは、比例微積分制御（ＰＩＤ制御）が行われる場合を例示しており、電流制御部３は、ＰＩＤ制御部５と２相変換部４とを有して構成される。電流センサ５８により検出された電流値は、３相電流Ｉｕ，Ｉｖ，Ｉｗであるから、２相変換部４は、回転状態演算部９により求められた電気角θ（θ１，θ２）に基づいて、２相電流Ｉｄ，Ｉｑに座標変換する。ＰＩＤ制御部５は、目標電流ｉｄ，ｉｑと、２相モータ電流Ｉｄ，Ｉｑとの偏差、及び、回転状態演算部９により求められた角速度ω（ω１，ω２）に基づいて、ＰＩＤ制御を行い、目標電圧ｖｄ，ｖｑを設定する。
【００３７】
電圧制御部６は、目標電圧ｖｄ，ｖｑに基づいて、インバータ５７の３相のＩＧＢＴを駆動するゲート駆動信号ｐｕ，ｎｕ，ｐｖ，ｎｖ，ｐｗ，ｎｗを生成する。電圧制御部６は、３相変換部７とＰＷＭ制御部８とを有して構成される。インバータ５７は、モータＭの３相のステータコイルＭｕ，Ｍｖ，Ｍｗに対応して、３相分設けられているから、２相の目標電圧ｖｄ，ｖｑが、回転状態演算部４０により求められた電気角θ（θ１，θ２）に基づいて、３相の目標電圧ｖｕ，ｖｖ，ｖｗに座標変換される。ＰＷＭ制御部８は、インバータ５７のＩＧＢＴを、ＰＷＭ制御する。
【００３８】
具体的には、ＰＷＭ制御部８は、各相が上段側、下段側の２段のＩＧＢＴにより構成され、３相で合計６段構成された各段のＩＧＢＴのゲートを個別に制御する６つのゲート駆動信号ｐｕ，ｎｕ，ｐｖ，ｎｖ，ｐｗ，ｎｗを生成する。ゲート駆動信号ｐｕ，ｎｕ，ｐｖ，ｎｖ，ｐｗ，ｎｗは、順に、ｕ相上段、ｕ相下段、ｖ相上段、ｖ相下段、ｗ相上段、ｗ相下段のＩＧＢＴのゲート駆動信号に相当する。ＣＰＵ５１のタイマ１７により各ゲート駆動信号の有効時間が計測され、ポート１８を介してパルス状のゲート駆動信号ｐｕ，ｎｕ，ｐｖ，ｎｖ，ｐｗ，ｎｗが出力される。
【００３９】
昇圧制御部２０は、目標トルクＴｒに応じて設定される昇圧指令に基づいて、コンバータ５６のＩＧＢＴのゲート駆動信号ｐｃ，ｎｃを生成する。ゲート駆動信号ｐｃは上段のＩＧＢＴの駆動信号であり、ゲート駆動信号ｎｃは下段のＩＧＢＴの駆動信号である。図１に示すように、２つのモータＭにそれぞれ３相交流電力を供給する２つのインバータ５７に対して、共通した１つのコンバータ５６が備えられている。従って、昇圧制御部２０は、２つの目標トルクＴｒ１，Ｔｒ２を取得して、例えば、高い電圧を必要とする方の目標トルクＴｒに応じて昇圧指令を設定して、コンバータ５６を制御する。
【００４０】
レジスタ９１〜９９は、ＣＰＵ５１のＣＰＵコア１１内の汎用レジスタや、ワークメモリ１４により構成される。レジスタ９１〜９９は、ＣＰＵコア１１によって実行されるプログラムの進行に応じて、適宜、一定期間データを一時記憶する。当然ながら、ＣＰＵコア１１によって実行されるプログラムに応じて、一時記憶することなく、レジスタへのデータの入力と同時に出力させてもよい。
【００４１】
レジスタ９１（９１ａ，９１ｂ）及びレジスタ９２（９２ａ，９２ｂ）は、トルク制御部１０の２相変換部２へ入力される目標トルクＴｒ及び電気角θを管理（記憶及び出力）するレジスタである。レジスタ９３（９３ａ，９３ｂ）、レジスタ９４（９４ａ，９４ｂ）、レジスタ９５（９５ａ，９５ｂ）、レジスタ９６（９６ａ，９６ｂ）は、電流制御部３へ入力される目標電流ｉｄ，ｉｑ、電気角θ、フィードバック電流Ｉｕ，Ｉｖ，Ｉｗ、角速度ωを管理するレジスタである。レジスタ９７（９７ａ，９７ｂ）及びレジスタ９８（９８ａ，９８ｂ）は、電圧制御部６へ入力される目標電圧ｖｄ，ｖｑ及び電気角θを管理するレジスタである。レジスタ９９（９９ａ，９９ｂ）は、昇圧制御部２０へ入力される目標トルクＴｒを管理するレジスタである。尚、このようなレジスタ構成は一例であり、本発明を限定するものではない。例えば、フィードバック電流Ｉｕ，Ｉｖ，Ｉｗは、２相のフィードバック電流Ｉｄ，Ｉｑに変換された後に管理されてもよい。
【００４２】
〔制御例１〕
以下、図３のフローチャート、図４のタイムチャートを利用して、モータ制御プログラム（回転電機制御プログラム）による制御例１について説明する。ＣＰＵ５１のタイマ１７により、基準となる制御周期（演算周期）Ｔ１が計測され、ＣＰＵコア１１の割り込みコントローラが演算周期Ｔ１ごとに割り込み命令を出力し、図３のフローチャートに示された一連の処理を実行する。つまり、割り込み機能ＩＮＴの実行により、一連の制御処理が開始される（＃０１）。
【００４３】
図２を利用して上述したように、本実施形態におけるモータＭの制御には、トルク制御、電流制御、電圧制御、昇圧制御がある。モータ制御プログラムは、これらに対応して、トルク制御機能Ｆ５、電流制御機能Ｆ２、電圧制御機能Ｆ３、昇圧制御機能Ｆ４を有して構成される。モータ制御プログラムにおいて、これらの各機能はタスクであり、モータ制御プログラムは、さらにこれらタスクの実行を管理するタスク管理機能Ｆ１も有して構成される。
【００４４】
モータの制御装置１００にとって、トルク制御、電流制御、電圧制御、昇圧制御の実行が完了し、それぞれの結果を得たい最短の周期は、例えば、下記表１に示すようにそれぞれ異なる。尚、各タスクの周期は、説明を容易にするための一例である。
【００４５】
【表１】
2010239809.tif 000003
【００４６】
表１に示すように、本制御例においては、電圧制御の結果が最も短い周期で必要とされる。そこで、電圧制御機能Ｆ３のタスクを実行の優先順位の高い優先タスクとする。そして、電圧制御の結果が必要とされる周期を基準演算周期（演算周期Ｔ１）とする。ＣＰＵ５１が、演算周期Ｔ１を基準としてプログラムを実行すれば、演算周期Ｔ１ごとに電圧制御の結果が得られることになる。電圧制御は、インバータ５７を駆動して３相交流電力を作り出すための制御であり、図２に基づいて上述したようにＰＷＭ制御が用いられる。回転電機を円滑に回転させるために、ＰＷＭ制御は、モータＭの実際の回転角度（電気角θ）に応じて、できるだけ高い分解能で行われることが好ましい。従って、電圧制御は、短い周期で演算結果が得られるように実行されることが好ましい。
【００４７】
モータＭの電圧制御に用いられる電圧指令を演算するタスクである電流制御機能も、モータＭのフィードバック電流や、モータＭの電気角θ、角速度ωに応じて短い周期で実行されることが好ましい。但し、最大トルク制御など、一般的な通常のモータ制御においては、ＰＷＭ制御を含む電圧制御よりも優先順位を下げることができる。例えば、電流制御の結果は、演算周期Ｔ１の２回に１回得られれば良いようにすることもできる。つまり、電流制御の結果は、演算周期Ｔ１を第１演算周期とすれば、第１演算周期Ｔ１の２倍の第２演算周期Ｔ２において１回得られればよい。モータＭは、２つ存在するので、ＣＰＵ５１は、交互にそれぞれのモータＭの電流制御を行うことができる。例えば、繰り返し実行される第１演算周期Ｔ１が奇数回目であるか偶数回目であるかが監視され、それに応じて電流制御が実行されると好適である。
【００４８】
尚、電圧制御が２回行われる内に、電流制御が１回行われる場合においても、フィードバック電流Ｉｕ，Ｉｖ，Ｉｗは、２回取得されてよい。電流制御部３は、２回分の電流値を利用して、２重帰還ループを構成しても良いし、２回の電流値の平均を利用してノイズを軽減させてもよい。制御の形態に応じて、タスク管理部１により適宜レジスタ９４〜９６が制御される。
【００４９】
表１を参照すれば、昇圧制御の結果は、演算周期Ｔ１の５回に１回得られれば良い。つまり、昇圧制御の結果は、第１演算周期Ｔ１の５倍の第３演算周期Ｔ３において１回得られればよい。１回の演算周期Ｔ１の残り時間において演算を完了させることができなければ、複数回の演算周期Ｔ１の残り時間をつなぎ合わせて、複数回の演算周期Ｔ１に亘って演算されてもよい。トルク制御の結果は、演算周期Ｔ１の１０回に１回得られれば良い。つまり、トルク制御の結果は、第１演算周期Ｔ１の１０倍の第４演算周期Ｔ４において１回得られればよい。昇圧制御と同様に、１回の演算周期Ｔ１の残り時間において演算を完了させることができなければ、複数回の演算周期Ｔ１に亘って演算されてもよい。
【００５０】
以下、図３のフローチャート、図４のタイムチャートを利用して詳述する。図３に示す制御例１においては、割り込み処理（＃０１）の後、まず、演算周期Ｔ１の実行回数が奇数回目であるか偶数回目であるかがタスク管理部１によって判定される（＃０２）。これは、タスク管理機能Ｆ１の１つの機能に相当する。
【００５１】
演算周期Ｔ１の実行回数が奇数回目であった場合には、図４における１回目の演算周期Ｔ１１に示すように、ＭＧ１電流制御（ＩＣ１）の演算が実行される（図３＃０３ａ）。一方、演算周期Ｔ１の実行回数が偶数回目であった場合には、図４における２回目の演算周期Ｔ１２に示すように、ＭＧ２電流制御（ＩＣ２）の演算が実行される（図３＃０３ｂ）。これら、ＭＧ１電流制御及びＭＧ２電流制御のタスクは、電流制御機能Ｆ２に相当する。当然ながら、偶奇において何れのモータＭに関する制御を実施するかについては適宜設定可能である。
【００５２】
次に、図３及び図４に示すように、演算周期Ｔ１の実行回数の偶奇に拘わらず、ＭＧ１電圧制御（ＶＣ１、＃０４ａ）及びＭＧ２電圧制御（ＶＣ２、＃０４ｂ）の演算が実行される。つまり、図４における全ての演算周期Ｔ１（Ｔ１１〜Ｔ２０）において、ＭＧ１電圧制御及びＭＧ２電圧制御のタスクが実行される。これら、ＭＧ１電圧制御及びＭＧ２電圧制御のタスクは、電圧制御機能Ｆ３に相当する。本例では、ＭＧ１電圧制御の後、ＭＧ２電圧制御が実行される場合を例示しているが、当然、逆の順序であってもよい。
【００５３】
電流制御及び電圧制御が実行されると、図３に示すように、昇圧制御の演算が完了しているか否かがタスク管理部１によって判定される（＃０５）。これは、タスク管理機能Ｆ１の１つの機能に相当する。昇圧制御が未完了であると判定されると、図４の演算周期Ｔ１１に示すように、演算周期Ｔ１の残りの時間を使って昇圧制御（ＣＣ）の演算が実行される（図３＃０６）。これは、昇圧制御機能Ｆ４に相当する。昇圧制御の演算の実行中に、演算周期Ｔ１が経過すると、ＣＰＵコア１１の割り込みコントローラが割り込み命令を発し、演算を中断させ、再度、工程＃０１からの処理が実行される。中断される演算の途中結果は、ワークメモリ１４やＣＰＵコア１１内のレジスタなどに一時記憶される。
【００５４】
昇圧制御が中断された場合は、次の演算周期Ｔ１２（Ｔ１）の工程＃０５においても昇圧制御が未完了であると判定されるので、図４に示すように、演算周期Ｔ１２の残りの時間を使って昇圧制御の続きが実行される。演算周期Ｔ１２においても昇圧制御の演算が完了せず、演算周期Ｔ１が経過すると、ＣＰＵコア１１の割り込みコントローラが割り込み命令を発し、演算を中断させ、再度、工程＃０１からの処理が実行される。
【００５５】
次の演算周期Ｔ１３（Ｔ１）の工程＃０５においても昇圧制御が未完了であると判定されるので、図４に示すように、演算周期Ｔ１３の残りの時間を使って昇圧制御の続きが実行される。演算周期Ｔ１３の間に昇圧制御が完了すると、図３に示すように、トルク制御の演算が完了しているか否かがタスク管理部１によって判定される（＃０７）。これは、タスク管理機能Ｆ１の１つの機能に相当する。トルク制御が未完了であると判定されると、図４の演算周期Ｔ１３に示すように、演算周期Ｔ１３の残りの時間を使ってトルク制御（ＴＣ）の演算が実行される（図３＃０８）。これは、トルク制御機能Ｆ５に相当する。
【００５６】
昇圧制御と同様に、トルク制御の演算が完了しない間に演算周期Ｔ１が経過すると、ＣＰＵコア１１の割り込みコントローラが割り込み命令を発し、演算を中断させ、再度、工程＃０１からの処理が実行される。中断される演算の途中結果は、ワークメモリ１４やＣＰＵコア１１内のレジスタなどに一時記憶される。中断されたトルク制御の演算は、昇圧制御と同様に、次の演算周期Ｔ１４の工程＃０７においても未完了と判定されるので、図４に示すように、演算周期Ｔ１４の残りの時間を使って昇圧制御の続きが実行される。本例においては、演算周期Ｔ１４においてもトルク制御の演算が完了せず、さらにその次の演算周期Ｔ１５においてトルク制御の演算が完了する。
【００５７】
全ての演算が完了すると、工程＃０１〜＃０８の一連の処理が終了する（図３＃０９）。図４の演算周期Ｔ１５に示すように、次の演算周期Ｔ１６が開始されるまで、ＣＰＵ５１は、待ち状態となる。演算周期Ｔ１６〜Ｔ２０において、上述した演算周期Ｔ１１〜１５と同様に演算が実行される。但し、トルク制御の演算結果は、３ｍｓに１回得られればよく、本制御例では既に演算周期Ｔ１５においてトルク制御の演算が完了している。従って、演算周期Ｔ１８において工程＃０６の昇圧制御演算が完了し、次の工程＃０７において「トルク制御演算が未完了か？」との判定が行われると、その結果は「否」となり、図３に示すように、工程＃０９へ移行する。よって、図４に示すように、演算周期Ｔ１８において、昇圧制御演算が完了した後、ＣＰＵ５１は待ち状態となる。演算周期Ｔ１９及びＴ２０において、電圧制御（ＶＣ１，ＶＣ２）が完了した後も同様である。
【００５８】
尚、工程＃０５の昇圧制御が完了しているか否かの判定は、表１に示すように、本例においては１．５ｍｓの間、即ち、第３演算周期Ｔ３において昇圧制御が完了しているか否かに対してのものである。第３演算周期Ｔ３についても、タイマ１７によって計測されると好適である。また、工程＃０７のトルク制御が完了しているか否かの判定は、表１に示すように、本例においては３ｍｓの間、即ち、第４演算周期Ｔ４において昇圧制御が完了しているか否かに対してのものである。従って、第４演算周期Ｔ４についても、タイマ１７によって計測されると好適である。
【００５９】
以上説明したように、制御例１においては、第１演算周期Ｔ１ごとに１回、電圧制御の演算が完了され、インバータ５７のＩＧＢＴのゲート駆動信号ｐｕ，ｎｕ，ｐｖ，ｎｖ，ｐｗ，ｎｗの結果が得られる。また、第１演算周期Ｔ１の２回分である第２演算周期Ｔ２ごとに１回、電流制御の演算が完了され、電圧指令ｖｄ，ｖｑの結果が得られる。また、第１演算周期Ｔ１の５回分である第３演算周期Ｔ３ごとに１回、昇圧制御の演算が完了され、コンバータ５６のＩＧＢＴのゲート駆動信号ｐｃ，ｎｃの結果が得られる。また、第１演算周期Ｔ１の１０回分である第４演算周期Ｔ４ごとに１回、トルク制御の演算が完了され、トルク指令Ｔｒ１，Ｔｒ２の結果が得られる。
【００６０】
以上、制御例１においては、タスク管理機能Ｆ１により、所定の周期に設定された基準演算周期Ｔ１ごとに、各モータＭを駆動する電圧制御機能Ｆ３の実行がそれぞれ完了される。また、基準演算周期Ｔ１の複数回に１回、各モータＭのうち１つの電流制御機能Ｆ２の実行が完了される。また、各モータＭのうち１つの電流制御機能Ｆ２を実行していない基準演算周期Ｔ１に、他のモータＭの電流制御機能Ｆ２の実行が完了される。つまり、モータＭＧ１の電流制御機能Ｆ２を実行していない基準演算周期Ｔ１に、他のモータＭＧ２の電流制御機能Ｆ２の実行が完了され、モータＭＧ２の電流制御機能Ｆ２を実行していない基準演算周期Ｔ１に、他のモータＭＧ１の電流制御機能Ｆ２の実行が完了される。
【００６１】
制御例１においては、電圧制御機能Ｆ３が実行の優先順位の高い優先タスクである。つまり、タスク管理機能Ｆ１は、電圧制御機能Ｆ３及び電流制御機能Ｆ２を含む複数のタスクＦ２〜Ｆ５の内、実行の優先順位の高い優先タスク（Ｆ３）の実行が完了して演算結果が得られる周期に設定された基準演算周期Ｔ１において、当該優先タスク（Ｆ３）の実行を完了させ、基準演算周期Ｔ１の複数回に１回、他のタスク（Ｆ２、Ｆ４、Ｆ５）の実行を完了させる。但し、電圧制御機能Ｆ３のみが優先タスクとして設定され得るものではなく、他のタスクを優先タスクとすることも可能である。また、優先タスクは、単一のタスクに限らず、複数設定されることも可能である。そのような他の制御例について、以下に説明する。
【００６２】
〔制御例２〕
以下、図５のフローチャート、図６のタイムチャートを利用して、モータ制御プログラム（回転電機制御プログラム）による制御例２について説明する。制御例１と同様な点については、適宜説明を省略する。制御例２においては、優先タスクは、電流制御機能Ｆ２であり、タスク管理機能Ｆ１は、基準演算周期（Ｔ１）ごとに電流制御機能Ｆ２の実行を完了させ、基準演算周期の複数回に１回、電圧制御機能Ｆ３の実行を完了させる。
【００６３】
制御例１と同様に、ＣＰＵ５１のタイマ１７により、基準となる制御周期（演算周期）Ｔ１が計測され、ＣＰＵコア１１の割り込みコントローラが演算周期Ｔ１ごとに割り込み命令を出力し、図５のフローチャートに示された一連の処理を実行する。つまり、割り込み機能ＩＮＴの実行により、一連の制御処理が開始される（＃１１）。
【００６４】
制御例２においては、トルク制御、電流制御、電圧制御、昇圧制御の実行が完了し、それぞれの結果を得たい最短の周期は、例えば、下記表２に示すものとなる。制御例１と同様に、各タスクの周期は、説明を容易にするための一例である。
【００６５】
【表２】
2010239809.tif 000004
【００６６】
表２に示すように、本制御例においては、電流制御の結果が最も短い周期で必要とされる。そこで、電流制御機能Ｆ２のタスクを実行の優先順位の高い優先タスクとする。そして、電流制御の結果が必要とされる周期を基準演算周期（演算周期Ｔ１）とする。モータＭの制御方法には、ＰＷＭ制御以外にも種々の方法があり、例えば交流の基本波成分を矩形波で代替する１パルス制御というものもある。モータＭが１パルス制御などで駆動される場合には、電圧制御に際してＰＷＭ制御ほどの分解能は必要とされない。一方、１パルス制御では、粗い分解能で電圧制御を行って回転電機を駆動することも相まって、ＰＷＭ制御に比べて、制御の目標電流（電流指令）と、実際にステータコイルに流れる電流（フィードバック電流）との差が大きくなる場合がある。このような場合には、電流制御機能Ｆ２を優先タスクとし、演算周期Ｔ１において必ず演算結果を得られるようにすることで、モータＭを円滑に制御することができる。つまり、制御例１とは異なり、電流制御を短い周期で実行することで、モータＭが良好に制御される。反対に、電圧制御の結果は、ＰＷＭ制御ほどの分解能を必要としないので、演算周期Ｔ１の２回に１回得られれば充分である。昇圧制御及びトルク制御については、制御例１と同様である。
【００６７】
以下、図５のフローチャート、図６のタイムチャートを利用して詳述する。図５に示す制御例２においては、割り込み処理（＃１１）の後、図６における１回目の演算周期Ｔ１１に示すように、ＭＧ１電流制御（ＩＣ１）の演算が実行される（図５＃１３ａ）。続いて、ＭＧ２電流制御（ＩＣ２）の演算が実行される（図５＃１３ｂ）。制御例１とは異なり、図５及び図６に示すように、演算周期Ｔ１の実行回数の偶奇に拘わらず、ＭＧ１電流制御（ＩＣ１、＃１３ａ）及びＭＧ２電流制御（ＩＣ２、＃１３ｂ）の演算が実行される。つまり、図６における全ての演算周期Ｔ１（Ｔ１１〜Ｔ２０）において、ＭＧ１電流制御及びＭＧ２電流制御のタスクが実行される。本例では、ＭＧ１電流制御の後、ＭＧ２電流制御が実行される場合を例示しているが、当然、逆の順序であってもよい。
【００６８】
次に、演算周期Ｔ１の実行回数が奇数回目であるか偶数回目であるかがタスク管理部１によって判定される（＃１２）。演算周期Ｔ１の実行回数が奇数回目であった場合には、図６における１回目の演算周期Ｔ１１に示すように、ＭＧ１電圧制御（ＶＣ１）の演算が実行される（図５＃１４ａ）。一方、演算周期Ｔ１の実行回数が偶数回目であった場合には、図６における２回目の演算周期Ｔ１２に示すように、ＭＧ２電圧制御（ＶＣ２）の演算が実行される（図５＃１４ｂ）。当然ながら、偶奇において何れのモータＭに関する制御を実施するかについては適宜設定可能である。
【００６９】
電流制御及び電圧制御が実行されると、図５に示すように、昇圧制御の演算が完了しているか否かがタスク管理部１によって判定される（＃１５）。昇圧制御が未完了であると判定されると、図６の演算周期Ｔ１１に示すように、演算周期Ｔ１の残りの時間を使って昇圧制御（ＣＣ）の演算が実行される（図５＃１６）。昇圧制御の演算の実行中に、演算周期Ｔ１が経過すると、ＣＰＵコア１１の割り込みコントローラが割り込み命令を発し、演算を中断させ、再度、工程＃１１からの処理が実行される。中断される演算の途中結果は、ワークメモリ１４やＣＰＵコア１１内のレジスタなどに一時記憶される。
【００７０】
図６に示すように、この後の演算周期Ｔ１２、Ｔ１３、Ｔ１４の工程＃１５においても昇圧制御が未完了であると判定されるので、第１演算周期Ｔ１の残りの時間を使って昇圧制御の続きが実行される。演算周期Ｔ１４の間に昇圧制御が完了すると、図５に示すように、トルク制御の演算が完了しているか否かがタスク管理部１によって判定される（＃１７）。トルク制御が未完了であると判定されると、図６の演算周期Ｔ１４に示すように、演算周期Ｔ１４の残りの時間を使ってトルク制御（ＴＣ）の演算が実行される（図５＃１８）。
【００７１】
昇圧制御と同様に、トルク制御の演算の実行中に、演算周期Ｔ１が経過すると、ＣＰＵコア１１の割り込みコントローラが割り込み命令を発し、演算を中断させ、再度、工程＃１１からの処理が実行される。中断される演算の途中結果は、ワークメモリ１４やＣＰＵコア１１内のレジスタなどに一時記憶される。中断されたトルク制御の演算は、昇圧制御と同様に、次の演算周期Ｔ１５の工程＃１７においても未完了と判定されるので、図６に示すように、演算周期Ｔ１５の残りの時間を使ってトルク制御の続きが実行される。本例においては、演算周期Ｔ１５においてもトルク制御の演算が完了しない。そして、トルク制御演算の続きは、以下の理由により、演算周期Ｔ１９において実行される。
【００７２】
表２を参照すれば、昇圧制御の結果は、演算周期Ｔ１の５回に１回得られれば良い。つまり、昇圧制御の結果は、第１演算周期Ｔ１の５倍の第３演算周期Ｔ３において１回得られればよい。図６に示す演算周期Ｔ１１〜Ｔ１５が、１つの第３演算周期Ｔ３（Ｔ３１）に相当するので、演算周期Ｔ１６からは、次の第３演算周期Ｔ３（Ｔ３２）である。従って、演算周期Ｔ１６においては、図５に示す工程＃１５で「昇圧制御演算が未完了である」と判定される。上述したように、この後の演算周期Ｔ１７、Ｔ１８、Ｔ１９の工程＃１５においても昇圧制御が未完了であると判定されるので、第１演算周期Ｔ１の残りの時間を使って昇圧制御の続きが実行される。
【００７３】
演算周期Ｔ１９において昇圧制御が完了すると、トルク制御の演算が完了しているか否かがタスク管理部１によって判定され（＃１７）、トルク制御が未完了であると判定される。そして、図６の演算周期Ｔ１９に示すように、演算周期Ｔ１９の残りの時間を使ってトルク制御の演算が実行される（＃１８）。つまり、演算周期Ｔ１５において中断されたトルク制御演算は、演算周期Ｔ１９において再開される。図６に示すように、トルク制御演算は、演算周期Ｔ２０において完了する。制御例１と同様に、全ての演算が完了すると、工程＃１１〜＃１８の一連の処理が終了し（図５＃１９）、ＣＰＵ５１は待ち状態となる。
【００７４】
以上説明したように、制御例２においては、第１演算周期Ｔ１ごとに１回、電流制御の演算が完了され、電圧指令ｖｄ，ｖｑの結果が得られる。また、第１演算周期Ｔ１の２回分である第２演算周期Ｔ２ごとに１回、電圧制御の演算が完了され、インバータ５７のＩＧＢＴのゲート駆動信号ｐｕ，ｎｕ，ｐｖ，ｎｖ，ｐｗ，ｎｗの結果が得られる。また、第１演算周期Ｔ１の５回分である第３演算周期Ｔ３ごとに１回、昇圧制御の演算が完了され、コンバータ５６のＩＧＢＴのゲート駆動信号ｐｃ，ｎｃの結果が得られる。また、第１演算周期Ｔ１の１０回分である第４演算周期Ｔ４ごとに１回、トルク制御の演算が完了され、トルク指令Ｔｒ１，Ｔｒ２の結果が得られる。
【００７５】
〔制御例３〕
以下、図７のフローチャート、図８のタイムチャートを利用して、モータ制御プログラム（回転電機制御プログラム）による制御例３について説明する。制御例１及び制御例２と同様な点については、適宜説明を省略する。制御例１及び制御例２と同様に、ＣＰＵ５１のタイマ１７により、制御周期（第１演算周期）Ｔ１が計測され、ＣＰＵコア１１の割り込みコントローラが第１演算周期Ｔ１ごとに割り込み命令を出力し、図７のフローチャートに示された一連の処理を実行する。つまり、割り込み機能ＩＮＴの実行により、一連の制御処理が開始される（＃２１）。
【００７６】
制御例３においては、トルク制御、電流制御、電圧制御、昇圧制御の実行が完了し、それぞれの結果を得たい最短の周期は、例えば、下記表３に示すものとなる。制御例１及び制御例２と同様に、各タスクの周期は、説明を容易にするための一例である。
【００７７】
【表３】
2010239809.tif 000005
【００７８】
表３に示すように、本制御例においては、電流制御及び電圧制御の結果が最も短い周期で必要とされる。そこで、電流制御機能Ｆ２及び電圧制御機能Ｆ３のタスクを実行の優先順位の高い優先タスクとする。但し、ＣＰＵ５１は、モータＭＧ１及びＭＧ２のそれぞれに対する電流制御及び電圧制御を第１演算周期Ｔ１ごとに交互に実行する。両モータに対する電流制御及び電圧制御の結果が共に得られる周期は、図８に示すように、割り込み処理により管理される第１演算周期Ｔ１の２倍の周期である第２演算周期Ｔ２となる。制御例３においては、第２演算周期Ｔ２が、優先順位の高い優先タスクの実行が完了する基準演算周期Ｔ１’に相当する。
【００７９】
以下、図７のフローチャート、図８のタイムチャートを利用して詳述する。図７に示す制御例３においては、割り込み処理（＃２１）の後、まず、演算周期Ｔ１の実行回数が奇数回目であるか偶数回目であるかがタスク管理部１によって判定される（＃２２）。演算周期Ｔ１の実行回数が奇数回目であった場合には、図８における１回目の演算周期Ｔ１１に示すように、ＭＧ１電流制御（ＩＣ１）の演算が実行され（図７＃２３ａ）、続いてＭＧ１電圧制御（ＶＣ１）の演算が実行される（図７＃２４ａ）。一方、演算周期Ｔ１の実行回数が偶数回目であった場合には、図８における２回目の演算周期Ｔ１２に示すように、ＭＧ２電流制御（ＩＣ２）の演算が実行され（図７＃２３ｂ）、続いてＭＧ２電圧制御（ＶＣ２）の演算が実行される（図７＃２４ｂ）。当然ながら、偶奇において何れのモータＭに関する制御を実施するかについては適宜設定可能である。
【００８０】
電流制御及び電圧制御が実行されると、図７に示すように、昇圧制御の演算が完了しているか否かがタスク管理部１によって判定される（＃２５）。昇圧制御が未完了であると判定されると、図８の演算周期Ｔ１１に示すように、演算周期Ｔ１の残りの時間を使って昇圧制御（ＣＣ）の演算が実行される（図７＃２６）。昇圧制御の演算の実行中に、演算周期Ｔ１が経過すると、ＣＰＵコア１１の割り込みコントローラが割り込み命令を発し、演算を中断させ、再度、工程＃２１からの処理が実行される。中断される演算の途中結果は、ワークメモリ１４やＣＰＵコア１１内のレジスタなどに一時記憶される。
【００８１】
図８に示すように、この後の演算周期Ｔ１２、Ｔ１３の工程＃１５においても昇圧制御が未完了であると判定されるので、第１演算周期Ｔ１の残りの時間を使って昇圧制御の続きが実行される。演算周期Ｔ１３の間に昇圧制御が完了すると、図７に示すように、トルク制御の演算が完了しているか否かがタスク管理部１によって判定される（＃２７）。トルク制御が未完了であると判定されると、図８の演算周期Ｔ１３に示すように、演算周期Ｔ１３の残りの時間を使ってトルク制御（ＴＣ）の演算が実行される（図７＃２８）。
【００８２】
昇圧制御と同様に、トルク制御の演算の実行中に、演算周期Ｔ１が経過すると、ＣＰＵコア１１の割り込みコントローラが割り込み命令を発し、演算を中断させ、再度、工程＃２１からの処理が実行される。中断されたトルク制御の演算は、昇圧制御と同様に、次の演算周期Ｔ１４の工程＃２７においても未完了と判定されるので、図８に示すように、演算周期Ｔ１４の残りの時間を使ってトルク制御の続きが実行され、完了する。
【００８３】
制御例１及び制御例２と同様に、全ての演算が完了すると、工程＃２１〜＃２８の一連の処理が終了する（図７＃２９）。図８の演算周期Ｔ１４に示すように、次の演算周期Ｔ１５が開始されるまで、ＣＰＵ５１は、待ち状態となる。図８の演算周期Ｔ１５においては、工程＃２５において昇圧制御が完了と判定され、工程＃２７においてトルク制御が完了と判定されるので、工程＃２９へ移行し、一連の処理が完了する。次の演算周期Ｔ１６が開始されるまで、ＣＰＵ５１は、待ち状態となる。演算周期Ｔ１６〜Ｔ２０に関しては、上記制御例１及び制御例２に鑑みて容易に理解可能であるので、説明を省略する。
【００８４】
制御例３においては、第２演算周期Ｔ２（基準演算周期Ｔ１’）ごとに１回、電流制御及び電圧制御の演算が完了され、電圧指令ｖｄ，ｖｑ、及びインバータ５７のＩＧＢＴのゲート駆動信号ｐｕ，ｎｕ，ｐｖ，ｎｖ，ｐｗ，ｎｗの結果が得られる。また、第２演算周期Ｔ２（基準演算周期Ｔ１’）の２．５回分である第３演算周期Ｔ３ごとに１回、昇圧制御の演算が完了され、コンバータ５６のＩＧＢＴのゲート駆動信号ｐｃ，ｎｃの結果が得られる。また、第２演算周期Ｔ２（基準演算周期Ｔ１’）の５回分である第４演算周期Ｔ４ごとに１回、トルク制御の演算が完了され、トルク指令Ｔｒ１，Ｔｒ２の結果が得られる。
【００８５】
以上説明したように、本発明によれば、複数の回転電機を、回転電機の総数よりも少ない演算処理ユニット（コンピュータ）を用いて良好に制御することが可能な回転電機制御装置を提供することが可能となる。また、回転電機の総数よりも少ない演算処理ユニット（コンピュータ）により実行される回転電機制御プログラムを提供することが可能となる。尚、上記実施形態においては、２つの回転電機を１つのマイクロコンピュータを用いて制御する例を用いて説明したが、回転電機及びマイクロコンピュータの数は、これらに限定されるものではない。３つ以上の回転電機を１つのマイクロコンピュータを用いて制御してもよい。当業者であれば、上記実施形態に鑑みて種々の改変が可能であろう。しかし、そのような改変された実施形態もまた、本発明に包含されるものである。
【産業上の利用可能性】
【００８６】
本発明は、内燃機関及び回転電機を駆動源とするハイブリッド自動車や、回転電機を駆動源とする電気自動車などに適用することができる。
【符号の説明】
【００８７】
１：タスク管理部
３，３ａ，３ｂ：電流制御部
６，６ａ，６ｂ：電圧制御部
１０：トルク制御部
２０：昇圧制御部
５１：マイクロコンピュータ
ｉｄ，ｉｑ：電流指令
ｖｄ，ｖｑ：電圧指令
ｖｕ，ｖｖ，ｖｗ：３相電圧指令
Ｉｕ，Ｉｖ，Ｉｗ：フィードバック電流
Ｆ１，Ｆ２，Ｆ３，Ｆ４，Ｆ５：タスク
Ｆ１：タスク管理機能
Ｆ２：電流制御機能
Ｆ３：電圧制御機能
Ｆ４：昇圧制御機能
Ｆ５：トルク制御機能
Ｍ，ＭＧ１，ＭＧ２：モータ、回転電機
Ｔ１，Ｔ１’：基準演算周期
Ｔ１：第１演算周期
Ｔ２：第２演算周期
Ｔ３：第３演算周期
Ｔ４：第４演算周期
Ｔｒ，Ｔｒ１，Ｔｒ２：トルク指令
θ：電気角（回転角度）
ω：角速度（回転速度）
【図１】
2010239809.tif 000006
【図２】
2010239809.tif 000007
【図３】
2010239809.tif 000008
【図４】
2010239809.tif 000009
【図５】
2010239809.tif 000010
【図６】
2010239809.tif 000011
【図７】
2010239809.tif 000012
【図８】
2010239809.tif 000013