(57)【要約】【課題】計算機資源を節約しつつ高速のリアルタイムシミュレーションが可能なインバータモデルの演算方法、インバータシミュレーション方法及びインバータシミュレーション装置を提供すること。【解決手段】交流モータ駆動用の多相インバータの各相の制御信号であるＰＷＭ制御信号ｐｗｍと、多相インバータへの入力直流電圧Ｅｄと、多相インバータの各相の出力交流電圧Ｕとの間の数量関係を表す方程式により定義されるインバータモデルとして、それぞれ行列形式で定義された各相の出力交流電圧Ｕと、ＰＷＭ制御信号ｐｗｍの行列とを変数とする行列方程式を採用し、この行列方程式に各相のＰＷＭ制御信号ｐｗｍの値と入力直流電圧Ｅｄの値とを代入することにより各相の出力交流電圧Ｕの行列項を演算する。このようにすれば、高速のインバータモデルを簡単な演算により実現することができる。【選択図】なし【特許請求の範囲】
【請求項１】
交流モータ駆動用の多相インバータの各相の制御信号であるＰＷＭ制御信号ｐｗｍと、前記多相インバータへの入力直流電圧Ｅｄと、前記多相インバータの各相の出力交流電圧Ｕとの間の数量関係を表す方程式により定義されるインバータモデルの演算方法であって、
前記方程式として、それぞれ行列形式の各相の出力交流電圧Ｕと各相のＰＷＭ制御信号ｐｗｍとを用いて定義される行列式を採用し、
前記方程式に前記各相のＰＷＭ制御信号ｐｗｍの値と入力直流電圧Ｅｄの値とを代入することにより各相の出力交流電圧Ｕを演算することを特徴とするインバータモデルの演算方法。
【請求項２】
請求項１記載のインバータモデルの演算方法において、
前記方程式として下記の数５６で示される行列式を採用し、
【数５６】
2006149034.tif 000059
前記行列式に前記ＰＷＭ制御信号ｐｗｍの値と入力直流電圧Ｅｄの値とを代入することにより各相の出力交流電圧Ｕを演算することを特徴とするインバータモデルの演算方法。
【請求項３】
請求項２記載のインバータモデルの演算方法を用いて前記インバータモデルの状態を演算する演算ステップを定期的に実行することにより、前記インバータモデルにより定義される仮想の多相インバータの状態をリアルタイムにシミュレーションすることを特徴とするインバータシミュレーション方法。
【請求項４】
請求項１記載のインバータモデルの演算方法を用いて前記インバータモデルモデルの状態を演算する演算ステップを定期的に実行することにより、前記モータモデルにより定義される仮想モータの状態をリアルタイムにシミュレーションする演算装置を有することを特徴とするインバータシミュレーション装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、たとえば交流モータを用いた制御システムのシミュレーションに有効なインバータモデルの演算方法、インバータシミュレーション方法及びインバータシミュレーション装置の改良に関する。
【背景技術】
【０００２】
交流モータを用いたモータ装置の制御アルゴリズムの開発、検証に際して、仮想のモータとしてのモータモデルやそれを駆動する仮想のインバータとしてのインバータモデルを用いてモータやインバータの挙動をリアルタイムにシミュレーションすることが行われている。このリアルタイムシミュレーションに用いるモータモデルやインバータモデルはたとえば下記の特許文献１に記載されるような方程式を用いて定義される。方程式には、たとえば電圧と電流との関係を、静止座標系を用いて定義する方式と回転座標系（いわゆるｄｑ軸）を用いて定義する方式とがある。
【特許文献１】特開２００４−２３６３９２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、静止座標系を用いた方程式により交流モータやインバータのシミュレーションを行う場合、演算が非常に複雑面倒となるため短いステップ期間で高精度のリアルタイムシミュレーションを行うのが困難であった。
【０００４】
このため、従来では、静止座標系の演算に比べて演算処理が相対的に簡単な回転座標系を用いた方程式により交流モータやインバータのシミュレーションを行うのが通常であるが、回転座標系を用いると座標軸変換処理が必要となるため、演算精度が低下すると言う問題があった。また、回転座標系を用いた方程式の演算処理でも座標軸変換処理の必要性のため、限られた計算資源でモータシミュレーションを高速に実行することは容易ではなかった。
【０００５】
本発明は上記問題点に鑑みなされたものであり、計算機資源を節約しつつ高速かつ高精度のリアルタイムシミュレーションが可能なインバータモデルの演算方法、インバータシミュレーション方法及びインバータシミュレーション装置を提供することをその目的としている。
【０００６】
なお、本発明のシミュレーション方法は実質的には計算資源の演算処理技術すなわちコンピュータプログラムの形態で表現され、このプログラムを通常の計算資源にロードするのみで本発明の方法は実現される。したがって、本発明方法を実行するプログラムは本発明方法そのものをきわめて容易に実行可能な状態にて含むため、このようなプログラムの流通は本発明方法の実施又はそれを助長する行為に該当するものとして、本発明の方法に含まれることに留意されたい。
【課題を解決するための手段】
【０００７】
本発明のインバータモデルの演算方法は、交流モータ駆動用の多相インバータの各相の制御信号であるＰＷＭ制御信号ｐｗｍと、前記多相インバータへの入力直流電圧Ｅｄと、前記多相インバータの各相の出力交流電圧Ｕとの間の数量関係を表す方程式により定義されるインバータモデルの演算方法であって、前記方程式として、それぞれ行列形式の各相の出力交流電圧Ｕと各相のＰＷＭ制御信号ｐｗｍとを用いて定義される行列式を採用し、前記方程式に前記各相のＰＷＭ制御信号ｐｗｍの値と入力直流電圧Ｅｄの値とを代入することにより各相の出力交流電圧Ｕを演算することを特徴としている。
【０００８】
すなわち、本発明のインバータモデルは、各相のＰＷＭ制御信号ｐｗｍにより各項が定義される行列項と、各相の出力交流電圧Ｕにより各項が定義される行列項とを含む行列関数により静止座標系にてインバータモデルを定義するため、簡単な行列演算により各相の出力交流電圧Ｕを演算することができ、高速高精度のインバータモデルを簡単な演算により実現することができる。
【０００９】
好適な態様において、前記方程式として下記の数５６で示される行列式を採用し、
【００１０】
【数５６】
2006149034.tif 000002
【００１１】
前記行列式に前記ＰＷＭ制御信号ｐｗｍの値と入力直流電圧Ｅｄの値とを代入することにより各相の出力交流電圧Ｕを演算するので、簡単な行列演算により各相の出力交流電圧Ｕを演算することができ、高速高精度のインバータモデルを簡単な演算により実現することができる。
【００１２】
本発明のインバータシミュレーション方法は、上記インバータモデルの演算方法を用いて前記インバータモデルの状態を演算する演算ステップを定期的に実行することにより、前記インバータモデルにより定義される仮想の多相インバータの状態をリアルタイムにシミュレーションするので、インバータモデルを高速高精度に演算することができる。
【００１３】
本発明のインバータシミュレーション装置は、請求項１記載のインバータモデルの演算方法を用いて前記インバータモデルモデルの状態を演算する演算ステップを定期的に実行することにより、前記モータモデルにより定義される仮想モータの状態をリアルタイムにシミュレーションする演算装置を有するので、インバータモデルを高速高精度に演算することができる。
【発明を実施するための最良の形態】
【００１４】
本発明のモータモデルの演算方法の好適な実施態様を以下に説明する。ただし、本発明は下記の実施例に限定されるものではなく、本発明の技術思想を公知技術又はそれと同等の技術を組み合わせて実現してもよいことは当然である。以下の説明では、３相ＰＭ（磁石界磁）型交流モータを例として用いる。ただし、磁石により界磁束を発生することは、界磁コイルに界磁電流を流して界磁束を発生することと本質的に同等であるため、界磁コイル型交流モータにも応用できることは当然である。更に、回転子が発生する界磁束を実質的に固定子側から回転子側への交流電流供給によりなす誘導モータやリラクタンス（ヒステリシス）モータなどにおいても、下記の実施例と同様に界磁束を規定することにより下記のモータモデルを採用することができる。
【００１５】
（第１モータモデル）
第１のモータモデル（電流と電圧との関係を示す方程式）を以下に説明する。３相交流モータモデルの各相の出力交流電圧Ｕと、各相電機子電流ｉと、各相電機子巻線と鎖交する磁束ψとの関係は、数１〜数４により定義される。
【００１６】
【数１】
2006149034.tif 000003
【００１７】
【数２】
2006149034.tif 000004
【００１８】
【数３】
2006149034.tif 000005
【００１９】
【数４】
2006149034.tif 000006
【００２０】
ψは３相電機子巻線鎖交磁束、Ｒｓは電機子巻線抵抗、Ｅは３×３の単位行列であり数５により示される。
【００２１】
【数５】
2006149034.tif 000007
【００２２】
ＵｕはＵ相電機子電圧、ＵｖはＶ相電機子電圧、ＵｗはＷ相電機子電圧、ＩｕはＵ相電機子電流、ＩｖはＶ相電機子電流、ＩｗはＷ相電機子電流、ψｕはψのＵ相成分、ψｖはψのＶ相成分、ψｗはψのＷ相成分である。
【００２３】
３相ＰＭ型同期モータモデルの場合、３相電機子巻線鎖交磁束ψは、３相電機子巻線電流ｉにより形成される３相電機子巻線鎖交磁束ψｓと、永久磁石により形成される３相電機子巻線鎖交磁束ψｒとを和であるため、数１を数６〜数７に変換することができる。以下、説明を簡単とするために、３相電機子巻線鎖交磁束ψｓを電流磁束と呼び、３相電機子巻線鎖交磁束ψｒを界磁束と呼ぶ場合もあるものとする。したがって、数５は数６〜数７の形式に変換することができる。
【００２４】
【数６】
2006149034.tif 000008
【００２５】
【数７】
2006149034.tif 000009
【００２６】
ただし、ψｓｕはψｓのＵ相成分、ψｓｖはψｓのＶ相成分、ψｓｗはψｓのＷ相成分、ψｒｕはψｒのＵ相成分、ψｒｖはψｒのＶ相成分、ψｒｗはψｒのＷ相成分である。ψｒｕ、ψｒｖ、ψｒｗは次の数８〜数１０により定義される。
【００２７】
【数８】
2006149034.tif 000010
【００２８】
【数９】
2006149034.tif 000011
【００２９】
【数１０】
2006149034.tif 000012
【００３０】
ψｍは永久磁石による電機子巻線鎖交磁束の最大値、θは回転子回転角である。３相電機子巻線電流ｉにより形成される３相電機子巻線鎖交磁束ψｓは数１１により定義される。
【００３１】
【数１１】
2006149034.tif 000013
【００３２】
Ｌ（θ）は、電流磁束ψｓと各相電機子電流ｉとの関係を示す行列関数、すなわち３相電機子巻線のインダクタンス行列である。インダクタンス行列Ｌ（θ）は、円筒形ＰＭモータのインダクタンス行列は定数行列となるが、突極型又は逆突極型ＰＭモータの場合、数１２により定義される回転子回転角θの関数となる。以下の実施例では、演算処理が複雑な突極型又は逆突極型ＰＭモータの場合を説明する。
【００３３】
【数１２】
2006149034.tif 000014
【００３４】
ただし、Ll は各相の電機子巻線のリーケージインダクタンス成分、Ｌａは各相の電機子巻線の直流インダクタンス成分、Ｌａｓは各相の電機子巻線の交流インダクタンス成分である。次に、数１１を数６に代入することにより、数６を下記の数１３に変換することができる。
【００３５】
【数１３】
2006149034.tif 000015
【００３６】
したがって、数１３は、インダクタンス行列Ｌ（θ）を用いたＰＭモータのモータモデルに相当する方程式となる。この数１３で示されるモータモデルを用いると、３相電機子電流ｉをｄｑ変換することなく直接導出することが可能となる。
【００３７】
すなわち、数１３により示されるモータモデルを用いると、電機子巻線抵抗Ｒｓ、インダクタンス行列Ｌ（θ）、永久磁石により形成される３相電機子巻線鎖交磁束ψｒ、インダクタンス行列Ｌ（θ）の逆行列を演算することにより、３相電機子電流ｉと３相電機子電圧Ｕとの関係を定義することができる。したがって、数１３の方程式をモータモデルとして用いることにより、モータモデルの演算を行うことができる。このモータモデルは、行列関数であるインダクタンス行列Ｌ（θ）と、このインダクタンス行列Ｌ（θ）の逆行列とを用いることにより、比較的簡単にモータモデルを記述するため、コンピュータ処理に適している。なお、インダクタンス行列Ｌ（θ）の逆行列は後述する行列λ（θ）を計算することに置換することにより、更に演算処理時間の短縮を実現することができる。
【００３８】
（第２モータモデル）
第２のモータモデルを以下に説明する。このモータモデルは、後述するように、上記した数１３を用いず、その代わりに、電流磁束ψｓを用いて各相の出力交流電圧Ｕと各相電機子電流ｉとの関係を記述する方程式により定義される。たとえばこのモータモデルの演算では、あらかじめ演算した３相電機子巻線鎖交磁束ψｓを用いて３相電流ｉを求めることができる。数１１を変形すると、数１４が得られる。
【００３９】
【数１４】
2006149034.tif 000016
【００４０】
数１４を数６に代入すると、数１５、数１６が得られる。数１６は数１４に等しい。
【００４１】
【数１５】
2006149034.tif 000017
【００４２】
【数１６】
2006149034.tif 000018
【００４３】
数１５を用いると、数１３すなわち第１モータモデルで必要であったｄＬ（θ）／ｄｔを導出するための複雑な演算を省略できることがわかる。つまり、あらかじめ演算した３相電機子巻線鎖交磁束ψｓを用いることによりインダクタンス行列Ｌ（θ）の微分処理を省略することができる。
【００４４】
すなわち、数１５、数１６に示すこのモータモデルでは、電機子抵抗Ｒｓ、インダクタンス行列Ｌ（θ）の逆行列、３相電機子電圧（各相電機子電圧とも言う）Ｕ、磁石磁束ψｒをそれぞれ演算して数１５に代入することにより電流磁束ψｓを演算し、更に、インダクタンス行列Ｌ（θ）の逆行列を演算し、電流磁束ψｓと逆行列とを数１６に代入することにより３相電機子巻線電流（各相電機子電流とも言う）ｉを演算することができるわけである。したがって、この第２モータモデルの演算は、先に説明した第１モータモデルの演算に比べて大幅に演算ステップを省略することができるため、シミュレーションにおける各演算ステップの必要演算時間を短縮することができ、その結果として少ない計算資源により高速高精度のモータモデルのリアルタイムシミュレーションを実行できることができ、実用上大きな効果を発生することができる。更に、このモータモデル演算においても、インダクタンス行列Ｌ（θ）の逆行列の演算を行列λ（θ）の演算に置換することにより、更なる演算時間の短縮を実現することができる。
【００４５】
（モータトルク計算式）
なお、モータモデル演算においては、モータトルクの演算が望まれるが、モータトルクは電流の関数値であり、たとえば数１７をシミュレーションの各演算ステップごとに演算することにより算出することができる。したがって、モータトルクの演算が必要なモータモデルでは、下記の数１７をモータモデルに追加すればよい。同様に、消費電力、無効電力その他の電気量や物理量もそれらを定義する方程式をモータモデルに追加することにより演算することができる。
【００４６】
【数１７】
2006149034.tif 000019
【００４７】
なお、ｐは極数である。
【００４８】
（インダクタンス行列Ｌ（θ）の逆行列の演算方法）
上記第１、第２モータモデルの演算では、インダクタンス行列Ｌ（θ）の逆行列の演算が必要となる。インダクタンス行列Ｌ（θ）の逆行列は、数１８の記号により表示される。
【００４９】
【数１８】
2006149034.tif 000020
【００５０】
インダクタンス行列Ｌ（θ）の逆行列、数１２から演算すること場合、演算処理が複雑となり、加減乗算にくらべて処理時間が長い除算も必要となるため、演算必要時間の増大によりシミュレーションの高速化高精度化の生涯となる。よく知られているように、シミュレーションの演算ステップの時間間隔の延長は演算精度の低下を招く。
【００５１】
そこでこの実施例では、次の演算方法によりインダクタンス行列Ｌ（θ）の逆行列を演算する。数１２で示されるインダクタンス行列Ｌ（θ）を数１９〜数２２に示される各行列関数Ｌ１、Ｌ２、Ｌ３の算術和の形式に書き直す。行列関数Ｌ１は数２０により、行列関数Ｌ２は数２１により、行列関数Ｌ１は数２２により定義することができる。
【００５２】
【数１９】
2006149034.tif 000021
【００５３】
【数２０】
2006149034.tif 000022
【００５４】
【数２１】
2006149034.tif 000023
【００５５】
【数２２】
2006149034.tif 000024
【００５６】
次に、行列関数Ｌｃ（θ）を新設し、この行列関数Ｌｃ（θ）を数２３〜数２５により定義する。
【００５７】
【数２３】
2006149034.tif 000025
【００５８】
【数２４】
2006149034.tif 000026
【００５９】
【数２５】
2006149034.tif 000027
【００６０】
数２３の各項を計算すると、数２６〜数２８が得られる。
【００６１】
【数２６】
2006149034.tif 000028
【００６２】
【数２７】
2006149034.tif 000029
【００６３】
【数２８】
2006149034.tif 000030
【００６４】
数２６〜数２８によりそれぞれ定義される各項の和に等しい行列関数Ｌｃ（θ）を整理すると、この行列関数Ｌｃ（θ）は数２９となる。
【００６５】
【数２９】
2006149034.tif 000031
【００６６】
ただし、Ｌｄは電機子巻線のｄ軸インダクタンスであり、数３０で定義される。Ｌｑは電機子巻線のｑ軸インダクタンスであり、数３１で定義される。
【００６７】
【数３０】
2006149034.tif 000032
【００６８】
【数３１】
2006149034.tif 000033
【００６９】
数２９に示される行列関数Ｌｃ（θ）の逆行列は次の数３２の形となる。
【００７０】
【数３２】
2006149034.tif 000034
【００７１】
ただし、λｄ＝１／Ｌｄ、λｑ＝１／Ｌｑ、λｌ＝１／Ｌｌである。すなわち、行列関数Ｌｃ（θ）の０でない各項は、電機子巻線のｄ軸インダクタンスＬｄの逆数λｄ、電機子巻線のｑ軸インダクタンスＬｑの逆数λｑ、リーケージインダクタンスＬｌの逆数λｌとなる。
【００７２】
次に、数２３からインダクタンス行列Ｌ（θ）の逆行列を求めると、次の数３３となる。
【００７３】
【数３３】
2006149034.tif 000035
【００７４】
ここで、変換行列Ｃは絶対変換行列であるので、次の数３４、数３５が成立する。
【００７５】
【数３４】
2006149034.tif 000036
【００７６】
【数３５】
2006149034.tif 000037
【００７７】
従って、インダクタンス行列Ｌ（θ）の逆行列は対称行列であることがわかる。次に、３つの変数λ（θ）、λａｓ、λａを数３６〜数３８により新たに定義する。数３６は、インダクタンス行列Ｌ（θ）の逆行列に等しい行列λ（θ）である。
【００７８】
【数３６】
2006149034.tif 000038
【００７９】
【数３７】
2006149034.tif 000039
【００８０】
【数３８】
2006149034.tif 000040
【００８１】
数３６〜数３８により定義される変数λ（θ）、λａｓ、λａを用いて数３５を整理すると、数３６の行列関数λ（θ）の各項が次の数３９〜数４７が得られる。
【００８２】
【数３９】
2006149034.tif 000041
【００８３】
【数４０】
2006149034.tif 000042
【００８４】
【数４１】
2006149034.tif 000043
【００８５】
【数４２】
2006149034.tif 000044
【００８６】
【数４３】
2006149034.tif 000045
【００８７】
【数４４】
2006149034.tif 000046
【００８８】
【数４５】
2006149034.tif 000047
【００８９】
【数４６】
2006149034.tif 000048
【００９０】
【数４７】
2006149034.tif 000049
【００９１】
結局、数３７〜数３８で算出したλａｓ、λａを用いて数３９〜数４７を演算すること計算された行列関数λ（θ）を演算するだけで、インダクタンス行列Ｌ（θ）の逆行列を演算することができることがわかる。つまり、上記した演算手順に従えば、このインダクタンス行列Ｌ（θ）の逆行列の演算方式は、インダクタンス行列Ｌ（θ）の逆行列を行列λ（θ）の演算に置換して行うことができるため、インダクタンス行列Ｌ（θ）の逆行列を従来より格段に簡単に演算することが可能となったわけである。
【００９２】
実際に同一装置にて行った比較例において、この実施例によるインダクタンス行列Ｌ（θ）の逆行列の演算に必要な時間は、驚くべきことに従来のそれの約１／７に短縮できることが実証された。
【００９３】
（ｄｑ回転座標系演算部）
次にこの実施例でオプション的に用いる座標系変換を行うためのｄｑ回転座標系演算部を実質的に構成する方程式について以下に説明する。ただし、以下において、ｉは静止座標系表示の三相電機子電流、Ｕは静止座標系表示の三相電機子電圧、Ｉｄはｄ軸電機子電流、Ｉｑはｑ軸電機子電流、Ｉｏは零相電流、Ｕｄはｄ軸電機子電圧、Ｕｑはｑ軸電機子電圧、Ｕｏは零相電機子電圧である。数５０はｄ軸基準の電機子電流位相角を示し、数５１はｄ軸基準の電機子電圧位相角を示す。
【００９４】
【数４８】
2006149034.tif 000050
【００９５】
【数４９】
2006149034.tif 000051
【００９６】
【数５０】
2006149034.tif 000052
【００９７】
【数５１】
2006149034.tif 000053
【００９８】
【数５２】
2006149034.tif 000054
【００９９】
【数５３】
2006149034.tif 000055
【０１００】
つまり、この実施例ではもともと静止座標系上の三相電機子電流ｉ及び三相電機子電圧Ｕが演算済みであるので回転座標系のモータモデルを演算することなく単なる座標系演算処理のみでｄｑ回転座標系上の現在のモータ状態を表示することができる。
【０１０１】
（３相インバータモデル）
次に、３相インバータモデルとして使用可能な回路方程式について以下に説明する。この３相インバータの回路図を図１に示す。図１の３相インバータの構成とそのＰＷＭ動作自体は周知であるため説明は省略する。Ｔ１〜Ｔ６は３相インバータを構成するスイッチング素子であり、ＩＧＢＴに限定されるものではない。ＰＷＭｕはＵ相上アームのスイッチング素子Ｔ１に印加されるＰＷＭ制御信号（ＰＷＭ入力信号とも言う）、ＰＷＭｖはＶ相上アームのスイッチング素子Ｔ２に印加されるＰＷＭ制御信号、ＰＷＭｗはＷ相上アームのスイッチング素子Ｔ３に印加されるＰＷＭ制御信号である。デッドタイムを無視すると、同相の上アームのスイッチング素子に印加されるＰＷＭ制御信号と逆のパルス信号であるＰＷＭ制御信号が各相のハーフブリッジの下アームのスイッチング素子に印加される。線間電圧Ｕｕｖ、Ｕｖｗ、Ｕｗｕと相電圧Ｕｕ、Ｕｖ、Ｕｗとは数５４の関係をもち、各相のＰＷＭ制御信号と線間電圧とは数５５の関係をもつ。
【０１０２】
【数５４】
2006149034.tif 000056
【０１０３】
【数５５】
2006149034.tif 000057
【０１０４】
数５４、５５から次の数５６が得られる。Ｅｄは３相インバータに給電するバッテリ電圧である。したがって、数５６は３相インバータクモデルであり、この回路方程式を用いて３相インバータのリアルタイムシミュレーシヨンが可能となる。
【０１０５】
【数５６】
2006149034.tif 000058
【０１０６】
この３相インバータのモデルは、ＰＷＭ制御信号と各相電機子電圧Ｕとの関係を行列関数を用いて定義するため、行列演算プロセッサを用いるなどして演算を高速処理することができるうえ、記述した静止座標系モータモデルの入力パラメータとしての各相電機子電圧Ｕを高速に出力することができるため、第１モータモデルや第２モータモデルのリアルタイムシミュレーションに用いると非常に好都合となる。
【０１０７】
（ＰＷＭ制御信号の補正）
上記した３相インバータモデルと３相交流モータモデルとを用いて交流モータ制御アルゴリズムのシミュレーションの各ステップを一定時間ごとに演算する場合を図２のタイムチャートを参照して考える。
【０１０８】
図２において、ｔｎはステップｎのデータ読み込み時点、ｔｎ＋１はステップｎ＋のデータ読み込み時点、ｔｎ＋２はステップｎ＋２のデータ読み込み時点、ｔｎ＋３はステップｎ＋３のデータ読み込み時点とし、ＰＷＭ制御信号が時間的に隣接する二つの時点ｔ１と時点ｔｎ＋１との間の時点ｔｘにてステップ変化したとする。しかし、このＰＷＭ制御信号のステップ変化は、時点ｎ＋１にならないと演算のために読み込まれることがないため、ＰＷＭ制御信号が変化した時点ｔｘから直後の時点ｔｎ＋１までの間、このＰＷＭ制御信号のステップ変化はシミュレーションに反映されず、その結果としてシミュレーション精度の低下が生じる。ＰＷＭ制御信号が時点ｔｎ＋２と時点ｔｎ＋３との間の時点ｔｙにてステップ変化した場合も同様の問題が生じる。
【０１０９】
そこでこの実施例では、今回のデータ読み込み時点ｔｍとその直前の前回のデータ読み込み時点ｔｍ−１の間でＰＷＭ制御信号がステップ変化した場合、今回のＰＷＭ制御信号の値として平均値を用い、今回のデータ読み込み時点ｔｍとその直前の前回のデータ読み込み時点ｔｍ−１の間でＰＷＭ制御信号が一致する場合には現在のＰＷＭ制御信号を用いればよい。なお、この平均値は、ＰＷＭ制御信号が０から１に変化する場合には（ＴｓーＴｃ）／Ｔｓとなり、ＰＷＭ制御信号が１から０に変化する場合にはＴｃ／Ｔｓとなる。Ｔｓはステップ間隔、Ｔｃは前回のデータ読み込み時点ｔｍ−１からカウントしたＰＷＭ制御信号がステップ変化した時点ｔｃまでの時間である。このＰＷＭ制御信号の補正は図３に示すフローチャートを処理することにより行うことができる。
【０１１０】
更に考えると、ステップ間隔Ｔｓが一定であれば、このＰＷＭ制御信号の平均値は、前回のデータ読み込み時点ｔｍ−１からカウントしたＰＷＭ制御信号がステップ変化した時点ｔｃまでの時間Ｔｃがわかれば直ちに算出することができ、しかも、ＰＷＭ制御信号がステップ変化したかどうかもＰＷＭ制御信号がステップ変化した時点ｔｃした時点で判別することができる。そこで、シミュレーションのためのステップ処理を行うメインルーチンとは独立に、それよりも短いステップ間隔でＰＷＭ制御信号のステップ変化の判別と上記時間Ｔｃをカウントする処理とを行えば、今回の次回のデータ読み込み時点に達したら直ちにこのＰＷＭ制御信号の平均値をＰＷＭ制御信号として読み込むことができ、ステップ処理の時間延長を防止することができる。
【０１１１】
（ＨＩＬＳシステムの構築）
上記説明したモータモデル及びインバーモデルを用いるモータ制御システムのＨＩＬＳ（ハードウエアインザループシミュレーション）システムを図４に図示する。１００はホストＰＣ、１０１は１乃至複数のコンピュータからなるターゲットＰＣｓである。１０２はモータ制御用のモータコントローラ（実機）であるが、それと同等のシミュレーション動作を行う仮想モータコントローラプログラムを実装するコンピュータとしてもよい。
【０１１２】
ターゲットＰＣｓ１０１は、１乃至複数の３相ＰＭ型交流モータと、このモータを駆動する３相インバータとに相当する上記したモータモデルやインバータモデルをなすプログラムを格納しており、これらプログラムを演算することによりモデルとする交流モータやインバータの状態をシミュレーションする。
【０１１３】
モータコントローラ１０２は、所定のモータ制御アルゴリズムを実行するためのモータ制御プログラムを格納するコンピュータ装置、又はそれと同等の機能をもつハードウエア装置により構成されている。モータコントローラ１０２は、ターゲットＰＣｓ１０１からモータ状態やインバータ状態を所定周期で読み込み、それに基づいて上記モータ制御アルゴリズムを実行し、その結果得られたモータやインバータへの指令をターゲットＰＣｓ１０１に所定周期で送信する。これにより、ターゲットＰＣｓ１０１により模擬されるこれら３組の交流モータ及びインバータはモータコントローラ１０２のモータ制御アルゴリズムに従って制御される。
【０１１４】
ホストＰＣ１００は、上記したモータモデル及びインバータモデルやＰＷＭ制御信号生成アリゴリズムなどに種々の定数を導入するなどしてそれらの初期タイプを構築するのに用いられる。ホストＰＣ１００上に構築された上記初期モデルは、その後、ターゲットＰＣｓ１０１にダウンロードされる。また、ホストＰＣ１００は、ターゲットＰＣｓ１０１の運転中において、ターゲットＰＣｓ１０１に種々の指令を出力したり、ターゲットＰＣｓ１０１で座標軸変換されて得たｄｑ回転座標系上のモータモデルの状態を受信してそれをモニターに表示したり、ターゲットＰＣｓ１０１上の初期モデルの一部を変更したりするデータ送信にも用いられる。更に説明すると、ホストＰＣ１００上に構築されてターゲットＰＣｓ１０１にダウンロードされる上記モデルは、ＨＩＬＳシステムと通常呼ばれている。このようなＨＩＬＳシステムの構築はたとえばＭａｔｈＷｏｒｋｓ社のＭａｔｌａｂｓ／Ｓｉｍｕｌｉｎｋを用いて行うことができる。
【０１１５】
この実施例では、ターゲットＰＣｓ１０１にて実行されるプログラムにより構成されてＨＩＬＳシステムの主要部を構成するアリゴリズムは、モデル演算部とシステム設定部とに区分されており、好適にはターゲットＰＣｓ１０１にダウンロードされた後、演算ステップ処理に必要な時間を短縮するためにターゲットＰＣｓ１０１を構成する複数のコンピュータにより別々に実行される。
【０１１６】
モデル演算部は、ＰＷＭ制御信号生成アルゴリズムを含み、このＰＷＭ制御信号生成アルゴリズムに基づいてＰＷＭ制御信号を計算する。モデル演算部は、インバータモデルをなすアルゴリズムを含み、このインバータモデルにＰＷＭ制御信号と電圧指令値とを入力してモータに出力すべき３相入力電圧を演算する。モデル演算部は、上述した第１モータモデル又は第２モータモデルのどちらかをなすアルゴリズムを含み、このモータモデルに３相入力電圧を入力して３相電機子電流、回転子角、モータトルクを演算し、出力する。モデル演算部は、上述したｄｑ座標系演算部（座標系変換プログラム）をなすアルゴリズムを含み、このｄｑ回転座標系演算部を定期的にあるいは外部よりの指令を受信した場合にのみ運転してｄｑ座標系上の必要なデータを演算する。
【０１１７】
システム設定部は、上記モータモデルやインバータモデル以外の説明省略の各部温度や電圧などのモデル（アルゴリズム）をなすプログラムを有している。たとえば電流履歴に応じて電機子温度を演算し、電機子温度に基づいて電機子抵抗Ｒｓを演算するプログラムを有する。このプログラムはモータモデルの演算すななわち仮想モータの運転と並行して定期的に演算され、得た電機子抵抗Ｒｓの値をモータモデル中の電機子抵抗Ｒｓに定期的に書き込む。これにより、モータモルの定数値としてのモータ特性値をモータモデル演算中に適切に変更することができる。この変更は外部から行ってもよい。
【０１１８】
このようにしてホストＰＣ１００上にＳｉｍｕｌｉｎｋモデルが構築される。次に、このＳｉｍｕｌｉｎｋモデルをホストＰＣ１００上にて非リアルタイムに実行してＳｉｍｕｌｉｎｋモデルの基礎的な検証を行う。
【０１１９】
次に、上記構築されたモデル演算部とシステム設定部とをそれぞれターゲットＰＣｓ１０１で演算可能なモデル記述言語たとえばＣ言語形式に変換してターゲットＰＣｓ１０１にダウンロードする。ターゲットＰＣｓ１０１はこのダウンロードされたプログラムをコンパイルして実行ファイルを形成する。なお、ターゲットＰＣｓ１０１のオペレーションシステムにはリアルタイムに適したものたとえばＱＮＸが選択される。
【０１２０】
次に、ホストＰＣ１００からターゲットＰＣｓ１０１へシミュレーション動作を指令し、このシミュレーション動作の実行中にホストＰＣ１００から回転速度、回転方向、トルク、電圧などの種々の変数を入力してモータ制御システムの動作検証やデバッグを行う。
【０１２１】
このように構成されたモータ制御システムによれば、上述したモデルを用い、かつ、ＰＷＭ制御信号の補正も行うため、小規模の計算資源にて高速、高精度のシミュレーションを実現することができる。
【０１２２】
（モータモデルの演算処理）
ターゲットＰＣｓ１０１にダウンロードされたプログラムにより構成されるモデル演算部の主要動作である演算ステップを図５、図６を参照して更に説明する。なお、図５は、モータモデルの演算のためにモデル演算部により一定周期でなされる演算ステップの実行ルーチンの一例を示すフローチャートを示し、図６は、図５のモデル演算ルーチンを示すフローチャートを示す。なお、この演算ステップは所定短周期（たとえば１０μｓｅｃ）で繰り返される。また、システム設定部及びモータコントローラ１０２との交信は別プログラムで独立に実行されているものとする。
【０１２３】
図５において、まずシステム設定部２０１からモデル定数変更などの新指令が入力しているかどうかを判定し、入力していれば後述するモデル演算を中断してステップＳ２０２にてこの新指令を実行する。これによりインバータモデルやモータモデルの速やかなモデル修正が可能となる。
【０１２４】
その後、モータコントローラ１０２からモータ状態の変更に関する新しい指令が入力しているかどうかを判定し、入力していれば後述するモデル演算を中断してステップＳ２０２にてこの新指令を実行する。
【０１２５】
次に、前回演算した回転角θや図示しないＰＷＭ制御信号発生回路から入力したＰＷＭ制御信号を図３に示すルーチンに導入してＰＷＭ制御信号ｐｗｍをその振幅平均値を含んで確定する（Ｓ３００）。なお、このステップ３００のルーチンはこのモデル演算ルーチンＳ２０８とは別に実行し、このステップではそのルーチン実行結果だけ使用しても良い。
【０１２６】
次に、既述のインバータモデル演算を行うインバータモデル演算サブルーチンを実行する（Ｓ３０２）。このサブルーチンの詳細は既述した通りであるため再度の説明を省略する。
【０１２７】
次に、モータモデル演算を行うステップＳ３０４、Ｓ３０６を実行する。まずステップＳ３０４では行列λ（θ）の値を演算し、次にこの行列λ（θ）の値、すなわちインダクタンス行列Ｌ（θ）の逆行列の値を、他のデータ値とともにモータモデルに相当する既述の方程式に代入して各相電機子電流ｉなどの所望の変数を演算する（Ｓ３０６）。今回のモータモデルの状態を示す演算値は、ステップＳ２１０によりモータコントローラ１０２やシステム設定部に出力される。システム設定部は、受信したモータモデルの今回の状態を必要に応じてホストＰＣ１００やモータコントローラ１０２に送信する。
【図面の簡単な説明】
【０１２８】
【図１】この実施例のインバータモデルに用いる３相インバータの回路図である。
【図２】この実施例のＰＷＭ制御信号補正を説明するタイムチャートである。
【図３】この実施例のＰＷＭ制御信号補正を説明するフローチャートである。
【図４】この実施例で用いるＨＩＬＳシステムを示すブロック図である。
【図５】モータモデルの演算のためにモデル演算部により一定周期でなされる演算ステップの実行ルーチンの一例を示すフローチャートである。
【図６】図５のモデル演算ルーチンを示すフローチャートである。
【符号の説明】
【０１２９】
１００      ホストＰＣ
１０１      ターゲットＰＣｓ
１０２      モータコントローラ
【図１】
2006149034.tif 000060
【図２】
2006149034.tif 000061
【図３】
2006149034.tif 000062
【図４】
2006149034.tif 000063
【図５】
2006149034.tif 000064
【図６】
2006149034.tif 000065