(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を求めてシミュレーションを実行する。これは、例えば、位置制御器３１のパラメータのみを変更する場合、位置指令のみを変更する場合に有用である。
【０１１２】
〔設定装置１において制御パラメータを設定する処理の流れ〕
次に、図４を参照して、設定装置１において制御パラメータを調整（設定）する処理の流れを説明する。図４は、設定装置１における処理の流れを示すフローチャートである。
【０１１３】
図４に示すように、制御パラメータの調整処理では、大きな流れとして、初期設定ステップで初期設定を行い（Ｓ１）、周波数応答関数算出ステップで周波数応答関数を算出し（Ｓ２）、時間応答シミュレーション実行ステップで時間応答シミュレーションを実行し（Ｓ３）、実機応答確認ステップで実機の応答を確認する（Ｓ４）。
【０１１４】
ステップＳ１の初期設定ステップでは、パラメータ設定部２１が周波数応答計測用の制御パラメータをサーボドライバ２に設定する（Ｓ１−１）。
【０１１５】
ステップＳ２の周波数応答関数算出ステップでは、まず、周波数特性算出部２２の計測用トルク指令生成部５１、計測用速度指令生成部５２、および計測用位置指令生成部５４の少なくとも何れかが周波数応答計測用の指令値（第１指令値）を生成する（Ｓ２−１）。
【０１１６】
次に、周波数特性算出部２２は、取得部２５を介して、周波数応答を計測する（Ｓ２−２）。
【０１１７】
次に、周波数特性算出部２２は、制御対象６の特性を含む計測対象の周波数応答関数を算出する（Ｓ２−３）。
【０１１８】
ステップＳ３の時間応答シミュレーション実行ステップでは、まず、パラメータ設定部２１がシミュレーション用の制御パラメータを設定する（Ｓ３−１）。
【０１１９】
次に、周波数伝達関数設定部４０は、ステップＳ２−３で算出した周波数応答関数、または、当該周波数応答関数とシミュレーション用の制御パラメータとに基づいて算出される周波数伝達関数を、シミュレーション用周波数伝達関数として設定する（Ｓ３−２）。
【０１２０】
次に、インパルス応答算出部４１は、ステップＳ３−２で設定したシミュレーション用周波数伝達関数のインパルス応答を算出する（Ｓ３−３）。
【０１２１】
次に、第２指令値生成部４３は、シミュレーション用の指令値（第２指令値）を生成する（Ｓ３−４）。
【０１２２】
次に、時間応答出力部４４は、ステップＳ３−４で生成された第２指令値とステップＳ３−３で算出したインパルス応答とを用いて時間応答シミュレーションの実行し、結果を出力する（Ｓ３−５）。
【０１２３】
また、周波数応答出力部４５は、Ｓ３−１で生成されたシミュレーション用周波数伝達関数を用いて、周波数応答特性としてゲイン応答特性、および、位相応答特性の少なくともいずれかの特性を出力する（Ｓ３−Ｘ）。
【０１２４】
なお、Ｓ３−１で生成されるシミュレーション用周波数伝達関数は、時間応答シミュレーションに使用するものと、周波数応答特性の算出に使用するものとで、別のものであってよい。
【０１２５】
また、時間応答シミュレーションの実行ステップ（Ｓ３−５）と、周波数応答特性の出力ステップ（Ｓ３−Ｘ）とは、同時に行われてもよく、また、周波数応答特性の出力ステップが、時間往々シミュレーションの実行ステップよりも先に行われてもよい。
【０１２６】
シミュレーションの実行結果および周波数応答特性は、表示制御部２６により表示部１２に、例えば図９、１０に示すような形で表示される（Ｓ３−６）。
【０１２７】
そして、出力された時間応答シミュレーションの結果が良好であれば（Ｓ３−７でＹＥＳ）、ステップＳ４に進み、良好でなければ（Ｓ３−７でＮＯ）、ステップＳ３−１に戻り、ステップＳ３を繰り返す。
【０１２８】
ステップＳ４の実機械応答確認ステップでは、まず、ステップＳ３−６で応答状態が良好と判定されたときの制御パラメータをサーボドライバ２に設定する（Ｓ４−１）。
【０１２９】
次に、設定された制御パラメータにて機械系７を動作させ、応答を計測する（Ｓ４−２）。
【０１３０】
そして、計測した応答が良好であれば（Ｓ４−３でＹＥＳ）、制御パラメータの調整を終了する。一方、計測した応答が良好でなければ（Ｓ４−３でＮＯ）、ステップＳ２−２に戻る。
【０１３１】
以上のように、本実施形態では、サーボドライバ２の制御パラメータ（位置ゲイン、速度ゲイン、およびフィルタのカットオフ周波数等）を調整するために、速度制御や位置制御の時間応答をシミュレーションしてユーザに示すことができる。これにより、ユーザ５は、設定した制御パラメータを用いたときの時間応答をシミュレーションにより随時確認することができ、実際に負荷装置４を繰り返し動作させることなく短時間で安全に調整を行うことができる。
【０１３２】
なお、上述した制御パラメータの設定処理においては、初期応答ステップＳ１、周波数応答関数算出ステップＳ２、時間応答シミュレーション実行ステップＳ３、実機応答確認ステップＳ４の４つのステップを設けたが、実機応答確認ステップＳ４は行わなくても、制御パラメータの設定処理は可能である。すなわち、モータ３および負荷装置４の周波数応答を計測した結果を用いたシミュレーションにより、制御対象６の特性を精確に反映したシミュレーションが可能であるため、実機応答確認ステップＳ４を実行せずとも、制御パラメータの設定を完了してよい。
【０１３３】
〔表示制御部２６の詳細〕
次に、図９、１０を参照して、表示制御部２６の詳細について説明する。図９、１０は、表示制御部２６により表示部１２に表示する表示例を示す図である。詳細には、図９（ａ）は、周波数伝達関数のゲイン特性を示す図であり、（ｂ）は、周波数伝達関数の位相特性を示す図である。また、図１０は、時間応答（位置または速度）を示す図である。
【０１３４】
表示制御部２６は、シミュレーション部２３によるシミュレーションによって算出された、速度開ループ特性（周波数特性）Ｇv_open、速度閉ループ特性（周波数特性）Ｇv_closed、位置開ループ特性（周波数特性）Ｇp_open、位置閉ループ特性（周波数特性）Ｇp_closedを用いてボード線図（ゲイン特性（ゲイン応答特性）、および位相特性（位相応答特性）の少なくとも何れか）を生成する。また、シミュレーション部２３による時間応答（位置および速度）のシミュレーション結果を示すシミュレーション図を生成する。そして、表示制御部２６は、生成したボード線図およびシミュレーション図の双方を同時に、または選択的に表示部１２に表示する。
【０１３５】
ゲイン特性のボード線図は、横軸を周波数ｆ[Ｎ]、縦軸を２０・ｌｏｇ１０｜Ｇ[Ｎ]｜とすることにより生成できる。
【０１３６】
また、位相特性のボード線図は、横軸を周波数ｆ[Ｎ]、縦軸をａｒｇ（Ｇ[Ｎ]）とすることにより生成できる。
【０１３７】
また、シミュレーション図は、横軸を時間（ｔ）、縦軸を位置（ｐ）、または速度（ｖ）とした図である。図１０に示す例では、横軸が時間（ｔ）、縦軸が位置（ｐ）または速度（ｖ）のグラフで、指令（位置指令、速度指令）とシミュレーションによる応答結果とが重畳してプロットされて表示されている。
【０１３８】
これにより、速度開ループ特性Ｇv_open、速度閉ループ特性Ｇv_closed、位置開ループ特性Ｇp_open、位置閉ループ特性Ｇp_closedを用いたボード線図が表示されるので、ユーザに対し、サーボドライバ２の位置制御器３１、速度制御器３２の制御パラメータ（速度比例ゲイン、速度積分ゲイン、位置比例ゲイン等）の調整を容易かつ適切に行わせることができる。
【０１３９】
さらに、時間応答のシミュレーション図を表示することにより、ユーザに対し、負荷装置４を含む機械系７の応答結果を容易に認識させることができる。
〔実施形態２〕
〔シミュレーション−２〕
本発明の他の実施形態について、図８（ｄ）に基づいて説明すれば、以下のとおりである。なお、説明の便宜上、前記実施形態にて説明した部材と同じ機能を有する部材については、同じ符号を付記し、その説明を省略する。
【０１４０】
図８（ｄ）に示すように、本実施形態では、シミュレーションの基本構造のうち、モデル電流制御器３３’および機械モデル部３４’を１つのシミュレーション用周波数伝達関数（第３周波数伝達関数）に置換してシミュレーションを実行する。
【０１４１】
すなわち、シミュレーション−２では、応答位置をモデル位置フィードバックループ３１ｂ’により、モデル位置制御器３１’にフィードバックして位置指令（ｐ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にトルクフィードフォワードを加算することができないためである。なお、フィードフォワードの構成については、実施形態３として以下に記載する。
【０１４９】
また、モデル電流制御器３３’の制御パラメータは変更せずに、モデル位置制御器３１’およびモデル速度制御器３２’の制御パラメータのみを変更するようなシミュレーションを実行する場合、Ｐ（モデル電流制御器３３’と機械モデル部３４’とを含む系の周波数伝達関数）は変化しないため、処理量を軽減することができる。計算量の多い逆フーリエ変換を再計算する必要が無いためである。
【０１５０】
〔ソフトウェアによる実現例〕
設定装置１の制御ブロック（特に制御部１０（パラメータ設定部２１、周波数特性算出部２２（計測用トルク指令生成部５１、計測用速度指令生成部５２、周波数応答関数算出部５３、計測用位置指令生成部５４））、シミュレーション部２３（周波数伝達関数設定部４０、インパルス応答算出部４１、シミュレーション系４２、第２指令値生成部４３、時間応答出力部４４、周波数応答出力部４５）、動作指示部２４、取得部２５、および表示制御部２６）は、集積回路（ＩＣチップ）等に形成された論理回路（ハードウェア）によって実現してもよいし、ＣＰＵ（Central Processing Unit）を用いてソフトウェアによって実現してもよい。
【０１５１】
後者の場合、設定装置１は、各機能を実現するソフトウェアであるプログラムの命令を実行するＣＰＵ、前記プログラムおよび各種データがコンピュータ（またはＣＰＵ）で読み取り可能に記録されたＲＯＭ（Read Only Memory）または記憶装置（これらを「記録媒体」と称する）、前記プログラムを展開するＲＡＭ（Random Access Memory）などを備えている。そして、コンピュータ（またはＣＰＵ）が前記プログラムを前記記録媒体から読み取って実行することにより、本発明の目的が達成される。前記記録媒体としては、「一時的でない有形の媒体」、例えば、テープ、ディスク、カード、半導体メモリ、プログラマブルな論理回路などを用いることができる。また、前記プログラムは、該プログラムを伝送可能な任意の伝送媒体（通信ネットワークや放送波等）を介して前記コンピュータに供給されてもよい。なお、本発明は、前記プログラムが電子的な伝送によって具現化された、搬送波に埋め込まれたデータ信号の形態でも実現され得る。
【０１５２】
本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
【符号の説明】
【０１５３】
１  設定装置（シミュレーション装置）
２  サーボドライバ
３  モータ
４  負荷装置
５  ユーザ
６  制御対象
７  機械系
１０  制御部
１１  操作受付部
１２  表示部
２１  パラメータ設定部
２２  周波数特性算出部
２３  シミュレーション部
２４  動作指示部
２５  取得部
２６  表示制御部
３１  位置制御器
３１’  モデル位置制御器
３１ｂ’  モデル位置フィードバックループ
３２  速度制御器
３２’  モデル速度制御器
３２ａ’  モデル速度フィードバック系
３２ｂ’  モデル速度フィードバックループ
３３  電流制御器
３３’  モデル電流制御器
３４’  機械モデル部
４０  周波数伝達関数設定部
４１  インパルス応答算出部
４２  シミュレーション系
４３  第２指令値生成部
４４  時間応答出力部
４５  周波数応答出力部
５１  計測用トルク指令生成部
５２  計測用速度指令生成部
５３  周波数応答関数算出部
５４  計測用位置指令生成部
１００  制御システム
【図１】
0006515844.tif 000002
【図２】
0006515844.tif 000003
【図３】
0006515844.tif 000004
【図４】
0006515844.tif 000005
【図５】
0006515844.tif 000006
【図６】
0006515844.tif 000007
【図７】
0006515844.tif 000008
【図８】
0006515844.tif 000009
【図９】
0006515844.tif 000010
【図１０】
0006515844.tif 000011