(57)【特許請求の範囲】
【請求項１】
モータを含む制御対象と、前記モータを制御するモータ制御装置と、を有する機械系のシミュレーションを行うシミュレーション装置であって、
前記機械系を駆動させるための第１指令値と、前記第１指令値によって駆動された前記機械系の応答の計測値と、の関係に基づいて、前記制御対象の特性を含む周波数応答関数を算出する周波数応答関数算出部と、
前記機械系に対応した制御ブロック構造を有するシミュレーション系と、
前記シミュレーション系の特性を変更させる制御パラメータを設定するパラメータ設定部と、
前記周波数応答関数、または、前記周波数応答関数と前記制御パラメータとに基づいて算出される周波数伝達関数を、シミュレーション用周波数伝達関数として設定する周波数伝達関数設定部と、
前記シミュレーション用周波数伝達関数を逆フーリエ変換することにより、インパルス応答を算出するインパルス応答算出部と、
前記インパルス応答を用いたシミュレーションのための第２指令値を生成する第２指令値生成部と、
前記第２指令値と前記インパルス応答とに基づいて、前記第２指令値に対する前記機械系の時間応答シミュレーションを実行する時間応答出力部と、を備えることを特徴とするシミュレーション装置。
【請求項２】
前記機械系は、制御ブロック構造として、少なくとも１つのフィードバック系を有するものであり、
前記シミュレーション系は、前記フィードバック系に対応した少なくとも１つのモデルフィードバック系を有するものであり、
前記周波数応答関数算出部は、前記制御対象の特性を含み、かつ、前記少なくとも１つのフィードバック系の特性を含まない前記周波数応答関数を算出し、
前記周波数伝達関数設定部は、前記制御対象の特性を含み、かつ、前記少なくとも１つのモデルフィードバック系の特性を含まないシミュレーション用周波数伝達関数を設定し、
前記時間応答出力部は、前記第２指令値を前記モデルフィードバック系に入力して得られた出力値と、前記シミュレーション用周波数伝達関数を逆フーリエ変換することにより算出されたインパルス応答と、に基づいて、前記第２指令値に対する前記機械系の時間応答シミュレーションを実行することを特徴とする請求項１に記載のシミュレーション装置。
【請求項３】
前記シミュレーション系は、前記出力値に加算されるフィードフォワード値を出力するフィードフォワード系を含み、
前記時間応答出力部は、前記出力値に前記フィードフォワード値を加算した加算値と、前記シミュレーション用周波数伝達関数を逆フーリエ変換することにより算出されるインパルス応答と、に基づいて、前記機械系の時間応答シミュレーションを実行する、ことを特徴とする請求項２に記載のシミュレーション装置。
【請求項４】
前記機械系は、制御ブロック構造として、速度制御器を含む速度フィードバック系を有し、
前記シミュレーション系は、前記速度フィードバック系に対応するモデル速度フィードバック系を有し、
前記周波数応答関数算出部は、前記制御対象の特性を含み、かつ、前記速度フィードバック系を含まない周波数応答関数を算出し、
前記周波数伝達関数設定部は、前記制御対象の特性を含み、かつ、前記モデル速度フィードバック系を含まない前記シミュレーション用周波数伝達関数を設定し、
前記時間応答出力部は、前記第２指令値を前記モデル速度フィードバック系に入力して得られた出力値と、前記シミュレーション用周波数伝達関数を逆フーリエ変換することにより算出されるインパルス応答と、に基づいて、前記機械系の時間応答シミュレーションを実行することを特徴とする請求項２または３に記載のシミュレーション装置。
【請求項５】
前記機械系は、制御ブロック構造として、位置制御器を含む位置フィードバック系と、前記位置制御器の下流側に配置される速度制御器を含む速度フィードバック系と、を有し
前記シミュレーション系は、前記位置フィードバック系に対応するモデル位置フィードバック系と、前記速度フィードバック系に対応するモデル速度フィードバック系と、を有し、
前記周波数応答関数算出部は、前記制御対象の特性を含み、かつ、前記位置フィードバック系と、前記速度フィードバック系とを含まない周波数応答関数を算出し、
前記周波数伝達関数設定部は、前記制御対象の特性と前記モデル速度フィードバック系とを含み、かつ、前記モデル位置フィードバック系を含まない前記シミュレーション用周波数伝達関数を設定し、
前記時間応答出力部は、前記第２指令値を前記モデル位置フィードバック系に入力して得られた出力値と、前記シミュレーション用周波数伝達関数を逆フーリエ変換することにより算出されるインパルス応答と、に基づいて、前記機械系の時間応答シミュレーションを実行することを特徴とする請求項２に記載のシミュレーション装置。
【請求項６】
前記機械系は、制御ブロック構造として、位置制御器を含む位置フィードバック系と、前記位置制御器の下流側に配置される速度制御器を含む速度フィードバック系と、を有し
前記シミュレーション系は、前記位置フィードバック系に対応するモデル位置フィードバック系と、前記速度フィードバック系に対応するモデル速度フィードバック系と、を有し、
前記周波数応答関数算出部は、前記制御対象の特性を含み、かつ、前記位置フィードバック系と、前記速度フィードバック系とを含まない周波数応答関数を算出し、
前記周波数伝達関数設定部は、前記制御対象の特性を含み、かつ、前記モデル速度フィードバック系と前記モデル位置フィードバック系とを含まない前記シミュレーション用周波数伝達関数を設定し、
前記時間応答出力部は、前記第２指令値を前記モデル位置フィードバック系に入力して得られた出力値および前記モデル速度フィードバック系の出力値と、前記シミュレーション用周波数伝達関数を逆フーリエ変換することにより算出されるインパルス応答と、に基づいて、前記機械系の時間応答シミュレーションを実行することを特徴とする請求項２または３に記載のシミュレーション装置。
【請求項７】
前記第１指令値はトルクを示すトルク指令値であり、
前記周波数応答関数算出部は、前記トルク指令値と、前記トルク指令値によって駆動された前記機械系の応答である速度計測値と、の関係に基づいて、前記周波数応答関数を算出することを特徴とする請求項１〜６のいずれか１項に記載のシミュレーション装置。
【請求項８】
前記第１指令値は速度を示す速度指令値であり、
前記周波数応答関数算出部は、前記速度指令値と、前記速度指令値によって駆動された前記機械系の応答である速度計測値と、の関係に基づいて、前記周波数応答関数を算出することを特徴とする請求項１〜６のいずれか１項に記載のシミュレーション装置。
【請求項９】
前記第１指令値は位置を示す位置指令値であり、
前記周波数応答関数算出部は、前記位置指令値と、前記位置指令値によって駆動された前記機械系の応答である位置計測値と、の関係に基づいて、前記周波数応答関数を算出することを特徴とする請求項１〜６のいずれか１項に記載のシミュレーション装置。
【請求項１０】
前記時間応答出力部は、前記第２指令値に対する前記機械系の位置、速度、およびトルクの少なくとも何れかの時間応答シミュレーションを実行することを特徴とする請求項１〜９のいずれか１項に記載のシミュレーション装置。
【請求項１１】
前記パラメータ設定部は、前記シミュレーション系に含まれる、前記機械系における制御器それぞれに対応する系の少なくとも１つの系のパラメータを設定するように構成されていることを特徴とする請求項１〜１０のいずれか１項に記載のシミュレーション装置。
【請求項１２】
モータを含む制御対象と、前記モータを制御するモータ制御装置と、を有する機械系のシミュレーションを行うシミュレーション方法であって、
前記機械系を駆動させるための第１指令値と、前記第１指令値によって駆動された前記機械系の応答の計測値と、の関係に基づいて、前記制御対象の特性を含む周波数応答関数を算出する周波数応答関数算出ステップと、
前記機械系に対応した制御ブロック構造を有するシミュレーション系の特性を変更させる制御パラメータを設定するパラメータ設定ステップと、
前記周波数応答関数、または、前記周波数応答関数と前記制御パラメータとに基づいて算出される周波数伝達関数を、シミュレーション用周波数伝達関数として設定する周波数伝達関数設定ステップと、
前記シミュレーション用周波数伝達関数を逆フーリエ変換することにより、インパルス応答を算出するインパルス応答算出ステップと、
前記インパルス応答を用いたシミュレーションのための第２指令値を生成する第２指令値生成ステップと、
前記第２指令値と前記インパルス応答とに基づいて、前記第２指令値に対する前記機械系の時間応答シミュレーションを実行する時間応答出力ステップと、を含むことを特徴とするシミュレーション方法。
【請求項１３】
請求項１に記載のシミュレーション装置としてコンピュータを機能させるための制御プログラム。
【請求項１４】
請求項１３に記載の制御プログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、負荷装置を駆動するモータを制御するサーボドライバの応答をシミュレーション可能なシミュレーション装置等に関する。
【背景技術】
【０００２】
サーボ機構において、負荷装置を駆動するためのモータを適切に制御するために、モータを制御するサーボドライバの制御パラメータ（位置ゲイン、速度ゲイン、フィルタのカットオフ周波数等）の調整を行うことが一般的である。
【０００３】
従来、制御パラメータの調整方法には、モータを駆動し、負荷装置を実際に運転することにより行うものがある。すなわち、或る制御パラメータをサーボドライバに設定して実際にモータを駆動させ、そのときの負荷装置の応答を計測する。ここで、負荷装置の応答状態が所望の要件を満たしていない場合は、制御パラメータを変更して再度モータを駆動させ、そのときの負荷装置の応答を計測する。このように、制御パラメータを変更して、モータを繰り返し駆動して負荷装置を運転することにより、制御パラメータの設定を行うものがある（例えば、特許文献１）。
【０００４】
また、実際に装置を運転させて制御パラメータの設定を行う方法以外にも、シミュレーションにより、制御パラメータの設定を行うものがある。すなわち、サーボドライバおよび負荷装置の物理モデルを使用し、制御パラメータを設定して繰り返しシミュレーションを行う。そして、シミュレーション結果として得られる応答状態が所望の要件を満たしているか否かに応じてで、制御パラメータの設定を行うものがある（例えば、特許文献２）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００９−１２２７７９号公報（２００９年６月４日公開）
【特許文献２】特開２００６−３４０４８０号公報（２００６年１２月１４日公開）
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上述のような従来技術は以下の問題がある。まず、実際に装置を動作させて応答を計測する場合、制御パラメータを設定するたびに、実際にモータを駆動させて負荷装置の応答を計測していかなければならないので、調整に非常に時間を要してしまう。また、不適切な制御パラメータを設定した場合に、想定外の動作により機器を損傷させてしまう可能性がある。
【０００７】
また、モデルを使用してシミュレーションする場合、シミュレーションできる制御対象がモデルの形や次数に限定されてしまう。よって、物理モデルの形と実際の装置の特性に差異があると、シミュレーションの精度が低下してしまう。また、モデルを実際の装置の特性と合わせるためには、パラメータを適切に設定する必要があり、ユーザに対し過度の知識を要求することになる。
【０００８】
本発明は、前記の問題点に鑑みてなされたものであり、その目的は、容易かつ短時間で適切に制御パラメータを設定することができるシミュレーション装置等を実現することにある。
【課題を解決するための手段】
【０００９】
前記課題を解決するために、本発明に係るシミュレーション装置は、モータを含む制御対象と、前記モータを制御するモータ制御装置と、を有する機械系のシミュレーションを行うシミュレーション装置であって、前記機械系を駆動させるための第１指令値と、前記第１指令値によって駆動された前記機械系の応答の計測値と、の関係に基づいて、前記制御対象の特性を含む周波数応答関数を算出する周波数応答関数算出部と、前記機械系に対応した制御ブロック構造を有するシミュレーション系と、前記シミュレーション系の特性を変更させる制御パラメータを設定するパラメータ設定部と、前記周波数応答関数、または、前記周波数応答関数と前記制御パラメータとに基づいて算出される周波数伝達関数を、シミュレーション用周波数伝達関数として設定する周波数伝達関数設定部と、前記シミュレーション用周波数伝達関数を逆フーリエ変換することにより、インパルス応答を算出するインパルス応答算出部と、前記インパルス応答を用いたシミュレーションのための第２指令値を生成する第２指令値生成部と、前記第２指令値と前記インパルス応答とに基づいて、前記第２指令値に対する前記機械系の時間応答シミュレーションを実行する時間応答出力部と、を備えることを特徴としている。
【００１０】
前記の構成によれば、シミュレーションによって、サーボドライバへの任意の入力に対する応答を確認することができるので、制御対象の応答を確認するために、制御パラメータを都度設定して、実際にモータを駆動させて制御対象の応答を計測する必要がなくなる。よって、調整の時間を短縮することができる。
【００１１】
また、駆動部を実際に駆動させた応答結果である周波数応答関数を用いて時間応答を出力するので、精度よくシミュレーションを行うことができる。
【００１２】
本発明に係るシミュレーション装置では、前記機械系は、制御ブロック構造として、少なくとも１つのフィードバック系を有するものであり、前記シミュレーション系は、前記フィードバック系に対応した少なくとも１つのモデルフィードバック系を有するものであり、前記周波数応答関数算出部は、前記制御対象の特性を含み、かつ、前記少なくとも１つのフィードバック系の特性を含まない前記周波数応答関数を算出し、前記周波数伝達関数設定部は、前記制御対象の特性を含み、かつ、前記少なくとも１つのモデルフィードバック系の特性を含まないシミュレーション用周波数伝達関数を設定し、前記時間応答出力部は、前記第２指令値を前記モデルフィードバック系に入力して得られた出力値と、前記シミュレーション用周波数伝達関数を逆フーリエ変換することにより算出されたインパルス応答と、に基づいて、前記第２指令値に対する前記機械系の時間応答シミュレーションを実行するものであってもよい。
【００１３】
前記の構成によれば、フィードバック系を用いてシミュレーションを実行するので、実際に駆動して得た周波数応答関数に誤差が含まれていたとしても、フィードバックにより当該誤差を縮小していくことができる。よって、より正確なシミュレーションを実行することができる。
【００１４】
本発明に係るシミュレーション装置では、前記シミュレーション系は、前記出力値に加算されるフィードフォワード値を出力するフィードフォワード系を含み、前記時間応答出力部は、前記出力値に前記フィードフォワード値を加算した加算値と、前記シミュレーション用周波数伝達関数を逆フーリエ変換することにより算出されるインパルス応答と、に基づいて、前記機械系の時間応答シミュレーションを実行するものであってもよい。
【００１５】
前記の構成によれば、フィードフォワードを行うシステムを的確にシミュレートすることができる。
【００１６】
本発明に係るシミュレーション装置では、前記機械系は、制御ブロック構造として、速度制御器を含む速度フィードバック系を有し、前記シミュレーション系は、前記速度フィードバック系に対応するモデル速度フィードバック系を有し、前記周波数応答関数算出部は、前記制御対象の特性を含み、かつ、前記速度フィードバック系を含まない周波数応答関数を算出し、前記周波数伝達関数設定部は、前記制御対象の特性を含み、かつ、前記モデル速度フィードバック系を含まない前記シミュレーション用周波数伝達関数を設定し、前記時間応答出力部は、前記第２指令値を前記モデル速度フィードバック系に入力して得られた出力値と、前記シミュレーション用周波数伝達関数を逆フーリエ変換することにより算出されるインパルス応答と、に基づいて、前記機械系の時間応答シミュレーションを実行するものであってもよい。
【００１７】
前記の構成によれば、速度フィードバック系を用いるので、逆フーリエ変換に用いた周波数応答関数の誤差を縮小することができる。したがって、容易に短時間で精度の高いシミュレーションを実行することができる。
【００１８】
また、インパルス応答が短時間で収束するので、周波数応答の計測時間が相対的に短い、すなわち、計測データが相対的に少ない場合でも、周波数応答関数の精度を担保することができる。したがって、周波数応答の計測をするときの計測時間を短縮することができる。
【００１９】
本発明に係るシミュレーション装置では、前記機械系は、制御ブロック構造として、位置制御器を含む位置フィードバック系と、前記位置制御器の下流側に配置される速度制御器を含む速度フィードバック系と、を有し、前記シミュレーション系は、前記位置フィードバック系に対応するモデル位置フィードバック系と、前記速度フィードバック系に対応するモデル速度フィードバック系と、を有し、前記周波数応答関数算出部は、前記制御対象の特性を含み、かつ、前記位置フィードバック系と、前記速度フィードバック系を含まない周波数応答関数を算出し、前記周波数伝達関数設定部は、前記制御対象の特性と前記モデル速度フィードバック系とを含み、かつ、前記モデル位置フィードバック系を含まない前記シミュレーション用周波数伝達関数を設定し、前記時間応答出力部は、前記第２指令値を前記モデル位置フィードバック系に入力して得られた出力値と、前記シミュレーション用周波数伝達関数を逆フーリエ変換することにより算出されるインパルス応答と、に基づいて、前記機械系の時間応答シミュレーションを実行するものであってもよい。
【００２０】
前記の構成によれば、速度フィードバック系および位置フィードバック系を用いるので、逆フーリエ変換に用いた周波数応答関数の誤差を縮小することができる。したがって、容易に短時間で精度の高いシミュレーションを実行することができる。
【００２１】
また、インパルス応答が短時間で収束するので、周波数応答の計測時間が相対的に短い、すなわち、計測データが相対的に少ない場合でも、周波数応答関数の精度を担保することができる。したがって、周波数応答の計測をするときの計測時間を短縮することができる。
【００２２】
本発明に係るシミュレーション装置では、前記機械系は、制御ブロック構造として、位置制御器を含む位置フィードバック系と、前記位置制御器の下流側に配置される速度制御器を含む速度フィードバック系と、を有し、前記シミュレーション系は、前記位置フィードバック系に対応するモデル位置フィードバック系と、前記速度フィードバック系に対応するモデル速度フィードバック系と、を有し、前記周波数応答関数算出部は、前記制御対象の特性を含み、かつ、前記位置フィードバック系と、前記速度フィードバック系を含まない周波数応答関数を算出し、前記周波数伝達関数設定部は、前記制御対象の特性を含み、かつ、前記モデル速度フィードバック系と前記モデル位置フィードバック系とを含まない前記シミュレーション用周波数伝達関数を設定し、前記時間応答出力部は、前記第２指令値を前記モデル位置フィードバック系に入力して得られた出力値および前記モデル速度フィードバック系の出力値と、前記シミュレーション用周波数伝達関数を逆フーリエ変換することにより算出されるインパルス応答と、に基づいて、前記機械系の時間応答シミュレーションを実行するものであってもよい。
【００２３】
前記の構成によれば、位置フィードバック系、および速度フィードバック系を用いてシミュレーションを実行するので、容易に短時間で精度の高いシミュレーションを実行することができる。
【００２４】
また、インパルス応答の算出に用いる周波数応答関数は、制御対象に対応する系を含み、速度フィードバック系および位置フィードバック系を含まない系の周波数応答関数なので、位置制御器に対応するパラメータ、および速度制御器に対応するパラメータを変更しても、周波数応答関数を再度計算する必要がない。このため、計算量の多い逆フーリエ変換を再度、計算する必要がなく、処理量を削減することができる。
【００２５】
また、ゲインスケジュールと呼ばれる、モータ動作中に制御パラメータ（ゲイン）を変更する制御のシミュレーションを実行することもできる。
【００２６】
本発明に係るシミュレーション装置では、前記第１指令値はトルクを示すトルク指令値であり、前記周波数応答関数算出部は、前記トルク指令値と、前記トルク指令値によって駆動された前記機械系の応答である速度計測値と、の関係に基づいて、前記周波数応答関数を算出するものであってもよい。
【００２７】
前記の構成によれば、計測用のトルク指令であるトルク指令値を用いて、実際にモータを駆動したときの、制御対象の特性である周波数応答関数を求めることができる。
【００２８】
本発明に係るシミュレーション装置では、前記第１指令値は速度を示す速度指令値であり、前記周波数応答関数算出部は、前記速度指令値と、前記速度指令値によって駆動された前記機械系の応答である速度計測値と、の関係に基づいて、前記周波数応答関数を算出するものであってもよい。
【００２９】
前記の構成によれば、計測用の速度指令である速度指令値を用いて、実際にモータを駆動したときの、制御対象の特性である周波数応答関数を求めることができる。
【００３０】
本発明に係るシミュレーション装置では、前記第１指令値は位置を示す位置指令値であり、前記周波数応答関数算出部は、前記位置指令値と、前記位置指令値によって駆動された前記機械系の応答である位置計測値と、の関係に基づいて、前記周波数応答関数を算出するものであってもよい。
【００３１】
前記の構成によれば、計測用の位置指令である位置指令値を用いて、実際にモータを駆動したときの、制御対象の特性である周波数応答関数を求めることができる。
【００３２】
本発明に係るシミュレーション装置では、前記時間応答出力部は、前記第２指令値に対する前記機械系の位置、速度、およびトルクの少なくとも何れかの時間応答シミュレーションを実行するものであってもよい。
【００３３】
前記の構成によれば、サーボドライバへの任意の入力に対する制御対象の位置、速度およびトルクの少なくとも何れかをシミュレーションすることができる。
【００３４】
また、制御対象のみの周波数応答関数を用いることにより、トルクフィルタ（ノッチフィルタ、ローパスフィルタ等）を加えた場合のシミュレーションも容易に実行することができる。
【００３５】
本発明に係るシミュレーション装置では、前記パラメータ設定部は、前記シミュレーション系に含まれる、前記機械系における制御器それぞれに対応する系の少なくとも１つの系のパラメータを設定するように構成されているものであってもよい。
【００３６】
前記の構成によれば、任意の制御パラメータ毎に時間応答シミュレーションを実行することができる。
【００３７】
前記課題を解決するために、本発明に係るシミュレーション方法は、モータを含む制御対象と、前記モータを制御するモータ制御装置と、を有する機械系のシミュレーションを行うシミュレーション方法であって、前記機械系を駆動させるための第１指令値と、前記第１指令値によって駆動された前記機械系の応答の計測値と、の関係に基づいて、前記制御対象の特性を含む周波数応答関数を算出する周波数応答関数算出ステップと、前記機械系に対応した制御ブロック構造を有するシミュレーション系の特性を変更させる制御パラメータを設定するパラメータ設定ステップと、前記周波数応答関数、または、前記周波数応答関数と前記制御パラメータとに基づいて算出される周波数伝達関数を、シミュレーション用周波数伝達関数として設定する周波数伝達関数設定ステップと、前記シミュレーション用周波数伝達関数を逆フーリエ変換することにより、インパルス応答を算出するインパルス応答算出ステップと、前記インパルス応答を用いたシミュレーションのための第２指令値を生成する第２指令値生成ステップと、前記第２指令値と前記インパルス応答とに基づいて、前記第２指令値に対する前記機械系の時間応答シミュレーションを実行する時間応答出力ステップと、を含むことを特徴としている。
【００３８】
前記の方法によれば、前述した効果を同様の効果を奏することができる。
【００３９】
本発明の各態様に係るシミュレーション装置は、コンピュータによって実現してもよく、この場合には、コンピュータを前記シミュレーション装置が備える各部（ソフトウェア要素）として動作させることにより前記シミュレーション装置をコンピュータにて実現させるシミュレーション装置の制御プログラム、およびそれを記録したコンピュータ読み取り可能な記録媒体も、本発明の範疇に入る。
【発明の効果】
【００４０】
本発明によれば、シミュレーションによって、サーボドライバへの任意の入力に対する応答を確認することができるので、制御対象の応答を確認するために、制御パラメータを都度設定して、実際にモータを駆動させて制御対象の応答を計測する必要がなくなる。よって、調整の時間を短縮することができるという効果を奏する。
【００４１】
また、駆動部を実際に駆動させた応答結果である周波数応答関数を用いて時間応答を出力するので、精度よくシミュレーションを行うことができるという効果を奏する。
【図面の簡単な説明】
【００４２】
【図１】本実施形態に係る制御システムの概要を示す図である。
【図２】制御システムの内部構造を示す機能ブロック図である。
【図３】サーボドライバの制御構造を示すブロック図である。
【図４】制御パラメータの調整方法の流れを示すフローチャートである。
【図５】計測用トルク指令により周波数応答関数を算出するときの制御ブロック図である。
【図６】計測用速度指令により周波数応答関数を算出するときの制御ブロック図である。
【図７】計測用位置指令により周波数応答関数を算出するときの制御ブロック図である。
【図８】シミュレーション系の構造を示すブロック図であり、（ａ）はシミュレーション系の基本構造を示す図であり、（ｂ）はシミュレーション系の制御ブロック全てを１つのシミュレーション用周波数伝達関数に置換した場合を示す図であり、（ｃ）はシミュレーション系のモデル速度制御器、モデル電流制御器、機械モデル部を１つのシミュレーション用周波数伝達関数に置換した場合を示す図であり、（ｄ）はシミュレーション系のモデル電流制御器、機械モデル部を１つのシミュレーション用周波数伝達関数に置換した場合を示す図である。
【図９】時間応答シミュレーション結果の表示例を示す図である。
【図１０】一般的な、一次遅れ要素のインパルス応答を示す図である。
【図１１】（ａ）、（ｂ）は、シミュレーション−２に対するシミュレーション−１の利点を説明するための図である。
【図１２】フィードフォワード部を備えたシミュレーションを説明するための図であり、（ａ）はフィードフォワード器を備えたサーボドライバの制御構造を示すブロック図であり、（ｂ）はモデルフィードフォワード器を備えたシミュレーション系の構造を示す図であり、（ｃ）はモデルフィードフォワード器を備えたシミュレーションを説明するための図である。
【図１３】フィードフォワードを備えたシミュレーション系の変形例を示す図である。
【図１４】速度制御のシミュレーションを説明するための図であり、（ａ）は速度制御を行う際のサーボドライバの制御構造を示すブロック図であり、（ｂ）は速度制御のシミュレーションを行う際のシミュレーション系の構造を示す図であり、（ｃ）はシミュレーション系のモデル速度制御器、モデル電流制御器、機械モデル部を１つのシミュレーション用周波数伝達関数に置換した場合を示す図であり、（ｄ）はシミュレーション系のモデル電流制御器、機械モデル部を１つのシミュレーション用周波数伝達関数に置換した場合を示す図である。
【図１５】トルク制御のシミュレーションを説明するための図であり、（ａ）はトルク制御を行う際のサーボドライバの制御構造を示すブロック図であり、（ｂ）はトルク制御のシミュレーションを行う際のシミュレーション系の構造を示す図であり、（ｃ）はシミュレーション系のモデル電流制御器、機械モデル部を１つのシミュレーション用周波数伝達関数に置換した場合を示す図である。
【発明を実施するための形態】
【００４３】
〔実施形態１〕
〔制御システム１００の概要〕
以下、本発明の実施形態１について、図１〜図９に基づいて説明する。まず、図１を参照して本実施形態に係る制御システム１００について説明する。図１は、制御システム１００の概要を示す図である。制御システム１００は、サーボ機構を用いて負荷装置４の動作を制御するものであり、図１に示すように、設定装置（シミュレーション装置）１、サーボドライバ（モータ制御装置）２、モータ（駆動部）３、および負荷装置４を含む。また、モータ３と負荷装置４と含めて制御対象６と呼び、制御対象６とサーボドライバ２とを含めて機械系７と呼ぶ。
【００４４】
設定装置１は、サーボドライバ２の制御パラメータを設定および調整するための装置であり、調整用ソフトウェアが含まれている。具体的には、設定装置１は、調整用ソフトウェアを用いて、サーボドライバ２の応答状態が最適となるように、サーボドライバ２の制御パラメータ（例えば、位置ゲイン、速度ゲイン、フィルタのカットオフ周波数等）を調整する。なお、調整用ソフトウェアは、サーボドライバ２の応答状態を計測する機能とサーボドライバ２の応答をシミュレーションする機能と有する。設定装置１は、例えば、パーソナルコンピュータによって実現され、パーソナルコンピュータに格納されたプログラム（調整用ソフトウェア）が実行されることで、当該コンピュータが設定装置１として機能する。
【００４５】
ユーザ（制御システム１００の使用者、設定者等）５は、設定装置１を用いて、サーボドライバ２の制御パラメータの設定および調整を行う。すなわち、ユーザ５は、設定装置１上で動作する調整用ソフトウェアを用いてサーボドライバ２の制御パラメータを設定し、サーボドライバ２の応答状態が最適となるように調整する。換言すれば、実際の計測結果、およびシミュレーション結果を用いて応答状態を確認し、制御パラメータの調整を行う。
【００４６】
サーボドライバ２は、設定装置１により設定され、調整された制御パラメータを記憶するとともに、その制御パラメータに従ってモータ３を駆動し、負荷装置４を動作させる。また、サーボドライバ２は、設定装置１、およびモータ３と、有線または無線により通信可能に接続されている。例えば、サーボドライバ２は、設定装置１とＵＳＢ（Universal Serial Bus）ケーブルによって接続されている。また、サーボドライバ２とモータ３とは、例えば、専用ケーブルによって接続されている。
【００４７】
そして、本実施形態では、計測対象を実際に計測して周波数応答関数を取得し、周波数応答関数と制御パラメータから得た周波数伝達関数を逆フーリエ変換してインパル応答を算出し、当該インパルス応答を用いてシミュレーションを実行する。
【００４８】
よって、制御対象のモデルを物理モデルとして用意し、これを使用する場合のように、シミュレーションできる制御対象がモデルの形や次数に限定されてしまうことがない。よって、シミュレーションできる対象を広げることができるとともに、実際の制御対象が物理モデルの形からずれることにより、シミュレーション結果の精度が下がるということを防止することができる。さらに、サーボドライバの制御パラメータに関する知識を必要とせずに応答結果を確認することができるので、ユーザに対し過度の知識を要求することも必要なくなる。
【００４９】
〔設定装置１、サーボドライバ２の詳細〕
次に、図２、３を参照して設定装置１およびサーボドライバ２の構成について説明する。図２は、制御システム１００に含まれる、設定装置１およびサーボドライバ２の要部構成を示すブロック図である。また、図３は、サーボドライバ２における制御の構造を示す図である。
【００５０】
図２に示すように、設定装置１は、制御部１０、操作受付部１１、および表示部１２を含む。
【００５１】
操作受付部１１は、設定装置１に対する操作を受け付け、その内容を制御部１０に通知する。操作受付部１１は、キーボードおよびマウスといったハードウェアによって構成されていてもよいし、後述する表示部１２と合わせ、タッチパネルによって構成されていてもよい。
【００５２】
また、後述するシミュレーションを実行する入力値を操作受付部１１で受け付けてもよい。また、入力値そのものではなく、何らかの指示を受け付け、受け付けた内容からシミュレーション部２３において入力値（第２指令値）を生成するものであってもよい。この場合、シミュレーション部２３が第２指令値生成部となる。
【００５３】
表示部１２は、サーボドライバ２の制御パラメータを設定する設定画面、シミュレーション結果等を表示するものである。なお、表示部１２は設定装置１に必須の構成ではなく、設定装置１の外部にあってもよい。また、表示部１２は、上述したように操作受付部１１の機能を含むタッチパネルとして構成されていてもよい。
【００５４】
制御部１０は、サーボドライバ２を含む機械系７の応答のシミュレーション、サーボドライバ２のパラメータの設定等を含む、設定装置１における各種処理を実行するものであり、パラメータ設定部２１、周波数特性算出部２２、シミュレーション部２３、動作指示部２４、および取得部２５を含む。
【００５５】
パラメータ設定部２１は、操作受付部１１を介して受け付けた、サーボドライバ２の制御パラメータをサーボドライバ２に設定する。また、シミュレーション実行時に、操作受付部１１から受け付けたサーボドライバ２の制御パラメータをシミュレーション部２３に通知する。
【００５６】
周波数特性算出部２２は、後述するシミュレーション部２３がサーボドライバ２を含む機械系７のシミュレーションを実行するときに用いる、負荷装置４を含む制御対象６の特性として周波数応答関数を算出する。そして、算出した結果をシミュレーション部２３に通知する。制御対象６の周波数応答関数の算出方法の詳細については後述する。
【００５７】
シミュレーション部２３は、周波数特性算出部２２が算出した負荷装置４を含む制御対象６の周波数応答関数を用いて、サーボドライバ２を含む機械系７の応答（時間応答、位置応答）をシミュレーションし、その結果を表示部１２に表示させる。シミュレーション部２３によるシミュレーションの詳細については後述する。
【００５８】
動作指示部２４は、操作受付部１１を介してユーザから受け付けた指示に従い、サーボドライバ２に動作指示を送信する。具体的には、操作受付部１１を介して受け付けた位置指令（時刻と位置とを指定する指令）をサーボドライバ２に通知し、負荷装置４において制御対象物が指定時刻に指定位置にくるように指示する。
【００５９】
取得部２５は、負荷装置４が実際に運転されたときの結果を計測し、周波数特性算出部２２または表示部１２に通知する。より詳細には、取得部２５は、周波数特性算出部２２の指示により負荷装置４を動作させた場合は、その計測結果を周波数特性算出部２２に通知する。また、動作指示部２４の指示により負荷装置４を動作させた場合は、その結果を表示部１２に表示させる。
【００６０】
また、図２に示すように、サーボドライバ２は、位置制御器３１、速度制御器３２、および電流制御器３３を含む。これらの処理の内容を、図３を参照して説明する。図３は、サーボドライバ２の制御構造を示す図である。
【００６１】
図３に示すように、位置制御器３１は、例えば比例制御（Ｐ制御）を行う。具体的には、動作指示部２４から通知された位置指令と検出位置との偏差である位置偏差に、位置比例ゲインを乗ずることにより指令速度を出力する。なお、位置制御器３１は、パラメータ設定部２１により設定されることにより、予め、制御パラメータとして位置比例ゲインＫｐｐを有している。
【００６２】
速度制御器３２は、例えば比例制御（Ｐ制御）を行う。具体的には、位置制御器３１から出力された速度指令と検出速度との偏差である速度偏差に、速度比例ゲインを乗ずることにより指令トルクを出力する。なお、速度制御器３２は、パラメータ設定部２１により設定されることにより、予め、制御パラメータとして速度比例ゲインＫｖｐを有している。なお、速度制御器３２は、比例制御（Ｐ制御）ではなく、ＰＩ制御を行ってもよい。この場合には、速度制御器３２は、制御パラメータとして速度比例ゲインＫｖｐと、速度積分ゲインＫｖｉとを有している。
【００６３】
電流制御器３３は、速度制御器３２より出力されたトルク指令に基づいて電流指令を出力し、モータ３を制御して負荷装置４を動作させる。電流制御器３３は、トルク指令フィルタ（１次のローパスフィルタ）、および複数のノッチフィルタを含み、制御パラメータとして、トルク指令フィルタのカットオフ周波数、ノッチフィルタの周波数を有している。
【００６４】
また、速度制御器３２、電流制御器３３、制御対象６を含み、かつ検出速度の速度制御器３２へのフィードバックを含む系を速度フィードバック系と呼び、速度フィードバック系に加え、位置制御器３１を含み、検出位置の位置制御器３１へのフィードバックを含む系を位置フィードバック系と呼ぶ。また、速度フィードバック系、位置フィードバック系を区別する必要がないときは単にフィードバック系と呼ぶ。
【００６５】
〔周波数特性算出部２２における処理の詳細〕
周波数特性算出部２２における処理の詳細について図５〜７を参照して説明する。図５は、計測用トルク指令により周波数応答関数を算出するときの制御ブロック図である。図６は、計測用速度指令により周波数応答関数を算出するときの制御ブロック図である。図７は、計測用位置指令により周波数応答関数を算出するときの制御ブロック図である。
【００６６】
図２に示すように、周波数特性算出部２２は、計測用トルク指令生成部５１、計測用速度指令生成部５２、周波数応答関数算出部５３、および計測用位置指令生成部５４を含む。なお、計測用トルク指令生成部５１、計測用速度指令生成部５２、および計測用位置指令生成部５４は何れか、またはこれらのうちの２つを備える構成であってもよく、全てを備えている必要はない。
【００６７】
計測用トルク指令生成部５１は、負荷装置４を含む制御対象６の周波数応答関数を求めるときの、モータ３を駆動するための計測用トルク指令（第１指令値、トルク指令値）を生成する。
【００６８】
計測用速度指令生成部５２は、負荷装置４を含む制御対象６の周波数伝達関数Ｐを求めるときの、モータ３を駆動するための計測用速度指令（第１指令値、速度指令値）を生成する。
【００６９】
計測用位置指令生成部５４は、負荷装置４を含む制御対象６の周波数伝達関数Ｐを求めるときの、モータ３を駆動するための計測用位置指令（第１指令値、位置指令値）を生成する。
【００７０】
なお、本実施の形態では、設定装置１が、周波数応答を計測するための指令値を生成する機能として、計測用トルク指令生成部５１、計測用速度指令生成部５２、計測用位置指令生成部５４を有する構成を記載している。しかしながら、周波数応答を計測するための指令値の生成方法はこれに限られない。例えば、計測用トルク指令生成部５１、計測用速度指令生成部５２、計測用位置指令生成部５４は、それぞれ、指令値を生成するための条件を設定するものであり、当該設定された条件をサーボドライバ２に通知することで、サーボドライバ２が指令値の生成を行ってもよい。指令値を生成するための条件としては、例えば、指令値として掃引正弦波を使用する場合には、当該指令値の初期の振幅、振幅の増幅率が挙げられる。また、指令値の周波数の最大値を決める値を条件として設定することができる。指令値の周波数の最大値を決める値としては、例えば、計測のサンプリング周期が挙げられる。指令値の生成条件は、操作受付部１１を介してユーザにより設定される。
【００７１】
周波数応答関数算出部５３は、計測用トルク指令生成部５１、計測用速度指令生成部５２、または計測用位置指令生成部５４が生成した、計測用トルク指令、計測用速度指令、または計測用位置指令を用いて負荷装置４を含む制御対象６の特性である周波数応答関数を算出する。詳細な算出方法を以下に説明する。
【００７２】
〔算出方法−１〕
まず、算出方法−１について、図５を参照して説明する。図５に示すように、算出方法−１では、まず、計測用トルク指令生成部５１が多くの周波数成分を含む計測用トルク指令を生成し、電流制御器３３、および周波数応答関数算出部５３に通知する。次に、電流制御器３３は、通知された計測用トルク指令に基づき、モータ３を駆動させて負荷装置４を動作させる。
【００７３】
そして、周波数応答関数算出部５３は、計測用トルク指令生成部５１から通知された計測用トルク指令と、計測した負荷装置４を含む制御対象６における応答速度（検出速度（速度計測値、計測値））とから、負荷装置４を含む制御対象６の周波数応答関数を算出する。すなわち、周波数応答関数の計測対象Ｐｍｅａｓｕｒｅは、電流制御器３３および制御対象６を含むブロックである。
【００７４】
具体的には、周波数特性算出部２２は、以下のとおり周波数応答関数を算出する。まず、以下に示すように、計測用トルク指令と計測した応答速度のデータ（サンプリング間隔Δｔ、データ点数Ｎの時系列配列）とをそれぞれ周波数解析（フーリエ変換）して比をとることで、周波数応答関数Ｐ（複素数配列）を算出する。
【００７５】
Ｔref[Ｎ]：計測用トルク指令をフーリエ変換した複素数配列
Ωact[Ｎ]：応答速度をフーリエ変換した複素数配列
Ｐ[Ｎ]＝Ωact[Ｎ]／Ｔref[Ｎ]
ｆ[Ｎ]＝０，１／（Δｔ・Ｎ），２／（Δｔ・Ｎ），３／（Δｔ・Ｎ），…，（Ｎ−１）／（Δｔ・Ｎ）    ｆ：周波数
以上により、電流制御器３３および制御対象６を含む計測対象Ｐｍｅａｓｕｒｅの周波数応答関数Ｐが求められる。
【００７６】
〔算出方法−２〕
次に、算出方法−２について、図６を参照して説明する。図６に示すように、算出方法−２では、まず、計測用速度指令生成部５２が多くの周波数成分を含む計測用速度指令を生成し、速度制御器３２、および周波数応答関数算出部５３に通知する。次に、速度制御器３２は、上述したように、計測用速度指令と検出速度との偏差である速度偏差から指令トルクを出力する。電流制御器３３は、通知された指令トルクに基づき負荷装置４を動作させる。
【００７７】
そして、周波数応答関数算出部５３は、計測用速度指令生成部５２から通知された計測用速度指令と、計測した負荷装置４における応答速度（検出速度）とから、計測対象Ｇｖ＿ｍｅａｓｕｒｅの周波数応答関数を算出する。計測対象Ｇｖ＿ｍｅａｓｕｒｅは、速度制御器３２、電流制御器３３、および制御対象６を含むブロックである。
【００７８】
具体的には、周波数特性算出部２２は、以下に示すように、まず、計測用速度指令と計測した応答速度のデータ（サンプリング間隔Δｔ、データ点数Ｎの時系列配列）をそれぞれ周波数解析（フーリエ変換）して比をとることで、速度閉ループの周波数応答関数Ｇv_closed（複素数配列）を算出する。
【００７９】
Ωref[Ｎ]：計測用速度指令をフーリエ変換した複素数配列
Ωact[Ｎ]：応答速度をフーリエ変換した複素数配列
Ｇv_closed[Ｎ]＝（Ωact[Ｎ]）／（Ωref[Ｎ]）
ｆ[Ｎ]＝０，１／（Δｔ・Ｎ），２／（Δｔ・Ｎ），３／（Δｔ・Ｎ），…，（Ｎ−１）／（Δｔ・Ｎ）    ｆ：周波数
次に、以下の通り、速度閉ループの特性Ｇv_closedから、計測時のサーボドライバ２の速度制御器３２の特性（Ｃv）を除すことにより、計測対象Ｇｖ＿ｍｅａｓｕｒｅの周波数応答関数Ｐを求める。
【００８０】
Ｇv_open[Ｎ]＝（Ｇv_closed[Ｎ]）／（１−Ｇv_closed[Ｎ]）
Ｐ[Ｎ]＝（Ｇv_open[Ｎ]）／Ｃv[Ｎ]
以上により、計測対象Ｇｖ＿ｍｅａｓｕｒｅの周波数応答関数Ｐが求められる。
【００８１】
〔算出方法−３〕
次に、算出方法−３について、図７を参照して説明する。図７に示すように、算出方法−３では、まず、計測用位置指令生成部５４が多くの周波数成分を含む計測用位置指令を生成し、位置制御器３１、および周波数応答関数算出部５３に通知する。次に、位置制御器３１は計測用位置指令と検出位置との偏差である位置偏差から指令速度を出力する。速度制御器３２は、指令速度と検出速度との偏差である速度偏差から指令トルクを出力する。電流制御器３３は、通知された指令トルクに基づき負荷装置４を動作させる。
【００８２】
そして、周波数応答関数算出部５３は、計測用位置指令生成部５４から通知された計測用位置指令と、計測した負荷装置４における応答位置（検出位置（位置計測値、計測値））とから、計測対象Ｇｐ＿ｍｅａｓｕｒｅの周波数応答関数を算出する。計測対象Ｇｐ＿ｍｅａｓｕｒｅは、位置制御器３１、速度制御器３２、電流制御器３３、および制御対象６を含むブロックである。
【００８３】
具体的には、周波数特性算出部２２は、以下に示すように、まず、計測用位置指令と計測した応答位置のデータ（サンプリング間隔Δｔ、データ点数Ｎの時系列配列）をそれぞれ周波数解析（フーリエ変換）して比をとることで、位置閉ループの周波数応答関数Ｇp_closed（複素数配列）を算出する。
【００８４】
Θref[Ｎ]：計測用位置指令をフーリエ変換した複素数配列
Θact[Ｎ]：応答位置をフーリエ変換した複素数配列
Ｇp_closed[Ｎ]＝（Θact[Ｎ]）／（Θref[Ｎ]）
ｆ[Ｎ]＝０，１／（Δｔ・Ｎ），２／（Δｔ・Ｎ），３／（Δｔ・Ｎ），…，（Ｎ−１）／（Δｔ・Ｎ）    ｆ：周波数
次に、以下の通り、位置閉ループの特性Ｇp_closedから、位置開ループＧp_openの特性を求める。
【００８５】
Ｇp_open[Ｎ]＝（Ｇp_closed[Ｎ]）／（１−Ｇp_closed[Ｎ]）
次に、計測時の制御パラメータの値から、計測時の位置制御器３１の特性Ｃｐを求める。
【００８６】
そして、位置開ループ特性Ｇp_openから位置制御器３１の特性と積分の項（１/ｓ）を除し、速度閉ループの特性を求める。
【００８７】
Ｇv_ closed[Ｎ]＝（Ｇp_ open[Ｎ]）／（Ｃｐ／ｓ）
次に、以下の通り、速度閉ループの特性Ｇv_closedから、計測時のサーボドライバ２の速度制御器３２の特性（Ｃv）を除すことにより、計測対象Ｇｖ＿ｍｅａｓｕｒｅの周波数応答関数Ｐを求める。
【００８８】
Ｇv_open[Ｎ]＝（Ｇv_closed[Ｎ]）／（１−Ｇv_closed[Ｎ]）
Ｐ[Ｎ]＝（Ｇv_open[Ｎ]）／Ｃv[Ｎ]
以上により、計測対象Ｇｐｖ＿ｍｅａｓｕｒｅの周波数応答関数Ｐが求められる。
【００８９】
このように、本実施形態では、負荷装置４を動作して得た計測結果を用いて負荷装置４を含む計測対象の周波数応答関数を求める。そして、これを用いて以下に示すシミュレーションを実行するので、精度の高いシミュレーションを実行することができる。また、負荷装置４を含む計測対象の特性（周波数応答関数）は、計測結果から求めることができるため、負荷装置４の特性を求めるための特別な知識がユーザ５になくてもシミュレーションを実行することができる。
【００９０】
〔シミュレーション部２３における処理の詳細〕
次に、図８を参照してシミュレーション部２３における処理の詳細を説明する。図８は、本実施形態に係る設定装置１におけるシミュレーションの内容を説明するための図である。
【００９１】
図２に示すように、シミュレーション部２３は、周波数伝達関数設定部４０、インパルス応答算出部４１、シミュレーション系４２、第２指令値生成部４３、時間応答出力部４４、および周波数応答出力部４５を含む。
【００９２】
周波数伝達関数設定部４０は、周波数応答関数算出部５３が算出した周波数応答関数から、または当該周波数応答関数とシミュレーション用の制御パラメータに基づいてシミュレーションに用いる周波数伝達関数であるシミュレーション用周波数伝達関数を設定する。
【００９３】
インパルス応答算出部４１は、周波数伝達関数設定部４０が設定したシミュレーション用周波数伝達関数のインパルス応答を算出する。
【００９４】
シミュレーション系４２は、シミュレーション対象のモデル構造を含む系である。シミュレーション系４２の詳細については後述する。
【００９５】
第２指令値生成部４３は、シミュレーション用の指令値である第２指令値を生成する。
【００９６】
時間応答出力部４４は、時間応答シミュレーションを実行し、シミュレーション結果である時間応答を出力する。
【００９７】
周波数応答出力部４５は、シミュレーション結果である周波数応答を出力する。
【００９８】
〔シミュレーション系の基本構造〕
まず、図８（ａ）を参照して、シミュレーション系の基本構造（制御ブロック構造）について説明する。図８（ａ）に示すように、シミュレーション系の基本構造は、機械系７に対応し、モデル位置制御器３１’、モデル速度制御器３２’、モデル電流制御器３３’、および機械モデル部３４’を含む。
【００９９】
モデル位置制御器３１’は、サーボドライバ２の位置制御器３１に対応し、モデル速度制御器３２’は、サーボドライバ２の速度制御器３２に対応し、モデル電流制御器３３’は、サーボドライバ２の電流制御器３３に対応し、機械モデル部３４’は、制御対象６に対応する。
【０１００】
シミュレーション系の基本構造では、サーボドライバ２と同様に、モデル位置制御器３１’に位置指令（Ｐcmd）が入力されて速度指令（ｖcmd）を出力し、モデル速度制御器３２’には速度指令が入力されてトルク指令（τcmd）を出力し、モデル電流制御器３３’にはトルク指令が入力されて電流指令（ｃcmd）を出力する。そして、機械モデル部３４’に電流指令が入力され、速度（ｖsim）と位置（ｐsim）とがシミュレーション結果として出力される。
【０１０１】
〔シミュレーション−０〕
シミュレーション−０では、図８（ｂ）に示すように、図８（ａ）に示す基本構造の全体（モデル位置制御器３１’、モデル速度制御器３２’、モデル電流制御器３３’および機械モデル部３４’）を逆フーリエ変換の対象（第１周波数伝達関数）としてシミュレーションを行う。具体的には、以下の通りである。
【０１０２】
まず、上述した周波数特性算出部２２の処理により、負荷装置４を含む制御対象６の周波数応答関数Ｐを求める。次に、制御器の特性としての周波数伝達関数（Ｃｐ、Ｃｖ）を制御対象６の周波数応答関数Ｐに乗じることにより、速度開ループの周波数伝達関数Ｇv_open、および速度閉ループの周波数伝達関数Ｇv_closedを求める。ここで、周波数伝達関数（Ｃｐ、Ｃｖ）は、シミュレーション用の制御パラメータにより表現されるものである。すなわち、周波数伝達関数Ｃｐは、シミュレーション系のモデル位置制御部３１’の特性を示す周波数伝達関数であり、シミュレーション用の制御パラメータであるシミュレーション用位置比例ゲインＫpp_simが設定される。すなわち、周波数伝達関数Ｃｐは、定数となる関数である 。また、周波数伝達関数Ｃｖは、シミュレーション系のモデル速度制御部３２’の特性を示す周波数伝達関数であり、シミュレーション用の制御パラメータであるシミュレーション用速度比例ゲインＫvp_simが設定される。また、モデル速度制御部３２’がＰＩ制御を行う場合には、モデル速度制御部３２’には、シミュレーション用速度比例ゲインＫvp_simに加え、シミュレーション用速度積分ゲインＫvi_simにより表現される。このとき、周波数伝達関数Ｃｖは、Ｋvp_sim×（１＋Ｋvi_sim／２）（ラプラス演算子sの関数）として表される。さらに、位置開ループの周波数伝達関数Ｇp_open、および位置閉ループの周波数伝達関数Ｇp_closedを求める。
【０１０３】
Ｇv_open＝Ｃv・Ｐ
Ｇv_closed＝(Ｇv_open)／(１＋Ｇv_open)
Ｇp_open＝Ｃp・Ｇv_closed・１／ｓ  （ｓは伝達関数の変数）
Ｇp_closed＝（Ｇp_open）／（１＋Ｇp_open）
次に、位置閉ループの周波数伝達関数Ｇp_closedを逆フーリエ変換して、インパルス応答ｇimpを求める。これは位置のインパルス指令に対する位置の応答を意味する。
【０１０４】
ｇimp＝ＩＦＦＴ（Ｇp_closed）
次に、位置指令（時系列配列ｐcmd）に対する位置の応答（時系列配列ｐsim）を、以下の計算で求める。なお、これはインパルス応答ｇimpの畳み込みを行っていることになる。
【０１０５】
ＦＯＲ  ｍ＝０からシミュレーションしたい長さの分繰り返し ＤＯ
ＦＯＲ  ｎ＝０からｇimpの長さの分（Ｎ）だけ繰り返し ＤＯ
ｐsim[ｍ＋ｎ]＝ｐsim[ｍ＋ｎ]＋ｐcmd[ｍ]・ｇimp[ｎ]
ＥＮＤ  ＦＯＲ
ＥＮＤ  ＦＯＲ
以上により、図８（ａ）に示す基本構造全体を周波数伝達関数に置換してシミュレーションすることができる。
【０１０６】
これにより、制御パラメータを変更しながら機械系７の応答（位置応答、時間応答）をシミュレーションによって得ることができ、制御パラメータを変更して、都度、実際にモータ３を駆動して負荷装置４を動作させて応答を確認する必要がなくなる。
【０１０７】
〔シミュレーション−１〕
シミュレーション−１では、上述したシミュレーション−０よりも、以下の点が優れている。
【０１０８】
周波数特性算出部２２が、検出した結果から求めた負荷装置４を含む制御対象６の周波数応答関数には、低域の情報が十分には含まれていない。そのため、この算出結果を用いて、逆フーリエ変換を行って求めた時系列データは、低域成分に誤差を多く含むものとなってしまう。特に直流成分は定常偏差として表れるため明らからな誤差となってしまう。なお、計測時間を長めにすることにより、低域の情報を多く得ることは可能であるが、使い勝手が悪くなり、ユースケース上望ましくない。
【０１０９】
また、シミュレーション−０では、速度指令ｖcmdが表れず、速度指令ｖcmdに速度フィードフォワードを加算する構成のシミュレーションをすることはできない。
【０１１０】
そこで、シミュレーション−１では、応答位置をフィードバックして指令位置と応答位置との位置偏差を算出し、これを用いて、周波数伝達関数を逆フーリエ変換して得たインパルス応答を畳み込み、応答速度を算出し、算出した応答速度を積分して応答位置を算出することによってシミュレーションを実行している。これにより、応答位置をフィードバックして位置偏差を算出するので、低域成分の誤差が補正され、精度の高いシミュレーションを実行することできる。 
【０１１１】
より詳細に、図８（ｃ）を参照して、説明する。図８（ｃ）は、シミュレーション−１の内容を説明するための図である。図８（ｃ）に示すように、シミュレーション−１では、シミュレーション系の基本構造のうち、モデル速度制御器３２’、モデル電流制御器３３’、および機械モデル部３４’を逆フーリエ変換の対象としてシミュレーションを行う。そして、モデル位置制御器３１’が、位置指令ｐcmdと位置指令ｐcmdに対応する応答位置ｐsimとの位置偏差から速度指令ｖcmdを算出し、算出された速度指令ｖcmdから、第２周波数伝達関数を用いて応答速度ｖsimを算出し、算出された応答速度ｖsimから応答位置ｐsimを算出する。なお、ここでは、算出された速度指令ｖcmdが、位置指令ｐcmd（第２指令値）がシミュレーション系に入力されて出力された出力値に対応する。
【０１１２】
具体的には、以下のように算出する。なお、シミュレーションしたいパラメータを入力後のモデル速度制御器３２’の特性をＣｖとする。
【０１１３】
まず、周波数伝達関数設定部４０は、Ｃｖを、周波数特性算出部２２が算出した、負荷装置４を含む制御対象６の周波数応答関数Ｐに乗じて、速度開ループの周波数伝達関数Ｇv_open、および速度閉ループの周波数伝達関数Ｇv_closedを求める。
【０１１４】
Ｇv_open[Ｎ]＝Ｃv[Ｎ]・Ｐ[Ｎ]
Ｇv_closed[Ｎ]＝（Ｇv_open[Ｎ]）／（１＋Ｇv_open[Ｎ]）
次に、インパルス応答算出部４１は、速度閉ループの周波数伝達関数Ｇv_closedを、以下のように逆フーリエ変換して、インパルス応答ｇimpを求める。これは速度のインパルス指令に対する速度の応答を意味する。
【０１１５】
ｇimp[Ｎ]＝ＩＦＦＴ（Ｇv_closed[Ｎ]）
次に、シミュレーション部２３は、位置指令（時系列配列ｐcmd）に対する位置の応答（時系列配列ｐsim）および速度の応答（時系列配列ｖsim）を、以下の計算で求める。これはインパルス応答ｇimpの畳み込みを行っていることになる。なお、ｖcmdは、モデル位置制御器３１’から出力される。
【０１１６】
ＦＯＲ  ｍ＝０からシミュレーションしたい長さの分繰り返し ＤＯ
ｐerr＝ｐcmd[ｍ]−ｐsim[ｍ−1]  …  位置偏差ｐerrを算出
ｖcmd＝Ｋpp・ｐerr
ＦＯＲ ｎ＝０からｇｖ_impの長さの分(Ｎ)だけ繰り返し ＤＯ
ｖsim[ｍ＋ｎ]＝ｖcmd・ｇimp[ｎ]  …  畳み込み
ＥＮＤＦＯＲ
ｐsim[ｍ] ＝ｐsim[ｍ−1]+ｖsim[ｍ]・Δｔ  …  速度を積分して位置を算出
ＥＮＤＦＯＲ
ここで、Ｋppは位置比例ゲイン（制御パラメータ）、 Δｔは周波数応答計測時のサンプリング間隔である。
【０１１７】
以上のように、シミュレーション−１では、図８（ａ）に示す基本構造のうち、モデル速度制御器３２’、モデル電流制御器３３’、および機械モデル部３４’を逆フーリエ変換の対象とし、位置偏差を用いてシミュレーションを実行している。
【０１１８】
そして、位置偏差を用いることにより、負荷装置４を含む制御対象６の周波数応答関数に含まれる低域成分の誤差を減少させていくことができるので、シミュレーション−０と比較して、より正確なシミュレーションを実行することができる。
【０１１９】
また、速度開ループの周波数伝達関数（Ｇv_open）、速度閉ループの周波数伝達関数（Ｇv_closed）をそのままボード線図として出力することにより、速度開ループや速度閉ループの周波数応答をシミュレーションすることができる。
【０１２０】
〔変形例〕
モデル速度制御器３２’のパラメータを変更せずにシミュレーションを繰り返す場合、速度閉ループの特性（周波数伝達関数）Ｇv_closedが一定になる。そこで、前述した算出方法−２により、速度閉ループの特性（周波数伝達関数）Ｇv_closedを求め、求めた速度閉ループの特性（周波数伝達関数）Ｇv_closedを用いて、ｇimpを求めてシミュレーションを実行する。これは、例えば、位置制御器３１のパラメータのみを変更する場合、位置指令のみを変更する場合に有用である。
【０１２１】
〔設定装置１において制御パラメータを設定する処理の流れ〕
次に、図４を参照して、設定装置１において制御パラメータを調整（設定）する処理の流れを説明する。図４は、設定装置１における処理の流れを示すフローチャートである。
【０１２２】
図４に示すように、制御パラメータの調整処理では、大きな流れとして、初期設定ステップで初期設定を行い（Ｓ１）、周波数応答関数算出ステップで周波数応答関数を算出し（Ｓ２）、時間応答シミュレーション実行ステップで時間応答シミュレーションを実行し（Ｓ３）、実機応答確認ステップで実機の応答を確認する（Ｓ４）。
【０１２３】
ステップＳ１の初期設定ステップでは、パラメータ設定部２１が周波数応答計測用の制御パラメータをサーボドライバ２に設定する（Ｓ１−１）。
【０１２４】
ステップＳ２の周波数応答関数算出ステップでは、まず、周波数特性算出部２２の計測用トルク指令生成部５１、計測用速度指令生成部５２、および計測用位置指令生成部５４の少なくとも何れかが周波数応答計測用の指令値（第１指令値）を生成する（Ｓ２−１）。
【０１２５】
次に、周波数特性算出部２２は、取得部２５を介して、周波数応答を計測する（Ｓ２−２）。
【０１２６】
次に、周波数特性算出部２２は、制御対象６の特性を含む計測対象の周波数応答関数を算出する（Ｓ２−３）。
【０１２７】
ステップＳ３の時間応答シミュレーション実行ステップでは、まず、パラメータ設定部２１がシミュレーション用の制御パラメータを設定する（Ｓ３−１）。
【０１２８】
次に、周波数伝達関数設定部４０は、ステップＳ２−３で算出した周波数応答関数、または、当該周波数応答関数とシミュレーション用の制御パラメータとに基づいて算出される周波数伝達関数を、シミュレーション用周波数伝達関数として設定する（Ｓ３−２）。
【０１２９】
次に、インパルス応答算出部４１は、ステップＳ３−２で設定したシミュレーション用周波数伝達関数のインパルス応答を算出する（Ｓ３−３）。
【０１３０】
次に、第２指令値生成部４３は、シミュレーション用の指令値（第２指令値）を生成する（Ｓ３−４）。
【０１３１】
次に、時間応答出力部４４は、ステップＳ３−４で生成された第２指令値とステップＳ３−３で算出したインパルス応答とを用いて時間応答シミュレーションの実行し、結果を出力する（Ｓ３−５）。
【０１３２】
シミュレーションの実行結果は、表示部１２に、例えば図９に示すような形で表示される。図９は、シミュレーション結果の表示例を示す図である。図９に示す例では、横軸が時間（ｔ）、縦軸が位置（ｐ）または速度（ｖ）のグラフで、指令（位置指令、速度指令）とシミュレーションによる応答結果とが重畳してプロットされて表示されている。これにより、当該制御パラメータにおける指令と応答結果との対応関係を容易に認識できる。
【０１３３】
そして、出力された時間応答シミュレーションの結果が良好であれば（Ｓ３−６でＹＥＳ）、ステップＳ４に進み、良好でなければ（Ｓ３−６でＮＯ）、ステップＳ３−１に戻り、ステップＳ３を繰り返す。
【０１３４】
ステップＳ４の実機械応答確認ステップでは、まず、ステップＳ３−６で応答状態が良好と判定されたときの制御パラメータをサーボドライバ２に設定する（Ｓ４−１）。
【０１３５】
次に、設定された制御パラメータにて機械系７を動作させ、応答を計測する（Ｓ４−２）。
【０１３６】
そして、計測した応答が良好であれば（Ｓ４−３でＹＥＳ）、制御パラメータの調整を終了する。一方、計測した応答が良好でなければ（Ｓ４−３でＮＯ）、ステップＳ２−２に戻る。
【０１３７】
以上のように、本実施形態では、サーボドライバ２の制御パラメータ（位置ゲイン、速度ゲイン、およびフィルタのカットオフ周波数等）を調整するために、速度制御や位置制御の時間応答をシミュレーションしてユーザに示すことができる。これにより、ユーザ５は、設定した制御パラメータを用いたときの時間応答をシミュレーションにより随時確認することができ、実際に負荷装置４を繰り返し動作させることなく短時間で安全に調整を行うことができる。
【０１３８】
なお、上述した制御パラメータの設定処理においては、初期応答ステップＳ１、周波数応答関数算出ステップＳ２、時間応答シミュレーション実行ステップＳ３、実機応答確認ステップＳ４の４つのステップを設けたが、実機応答確認ステップＳ４は行わなくても、制御パラメータの設定処理は可能である。すなわち、モータ３および負荷装置４の周波数応答を計測した結果を用いたシミュレーションにより、制御対象６の特性を精確に反映したシミュレーションが可能であるため、実機応答確認ステップＳ４を実行せずとも、制御パラメータの設定を完了してよい。
〔実施形態２〕
〔シミュレーション−２〕
本発明の他の実施形態について、図８（ｄ）に基づいて説明すれば、以下のとおりである。なお、説明の便宜上、前記実施形態にて説明した部材と同じ機能を有する部材については、同じ符号を付記し、その説明を省略する。
【０１３９】
図８（ｄ）に示すように、本実施形態では、シミュレーションの基本構造のうち、モデル電流制御器３３’および機械モデル部３４’を１つのシミュレーション用周波数伝達関数（第３周波数伝達関数）に置換してシミュレーションを実行する。
【０１４０】
すなわち、シミュレーション−２では、応答位置をモデル位置フィードバックループ３１ｂ’により、モデル位置制御器３１’にフィードバックして位置指令（ｐcmd）とモデル応答位置（ｐsim）との位置偏差を算出し、これを用いてモデル位置制御器３１’は速度指令（ｖcmd）を生成する。そして、モデル速度制御器３２’は、速度指令と、モデル速度フィードバックループ３２ｂ’によりフィードバックされたモデル速度応答（ｖsim）との速度偏差からトルク指令（τcmd）を生成する。そして、トルク指令と、第３周波数伝達関数とから、応答速度を算出し、算出した応答速度を積分して応答位置を算出することによってシミュレーションを実行する。これにより、応答速度、応答位置をフィードバックして、速度偏差、位置偏差を算出するので、低域成分の誤差が補正され、精度の高いシミュレーションを実行することできる。 
【０１４１】
なお、モデル速度制御器３２’、第３周波数伝達関数Ｐ（３５ｃ’）、およびモデル速度フィードバックループ３２ｂ’を含む系をモデル速度フィードバック系（モデルフィードバック系）３２ａ’と呼ぶ。また、モデル速度フィードバック系３２ａ’とモデル速度制御器３２’、モデル位置フィードバックループ３１ｂ’を含む系をモデル位置フィードバック系（モデルフィードバック系）３１ａ’と呼ぶ。
【０１４２】
具体的には、シミュレーションの実行方法は、以下の通りである。シミュレーション部２３は、周波数伝達関数Ｐを、以下のように逆フーリエ変換して、インパルス応答ｇimpを求める。これはトルクのインパルス指令に対する速度の応答を意味する。
【０１４３】
ｇimp[Ｎ]＝ＩＦＦＴ（Ｐ[Ｎ]）
次に、シミュレーション部２３は、位置指令（時系列配列ｐcmd）に対する位置の応答（時系列配列ｐsim）および速度の応答（時系列配列sim）を、以下の計算で求める。これはインパルス応答ｇimpの畳み込みを行っていることになる。なお、ｖcmdは、モデル位置制御器３１’から出力され、τcmdはモデル速度制御器３２’から出力される。
【０１４４】
ＦＯＲ ｍ＝０からシミュレーションしたい長さの分繰り返し ＤＯ
ｐerr＝ｐcmd[ｍ]−ｐsim[ｍ−１]  …  位置偏差ｐerrを算出
ｖcmd＝Ｋpp・ｐerr
ｖerr＝ｖcmd−ｖsim[ｍ−１]  …  速度偏差ｖerrを算出
τcmd＝Ｋvp・ｖerr
ＦＯＲ  ｎ＝０からｇv_impの長さの分(Ｎ)だけ繰り返し ＤＯ
ｖsim[ｍ＋ｎ]＝τcmd・ｇimp[ｎ]  …  畳み込み
ＥＮＤＦＯＲ
ｐsim[ｍ]＝ｐsim [ｍ−１]＋ｖsim[ｍ]・Δｔ  …  速度を積分して位置を算出
ＥＮＤＦＯＲ
ここで、実施形態１と同様に、Ｋppは位置比例ゲイン（制御パラメータ）、 Δｔは周波数応答計測時のサンプリング間隔であり、Ｋvpは、速度比例ゲイン（制御パラメータ）である。
【０１４５】
以上のように、本実施形態では、シミュレーション系の基本構造のうち、モデル電流制御器３３’、および機械モデル部３４’の周波数伝達関数（Ｐ）を逆フーリエ変換の対象とし、位置偏差および速度偏差を用いてシミュレーションを実行している。
【０１４６】
そして、位置偏差および速度偏差を用いることにより、周波数伝達関数Ｐに含まれる低域成分の誤差を減少させていくことができるので、シミュレーション−０と比較して、より正確なシミュレーションを実行することができる。
【０１４７】
さらに、シミュレーション−１と比較しても、以下の効果を奏する。トルクフィードフォワード（モデル電流制御器３３’に対し、トルク指令にフィードフォワードを加えたものを入力とする）を含む構成をシミュレーションを実行することが可能となる。シミュレーション−１では、トルク指令τcmdが表れず、トルク指令τcmdにトルクフィードフォワードを加算することができないためである。なお、フィードフォワードの構成については、実施形態３として以下に記載する。
【０１４８】
また、モデル電流制御器３３’の制御パラメータは変更せずに、モデル位置制御器３１’およびモデル速度制御器３２’の制御パラメータのみを変更するようなシミュレーションを実行する場合、Ｐ（モデル電流制御器３３’と機械モデル部３４’とを含む系の周波数伝達関数）は変化しないため、処理量を軽減することができる。計算量の多い逆フーリエ変換を再計算する必要が無いためである。
【０１４９】
〔シミュレーション−２に対するシミュレーション−１の利点〕
ここで、シミュレーション−２に対するシミュレーション−１の利点を図１０、１１を参照して説明する。図１０および１１は、シミュレーション−１の利点を説明するための図である。
【０１５０】
図１０は、一般的な、一次遅れ要素のインパルス応答を示す図である。図１０において、Ｔは時定数である。図１０に示すように、インパルス応答は時間経過とともに収束していく。
【０１５１】
ここで、簡易的にＰ＝１／（Ｊｓ＋Ｄ）（イナーシャＪ、粘性摩擦係数Ｄの単慣性）とすると、
シミュレーション−２：Ｐ＝１／（Ｊｓ＋Ｄ）    →時定数Ｊ／Ｄ
シミュレーション−１：Ｇv_closed＝Ｃv・Ｐ／（１＋Ｃv・Ｐ）＝Ｋvp／（Ｊｓ＋Ｄ＋Ｋvp）      →時定数Ｊ／（Ｄ＋Ｋvp）
となる。
【０１５２】
したがって、シミュレーション−２のほうが、時定数が大きい。このため、インパルス応答の収束までが長くなることになる。したがって、データ点数Ｎの時点で、シミュレーション−１の場合は、インパルス応答が収束しているが（図１１（ａ）参照）、シミュレーション−２の場合は、インパルス応答が収束していない（図１１（ｂ）参照）ということが起こりうる。この場合、シミュレーション−２において、データ点数Ｎ以降のインパルス応答を無視する結果となり誤差が大きくなってしまう（図１１（ｂ）参照）。
したがって、インパルス応答が短時間で０（零）に収束した方、すなわちシミュレーション−１の方が、短い計測データでシミュレーションを実行することができる。なお、摩擦Ｄが小さい制御対象ほど、時定数の差は大きくなり、計測データの点数の差は顕著になる。
〔実施形態３〕
〔シミュレーション−３〕
本発明のさらなる他の実施形態について、図１２に基づいて説明すれば、以下のとおりである。なお、説明の便宜上、前記実施形態にて説明した部材と同じ機能を有する部材については、同じ符号を付記し、その説明を省略する。図１２は、本実施形態におけるシミュレーション−３の内容を説明するための図である。図１２に示すように、本実施形態では、シミュレーション−２の構成にフィードフォワードを追加した構成である。
【０１５３】
まず、図１２（ａ）を参照して、フィードフォワード器を設けたサーボドライバ２の制御構造を説明する。図１２（ａ）に示すように、サーボドライバ２の制御構造にフィードフォワード部３７を設ける場合、フィードフォワード部３７は、位置指令の入力を受け付けフィードフォワード速度を位置制御器３１の速度指令に加えられるように出力するとともに、フィードフォワードトルクを速度制御器３２の出力であるトルク指令に加えることができるように出力する。
【０１５４】
よって、フィードフォワードを含むサーボドライバ２のシミュレーションを実行するシミュレーション系の構造は、図１２（ｂ）に示すように、フィードフォワード部３７に対応するモデルフィードフォワード部１１０を設け、モデルフィードフォワード部１１０が位置指令（ｐcmd）の入力を受け付け、モデルフィードフォワード速度ｖff、およびモデルフィードフォワードトルクτffを出力する。なお、モデルフィードフォワード部１１０を含む系をフィードフォワード系と呼ぶ。
【０１５５】
図１２（ｃ）を参照して、モデルフィードフォワード部１１０を含む場合のシミュレーションについて説明する。なお、インパルス応答ｇimpを求めるところまでは実施形態２のシミュレーション−１と同様である。
【０１５６】
インパルス応答ｇimpを求めた後、位置指令（時系列配列ｐcmd）に対する位置の応答（時系列配列ｐsim）および速度の応答（時系列配列sim）を、以下の計算で求める。これはインパルス応答ｇimpの畳み込みを行っていることになる。
【０１５７】
ＦＯＲ  ｍ＝０からシミュレーションしたい長さの分繰り返し ＤＯ
ｐerr＝ｐcmd[ｍ]−ｐsim[ｍ−１]   …  位置偏差ｐerrを算出
ｐcmdからｖffを求める
ｖcmd＝Ｋpp・ｐerr＋ｖff
ｖerr＝ｖcmd−ｖsim[ｍ−１]   …  速度偏差ｖerrを算出
ｐcmd、およびｖcmdからτffを求める
τcmd＝Ｋvp・ｖerr＋τff
ＦＯＲ  ｎ＝０からｇv_impの長さの分(Ｎ)だけ繰り返し  ＤＯ
ｖsim[ｍ＋ｎ]＝τcmd・ｇimp[ｎ]   …  畳み込み
ＥＮＤＦＯＲ
ｐsim[ｍ]＝ｐsim[ｍ−１]＋ｖsim[ｍ]・Δｔ  …  速度を積分して位置を算出
ＥＮＤＦＯＲ
これにより、フィードフォワードを用いて、シミュレーションを実行することができる。また、一般にゲインスケジュールと呼ばれる、モータ動作中にゲイン（位置ゲイン、速度ゲイン：制御パラメータ）を変更する場合もシミュレーションすることができる。
【０１５８】
なお、速度指令ｖcmdにのみフィードフォワードを加算する構成であれば、上述した実施形態１のシミュレーション−１の構成に、フィードフォワードの構成を加えたものでもよい。
【０１５９】
〔変形例〕
なお、前述したモデルフィードフォワード部１１０を設けずに、図１３に示すように、フィードフォワード値を独立したブロック（フィードフォワード部１１０’）が生成する構成であってもよい。この場合の計算方法は以下の通りである。
【０１６０】
まず、フィードフォワード部１１０’において、フィードフォワード値を時系列配列ｖff［ｍ］、τff［ｍ］として用意しておく。そして、以下の計算を行う。
【０１６１】
ＦＯＲ  ｍ＝０からシミュレーションしたい長さの分繰り返し ＤＯ
ｐerr＝ｐcmd[ｍ]−ｐsim[ｍ−１] 
ｖcmd＝Ｋpp・ｐerr＋ｖff  速度指令ｖcmdにフィードフォワードｖffを加算
ｖerr＝ｖcmd−ｖsim[ｍ−１]
τcmd＝Ｋvp・ｖerr＋τff  トルク指令τcmdにフィードフォワードτffを加算
ＦＯＲ  ｎ＝０からｇimpの長さの分(Ｎ)だけ繰り返し  ＤＯ
ｖsim[ｍ＋ｎ]＝ｖsim[ｍ＋ｎ]＋τcmd・ｇimp[ｎ]
ＥＮＤＦＯＲ
ｐsim[ｍ]＝ｐsim[ｍ−１]＋ｖsim[ｍ]・Δｔ
ＥＮＤＦＯＲ
〔実施形態４〕
次に、図１４を参照して、速度制御シミュレーションについて説明する。図１４は、シミュレーションの内容を説明するための図である。
【０１６２】
図１４（ａ）は、速度制御を行う場合の機械系７の制御構造を示している。図１４（ａ）に示すように、速度制御では、サーボドライバ２における速度制御器３２、電流制御器３３、および機械系７の制御対象６が含まれ、速度指令と検出速度との速度偏差が速度制御器３２に入力される構成となっている。
【０１６３】
次に、図１４（ｂ）を参照して、速度制御のシミュレーションを行う場合のシミュレーション系の構造を説明する。図１４（ｂ）に示すように、シミュレーション系では、図１４（ａ）に示した機械系７の制御構造に対応して、モデル速度制御器３２’、モデル電流制御器３３’、機械モデル部３４’を含む構造となっている。
【０１６４】
〔シミュレーション−４〕
まず、図１３（ｃ）を参照して、シミュレーション−４について説明する。シミュレーション−４では、シミュレーション系のモデル速度制御器３２’、モデル電流制御器３３’、および機械モデル部３４’を１つのシミュレーション用周波数伝達関数（第２周波数伝達関数Ｇv_closed）に置換してシミュレーションを実行する。
【０１６５】
具体的な計算方法は、以下の通りである。
【０１６６】
前述したシミュレーション−１と同様に、周波数伝達関数Ｇv_closedを逆フーリエ変換して、インパルス応答ｇimpを求める。これは速度のインパルス指令に対する速度の応答を意味する。
【０１６７】
ｇimp[Ｎ]＝ＩＦＦＴ（Ｇv_closed[Ｎ]）
そして、速度指令（時系列配列ｖcmd）に対する位置の応答（時系列配列ｐsim）および速度の応答（時系列配列ｖsim）を、以下の計算で求める。
【０１６８】
ＦＯＲ  ｍ＝０からシミュレーションしたい長さの分繰り返し ＤＯ
ＦＯＲ ｎ＝０からｇｖ_impの長さの分(Ｎ)だけ繰り返し ＤＯ
ｖsim[ｍ＋ｎ]＝ｖsim[ｍ＋ｎ]＋ｖcmd・ｇimp[ｎ]  …  畳み込み
ＥＮＤＦＯＲ
ｐsim[ｍ] ＝ｐsim[ｍ−1]+ｖsim[ｍ]・Δｔ  …  速度を積分して位置を算出
ＥＮＤＦＯＲ
〔シミュレーション−５〕
次に、図１３（ｄ）を参照して、シミュレーション−５について説明する。シミュレーション−５では、シミュレーション系のモデル電流制御器３３’、および機械モデル部３４’を１つのシミュレーション用周波数伝達関数（第３周波数伝達関数Ｐ）に置換してシミュレーションを実行する。
【０１６９】
具体的な計算方法は、以下の通りである。
【０１７０】
前述したシミュレーション−２と同様に、周波数伝達関数Ｐを逆フーリエ変換して、インパルス応答ｇimpを求める。これはトルクのインパルス指令に対する速度の応答を意味する。
【０１７１】
ｇimp[Ｎ]＝ＩＦＦＴ（Ｐ[Ｎ]）
そして、速度指令（時系列配列ｖcmd）に対する位置の応答（時系列配列ｐsim）および速度の応答（時系列配列ｖsim）を、以下の計算で求める。
【０１７２】
ＦＯＲ  ｍ＝０からシミュレーションしたい長さの分繰り返し ＤＯ
ｖerr＝ｖcmd[ｍ]−ｖsim[ｍ−1]  …  速度偏差ｖerrを算出
τcmd＝Ｋpp・ｖerr
ＦＯＲ ｎ＝０からｇimpの長さの分(Ｎ)だけ繰り返し ＤＯ
ｖsim[ｍ＋ｎ]＝ｖsim[ｍ＋ｎ]＋ｖcmd・ｇimp[ｎ]  …  畳み込み
ＥＮＤＦＯＲ
ｐsim[ｍ] ＝ｐsim[ｍ−1]+ｖsim[ｍ]・Δｔ  …  速度を積分して位置を算出
ＥＮＤＦＯＲ
〔実施形態５〕
〔シミュレーション−６〕
次に、図１５を参照して、トルク制御シミュレーションについて説明する。図１５は、トルク制御シミュレーションの内容を説明するための図である。
【０１７３】
図１５（ａ）を参照して、トルク制御を行う場合の、機械系７の制御構造を説明する。図１５（ａ）に示すように、トルク制御を行う場合、電流制御器３３および制御対象６を含む制御構造となり、トルク指令が電流制御器３３入力され、電流指令を制御対象６へ出力している。
【０１７４】
次に、図１５（ｂ）を参照して、トルク制御のシミュレーションを行う場合のシミュレーション系の構造を説明する。図１５（ｂ）に示すように、シミュレーション系では、図１５（ａ）に示した機械系７の制御構造に対応して、モデル速度制御器３２’、モデル電流制御器３３’、機械モデル部３４’を含む構造となっている。
【０１７５】
図１５（ｃ）を参照して、シミュレーション−６について説明する。シミュレーション−６では、シミュレーション系のモデル電流制御器３３’、および機械モデル部３４’を１つのシミュレーション用周波数伝達関数（第３周波数伝達関数Ｐ）に置換してシミュレーションを実行する。
【０１７６】
具体的な計算方法は、以下の通りである。
【０１７７】
前述したシミュレーション−２と同様に、周波数伝達関数Ｐを逆フーリエ変換して、インパルス応答ｇimpを求める。これはトルクのインパルス指令に対する速度の応答を意味する。
【０１７８】
ｇimp[Ｎ]＝ＩＦＦＴ（Ｐ[Ｎ]）
そして、速度指令（時系列配列ｖcmd）に対する位置の応答（時系列配列ｐsim）および速度の応答（時系列配列sim）を、以下の計算で求める。
【０１７９】
ＦＯＲ ｍ＝０からシミュレーションしたい長さの分繰り返し ＤＯ
ＦＯＲ  ｎ＝０からｇv_impの長さの分(Ｎ)だけ繰り返し ＤＯ
ｖsim[ｍ＋ｎ]＝ｖsim[ｍ＋ｎ]＋τcmd・ｇimp[ｎ]  …  畳み込み
ＥＮＤＦＯＲ
ｐsim[ｍ]＝ｐsim [ｍ−１]＋ｖsim[ｍ]・Δｔ  …  速度を積分して位置を算出
ＥＮＤＦＯＲ
〔ソフトウェアによる実現例〕
設定装置１の制御ブロック（特に制御部１０（パラメータ設定部２１、周波数特性算出部２２（計測用トルク指令生成部５１、計測用速度指令生成部５２、周波数応答関数算出部５３、計測用位置指令生成部５４））、シミュレーション部２３（周波数伝達関数設定部４０、インパルス応答算出部４１、シミュレーション系４２、第２指令値生成部４３、時間応答出力部４４、周波数応答出力部４５）、動作指示部２４、および取得部２５）は、集積回路（ＩＣチップ）等に形成された論理回路（ハードウェア）によって実現してもよいし、ＣＰＵ（Central Processing Unit）を用いてソフトウェアによって実現してもよい。
【０１８０】
後者の場合、設定装置１は、各機能を実現するソフトウェアであるプログラムの命令を実行するＣＰＵ、前記プログラムおよび各種データがコンピュータ（またはＣＰＵ）で読み取り可能に記録されたＲＯＭ（Read Only Memory）または記憶装置（これらを「記録媒体」と称する）、前記プログラムを展開するＲＡＭ（Random Access Memory）などを備えている。そして、コンピュータ（またはＣＰＵ）が前記プログラムを前記記録媒体から読み取って実行することにより、本発明の目的が達成される。前記記録媒体としては、「一時的でない有形の媒体」、例えば、テープ、ディスク、カード、半導体メモリ、プログラマブルな論理回路などを用いることができる。また、前記プログラムは、該プログラムを伝送可能な任意の伝送媒体（通信ネットワークや放送波等）を介して前記コンピュータに供給されてもよい。なお、本発明は、前記プログラムが電子的な伝送によって具現化された、搬送波に埋め込まれたデータ信号の形態でも実現され得る。
【０１８１】
本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
【符号の説明】
【０１８２】
１  設定装置（シミュレーション装置）
２  サーボドライバ
３  モータ
４  負荷装置
５  ユーザ
６  制御対象
７  機械系
１０  制御部
１１  操作受付部
１２  表示部
２１  パラメータ設定部
２２  周波数特性算出部
２３  シミュレーション部
２４  動作指示部
２５  取得部
３１  位置制御器
３１’  モデル位置制御器
３１ａ’  モデル位置フィードバック系
３１ｂ’  モデル位置フィードバックループ
３２  速度制御器
３２’  モデル速度制御器
３２ａ’  モデル速度フィードバック系
３２ｂ’  モデル速度フィードバックループ
３３  電流制御器
３３’  モデル電流制御器
３４’  機械モデル部
３５ｃ’  第３周波数伝達関数
３７  フィードフォワード部
４０  周波数伝達関数設定部
４１  インパルス応答算出部
４２  シミュレーション系
４３  第２指令値生成部
４４  時間応答出力部
４５  周波数応答出力部
５１  計測用トルク指令生成部
５２  計測用速度指令生成部
５３  周波数応答関数算出部
５４  計測用位置指令生成部
１００  制御システム
１１０  モデルフィードフォワード部
【図１】
0006409803.tif 000002
【図２】
0006409803.tif 000003
【図３】
0006409803.tif 000004
【図４】
0006409803.tif 000005
【図５】
0006409803.tif 000006
【図６】
0006409803.tif 000007
【図７】
0006409803.tif 000008
【図８】
0006409803.tif 000009
【図９】
0006409803.tif 000010
【図１０】
0006409803.tif 000011
【図１１】
0006409803.tif 000012
【図１２】
0006409803.tif 000013
【図１３】
0006409803.tif 000014
【図１４】
0006409803.tif 000015
【図１５】
0006409803.tif 000016