(57)【特許請求の範囲】
【請求項１】
サーボモータの制御パラメータの調整装置であって、
前記サーボモータを制御するサーボドライバにおける位置制御に用いる位置比例ゲイン、および前記サーボドライバにおける速度制御に用いる速度比例ゲインを同時に調整するゲイン調整部と、
前記サーボドライバから、前記サーボドライバによって制御される負荷機械のイナーシャ値を受信するイナーシャ受信部と、を備え、
前記イナーシャ受信部が、前記サーボドライバから、前記負荷機械の実際のイナーシャ値を同定できていない段階の初期イナーシャ値を受信している期間において、
前記ゲイン調整部が、前記速度比例ゲインに対する前記位置比例ゲインの比率を、前記サーボドライバが前記負荷機械の実際のイナーシャ値を同定できている場合に設定される値に対して、前記初期イナーシャ値を前記負荷機械のイナーシャ値として想定される最大値で除した値を乗じた値に設定する
ことを特徴とする調整装置。
【請求項２】
前記ゲイン調整部が、前記位置比例ゲインおよび前記速度比例ゲインを、初期値から徐々に値を上げていき、応答が最適となるまでゲイン調整を行うことを特徴とする請求項１に記載の調整装置。
【請求項３】
前記イナーシャ受信部が、前記サーボドライバから、前記負荷機械の実際のイナーシャ値として同定された実イナーシャ値を受信すると、
前記ゲイン調整部が、前記実イナーシャ値の受信前の前記速度比例ゲインと前記初期イナーシャ値との積と、前記実イナーシャ値の受信後の前記速度比例ゲインと前記実イナーシャ値との積とが等しくなるように、前記実イナーシャ値の受信後の前記速度比例ゲインを設定することを特徴とする請求項１に記載の調整装置。
【請求項４】
前記ゲイン調整部が、前記実イナーシャ値の受信後の前記速度比例ゲインに基づいて、前記実イナーシャ値の受信後の前記位置比例ゲインを設定することを特徴とする請求項３に記載の調整装置。
【請求項５】
サーボモータの制御パラメータ調整方法であって、
前記サーボモータを制御するサーボドライバにおける位置制御に用いる位置比例ゲイン、および前記サーボドライバにおける速度制御に用いる速度比例ゲインを同時に調整するゲイン調整ステップと、
前記サーボドライバから、前記サーボドライバによって制御される負荷機械のイナーシャ値を受信するイナーシャ受信ステップと、を有し、
前記イナーシャ受信ステップにて、前記サーボドライバから、前記負荷機械の実際のイナーシャ値を同定できていない段階の初期イナーシャ値を受信している期間において、
前記ゲイン調整ステップにおいて、前記速度比例ゲインに対する前記位置比例ゲインの比率は、前記サーボドライバが前記負荷機械の実際のイナーシャ値を同定できている場合に設定される値に対して、前記初期イナーシャ値を前記負荷機械のイナーシャ値として想定される最大値で除した値を乗じた値に設定される
ことを特徴とする制御パラメータ調整方法。
【請求項６】
請求項１から４のいずれか一項に記載の調整装置としてコンピュータを機能させるための情報処理プログラムであって、前記各部としてコンピュータを機能させるための情報処理プログラム。
【請求項７】
請求項６に記載の情報処理プログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サーボモータの制御パラメータの調整を行う調整装置等に関する。
【背景技術】
【０００２】
従来、サーボモータを制御するための位置ゲイン、速度ゲイン、およびイナーシャ値等の制御パラメータを設定して、当該サーボモータの駆動を制御する制御システムが知られている。例えば、下掲の特許文献１には、サーボモータと、当該サーボモータの位置ゲインおよび速度ゲインを調整するための開発支援装置と、イナーシャ値を設定するサーボドライバとを含む、サーボシステムの開発システムが記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１１−２４４６６８号公報（２０１１年１２月１日公開）
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上述のような従来技術においては、開発支援装置が設定する位置ゲインおよび速度ゲインとは独立してサーボドライバがイナーシャ値を設定するため、調整前のイナーシャ値の設定値が実際のイナーシャ値等の特性と大きく異なる場合、当該従来技術による位置制御の安定性は低くなり、制御パラメータの調整中に大きなオーバーシュートが発生し得るという問題がある。また、前記イナーシャ値の設定値を変更することで制御特性が急変し、調整中の発振およびモータ動作の急変を起こし得るという問題がある。
【０００５】
本発明は、前記の問題点に鑑みてなされたものであり、その目的は、実際のイナーシャ値を同定できていない段階でも、オーバーシュートの生じにくい制御を実現することにある。
【課題を解決するための手段】
【０００６】
上記の課題を解決するために、本発明の一態様に係る調整装置は、サーボモータの制御パラメータの調整装置であって、前記サーボモータを制御するサーボドライバにおける位置制御に用いる位置比例ゲイン、および前記サーボドライバにおける速度制御に用いる速度比例ゲインを同時に調整するゲイン調整部を備え、前記サーボドライバが負荷機械の実際のイナーシャ値を同定できていない段階において、前記ゲイン調整部が、前記速度比例ゲインに対する前記位置比例ゲインの比率を、前記サーボドライバが前記負荷機械の実際のイナーシャ値を同定できている場合に設定される比率よりも小さくなるように設定する。
【０００７】
前記の構成によれば、前記調整装置は、前記負荷機械の実際のイナーシャ値が同定されていない段階では、速度比例ゲインに対する位置比例ゲインの比率が、前記サーボドライバが前記負荷機械の実際のイナーシャ値を同定できている場合に設定される比率よりも小さくなるように設定する。この場合、前記サーボドライバによる位置制御の伝達関数における減衰係数は、前記負荷機械の実際のイナーシャ値を同定できている場合の減衰係数よりも大きくなる。よって、前記調整装置は、前記負荷機械の実際のイナーシャ値が同定されていない段階でも、前記サーボドライバに、オーバーシュートの生じにくい制御を実現させることができるという効果を奏する。
【０００８】
好ましくは、前記サーボドライバが前記負荷機械の実際のイナーシャ値を同定できていない段階において、前記ゲイン調整部は、前記比率を、前記サーボドライバが前記負荷機械の実際のイナーシャ値を同定できている場合に設定される比率よりも、前記負荷機械のイナーシャ値として想定される最大値に応じて小さくなるように設定する。
【０００９】
前記の構成によれば、前記調整装置は、前記負荷機械のイナーシャ値として想定される最大値に応じて前記比率を設定する。ここで、前記調整装置は、前記負荷機械のイナーシャ値として想定される最大値を考慮することによって、実際に最も制御が不安定になる状態を考慮して比率を設定することになる。よって、前記調整装置は、前記負荷機械の実際のイナーシャ値が同定されていない段階でも、前記サーボドライバに、オーバーシュートの生じにくい制御を実現させることができるという効果を奏する。
【００１０】
好ましくは、前記調整装置は、前記サーボドライバから、前記サーボドライバによって制御される負荷機械のイナーシャ値を受信するイナーシャ受信部をさらに備え、前記イナーシャ受信部が、前記サーボドライバから、前記負荷機械の実際のイナーシャ値を同定できていない段階の初期イナーシャ値を受信している期間において、前記ゲイン調整部が、前記比率を、前記サーボドライバが前記負荷機械の実際のイナーシャ値を同定できている場合に設定される値に対して、前記初期イナーシャ値を前記最大値で除した値を乗じた値に設定する。
【００１１】
前記の構成によれば、前記調整装置は、前記比率を、前記負荷機械の実際のイナーシャ値が同定されている場合に設定される値に対して、初期イナーシャ値を前記最大値で除した値を乗じた値に設定する。この場合、前記調整装置は、初期イナーシャ値と実際のイナーシャ値とがどれだけ乖離していても、減衰係数を一定以上とすることができる。よって、前記調整装置は、前記負荷機械の実際のイナーシャ値が同定されていない段階でも、前記サーボドライバに、オーバーシュートの生じない制御を実現させることができるという効果を奏する。
【００１２】
好ましくは、前記ゲイン調整部は、前記位置比例ゲインおよび前記速度比例ゲインを、初期値から徐々に値を上げていき、応答が最適となるまでゲイン調整を行う。
【００１３】
前記の構成によれば、前記調整装置において、前記位置比例ゲインおよび前記速度比例ゲインは、初期値から徐々に値が上げられることによってゲイン調整が行われる。よって、前記調整装置は、前記サーボドライバに、制御量が徐々に大きくなるように制御を行わせるので、オーバーシュートの生じない制御を実現させることができるという効果を奏する。
【００１４】
好ましくは、前記イナーシャ受信部が、前記サーボドライバから、前記負荷機械の実際のイナーシャ値として同定された実イナーシャ値を受信すると、前記ゲイン調整部は、前記実イナーシャ値の受信前の前記速度比例ゲインと前記初期イナーシャ値との積と、前記実イナーシャ値の受信後の前記速度比例ゲインと前記実イナーシャ値との積とが等しくなるように、前記実イナーシャ値の受信後の前記速度比例ゲインを設定する。
【００１５】
前記の構成によれば、前記調整装置は、前記実イナーシャ値の受信後の速度比例ゲインが、前記実イナーシャ値の受信前の速度比例ゲインと初期イナーシャ値との積と、前記実イナーシャ値の受信後の速度比例ゲインと前記実イナーシャ値との積とが等しくなるように設定する。よって、前記初期イナーシャ値と前記実イナーシャ値とが大きく離れていたとしても、前記調整装置は、前記サーボドライバにおける速度制御特性を大きく変化させることなく滑らかに移行させることができる。よって、前記調整装置は、制御における発振および動作の急変等を防止することができるという効果を奏する。
【００１６】
好ましくは、前記ゲイン調整部は、前記実イナーシャ値の受信後の前記速度比例ゲインに基づいて、前記実イナーシャ値の受信後の前記位置比例ゲインを設定する。
【００１７】
前記の構成によれば、前記調整装置は、前記実イナーシャ値の受信後の前記位置比例ゲインを、前記実イナーシャ値の受信後の前記速度比例ゲインに基づいて設定する。よって、初期イナーシャ値と実イナーシャ値とが大きく離れていたとしても、前記実イナーシャ値の受信後の前記速度比例ゲインに基づいて、前記実イナーシャ値の受信後の前記位置比例ゲインを設定するので、前記調整装置は、実イナーシャ値の受信後の前記速度比例ゲインを用いて、位置比例ゲインの値を、位置制御の特性が安定となる条件の範囲で定めることができる。よって、前記調整装置は、オーバーシュートの生じにくい制御を実現させることができるという効果を奏する。
【００１８】
また、上記の課題を解決するために、本発明の一態様に係る制御パラメータ調整方法は、サーボモータの制御パラメータ調整方法であって、前記サーボモータを制御するサーボドライバにおける位置制御に用いる位置比例ゲイン、および前記サーボドライバにおける速度制御に用いる速度比例ゲインを同時に調整するゲイン調整ステップを有し、前記サーボドライバが負荷機械の実際のイナーシャ値を同定できていない段階において、前記ゲイン調整ステップにおいて、前記速度比例ゲインに対する前記位置比例ゲインの比率を、前記サーボドライバが前記負荷機械の実際のイナーシャ値を同定できている場合に設定される比率よりも小さくなるように設定する。
【００１９】
前記の構成によれば、前記制御パラメータ調整方法は、前記負荷機械の実際のイナーシャ値が同定されていない段階では、速度比例ゲインに対する位置比例ゲインの比率が、前記サーボドライバが前記負荷機械の実際のイナーシャ値を同定できている場合に設定される比率よりも小さくなるように設定する。この場合、前記サーボドライバによる位置制御の伝達関数における減衰係数は、前記負荷機械の実際のイナーシャ値を同定できている場合の減衰係数よりも大きくなる。よって、前記制御パラメータ調整方法は、前記負荷機械の実際のイナーシャ値が同定されていない段階でも、前記サーボドライバに、オーバーシュートの生じにくい制御を実現させることができるという効果を奏する。
【発明の効果】
【００２０】
本発明は、実際のイナーシャ値を同定できていない段階でも、オーバーシュートの生じにくい制御を実現することができるという効果を奏する。
【図面の簡単な説明】
【００２１】
【図１】本発明の実施形態１に係る開発支援装置の要部構成を示すブロック図である。
【図２】図１の開発支援装置を含む制御システムの概要を示す図である。
【図３】図１の開発支援装置と通信するサーボドライバが備える各構成と伝達要素との対応を示す図である。
【図４】図１の開発支援装置と通信するサーボドライバについてのブロック線図である。
【図５】図１の開発支援装置が実行する処理の流れを示すフローチャートである。
【図６】本発明の実施形態２に係る開発支援装置の要部構成を示すブロック図である。
【図７】図６の開発支援装置が実行する処理の流れを示すフローチャートである。
【図８】本発明の実施形態３に係る開発支援装置の要部構成を示すブロック図である。
【図９】従来の開発支援装置の概要を示す図である。
【図１０】従来の開発支援装置が実行する処理の流れを示すフローチャートである。
【発明を実施するための形態】
【００２２】
〔実施形態１〕
以下、本発明の実施形態１について、図１から図５に基づいて詳細に説明する。図中同一または相当部分には同一符号を付してその説明は繰返さない。本発明の一態様に係る開発支援装置１０（サーボモータ３０の制御パラメータの調整装置）についての理解を容易にするため、先ず、開発支援装置１０を含む制御システム１の概要を、図２を用いて説明する。なお、図９および図１０を用いて後述する、従来の開発支援装置９０についても、制御システム１と同様の環境下で利用される。
【００２３】
（実施形態１の制御システムの概要）
図２は、開発支援装置１０を含む制御システム１の概要を示す図である。図２に示すように、制御システム１は、開発支援装置１０と、サーボドライバ２０と、サーボモータ３０と、サーボモータ３０によって駆動される負荷機械４０と、コントローラ（ＰＬＣ、Programmable Logic Controller）８０と、を含んでいる。
【００２４】
開発支援装置１０は、サーボドライバ２０が利用する制御パラメータを設定および調整するための装置である。すなわち、開発支援装置１０は、サーボドライバ２０の応答状態が最適となるように、サーボドライバ２０の制御パラメータ（特に、位置ゲインおよび速度ゲイン）を自動調整する。開発支援装置１０は、例えば、パーソナルコンピュータによって実現され、パーソナルコンピュータに格納されたプログラムが実行されることで、当該コンピュータが開発支援装置１０として機能する。
【００２５】
開発者（たとえばサーボシステムのユーザ）は、開発支援装置１０を用いて、サーボドライバ２０において利用される制御パラメータの設定および調整を行なう。例えば、ユーザは、開発支援装置１０の画面に表示された複数の制御パラメータから設定、調整を行ないたい制御パラメータを選択し、選択した制御パラメータを設定、調整する。設定、調整されたパラメータは、開発支援装置１０からサーボドライバ２０へと転送される。
【００２６】
サーボドライバ２０は、開発支援装置１０により設定され、調整された制御パラメータを記憶するとともに、その制御パラメータに従ってサーボモータ３０を駆動し、サーボモータ３０の駆動を制御する。すなわち、サーボドライバ２０は、開発支援装置１０により設定された（調整された）制御パラメータを用いて、サーボモータ３０の制御を行い、サーボモータ３０に負荷機械４０を駆動させる。また、サーボドライバ２０に対するモータ動作のための指令は、例えば、開発支援装置１０による設定によって行い、または、図示しない上位コントローラ（例えば、図２のコントローラ８０）からの入力によって行ってもよい。すなわち、サーボドライバ２０は、コントローラ８０から制御信号を受信し、受信した制御信号に基づいて、サーボモータ３０を制御する。例えば、サーボドライバ２０は、前記制御信号に基づいて、サーボモータ３０が所定の回転速度で所定量回転するように、サーボモータ３０を駆動させる。さらに、サーボドライバ２０は、制御対象の（例えば、サーボモータ３０によって駆動される負荷機械４０、およびサーボモータ３０の）イナーシャ値を推定する。サーボドライバ２０は、自装置において推定した前記イナーシャ値を記憶するとともに、制御パラメータとして、サーボモータ３０を駆動する際に利用する。
【００２７】
コントローラ８０は、サーボモータ３０の駆動制御（例えば、位置決め制御など）のための指令（制御信号）をサーボドライバ２０に送信し、サーボドライバ２０の制御を行う。コントローラ８０は、例えば、開発支援装置１０により設定され、調整された制御パラメータを記憶したサーボドライバ２０に制御信号を送信し、サーボドライバ２０の制御を行う。
【００２８】
サーボドライバ２０は、開発支援装置１０、サーボモータ３０、およびコントローラ８０の各々と通信可能に接続されており、その接続方式は、任意の有線接続方式または無線接続方式である。例えば、開発支援装置１０とサーボドライバ２０とは、任意の通信ケーブルによって接続されており、具体的には、ＵＳＢ（Universal Serial Bus）ケーブルによって接続されていてもよい。また、サーボドライバ２０とサーボモータ３０とは、例えば、専用ケーブルによって接続されていてもよい。サーボドライバ２０とコントローラ８０とは、例えばEtherCAT（登録商標）により通信接続されていてもよい。
【００２９】
ここまで、図２を用いて、開発支援装置１０を含む制御システム１の概要を説明してきた。次に、開発支援装置１０についての理解を容易にするため、従来の開発支援装置９０について、図９および図１０に基づいて説明していく。なお、従来の開発支援装置９０は、制御システム１と同様の環境下で利用される。すなわち、従来の開発支援装置９０は、本発明の一態様に係る開発支援装置１０と同様に、サーボドライバ２１と通信可能に接続され、サーボドライバ２１に記憶される制御パラメータを設定および調整する。そして、サーボドライバ２１は、従来の開発支援装置９０により設定され、調整された制御パラメータを記憶するとともに、その制御パラメータに従ってサーボモータ３０を駆動し、サーボモータ３０の駆動を制御する。
【００３０】
（従来の開発支援装置）
図９は、従来の開発支援装置９０の概要を示す図である。従来の開発支援装置９０は、サーボドライバ２１の応答状態が最適となるように、サーボドライバ２１の制御パラメータ（具体的には、位置ゲインおよび速度ゲイン）を自動調整する。従来の開発支援装置９０は、従来のゲイン調整部９００を備え、従来のゲイン調整部９００は、位置ゲインを設定し、調整する位置ゲイン設定部９０１と、速度ゲインを設定し、調整する速度ゲイン設定部９０２と、を含んでいる。従来の開発支援装置９０は、位置制御器２１１で利用される位置ゲイン、および速度制御器２１２で利用される速度ゲインを順次大きくしながら応答性を向上させていき、最適なゲイン（位置ゲインおよび速度ゲイン）を決定する。
【００３１】
サーボドライバ２１は、従来の開発支援装置９０により設定された制御パラメータ（具体的には、位置ゲインおよび速度ゲイン）と、自装置において推定した制御パラメータ（具体的には、負荷機械４０（およびサーボモータ３０）のイナーシャ値）と、を用いてサーボモータ３０の制御を行う。すなわち、サーボドライバ２１は、従来の開発支援装置９０により設定された位置ゲインおよび速度ゲインと、自装置において推定した前記イナーシャ値と、を用いて、サーボモータ３０に、負荷機械４０を駆動させる。サーボドライバ２１は、位置制御器２１１、速度制御器２１２、トルク制御器２１３、微分器２１４、およびイナーシャ推定部２１５を含んでいる。
【００３２】
位置制御器２１１は、例えば比例制御（Ｐ制御）を行ない、具体的には、外部から（例えば、ユーザから）与えられる指令位置ｐｃｍｄと、エンコーダ５０から取得するフィードバック位置ｐｆｂとの偏差である位置偏差から、指令速度ｖｃｍｄを出力する。ここで、位置制御器２１１は、制御パラメータとして、位置比例ゲインＫｐｐをもち、指令位置ｐｃｍｄ、フィードバック位置ｐｆｂ、指令速度ｖｃｍｄ、および位置比例ゲインＫｐｐの関係は以下のように表すことができる。すなわち、「ｖｃｍｄ＝Ｋｐｐ＊（ｐｃｍｄ−ｐｆｂ）」である。
【００３３】
速度制御器２１２は、例えば比例積分制御（ＰＩ制御）を行ない、具体的には、指令速度ｖｃｍｄと、微分器２１４がエンコーダ５０からのフィードバック位置ｐｆｂに基づいて算出したフィードバック速度ｖｆｂ（検出速度）との偏差である速度偏差から、指令トルクτｃｍｄを出力する。ここで、速度制御器２１２は、制御パラメータとして、速度比例ゲインＫｖｐ、速度積分ゲインＫｖｉ、イナーシャ設定値Ｊｃをもち、指令速度ｖｃｍｄ、フィードバック速度ｖｆｂ、指令トルクτｃｍｄ、速度比例ゲインＫｖｐ、速度積分ゲインＫｖｉ、イナーシャ設定値Ｊｃの関係は以下のように表すことができる。すなわち、「τｃｍｄ＝Ｊｃ＊Ｋｖｐ＊（１＋Ｋｖｉ／ｓ）＊（ｖｃｍｄ−ｖｆｂ）」である。なお、イナーシャ設定値Ｊｃは、後述するイナーシャ推定部２１５によって推定された負荷機械４０（および、サーボモータ３０）のイナーシャ値である。また、ｓはラプラス演算子である。
【００３４】
トルク制御器２１３は、速度制御器２１２により生成された指令トルクτｃｍｄに基づいて、サーボモータ３０を制御する。微分器２１４は、エンコーダ５０からのフィードバック位置ｐｆｂに基づいてフィードバック速度ｖｆｂを算出し、算出したフィードバック速度ｖｆｂをイナーシャ推定部２１５に通知する。
【００３５】
イナーシャ推定部２１５は、指令トルクτｃｍｄに基づいてトルク制御器２１３がサーボモータ３０に指示するトルクとフィードバック速度ｖｆｂ（検出速度）とに基づいて、負荷機械４０（および、サーボモータ３０）のイナーシャ値を推定する。すなわち、イナーシャ推定部２１５は、フィードバック速度ｖｆｂとサーボモータ３０に与えられるトルクとから、負荷機械４０（および、サーボモータ３０）のイナーシャ値を推定する。
【００３６】
なお、以下の説明においては、イナーシャ推定部２１５が負荷機械４０（および、サーボモータ３０）の実際のイナーシャ値（実イナーシャ値Ｊｐ）を同定（推定）できていない段階を「調整前」と呼ぶことがある。また、調整前の段階においてイナーシャ推定部２１５が推定した負荷機械４０（および、サーボモータ３０）のイナーシャ値を「初期イナーシャ値」と呼ぶことがある。
【００３７】
サーボドライバ２１は、イナーシャ推定部２１５によって推定された負荷機械４０（および、サーボモータ３０）のイナーシャ値を、制御パラメータとして、サーボモータ３０の制御に適宜利用する。すなわち、イナーシャ推定部２１５によって推定された負荷機械４０（および、サーボモータ３０）のイナーシャ値は、速度制御器２１２によって、イナーシャ設定値Ｊｃとして利用される。
【００３８】
エンコーダ５０は、サーボモータ３０の位置を検出し、例えば、サーボモータ３０の回転角度を検出する。エンコーダ５０は、検出した位置をサーボドライバ２１に送信する。なお、エンコーダ５０は、サーボモータ３０の速度を検出してもよく、検出した速度をサーボドライバ２１に送信してもよい。その場合、サーボドライバ２１は、エンコーダ５０によって検出されたサーボモータ３０の位置からサーボモータ３０の速度を算出する微分器２１４を備えなくてもよい。
【００３９】
サーボモータ３０のモータ動作のための指令は、従来の開発支援装置９０による設定によって行い、または、図示しない上位コントローラ（例えば、図２のコントローラ８０）からの入力によって行う。
【００４０】
図１０は、従来の開発支援装置９０が実行する処理の流れを示すフローチャートであり、特に、従来の開発支援装置９０が実行する位置ゲインおよび速度ゲインの調整処理のフロー（調整フロー）を示すフローチャートである。従来の開発支援装置９０は、先ず、制御パラメータ初期設定を行ない（Ｓ９１０）、つまり、位置ゲインおよび速度ゲインの初期値をサーボドライバ２１に通知する。
【００４１】
次に、従来の開発支援装置９０は、サーボドライバ２１に指令を与えてサーボモータ３０を駆動させ、位置決め動作（試行）を行わせる（Ｓ９２０）。つまり、従来の開発支援装置９０は、サーボドライバ２１に、通知した位置ゲインおよび速度ゲインの初期値を用いてサーボモータ３０を動作させ、サーボモータ３０に負荷機械４０を駆動させる。そして、従来の開発支援装置９０（または、サーボドライバ２１）は、応答状態を計測し（Ｓ９３０）、つまり、位置ゲインおよび速度ゲインの初期値を用いて行った位置決め動作の結果を、例えばエンコーダ５０から、取得する。そして、従来の開発支援装置９０は、計測した応答状態（例えばエンコーダ５０から取得した位置決め動作の結果）を用いて、応答状態が最適となったかを判定する（Ｓ９４０）。
【００４２】
応答状態が最適となっていないと判定すると（Ｓ９４０でＮＯ）、従来の開発支援装置９０は、ゲイン（位置ゲインおよび速度ゲイン）を大きくし（Ｓ９５０）、つまり最適ではないと判断した応答状態に対応する位置ゲインおよび速度ゲインよりも大きな値の位置ゲインおよび速度ゲインをサーボドライバ２１に通知する。そして、Ｓ９２０からＳ９４０までの処理が繰り返される。つまり、従来の開発支援装置９０は、位置ゲインおよび速度ゲインを順次大きくしながら、サーボドライバ２１の応答性を向上させていく。応答状態が最適となったと判定すると（Ｓ９４０でＹＥＳ）、従来の開発支援装置９０は調整作業を完了し、つまり、最適なゲイン（位置ゲインおよび速度ゲイン）を決定する。
【００４３】
つまり、従来の開発支援装置９０は、位置ゲイン（具体的には、位置比例ゲインＫｐｐ）と速度ゲイン（具体的には、速度比例ゲインＫｖｐおよび速度積分ゲインＫｖｉ）とを順次大きくして応答性を向上させていき、応答状態が最適となったら調整を終了する。
【００４４】
なお、負荷機械４０（および、サーボモータ３０）のイナーシャ値の推定は、サーボドライバ２１のイナーシャ推定部２１５によって、従来の開発支援装置９０の、例えばＳ９３０の処理と並行して実行される。つまり、イナーシャ推定部２１５は、従来の開発支援装置９０が行う位置ゲインおよび速度ゲインの調整フローとは独立に、負荷機械４０（および、サーボモータ３０）のイナーシャ値を推定し、速度制御器２１２が利用するイナーシャ設定値Ｊｃを更新する。
【００４５】
以上の説明からも分かる通り、サーボドライバ２１において利用される制御パラメータのうち、位置ゲインおよび速度ゲインの値は従来の開発支援装置９０が設定する。一方、サーボドライバ２１において利用される制御パラメータのうち、イナーシャ設定値Ｊｃは、サーボドライバ２１内で自動的に推定した値が、具体的には、イナーシャ推定部２１５が推定した値が利用される。つまり、サーボドライバ２１が利用する制御パラメータのうち、位置ゲインおよび速度ゲインの値は、サーボドライバ２１のイナーシャ推定部２１５が推定した負荷機械４０（および、サーボモータ３０）のイナーシャ値とは無関係に、従来の開発支援装置９０によって設定され、調整される。
【００４６】
ここで、イナーシャ推定部２１５が負荷機械４０（および、サーボモータ３０）の実際のイナーシャ値（実イナーシャ値Ｊｐ）を同定できていない段階では、以下の事態が発生し得る。すなわち、イナーシャ推定部２１５が推定する負荷機械４０（および、サーボモータ３０）のイナーシャ値（つまり、速度制御器２１２が利用するイナーシャ設定値Ｊｃ）が、実際の制御対象の特性（例えば、負荷機械４０（および、サーボモータ３０）の実際のイナーシャ値、すなわち実イナーシャ値Ｊｐ）と大きく異なる場合、サーボドライバ２１の位置制御の安定性が低下し、調整中に大きなオーバーシュートが発生する可能性がある。
【００４７】
また、サーボドライバ２１内で設定されるイナーシャ設定値Ｊｃが変更されることで、つまり、イナーシャ推定部２１５が推定する負荷機械４０（および、サーボモータ３０）のイナーシャ値が変更されることで、サーボドライバ２１の制御特性が急変し、調整中の発振およびモータ動作の急変等の問題を起こす可能性もある。具体的には、イナーシャ推定部２１５が負荷機械４０（および、サーボモータ３０）のイナーシャ値についての推定値を変更することにより、速度制御器２１２が利用するイナーシャ設定値Ｊｃが変更され、速度制御器２１２の制御特性が急変し得る。
【００４８】
以上に概要を説明した従来の開発支援装置９０の抱える課題は、より詳細に説明すれば、以下の２つ課題（課題１および課題２）に整理することができる。
【００４９】
（従来技術の課題１）
従来の開発支援装置９０は、制御パラメータの調整中は、サーボドライバ２１に通知する位置ゲイン（例えば、位置比例ゲインＫｐｐ）と速度ゲイン（例えば、速度比例ゲインＫｖｐおよび速度積分ゲインＫｖｉ）とを、例えばパラメータテーブルに従って、設定する。従来の開発支援装置９０の利用する前記パラメータテーブルは、本来、サーボドライバ２１による位置制御の安定性が確保されるゲイン（位置ゲインおよび速度ゲイン）の組み合わせとなるよう設計されている。しかしながら、調整前の（すなわち、イナーシャ推定部２１５が負荷機械４０（および、サーボモータ３０）の実際のイナーシャ値、すなわち実イナーシャ値Ｊｐを同定できていない段階の）イナーシャ設定値Ｊｃが、実際の装置の特性（例えば、前記実イナーシャ値Ｊｐ）と大きく異なる場合、位置制御の安定性が、前記パラメータテーブルの設計意図に反して低くなる可能性がある。
【００５０】
（従来技術の課題２）
サーボドライバ２１のイナーシャ推定部２１５によってイナーシャ設定値Ｊｃが小さい値から大きい値へ自動的に更新される場合、サーボドライバ２１の速度制御器２１２の特性が急激に変化することにより、サーボモータ３０（負荷機械４０）の発振および動作の急変など、危険な現象を引き起こす可能性がある。
【００５１】
本発明の一態様に係る開発支援装置１０は、従来の開発支援装置９０の抱える前記課題１を解決するために、調整前のイナーシャ設定値Ｊｃと実際の装置の特性（負荷機械４０（および、サーボモータ３０）の実際のイナーシャ値、すなわち実イナーシャ値Ｊｐ）とが大きく乖離していても、サーボドライバ２０による位置制御の安定性が確保されるよう、イナーシャ推定前（つまり、「調整前」）のゲインを設定する。開発支援装置１０は、イナーシャ推定部２１５が負荷機械４０（および、サーボモータ３０）の実イナーシャ値Ｊｐを同定できていない段階のイナーシャ設定値Ｊｃと実際の装置の特性とが大きく乖離していても、サーボドライバ２０による位置制御の安定性が確保されるよう、「調整前」の位置ゲインおよび速度ゲインを設定する。すなわち、開発支援装置１０は、イナーシャ値、位置ゲイン、および速度ゲインが、制御パラメータの調整前および調整中でも、常に安定な関係となるよう、イナーシャ値、位置ゲイン、および速度ゲインを調整する。したがって、開発支援装置１０は、イナーシャ値、位置ゲイン、および速度ゲイン等の制御パラメータの安全な調整が可能となり、具体的には、オーバーシュートの生じる可能性を抑制した制御を実現することができる。
【００５２】
開発支援装置１０の理解を容易にするために、開発支援装置１０の概要を説明しておけば、以下の通りである。すなわち、開発支援装置１０は、サーボモータ３０の制御パラメータの調整装置であって、サーボモータ３０を制御するサーボドライバ２０における位置制御に用いる位置比例ゲインＫｐｐ、およびサーボドライバ２０における速度制御に用いる速度比例ゲインＫｖｐを同時に調整するゲイン調整部１００を備え、サーボドライバ２０が負荷機械４０（および、サーボモータ３０）の実際のイナーシャ値Ｊｐを同定できていない段階において、ゲイン調整部１００が、前記速度比例ゲインＫｖｐに対する前記位置比例ゲインＫｐｐの比率を、サーボドライバ２０が負荷機械４０（および、サーボモータ３０）の実際のイナーシャ値Ｊｐを同定できている場合に設定される比率よりも小さくなるように設定する。実際のイナーシャ値Ｊｐを同定できている場合、「α」を定数（例えば、「４」以上の実数である定数）として、前記速度比例ゲインＫｖｐに対する前記位置比例ゲインＫｐｐの比率として、例えば「１／α」を設定する。実際のイナーシャ値Ｊｐを同定できていない場合、「Ｊ０」を実際のイナーシャ値Ｊｐを同定できていない段階の初期イナーシャ値とし、「Ｊｍａｘ」をイナーシャ値として想定される最大値として、前記速度比例ゲインＫｖｐに対する前記位置比例ゲインＫｐｐの比率として、例えば「Ｊｏ／Ｊｍａｘ・１／α」を設定する。
【００５３】
前記の構成によれば、開発支援装置１０は、負荷機械４０（および、サーボモータ３０）の実際のイナーシャ値Ｊｐが同定されていない段階では、速度比例ゲインＫｖｐに対する位置比例ゲインＫｐｐの比率が、サーボドライバ２０が負荷機械４０（および、サーボモータ３０）の実際のイナーシャ値Ｊｐを同定できている場合に設定される比率よりも小さくなるように設定する。この場合、サーボドライバ２０による位置制御の伝達関数における減衰係数ζは、負荷機械４０（および、サーボモータ３０）の実際のイナーシャ値Ｊｐを同定できている場合の減衰係数ζよりも大きくなる。よって、開発支援装置１０は、負荷機械４０（および、サーボモータ３０）の実際のイナーシャ値Ｊｐが同定されていない段階でも、サーボドライバ２０に、オーバーシュートの生じにくい制御を実現させることができるという効果を奏する。
【００５４】
サーボドライバ２０が負荷機械４０（および、サーボモータ３０）の実際のイナーシャ値Ｊｐを同定できていない段階において、開発支援装置１０のゲイン調整部１００は、前記比率（速度比例ゲインＫｖｐに対する位置比例ゲインＫｐｐの比率）を、サーボドライバ２０が負荷機械４０（および、サーボモータ３０）の実際のイナーシャ値Ｊｐを同定できている場合に設定される比率よりも、負荷機械４０（および、サーボモータ３０）のイナーシャ値として想定される最大値Ｊｍａｘに応じて小さくなるように設定する。
【００５５】
前記の構成によれば、開発支援装置１０は、負荷機械４０（および、サーボモータ３０）のイナーシャ値として想定される最大値Ｊｍａｘに応じて前記比率を設定する。ここで、開発支援装置１０は、負荷機械４０（および、サーボモータ３０）のイナーシャ値として想定される最大値Ｊｍａｘを考慮することによって、実際に最も制御が不安定になる状態を考慮して比率を設定することになる。よって、開発支援装置１０は、負荷機械４０（および、サーボモータ３０）の実際のイナーシャ値Ｊｐが同定されていない段階でも、サーボドライバ２０に、オーバーシュートの生じにくい制御を実現させることができるという効果を奏する。
【００５６】
開発支援装置１０は、サーボドライバ２０から、サーボドライバ２０によって制御される負荷機械４０（および、サーボモータ３０）のイナーシャ値（イナーシャ推定部２０９によって推定されたイナーシャ値、すなわち、イナーシャ設定値Ｊｃ）を受信する装置受信部１１２（イナーシャ受信部）をさらに備え、装置受信部１１２が、サーボドライバ２０から、負荷機械４０（および、サーボモータ３０）の実際のイナーシャ値Ｊｐを同定できていない段階の初期イナーシャ値Ｊ０を受信している期間において、ゲイン調整部１００が、前記比率を、サーボドライバ２０が負荷機械４０（および、サーボモータ３０）の実際のイナーシャ値Ｊｐを同定できている場合に設定される値に対して、前記初期イナーシャ値Ｊ０を前記最大値Ｊｍａｘで除した値を乗じた値に設定する。
【００５７】
前記の構成によれば、開発支援装置１０は、前記比率を、負荷機械４０（および、サーボモータ３０）の実際のイナーシャ値Ｊｐが同定されている場合に設定される値に対して、初期イナーシャ値Ｊ０を前記最大値Ｊｍａｘで除した値を乗じた値に設定する。この場合、開発支援装置１０は、初期イナーシャ値Ｊ０と実際のイナーシャ値Ｊｐとがどれだけ乖離していても、減衰係数ζを一定以上とすることができる。よって、開発支援装置１０は、負荷機械４０（および、サーボモータ３０）の実際のイナーシャ値Ｊｐが同定されていない段階でも、サーボドライバ２０に、オーバーシュートの生じない制御を実現させることができるという効果を奏する。
【００５８】
ゲイン調整部１００は、前記位置比例ゲインＫｐｐおよび前記速度比例ゲインＫｖｐを、初期値から徐々に値を上げていき、応答が最適となるまでゲイン調整を行う。
【００５９】
前記の構成によれば、開発支援装置１０において、前記位置比例ゲインＫｐｐおよび前記速度比例ゲインＫｖｐは、初期値から徐々に値が上げられることによってゲイン調整が行われる。よって、開発支援装置１０は、サーボドライバ２０に、制御量が徐々に大きくなるように制御を行わせるので、オーバーシュートの生じない制御を実現させることができるという効果を奏する。
【００６０】
以上に概要を説明した開発支援装置１０、および、開発支援装置１０により設定（調整）された制御パラメータを用いてサーボモータ３０の駆動制御を行うサーボドライバ２０について、次に、図１、図３、および図４を用いて、その詳細を説明していく。
【００６１】
（本発明の一態様に係る開発支援装置の詳細）
図１は、開発支援装置１０の要部構成を示すブロック図である。開発支援装置１０は、サーボドライバ２０の応答状態が最適となるように、サーボドライバ２０の制御パラメータを自動調整し、具体的には、ゲイン調整部１００と、装置通信部１１０とを備えている。ゲイン調整部１００は、位置ゲイン（前記位置比例ゲインＫｐｐ）および速度ゲイン（前記速度比例ゲインＫｖｐ）を、初期値から徐々に値を上げていき、応答が最適となるまでゲイン調整を行う。
【００６２】
なお、以下では、開発支援装置１０（ゲイン調整部１００）により調整、制御され、サーボドライバ２０の利用する位置ゲインおよび速度ゲインが、各々、位置比例ゲインＫｐｐおよび速度比例ゲインＫｖｐである例を説明する。すなわち、以下の説明においては特に断らない限り、「位置ゲイン」とは「位置比例ゲインＫｐｐ」を意味し、「速度ゲイン」とは「速度比例ゲインＫｖｐ」を意味するものとする。
【００６３】
ゲイン調整部１００は、サーボドライバ２０が負荷機械４０（および、サーボモータ３０）の実際のイナーシャ値Ｊｐを同定できていない段階において、具体的には、装置受信部１１２が、サーボドライバ２０から、負荷機械４０（および、サーボモータ３０）の実際のイナーシャ値Ｊｐを同定できていない段階の初期イナーシャ値Ｊ０を受信している期間において、速度比例ゲインＫｖｐに対する位置比例ゲインＫｐｐの比率（以下、「速度位置比率」と略記する）を以下のように設定する。すなわち、ゲイン調整部１００は、前記速度位置比率を、サーボドライバ２０が負荷機械４０（および、サーボモータ３０）の実際のイナーシャ値Ｊｐを同定できている場合に設定される比率よりも小さくなるように設定する。ゲイン調整部１００は、特に、前記速度位置比率を、サーボドライバ２０が負荷機械４０（および、サーボモータ３０）の実際のイナーシャ値Ｊｐを同定できている場合に設定される比率よりも、負荷機械４０（および、サーボモータ３０）のイナーシャ値として想定される最大値Ｊｍａｘに応じて小さくなるように設定する。ゲイン調整部１００は、例えば、速度比例ゲインＫｖｐに対する位置比例ゲインＫｐｐの率を、サーボドライバ２０が負荷機械４０（および、サーボモータ３０）の実際のイナーシャ値Ｊｐを同定できている場合に設定される値に対して、前記初期イナーシャ値Ｊ０を前記最大値Ｊｍａｘ（負荷機械４０（および、サーボモータ３０）のイナーシャ値として想定される最大値）で除した値を乗じた値に設定する。
【００６４】
ゲイン調整部１００は、位置ゲイン設定部１０１、速度ゲイン設定部１０２、位置速度比率調整部１０３、イナーシャ値判定部１０４、および、イナーシャ値取得部１０５を含んでいる。位置ゲイン設定部１０１は、サーボドライバ２０の位置制御器２０４によって利用される位置ゲインを生成する。速度ゲイン設定部１０２は、サーボドライバ２０の速度制御器２０５によって利用される速度ゲインを生成する。位置ゲイン設定部１０１および速度ゲイン設定部１０２の各々によって生成された位置ゲインおよび速度ゲインの各々は、位置速度比率調整部１０３に通知される。
【００６５】
位置速度比率調整部１０３は、位置ゲイン設定部１０１により生成された位置ゲインと、速度ゲイン設定部１０２により生成された速度ゲインと、の比率を調整する。位置速度比率調整部１０３は、前記速度位置比率を設定し、つまり、速度ゲインに対する位置ゲインの比率（つまり、速度位置比率）が所定の範囲の値となるように、位置ゲインおよび速度ゲインの値を調整する。
【００６６】
位置速度比率調整部１０３は、特に、「サーボドライバ２０が負荷機械４０（および、サーボモータ３０）の実際のイナーシャ値Ｊｐを同定できているか否か」により、前記速度位置比率を調整する。すなわち、位置速度比率調整部１０３は、イナーシャ値取得部１０５（装置受信部１１２）がサーボドライバ２０から取得したイナーシャ値が、サーボドライバ２０が負荷機械４０（および、サーボモータ３０）の実際のイナーシャ値Ｊｐを同定できていない段階における初期イナーシャ値Ｊ０であるのか、または、イナーシャ推定部２０９が同定した負荷機械４０（および、サーボモータ３０）の実際のイナーシャ値Ｊｐであるのかに応じて、前記速度位置比率を調整する。
【００６７】
位置速度比率調整部１０３は、イナーシャ値判定部１０４から、サーボドライバ２０が負荷機械４０（および、サーボモータ３０）の実際のイナーシャ値Ｊｐを同定できていないとの判定の結果を、つまり、イナーシャ値取得部１０５が取得したイナーシャ値が前記初期イナーシャ値Ｊ０であるとの判定の結果を通知されると、前記速度位置比率を、以下のように設定する。すなわち、位置速度比率調整部１０３は、前記速度位置比率を、サーボドライバ２０が負荷機械４０（および、サーボモータ３０）の実際のイナーシャ値Ｊｐを同定できている場合に設定される比率よりも小さくなるように設定し、特に、実際のイナーシャ値Ｊｐを同定できている場合に設定される比率よりも、負荷機械４０（および、サーボモータ３０）のイナーシャ値として想定される最大値Ｊｍａｘに応じて小さくなるように設定する。位置速度比率調整部１０３は、例えば、前記前記速度位置比率を、サーボドライバ２０が負荷機械４０（および、サーボモータ３０）の実際のイナーシャ値Ｊｐを同定できている場合に設定される値に対して、前記初期イナーシャ値Ｊ０を前記最大値Ｊｍａｘで除した値を乗じた値に設定する。
【００６８】
そして、位置速度比率調整部１０３によって、前記前記速度位置比率が所望の値となるように調整された位置ゲイン（位置比例ゲインＫｐｐ）と速度ゲイン（速度比例ゲインＫｖｐ）とが、装置送信部１１１を介してサーボドライバ２０に送信される。なお、位置速度比率調整部１０３は、前記前記速度位置比率（速度比例ゲインＫｖｐに対する位置比例ゲインＫｐｐの比率）が所望の値となるように、位置ゲイン設定部１０１により生成された位置ゲイン（位置比例ゲインＫｐｐ）の値を固定し、速度ゲイン設定部１０２により生成された速度ゲイン（速度比例ゲインＫｖｐ）の値を調整してもよい。また、位置速度比率調整部１０３は、前記前記速度位置比率が所望の値となるように、速度ゲイン設定部１０２により生成された速度比例ゲインＫｖｐの値を固定し、位置ゲイン設定部１０１により生成された位置比例ゲインＫｐｐの値を調整してもよい。さらに、位置速度比率調整部１０３は、前記前記速度位置比率が所望の値となるように、位置ゲイン設定部１０１により生成された位置比例ゲインＫｐｐの値と、速度ゲイン設定部１０２により生成された速度比例ゲインＫｖｐの値とを、各々適宜調整してもよい。すなわち、前記前記速度位置比率が所望の値となるように位置速度比率調整部１０３によって調整された位置ゲイン（位置比例ゲインＫｐｐ）と速度ゲイン（速度比例ゲインＫｖｐ）とが、装置送信部１１１を介してサーボドライバ２０に送信されればよい。
【００６９】
位置速度比率調整部１０３（ゲイン調整部１００）は、イナーシャ値判定部１０４から、サーボドライバ２０が負荷機械４０（および、サーボモータ３０）の実際のイナーシャ値Ｊｐを同定できているとの判定の結果を、つまり、イナーシャ値取得部１０５が取得したイナーシャ値が、サーボドライバ２０により同定された負荷機械４０（および、サーボモータ３０）の実際のイナーシャ値Ｊｐであるとの判定の結果を通知されると、以下の処理を実行する。すなわち、ゲイン調整部１００（位置速度比率調整部１０３）は、位置ゲイン設定部１０１により生成された位置比例ゲインＫｐｐ、および、速度ゲイン設定部１０２により生成された速度比例ゲインＫｖｐの値を、サーボドライバ２０の応答が最適となるまで、徐々に上げていく（大きくしていく）。ゲイン調整部１００（位置速度比率調整部１０３）は、位置比例ゲインＫｐｐと速度比例ゲインＫｖｐとを順次大きくしながらサーボドライバ２０の応答性を向上させていき、最適な設定値（最適な、位置比例ゲインＫｐｐおよび速度比例ゲインＫｖｐ）を決定する。
【００７０】
以上に説明した位置速度比率調整部１０３について整理しておけば以下の通りである。すなわち、位置速度比率調整部１０３は、位置ゲイン設定部１０１および速度ゲイン設定部１０２の各々から、位置ゲイン設定部１０１により生成された位置ゲイン、および、速度ゲイン設定部１０２により生成された速度ゲインを取得する。また、位置速度比率調整部１０３は、イナーシャ値判定部１０４から、サーボドライバ２０が負荷機械４０（および、サーボモータ３０）の実際のイナーシャ値Ｊｐを同定できているか否かの判定結果、つまり、イナーシャ値取得部１０５（装置受信部１１２）が取得したイナーシャ値が前記初期イナーシャ値Ｊ０であるのか、または、実際のイナーシャ値Ｊｐであるのかの判定結果を取得する。さらに、位置速度比率調整部１０３は、イナーシャ値取得部１０５から、前記初期イナーシャ値Ｊ０および負荷機械４０（および、サーボモータ３０）のイナーシャ値として想定される最大値Ｊｍａｘ、または、負荷機械４０（および、サーボモータ３０）の実際のイナーシャ値Ｊｐを取得する。
【００７１】
そして、位置速度比率調整部１０３は、イナーシャ値取得部１０５が取得したイナーシャ値が前記初期イナーシャ値Ｊ０である場合、位置ゲイン（位置比例ゲインＫｐｐ）と速度ゲイン（速度比例ゲインＫｖｐ）との比率（速度位置比率）が所定の範囲にある値となるよう、位置ゲインおよび速度ゲインを調整する。そして、調整後の位置ゲインおよび速度ゲインを、装置送信部１１１を介してサーボドライバ２０に通知し、サーボドライバ２０に、調整後の位置ゲインおよび速度ゲインを制御パラメータとして利用させる。
【００７２】
位置速度比率調整部１０３は、前記速度位置比率を、サーボドライバ２０が負荷機械４０（および、サーボモータ３０）の実際のイナーシャ値Ｊｐを同定できている場合に設定される比率よりも小さくなるように設定し、特に、実際のイナーシャ値Ｊｐを同定できている場合に設定される比率よりも、負荷機械４０（および、サーボモータ３０）のイナーシャ値として想定される最大値Ｊｍａｘに応じて小さくなるように設定する。位置速度比率調整部１０３は、例えば、前記前記速度位置比率を、サーボドライバ２０が負荷機械４０（および、サーボモータ３０）の実際のイナーシャ値Ｊｐを同定できている場合に設定される値に対して、前記初期イナーシャ値Ｊ０を前記最大値Ｊｍａｘで除した値を乗じた値に設定する。前述の通り、位置速度比率調整部１０３は、例えば、イナーシャ値取得部１０５から、前記初期イナーシャ値Ｊ０、および負荷機械４０（および、サーボモータ３０）のイナーシャ値として想定される最大値Ｊｍａｘを取得する。
【００７３】
イナーシャ値判定部１０４は、サーボドライバ２０が負荷機械４０（および、サーボモータ３０）の実際のイナーシャ値Ｊｐを同定できているか否かを判定する。より具体的には、イナーシャ値判定部１０４は、イナーシャ値取得部１０５（装置受信部１１２）がサーボドライバ２０から取得したイナーシャ値が、サーボドライバ２０が負荷機械４０（および、サーボモータ３０）の実際のイナーシャ値Ｊｐを同定できていない段階における初期イナーシャ値Ｊ０であるのか、または、イナーシャ推定部２０９が同定した負荷機械４０（および、サーボモータ３０）の実際のイナーシャ値Ｊｐであるのかを判定する。イナーシャ値判定部１０４は、前記判定の結果を位置速度比率調整部１０３に通知する。
【００７４】
イナーシャ値判定部１０４は、装置受信部１１２を介してサーボドライバ２０から、例えば、後述する識別情報を取得し、当該識別情報を用いて、イナーシャ値取得部１０５がサーボドライバ２０から取得したイナーシャ値が、前記初期イナーシャ値Ｊ０であるのか、または、前記実際のイナーシャ値Ｊｐであるのかを判定する。ここで、識別情報とは、サーボドライバ２０から出力される情報であって、サーボドライバ２０のイナーシャ推定部２０９が負荷機械４０（および、サーボモータ３０）の実際のイナーシャ値Ｊｐを同定（推定）できているか否かを識別する情報である。ただし、上の方法に限らず、イナーシャ値判定部１０４は、サーボドライバ２０が負荷機械４０（および、サーボモータ３０）の実際のイナーシャ値Ｊｐを同定できているか否かを判定し、判定結果を位置速度比率調整部１０３に通知できればよい。例えば、イナーシャ値判定部１０４は、イナーシャ値取得部１０５（装置受信部１１２）がサーボドライバ２０から所定時間間隔で取得する取得するイナーシャ値が、所定回数以上同じ値であった場合に、サーボドライバ２０が負荷機械４０（および、サーボモータ３０）の実際のイナーシャ値Ｊｐを同定できたと判定してもよい。つまり、上記の場合にイナーシャ値判定部１０４は、「イナーシャ値取得部１０５が取得したイナーシャ値は、負荷機械４０（および、サーボモータ３０）の実際のイナーシャ値Ｊｐである」と判定してもよい。
【００７５】
イナーシャ値取得部１０５は、装置受信部１１２がサーボドライバ２０から受信したイナーシャ値を、位置速度比率調整部１０３に通知する。イナーシャ値取得部１０５（装置受信部１１２）がサーボドライバ２０から取得するイナーシャ値は、サーボドライバ２０のイナーシャ推定部２０９が負荷機械４０（および、サーボモータ３０）の実際のイナーシャ値Ｊｐを同定できた後であれば、同定された負荷機械４０（および、サーボモータ３０）の実際のイナーシャ値Ｊｐである。サーボドライバ２０が負荷機械４０（および、サーボモータ３０）の実際のイナーシャ値Ｊｐを同定できていない段階では、イナーシャ値取得部１０５がサーボドライバ２０から取得するイナーシャ値は、負荷機械４０（および、サーボモータ３０）のイナーシャ値として想定される値である初期イナーシャ値Ｊ０である。または、イナーシャ値取得部１０５は、上記の段階では、初期イナーシャ値Ｊ０、および負荷機械４０（および、サーボモータ３０）のイナーシャ値として想定される最大値Ｊｍａｘをサーボドライバ２０から取得してもよい。
【００７６】
イナーシャ値取得部１０５は、負荷機械４０（および、サーボモータ３０）の実際のイナーシャ値Ｊｐを取得した場合、取得した実際のイナーシャ値Ｊｐを位置速度比率調整部１０３に通知する。負荷機械４０（および、サーボモータ３０）の実際のイナーシャ値Ｊｐを取得できていない場合、イナーシャ値取得部１０５は、初期イナーシャ値Ｊ０（または、初期イナーシャ値Ｊ０、および負荷機械４０（および、サーボモータ３０）のイナーシャ値として想定される最大値Ｊｍａｘ）を位置速度比率調整部１０３に通知する。
【００７７】
装置通信部１１０は、装置送信部１１１および装置受信部１１２を含んでいる。装置送信部１１１は、サーボドライバ２０に、ゲイン調整部１００により設定された位置比例ゲインＫｐｐおよび速度比例ゲインＫｖｐをサーボドライバ２０に送信する。装置受信部１１２は、サーボドライバ２０から、サーボドライバ２０のイナーシャ推定部２０９により推定された負荷機械４０（および、サーボモータ３０）のイナーシャ値を受信する。装置受信部１１２は、サーボドライバ２０から、サーボドライバ２０から受信したイナーシャ値が、イナーシャ推定部２０９が負荷機械４０（および、サーボモータ３０）の実際のイナーシャ値Ｊｐを同定できていない段階の初期イナーシャ値Ｊ０であるのか、イナーシャ推定部２０９が同定した負荷機械４０（および、サーボモータ３０）の実際のイナーシャ値Ｊｐであるのかを区別する情報（識別情報）をさらに受信してもよい。
【００７８】
なお、ここまで、サーボドライバ２０のイナーシャ推定部２０９により負荷機械４０（および、サーボモータ３０）の実際のイナーシャ値Ｊｐが同定される前の段階でも、サーボドライバ２０が、開発支援装置１０に、「イナーシャ推定部２０９が負荷機械４０（および、サーボモータ３０）の実際のイナーシャ値Ｊｐを同定できていない」旨の情報（識別情報）、および、負荷機械４０（および、サーボモータ３０）の初期イナーシャ値Ｊ０を送信する例を説明してきた。しかしながら、開発支援装置１０が、負荷機械４０（および、サーボモータ３０）の初期イナーシャ値Ｊ０（または、初期イナーシャ値Ｊ０、および負荷機械４０（および、サーボモータ３０）のイナーシャ値として想定される最大値Ｊｍａｘ）を、サーボドライバ２０から取得することは必須ではない。
【００７９】
例えば、装置受信部１１２は、イナーシャ推定部２０９により負荷機械４０（および、サーボモータ３０）の実際のイナーシャ値Ｊｐが同定される前の段階では、「イナーシャ推定部２０９が負荷機械４０（および、サーボモータ３０）の実際のイナーシャ値Ｊｐを同定できていない」旨の情報（識別情報）のみを受信するとしてもよい。そして、「イナーシャ推定部２０９が負荷機械４０（および、サーボモータ３０）の実際のイナーシャ値Ｊｐを同定できていない」旨の識別情報のみを装置受信部１１２が受信したことを、装置受信部１１２から通知されたイナーシャ値取得部１０５が、以下の処理を実行する意図してもよい。すなわち、イナーシャ値取得部１０５は、適宜設定した初期イナーシャ値Ｊ０（および、負荷機械４０（および、サーボモータ３０）のイナーシャ値として想定される最大値Ｊｍａｘ）を、位置速度比率調整部１０３に通知するとしてもよい。
【００８０】
（本発明の一態様に係る開発支援装置と通信するサーボドライバの詳細）
図３は、開発支援装置１０と通信するサーボドライバ２０が備える各構成と伝達要素との対応を示す図である。図４は、サーボドライバ２０についてのブロック線図である。
【００８１】
サーボドライバ２０は、開発支援装置１０により設定、調整された制御パラメータ（具体的には、位置ゲインおよび速度ゲイン）と、自装置において推定した制御パラメータ（具体的には、負荷機械４０（および、サーボモータ３０）のイナーシャ値）と、を用いてサーボモータ３０の制御を行い、負荷機械４０を駆動させる。サーボドライバ２０に対するモータ動作のための指令は、例えば、開発支援装置１０による設定によって行い、または、図２に例示するコントローラ８０からの入力によって行う。
【００８２】
サーボドライバ２０は、ドライバ通信部２０１、記憶部２０２、位置制御器２０４、速度制御器２０５、トルク制御器２０６、第１微分器２０７、第２微分器２０８、および、イナーシャ推定部２０９を含んでいる。
【００８３】
ドライバ通信部２０１は、無線通信手段または有線通信手段によって、開発支援装置１０等の他の装置と通信を行い、所定のデータのやりとりを行うものである。より具体的には、ドライバ通信部２０１は、イナーシャ推定部２０９により推定された負荷機械４０（および、サーボモータ３０）のイナーシャ値を開発支援装置１０に送信する。また、ドライバ通信部２０１は、開発支援装置１０から、開発支援装置１０により設定された位置ゲイン（位置比例ゲインＫｐｐ）および速度ゲイン（速度比例ゲインＫｖｐ）を受信する。ドライバ通信部２０１は、開発支援装置１０から受信した位置ゲインおよび速度ゲインを、制御パラメータテーブル２０３に格納する。
【００８４】
記憶部２０２は、サーボドライバ２０が使用する各種データを格納する。記憶部２０２は、サーボドライバ２０（特に、位置制御器２０４、速度制御器２０５、トルク制御器２０６、第１微分器２０７、第２微分器２０８、および、イナーシャ推定部２０９）が実行する（１）制御プログラム、（２）ＯＳプログラム、（３）各種機能を実行するためのアプリケーションプログラム、および、（４）該アプリケーションプログラムを実行するときに読み出す各種データを記憶する。上記の（１）〜（４）のデータは、例えば、ＲＯＭ（read only memory）、フラッシュメモリ、ＥＰＲＯＭ（Erasable Programmable ROM）、ＥＥＰＲＯＭ（登録商標）（Electrically EPROM）、ＨＤＤ（Hard Disc Drive）等の不揮発性記憶装置に記憶される。また、記憶部２０２には、制御パラメータテーブル２０３が格納されている。
【００８５】
制御パラメータテーブル２０３には、サーボドライバ２０を制御するための制御パラメータが格納され、つまり、サーボドライバ２０がサーボモータ３０の駆動を制御するのに用いる位置ゲイン（位置比例ゲインＫｐｐ）、速度ゲイン（速度比例ゲインＫｖｐ）、イナーシャ値（イナーシャ設定値Ｊｃ）等が格納される。
【００８６】
図３および図４に示すように、位置制御器２０４は、例えば比例制御（Ｐ制御）を行ない、具体的には、外部から（例えば、ユーザから）与えられる指令位置ｐｃｍｄと、エンコーダ５０から取得するフィードバック位置ｐｆｂとの偏差である位置偏差から、指令速度ｖｃｍｄを出力する。ここで、位置制御器２０４は、制御パラメータとして位置比例ゲインＫｐｐを、制御パラメータテーブル２０３を参照して取得する。ここで、指令位置ｐｃｍｄ、フィードバック位置ｐｆｂ、指令速度ｖｃｍｄ、および位置比例ゲインＫｐｐの関係は以下のように表すことができる。すなわち、「ｖｃｍｄ＝Ｋｐｐ＊（ｐｃｍｄ−ｐｆｂ）」である。
【００８７】
速度制御器２０５は、例えば比例制御（Ｐ制御）を行ない、具体的には、指令速度ｖｃｍｄと、第１微分器２０７がエンコーダ５０からのフィードバック位置ｐｆｂに基づいて算出したフィードバック速度ｖｆｂとの偏差である速度偏差から、指令トルクτｃｍｄを出力する。ここで、速度制御器２０５は、制御パラメータとして速度比例ゲインＫｖｐ、イナーシャ設定値Ｊｃを、制御パラメータテーブル２０３を参照して取得する。ここで、指令速度ｖｃｍｄ、フィードバック速度ｖｆｂ、指令トルクτｃｍｄ、速度比例ゲインＫｖｐ、イナーシャ設定値Ｊｃの関係は以下のように表すことができる。すなわち、「τｃｍｄ＝Ｊｃ＊Ｋｖｐ＊（ｖｃｍｄ−ｖｆｂ）」である。なお、上述の説明では、速度制御器２０５が比例制御（Ｐ制御）を行なう例について説明したが、速度制御器２０５がＰ制御を行なうことは必須ではなく、速度制御器２０５はＰＩ制御を行ってもよい。
【００８８】
トルク制御器２０６は、速度制御器２０５により生成された指令トルクτｃｍｄに基づいて、サーボモータ３０を制御する。第１微分器２０７は、エンコーダ５０からのフィードバック位置ｐｆｂに基づいてフィードバック速度ｖｆｂを算出する。第２微分器２０８は、第１微分器２０７が算出したフィードバック速度ｖｆｂに基づいて加速度を算出し、算出した加速度をイナーシャ推定部２０９に通知する。
【００８９】
イナーシャ推定部２０９は、指令トルクτｃｍｄに基づいてトルク制御器２０６がサーボモータ３０に指示するトルクと、第２微分器２０８により算出された加速度とに基づいて、負荷機械４０（および、サーボモータ３０）のイナーシャ値を推定する。サーボドライバ２０は、イナーシャ推定部２０９によって推定された結果を、サーボモータ３０の制御において利用される制御パラメータ（イナーシャ設定値Ｊｃ）として、随時利用する。また、イナーシャ推定部２０９によって推定された結果は、サーボドライバ２０から開発支援装置１０へと、イナーシャ設定値Ｊｃとして、通知される。イナーシャ推定部２０９は、推定した負荷機械４０（および、サーボモータ３０）のイナーシャ値を、イナーシャ設定値Ｊｃとして、制御パラメータテーブル２０３に格納する。
【００９０】
なお、前述の通り、イナーシャ推定部２０９が負荷機械４０（および、サーボモータ３０）の実イナーシャ値Ｊｐを同定できていない段階においては、「イナーシャ設定値Ｊｃ＝初期イナーシャ値Ｊ０」である。イナーシャ推定部２０９が前記実イナーシャ値Ｊｐを同定できていない段階においては、サーボドライバ２０から開発支援装置１０へと、イナーシャ設定値Ｊｃ（＝初期イナーシャ値Ｊ０）、および、負荷機械４０（および、サーボモータ３０）のイナーシャ値として想定される最大値Ｊｍａｘが通知される。イナーシャ推定部２０９が負荷機械４０（および、サーボモータ３０）の実イナーシャ値Ｊｐを同定できた段階で、サーボドライバ２０から開発支援装置１０へと、イナーシャ設定値Ｊｃ（＝実イナーシャ値Ｊｐ）が通知される。
【００９１】
エンコーダ５０は、サーボモータ３０の位置を検出し、例えば、サーボモータ３０の回転角度を検出する。エンコーダ５０は、検出した位置をサーボドライバ２０に送信する。なお、エンコーダ５０は、サーボモータ３０の速度を検出してもよく、検出した速度をサーボドライバ２０に送信してもよい。その場合、サーボドライバ２０は、エンコーダ５０によって検出されたサーボモータ３０の位置からサーボモータ３０の速度を算出する第１微分器２０７を備えなくてもよい。
【００９２】
（制御パラメータの初期値の設定）
これまでに構成を説明してきた開発支援装置１０およびサーボドライバ２０について、次に、位置速度比率調整部１０３（ゲイン調整部１００）により調整される位置比例ゲインＫｐｐと速度比例ゲインＫｖｐとが実際にどのような関係（比率）にあればよいのかを説明していく。
【００９３】
トルク制御器２０６の伝達関数を１、制御対象である負荷機械４０およびサーボモータ３０をイナーシャ値Ｊｐの単慣性とみなすと、位置制御の伝達関数は以下の数式１に示すような２次遅れの形になる。
数式１
【００９４】
【数１】
0006500767.tif 000002
【００９５】
なお、数式１において、ｓはラプラス演算子を、Ｊｃは速度制御器２０５のイナーシャ設定値を示している。このときの減衰係数ζは以下の数式２に示すとおりとなる。
数式２
【００９６】
【数２】
0006500767.tif 000003
【００９７】
ここで、「定数α」を用いて位置比例ゲインＫｐｐと速度比例ゲインＫｖｐとを「Ｋｐｐ＝Ｋｖｐ／α」のように定めると、速度制御器２０５のイナーシャ設定値Ｊｃと制御対象（負荷機械４０およびサーボモータ３０）のイナーシャ値Ｊｐとが一致している場合には、数式１に示した伝達関数は以下の数式３に示すようになる。
数式３
【００９８】
【数３】
0006500767.tif 000004
【００９９】
このときの減衰係数ζは、以下の数式４に示すように一定の値となり、位置制御の安定性を一定に保ったままゲインの調整を行うことができる。すなわち、位置比例ゲインＫｐｐと速度比例ゲインＫｖｐとが「Ｋｐｐ＝Ｋｖｐ／α」の関係を満たすように定められると、位置制御の安定性を保つことができる。ここで定数αは、例えば、４以上の実数とすることができ、また、４とすることができる。
数式４
【０１００】
【数４】
0006500767.tif 000005
【０１０１】
次に、駆動可能な制御対象（負荷機械４０およびサーボモータ３０）のイナーシャ値Ｊｐの範囲を以下の数式５に示すように定める。なお、Ｊｍａｘは、負荷機械４０（およびサーボモータ３０）のイナーシャ値として想定される最大値を示しており、Ｊｍｉｎは、負荷機械４０（およびサーボモータ３０）のイナーシャ値として想定される最小値を示している。この範囲は、サーボドライバ２０およびサーボモータ３０の仕様として決まる。
数式５
【０１０２】
【数５】
0006500767.tif 000006
【０１０３】
位置比例ゲインＫｐｐ、速度比例ゲインＫｖｐ、およびイナーシャ設定値Ｊｃについて、各々の初期値（初期速度比例ゲインＫｖｐ０、初期イナーシャ設定値Ｊ０）を数式６に示すように設定する。
数式６
【０１０４】
【数６】
0006500767.tif 000007
【０１０５】
数式６に示すように制御パラメータを設定すると、数式２に示した減衰係数ζは、以下の数式７に示すようになる。
数式７
【０１０６】
【数７】
0006500767.tif 000008
【０１０７】
イナーシャ設定値Ｊｃの初期値と制御対象（負荷機械４０およびサーボモータ３０）のイナーシャ値Ｊｐとがどれだけ乖離していても、減衰係数ζが一定以上となり、位置制御の安定性が確保される。以上に構成の詳細等を説明してきた開発支援装置１０について、次に、開発支援装置１０が実行する処理の流れを、図５を用いて説明していく。
【０１０８】
（本発明の一態様に係る開発支援装置が実行する処理）
図５は、開発支援装置１０が実行する処理の流れを示すフローチャートであり、特に、開発支援装置１０が実行する位置ゲイン（位置比例ゲインＫｐｐ）および速度ゲイン（速度比例ゲインＫｖｐ）の調整処理のフロー（調整フロー）を示すフローチャートである。開発支援装置１０は、先ず、速度ゲインに対する位置ゲインの比率が、実イナーシャ値（負荷機械４０およびサーボモータ３０のイナーシャ値Ｊｐ）の同定ができている場合に設定される比率よりも小さくなるようにして、制御パラメータ（位置ゲインおよび速度ゲイン）を初期設定し（Ｓ１０）、つまり、位置ゲインおよび速度ゲインの初期値をサーボドライバ２０に通知する。
【０１０９】
次に、開発支援装置１０は、サーボドライバ２０に指令を与えてサーボモータ３０を駆動させ、位置決め動作（試行）を行わせる（Ｓ２０）。つまり、開発支援装置１０は、サーボドライバ２０に、通知した位置ゲインおよび速度ゲインの初期値を用いてサーボモータ３０を動作させ、負荷機械４０を駆動させる。そして、開発支援装置１０は、サーボドライバ２０に、応答状態を計測させる。
【０１１０】
応答状態の計測に合わせて、開発支援装置１０は、サーボドライバ２０に、イナーシャ推定を実行させる（Ｓ３０）。つまり、開発支援装置１０は、位置ゲインおよび速度ゲインの初期値を用いてサーボドライバ２０に実行させた位置決め動作から、サーボドライバ２０のイナーシャ推定部２０９に、負荷機械４０（および、サーボモータ３０）のイナーシャ値を推定させる。
【０１１１】
イナーシャ推定部２０９によるイナーシャ推定が完了していない場合（Ｓ４０でＮＯ）、つまり、イナーシャ推定部２０９が負荷機械４０（および、サーボモータ３０）の実際のイナーシャ値Ｊｐを同定できていない場合、開発支援装置１０は以下の処理を実行する。すなわち、負荷機械４０（および、サーボモータ３０）の実際のイナーシャ値Ｊｐが正しく推定されない場合（同定できない場合）、ゲイン（位置ゲインおよび速度ゲイン）が低すぎる（小さすぎる）ために、イナーシャ値の推定に必要な加速度およびトルクが発生していないことが考えられる。したがって、開発支援装置１０は、サーボドライバ２０に通知するゲイン（位置ゲインおよび速度ゲイン）を大きくし（Ｓ６０）、つまり、サーボドライバ２０に、より大きな値の位置ゲインおよび速度ゲインを設定させる。そして、開発支援装置１０は、Ｓ２０およびＳ３０の処理を再び実行する。開発支援装置１０は、イナーシャ推定部２０９によるイナーシャ推定が完了するまで、つまり、イナーシャ推定部２０９が実際のイナーシャ値Ｊｐを同定できるまで、Ｓ６０、Ｓ２０、およびＳ３０の処理を実行する。
【０１１２】
イナーシャ推定部２０９によるイナーシャ推定が完了した場合（Ｓ４０でＹＥＳ）、つまり、イナーシャ推定部２０９が負荷機械４０（および、サーボモータ３０）の実際のイナーシャ値Ｊｐを同定できた場合、開発支援装置１０は、サーボドライバ２０に、イナーシャ設定値とゲインを更新させる（Ｓ５０）。具体的には、イナーシャ推定部２０９が同定した「負荷機械４０（および、サーボモータ３０）の実際のイナーシャ値Ｊｐ」を、制御パラメータテーブル２０３に格納させる。また、「負荷機械４０（および、サーボモータ３０）の実際のイナーシャ値Ｊｐ」に対応する最適なゲイン（位置ゲインおよび速度ゲイン）を、制御パラメータテーブル２０３に格納させる。
【０１１３】
以上に詳細を説明した、開発支援装置１０の実行する制御パラメータ調整方法は、以下のように整理することができる。すなわち、開発支援装置１０の実行する制御パラメータ調整方法は、サーボモータ３０の制御パラメータ調整方法であって、サーボモータ３０を制御するサーボドライバ２０における位置制御に用いる位置比例ゲインＫｐｐ、およびサーボドライバ２０における速度制御に用いる速度比例ゲインＫｖｐを同時に調整するゲイン調整ステップ（Ｓ１０）を有し、サーボドライバ２０が負荷機械４０（および、サーボモータ３０）の実際のイナーシャ値Ｊｐを同定できていない段階において、前記ゲイン調整ステップにおいて、前記速度比例ゲインＫｖｐに対する前記位置比例ゲインＫｐｐの比率を、サーボドライバ２０が負荷機械４０（および、サーボモータ３０）の実際のイナーシャ値Ｊｐを同定できている場合に設定される比率よりも小さくなるように設定する。実際のイナーシャ値Ｊｐを同定できている場合、「α」を定数（例えば、「４」以上の実数である定数）として、前記速度比例ゲインＫｖｐに対する前記位置比例ゲインＫｐｐの比率として、例えば「１／α」を設定する。実際のイナーシャ値Ｊｐを同定できていない場合、「Ｊ０」を実際のイナーシャ値Ｊｐを同定できていない段階の初期イナーシャ値とし、「Ｊｍａｘ」をイナーシャ値として想定される最大値として、前記速度比例ゲインＫｖｐに対する前記位置比例ゲインＫｐｐの比率として、例えば「Ｊｏ／Ｊｍａｘ・１／α」を設定する。
【０１１４】
前記の構成によれば、前記制御パラメータ調整方法は、負荷機械４０（および、サーボモータ３０）の実際のイナーシャ値Ｊｐが同定されていない段階では、速度比例ゲインＫｖｐに対する位置比例ゲインＫｐｐの比率が、サーボドライバ２０が負荷機械４０（および、サーボモータ３０）の実際のイナーシャ値Ｊｐを同定できている場合に設定される比率よりも小さくなるように設定する。この場合、サーボドライバ２０による位置制御の伝達関数における減衰係数は、負荷機械４０（および、サーボモータ３０）の実際のイナーシャ値Ｊｐを同定できている場合の減衰係数よりも大きくなる。よって、前記制御パラメータ調整方法は、負荷機械４０（および、サーボモータ３０）の実際のイナーシャ値Ｊｐが同定されていない段階でも、サーボドライバ２０に、オーバーシュートの生じにくい制御を実現させることができるという効果を奏する。
【０１１５】
〔実施形態２〕
本発明の他の実施形態について、図６および図７に基づいて説明すれば、以下のとおりである。なお記載の簡潔性を担保するため、実施形態１とは異なる構成（処理の手順及び処理の内容）のみについて説明する。すなわち、実施形態１で記載された構成等は、本実施形態にもすべて含まれ得る。また、実施形態１で記載した用語の定義も同じである。
【０１１６】
（実施形態２に係る開発支援装置の概要）
まず、本発明の実施形態２に係る開発支援装置６０（サーボモータ３０の制御パラメータの調整装置）についての理解を容易にするため、図９および図１０を用いて説明した、従来の開発支援装置９０と開発支援装置６０との違いについて説明しておく。前述の通り、図９および図１０を用いて説明した、従来の開発支援装置９０およびサーボドライバ２１は、課題２として示した以下の問題を抱えていた。
【０１１７】
すなわち、従来の開発支援装置９０は、サーボドライバ２１の速度制御器２１２によって利用されるイナーシャ設定値Ｊｃが変更されるタイミングで、サーボドライバ２１に、サーボドライバ２１の利用する位置ゲインおよび速度ゲインを変更させない。具体的には、サーボドライバ２１のイナーシャ推定部２１５が負荷機械４０（および、サーボモータ３０）のイナーシャ値についての推定値を変更し、変更後のイナーシャ設定値Ｊｃを速度制御器２１２が用いるタイミングで、速度制御器２１２が用いる速度ゲインは、イナーシャ設定値Ｊｃの変更前に用いていた速度ゲインと変わらない。したがって、サーボドライバ２１のイナーシャ推定部２１５によってイナーシャ設定値Ｊｃが小さい値から大きい値へ自動的に更新される場合、サーボドライバ２１の速度制御器２１２の特性が急激に変化することにより、サーボモータ３０（負荷機械４０）の発振および動作の急変など、危険な現象を引き起こす可能性がある。
【０１１８】
本発明の実施形態２に係る開発支援装置６０は、従来の開発支援装置９０の抱える前記課題２を解決するために、サーボドライバ２０（イナーシャ推定部２０９）がイナーシャ設定値を更新する際には、更新の前後で速度制御器２０５の特性が大きく変化しないよう、サーボドライバ２０に通知する速度ゲインを、変更後のイナーシャ設定値に合わせて更新する。
【０１１９】
従来の開発支援装置９０およびサーボドライバ２１の抱える課題２を解決する開発支援装置６０は、以下のように整理することができる。すなわち、開発支援装置６０の装置受信部１１２が、サーボドライバ２０から、負荷機械４０（および、サーボモータ３０）の実際のイナーシャ値Ｊｐとして同定された実イナーシャ値Ｊｐを受信すると、開発支援装置６０のゲイン調整部１００は、前記実イナーシャ値Ｊｐの受信前の前記速度比例ゲインＫｖｐと前記初期イナーシャ値Ｊ０との積と、前記実イナーシャ値Ｊｐの受信後の前記速度比例ゲインＫ’ｖｐと前記実イナーシャ値Ｊｐとの積とが等しくなるように、前記実イナーシャ値Ｊｐの受信後の前記速度比例ゲインＫ’ｖｐを設定する。
【０１２０】
前記の構成によれば、開発支援装置６０は、前記実イナーシャ値Ｊｐの受信後の速度比例ゲインＫ’ｖｐが、前記実イナーシャ値Ｊｐの受信前の速度比例ゲインＫｖｐと初期イナーシャ値Ｊ０との積と、前記実イナーシャ値Ｊｐの受信後の速度比例ゲインＫ’ｖｐと前記実イナーシャ値Ｊｐとの積とが等しくなるように設定する。よって、前記初期イナーシャ値Ｊ０と前記実イナーシャ値Ｊｐとが大きく離れていたとしても、開発支援装置６０は、サーボドライバ２０における速度制御特性を大きく変化させることなく滑らかに移行させることができる。よって、開発支援装置６０は、制御における発振および動作の急変等を防止することができるという効果を奏する。
【０１２１】
開発支援装置６０のゲイン調整部１００は、前記実イナーシャ値Ｊｐの受信後の前記速度比例ゲインＫ’ｖｐに基づいて、前記実イナーシャ値Ｊｐの受信後の前記位置比例ゲインＫ’ｐｐを設定する。
【０１２２】
前記の構成によれば、開発支援装置６０は、前記実イナーシャ値Ｊｐの受信後の前記位置比例ゲインＫ’ｐｐを、前記実イナーシャ値Ｊｐの受信後の前記速度比例ゲインＫ’ｖｐに基づいて設定する。よって、初期イナーシャ値Ｊ０と実イナーシャ値Ｊｐとが大きく離れていたとしても、前記実イナーシャ値Ｊｐの受信後の前記速度比例ゲインＫ’ｖｐに基づいて、前記実イナーシャ値Ｊｐの受信後の前記位置比例ゲインＫ’ｐｐを設定するので、開発支援装置６０は、実イナーシャ値Ｊｐの受信後の速度比例ゲインＫ’ｖｐを用いて、位置比例ゲインＫ’ｐｐを、位置制御の特性が安定となる条件の範囲で定めることができる。具体的には、開発支援装置６０は、位置比例ゲインＫ’ｐｐを、以下に説明する数式８に基づいて「Ｋ’ｐｐ＝Ｋ’ｖｐ／α」となるように決定する。これにより、開発支援装置６０は、オーバーシュートの生じにくい制御を実現する最適な位置比例ゲインＫ’ｐｐを設定することができるという効果を奏する。以上に概要を説明した開発支援装置６０について、次に、図６を用いて、その詳細を説明していく。
【０１２３】
図６は、開発支援装置６０の要部構成を示すブロック図である。開発支援装置６０は、図１に例示した開発支援装置１０と以下の点において異なる。すなわち、開発支援装置６０は、開発支援装置１０の位置速度比率調整部１０３に代えて、速度イナーシャ値積調整部６０１を備えている。開発支援装置６０は、位置速度比率調整部１０３に代えて速度イナーシャ値積調整部６０１を備えている点以外は、開発支援装置１０と同様の構成である。したがって、以下では、速度イナーシャ値積調整部６０１を中心に説明し、その他の構成については説明を略記する。
【０１２４】
すなわち、開発支援装置６０はゲイン調整部６００を備え、ゲイン調整部６００は、ゲイン調整部１００が含む位置速度比率調整部１０３に代えて、速度イナーシャ値積調整部６０１を含んでいる。速度イナーシャ値積調整部６０１は、イナーシャ値取得部１０５（装置受信部１１２）が負荷機械４０（および、サーボモータ３０）の実際のイナーシャ値（実イナーシャ値Ｊｐ）を取得すると、サーボドライバ２０に設定させる（通知する）速度比例ゲインＫ’ｖｐを、以下のように調整する。
【０１２５】
すなわち、速度イナーシャ値積調整部６０１は、イナーシャ値取得部１０５が実イナーシャ値Ｊｐを取得する前に開発支援装置６０がサーボドライバ２０に通知していた速度比例ゲインＫｖｐ（旧速度比例ゲインＫｖｐ）と初期イナーシャ値Ｊ０（実イナーシャ値Ｊｐを同定できていない段階の初期イナーシャ値Ｊ０）との積と、実イナーシャ値Ｊｐの受信後にサーボドライバ２０に通知する新たな速度比例ゲイン（新速度比例ゲインＫ’ｖｐ）と前記実イナーシャ値Ｊｐとの積とが等しくなるように、前記実イナーシャ値Ｊｐの受信後の速度比例ゲイン（新速度比例ゲインＫ’ｖｐ）を設定する。
【０１２６】
また、速度イナーシャ値積調整部６０１は、イナーシャ値取得部１０５が前記実イナーシャ値Ｊｐの取得した後、前記新速度比例ゲインＫ’ｖｐと共に、以下に示す方法により調整した（制御した）位置比例ゲイン（新位置比例ゲインＫ’ｐｐ）を、サーボドライバ２０に通知する（設定させる）。つまり、速度イナーシャ値積調整部６０１は、以下に示す方法により算出した新位置比例ゲインＫ’ｐｐをサーボドライバ２０に通知し、制御パラメータとして利用させる。
【０１２７】
すなわち、速度イナーシャ値積調整部６０１は、前記実イナーシャ値Ｊｐの受信前の速度比例ゲインＫｖｐに対する位置比例ゲインＫｐｐの比率と、前記実イナーシャ値Ｊｐの受信後の当該比率とが等しくなるように、前記実イナーシャ値Ｊｐ受信後の位置比例ゲイン（新位置比例ゲインＫ’ｐｐ）を設定する。前記実イナーシャ値Ｊｐの受信前に開発支援装置６０がサーボドライバ２０に通知していた位置比例ゲイン（位置ゲイン）を「旧位置比例ゲインＫｐｐ」と呼ぶとすれば、速度イナーシャ値積調整部６０１は、以下のように、新位置比例ゲインＫ’ｐｐを設定する。速度イナーシャ値積調整部６０１は、前記旧速度比例ゲインＫｖｐに対する前記旧位置比例ゲインＫｐｐの比率と、前記新速度比例ゲインＫ’ｖｐに対する前記新位置比例ゲインＫ’ｐｐの比率と、が等しくなるように、前記新位置比例ゲインＫ’ｐｐを設定する。
【０１２８】
（位置決め動作およびイナーシャ推定）
開発支援装置６０は、ゲイン調整部６００（速度イナーシャ値積調整部６０１）により設定された（調整された）ゲイン（位置比例ゲインＫｐｐおよび速度比例ゲインＫｖｐ）を通知する。開発支援装置６０は、サーボドライバ２０に指令を与え、サーボドライバ２０に、通知したゲインを用いてサーボモータ３０を駆動させ、位置決め動作を実行させる。サーボドライバ２０のイナーシャ推定部２０９は、実行した位置決め動作の応答状態を計測し、計測結果を用いて、制御対象（負荷機械４０およびサーボモータ３０）のイナーシャ値を推定する。なお、イナーシャ推定部２０９がイナーシャ値を正しく推定できない場合、ゲインが低すぎるために推定に必要な加速度およびトルクが発生していないことが考えられる。このため、開発支援装置６０は、サーボドライバ２０にゲインを上げて（より大きな値のゲインを通知して）、位置決め動作を実行させる。イナーシャ推定部２０９が位置決め動作から推定したイナーシャ値の推定結果Ｊｅは、サーボドライバ２０から開発支援装置６０へと通知される。
【０１２９】
イナーシャ推定部２０９によってイナーシャの推定結果Ｊｅが得られたら、そのときの速度比例ゲインＫ’ｖｐをもとに、ゲイン調整部６００（速度イナーシャ値積調整部６０１）は、サーボドライバ２０に通知する（サーボドライバ２０に設定させる）制御パラメータを以下の数式８に示すように更新する。
数式８
【０１３０】
【数８】
0006500767.tif 000009
【０１３１】
すなわち、数式８に示すように、初期イナーシャ値Ｊ０とイナーシャの推定結果が得られた時の速度比例ゲインＫ’ｖｐとの積と、イナーシャ推定結果Ｊｅと更新後の速度比例ゲインＫｖｐとの積と、が互いに等しくなるように、更新後の速度比例ゲインＫｖｐを設定する。さらに、数式８に示すように、更新後の位置比例ゲインＫｐｐを、上記更新された速度比例ゲインＫｖｐに基づいて更新する。より具体的には、更新後の位置比例ゲインＫｐｐと更新後の速度比例ゲインＫｖｐとが「Ｋｐｐ＝Ｋｖｐ／α」の関係を満たすように、位置比例ゲインＫｐｐ定める。
【０１３２】
開発支援装置６０がサーボドライバ２０に通知する制御パラメータを数式８に示すように更新することにより、更新の前後で、速度制御器２０５の特性は、以下の数式９に示すように変化しない。
数式９
【０１３３】
【数９】
0006500767.tif 000010
【０１３４】
（位置決め動作および応答状態計測）
開発支援装置６０は、サーボドライバ２０に指令を与えてサーボモータ３０を駆動させ、位置決め動作（試行）を行なわせ、応答状態を計測させる。そして、開発支援装置６０は、サーボドライバ２０に通知する位置ゲイン（位置比例ゲインＫｐｐ）と速度ゲイン（速度比例ゲインＫｖｐ）とを順次大きくしてサーボドライバ２０の応答性を向上させていく。そして、開発支援装置６０は、サーボドライバ２０の応答状態が最適となったら、制御パラメータ（位置ゲインおよび速度ゲイン）の調整を終了する。
【０１３５】
図７は、開発支援装置６０が実行する処理の流れを示すフローチャートであり、特に、イナーシャ推定部２０９によってイナーシャ値の推定結果Ｊｅが得られた後に開発支援装置６０が実行する位置ゲインおよび速度ゲインの調整処理のフロー（調整フロー）を示すフローチャートである。
【０１３６】
図７に示すように、開発支援装置６０は先ず、サーボドライバ２０に指令を与えてサーボモータ３０を駆動させ、位置決め動作（試行）を行わせる（Ｓ１１０）。つまり、開発支援装置６０は、サーボドライバ２０に、通知した位置ゲインおよび速度ゲインを用いてサーボモータ３０を動作させ、負荷機械４０を駆動させる。そして、開発支援装置６０は、サーボドライバ２０に、応答状態を計測させ（Ｓ１２０）、つまり、通知した位置ゲインおよび速度ゲインを用いて実行させた位置決め動作の結果を、例えばエンコーダ５０から、取得する。そして、開発支援装置６０は、計測した応答状態（例えばエンコーダ５０から取得した位置決め動作の結果）を用いて、応答状態が最適となったかを判定する（Ｓ１３０）。
【０１３７】
応答状態が最適となっていないと判定すると（Ｓ１３０でＮＯ）、開発支援装置６０は、ゲイン（位置ゲインおよび速度ゲイン）を大きくし（Ｓ１４０）、つまり最適ではないと判断した応答状態に対応する位置ゲインおよび速度ゲインよりも大きな値の位置ゲインおよび速度ゲインをサーボドライバ２１に通知する。そして、Ｓ１１０からＳ１３０までの処理が繰り返される。つまり、開発支援装置９０は、位置ゲインおよび速度ゲインを順次大きくしながら、サーボドライバ２１の応答性を向上させていく。
【０１３８】
応答状態が最適となったと判定すると（Ｓ１３０でＹＥＳ）、開発支援装置６０は、サーボドライバ２０に通知する速度ゲインおよび位置ゲインの調整作業を完了し、つまり、最適なゲイン（位置ゲインおよび速度ゲイン）を決定して、当該最適なゲインをサーボドライバ２０に利用させる。
【０１３９】
つまり、開発支援装置６０は、位置ゲイン（位置比例ゲインＫｐｐ）と速度ゲイン（速度比例ゲインＫｖｐ）とを、速度ゲインに対する位置ゲインの比率一定になるように調整しながら、順次大きくして応答性を向上させていき、応答状態が最適となったら調整を終了する。
【０１４０】
〔実施形態３〕
本発明の別の実施形態について、図８に基づいて説明すれば、以下のとおりである。なお記載の簡潔性を担保するため、実施形態１および実施形態２とは異なる構成（処理の手順及び処理の内容）のみについて説明する。すなわち、実施形態１および実施形態２で記載された構成等は、本実施形態にもすべて含まれ得る。また、実施形態１および実施形態２で記載した用語の定義も同じである。
【０１４１】
本発明の実施形態３に係る開発支援装置７０（サーボモータ３０の制御パラメータの調整装置）は、についての理解を容易にするため、図９および図１０を用いて説明した、従来の開発支援装置９０との違いについて説明しておく。
【０１４２】
図８は、本発明の実施形態３に係る開発支援装置７０の要部構成を示すブロック図である。開発支援装置７０は、図６に例示した開発支援装置６０と以下の点において異なる。すなわち、開発支援装置７０は、開発支援装置６０の備えていなかった、開発支援装置１０の位置速度比率調整部１０３を備えている。すなわち、開発支援装置７０は、開発支援装置１０の備えている構成と、開発支援装置６０の備えている構成とを両方兼ね備えている。具体的には、開発支援装置７０のゲイン調整部７００は、位置ゲイン設定部１０１、速度ゲイン設定部１０２、位置速度比率調整部１０３、イナーシャ値判定部１０４、イナーシャ値取得部１０５、および速度イナーシャ値積調整部６０１を含んでいる。
【０１４３】
したがって、開発支援装置７０は、開発支援装置１０が実行していた処理と、開発支援装置６０が実行していた処理とを連続して実行することができる。具体的には、開発支援装置７０は、サーボモータ３０の制御パラメータの調整装置であって、サーボモータ３０を制御するサーボドライバ２０における位置制御に用いる位置比例ゲインＫｐｐ、およびサーボドライバ２０における速度制御に用いる速度比例ゲインＫｖｐを同時に調整するゲイン調整部７００を備えている。
【０１４４】
サーボドライバ２０が負荷機械４０（および、サーボモータ３０）の実際のイナーシャ値Ｊｐを同定できていない段階において、ゲイン調整部７００は、前記速度比例ゲインＫｖｐに対する前記位置比例ゲインＫｐｐの比率を、サーボドライバ２０が負荷機械４０（および、サーボモータ３０）の実際のイナーシャ値Ｊｐを同定できている場合に設定される比率よりも小さくなるように設定する。実際のイナーシャ値Ｊｐを同定できている場合、「α」を定数（例えば、「４」以上の実数である定数）として、前記速度比例ゲインＫｖｐに対する前記位置比例ゲインＫｐｐの比率として、例えば「１／α」を設定する。実際のイナーシャ値Ｊｐを同定できていない場合、「Ｊ０」を実際のイナーシャ値Ｊｐを同定できていない段階の初期イナーシャ値とし、「Ｊｍａｘ」をイナーシャ値として想定される最大値として、前記速度比例ゲインＫｖｐに対する前記位置比例ゲインＫｐｐの比率として、例えば「Ｊｏ／Ｊｍａｘ・１／α」を設定する。
【０１４５】
また、開発支援装置７０の装置受信部１１２が、サーボドライバ２０から、負荷機械４０（および、サーボモータ３０）の実際のイナーシャ値Ｊｐとして同定された実イナーシャ値Ｊｐを受信すると、開発支援装置７０のゲイン調整部７００は、前記実イナーシャ値Ｊｐの受信前の前記速度比例ゲインＫｖｐと前記初期イナーシャ値Ｊ０との積と、前記実イナーシャ値Ｊｐの受信後の前記速度比例ゲインＫ’ｖｐと前記実イナーシャ値Ｊｐとの積とが等しくなるように、前記実イナーシャ値Ｊｐの受信後の前記速度比例ゲインＫ’ｖｐを設定する。
【０１４６】
さらに、ここで、開発支援装置７０のゲイン調整部７００は、前記実イナーシャ値Ｊｐの受信後の前記速度比例ゲインＫ’ｖｐに基づいて、前記実イナーシャ値Ｊｐの受信後の前記位置比例ゲインＫ’ｐｐを設定する。
【０１４７】
〔ソフトウェアによる実現例〕
開発支援装置１０、開発支援装置６０、および開発支援装置７０の制御ブロック（特に、位置ゲイン設定部１０１、速度ゲイン設定部１０２、位置速度比率調整部１０３、イナーシャ値判定部１０４、イナーシャ値取得部１０５、および速度イナーシャ値積調整部６０１）は、集積回路（ＩＣチップ）等に形成された論理回路（ハードウェア）によって実現してもよいし、ＣＰＵ（Central Processing Unit）を用いてソフトウェアによって実現してもよい。
【０１４８】
後者の場合、開発支援装置１０、開発支援装置６０、および開発支援装置７０は、各機能を実現するソフトウェアであるプログラムの命令を実行するＣＰＵ、上記プログラムおよび各種データがコンピュータ（またはＣＰＵ）で読み取り可能に記録されたＲＯＭ（Read Only Memory）または記憶装置（これらを「記録媒体」と称する）、上記プログラムを展開するＲＡＭ（Random Access Memory）などを備えている。そして、コンピュータ（またはＣＰＵ）が上記プログラムを上記記録媒体から読み取って実行することにより、本発明の目的が達成される。上記記録媒体としては、「一時的でない有形の媒体」、例えば、テープ、ディスク、カード、半導体メモリ、プログラマブルな論理回路などを用いることができる。また、上記プログラムは、該プログラムを伝送可能な任意の伝送媒体（通信ネットワークや放送波等）を介して上記コンピュータに供給されてもよい。なお、本発明は、上記プログラムが電子的な伝送によって具現化された、搬送波に埋め込まれたデータ信号の形態でも実現され得る。
【０１４９】
本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
【符号の説明】
【０１５０】
１０  開発支援装置
２０  サーボドライバ
６０  開発支援装置
７０  開発支援装置
３０  サーボモータ
４０  負荷機械
１００  ゲイン調整部
６００  ゲイン調整部
７００  ゲイン調整部
Ｊｍａｘ  負荷機械のイナーシャ値として想定される最大値
Ｊ０  初期イナーシャ値
Ｊｐ  実イナーシャ値（負荷機械の実際のイナーシャ値）
Ｋｐｐ  位置比例ゲイン
Ｋｖｐ  速度比例ゲイン
【図１】
0006500767.tif 000011
【図２】
0006500767.tif 000012
【図３】
0006500767.tif 000013
【図４】
0006500767.tif 000014
【図５】
0006500767.tif 000015
【図６】
0006500767.tif 000016
【図７】
0006500767.tif 000017
【図８】
0006500767.tif 000018
【図９】
0006500767.tif 000019
【図１０】
0006500767.tif 000020