(57)【要約】【課題】実モータおよび／またはその実モータのための実制御系の設計の支援を容易にしたり、実モータの制御を容易にする。【解決手段】実モータ１２を模擬する仮想モータ６０と、少なくとも仮想モータ６０のための制御信号を決定し、その制御信号を少なくとも仮想モータ６０に出力する制御部６４とを含む。仮想モータ６０は、制御信号が入力されると、それと同じ制御信号が実モータ１２に出力された場合にその制御信号に応答して実現される実モータ１２の作動状態を推定し、その推定された作動状態を仮想モータ６０の仮想作動状態として出力する。さらに、制御部６４は、前回の計算サイクルにおいて仮想モータ６０から出力された仮想作動状態と、実モータ１２の実際の作動状態とに基づき、仮想モータ６０が実モータ１２と実質的に同期して作動するように、制御信号を決定する。【選択図】図１
2015023585.tif 000002
【特許請求の範囲】
【請求項１】
電気エネルギーを運動エネルギーに変換する実モータを制御するモータ制御装置であって、
前記実モータを模擬する仮想モータと、
各計算サイクルごとに、前記実モータと前記仮想モータとのうち少なくともその仮想モータのための制御信号を決定し、その決定された制御信号を前記実モータと前記仮想モータとのうち少なくともその仮想モータに出力する制御部と
を含み、
前記仮想モータは、各計算サイクルごとに、前記制御信号が入力されると、その入力された制御信号に基づき、その制御信号と同じ制御信号が前記実モータに出力された場合にその制御信号に応答して実現される前記実モータの作動状態を推定し、その推定された作動状態を前記仮想モータの仮想作動状態として出力し、
前記制御部は、各計算サイクルごとに、前回の計算サイクルにおいて前記仮想モータから出力された仮想作動状態と、前記実モータの実際の作動状態とに基づき、前記仮想モータが前記実モータと実質的に同期して作動するように、前記制御信号を決定し、
前記実モータは、前記実モータのための目標信号と前記仮想モータから取得される信号と前記制御信号との少なくとも一つに基づいて前記仮想モータと一緒に作動させられるモータ制御装置。
【請求項２】
前記仮想モータは、各計算サイクルごとに、前記制御信号が入力されると、その入力された制御信号に基づき、その制御信号と同じ制御信号が前記実モータに出力された場合にその制御信号に応答して実現される前記実モータの実電流値を推定し、その推定された実電流値を前記仮想モータの仮想電流値として出力し、
前記制御部は、各計算サイクルごとに、前回の計算サイクルにおいて前記仮想モータから出力された仮想電流値と、前記実モータの実際の回転角とに基づき、前記仮想モータが前記実モータと実質的に同期して作動するように、前記制御信号を決定する請求項１に記載のモータ制御装置。
【請求項３】
前記制御部は、各計算サイクルごとに、前記仮想モータの指令電流値を計算するために座標変換を伴うベクトル制御を、前記座標変換が前記実モータの実際の回転角を基準にして行われるように行い、そのベクトル制御により、前記目標信号と、前回の計算サイクルにおいて前記仮想モータから出力された仮想電流値とに基づいて前記指令電流値を決定し、その決定された指令電流値に基づいて前記制御信号を決定する請求項２に記載のモータ制御装置。
【請求項４】
前記制御部は、前記目標信号に基づいて前記制御信号を決定し、
前記実モータは、前記仮想電流値が目標実モータ電流値として入力されると、その入力された目標電流値に基づいて制御され、
前記制御部は、前記目標信号を前記目標実モータ電流値に変換するコンバータとして作用する請求項２または３に記載のモータ制御装置。
【請求項５】
前記実モータは、前記仮想電流値と前記実モータの実電流値とが入力されると、それら仮想電流値と実電流値とに基づいて制御される請求項４に記載のモータ制御装置。
【請求項６】
前記実モータは、各計算サイクルごとに、前記仮想モータに出力される前記制御信号と実質的に共通するものに基づいて制御され、それにより、それら実モータと仮想モータとが、前記実質的に互いに共通する制御信号に基づいて制御される請求項１に記載のモータ制御装置。
【請求項７】
前記実モータは、前記仮想モータに入力される目標信号と実質的に共通するものに基づいて制御され、それにより、それら実モータと仮想モータとが、前記実質的に互いに共通する目標信号に基づいて制御される請求項１に記載のモータ制御装置。
【請求項８】
前記制御部は、各回の計算サイクルにおいて、１段目および２段目のフィードバック制御を順に実行し、
前記制御部は、前記１段目のフィードバック制御のために、目標信号に基づき、かつ、前回の計算サイクルにおいて前記仮想モータから出力された前回推定値をフィードバックすることにより、仮想モータ制御信号を決定し、その決定された仮想モータ制御信号を前記仮想モータに出力し、それにより、その仮想モータを作動させ、
前記制御部は、前記２段目のフィードバック制御のために、前記１段目のフィードバック制御において前記仮想モータから出力された直前推定値に基づき、かつ、前記実モータの作動状態を表す物理量をフィードバックすることと、前記１段目のフィードバック制御において前記仮想モータに出力された前記仮想モータ制御信号に基づき、かつ、前記直前推定値をフィードバックすることとのうちの少なくとも一方を行うことにより、実モータ制御信号を決定し、その決定された実モータ制御信号を前記実モータに出力し、それにより、その実モータを作動させる請求項１に記載のモータ制御装置。
【請求項９】
さらに、
前記実モータと前記仮想モータとが一緒に作動している期間中にそれら実モータと仮想モータとのうち少なくとも仮想モータから取得された情報に基づき、前記実モータの実際の作動特性をその実モータまたは前記仮想モータの回転角に関連づけて取得して出力する実モータ作動特性出力部として機能する請求項１ないし８のいずれかに記載のモータ制御装置。
【請求項１０】
前記実モータ作動特性出力部は、前記仮想モータから出力される仮想電流値を前記実モータの実電流値として、その実モータまたは前記仮想モータの回転角に関連づけて取得して出力する実モータ電流取得部を含む請求項９に記載のモータ制御装置。
【請求項１１】
前記実モータ作動特性出力部は、前記実モータと前記仮想モータとが一緒に作動している期間中に前記実モータから取得された実モータ関連情報であってその実モータの実電力を計算するのに必要なものと前記仮想モータから取得された仮想モータ関連情報であってその仮想モータの仮想電力を計算するのに必要なものとに基づき、前記実モータの実際の機械損を、その実モータまたは前記仮想モータの回転角に関連づけて取得して出力する実モータ機械損取得部を含む請求項９に記載のモータ制御装置。
【請求項１２】
前記実モータ機械損取得部は、前記実モータ関連情報に基づいて前記実モータの実電力値を計算し、前記仮想モータ関連情報に基づいて前記仮想モータの仮想電力値を計算し、それら計算された実電力値と仮想電力値との差を前記実モータの実際の機械損として、その実モータまたは前記仮想モータの回転角に関連づけて取得して出力する請求項１１に記載のモータ制御装置。
【請求項１３】
前記制御部は、１計算サイクル分の計算を予め定められた計算周期で反復的に行い、各計算サイクルごとに前記制御信号を決定し、その決定された制御信号を前記実モータと前記仮想モータとのうち少なくともその仮想モータに出力し、
当該モータ制御装置は、さらに、
前記計算周期より長くなるように予め定められた修正周期で、前記実モータの実際の作動状態と、前記仮想モータによって推定される前記実モータの作動状態との差に基づき、その差が減少するように、前記仮想モータの入出力特性を反復的に修正する修正部を含む請求項１ないし１２のいずれかに記載のモータ制御装置。
【請求項１４】
電気エネルギーを運動エネルギーに変換する実モータを制御するモータ制御方法であって、
各計算サイクルごとに、前記実モータとその実モータを模擬する仮想モータとのうち少なくともその仮想モータのための制御信号を決定する決定工程と、
その決定された制御信号を前記実モータと前記仮想モータとのうち少なくともその仮想モータに出力する出力工程と、
各計算サイクルごとに、前記制御信号が前記仮想モータに入力されると、その仮想モータが作動し、それにより、前記入力された制御信号に基づき、その制御信号と同じ制御信号が前記実モータに出力された場合にその制御信号に応答して実現される前記実モータの作動状態を推定し、その推定された作動状態を前記仮想モータの仮想作動状態として出力する推定工程と
を含み、
前記決定工程は、各計算サイクルごとに、前回の計算サイクルにおいて前記仮想モータから出力された仮想作動状態と、前記実モータの実際の作動状態とに基づき、前記仮想モータが前記実モータと実質的に同期して作動するように、前記制御信号を決定し、
前記実モータは、前記実モータのための目標信号と前記仮想モータから取得される信号と前記制御信号との少なくとも一つに基づいて前記仮想モータと一緒に作動させられるモータ制御方法。
【請求項１５】
請求項１４に記載のモータ制御方法を実行するためにコンピュータによって実行されるプログラム。
【請求項１６】
請求項１５に記載のプログラムをコンピュータ読み取り可能に記録した記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電気エネルギーを運動エネルギーに変換する実モータを制御する技術に関する。
【背景技術】
【０００２】
電気エネルギーを運動エネルギーに変換するために、電気的に駆動されるモータが使用される。この種のモータは、ますます拡大する種々の用途を有しており、そのような用途としては、例えば、自動車の如き移動体の駆動源や、ロボット、工作機械、搬送機械、荷役機械、空調機器、事務機器の如き運動発生装置の駆動源（アクチュエータ）がある。
【０００３】
例えば、自動車という用途においては、モータのみを駆動源として搭載する形式であるか、モータと燃焼機関とをいずれも駆動源として搭載する形式であるかを問わず、モータを駆動源として自動車に搭載することが普及している。この用途においては、モータの種類やモータが使用される環境の如何を問わず、モータを思い通りに制御することがますます必要となってきている。
【０００４】
モータを使用する場合には、そのモータを制御する制御系の設計が重要である。また、モータを精度よく制御するためには、モータの入出力特性に適合する制御系の設計が必要である。
【０００５】
また、モータのための制御系を設計するために、実際のモータを使用することが困難である場合がある。この場合には、その実モータの入出力特性を模擬する計算を行う仮想モータが実モータの代わりに使用され、その仮想モータを用いて、実モータのための制御系が設計される場合もある（例えば、特許文献１および２参照。）。
【０００６】
制御系の設計に際し、実モータの入出力特性が線形である場合には、制御系の設計も、仮想モータの設計も容易である。この種の実モータは、一般に、希土類を使用する磁石を使用する。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００６−３１８２００号公報
【特許文献２】特開２００９−２８４６３７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、近年、希土類の入手が困難となっていることもあり、磁石を用いないモータに転換したいという要望が増してきている。また、磁石を用いるにしてもその使用量を減らしたいという要望もある。磁石の使用量が少ないモータは、小型化・高速化に伴い、定格出力（例えば、モータ速度やモータトルク）を超えた領域で使用される場合がある。また、安価な磁石材料を用いてモータを製作したいという要望もある。
【０００９】
いずれにしても、モータの入出力特性が非線形となり易く、そのため、そのようなモータのための制御系の設計も困難となり易い。
【００１０】
また、モータのための制御系は、モータの作動状態（例えば、モータ位置やモータ電流など）を検出するセンサを用いる場合が多い。この場合、使用するセンサの数を減らすことが、装置コストを削減したいという要望や、装置の信頼性を向上させて安全性を向上させたいという要望を満たすために重要である。
【００１１】
以上説明した事情を背景として、本発明は、実モータおよび／またはその実モータのための実制御系の設計の支援を容易にしたり、実モータの制御を容易にすることを課題としてなされたものである。
【課題を解決するための手段】
【００１２】
本発明によって下記の各態様が得られる。各態様は、項に区分し、各項には番号を付し、必要に応じて他の項の番号を引用する形式で記載する。これは、本発明が採用し得る技術的特徴の一部およびそれの組合せの理解を容易にするためであり、本発明が採用し得る技術的特徴およびそれの組合せが以下の態様に限定されると解釈すべきではない。すなわち、下記の態様には記載されていないが本明細書には記載されている技術的特徴を本発明の技術的特徴として適宜抽出して採用することは妨げられないと解釈すべきなのである。
【００１３】
さらに、各項を他の項の番号を引用する形式で記載することが必ずしも、各項に記載の技術的特徴を他の項に記載の技術的特徴から分離させて独立させることを妨げることを意味するわけではなく、各項に記載の技術的特徴をその性質に応じて適宜独立させることが可能であると解釈すべきである。
【００１４】
（１）  電気エネルギーを運動エネルギーに変換する実モータを制御するモータ制御装置であって、
前記実モータを模擬する仮想モータと、
各計算サイクルごとに、前記実モータと前記仮想モータとのうち少なくともその仮想モータのための制御信号を決定し、その決定された制御信号を前記実モータと前記仮想モータとのうち少なくともその仮想モータに出力する制御部と
を含み、
前記仮想モータは、各計算サイクルごとに、前記制御信号が入力されると、その入力された制御信号に基づき、その制御信号と同じ制御信号が前記実モータに出力された場合にその制御信号に応答して実現される前記実モータの作動状態を推定し、その推定された作動状態を前記仮想モータの仮想作動状態として出力し、
前記制御部は、各計算サイクルごとに、前回の計算サイクルにおいて前記仮想モータから出力された仮想作動状態と、前記実モータの実際の作動状態とに基づき、前記仮想モータが前記実モータと実質的に同期して作動するように、前記制御信号を決定し、
前記実モータは、前記実モータのための目標信号と前記仮想モータから取得される信号と前記制御信号との少なくとも一つに基づいて前記仮想モータと一緒に作動させられるモータ制御装置。
【００１５】
本明細書の全体を通して、「実モータを模擬する仮想モータ」という文言は、例えば、実モータの実際のまたは目標の入出力特性と実質的に同じ入出力特性を有する仮想モータを意味するように解釈したり、モータの入出力特性や動特性を定義するモータモデルを実モータとの間で実質的に共有する仮想モータを意味するように解釈することが可能である。
【００１６】
また、「制御信号」という用語は、実モータおよび仮想モータに直接的に入力されるか、または間接的に入力され、それにより、結果的に、それら実モータおよび仮想モータの作動状態に変化を与えることとなる信号を意味する。
【００１７】
この意味における制御信号は、例えば、第１信号がインバータやパワーアンプなどの電力変換器に入力されると、前記第１信号に見合った電気エネルギーが第２信号としてモータに入力される入力系統については、前記第１信号を意味する用語として解釈したり、前記第２信号を意味する用語として解釈することが可能である。なぜなら、前記第１信号も前記第２信号も、モータにとり、そのモータを制御するための信号であることに変わりはなく、しかも、モータの作動状態に一義的に対応する信号であるからである。
【００１８】
（２）  前記仮想モータは、各計算サイクルごとに、前記制御信号が入力されると、その入力された制御信号に基づき、その制御信号と同じ制御信号が前記実モータに出力された場合にその制御信号に応答して実現される前記実モータの実電流値を推定し、その推定された実電流値を前記仮想モータの仮想電流値として出力し、
前記制御部は、各計算サイクルごとに、前回の計算サイクルにおいて前記仮想モータから出力された仮想電流値と、前記実モータの実際の回転角とに基づき、前記仮想モータが前記実モータと実質的に同期して作動するように、前記制御信号を決定する（１）項に記載のモータ制御装置。
【００１９】
（３）  前記制御部は、各計算サイクルごとに、前記仮想モータの指令電流値を計算するために座標変換を伴うベクトル制御を、前記座標変換が前記実モータの実際の回転角を基準にして行われるように行い、そのベクトル制御により、前記目標信号と、前回の計算サイクルにおいて前記仮想モータから出力された仮想電流値とに基づいて前記指令電流値を決定し、その決定された指令電流値に基づいて前記制御信号を決定する（２）項に記載のモータ制御装置。
【００２０】
（４）  前記制御部は、前記目標信号に基づいて前記制御信号を決定し、
前記実モータは、前記仮想電流値が目標実モータ電流値として入力されると、その入力された目標電流値に基づいて制御され、
前記制御部は、前記目標信号を前記目標実モータ電流値に変換するコンバータとして作用する（２）または（３）項に記載のモータ制御装置。
【００２１】
（５）  前記実モータは、前記仮想電流値と前記実モータの実電流値とが入力されると、それら仮想電流値と実電流値とに基づいて制御される（４）項に記載のモータ制御装置。
【００２２】
（６）  前記実モータは、各計算サイクルごとに、前記仮想モータに出力される前記制御信号と実質的に共通するものに基づいて制御され、それにより、それら実モータと仮想モータとが、前記実質的に互いに共通する制御信号に基づいて制御される（１）項に記載のモータ制御装置。
【００２３】
（７）  前記実モータは、前記仮想モータに入力される目標信号と実質的に共通するものに基づいて制御され、それにより、それら実モータと仮想モータとが、前記実質的に互いに共通する目標信号に基づいて制御される（１）項に記載のモータ制御装置。
【００２４】
（８）  前記制御部は、各回の計算サイクルにおいて、１段目および２段目のフィードバック制御を順に実行し、
前記制御部は、前記１段目のフィードバック制御のために、目標信号に基づき、かつ、前回の計算サイクルにおいて前記仮想モータから出力された前回推定値をフィードバックすることにより、仮想モータ制御信号を決定し、その決定された仮想モータ制御信号を前記仮想モータに出力し、それにより、その仮想モータを作動させ、
前記制御部は、前記２段目のフィードバック制御のために、前記１段目のフィードバック制御において前記仮想モータから出力された直前推定値に基づき、かつ、前記実モータの作動状態を表す物理量をフィードバックすることと、前記１段目のフィードバック制御において前記仮想モータに出力された前記仮想モータ制御信号に基づき、かつ、前記直前推定値をフィードバックすることとのうちの少なくとも一方を行うことにより、実モータ制御信号を決定し、その決定された実モータ制御信号を前記実モータに出力し、それにより、その実モータを作動させる（１）項に記載のモータ制御装置。
【００２５】
（９）  さらに、
前記実モータと前記仮想モータとが一緒に作動している期間中にそれら実モータと仮想モータとのうち少なくとも仮想モータから取得された情報に基づき、前記実モータの実際の作動特性をその実モータまたは前記仮想モータの回転角に関連づけて取得して出力する実モータ作動特性出力部として機能する（１）ないし（８）項のいずれかに記載のモータ制御装置。
【００２６】
（１０）  前記実モータ作動特性出力部は、前記仮想モータから出力される仮想電流値を前記実モータの実電流値として、その実モータまたは前記仮想モータの回転角に関連づけて取得して出力する実モータ電流取得部を含む（９）項に記載のモータ制御装置。
【００２７】
（１１）  前記実モータ作動特性出力部は、前記実モータと前記仮想モータとが一緒に作動している期間中に前記実モータから取得された実モータ関連情報であってその実モータの実電力を計算するのに必要なものと前記仮想モータから取得された仮想モータ関連情報であってその仮想モータの仮想電力を計算するのに必要なものとに基づき、前記実モータの実際の機械損を、その実モータまたは前記仮想モータの回転角に関連づけて取得して出力する実モータ機械損取得部を含む（９）項に記載のモータ制御装置。
【００２８】
（１２）  前記実モータ機械損取得部は、前記実モータ関連情報に基づいて前記実モータの実電力値を計算し、前記仮想モータ関連情報に基づいて前記仮想モータの仮想電力値を計算し、それら計算された実電力値と仮想電力値との差を前記実モータの実際の機械損として、その実モータまたは前記仮想モータの回転角に関連づけて取得して出力する（１１）項に記載のモータ制御装置。
【００２９】
（１３）  前記制御部は、１計算サイクル分の計算を予め定められた計算周期で反復的に行い、各計算サイクルごとに前記制御信号を決定し、その決定された制御信号を前記実モータと前記仮想モータとのうち少なくともその仮想モータに出力し、
当該モータ制御装置は、さらに、
前記計算周期より長くなるように予め定められた修正周期で、前記実モータの実際の作動状態と、前記仮想モータによって推定される前記実モータの作動状態との差に基づき、その差が減少するように、前記仮想モータの入出力特性を反復的に修正する修正部を含む（１）ないし（１２）項のいずれかに記載のモータ制御装置。
【００３０】
（１４）  電気エネルギーを運動エネルギーに変換する実モータを制御するモータ制御方法であって、
各計算サイクルごとに、前記実モータとその実モータを模擬する仮想モータとのうち少なくともその仮想モータのための制御信号を決定する決定工程と、
その決定された制御信号を前記実モータと前記仮想モータとのうち少なくともその仮想モータに出力する出力工程と、
各計算サイクルごとに、前記制御信号が前記仮想モータに入力されると、その仮想モータが作動し、それにより、前記入力された制御信号に基づき、その制御信号と同じ制御信号が前記実モータに出力された場合にその制御信号に応答して実現される前記実モータの作動状態を推定し、その推定された作動状態を前記仮想モータの仮想作動状態として出力する推定工程と
を含み、
前記決定工程は、各計算サイクルごとに、前回の計算サイクルにおいて前記仮想モータから出力された仮想作動状態と、前記実モータの実際の作動状態とに基づき、前記仮想モータが前記実モータと実質的に同期して作動するように、前記制御信号を決定し、
前記実モータは、前記実モータのための目標信号と前記仮想モータから取得される信号と前記制御信号との少なくとも一つに基づいて前記仮想モータと一緒に作動させられるモータ制御方法。
【００３１】
（１５）  （１４）項に記載のモータ制御方法を実行するためにコンピュータによって実行されるプログラム。
【００３２】
（１６）  （１５）項に記載のプログラムをコンピュータ読み取り可能に記録した非過渡的な記録媒体。
【００３３】
この記録媒体は種々な形式を採用可能であり、例えば、フレキシブル・ディスク等の磁気記録媒体、ＣＤ、ＣＤ−ＲＯＭ等の光記録媒体、ＭＯ等の光磁気記録媒体、ＲＯＭ等のアンリムーバブル・ストレージ等のいずれかを採用し得るが、それらに限定されない。
【発明の効果】
【００３４】
本発明によれば、実モータと仮想モータとが時間的に互いに並行して作動させられるため、仮想モータの作動状態に基づいて実モータを制御したり、逆に、実モータの作動状態に基づいて仮想モータの入出力特性を修正することが可能となる。
【図面の簡単な説明】
【００３５】
【図１】図１は、本発明の例示的な第１実施形態に従うモータ制御装置を有するシステム全体を表す機能ブロック図である。
【図２】図２は、図１に示す実インバータ／パワーアンプの一例を実モータと共に概略的に示す回路図である。
【図３】図３は、図１に示す仮想モータ計算部の一例を表す機能ブロック図である。
【図４】図４は、図３に示す仮想モータが用いるモータモデルの一例を概略的にかつ数学的に記述する図である。
【図５】図５（ａ）は、図３に示す仮想モータ制御部の一例を表す機能ブロック図であり、図５（ｂ）は、図３に示す仮想モータ制御部の別の例を表す機能ブロック図である。
【図６】図６（ａ）は、図３に示す仮想モータ計算部の全体シーケンスを示すタイミングチャートであり、図６（ｂ）は、その仮想モータ計算部が図５（ａ）に示す構成を採用した場合の作動を示すタイミングチャートであり、図６（ｃ）は、その仮想モータ計算部が図５（ｂ）に示す構成を採用した場合の作動を示すタイミングチャートである。
【図７】図７は、図３に示す仮想ＰＷＭインバータの一例を概略的にかつ数学的に記述する図である。
【図８】図８は、図１に示すモータ制御装置の作動の一例を概念的に表すフローチャートである。
【図９】図９は、図１に示す実コントローラの作動の一例を概念的に表すフローチャートである。
【図１０】図１０は、本発明の例示的な第２実施形態に従うモータ制御装置を有するシステム全体を表す機能ブロック図である。
【図１１】図１１は、図１０に示す仮想モータ計算部の一例を表す機能ブロック図である。
【図１２】図１２は、図１０に示すモータ制御装置の作動の一例を概念的に表すフローチャートである。
【図１３】図１３は、図１０に示す実コントローラの作動の一例を概念的に表すフローチャートである。
【図１４】図１４は、本発明の例示的な第３実施形態に従うモータ制御装置を有するシステム全体を表す機能ブロック図である。
【図１５】図１５は、図１４に示す仮想モータ計算部の一例を表す機能ブロック図である。
【図１６】図１６は、図１４に示すモータ制御装置の作動の一例を概念的に表すフローチャートである。
【図１７】図１７は、本発明の例示的な第４実施形態に従うモータ制御装置を有するシステム全体を表す機能ブロック図である。
【図１８】図１８は、図１７に示す仮想モータ計算部の一例を表す機能ブロック図である。
【図１９】図１９は、図１７に示すモータ制御装置の作動の一例を概念的に表すフローチャートである。
【図２０】図２０は、図１７に示す実コントローラの作動の一例を概念的に表すフローチャートである。
【図２１】図２１は、本発明の例示的な第５実施形態に従うモータ制御装置を有するシステム全体を表す機能ブロック図である。
【図２２】図２２は、図２１に示す仮想モータ計算部の一例を表す機能ブロック図である。
【図２３】図２３は、図２１に示す比較部およびモデル修正部のそれぞれの作動の一例を概念的に表すフローチャートである。
【図２４】図２４は、本発明の例示的な第６実施形態に従うモータ制御装置を有するシステム全体を表す機能ブロック図である。
【図２５】図２５は、図２４に示すモータ制御装置の作動の一例を概念的に表すフローチャートである。
【発明を実施するための形態】
【００３６】
以下、本発明のさらに具体的で例示的な実施の形態のうちのいくつかを図面に基づいて詳細に説明する。
【００３７】
＜第１実施形態＞
【００３８】
図１には、本発明の例示的な第１実施形態に従うモータ制御装置１０を有するシステム１１を概略的に表す機能ブロック図である。このシステム１１は、そのシステム１１の駆動源として実モータ１２を備えている。このシステム１１のいくつかの具体例としては、前述のように、移動体を絶対空間に対して移動させるための推進装置や、可動部材に運動を付与する運動付与装置などがある。
【００３９】
実モータ１２は、一般に、複数極のロータ（図示しない）と、複数極のステータ（図示しない）と、磁束形成部（図示しないが、具体的には、例えば、巻き線）とを有するように構成される。図２に示すように、実モータ１２は、前記ロータと共に回転するシャフト１３を有しており、そのシャフト１３が可動部材（図示しないが、具体的には、例えば、車両の車輪、工作機械の工具、ロボットのアームなど）に機械的に連結され、それにより、可動部材が駆動される。その可動部材は、実モータ１２にとり、いわゆる実負荷となる。
【００４０】
実モータ１２のいくつかの具体例としては、界磁に永久磁石を使用して回転する永久磁石同期モータ（ＰＭＳＭ）、永久磁石を使用せず、渦電流を利用して回転する誘導モータ（ＩＭ）、スイッチ・リラクタンス・モータ（ＳＲＭ）などがある。そのリラクタンス・モータにおいては、ロータが、永久磁石を使用することなく、強磁性の鉄心で構成されるため、リラクタンス・モータは、永久磁石を使用しない無整流子モータの一種である。
【００４１】
実モータ１２が３相（Ｕ相、Ｖ相、Ｗ相）の巻線を有する場合、実モータ１２の各種物理量を記述するために、次のような記号が使用される。
【００４２】
Ｖｕ，Ｖｖ，Ｖｗ：端子電圧（「巻線電圧」または「相電圧」ともいう。）[V]
Ｉｕ，Ｉｖ，Ｉｗ：相電流（「巻線電流」ともいう。）[A]
θｍ：ロータ（またはシャフト）の角度（位相または回転位置であり、「モータ角」または「モータ位置」ともいう）[rad]
ωｍ：ロータ（またはシャフト１３）の角速度（「モータ速度」ともいう）[rad/sec]
Ｔ：モータ出力トルク[Nm]
Ｅｕ，Ｅｖ，Ｅｗ：誘起電圧[V]
Ｆｕ，Ｆｖ，Ｆｗ：相磁束[Wb]
【００４３】
なお、本実施形態および後述のいくつかの実施形態の説明において、同じ記号が、単独で使用される箇所と、「＊」を末尾に有するように使用される箇所とが存在する。それら実施形態においては、同じ記号が、単独で使用される場合には、実際値または検出値を意味する一方、「＊」と組み合わせて使用される場合には、指令値を意味するという用法と、同じ記号が、単独で使用される場合には、実モータ１２についての物理量であることを意味する一方、「＊」と組み合わせて使用される場合には、後述の仮想モータ６０（図３参照）についての物理量であることを意味するという用法とがあるが、特記しない限り、前者の用法を採用することに留意されたい。
【００４４】
図１に示すように、システム１１は、実モータ１２を駆動するために、実コントローラ１３と、実インバータ／パワーアンプ（実ドライバの一例）１４と、実モータ状態検出部１５とをさらに備えている。
【００４５】
実モータ状態検出部１５は、実モータ１２の作動状態として実モータ１２の実モータ位置（回転角）θｍを検出する角度センサである。この実モータ状態検出部１５は、例えば、ロータリ・エンコーダ（図示しない）を含むように構成される。
【００４６】
ところで、後述のいくつかの実施形態においては、実モータ状態検出部１５が、実モータ１２の実３相電流Ｉｕ，Ｉｖ，Ｉｗを検出する電流センサを有したり、実モータ１２の実３相電圧Ｖｕ，Ｖｖ，Ｖｗを検出する電圧センサを有するが、本実施形態においては、少なくとも電流センサを有しておらず、その代わり、後述の仮想モータ計算部５０が実モータ１２の実３相電流Ｉｕ，Ｉｖ，Ｉｗを仮想モータ６０を用いて推定する。
【００４７】
実インバータ／パワーアンプ１４は、実モータ１２に電気エネルギーを供給する実インバータまたは実パワーアンプを有するように構成される。実モータ１２に供給される電気エネルギーは、実モータ１２が３相（Ｕ相、Ｖ相、Ｗ相）の巻線を有する場合、端子電圧Ｖｕ，Ｖｖ，Ｖｗである。
【００４８】
図２には、実インバータ／パワーアンプ１４が実インバータ１６を有する場合につき、その実インバータ１６が概念的に回路図で表されている。実インバータ１６は、既によく知られているように、直流電圧Ｖｄｃが印加される入力端子２０と、端子電圧Ｖｕ，Ｖｖ，Ｖｗを実モータ１２に出力するための出力端子２２と、それら入力端子２０と出力端子２２との間に接続された複数のゲート２４と、端子電圧Ｖｕ，Ｖｖ，Ｖｗを検出する抵抗２６と、その抵抗２６に作用する電圧によって端子電圧Ｖｕ，Ｖｖ，Ｖｗを表すアナログ信号をデジタル信号に変換するＡＤＣ（交直変換器）２８とを有するように構成される。
【００４９】
複数のゲート２４は、複数のスイッチング素子（すなわち、複数の上アーム・スイッチング素子および複数の下アーム・スイッチング素子）として構成されており、それらゲート２４は、外部からの複数のパルス信号であるゲート信号Ｇｕ，Ｇｖ，Ｇｗ，Ｇｘ，Ｇｙ，Ｇｗに応じてスイッチング動作を行う。
【００５０】
このように構成されることにより、実インバータ１６は、外部から複数のゲート信号Ｇｕ，Ｇｖ，Ｇｗ，Ｇｘ，Ｇｙ，Ｇｗが制御信号として入力されると、その制御信号に応じた高さの端子電圧Ｖｕ，Ｖｖ，ＶｗをＰＷＭ（パルス幅変調）方式によって生成し、それら生成された端子電圧Ｖｕ，Ｖｖ，Ｖｗを実モータ１２に供給する。
【００５１】
外部から実インバータ／パワーアンプ１４に入力される制御信号は、実インバータ／パワーアンプ１４が実インバータ１６を有する場合には、上述のように、前記複数のゲート信号であるが、実インバータ／パワーアンプ１４が実パワーアンプ（図示しない）を有する場合には、実モータ１２の相数と同数のアナログ信号となる。
【００５２】
図１に示すように、システム１１は、実モータ１２を制御するために、プロセッサ４０を備えている。プロセッサ４０は、ＦＰＧＡ(field-programmable gate array)やＡＳＩＣ(application specific integrated circuit)などの演算回路（例えば、ＰＬＤ(Programmable logic device）、ワイヤード論理回路)４２と、コンピュータのＣＰＵ４４とを含むように構成されている。演算回路４２により、例えば、１μｓｅｃという長さの第１の周期で、３２ビットの浮動小数点演算を行い、それにより、仮想モータ計算部５０による計算を行う。また、ＣＰＵ４４により、例えば、数１０μｓｅｃという長さの第２の周期であって前記第１の周期より長いもので、システム１１の全体を制御するための処理を行う。そのような処理としては、例えば、初期化、終了処理、時間的に可変である制御目標値を表す目標信号を入力する処理などがある。
【００５３】
演算回路４２により、仮想モータ計算部５０が実現される。仮想モータ計算部５０は、図３に示すように、仮想モータ６０を主体として構成され、その仮想モータ６０を用いることにより、実モータ１２の作動状態を計算する。仮想モータ６０は、仮想モータ制御部６４から制御信号が入力されると、実モータ１２を模擬する解析プログラムを演算回路４２（図１参照）に実行させることにより、前記入力された制御信号と同じ制御信号が実モータ１２に出力された場合にその制御信号に応答して実モータ１２によって実現される作動状態を推定するための計算を行う。すなわち、仮想モータ計算部５０は、演算回路４２により、高速演算可能であるように構成されているのである。
【００５４】
前記「背景技術」の欄において詳述したように、従来の技術では、仮想モータ６０は、実モータ１２や、その実モータ１２を制御する実コントローラについての試験が終了するまで、実モータ１２を代替するものとして試験機において使用される。そして、それら実モータ１２や実コントローラが完成する（仕様が確定する）と、今度は、実モータ１２が、仮想モータ６０を代替するものとして実機に搭載される。このように、従来の技術では、試験機においても実機においても、仮想モータ６０が実モータ１２と一緒に搭載されるとともに一緒に作動させられることはなかった。
【００５５】
これに対し、本実施形態においては、試験機であるか実機であるかを問わず、仮想モータ６０が実モータ１２と一緒に搭載されるとともに一緒に作動させられ、それにより、仮想モータ６０を用いて実モータ１２を制御したり、実モータ１２を用いて仮想モータ６０をティーチングすることが可能である。
【００５６】
仮想モータ計算部５０は、実モータ１２の停止中（実モータ１２に入力される制御信号が時間的に変化しないために、実モータ１２への電気エネルギーの供給が不要である場合）であっても、作動し続ける。
【００５７】
本実施形態においては、システム１１のうち、仮想モータ計算部５０を構成する部分が、モータ制御装置１０を構成し、その仮想モータ計算部５０のうち、仮想モータ６０を除く部分が、モータ制御装置１０のうちの「制御部」を構成している。
【００５８】
ここで、一般的なモータの入出力特性を説明するに、図４に示すように、３相巻線のモータの入出力特性は、一般に、電圧方程式（電圧電流方程式）によって近似的に記述できることが既に知られている。この事実によれば、その電圧方程式を解くことにより、各相ごとの端子電圧を表すモータ電圧ベクトルｖ（＝［ｖｕ，ｖｖ，ｖｗ］）から、各相ごとの相電流を表すモータ電流ベクトルｉ（＝［ｉｕ，ｉｖ，ｉｗ］）を計算することができる。
【００５９】
図４に示す電圧方程式中の各種記号の定義を説明するに、「Ｒａ」は、モータの巻線抵抗を表し、また、「ψ」は、モータの鎖交磁束ベクトルψ（＝［ψｕ，ψｖ，ψｗ］）を表し、また、「ｔ」は、時間を表している。
【００６０】
図４に示すように、モータの鎖交磁束ベクトルψは、相電流による鎖交磁束と、電機子鎖交磁束との和に等しい。相電流による鎖交磁束は、「Ｌ（自己インダクタンス）」と「Ｍ（相互インダクタンス）」を各要素とするインダクタンス行列を用いて表現され、また、電機子鎖交磁束は、ベクトルφ（＝［φｕ，φｖ，φｗ］）として表現される。
【００６１】
インダクタンス行列は、各要素Ｌ，Ｍが、モータの電流と角度（位置、位相）との少なくとも一方に依存するテーブルとして表現され、また、電機子鎖交磁束ベクトルφも、各要素が、モータの電流と角度（位置、位相）との少なくとも一方に依存するテーブルとして表現される。それらテーブルにより、前記電圧方程式と協働して、モータの非線形特性を、モータの駆動周波数全域にわたって表現することができる。
【００６２】
したがって、図４に示す電圧方程式によって表現される非線形モータモデルを使用すれば、モータの入出力特性が非線形であっても、モータの駆動周波数全域を複数の帯域に分割して各帯域ごとに異なる線形モータモデルを使用することなく、モータの駆動周波数全域を実質的に漏れなくカバーする非線形モータ特性を単一のモデルで精度よく表現することが可能となる。
【００６３】
図４に示す電圧方程式は、実モータ１２についても成立し、よって、仮想モータ６０は、その電圧方程式を解くことにより、図３に示すように、仮想モータ６０の各相ごとの端子電圧を表す仮想モータ電圧ベクトルＶ＊（＝［Ｖｕ＊，Ｖｖ＊，Ｖｗ＊］であって、図４に示すモータ電圧ベクトルｖ（＝［ｖｕ，ｖｖ，ｖｗ］に相当する）から、仮想モータ６０の各相ごとの相電流を表す仮想モータ電流ベクトルＩ＊（＝［Ｉｕ＊，Ｉｖ＊，Ｉｗ＊］であって、図４に示すモータ電流ベクトルｉ（＝［ｉｕ，ｉｖ，ｉｗ］）に相当する）を計算する。
【００６４】
したがって、本実施形態によれば、仮想モータ６０が、図４に示す電圧方程式によって表現される非線形モータモデルを使用して実モータ１２の作動を模擬するため、入出力特性が非線形である実モータ１２の駆動周波数全域にわたり、実モータ１２の作動を精度よく模擬することが可能となる。
【００６５】
仮想モータ６０が採用する前記モータモデルは、それの電気系を記述する前記電圧方程式に加えて、それの磁気系を記述するフレミング方程式と、それの機械系を記述する運動方程式（仮想ロータ軸周りのモーメントのつりあいを記述する）とを記述する。
【００６６】
フレミング方程式は、フレミングの法則に従い、仮想モータ電流ベクトルＩ＊と仮想電機子鎖交磁束ベクトルφ＊とから、仮想モータ６０に発生する仮想トルクＴｅ＊を計算する。運動方程式は、仮想発生トルクＴｅ＊と、仮想負荷トルクＴｍ＊と、仮想電機子イナーシャＪ＊と、仮想減衰係数Ｆ＊とから、仮想モータ速度ωｍ＊を計算し、さらに、それを時間積分することにより、仮想モータ位置θｍ＊を計算する。
【００６７】
実モータ１２は、前記ロータを含む可動部材が質量（イナーシャ）や抵抗を有するなどの理由により、応答遅れを有するが、仮想モータ６０は、応答遅れを実質的に有しない。その結果、それら実モータ１２と仮想モータ６０とに同時に同じ制御信号が入力される状況を想定すると、その制御信号に対して実モータ１２が応答するタイミングより早いタイミングで、仮想モータ６０が応答する。
【００６８】
したがって、ある制御目標値に基づき、ある時刻ｔ(i)に、制御信号を実モータ１２に供給することが必要である場合に、その供給に先立ち、その制御信号と同じ制御信号（この段落および次の段落において、仮想モータ６０に供給される制御信号を「Ｘ」を付して表記する）を仮想モータ６０のみに供給すれば、その時刻ｔ(i)が到来する前に、その制御信号Ｘに対して仮想モータ６０の応答が終了するように仮想モータ６０を作動させることが可能である。
【００６９】
よって、そのときの仮想モータ６０の作動状態と今回の制御目標値との関係から、制御信号Ｘを補正すること（例えば、本実施形態における後述のフィードバック制御や位相遅れ補償）を、時刻ｔ(i)に先立って行うことが可能となる。したがって、時刻ｔ(i)に先立ち、実モータ１２に供給すべき制御信号を、その実モータ１２の入出力特性との関係において最適化し、その最適化された制御信号を、時刻ｔ(i)に実モータ１２に供給することが可能である。
【００７０】
図３に示すように、仮想モータ計算部５０は、仮想モータ６０の作動状態を検出する仮想モータ状態検出部６２をさらに備えている。
【００７１】
仮想モータ状態検出部６２は、仮想モータ６０の作動状態として、仮想モータ６０の計算によって取得された仮想モータ電流ベクトルＩ＊すなわち仮想３相実電流Ｉｕ＊，Ｉｖ＊，Ｉｗ＊を検出する。
【００７２】
前述のように、仮想モータ６０は仮想３相実電流信号Ｉｕ＊，Ｉｖ＊，Ｉｗ＊を出力するように構成されているため、仮想モータ状態検出部６２は、仮想３相実電流Ｉｕ＊，Ｉｖ＊，Ｉｗ＊を検出して仮想モータ制御部６４に供給することが必要である場合には、仮想モータ６０から出力された仮想３相実電流信号Ｉｕ＊，Ｉｖ＊，Ｉｗ＊をそのまま仮想モータ制御部６４に転送すればよい。したがって、仮想モータ状態検出部６２は、実モータ１２にとって電流センサとして機能することになる。
【００７３】
よって、本実施形態においては、仮想モータ状態検出部６２が、前記「実モータ作動特性出力部」の一例を構成し、また、前記「実モータ電流取得部」の一例を構成する。
【００７４】
図１に示すように、仮想モータ状態検出部６２によって取得された仮想３相実電流信号Ｉｕ＊，Ｉｖ＊，Ｉｗ＊は、実モータ１２の制御のため、実コントローラ１３に供給される。実コントローラ１３にとっては、それら供給された仮想３相実電流信号Ｉｕ＊，Ｉｖ＊，Ｉｗ＊は目標電流信号として機能する。この実コントローラ１３は、それら供給された仮想３相実電流信号Ｉｕ＊，Ｉｖ＊，Ｉｗ＊が実モータ１２によって実現されるように前述のゲート信号（実モータ制御信号）Ｇｕ，Ｇｖ，Ｇｗ，Ｇｘ，Ｇｙ，Ｇｚを生成して実インバータ／パワーアンプ１４に供給する。
【００７５】
図３に示すように、モータ制御装置１０は、ディスプレイ６６を備えている。このディスプレイ６６は、例えば、液晶式であり、情報を可視化して表示することが可能な画面を備えている。モータ制御装置１０は、必要に応じ、仮想モータ状態検出部６２によって取得された仮想３相実電流値Ｉｕ＊，Ｉｖ＊，Ｉｗ＊を、実モータ１２の実３相実電流値Ｉｕ，Ｉｖ，Ｉｗの推定値として、ディスプレイ６６の画面上に表示することが可能である。
【００７６】
図３に示すように、仮想モータ計算部５０は、仮想モータ６０を制御するために、前記目標信号と、実モータ状態検出部１５から出力された実モータ位置θｍと、仮想モータ状態検出部６２から出力された仮想モータ状態信号（例えば、仮想３相実電流Ｉｕ＊，Ｉｖ＊，Ｉｗ＊）とに基づき、複数の制御信号（ゲート信号Ｇｕ，Ｇｖ，Ｇｗ，Ｇｘ，Ｇｙ，Ｇｗ）を生成する仮想モータ制御部６４を備えている。仮想モータ制御部６４は、その生成された制御信号（ゲート信号）Ｇｕ，Ｇｖ，Ｇｗ，Ｇｘ，Ｇｙ，Ｇｗを、仮想モータ６０にとっての仮想ドライバである仮想ＰＷＭインバータ９０に出力する。
【００７７】
具体的には、後に図５を参照しつつ詳述するが、仮想モータ制御部６４は、前記目標信号に基づいて目標電流信号（仮想モータ６０の制御目標値を表す後述の仮想ｄｑ軸指令電流Ｉｄ＊，Ｉｑ＊）を暫定的に生成し、その暫定的な目標電流信号に対して前記仮想モータ状態信号（仮想モータ６０から出力された仮想３相実電流Ｉｕ，Ｉｖ，Ｉｗから座標変換された仮想ｄｑ軸実電流Ｉｄ，Ｉｑ）をフィードバックすることにより、暫定的な目標電流信号を訂正して最終的な目標電流信号を生成する。さらに、仮想モータ制御部６４は、モータ電流のベクトル制御を行い、そのため、ｄｑ座標系とＵＶＷ座標系との間で座標変換を行い、その座標変換を、実モータ１２の回転角θｍのもとに行う。
【００７８】
一方、本実施形態においては、同じ制御信号が実モータ１２と仮想モータ６０とに供給されるようにはなっていないが、制御系の特性上、結果的には、実質的に共通する制御信号が実モータ１２と仮想モータ６０とに供給される。さらに、上述のように、仮想モータ制御部６４は、モータ電流のベクトル制御のための座標変換を実モータ１２の回転角θｍのもとに行う。よって、実モータ１２と仮想モータ６０とが、一緒に、かつ、ロータ位置に関して互いに実質的に同期するように、駆動されることになる。
【００７９】
仮想モータ制御部６４のより具体的な構成については、後に図５を参照することにより、説明するが、それに先立ち、図６に示すタイミングチャートを参照することにより、この仮想モータ制御部６４の作動の一例を詳細に説明する。
【００８０】
図６（ａ）に例示するように、制御目標値（前記目標信号によって表される）Ｔ０は、仮想モータ制御部６４に入力周期Ｔｉｎ（例えば、数１０μｓｅｃ）で反復的に入力される。仮想モータ制御部６４は、１サイクル分の計算を入力周期Ｔｉｎより短い仮想モータ計算周期Ｔｖ（例えば、１μｓｅｃ）で反復的に行い、それにより、制御目標値Ｔ０の１回の入力サイクルの間、複数サイクル分の計算を行う。本実施形態においては、入力周期Ｔｉｎが、仮想モータ計算周期Ｔｖより長い長さを有するように設定されているが、これに代えて、仮想モータ計算周期Ｔｖと実質的に同じ長さを有するように設定することが可能である。
【００８１】
ここに、「制御目標値Ｔ０」は、例えば、実モータ１２からの出力に関連する物理量の指令値（例えば、実モータ１２の前記ロータの位置に関する物理量（例えば、位置、速度、加速度）の指令値や、実モータ１２の前記ロータに作用する力に関する物理量（例えば、トルク、軸力）の指令値）としたり、実モータ１２に発生する電気的または磁気的な物理量の指令値（例えば、電流については、３相指令電流信号Ｉｕ＊，Ｉｖ＊，Ｉｗ＊やｄｑ軸指令電流信号Ｉｄ＊，Ｉｑ＊であり、電圧については、３相指令電圧信号Ｖｕ＊，Ｖｖ＊，Ｖｗ＊やｄｑ軸指令電圧信号Ｖｄ＊，Ｖｑ＊）としたり、それら複数種類の指令値からの任意の組合せとすることが可能である。
【００８２】
概略的に説明するに、図６（ｂ）に例示するように、仮想モータ制御部６４は、１サイクル分の計算を仮想モータ計算周期Ｔｖで反復的に行い、各回の計算サイクルにおいては、制御目標値Ｔ０(i)と、実モータ位置θｍ(t)と、仮想モータ電流Ｉｕ＊，Ｉｖ＊，Ｉｗ＊であって仮想モータ６０の前回の計算によって取得されたもの（最新の仮想モータ電流Ｉｕ＊，Ｉｖ＊，Ｉｗ＊）とに基づき、前記制御信号Ｇｕ−Ｇｚを決定し、その決定された制御信号Ｇｕ−Ｇｚを仮想モータ６０に出力する。
【００８３】
具体的に説明するに、図６（ｂ）に例示するように、仮想モータ制御部６４は、各回の計算サイクルにおいて、まず、最新の制御目標値Ｔ０(t)と、最新の実モータ位置θｍ(t)と、最新の仮想モータ電流Ｉｕ＊，Ｉｖ＊，Ｉｗ＊であって仮想モータ６０の前回の計算によって取得されたものとを取り込む。この処理を、図６（ｂ）においては、「θｍ（ｔ）入力」で表す。
【００８４】
次に、それら取り込まれた制御目標値Ｔ０(t)、実モータ位置θｍ(t)および仮想モータ電流Ｉｕ＊，Ｉｖ＊，Ｉｗ＊に基づき、仮想モータ６０のための仮制御信号を決定する。この処理を、図６（ｂ）においては、「θ（ｔ）＝θｍ（ｔ）同期」で表す。
【００８５】
その後、その決定された仮制御信号に対して、実モータ１２の作動状態の、仮想モータ計算周期Ｔｖの間における推定変化量Δθに基づく位相遅れ補償を行い、それにより、仮想モータ６０のための最終制御信号Ｇｕ−Ｇｚを取得する。この処理を、図６（ｂ）においては、「θ（ｔ）＋Δθ制御」で表す。
【００８６】
続いて、その取得された最終制御信号Ｇｕ−Ｇｚを仮想モータ６０に出力する。この処理を、図６（ｂ）においては、「Ｇｕ〜Ｇｚ出力」で表す。各回の計算サイクルにおいて、仮想モータ６０には、制御信号が１回しか入力されないため、仮想モータ６０は、１回しか作動しない。
【００８７】
最終制御信号Ｇｕ−Ｇｚが仮想モータ６０に出力するタイミングと実質的に同じタイミングで、その最終制御信号Ｇｕ−Ｇｚを生成するために用いられた最新の仮想モータ電流Ｉｕ＊，Ｉｖ＊，Ｉｗ＊が、図１に示す実コントローラ１３に供給される。実コントローラ１３は、その供給された仮想モータ電流Ｉｕ＊，Ｉｖ＊，Ｉｗ＊に基づき、実インバータ／パワーアンプ１４のための制御信号Ｇｕ−Ｇｚを生成して実インバータ／パワーアンプ１４に供給する。
【００８８】
したがって、仮想モータ５０への最新の制御信号の入力と、実モータ１２への最新の制御信号の入力とは、実質的に同じタイミングで行われる。しかし、実モータ１２は、仮想モータ６０より応答性が低いため、最新の制御信号によって仮想モータ６０の位置θがθ（t）からθ（t+1）（＝θ（t）＋Δθ）に変化するタイミングの方が、最新の制御信号によって実モータ１２の位置θがθｍ（t）からθｍ（t+1）（＝θｍ（t）＋Δθ）に変化するタイミングより早くなる傾向がある。
【００８９】
次に、図５（ａ）を参照することにより、仮想モータ制御部６４の構成の一例を具体的に説明する。ただし、同じ記号が、単独で使用される場合には、仮想モータ６０についての実際値または検出値を意味する一方、「＊」と組み合わせて使用される場合には、仮想モータ６０についての指令値を意味する。
【００９０】
概略的に説明するに、仮想モータ制御部６４は、各計算サイクルごとに、仮想モータ６０の目標電流値を計算するために座標変換を伴うベクトル制御を行い、前記座標変換を実モータ１２の実際の回転角すなわち実モータ位置θｍを基準にして行い、前記目標信号と、前回の計算サイクルにおいて仮想モータ６０から出力された仮想電流値とに基づいて前記制御信号を決定する。
【００９１】
具体的には、仮想モータ制御部６４は、ｄｑ座標系（回転直交２軸ｄｑ座標系）上において磁束−トルク制御を行う。ここに、「ｄ」は、仮想モータ６０の仮想磁束を表し、また、「ｑ」は、仮想モータ６０の仮想トルクを表している。そのような制御を実現するために、前記目標信号は、仮想ｄｑ軸指令電流Ｉｄ＊，Ｉｑ＊（仮想ｄ軸指令電流Ｉｄ＊および仮想ｑ軸指令電流Ｉｑ＊）として表現される。
【００９２】
さらに、仮想モータ制御部６４は、仮想ｄ軸指令電流Ｉｄ＊と仮想ｄ軸実電流Ｉｄとが入力されると、ベクトル制御（ロータの位置情報を用いて、相電流を３相座標系からｄｑ座標系へ座標変換し、ステータのｄｑ軸電流を制御する）を行う。
【００９３】
仮想モータ制御部６４は、ＵＶＷ−ｄｑ座標変換器６８を備えている。そのＵＶＷ−ｄｑ座標変換器６８は、前記仮想モータ状態信号すなわち仮想３相実電流Ｉｕ，Ｉｖ，Ｉｗ（図１においては、「Ｉｕ＊，Ｉｖ＊，Ｉｗ＊」で表されている）を、実モータ１２の実モータ位置θｍのもとで、仮想ｄｑ軸実電流Ｉｄ，Ｉｑに変換する。
【００９４】
仮想モータ６０を実モータ１２から切り離して使用する従来の技術では、ＵＶＷ−ｄｑ座標変換器６８は、仮想モータ位置θのもとで、仮想３相実電流Ｉｕ，Ｉｖ，Ｉｗを仮想ｄｑ軸実電流Ｉｄ＊，Ｉｑ＊に変換する。これに対し、本実施形態においては、ＵＶＷ−ｄｑ座標変換器６８が、仮想モータ位置θに代えて実モータ位置θｍを用いる。
【００９５】
その結果、本実施形態によれば、仮想ｄｑ軸実電流Ｉｄ＊，Ｉｑ＊が、仮想モータ位置θと実モータ位置θｍとが互いに一致するように、取得されることになる。
【００９６】
図５（ａ）に示すように、仮想モータ制御部６４は、仮想ｄｑ軸実電流Ｉｄ，Ｉｑ（仮想モータ作動状態の推定値すなわち仮想モータ作動状態の前回計算値の一例）をフィードバックすることにより、その仮想ｄｑ軸実電流Ｉｄ，Ｉｑと、仮想ｄｑ軸指令電流Ｉｄ＊，Ｉｑ＊との差が０に近づくように、仮想ｄｑ軸指令電流Ｉｄ＊，Ｉｑ＊を補正する。
【００９７】
仮想モータ制御部６４は、補正された仮想ｄ軸指令電流Ｉｄ＊に対応する仮想ｄ軸指令電圧Ｖｄ＊を計算する電流制御器７０と、補正された仮想ｑ軸指令電流Ｉｑ＊に対応する仮想ｑ軸指令電圧Ｖｑ＊を計算する電流制御器７２とを備えている。
【００９８】
図５（ａ）に示すように、仮想モータ制御部６４は、非干渉化制御器７４をさらに備えている。その非干渉化制御器７４は、実モータ状態検出部１５（図１参照）から供給された実モータ状態信号（実モータ位置θｍ）のもとで、ＵＶＷ−ｄｑ座標変換器６８から出力された仮想ｄｑ軸実電流Ｉｄ，Ｉｑに基づき、電流制御器７０および７２からそれぞれ出力された仮想ｄｑ軸指令電圧Ｖｄ＊，Ｖｑ＊を補正する。
【００９９】
仮想モータ６０を実モータ１２から切り離して使用する従来の技術では、非干渉化制御器７４は、仮想モータ位置θのもとで、仮想ｄｑ軸実電流Ｉｄ，Ｉｑに基づき、仮想ｄｑ軸指令電圧Ｖｄ＊，Ｖｑ＊を補正する。これに対し、本実施形態においては、非干渉化制御器７４が、仮想モータ位置θに代えて実モータ位置θｍを用いる。
【０１００】
その結果、本実施形態によれば、仮想ｄｑ軸指令電圧Ｖｄ＊，Ｖｑ＊が、仮想モータ位置θと実モータ位置θｍとが互いに一致するように、補正されることになる。
【０１０１】
図５（ａ）に示すように、仮想モータ制御部６４は、ｄｑ−ＵＶＷ座標変換器７６をさらに備えている。そのｄｑ−ＵＶＷ座標変換器７６は、実モータ位置θｍのもとで、仮想ｄｑ軸指令電圧Ｖｄ＊，Ｖｑ＊を仮想３相指令電圧Ｖｕ＊，Ｖｖ＊，Ｖｗ＊に変換する。
【０１０２】
仮想モータ６０を実モータ１２から切り離して使用する従来の技術では、ｄｑ−ＵＶＷ座標変換器７６は、仮想モータ位置θのもとで、仮想ｄｑ軸指令電圧Ｖｄ＊，Ｖｑ＊を仮想３相指令電圧Ｖｕ＊，Ｖｖ＊，Ｖｗ＊に変換する。これに対し、本実施形態においては、ｄｑ−ＵＶＷ座標変換器７６が、仮想モータ位置θに代えて実モータ位置θｍを用いる。
【０１０３】
その結果、本実施形態によれば、仮想３相指令電圧Ｖｕ＊，Ｖｖ＊，Ｖｗ＊が、仮想モータ位置θと実モータ位置θｍとが互いに一致するように、取得されることになる。
【０１０４】
このように、本実施形態においては、前記制御信号を生成するために、ＵＶＷ−ｄｑ座標変換器６８、非干渉化制御器７４およびｄｑ−ＵＶＷ座標変換器７６が、仮想モータ位置θに代えて実モータ位置θｍを参照する。
【０１０５】
しかし、仮想モータ６０が実モータ１２の入出力特性を十分に正確に再現するように教示される場合には、仮想モータ位置θと実モータ位置θｍとが互いに十分に一致することになる。この場合には、ＵＶＷ−ｄｑ座標変換器６８、非干渉化制御器７４およびｄｑ−ＵＶＷ座標変換器７６が実モータ位置θｍに代えて仮想モータ位置θを参照したとしても、前記制御信号が、仮想モータ位置θと実モータ位置θｍとが互いに一致するように、取得されることになる。
【０１０６】
図５（ａ）に示すように、仮想モータ制御部６４は、前記位相遅れ補償を行うために、Δθ推定器８０をさらに備えている。
【０１０７】
図６（ｂ）に例示するように、仮想モータ計算周期Ｔｖの長さを有する１計算サイクルの間に、次回の制御信号を決定するために仮想モータ６０を作動させる。その間、実モータ位置θｍが不変であれば、その次回の制御信号を決定するために用いられた実モータ位置θｍ(t)と、その決定された次回の制御信号が実モータ１２に入力され始めるとき（または、その制御信号に対する実モータ１２の応答が完了するとき）の実モータ位置θｍ(t+1)とが互いに一致するため、前記制御信号の誤差が発生しない。
【０１０８】
しかし、その間、実モータ位置θｍが変化すると、その次回の制御信号を決定するために用いられた実モータ位置θｍ(t)と、その決定された次回の制御信号が実モータ１２に入力され始めるとき（または、その制御信号に対する実モータ１２の応答が完了するとき）の実モータ位置θｍ(t+1)とが互いに一致しないため、前記制御信号の誤差が発生してしまう。
【０１０９】
そこで、本実施形態においては、Δθ推定器８０が、実モータ位置θｍが入力された時期と、次回の制御信号が実モータ１２に入力され始める時期（または、その制御信号に対する実モータ１２の応答が完了する時期）との間の期間に、実モータ位置θｍが変化することが予想される変化量Δθを推定する。
【０１１０】
その変化量Δθは、例えば、実モータ位置θｍが入力される時期と、次回の制御信号が実モータ１２に入力され始める時期（または、その制御信号に対する実モータ１２の応答が完了する時期）との間の期間の長さは、仮想モータ計算周期Ｔｖの長さを超えないし、それにほぼ近いという事実に着目し、仮想モータ計算周期Ｔｖの長さと、実モータ１２の角速度ωｍとの積として推定したり、仮想モータ計算周期Ｔｖの長さに応じて推定したり（仮想モータ計算周期Ｔｖの長さが可変である場合には、それが長いほど、変化量Δθが大きい可能性が高いから）、実モータ１２の角速度ωｍに応じて推定する（実モータ１２の角速度ωｍが高速であるほど、変化量Δθが大きい可能性が高いから）ことが可能である。
【０１１１】
図５（ａ）に示すように、仮想モータ制御部６４は、Δθ推定器８０を備えており、そのΔθ推定器８０は、上述のようにして、前記変化量Δθを取得すると、その変化量Δθを、同じ回の計算サイクルの当初において取得した実モータ位置θｍに加算し、それにより、ｄｑ−ＵＶＷ座標変換器７６に入力される実モータ位置θｍが、θｍ＋Δθに等しくなり、結局、実モータ１２の作動に追従するように補正される。
【０１１２】
図５（ａ）に示すように、ｄｑ−ＵＶＷ座標変換器７６は、そのように補正された実モータ位置θｍのもとで、仮想ｄｑ軸指令電圧Ｖｄ＊，Ｖｑ＊を仮想３相指令電圧Ｖｕ＊，Ｖｖ＊，Ｖｗ＊に変換し、その結果、それら仮想３相指令電圧Ｖｕ＊，Ｖｖ＊，Ｖｗ＊は、変化量Δθを見込んだ値として取得されることになる。これにより、前記制御信号が、実モータ位置θｍの将来の変化を予測して決定されるため、前述の位相遅れ補償がフィードフォワード制御の一種として行われることになる。
【０１１３】
図３に示すように、仮想モータ計算部５０は、前記制御信号が入力される仮想ＰＷＭインバータ９０をさらに備えている。前記制御信号は、複数のゲート信号Ｇｕ，Ｇｖ，Ｇｗ，Ｇｘ，Ｇｙ，Ｇｗであり、それらゲート信号のうち、ゲート信号Ｇｕ，Ｇｖ，Ｇｗは、仮想ＰＷＭインバータ９０に属するＵＶＷ各相の上アーム・スイッチング素子（図２に示す３つの上アーム・スイッチング素子２４に相当する）にそれぞれ供給されるパルス信号であり、これに対し、ゲート信号Ｇｘ，Ｇｙ，Ｇｗは、仮想ＰＷＭインバータ９０に属するＵＶＷ各相の下アーム・スイッチング素子（図２に示す３つの下アーム・スイッチング素子２４に相当する）にそれぞれ供給されるパルス信号である。このことは、実インバータ１６についても該当する。
【０１１４】
各ゲート信号Ｇｕ，Ｇｖ，Ｇｗ，Ｇｘ，Ｇｙ，Ｇｗは、パルス信号であり、各デューティ比Ｄｕ，Ｄｖ，Ｄｗ，Ｄｘ，Ｄｙ，Ｄｚを有する。また、仮想ＰＷＭインバータ９０には、直流電圧Ｖｄｃが仮想的に印加される。
【０１１５】
図７に示すように、仮想モータ６０に各相ごとに入力される仮想モータ端子電圧Ｖｕ，Ｖｖ，Ｖｗは、３つの式によって記述される。よって、仮想ＰＷＭインバータ９０は、各ゲートに入力されるゲート信号Ｇｕ，Ｇｖ，Ｇｗ，Ｇｘ，Ｇｙ，Ｇｗを、所定のサンプリング周期（例えば、１０ｎｓ)でサンプリングし、そのサンプリング結果を用いてデューティ比Ｄｕ，Ｄｖ，Ｄｗ，Ｄｘ，Ｄｙ，Ｄｚを計算する。各デューティ比Ｄは、例えば、各パルスのオン時間Ｔｏｎの長さをパルス周期（＝Ｔｏｎ＋Ｔｏｆｆ）で割り算することによって計算することが可能である。仮想ＰＷＭインバータ９０は、デューティ比Ｄｕ，Ｄｖ，Ｄｗ，Ｄｘ，Ｄｙ，Ｄｚの計算値（０以上１以下の数値）と、直流電圧Ｖｄｃの値（例えば、固定値）とを前述の３つの式に代入することにより、仮想モータ端子電圧Ｖｕ，Ｖｖ，Ｖｗを計算する。
【０１１６】
図８には、モータ制御装置１０の作動の一例がフローチャートで表されている。このフローチャートは、ＣＰＵ４４によって実行されるステップＳ１と、演算回路４２によって反復的に実行されるステップＳ２−Ｓ１１とを表している。それらステップＳ２−Ｓ１１は、１回ずつ実行されることにより、一回の計算サイクルを達成する。図８は、モータ制御装置１０を作動させるためにプロセッサ４０によって実行される仮想モータ制御プログラムを概略的にフローチャートで表している。
【０１１７】
この仮想モータ制御プログラムが実行されると、まず、ステップＳ１において、初期化が行われる。具体的には、例えば、実モータ状態検出部１５により、初期の実モータ位置θｉｎｉｔが取得され、同じ位置が、仮想モータ６０の初期の仮想モータ位置θｉｎｉｔとされる。
【０１１８】
次に、ステップＳ２が入力周期Ｔｉｎ（例えば、数１０μｓｅｃ）が経過するごとに１回ずつ実行される。このステップＳ２においては、今回の目標信号（制御目標値Ｔ０）が入力される。これに対し、ステップＳ３−Ｓ１１は、仮想モータ計算周期Ｔｖが経過するごとにそれぞれ１回ずつ実行される。
【０１１９】
続いて、ステップＳ３において、データ入力が行われ、具体的には、仮想モータ状態検出部６２からは仮想モータ電流信号Ｉｕ＊，Ｉｖ＊，Ｉｗ＊が、実モータ状態検出部１５からは実モータ位置信号θｍがそれぞれ入力される。
【０１２０】
その後、ステップＳ４−Ｓ６において、仮想モータ制御部６４が作動させられる。具体的には、まず、ステップＳ４において、ＵＶＷ−ｄｑ座標変換器６８、電流制御器７０，７２および非干渉化制御器７４により、実モータ位置信号θｍ（補正前の値）を基準にして、仮想モータ６０と実モータ１２とが、モータ位置（位相）に関して互いに同期するように、仮想ｄｑ軸指令電圧信号Ｖｄ＊，Ｖｑ＊が生成される。
【０１２１】
次に、ステップＳ５において、Δθ推定器８０により、変化量Δθが推定され、その推定された変化量Δθに基づき、実モータ位置θｍが補正される。その後、ｄｑ−ＵＶＷ座標変換器７６により、その補正された実モータ位置θｍのもとで、仮想ｄｑ軸指令電圧信号Ｖｄ＊，Ｖｑ＊が仮想３相指令電圧信号Ｖｕ＊，Ｖｖ＊，Ｖｗ＊に変換される。
【０１２２】
続いて、ステップＳ６において、ＰＷＭ信号発生器７８により、仮想３相指令電圧信号Ｖｕ＊，Ｖｖ＊，Ｖｗ＊がＰＷＭ信号（仮想モータ制御信号）Ｇｕ，Ｇｖ，Ｇｗ，Ｇｘ，Ｇｙ，Ｇｚに変換される。
【０１２３】
その後、ステップＳ７において、そのようにして取得されたＰＷＭ信号Ｇｕ，Ｇｖ，Ｇｗ，Ｇｘ，Ｇｙ，Ｇｚが仮想ＰＷＭインバータ９０に対して出力される。その結果、仮想ＰＷＭインバータ９０により、仮想モータ電圧信号Ｖｕ＊，Ｖｖ＊，Ｖｗ＊（仮想モータ６０の仮想モータ端子電圧Ｖｕ，Ｖｖ，Ｖｗを表す）が生成される。
【０１２４】
続いて、ステップＳ８において、その生成された仮想モータ電圧信号Ｖｕ＊，Ｖｖ＊，Ｖｗ＊が仮想モータ６０に対して出力されることにより、前述のモータモデルを用いることにより、仮想モータ電流信号Ｉｕ＊，Ｉｖ＊，Ｉｗ＊が生成される。
【０１２５】
その後、ステップＳ９において、仮想モータ状態検出部６２により、上記生成された仮想モータ電流信号Ｉｕ＊，Ｉｖ＊，Ｉｗ＊が出力される。具体的には、その仮想モータ電流信号Ｉｕ＊，Ｉｖ＊，Ｉｗ＊は、次回の計算サイクルでの計算に備えて、特定のメモリ（図示しない）に一時的に保存される。さらに、同じ仮想モータ電流信号Ｉｕ＊，Ｉｖ＊，Ｉｗ＊は、実コントローラ１３に出力され、これにより、実モータ１２が制御される。
【０１２６】
続いて、ステップＳ１０において、仮想モータ状態検出部６２から出力された仮想モータ電流信号Ｉｕ＊，Ｉｖ＊，Ｉｗ＊（各相ごとの仮想モータ電流値）がディスプレイ６６の画面上に、各相に関連づけて、かつ、時系列的に、かつ、テーブルまたはグラフという表現形態で表示される。これにより、実モータ１２の実モータ電流値Ｉｕ，Ｉｖ，Ｉｗの時間的推移の推定値が各相ごとに可視化される。
【０１２７】
その後、ステップＳ１１において、システム１１の主電源（図示しない）がオフにされたか否かが判定される。その主電源が未だオンである場合には、その判定がＮＯとなり、次回の計算サイクルでの計算のために、ステップＳ２に戻る。これに対し、主電源がオフにされた場合には、ステップＳ１１の判定がＹＥＳとなり、以上で、モータ制御装置１０の作動が終了する。
【０１２８】
なお付言するに、本実施形態には種々の変形例が存在する。一変形例においては、前述の位相遅れ補償を行うことなく、仮想モータ制御部６４が前記制御信号をフォードフォワード的に決定する。
【０１２９】
具体的には、この変形例に従うモータ制御装置１０は、上述の第１実施形態と基本的に共通する構成を有するが、仮想モータ制御部６４は、図５（ｂ）に示すものに変更される。
【０１３０】
具体的には、この変形例においては、仮想モータ制御部６４が、Δθ推定器８０を備えておらず、ｄｑ−ＵＶＷ座標変換器７６は、同じ回の計算サイクルの当初において取得した実モータ位置θｍのもとで、仮想ｄｑ軸指令電圧Ｖｄ＊，Ｖｑ＊を仮想３相指令電圧Ｖｕ＊，Ｖｖ＊，Ｖｗ＊に変換し、その結果、それら仮想３相指令電圧Ｖｕ＊，Ｖｖ＊，Ｖｗ＊は、変化量Δθを無視した値として取得されることになる。
【０１３１】
この変形例は、仮想モータ計算周期Ｔｖの長さが短いか、および／または、実モータ１２の角速度が低速であるために、変化量Δθを無視しても支障を来たさない場合に、Δθ推定器８０を使用せずに済む点で有利である。
【０１３２】
この変形例については、モータ制御装置１０の作動の一例を表すタイミングチャートが、図６（ｃ）に示すものに変更され、また、モータ制御装置１０の作動の一例を表すフローチャートは、図８に示すフローチャートと基本的に共通するが、ステップＳ５においては、Δθ推定器８０による変化量Δθの推定が省略され、ｄｑ−ＵＶＷ座標変換器７６により、実モータ位置θｍのもとで、ステップＳ４において生成された仮想ｄｑ軸指令電圧信号が仮想３相指令電圧信号に変換される。
【０１３３】
図９には、実モータ１２を制御するために実コントローラ１３においてプロセッサ（図示しない）によって反復的に実行される実モータ制御プログラムがフローチャートで概念的に表されている。この実モータ制御プログラムが反復的に実行されることにより、図６（ａ）に示すように、実モータ１２の制御（実モータ制御）が、仮想モータ計算周期Ｔｖと同じ制御周期で反復される。
【０１３４】
この実モータ制御プログラムが実行されると、まず、ステップＳ５１において、仮想モータ計算部５０から最新の仮想モータ電流信号Ｉｕ＊，Ｉｖ＊，Ｉｗ＊が入力される。
【０１３５】
次に、ステップＳ５２において、それら入力された仮想モータ電流信号Ｉｕ＊，Ｉｖ＊，Ｉｗ＊に基づき、それら仮想モータ電流値Ｉｕ＊，Ｉｖ＊，Ｉｗ＊によって表される目標物理量を実現するのに適当な実モータ１２のためのＰＷＭ信号（実モータ制御信号）Ｇｕ，Ｇｖ，Ｇｗ，Ｇｘ，Ｇｙ，Ｇｚが生成される。
【０１３６】
続いて、ステップＳ５３において、それら生成されたＰＷＭ信号Ｇｕ，Ｇｖ，Ｇｗ，Ｇｘ，Ｇｙ，Ｇｚが実インバータ／パワーアンプ１４に出力され、それにより、実モータ１２が制御される。
【０１３７】
その後、ステップＳ５４において、実モータ１２の実際の作動状態（本実施形態においては、実モータ位置θｍ）が実モータ状態検出部１５によって検出される。その検出された実モータ作動状態を表す信号は仮想モータ計算部５０に出力される。
【０１３８】
以上で、１制御サイクル分の実モータ制御が終了し、続いて、ステップＳ５１に戻り、次回の制御サイクルについての実モータ制御が開始される。
【０１３９】
本実施形態によれば、実モータ１２の回転角を検出する角度センサさえ存在すれば、その角度センサより通常高価な電流センサを実モータ１２に追加しなくても、そのような電流センサの代わりに仮想モータ６０を用いることにより、実モータ１２の電流を安価に検出することが可能となる。
【０１４０】
本実施形態においては、仮想モータ状態検出部６２が、仮想モータ６０の作動状態として、仮想モータ６０によって計算された仮想モータ電流値Ｉｕ＊，Ｉｖ＊，Ｉｗ＊を検出する。
【０１４１】
仮想モータ状態検出部６２の別の例は、それら仮想モータ電流値Ｉｕ＊，Ｉｖ＊，Ｉｗ＊という物理量に加えて、それら仮想モータ電流値Ｉｕ＊，Ｉｖ＊，Ｉｗ＊に基づき、前述の運動方程式、電圧方程式およびフレミング方程式を用いることによって計算される他の物理量、例えば、仮想トルクＴｅ＊、仮想モータ速度ωｍ＊、仮想モータ位置θｍ＊、仮想３相誘起電圧Ｅｕ＊，Ｅｖ＊，Ｅｗ＊、仮想３相磁束Ｆｕ＊，Ｆｖ＊，Ｆｗ＊などを検出することが可能である。
【０１４２】
以上の説明から明らかなように、本実施形態においては、仮想モータ６０が、各計算サイクルごとに、仮想モータ制御信号が入力されると、その入力された仮想モータ制御信号に基づき、その仮想モータ制御信号と同じ実モータ制御信号が実モータ１２に出力された場合にその実モータ制御信号に応答して実現される実モータ１２の作動状態を推定し、その推定された作動状態を仮想モータ６０の仮想作動状態として出力する。ここに、「仮想作動状態」の一例は、仮想モータ電流Ｉｕ＊，Ｉｖ＊，Ｉｗ＊である。
【０１４３】
さらに、仮想モータ制御部６４が、各計算サイクルごとに、前記目標信号に基づき、かつ、前回の計算サイクルにおいて仮想モータ６０から出力された仮想作動状態をフィードバックすることにより、仮想モータ制御信号を決定する。
【０１４４】
さらに、同じ回の計算サイクルと同期する制御サイクルにおいて、実コントローラ１３が、仮想モータ６０から取得される信号に基づいて実モータ制御信号を決定し、その決定された実モータ制御信号を実モータ１２に出力する。ここに、「仮想モータ６０から取得される信号」の一例は、最新の仮想モータ電流Ｉｕ＊，Ｉｖ＊，Ｉｗ＊であって最新の仮想モータ制御信号を決定するために仮想モータ制御部６４が参照したものと同じものである。
【０１４５】
これに代えて、別の例においては、「仮想モータ６０から取得される信号」が、最新の仮想モータ電流Ｉｕ＊，Ｉｖ＊，Ｉｗ＊に代わるかまたはそれに加えられる別の物理量、すなわち、その最新の仮想モータ電流Ｉｕ＊，Ｉｖ＊，Ｉｗ＊が仮想モータ６０から出力されたタイミングと実質的に同じタイミングで仮想モータ状態検出部６２によって計算された別の物理量、例えば、上述のように、仮想トルクＴｅ＊、仮想モータ速度ωｍ＊、仮想モータ位置θｍ＊、仮想３相誘起電圧Ｅｕ＊，Ｅｖ＊，Ｅｗ＊、仮想３相磁束Ｆｕ＊，Ｆｖ＊，Ｆｗ＊などのうちの少なくとも一つである。
【０１４６】
仮想モータ制御信号を決定するために参照される第１物理量も、実モータ制御信号を決定するために参照される第２物理量も、仮想モータ６０から直接的にまたは間接的に取得される物理量であるとしても、それら第１物理量と第２物理量とが種類に関して互いに一致することは不可欠ではなく、実質的に同じタイミングで仮想モータ６０から直接的にまたは間接的に取得された物理量同士であるという条件さえ満たされれば足りる。そのような物理量同士である限り、物理的にみて互いに等価であって、相互に置換可能であるからである。
【０１４７】
＜第２実施形態＞
【０１４８】
次に、本発明の第２実施形態に従うモータ制御装置１００を図１０ないし図１３を参照することにより説明する。ただし、本実施形態は、第１実施形態と共通する要素があるため、共通する要素については、同一の符号または名称を付して引用することにより、重複した説明を省略し、異なる要素についてのみ、詳細に説明する。
【０１４９】
前述の第１実施形態においては、仮想モータ状態検出部６２が、仮想３相実電流値Ｉｕ＊，Ｉｖ＊，Ｉｗ＊を実モータ１２の実３相実電流値Ｉｕ，Ｉｖ，Ｉｗとして検出する電流センサとして機能する。
【０１５０】
これに対し、本実施形態においては、仮想モータ状態検出部６２が、電流センサとして機能するのみならず、入力電圧センサ、トルクセンサおよび誘起電圧センサとしても機能する。
【０１５１】
入力電圧センサは、仮想モータ６０の各相仮想巻線に印加される電圧である仮想３相入力電圧Ｖｕ＊，Ｖｖ＊，Ｖｗ＊を、実モータ１２の各相実巻線に印加される電圧である実３相入力電圧Ｖｕ，Ｖｖ，Ｖｗとして検出する。
【０１５２】
トルクセンサは、仮想モータ６０の仮想シャフト（実モータ１２のシャフト１３に相当する）に作用するトルクである仮想トルクＴｅ＊を、実モータ１２のシャフト１３に作用するトルクである実トルクＴｅとして検出する。
【０１５３】
誘起電圧センサは、仮想モータ６０の各相仮想巻線に誘起される電圧である仮想３相誘起電圧Ｅｕ＊，Ｅｖ＊，Ｅｗ＊を、実モータ１２の各相実巻線に誘起される電圧である実３相誘起電圧Ｅｕ，Ｅｖ，Ｅｗとして検出する。
【０１５４】
さらに、前述の第１実施形態においては、実コントローラ１３が、仮想モータ計算部５０から出力された仮想モータ電流信号Ｉｕ＊，Ｉｖ＊，Ｉｗ＊に基づき、実モータ１２のためのＰＷＭ信号（実モータ制御信号）Ｇｕ，Ｇｖ，Ｇｗ，Ｇｘ，Ｇｙ，Ｇｚを決定する。
【０１５５】
これに対し、本実施形態においては、実コントローラ１３が、仮想モータ計算部５０に入力される目標信号と同じ目標信号に基づき、実モータ１２のためのＰＷＭ信号Ｇｕ，Ｇｖ，Ｇｗ，Ｇｘ，Ｇｙ，Ｇｚを決定する。
【０１５６】
図１１には、本実施形態に従う仮想モータ計算部５０が機能ブロック図で概念的に表されている。この仮想モータ計算部５０は、第１実施形態に従う仮想モータ計算部５０（図ｙ３）に対し、仮想モータ状態検出部６２が仮想モータ電流信号Ｉｕ＊，Ｉｖ＊，Ｉｗ＊と、仮想モータ電圧信号Ｖｕ＊，Ｖｖ＊，Ｖｗ＊と、仮想モータトルクＴｅ＊と、仮想モータ誘起電圧信号Ｅｕ＊，Ｅｖ＊，Ｅｗ＊とをディスプレイ６６に出力する点と、仮想モータ状態検出部６２が仮想モータ電流信号Ｉｕ＊，Ｉｖ＊，Ｉｗ＊を実コントローラ１３に出力しない点とを除き、共通する。
【０１５７】
図１２には、モータ制御装置１００を作動させるためにプロセッサ４０によって実行される仮想モータ制御プログラムが概念的にフローチャートで表されている。この仮想モータ制御プログラムは、図８に示すものと共通するステップが多く、異なるのは、ステップＳ９がステップ９ａに、ステップＳ１０がステップＳ１０ａにそれぞれ置換されている点のみである。
【０１５８】
ステップＳ９ａにおいては、ステップＳ９に準じて、仮想モータ状態検出部６２により、仮想モータ電流信号Ｉｕ＊，Ｉｖ＊，Ｉｗ＊と、仮想モータ電圧信号Ｖｕ＊，Ｖｖ＊，Ｖｗ＊と、仮想モータトルクＴｅ＊と、仮想モータ誘起電圧信号Ｅｕ＊，Ｅｖ＊，Ｅｗ＊とが出力される。ステップＳ１０ａにおいては、ステップＳ１０に準じて、仮想モータ状態検出部６２によって検出された複数の仮想モータ状態量がディスプレイ６６の画面上に表示される。
【０１５９】
図１３には、実モータ１２を制御するために実コントローラ１３においてプロセッサ（図示しない）によって実行される実モータ制御プログラムがフローチャートで概念的に表されている。この実モータ制御プログラムは、図９に示すものと基本的に共通する。
【０１６０】
具体的には、この実モータ制御プログラムが実行されると、まず、ステップＳ５６において、前記目標信号が入力される。
【０１６１】
次に、ステップＳ５７において、その入力された目標信号に基づき、その目標信号によって表される物理量を実現するのに適当な、実モータ１２のためのＰＷＭ信号（実モータ制御信号）Ｇｕ，Ｇｖ，Ｇｗ，Ｇｘ，Ｇｙ，Ｇｚが生成される。
【０１６２】
続いて、ステップＳ５８において、それら生成されたＰＷＭ信号Ｇｕ，Ｇｖ，Ｇｗ，Ｇｘ，Ｇｙ，Ｇｚが実インバータ／パワーアンプ１４に出力され、それにより、実モータ１２が制御される。その後、ステップＳ５９において、実モータ１２の実際の作動状態（本実施形態においては、実モータ位置θｍ）が実モータ状態検出部１５によって検出される。その検出された実モータ作動状態を表す信号は、仮想モータ制御部６４に出力される。
【０１６３】
以上で、１制御サイクル分の実モータ制御が終了し、続いて、ステップＳ５６に戻り、次回の制御サイクルについての実モータ制御が開始される。
【０１６４】
＜第３実施形態＞
【０１６５】
次に、本発明の第３実施形態に従うモータ制御装置２００を図１４ないし図１６を参照することにより説明する。ただし、本実施形態は、第１実施形態と共通する要素があるため、共通する要素については、同一の符号または名称を付して引用することにより、重複した説明を省略し、異なる要素についてのみ、詳細に説明する。
【０１６６】
前述の第１実施形態においては、実コントローラ１３が、仮想モータ計算部５０から出力された仮想モータ電流信号Ｉｕ＊，Ｉｖ＊，Ｉｗ＊に基づき、実モータ１２のためのＰＷＭ信号（制御信号）Ｇｕ，Ｇｖ，Ｇｗ，Ｇｘ，Ｇｙ，Ｇｚを決定する。これに対し、仮想モータ制御部６４は、目標信号と、仮想モータ電流信号Ｉｕ＊，Ｉｖ＊，Ｉｗ＊と、実モータ位置θｍとに基づき、仮想モータ６０のためのＰＷＭ信号（仮想モータ制御信号）Ｇｕ，Ｇｖ，Ｇｗ，Ｇｘ，Ｇｙ，Ｇｚを決定する。したがって、同じ制御サイクルにつき、実モータ１２に供給されるＰＷＭ信号（実モータ制御信号）Ｇｕ，Ｇｖ，Ｇｗ，Ｇｘ，Ｇｙ，Ｇｚと、仮想モータ６０に供給されるＰＷＭ信号（仮想モータ制御信号）Ｇｕ，Ｇｖ，Ｇｗ，Ｇｘ，Ｇｙ，Ｇｚとは、完全には互いに一致しない。
【０１６７】
これに対し、本実施形態においては、図１４および図１５に示すように、仮想モータ制御部６４が、第１実施形態と同様にして、目標信号と、仮想モータ電流信号Ｉｕ＊，Ｉｖ＊，Ｉｗ＊と、実モータ位置θｍとに基づき、仮想モータ６０のためのＰＷＭ信号（仮想モータ制御信号）Ｇｕ，Ｇｖ，Ｇｗ，Ｇｘ，Ｇｙ，Ｇｚを決定すると、それらＰＷＭ信号Ｇｕ，Ｇｖ，Ｇｗ，Ｇｘ，Ｇｙ，Ｇｚを仮想ＰＷＭインバータ９０を経由して仮想モータ６０に出力するとともに、完全に同じＰＷＭ信号Ｇｕ，Ｇｖ，Ｇｗ，Ｇｘ，Ｇｙ，Ｇｚを実モータ制御信号として実インバータ／パワーアンプ１４を経由して実モータ１２にも出力する。
【０１６８】
このように、本実施形態においては、仮想モータ計算部５０が完全に実モータ１２を制御するため、実コントローラ１３に相当する要素が存在しない。これに対し、第１実施形態においては、仮想モータ計算部５０が部分的にしか実モータ１２を制御しないため、実コントローラ１３が追加されている。
【０１６９】
図１６には、モータ制御装置２００を作動させるためにプロセッサ４０によって実行される仮想モータ制御プログラムが概念的にフローチャートで表されている。この仮想モータ制御プログラムは、図８に示すものと共通するステップが多く、異なるのは、ステップＳ６ａがステップＳ６とＳ７との間に追加されている点のみである。このステップＳ６ａは、ステップＳ６において決定されたＰＷＭ信号Ｇｕ，Ｇｖ，Ｇｗ，Ｇｘ，Ｇｙ，Ｇｚを実インバータ／パワーアンプ１４に出力するために追加されている。
【０１７０】
＜第４実施形態＞
【０１７１】
次に、本発明の第４実施形態に従うモータ制御装置３００を図１７ないし図２０を参照することにより説明する。ただし、本実施形態は、第１実施形態と共通する要素があるため、共通する要素については、同一の符号または名称を付して引用することにより、重複した説明を省略し、異なる要素についてのみ、詳細に説明する。
【０１７２】
１．実モータ状態検出部１５の機能について
【０１７３】
前述の第１実施形態においては、実モータ状態検出部１５が実モータ位置θｍを検出する。これに対し、本実施形態においては、図１７に示すように、実モータ状態検出部１５が、実モータ位置θｍのみならず、実モータ１２の実３相実電流値Ｉｕ，Ｉｖ，Ｉｗおよび実３相実電圧値Ｖｕ，Ｖｖ，Ｖｗも検出する。そのため、この実モータ状態検出部１５は、ロータリ・エンコーダのみならず、通常の電流センサおよび電圧センサをも有するように設計されている。
【０１７４】
２．実コントローラ１３の機能について
【０１７５】
前述の第１実施形態においては、実コントローラ１３が、仮想モータ計算部５０から出力された仮想モータ電流信号Ｉｕ＊，Ｉｖ＊，Ｉｗ＊に基づき、実モータ１２のためのＰＷＭ信号（制御信号）Ｇｕ，Ｇｖ，Ｇｗ，Ｇｘ，Ｇｙ，Ｇｚを決定する。これに対し、仮想モータ制御部６４は、目標信号と、仮想モータ電流信号Ｉｕ＊，Ｉｖ＊，Ｉｗ＊と、実モータ位置θｍとに基づき、仮想モータ６０のためのＰＷＭ信号（制御信号）Ｇｕ，Ｇｖ，Ｇｗ，Ｇｘ，Ｇｙ，Ｇｚを決定する。したがって、同じ制御サイクルにつき、実モータ１２に供給されるＰＷＭ信号（実モータ制御信号）Ｇｕ，Ｇｖ，Ｇｗ，Ｇｘ，Ｇｙ，Ｇｚと、仮想モータ６０に供給されるＰＷＭ信号（仮想モータ制御信号）Ｇｕ，Ｇｖ，Ｇｗ，Ｇｘ，Ｇｙ，Ｇｚとは、完全には互いに一致しない。
【０１７６】
これに対し、本実施形態においては、図１７および図１８に示すように、仮想モータ制御部６４が、第１実施形態と同様にして、目標信号と、仮想モータ電流信号Ｉｕ＊，Ｉｖ＊，Ｉｗ＊と、実モータ位置θｍとに基づき、仮想モータ６０のためのＰＷＭ信号（仮想モータ制御信号）Ｇｕ，Ｇｖ，Ｇｗ，Ｇｘ，Ｇｙ，Ｇｚを決定するとともに、それらＰＷＭ信号Ｇｕ，Ｇｖ，Ｇｗ，Ｇｘ，Ｇｙ，Ｇｚを決定するために用いられた仮想モータ電流信号Ｉｕ＊，Ｉｖ＊，Ｉｗ＊を実コントローラ１３に出力する。
【０１７７】
さらに、本実施形態においては、実コントローラ１３が、仮想モータ制御部６４から出力された仮想モータ電流信号Ｉｕ＊，Ｉｖ＊，Ｉｗ＊を目標電流信号として用い、かつ、実モータ状態検出部１５から出力された実モータ１２の実モータ電流値Ｉｕ，Ｉｖ，Ｉｗをフィードバックすることにより、実モータ１２のためのＰＷＭ信号（実モータ制御信号）Ｇｕ，Ｇｖ，Ｇｗ，Ｇｘ，Ｇｙ，Ｇｚを決定する。
【０１７８】
３．仮想モータ状態検出部６２の機能について
【０１７９】
前述の第１実施形態においては、仮想モータ状態検出部６２が、仮想モータ電流値Ｉｕ＊，Ｉｖ＊，Ｉｗ＊を実モータ１２の実モータ電流値Ｉｕ，Ｉｖ，Ｉｗの推定値として検出する電流センサとして機能する。これにより、仮想モータ６０を用いることにより、実モータ１２の実際の作動特性として実モータ１２の電流特性が出力される。
【０１８０】
これに対し、本実施形態においては、図１７および図１８に示すように、仮想モータ状態検出部６２が、電流センサとして機能するのみならず、仮想モータ電圧値Ｖｕ＊，Ｖｖ＊，Ｖｗ＊を実モータ１２の実モータ電圧値Ｖｕ，Ｖｖ，Ｖｗの推定値として検出する電圧センサとしても機能する。これにより、本実施形態においては、仮想モータ６０を用いることにより、実モータ１２の実際の作動特性として実モータ１２の電流特性のみならず電圧特性も出力される。
【０１８１】
４．実モータ１２の機械損の推定について
【０１８２】
図１７および図１８に示すように、モータ制御装置３００は、さらに、仮想モータ電力計算部３０２を備えている。その仮想モータ電力計算部３０２は、仮想モータ状態検出部６２から出力された仮想モータ電流値Ｉｕ＊，Ｉｖ＊，Ｉｗ＊と仮想モータ電圧値Ｖｕ＊，Ｖｖ＊，Ｖｗ＊との積として、各相ごとに、かつ、実モータ１２の各回転角θｍごとに仮想モータ電力Ｐｖを計算する。
【０１８３】
図１７に示すように、モータ制御装置３００は、さらに、実モータ電力計算部３０４を備えている。その実モータ電力計算部３０４は、実モータ状態検出部１５から出力された実モータ電流値Ｉｕ，Ｉｖ，Ｉｗと実モータ電圧値Ｖｕ，Ｖｖ，Ｖｗとの積として、各相ごとに、かつ、実モータ１２の各回転角θｍごとに実モータ電力Ｐｍを計算する。
【０１８４】
図１７に示すように、モータ制御装置３００は、さらに、機械損計算部３０６を備えている。
【０１８５】
ところで、よく知られているように、実モータ１２は、電気エネルギーを機械エネルギーに変換する機械であり、そのエネルギー変換に際し、入力された電気エネルギーの一部が熱エネルギーとして実モータ１２の内部で消費される。そのようにして消費された電気エネルギーが、実モータ１２の全損失である。
【０１８６】
この全損失は、鉄損と銅損と機械損とに分類される。、また、負荷損は、銅損に分類される。実モータ１２の負荷率に依存しない固定損、負荷率に依存する負荷損、漂遊負荷損などに分類される。固定損は、鉄損と機械損に分類され、また、負荷損は、銅損に分類される。
【０１８７】
鉄損は、実モータ１２の鉄心（コア）に渦電流が生じることによって発生する損失であり、高速・低トルク域において有意となる。鉄損は、実モータ１２の負荷率に依存しない固定損の一種である。
【０１８８】
機械損は、実モータ１２の回転に際して機械的な要因によって発生する損失であり、前記ロータと前記ステータとの間のベアリングの摩擦抵抗による損失や、空気抵抗による風損、不適切なエア・ギャップなどを含む。機械損は、実モータ１２の負荷率に依存しない要素と、依存する要素とを含んでいる。
【０１８９】
銅損は、前記ロータの銅巻線および前記ステータの銅巻線の電気抵抗によって発生する損失であり、低速・高トルク域において有意となる。銅損は、実モータ１２の負荷率に依存する負荷損の一種である。
【０１９０】
ここで、実モータ１２の全損失は、鉄損および銅損という電気的な要因によって発生する損失と、機械的な要因によって発生する機械損との和に等しいと仮定することが可能である。これに対し、仮想モータ６０の入出力特性は、実モータ１２の鉄損および銅損を反映するように設計されているが、機械損を考慮していない。したがって、仮想モータ６０の全損失は、鉄損および銅損という電気的な要因によって発生する損失に等しいと仮定することが可能である。
【０１９１】
一方、実モータ１２に入力された電気エネルギーのうち、機械エネルギーに変換された部分は、実モータ１２の電力である実モータ電力Ｐｍとして計算することが可能である。同様に、仮想モータ６０に入力された電気エネルギーのうち、機械エネルギーに変換された部分は、仮想モータ６０の電力である仮想モータ電力Ｐｖとして計算することが可能である。
【０１９２】
仮想モータ電力Ｐｖの計算値は、実モータ１２の機械損を含んでいない。そのため、仮想モータ電力Ｐｖから実モータ電力Ｐｍを引き算して得られる値ΔＰ（＝Ｐｖ−Ｐｍ）は、実モータ１２の機械損ＭＬの推定値を意味することになる。
【０１９３】
このような知見に基づき、本実施形態においては、機械損計算部３０６が、仮想モータ電力計算部３０２によって計算された仮想モータ電力Ｐｖから、実モータ電力計算部３０４によって計算された実モータ電力Ｐｍを引き算することにより、実モータ１２の機械損ＭＬの推定値を、各相ごとに、かつ、実モータ１２の各回転角θｍごとに計算する。
【０１９４】
本実施形態においては、前述の他のいくつかの実施形態と同様に、仮想モータ６０が実モータ１２と位相に関して実質的に同期するように制御される。この同期のおかげで、実質的に同じタイミングで取得された仮想モータ電力Ｐｖ（最新値）および実モータ電力Ｐｍ（最新値）は、仮想モータ６０の仮想モータ位置θと実モータ１２の実モータ位置θｍとが互いに実質的に一致する状況で取得されることが保証される。したがって、それら仮想モータ電力Ｐｖと実モータ電力Ｐｍとの差が実モータ１２の機械損ＭＬを表す正確性が向上する。
【０１９５】
このように、本実施形態においては、実モータ１２の機械損ＭＬの推定値が、実モータ１２の回転角θｍをパラメータとする関数ｆ（θｍ）として表現されるが、これに代えて、例えば、実モータ１２の機械損ＭＬの推定値を、実モータ１２の回転角θｍと、実モータ１２の負荷率Ｒとをそれぞれパラメータとする関数ｇ（θｍ，Ｒ）として表現することが可能である。
【０１９６】
さらに、本実施形態においては、図１７に示すように、モータ制御装置３００が、さらに、メモリ３１０を備えている。そのメモリ３１０には、機械損計算部３０６によって計算された機械損ＭＬの推定値が、実モータ１２の回転角θｍをパラメータとする関数ｆ（θｍ）として保存される。
【０１９７】
実モータ１２の機械損ＭＬが推定できれば、その機械損ＭＬが減少するように実モータ１２の設計を変更したり製造工程を改善することが容易となる。具体的には、例えば、実モータ１２において、使用するグリスを低損失のものに変更したり、ベアリングの摩擦抵抗を最適化したり、コイルの数や配向・配列を最適化したり、エア・ギャップを最適化したり、熱の流れを最適化することが容易となる。
【０１９８】
以上の説明から明らかなように、本実施形態においては、実モータ状態検出部１５と、仮想モータ状態検出部６２と、仮想モータ電力計算部３０２と、実モータ電力計算部３０４と、機械損計算部３０６とが互いに共同して、前記「実モータ作動特性出力部」の一例を構成し、また、前記「実モータ機械損取得部」の一例を構成する。
【０１９９】
図１９には、モータ制御装置３００を作動させるためにプロセッサ４０によって実行される仮想モータ制御プログラムが概念的にフローチャートで表されている。この仮想モータ制御プログラムは、図８に示すものと共通するステップが多く、異なるのは、ステップＳ１０が一連のステップＳ２１−Ｓ２７で置換されている点のみである。
【０２００】
ステップＳ２１においては、仮想モータ状態検出部６２から出力された仮想モータ電流値Ｉｕ＊，Ｉｖ＊，Ｉｗ＊と仮想モータ電圧値Ｖｕ＊，Ｖｖ＊，Ｖｗ＊が仮想モータ電力計算部３０２に入力される。
【０２０１】
次に、ステップＳ２２において、その仮想モータ電力計算部３０２により、仮想モータ電流値Ｉｕ＊，Ｉｖ＊，Ｉｗ＊と仮想モータ電圧値Ｖｕ＊，Ｖｖ＊，Ｖｗ＊との積として、各相ごとに仮想モータ電力Ｐｖが計算される。その計算された仮想モータ電力Ｐｖは機械損計算部３０６に出力される。
【０２０２】
続いて、ステップＳ２３において、ステップＳ２１と同様にして、実モータ状態検出部１５から出力された実モータ電流値Ｉｕ，Ｉｖ，Ｉｗと実モータ電圧値Ｖｕ，Ｖｖ，Ｖｗが実モータ電力計算部３０４に入力される。
【０２０３】
その後、ステップＳ２４において、ステップＳ２２と同様にして、その実モータ電力計算部３０４により、実モータ電流値Ｉｕ，Ｉｖ，Ｉｗと実モータ電圧値Ｖｕ，Ｖｖ，Ｖｗとの積として、各相ごとに実モータ電力Ｐｍが計算される。その計算された実モータ電力Ｐｍは機械損計算部３０６に出力される。
【０２０４】
続いて、ステップＳ２５において、機械損計算部３０６により、仮想モータ電力計算部３０２によって計算された仮想モータ電力Ｐｖから、実モータ電力計算部３０４によって計算された実モータ電力Ｐｍを引き算することにより、実モータ１２の機械損ＭＬの推定値が各相ごとに計算される。
【０２０５】
その後、ステップＳ２６において、実モータ状態検出部１５から最新の実モータ角度（すなわち、実モータ位置）θｍが入力される。
【０２０６】
続いて、ステップＳ２７において、実モータ１２の機械損ＭＬの推定値が、各相ごとに、実モータ１２の回転角θｍをパラメータとする関数ｆ（θｍ）として、メモリ３１０に保存される。すなわち、最新の機械損ＭＬが最新の実モータ位置θｍに関連付けてメモリ３１０に保存されるのである。その後、ステップＳ１１に移行する。
【０２０７】
図２０には、実モータ１２を制御するために実コントローラ１３においてプロセッサ（図示しない）によって反復的に実行される実モータ制御プログラムがフローチャートで概念的に表されている。この実モータ制御プログラムは、図９に示すものと基本的に共通する。
【０２０８】
具体的には、この実モータ制御プログラムが実行されると、まず、ステップＳ６１において、ステップＳ５１と同様にして、仮想モータ計算部５０から最新の仮想モータ電流信号Ｉｕ＊，Ｉｖ＊，Ｉｗ＊が目標電流信号として入力される。
【０２０９】
次に、ステップＳ６２において、実モータ状態検出部１５から最新の実モータ電流信号Ｉｕ，Ｉｖ，Ｉｗが入力される。続いて、ステップＳ６３において、それら入力された仮想モータ電流信号Ｉｕ＊，Ｉｖ＊，Ｉｗ＊と実モータ電流信号Ｉｕ，Ｉｖ，Ｉｗとに基づき、前記目標電流信号によって表される物理量を実現するのに適当な、実モータ１２のためのＰＷＭ信号（実モータ制御信号）Ｇｕ，Ｇｖ，Ｇｗ，Ｇｘ，Ｇｙ，Ｇｚが生成される。
【０２１０】
続いて、ステップＳ６４において、それら生成されたＰＷＭ信号Ｇｕ，Ｇｖ，Ｇｗ，Ｇｘ，Ｇｙ，Ｇｚが実インバータ／パワーアンプ１４に出力され、それにより、実モータ１２が制御される。その後、ステップＳ６５において、実モータ１２の実際の作動状態（本実施形態においては、実モータ位置θｍ、実モータ電流値Ｉｕ，Ｉｖ，Ｉｗ、実モータ電圧値Ｖｕ，Ｖｖ，Ｖｗ）が実モータ状態検出部１５によって検出される。その検出された実モータ作動状態を表す複数の信号は、それぞれ、該当する要素に出力される。
【０２１１】
以上で、１制御サイクル分の実モータ制御が終了し、続いて、ステップＳ６１に戻り、次回の制御サイクルについての実モータ制御が開始される。
【０２１２】
＜第５実施形態＞
【０２１３】
次に、本発明の第５実施形態に従うモータ制御装置４００を図２１ないし図２３を参照することにより説明する。ただし、本実施形態は、第４実施形態と共通する要素があるため、共通する要素については、同一の符号または名称を付して引用することにより、重複した説明を省略し、異なる要素についてのみ、詳細に説明する。
【０２１４】
上述の第４実施形態においては、実モータ１２の実モータ電力Ｐｍと仮想モータ６０の仮想モータ電力Ｐｖとの差が実モータ１２の機械損を反映する可能性があるという事実に着目し、実モータ１２と仮想モータ６０との電力差を用いて実モータ１２の機械損が推定される。
【０２１５】
これに対し、本実施形態においては、実モータ１２の実際の作動状態量と仮想モータ６０の作動状態量すなわち実モータ１２の作動状態量の推定値との差があれば、その差は、仮想モータ６０の教示誤差に起因すると仮定し、その仮定のもと、その差が減少するように、仮想モータ６０が表現するモータモデルが自動的に修正される。
【０２１６】
図２１に示すように、そのような自動モデル修正のため、モータ制御装置４００は、図１７に示す仮想モータ電力計算部３０２、実モータ電力計算部３０４、機械損計算部３０６およびメモリ３１０に代えて、比較部４０２およびモデル修正部４０４を有する。
【０２１７】
比較部４０２は、実モータ電流信号Ｉｕ，Ｉｖ，Ｉｗによって表される電流値と仮想モータ電流信号Ｉｕ＊，Ｉｖ＊，Ｉｗ＊によって表される電流値との差である電流誤差ΔＩを、各相ごとに計算する。モデル修正部４０４は、その計算された電流誤差ΔＩが減少するように、仮想モータ６０のモータモデルを自動的に修正する。それら比較部４０２およびモデル修正部４０４は、ＣＰＵ４４によって実行される。
【０２１８】
具体的には、モデル修正部４０４は、前記計算された電流誤差ΔＩに基づき、その電流誤差ΔＩが減少するように、仮想モータ６０の入出力特性を定義する前記モータモデル（図４参照）を修正する。モデル修正部４０４は、例えば、前記計算された電流誤差ΔＩに基づき、図４に示すインダクタンス行列のうち、該当する要素を、電流誤差ΔＩと要素の値との間に予め定められた関係（例えば、経験的にまたは実験的に取得される）を表すテーブルに従って修正する。このモデル修正部４０４は、仮想モータ６０と実モータ１２とを一緒に作動させることにより、実モータ１２の実際の入出力特性を仮想モータ６０に教示するティーチングを実行する。
【０２１９】
図２２には、本実施形態に従う仮想モータ計算部５０が機能ブロック図で概念的に表されている。この仮想モータ計算部５０は、第４実施形態に従う仮想モータ計算部５０に対し、仮想モータ状態検出部６２が仮想モータ電流信号Ｉｕ＊，Ｉｖ＊，Ｉｗ＊を比較部４０２に出力する点を除き、共通する。
【０２２０】
図２３には、比較部４０２およびモデル修正部４０４の作動の一例がフローチャートで概念的に表されている。それら比較部４０２およびモデル修正部４０４は、ＣＰＵ４４により、誤差監視計算周期Ｔｃ（例えば、数１０μｓｅｃ）で反復的に実行される。
【０２２１】
具体的には、まず、ステップＳ１２１において、比較部４０２により、仮想モータ６０の仮想モータ電流値Ｉｕ＊，Ｉｖ＊，Ｉｗ＊の、実モータ１２の実モータ電流値Ｉｕ，Ｉｖ，Ｉｗからの誤差である電流誤差ΔＩが、各相Ｕ，Ｖ，Ｗごとに計算され、それら３相のうちの少なくとも一つについてでも、前記計算された電流誤差ΔＩの絶対値が、予め定められたしきい値ΔＩｔｈより大きいか否かが判定される。今回は、いずれの相についても、電流誤差ΔＩの計算値がしきい値ΔＩｔｈ以下であると仮定すると、このステップＳ１２１の判定がＮＯとなり、同じステップＳ１２１が再度実行される。
【０２２２】
これに対し、今回は、少なくとも一つの相につき、電流誤差ΔＩの計算値がしきい値ΔＩｔｈを超えていると仮定すると、このステップＳ１２１の判定がＹＥＳとなり、ステップＳ１２２に移行する。
【０２２３】
このステップＳ１２２においては、比較部４０２により、電流誤差ΔＩがいずれの相についても、しきい値ΔＩｔｈを超えないように前記モータモデルを修正すべき修正量が計算される。
【０２２４】
その計算手法の一例においては、各相ごとの電流誤差ΔＩが取り得る複数の離散的な代表値と、前記インダクタンス行列における複数の要素Ｌ，Ｍのうち、修正すべき要素と、その要素についての修正量との間において予め定められた関係（例えば、テーブルとして、プロセッサ４０のためのメモリに予め記憶されている）に従い、電流誤差ΔＩの実際の計算値に対応する修正量（もとの値に加算される値としたり、もとの値に乗算される係数とすることが可能である）が取得される。
【０２２５】
続いて、ステップＳ１２３において、モデル修正部４０４により、仮想モデル６０の入出力特性を定義するモータモデルが、前記計算された修正量に基づいて修正される（例えば、前記インダクタンス行列の複数の要素に共通に取得される補正係数または要素ごとに取得される修正係数が、それら要素のもとの値に乗算される）。電流誤差ΔＩの計算値に基づいて仮想モデル６０のティーチングが行われるのであり、その結果、仮想モデル６０の入出力特性が、実モータ１２の入出力特性をより正確に反映することとなる。その後、ステップＳ１２１に戻る。
【０２２６】
それらステップＳ１２１からＳ１２３までのステップ群が、仮想モータ計算周期Ｔｖより長い誤差監視周期（ティーチング周期でもある）Ｔｃで反復的に実行される。
【０２２７】
以上の説明から明らかなように、本実施形態によれば、システム１１が試運転されている状況にあるか本格稼動している状況にあるかを問わず、実モータ１２の実際の入出力特性を反映するように、仮想モータ６０の入出力特性すなわち前記モータモデルを個別にチューニングすることが可能である。
【０２２８】
したがって、本実施形態によれば、システム１１の製造段階にあっては、実モータ１２の入出力特性の個体ばらつきなどを反映するように、仮想モータ６０の入出力特性すなわちモータモデルを個別にチューニングすることが可能である。
【０２２９】
また、システム１１の出荷後であって、ユーザが実際にシステム１１を使用する段階にあっては、実モータ１２の入出力特性の経時劣化や、外的環境（例えば、温度環境）に起因する変化などを反映するように、仮想モータ６０の入出力特性すなわちモータモデルを個別に、かつ、本来の用途で使用しつつ、それと並行して、かつ、自動的にチューニングすることが可能である。
【０２３０】
そのようにしてチューニングされたモータモデルは、前述の他のいくつかの実施形態において採用したり、後述の他のいくつかの実施形態において採用することが可能である。
【０２３１】
以上の説明から明らかなように、本実施形態においては、比較部４０２とモデル修正部４０４とが互いに共同して、前記「修正部」の一例を構成する。
【０２３２】
＜第６実施形態＞
【０２３３】
次に、本発明の第６実施形態に従うモータ制御装置５００を図２４および図２５を参照することにより説明する。ただし、本実施形態は、第４実施形態と共通する要素があるため、共通する要素については、同一の符号または名称を付して引用することにより、重複した説明を省略し、異なる要素についてのみ、詳細に説明する。
【０２３４】
前述の第４実施形態においては、図１７および図１８に示すように、仮想モータ制御部６４が、目標信号に基づき、かつ、仮想モータ電流信号Ｉｕ＊，Ｉｖ＊，Ｉｗ＊の前回推定値をフィードバックし、かつ、最新の実モータ位置θｍのもとでの座標変換を行うことにより、仮想モータ６０のためのＰＷＭ信号（仮想モータ制御信号）Ｇｕ，Ｇｖ，Ｇｗ，Ｇｘ，Ｇｙ，Ｇｚを決定する。さらに、仮想モータ制御部６４は、それら仮想モータ制御信号Ｇｕ，Ｇｖ，Ｇｗ，Ｇｘ，Ｇｙ，Ｇｚを決定するために用いられた仮想モータ電流信号Ｉｕ＊，Ｉｖ＊，Ｉｗ＊を実コントローラ１３に出力する。
【０２３５】
さらに、第４実施形態においては、実コントローラ１３が、仮想モータ制御部６４から出力された仮想モータ電流信号Ｉｕ＊，Ｉｖ＊，Ｉｗ＊を目標電流信号として用い、かつ、実モータ状態検出部１５から出力された実モータ１２の実モータ電流値Ｉｕ，Ｉｖ，Ｉｗをフィードバックすることにより、実モータ１２のためのＰＷＭ信号（実モータ制御信号）Ｇｕ，Ｇｖ，Ｇｗ，Ｇｘ，Ｇｙ，Ｇｚを生成する。
【０２３６】
このように、第４実施形態においては、実モータ制御信号を決定するために、仮想モータ制御部６４における１段目のフィードバック制御と、実コントローラ１３における２段目のフィードバック制御とが行われる。
【０２３７】
これに対し、本実施形態においては、図２４に示すように、それら２段のフィードバック制御が仮想モータ制御部６４のみにおいて行われ、その結果、その仮想モータ制御部６４は、仮想モータ制御信号のみならず実モータ制御信号をも決定し、その決定された実モータ制御信号を実インバータ／パワーアンプ１４に出力する。よって、本実施形態においては、実コントローラ１３に相当する要素を有しない。
【０２３８】
図２５には、モータ制御装置５００を作動させるためにプロセッサ４０によって実行される仮想モータ制御プログラムが概念的にフローチャートで表されている。この仮想モータ制御プログラムは、図１９に示すものと共通するステップが多く、異なるのは、ステップＳ６が、仮想モータ制御信号としてのＰＷＭ信号を生成する点と、ステップＳ７が、仮想モータ制御信号としてのＰＷＭ信号を仮想ＰＷＭインバータ９０に出力する点と、一連のステップＳ２１−Ｓ２７が一連のステップＳ４１−Ｓ４３で置換されている点とである。
【０２３９】
本実施形態においては、ステップＳ２−Ｓ９が、上述の１段目のフィードバック制御のために実行され、また、ステップＳ４１−Ｓ４３が、上述の２段目のフィードバック制御のために実行される。
【０２４０】
ステップＳ４１においては、実モータ状態検出部１５から最新の実モータ電流信号Ｉｕ，Ｉｖ，Ｉｗが入力される。
【０２４１】
続いて、ステップＳ４２において、ステップＳ９において入力された最新の仮想モータ電流信号Ｉｕ＊，Ｉｖ＊，Ｉｗ＊であって上述の１段目のフィードバック制御の効果すなわち誤差を反映しているものが目標電流信号として参照され、かつ、前記入力された実モータ電流信号Ｉｕ，Ｉｖ，Ｉｗがフィードバックされることにより、実モータ制御信号Ｇｕ，Ｇｖ，Ｇｗ，Ｇｘ，Ｇｙ，Ｇｚが生成される。これにより、上述の２段目のフィードバック制御が実行される。
【０２４２】
その後、ステップＳ４３において、それら生成された実モータ制御信号Ｇｕ，Ｇｖ，Ｇｗ，Ｇｘ，Ｇｙ，Ｇｚが実インバータ／パワーアンプ１４に出力され、それにより、実モータ１２が制御される。続いて、ステップＳ１１に移行する。
【０２４３】
以上の説明から明らかなように、本実施形態においては、仮想モータ制御部６４は、各回の計算サイクルにおいて、１段目および２段目のフィードバック制御を順に実行する。具体的には、仮想モータ制御部６４は、１段目のフィードバック制御のために、目標信号に基づき、かつ、前回の計算サイクルにおいて仮想モータ６０から出力された前回推定値（例えば、仮想モータ電流信号Ｉｕ＊，Ｉｖ＊，Ｉｗ＊）をフィードバックする。それにより、仮想モータ制御部６４は、仮想モータ制御信号を決定し、その決定された仮想モータ制御信号を仮想モータ６０に出力し、それにより、その仮想モータ６０を作動させる。
【０２４４】
さらに、仮想モータ制御部６４は、２段目のフィードバック制御のために、前記１段目のフィードバック制御において仮想モータ６０から出力された直前推定値（例えば、仮想モータ電流信号Ｉｕ＊，Ｉｖ＊，Ｉｗ＊）に基づき、かつ、実モータ１２の作動状態（例えば、実モータ電流信号Ｉｕ，Ｉｖ，Ｉｗ）をフィードバックする。それにより、仮想モータ制御部６４は、実モータ制御信号を決定し、その決定された実モータ制御信号を実モータ１２に出力し、それにより、その実モータ１２を作動させる。
【０２４５】
これに代えて、仮想モータ制御部６４は、２段目のフィードバック制御のために、１段目のフィードバック制御において仮想モータ６０に出力された仮想モータ制御信号に基づき、かつ、前記直前推定値をフィードバックすることにより、実モータ制御信号を決定するように変更することが可能である。この態様によれば、実モータ１２の実モータ電流信号Ｉｕ，Ｉｖ，Ｉｗを参照せずに済むため、この態様は、実モータ電流信号Ｉｕ，Ｉｖ，Ｉｗを検出することが不可能または困難である場合に有効である。
【０２４６】
以上、本発明の実施の形態のいくつかを図面に基づいて詳細に説明したが、これらは例示であり、前記［発明の概要］の欄に記載の態様を始めとして、当業者の知識に基づいて種々の変形、改良を施した他の形態で本発明を実施することが可能である。
【図１】
2015023585.tif 000003
【図２】
2015023585.tif 000004
【図３】
2015023585.tif 000005
【図４】
2015023585.tif 000006
【図５】
2015023585.tif 000007
【図６】
2015023585.tif 000008
【図７】
2015023585.tif 000009
【図８】
2015023585.tif 000010
【図９】
2015023585.tif 000011
【図１０】
2015023585.tif 000012
【図１１】
2015023585.tif 000013
【図１２】
2015023585.tif 000014
【図１３】
2015023585.tif 000015
【図１４】
2015023585.tif 000016
【図１５】
2015023585.tif 000017
【図１６】
2015023585.tif 000018
【図１７】
2015023585.tif 000019
【図１８】
2015023585.tif 000020
【図１９】
2015023585.tif 000021
【図２０】
2015023585.tif 000022
【図２１】
2015023585.tif 000023
【図２２】
2015023585.tif 000024
【図２３】
2015023585.tif 000025
【図２４】
2015023585.tif 000026
【図２５】
2015023585.tif 000027