(57)【特許請求の範囲】
【請求項１】
モータを制御するモータ制御装置であって、
前記モータを駆動する指令値を生成する指令値生成部と、
前記指令値に基づいて生成される前記モータを駆動させるための駆動値が、自装置が出力可能な駆動値を超えるか否かを判定する出力値判定部と、
前記出力値判定部が出力可能な駆動値を超えると判定した場合、前記指令値を修正する指令値修正部と、
前記指令値、または前記修正された指令値に基づいて駆動された前記モータの駆動状態を示す計測値を取得する計測値取得部と、
前記出力値判定部が出力可能な駆動値を超えると判定した場合、前記指令値と前記計測値との関係から周波数解析を行う分析装置に対し、前記修正された指令値と該修正された指令値に基づく計測値とを出力する出力部と、を備え、
前記指令値修正部は、前記出力値判定部が出力可能な駆動値を超えると判定した場合、そのときの前記指令値の周波数をカットオフ周波数とするローパスフィルタに当該指令値を入力したときの出力を修正後の指令値とすることを特徴とするモータ制御装置。
【請求項２】
前記出力値判定部は、前記指令値に基づくトルク値、該トルク値に基づく電流値、または該電流値に基づく電圧値が、閾値を超えるか否かにより、前記判定を行うことを特徴とする請求項１に記載のモータ制御装置。
【請求項３】
前記指令値は、前記モータの位置を指示する位置指令、または前記モータの速度を指示する速度指令であることを特徴とする請求項１または２のいずれか１項に記載のモータ制御装置。
【請求項４】
前記指令値は、前記モータの速度を指示する速度指令であるとともに、複数の周波数成分を含む掃引正弦波の時系列データであり、
前記指令値修正部は、前記指令値の振幅を下げることにより、前記指令値の修正を実行することを特徴とする請求項１または２に記載のモータ制御装置。
【請求項５】
前記指令値修正部は、前記指令値の振幅が時系列に沿って漸減するように、前記指令値の修正を実行することを特徴とする請求項４に記載のモータ制御装置。
【請求項６】
前記指令値修正部は、修正後の指令値の振幅が所定値以下となる場合、修正を実行しないことを特徴とする請求項４または５に記載のモータ制御装置。
【請求項７】
前記指令値修正部は、前記出力値判定部が出力可能な駆動値を超えると判定した場合、その後、前記指令値生成部が生成した指令値を修正し続けることを特徴とする請求項１〜６のいずれか１項に記載のモータ制御装置。
【請求項８】
モータを含む制御対象の周波数特性を出力する制御システムであって、
前記モータを駆動する指令値を生成する指令値生成部と、
前記指令値に基づいて生成される前記モータを駆動させるための駆動値が、自装置が出力可能な駆動値を超えるか否かを判定する出力値判定部と、
前記出力値判定部が出力可能な駆動値を超えると判定した場合、前記指令値を修正する指令値修正部と、
前記指令値、または前記修正された指令値に基づいて駆動された前記モータの駆動状態を示す計測値を取得する計測値取得部と、
前記出力値判定部が出力可能な駆動値を超えると判定した場合、前記修正された指令値と該修正された指令値に基づく計測値と基づいて周波数特性を演算し、出力する周波数特性演算部と、を備え、
前記指令値修正部は、前記出力値判定部が出力可能な駆動値を超えると判定した場合、そのときの前記指令値の周波数をカットオフ周波数とするローパスフィルタに当該指令値を入力したときの出力を修正後の指令値とすることを特徴とする制御システム。
【請求項９】
モータの制御方法であって、
前記モータを駆動する指令値を生成する指令値生成ステップと、
前記指令値に基づいて生成される前記モータを駆動させるための駆動値が、自装置が出力可能な駆動値を超えるか否かを判定する出力値判定ステップと、
前記出力値判定ステップで出力可能な駆動値を超えると判定した場合、前記指令値を修正する指令値修正ステップと、
前記指令値、または前記修正された指令値に基づいて駆動された前記モータの駆動状態を示す計測値を取得する計測値取得ステップと、
前記出力値判定ステップで出力可能な駆動値を超えると判定した場合、前記指令値と前記計測値との関係から周波数解析を行う分析装置に対し、前記修正された指令値と該修正された指令値に基づく計測値とを出力する出力ステップと、を含み、
前記指令値修正ステップでは、前記出力値判定ステップで出力可能な駆動値を超えると判定した場合、そのときの前記指令値の周波数をカットオフ周波数とするローパスフィルタに当該指令値を入力したときの出力を修正後の指令値とすることを特徴とするモータの制御方法。
【請求項１０】
モータを制御するモータ制御装置であって、
前記モータを駆動する指令値を生成する指令値生成部と、
前記指令値に基づいて生成される前記モータを駆動させるための駆動値が、自装置が出力可能な駆動値を超えるか否かを判定する出力値判定部と、
前記出力値判定部が出力可能な駆動値を超えると判定した場合、前記指令値を修正する指令値修正部と、
前記指令値、または前記修正された指令値に基づいて駆動された前記モータの駆動状態を示す計測値を取得する計測値取得部と、
前記出力値判定部が出力可能な駆動値を超えると判定した場合、前記指令値と前記計測値との関係から周波数解析を行う分析装置に対し、前記修正された指令値と該修正された指令値に基づく計測値とを出力する出力部と、を備え、
前記指令値は、前記モータの速度を指示する速度指令であるとともに、複数の周波数成分を含む掃引正弦波の時系列データであり、
前記指令値修正部は、前記指令値の振幅を下げることにより、前記指令値の修正を実行することを特徴とするモータ制御装置。
【請求項１１】
モータを含む制御対象の周波数特性を出力する制御システムであって、
前記モータを駆動する指令値を生成する指令値生成部と、
前記指令値に基づいて生成される前記モータを駆動させるための駆動値が、自装置が出力可能な駆動値を超えるか否かを判定する出力値判定部と、
前記出力値判定部が出力可能な駆動値を超えると判定した場合、前記指令値を修正する指令値修正部と、
前記指令値、または前記修正された指令値に基づいて駆動された前記モータの駆動状態を示す計測値を取得する計測値取得部と、
前記出力値判定部が出力可能な駆動値を超えると判定した場合、前記修正された指令値と該修正された指令値に基づく計測値と基づいて周波数特性を演算し、出力する周波数特性演算部と、を備え、
前記指令値は、前記モータの速度を指示する速度指令であるとともに、複数の周波数成分を含む掃引正弦波の時系列データであり、
前記指令値修正部は、前記指令値の振幅を下げることにより、前記指令値の修正を実行することを特徴とする制御システム。
【請求項１２】
モータの制御方法であって、
前記モータを駆動する指令値を生成する指令値生成ステップと、
前記指令値に基づいて生成される前記モータを駆動させるための駆動値が、自装置が出力可能な駆動値を超えるか否かを判定する出力値判定ステップと、
前記出力値判定ステップで出力可能な駆動値を超えると判定した場合、前記指令値を修正する指令値修正ステップと、
前記指令値、または前記修正された指令値に基づいて駆動された前記モータの駆動状態を示す計測値を取得する計測値取得ステップと、
前記出力値判定ステップで出力可能な駆動値を超えると判定した場合、前記指令値と前記計測値との関係から周波数解析を行う分析装置に対し、前記修正された指令値と該修正された指令値に基づく計測値とを出力する出力ステップと、を含み、
前記指令値は、前記モータの速度を指示する速度指令であるとともに、複数の周波数成分を含む掃引正弦波の時系列データであり、
前記指令値修正ステップでは、前記指令値の振幅を下げることにより、前記指令値の修正を実行することを特徴とするモータの制御方法。
【請求項１３】
請求項１〜７、１０のいずれか１項に記載のモータ制御装置としてコンピュータを機能させるための情報処理プログラムであって、前記各部としてコンピュータを機能させるための情報処理プログラム。
【請求項１４】
請求項１３に記載の情報処理プログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、工作機械等の制御を行うモータ制御装置等に関する。
【背景技術】
【０００２】
工作機械等の対象機械を制御するためのモータの制御パラメータの設定やフィルタ設定値の設定を行うために、対象機械の周波数特性を計測する技術が知られている。例えば、特許文献１には、複数の周波数成分を含む指令値（指令パターン）を生成し、これを用いてモータおよび対象機械を駆動させ、対象機械の動作を計測し、指令値と計測値とを用いて周波数解析を行う技術が記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第３８１８３７１号公報（２００６年６月２３日登録）
【発明の概要】
【発明が解決しようとする課題】
【０００４】
指令値と計測値とから周波数解析を行うことによって得た周波数特性の精度を高めるためには、指令値に複数の周波数成分が含まれていること、および指令値の振幅が大きいことが必要となる。
【０００５】
しかし、高周波で、かつ振幅が大きい指令値の場合、指令値に対してモータおよび対象機械が追従できない場合がある。すなわち、モータを駆動するために、指令値に対応して演算されたトルク値および電流値が、モータ制御装置が出力可能な値を超えてしまい、指令値に対応しないトルク値および電流値によってモータが駆動されてしまうということが起こる。換言すれば、モータ制御装置に、出力可能な能力以上の指示が与えられている出力飽和の状態が生じている。
【０００６】
この場合、モータ制御装置からモータに出力される駆動信号は、指令値に対応する値となっていないので、指令値と、当該指令値に基づき駆動されたモータおよび対象機械の計測値とから周波数解析を行ったとしても、適切な周波数特性を得ることはできない。
【０００７】
本発明は、前記の問題点に鑑みてなされたものであり、その目的は、適切な周波数特性を得ることができるモータ制御装置等を実現することにある。
【課題を解決するための手段】
【０００８】
前記課題を解決するために、本発明に係るモータ制御装置は、モータを制御するモータ制御装置であって、前記モータを駆動する指令値を生成する指令値生成部と、前記指令値に基づいて生成される前記モータを駆動させるための駆動値が、自装置が出力可能な駆動値を超えるか否かを判定する出力値判定部と、前記出力値判定部が出力可能な駆動値を超えると判定した場合、前記指令値を修正する指令値修正部と、前記指令値、または前記修正された指令値に基づいて駆動された前記モータの駆動状態を示す計測値を取得する計測値取得部と、前記出力値判定部が出力可能な駆動値を超えると判定した場合、前記指令値と前記計測値との関係から周波数解析を行う分析装置に対し、前記修正された指令値と該修正された指令値に基づく計測値とを出力する出力部と、を備えていることを特徴としている。
【０００９】
前記の構成によれば、指令値に基づいて生成された駆動値が、出力可能な駆動値を超える場合、指令値が修正されるので、そのまま不適当な駆動値でモータを駆動させてしまうことがない。よって、指令値と計測値とが対応しないということを防止できるので、指令値と計測値とに基づいて周波数解析を行う場合に、適切に周波数解析を実行させることができる。
【００１０】
本発明に係るモータ制御装置では、前記出力値判定部は、前記指令値に基づくトルク値、該トルク値に基づく電流値、または該電流値に基づく電圧値が、閾値を超えるか否かにより、前記判定を行うものであってもよい。
【００１１】
前記の構成によれば、トルク値、電流値、または電圧値を用いて、指令値に基づく駆動値が自装置から出力可能なものか否かを判定することができる。
【００１２】
本発明に係るモータ制御装置では、前記指令値修正部は、前記指令値の振幅を下げることにより、前記指令値の修正を実行するものであってもよい。
【００１３】
前記の構成によれば、修正後の指令値は、修正前の指令値よりも振幅が小さくなるので、修正後の指令値に基づく駆動値が、出力不可能な駆動値となる可能性を低下させることができる。なお、指令値の振幅を下げる方法としては、例えば、指令値に係数α（０＜α＜１）を乗ずることが挙げられる。
【００１４】
本発明に係るモータ制御装置では、前記指令値修正部は、前記指令値の振幅が時系列に沿って漸減するように、前記指令値の修正を実行するものであってもよい。
【００１５】
前記の構成によれば、修正前の指令値の振幅が時系列に沿って漸減するように修正することができる。
【００１６】
本発明に係るモータ制御装置では、前記指令値修正部は、修正後の指令値の振幅が所定値以下となる場合、修正を実行しないものであってもよい。
【００１７】
前記の構成によれば、指令値の振幅が所定値以下となることを防止することができるので、指令値の振幅が低下しすぎてＳ／Ｎ比が不適切になることを防止することができる。
【００１８】
本発明係るモータ制御装置では、前記指令値は、前記モータの位置を指示する位置指令、または前記モータの速度を指示する速度指令であってもよい。
【００１９】
前記の構成によれば、モータの位置または速度を指示することができる。
【００２０】
本発明に係るモータ制御装置では、前記指令値修正部は、前記出力値判定部が出力可能な駆動値を超えると判定した場合、そのときの前記指令値の周波数をカットオフ周波数とするローパスフィルタに当該指令値を入力したときの出力を修正後の指令値とするものであってもよい。
【００２１】
前記の構成によれば、指令値の修正を適切に行うことができる。
【００２２】
本発明の係るモータ制御装置では、前記指令値修正部は、前記出力値判定部が出力可能な駆動値を超えると判定した場合、その後、前記指令値生成部が生成した指令値を修正し続けるものであってもよい。
【００２３】
前記の構成によれば、一度、駆動値が出力可能な値を超えると判断すると、その後、指令値を修正し続けるので、再度、駆動値が出力可能な値を超えてしまうことを防止することができる。
【００２４】
前記課題を解決するために、本発明に係る制御システムは、モータを含む制御対象の周波数特性を出力する制御システムであって、前記モータを駆動する指令値を生成する指令値生成部と、前記指令値に基づいて生成される前記モータを駆動させるための駆動値が、自装置が出力可能な駆動値を超えるか否かを判定する出力値判定部と、前記出力値判定部が出力可能な駆動値を超えると判定した場合、前記指令値を修正する指令値修正部と、前記指令値、または前記修正された指令値に基づいて駆動された前記モータの駆動状態を示す計測値を取得する計測値取得部と、前記出力値判定部が出力可能な駆動値を超えると判定した場合、前記修正された指令値と該修正された指令値に基づく計測値と基づいて周波数特性を演算し、出力する周波数特性演算部と、を備えていることを特徴としている。
【００２５】
前記の構成によれば、指令値に基づいて生成された駆動値が、出力可能な駆動値を超える場合、指令値が修正されるので、そのまま不適当な駆動値でモータを駆動させてしまうことがない。よって、指令値と計測値とが対応しないということを防止できるので、指令値と計測値とに基づいて適切に周波数解析を実行することができる。
【００２６】
前記課題を解決するために、本発明に係るモータの制御方法は、前記モータを駆動する指令値を生成する指令値生成ステップと、前記指令値に基づいて生成される前記モータを駆動させるための駆動値が、自装置が出力可能な駆動値を超えるか否かを判定する出力値判定ステップと、前記出力値判定ステップで出力可能な駆動値を超えると判定した場合、前記指令値を修正する指令値修正ステップと、前記指令値、または前記修正された指令値に基づいて駆動された前記モータの駆動状態を示す計測値を取得する計測値取得ステップと、前記出力値判定部ステップで出力可能な駆動値を超えると判定した場合、前記指令値と前記計測値との関係から周波数解析を行う分析装置に対し、前記修正された指令値と該修正された指令値に基づく計測値とを出力する出力ステップと、を含むことを特徴としている。
【００２７】
前記の方法によれば、前述した効果と同様の効果を奏する。
【００２８】
本発明の各態様に係るモータ制御装置は、コンピュータによって実現してもよく、この場合には、コンピュータを上記モータ制御装置が備える各部（ソフトウェア要素）として動作させることにより上記モータ制御装置をコンピュータにて実現させるモータ制御装置の情報処理プログラム、およびそれを記録したコンピュータ読み取り可能な記録媒体も、本発明の範疇に入る。
【発明の効果】
【００２９】
本発明によれば、指令値に基づいて生成された駆動値が、出力可能な駆動値を超える場合、指令値が修正されるので、そのまま不適当な駆動値でモータを駆動させてしまうことがない。よって、指令値と計測値とが対応しないということを防止できるので、指令値と計測値とに基づいて周波数解析を行う場合に、適切に周波数解析を実行させることができるという効果を奏する。
【図面の簡単な説明】
【００３０】
【図１】本実施形態に係るサーボドライバの要部構成を示すブロック図である。
【図２】本実施形態に係る制御システムの概要を示す図である。
【図３】上記サーボドライバにおいて、指令値を補正する処理の流れを示すフローチャートである。
【図４】指令値生成部で生成される速度指令の例を示す図である。
【図５】補正を行わない場合の速度指令、トルク指令、および周波数応答（ゲイン特性）の関係を示す図であり、（ａ）は、速度指令を示す図であり、（ｂ）はトルク指令を示す図であり、（ｃ）は周波数応答（ゲイン特性）を示す図である。
【図６】補正を行った場合の速度指令、トルク指令、および周波数応答（ゲイン特性）の関係を示す図であり、（ａ）は、速度指令を示す図であり、（ｂ）はトルク指令を示す図であり、（ｃ）は周波数応答（ゲイン特性）を示す図である。
【図７】他の実施形態において、指令値の補正処理の流れを示すフローチャートである。
【図８】さらに他の実施形態において、指令値の補正処理の流れを示すフローチャートである。
【図９】補正を行った場合の速度指令、トルク指令、および周波数応答（ゲイン特性）の関係を示す図であり、（ａ）は、速度指令を示す図であり、（ｂ）はトルク指令を示す図であり、（ｃ）は周波数応答（ゲイン特性）を示す図である。
【図１０】各実施形態における周波数応答（ゲイン特性）を示す図であり、（ａ）は補正を行わなかった場合における周波数応答（ゲイン特性）を示す図であり、（ｂ）は補正を行った場合における周波数応答（ゲイン特性）を示す図であり、（ｃ）は、基準値を設けて補正を行った場合における周波数応答（ゲイン特性）を示す図である。
【図１１】さらに他の実施形態に係るサーボドライバの要部構成を示すブロック図である。
【発明を実施するための形態】
【００３１】
〔実施形態１〕
〔制御システムの概要〕
以下、本発明の実施形態について、図１〜図７に基づいて説明する。まず、図２を参照して本実施形態に係る制御システムについて説明する。図２は、本実施形態に係る制御システムの概要を示す図である。制御システムは、サーボ機構を用いて負荷装置（対象機械、制御対象）の動作を制御するものであり、図２に示すように、コントローラ（ＰＬＣ）１、サーボドライバ（モータ制御装置）２、モータ３、およびツールＰＣ４を含む。
【００３２】
コントローラ（ＰＬＣ）１は、サーボドライバ２を含むシステム全体を制御するものである。
【００３３】
サーボドライバ２は、コントローラ１、または後述するツールＰＣ４により設定され、調整された制御パラメータを記憶するとともに、その制御パラメータに従ってモータ３を駆動し、負荷装置を動作させるものである。
【００３４】
また、サーボドライバ２は、モータ３を駆動させるときの制御パラメータ、備えているフィルタのフィルタパラメータを設定するために用いる周波数応答の測定を行う。
【００３５】
また、サーボドライバ２は、コントローラ１、およびモータ３と、有線または無線により通信可能に接続されている。例えば、サーボドライバ２は、コントローラ１とＥｔｈｅｒＣＡＴ(Ethernet for Control Automation Technology：登録商標)等のフィールドネットワークによって接続され、サーボドライバ２とモータ３とは、専用ケーブルによって接続されている。
【００３６】
モータ３は、サーボドライバ２によって制御され、負荷装置（対象機械）を駆動するものである。
【００３７】
ツールＰＣ４は、サーボドライバ２の制御パラメータを設定および調整するための装置であり、調整用ソフトウェアが含まれている。ツールＰＣ４は、例えば、パーソナルコンピュータによって実現され、パーソナルコンピュータに格納されたプログラム（調整用ソフトウェア）が実行されることで、当該コンピュータがツールＰＣ４として機能する。
【００３８】
また、ツールＰＣ４とサーボドライバ２とは、ＵＳＢ（Universal Serial Bus）ケーブル等により接続されている。
【００３９】
〔サーボドライバの構成〕
次に、図１を参照して、サーボドライバ２の要部構成について説明する。図１は、サーボドライバ２の要部構成を示すブロック図である。図１に示すように、サーボドライバ２は、指令値生成部１０、指令値補正部（指令値修正部）２０、周波数応答計測部（分析装置、周波数特性演算部、出力部）３０、速度制御器４０、速度検出部（計測値取得部、出力部）５０、トルク制限器６０、および電流制御器７０を含む。また、トルク制限器６０には、トルク飽和検出部（出力値判定部）６１が含まれ、電流制御器７０には、電流飽和検出部（出力値判定部）７１および電圧飽和検出部（出力値判定部）７２が含まれる。
【００４０】
指令値生成部１０は、ツールＰＣ４等により、ユーザから受け付けた指示を元に速度指令を生成する。より詳細には、ユーザから受け付けた速度振幅を元に、速度指令の指令振幅値を設定する。速度指令値の例を図５に示す。図５は、速度指令の例を示す図である。図５に示す例では、速度振幅として「３０ｒｐｍ」が設定されている。本実施形態において、速度指令は、複数の周波数成分を含む掃引正弦波の時系列データである。また、図５に示すように、速度指令は、その周波数が時系列に沿って次第に増大する指令である。なお、指令値は、掃引正弦波に限られず、例えば、複数の周波数成分が含まれるランダム波（白色信号）であってもよい。
【００４１】
そして、指令値生成部１０は、生成した速度指令を指令値補正部２０に通知する。なお、指令値生成部１０は、ツールＰＣ４が指令値を生成する場合には、ツールＰＣ４が生成した指令値を、そのまま指令値補正部２０に通知する。
【００４２】
指令値補正部２０は、後述するトルク飽和検出部６１からトルク値が飽和したこと（トルク飽和）、すなわち、速度指令から導出したトルク値（駆動値）が、サーボドライバ２が出力可能なトルク値（閾値）を超えたことの通知を受けると、トルク値が飽和しないように、指令値生成部１０から通知された速度指令を補正する。
【００４３】
また、指令値補正部２０は、電流飽和検出部７１から電流が飽和したこと（電流飽和）、すなわち、速度指令から導出した電流値（駆動値）が、サーボドライバ２が出力可能な電流値（閾値）を超えたことの通知を受けると、電流値が飽和しないように、指令値生成部１０から通知された速度指令を補正する。
【００４４】
また、指令値補正部２０は、電圧飽和検出部７２から電圧が飽和したこと（電圧飽和）、すなわち、速度指令から導出した電圧値（駆動値）が、サーボドライバ２が出力可能な電圧値（閾値）を超えたことの通知を受けると、電圧値が飽和しないように、指令値生成部１０から通知された速度指令を補正する。
【００４５】
なお、以下では、トルク飽和、電流飽和、電圧飽和を区別する必要がないときは、単に出力飽和とも呼ぶ。
【００４６】
そして、指令値補正部２０は、補正後の速度指令（修正された指令値）を周波数応答計測部３０、および速度制御器４０に通知する。
【００４７】
なお、指令値補正部２０が指令値を補正する方法は、後述する方法であってもよいし、指令値に係数α（０＜α＜１）を乗じて、振幅を下げる方法であってもよい。
【００４８】
周波数応答計測部３０は、指令値補正部２０から通知された速度指令と、速度検出部５０から通知された、検出された速度とを用いて周波数解析（例えばＦＦＴ（高速フーリエ変換））を行い、周波数応答関数を導出する。なお、本発明におけるサーボドライバ２は、周波数応答関数を導出する周波数応答計測部３０を有するものとして構成している。しかしながら、必ずしもサーボドライバ２が周波数応答計測部３０を有する必要はない。すなわち、周波数応答計測部３０が、指令値補正部２０から通知された速度指令と、速度検出部５０から通知された検出された速度とを、周波数応答関数を導出する分析装置（例えば、ツールＰＣ４）に対して出力する出力部であってもよい。この場合、ツールＰＣ４が周波数応答関数を導出する周波数応答計測部３０を有していればよい。これにより、ツールＰＣ４、サーボドライバ２、モータ３を少なくとも備えた制御システムによって、周波数応答解析を実現することができる。
【００４９】
速度制御器４０は、指令値補正部２０から通知された補正後の速度指令と速度検出部５０から通知された計測速度との偏差から、モータ３を制御するトルク値を算出し、トルク制限器６０に通知する。
【００５０】
速度検出部５０は、エンコーダ６によって検出されたモータ３の位置からモータ３の速度（計測速度、計測値）を算出する。そして、算出した計測速度（駆動状態）を速度制御器４０、および周波数応答計測部３０に通知する。なお、速度検出部５０は、エンコーダ６によって直接速度が検出される場合は、その速度を計測速度として、速度制御器４０および周波数応答計測部３０に通知する。
【００５１】
トルク制限器６０は、速度制御器４０から通知されたトルク値が、サーボドライバ２から出力可能なトルク値を超えるか否かを判定するものである。より詳細には、トルク制限器６０は、トルク飽和検出部６１を含み、速度制御器４０から通知されたトルク値が、サーボドライバ２から出力可能なトルク値を超えるか否かを判定し、超えると判定した場合、その旨を示す情報を指令値補正部２０に通知する。
【００５２】
そして、トルク制限器６０は速度制御器４０から通知されたトルク値を電流制御器７０に通知する。
【００５３】
電流制御器７０は、トルク制限器６０から通知されたトルク値から算出した電流値に基づいて電圧値を算出する。さらに電流制御器７０は、算出された電圧値に基づいて、モータ３の駆動電流を生成するインバータ回路（図示せず）に対して、駆動電流を生成するための信号（例えば、ＰＷＭ信号）を出力するものである。電流制御器７０は、サーボドライバ２が出力可能な電流値、または電圧値を超えるか否かを判定する機能を有する。より詳細には、電流制御器７０は、電流飽和検出部７１を含み、通知されたトルク値から算出した電流値が、サーボドライバ２から出力可能な電流値を超えるか否かを判定し、超えると判定した場合、その旨を示す情報を指令値補正部２０に通知する。また、電流制御器７０は、電圧飽和検出部７２を含み、電流値から算出した電圧値が、サーボドライバ２から出力可能な電圧値を超えるか否かを判定し、超えると判定した場合、その旨を示す情報を指令値補正部２０に通知する。
【００５４】
エンコーダ６は、モータ３の速度を検出し、速度検出部５０に通知する。なお、エンコーダ６は、モータ３の位置（回転角度）を検出してもよい。
【００５５】
〔指令値の補正処理の流れ〕
次に、図３を参照して、指令値を生成する処理の流れを説明する。図３は、指令値を生成する処理の流れを示すフローチャートである。図３に示すように、まず、指令値生成部１０は、指令値の生成条件の初期化を行う（Ｓ１０１）。ここで、指令値の生成条件とは、例えば、指令値として掃引正弦波を使用する場合には、当該指令値の初期の振幅、振幅の増幅率が挙げられる。また、指令値の周波数の最大値を決める値を生成条件として設定することができる。指令値の周波数の最大値を決める値としては、例えば、計測のサンプリング周期が挙げられる。指令値の生成条件は、サーボドライバ２に接続されるツールＰＣ４を用いて設定してもよく、サーボドライバ２が生成条件を入力するためのユーザインタフェースを有する場合には、当該ユーザインタフェースを用いて設定してもよい。指令値の生成条件の初期化ステップ以降のステップは、指令値の生成が終了するまで所定のサイクル（周期）で繰り返す（Ｓ１０２、およびＳ１０７）。所定のサイクルとは、例えば、サーボドライバ２の演算周期である。指令値の生成期間は、ユーザによって指定された期間であってもよいし、予め設定された期間であってもよい。
【００５６】
次に、指令値生成部１０は、当該周期の指令値を、設定された指令値生成条件に基づいて生成する（Ｓ１０３）。
【００５７】
指令値の生成が開始されると、トルク飽和検出部６１、電流飽和検出部７１、電圧飽和検出部７２は、当該指令値から生成されたトルク値、電流値、電圧値が飽和していないか否かを検出する（出力値判定ステップ）。より詳細には、トルク飽和検出部６１は、指令値から生成したトルク値が、サーボドライバ２が出力可能なトルク値を超えたことを検出し（すなわち、トルク飽和を検出し）、その旨を指令値補正部２０に通知する。また、電流飽和検出部７１はトルク値から生成した電流値が、サーボドライバ２が出力可能な電流値を超えたことを検出し（すなわち、電流飽和を検出し）、その旨を指令値補正部２０に通知する。また、電圧飽和検出部７２は、電流値から生成した電圧値が、サーボドライバ２が出力可能な電圧値を超えたことを検出し（すなわち、電圧飽和を検出し）、その旨を指令値補正部２０に通知する。
【００５８】
指令値補正部２０は、トルク飽和検出部６１がトルク飽和を検出したとき（Ｓ１０４でＹＥＳ）、電流飽和検出部７１が電流飽和を検出したとき（Ｓ１０４でＹＥＳ）、または電圧飽和検出部７２が電圧飽和を検出したとき（Ｓ１０４でＹＥＳ）、指令値生成部１０が生成した指令値を補正する（Ｓ１０５、指令値修正ステップ）。具体的な補正の方法は、後述する。そして、補正した指令値を速度制御器４０に通知し、指令値に基づく制御値がモータ３へ出力される（Ｓ１０６）。
【００５９】
また、指令値補正部２０は、トルク飽和検出部６１がトルク飽和を検出していない（Ｓ１０４でＮＯ）、電流飽和検出部７１が電流飽和を検出していない（Ｓ１０４でＮＯ）、または電圧飽和検出部７２が電圧飽和を検出しない（Ｓ１０４でＮＯ）とき、指令値生成部１０が生成した指令値をそのまま速度制御器４０に通知し、指令値に基づく制御値がモータ３に出力される（Ｓ１０６）。
【００６０】
また、制御値に基づいて駆動されたモータ３の計測結果を取得し（計測値取得ステップ）、指令値と、計測結果とが周波数応答計測部３０に通知される（出力ステップ）。なお、周波数応答関数を導出する周波数応答計測部３０がサーボドライバ２ではなく、ツールＰＣ４に設けられており、サーボドライバ２に出力部が設けられている場合には、出力部は、出力ステップにおいて、指令値と計測結果とを、ツールＰＣ４に対して出力する。なお、出力部は、指令値と計測結果とを、図示しない記憶装置に所定期間保存していてもよい。
【００６１】
〔補正処理の詳細〕
次に、指令値補正部２０による補正方法について説明する。補正方法は、前述のように指令値に係数α（０＜α＜１）を乗じて、振幅を下げる方法を用いることができる。また、出力飽和が生じた周期の指令値の周波数をカットオフ周波数としたローパスフィルタにより、振幅を下げる方法を用いることができる。この補正方法について説明する。
【００６２】
指令値補正部２０は、トルク飽和検出部６１、電流飽和検出部７１、または電圧飽和検出部７２から出力飽和の通知を受けた場合、そのときに指令値生成部１０から通知された指令値の周波数をカットオフ周波数とした１次ローパスフィルタに、指令値生成部１０からの指令値を入力し、得られた出力と同様の出力を補正後の指令値とする。
【００６３】
すなわち、指令値補正部２０は、出力飽和した時点の指令値の周波数をカットオフ周波数とした１次ローパスフィルタ（後述する数式（１））の伝達関数となる指令補正器ということが言え、これに指令値生成部１０からの指令値を入力し、出力された指令値が補正後の指令値ということになる。
Ｇ１＝（２×π×ｆcurrent）／（ｓ＋２×π×ｆcurrent）・・・（１）
ここで、ｆcurrentは、指令値生成部１０から出力された、出力飽和となったときの指令値の周波数であり、ｓは、ラプラス演算子である。
【００６４】
〔本発明の比較例〕
次に、図５を参照して、本発明の比較例として、補正を行わなかった場合の、速度指令、トルク指令、および周波数応答（ゲイン特性）の関係について説明する。図５は、補正を行わない場合の速度指令、トルク指令、および周波数応答（ゲイン特性）の関係を示す図であり、（ａ）は、速度指令を示す図であり、（ｂ）はトルク指令を示す図であり、（ｃ）は周波数応答（ゲイン特性）を示す図である。
【００６５】
図５（ａ）に示すような速度指令の場合、これに対応するトルク指令は、図５（ｂ）に示すものになる。トルク値の制限がなければ、トルク値は、図５（ｂ）の「トルク制限なし」に示すように、速度指令に対応してトルク指令が±１０００％を超えるような値となる。一方、トルク値の制限がある場合（トルク飽和する場合）、トルク値は、図５（ｂ）の「トルク制限有り」に示すように、トルク制限値までは速度指令に対応し、速度指令に対応させるとトルク制限を超えるとき、トルク制限値に抑えられる値となる。
【００６６】
また、周波数応答（ゲイン特性）は、図５（ｃ）に示すように、トルク制限がかかった場合、トルク制限がなかった場合と比較して、２００Ｈｚ以降の周波数応答の精度が悪くなっていることが分かる。すなわち、速度指令と、この速度指令に対応したトルク制限無しのトルク指令を用いて駆動されたモータ３の駆動結果との関係から周波数応答結果を求めると、速度指令に対応したトルク指令に基づいてモータ３が駆動されているから、制御対象の特性が精確に反映された周波数応答の波形を算出することができる。一方で、速度指令と、この速度指令に対応しないトルク制限有りのトルク指令を用いて駆動されたモータ３の駆動結果との関係から周波数応答結果を求めると、速度指令に対応しないトルク指令に基づいてモータ３が駆動されているから、制御対象の周波数応答特性を精確に取得することができない。従来は、指令値の補正を行わない場合、指令値により生成されるトルク指令が、トルク制限器の上限値を超えてしまう場合が多く、トルク制限有りの状態で周波数応答を計測していた。そのため、制御対象の周波数応答特性を精確に取得することが難しかった。本発明は、トルク制限有りの状態、すなわち、出力飽和を検出して、指令値が制限される構成のサーボドライバを用いて周波数応答を計測する場合でも、精度よく周波数応答特性を算出することができる方法および制御システム、モータ制御装置を提供するものである。
【００６７】
〔実施形態２〕
本発明の他の実施形態について、図６、７に基づいて説明すれば、以下のとおりである。なお、説明の便宜上、前記実施形態にて説明した部材と同じ機能を有する部材については、同じ符号を付記し、その説明を省略する。本実施形態において、上記実施形態１と異なるのは、ある１サイクルにおいて、出力飽和を検出した場合、指令値補正部２０は、その後に指令値生成部１０から通知された指令値を補正する点である。ここで、１サイクルとは、上述した指令値の生成周期のことをいう。
【００６８】
〔補正例〕
図６を参照して、本実施形態における補正を行った場合の、速度指令、トルク指令、および周波数応答（ゲイン特性）の関係について説明する。図６は、補正を行った場合の速度指令、トルク指令、および周波数応答（ゲイン特性）の関係を示す図であり、（ａ）は、速度指令を示す図であり、（ｂ）はトルク指令を示す図であり、（ｃ）は周波数応答（ゲイン特性）を示す図である。
【００６９】
図６（ａ）に示す速度指令は、図５（ａ）に示す速度指令に対し、補正が行われ、速度指令の振幅が下げられた状態を示す。この速度指令に対応するトルク指令は、図６（ｂ）に示す「指令補正有り」のようになる。図６（ｂ）の「指令補正有り」に示すように、補正がある場合、トルク指令は、トルク制限値に接近したのち、トルク制限値から離れる（ゼロに近づく）ようになる。なお、図６（ｂ）では、比較のために、「トルク制限なし」のトルク指令も示している。
【００７０】
また、周波数応答（ゲイン特性）は、図６（ｃ）に示すように、「指令補正有り」の場合、「トルク制限有り」と比較して精度がよくなっていることが分かる。
【００７１】
〔本実施形態における指令値の補正処理の流れ〕
図７を参照して、本実施形態における指令値の補正処理の流れを説明する。図７は、本実施形態における指令値の補正処理の流れを示すフローチャートである。
【００７２】
図７に示すように、まず、指令値生成部１０は、指令値の生成条件の初期化を行う（Ｓ２０１）。ここで、指令値の生成条件とは、例えば、指令値として掃引正弦波を使用する場合には、当該指令値の初期の振幅、振幅の増幅率が挙げられる。また、指令値の周波数の最大値を決める値を生成条件として設定することができる。指令値の周波数の最大値を決める値としては、例えば、計測のサンプリング周期が挙げられる。指令値の生成条件は、サーボドライバ２に接続されるツールＰＣ４を用いて設定してもよく、サーボドライバ２が生成条件を入力するためのユーザインタフェースを有する場合には、当該ユーザインタフェースを用いて設定してもよい。指令値の生成条件の初期化ステップ以降のステップは、指令値の生成が終了するまで所定のサイクル（周期）で繰り返す（Ｓ２０２、およびＳ２０７）。所定のサイクルとは、例えば、サーボドライバ２の演算周期である。実施形態１と同様に、指令値の生成期間は、ユーザによって指定された期間であってもよいし、予め設定された期間であってもよい。
【００７３】
次に、指令値生成部１０は、当該周期の指令値を、設定された指令値生成条件に基づいて生成する（Ｓ２０３）。
【００７４】
指令値の生成が開始されると、トルク飽和検出部６１、電流飽和検出部７１、電圧飽和検出部７２は、当該指令値から生成されたトルク値、電流値、電圧値が飽和していないか否かを検出する。より詳細には、トルク飽和検出部６１はトルク飽和を検出し、その旨を指令値補正部２０に通知する。また、電流飽和検出部７１は電流飽和を検出し、その旨を指令値補正部２０に通知する。また、電圧飽和検出部７２は電圧飽和を検出し、その旨を指令値補正部２０に通知する。
【００７５】
指令値補正部２０は、今サイクルにおいて、トルク飽和検出部６１がトルク飽和を検出したとき（Ｓ２０４でＹＥＳ）、電流飽和検出部７１が電流飽和を検出したとき（Ｓ２０４でＹＥＳ）、または電圧飽和検出部７２が電圧飽和を検出したとき（Ｓ２０４でＹＥＳ）、指令値生成部１０が生成した指令値を補正する（Ｓ２０５）。そして、補正した指令値を速度制御器４０に通知し、指令値に基づく制御値がモータ３へ出力される（Ｓ２０６）。
【００７６】
また、指令値補正部２０は、今サイクルにおいて、トルク飽和検出部６１がトルク飽和を検出していない（Ｓ２０４でＮＯ）、電流飽和検出部７１が電流飽和を検出していない（Ｓ２０４でＮＯ）、または電圧飽和検出部７２が電圧飽和を検出しない（Ｓ２０４でＮＯ）とき、指令値生成部１０が生成した指令値をそのまま速度制御器４０に通知し、指令値に基づく制御値がモータ３に出力される（Ｓ２０６）。
【００７７】
次に、ステップＳ２０５ において、指令値生成部１０が生成した指令値を補正する方法について説明する。指令値を補正する方法としては、上述した実施形態の〔補正処理の詳細〕に記載した方法を用いることができる。また、指令値に対して係数αを乗じて、振幅を下げる方法の変形例を用いることができる。すなわち、指令値補正部２０は、出力飽和を１回以上検出した場合には、出力飽和を検出したサイクルから今回のサイクルまでのサイクルの数βを用い、係数αのβ乗を行った値を指令値に乗じて、指令値を補正する。当該補正処理が実行されることで、指令値として掃引正弦波を用いた場合、その振幅は時系列に沿って漸減する 。
【００７８】
なお、指令値を漸減させる方法であれば、指令値の補正方法は、係数αのβ乗を指令値に乗じる方法に特に限定されない。また、後述の実施形態３のように、指令値の振幅を所定の基準値よりも小さくしない構成においては、少なくとも指令値の振幅が漸減する期間が設けられていればよい。
【００７９】
以上のように、本実施形態において、上記実施形態１と異なるのは、ステップＳ２０４における処理である。実施形態１では、出力飽和を検出したとき、より具体的には、出力飽和を検出した周期毎に、指令値の補正を行ったが、本実施形態では、出力飽和を検出した周期以降に生成される指令値に対し補正を行う。速度指令値の振幅は徐々に大きくなっていくことが多いので、一旦、出力飽和となると、それ以降も出力飽和となる可能性が高い。本実施形態では、一旦、出力飽和となるとそれ以降、指令値の補正を行うので、適切に出力飽和を起こさせないことができる。
【００８０】
〔実施形態３〕
本発明の他の実施形態について、図８〜図１０に基づいて説明すれば、以下のとおりである。なお、説明の便宜上、前記実施形態にて説明した部材と同じ機能を有する部材については、同じ符号を付記し、その説明を省略する。
【００８１】
本実施形態では、上記実施形態１、２と異なり、出力飽和を検出し、指令を補正した後、補正後の指令値が予め設定した基準値（所定値）以上の場合に、当該指令値を出力する。補正後の指令値では、高周波部分の入力が小さくなり、これに対応して出力も小さくなるが、高周波数領域においてノイズ成分が大きくなり、出力値が不正な値となってしまうことがある。この場合、周波数応答の計測結果が不適切なものとなり、周波数特性の精度が悪くなる。本実施形態では、予め補正後の指令値に基準値を設け、補正後の指令値を制限することにより、ノイズが出力値に与える影響を軽減し、周波数応答の高周波領域の計測精度を向上させることができる。
【００８２】
〔本実施形態における処理の流れ〕
図８を参照して、本実施形態における指令値の補正処理の流れを説明する。図８は、本実施形態における指令値の補正処理の流れを示すフローチャートである。
【００８３】
図８に示すように、まず、指令値生成部１０は、指令値の生成条件の初期化を行う（Ｓ３０１）。ここで、指令値の生成条件とは、例えば、指令値として掃引正弦波を使用する場合には、当該指令値の初期の振幅、振幅の増幅率が挙げられる。また、指令値の周波数の最大値を決める値を生成条件として設定することができる。指令値の周波数の最大値を決める値としては、例えば、計測のサンプリング周期が挙げられる。指令値の生成条件は、サーボドライバ２に接続されるツールＰＣ４を用いて設定してもよく、サーボドライバ２が生成条件を入力するためのユーザインタフェースを有する場合には、当該ユーザインタフェースを用いて設定してもよい。指令値の生成条件の初期化ステップ以降のステップは、指令値の生成が終了するまで所定のサイクル（周期）で繰り返す（Ｓ３０２、およびＳ３０９）。所定のサイクルとは、例えば、サーボドライバ２の演算周期である。実施形態１、２と同様に、指令値の生成期間は、ユーザによって指定された期間であってもよいし、予め設定された期間であってもよい。
【００８４】
次に、指令値生成部１０は、当該周期の指令値を、設定された指令値生成条件に基づいて生成する（Ｓ３０３）。
【００８５】
指令値の生成が開始されると、トルク飽和検出部６１、電流飽和検出部７１、電圧飽和検出部７２は、当該指令値から生成されたトルク値、電流値、電圧値が飽和していないか否かを検出する。より詳細には、トルク飽和検出部６１はトルク飽和を検出し、その旨を指令値補正部２０に通知する。また、電流飽和検出部７１は電流飽和を検出し、その旨を指令値補正部２０に通知する。また、電圧飽和検出部７２は電圧飽和を検出し、その旨を指令値補正部２０に通知する。
【００８６】
指令値補正部２０は、トルク飽和検出部６１がトルク飽和を検出したとき（Ｓ３０４でＹＥＳ）、電流飽和検出部７１が電流飽和を検出したとき（Ｓ３０４でＹＥＳ）、または電圧飽和検出部７２が電圧飽和を検出したとき（Ｓ３０４でＹＥＳ）、指令値生成部１０が生成した指令値を補正する（Ｓ３０５）。
【００８７】
次に、指令値補正部２０は、補正後の指令値が予め設定された基準値未満か否かを判定し（Ｓ３０６）、基準値以上であれば（Ｓ３０６でＮＯ）、補正後の指令値を速度制御器４０に通知し、指令値に基づく制御値がモータ３へ出力される（Ｓ３０８）。一方、基準値未満であれば（Ｓ３０６でＹＥＳ）、指令値を基準値、１サイクル（周期）前に出力された指令値、または補正前の指令値として、速度制御器４０に通知し、指令値に基づく制御値がモータ３へ出力される（Ｓ３０８）。なお、指令値を基準値として速度制御器４０に通知する構成が最も好ましい。指令値を１サイクル前に出力された指令値または補正前の指令値とすると、出力飽和が生じ得る可能性が高くなるためである。
【００８８】
また、指令値補正部２０は、今サイクルにおいて、トルク飽和検出部６１がトルク飽和を検出していない（Ｓ３０４でＮＯ）、電流飽和検出部７１が電流飽和を検出していない（Ｓ３０４でＮＯ）、または電圧飽和検出部７２が電圧飽和を検出しない（Ｓ３０４でＮＯ）とき、指令値生成部１０が生成した指令値をそのまま速度制御器４０に通知し、指令値に基づく制御値がモータ３に出力される（Ｓ３０８）。
【００８９】
以上のように、本実施形態では、ステップＳ３０４で出力飽和を検出し、指令値を補正した場合でも、補正後の指令値が基準値未満の場合は、補正後の指令値を用いず、基準値または補正前の指令値を用いる。これにより、ノイズが出力値に与える影響を軽減することができるので、周波数応答の高周波領域の計測精度を向上させることができる。
【００９０】
〔補正例〕
次に、図９を参照して、指令値の振幅を所定の基準値よりも小さくしない補正を行った場合の、速度指令、トルク指令、および周波数応答（ゲイン特性）の関係について説明する。図９は、補正を行った場合の速度指令、トルク指令、および周波数応答（ゲイン特性）の関係を示す図であり、（ａ）は、速度指令を示す図であり、（ｂ）はトルク指令を示す図であり、（ｃ）は周波数応答（ゲイン特性）を示す図である。
【００９１】
図９（ａ）に示す速度指令は、図５（ａ）に示す速度指令に対し、補正が行われ、速度指令の振幅が下げられ、かつ、基準値未満となったときには、補正が行われていない（または基準値に合わせる）状態を示す。図９（ａ）に示す例では、０．３秒と０．４秒との間で、基準値未満となる状態が発生し、その後は、速度指令が基準値に合わせられていることが分かる。この速度指令に対応するトルク指令は、図９（ｂ）に示す「指令補正有り」のようになる。図９（ｂ）の「指令補正有り」に示すように、補正がある場合、トルク指令は、トルク制限値に接近したのち、トルク制限値の近傍で安定するようになる。なお、図９（ｂ）では、比較のために、「トルク制限なし」のトルク指令も示している。
【００９２】
また、周波数応答（ゲイン特性）は、図９（ｃ）に示すように、「指令補正有り」の場合、「トルク制限有り」と比較して精度がよくなっていることが分かる。
【００９３】
〔補正例のまとめ〕
次に、図１０を参照して、上述した実施形態における周波数応答（ゲイン特性）を比較して説明する。図１０は、各実施形態における周波数応答（ゲイン特性）を示す図であり、（ａ）は補正を行わなかった場合における周波数応答（ゲイン特性）を示す図であり、（ｂ）は補正を行った場合における周波数応答（ゲイン特性）を示す図であり、（ｃ）は、基準値を設けて補正を行った場合における周波数応答（ゲイン特性）を示す図である。
【００９４】
図１０（ａ）に示すように、補正を行わなかった場合、トルク制限がかかることにより周波数応答（ゲイン特性）の高周波部分の精度が悪くなっていることが分かる。また、図１０（ｂ）に示すように、基準値を設けずに補正を行った場合は、補正を行うことにより、周波数応答の計測精度は向上している。ただし、高周波数領域においてＳＮ比が悪化し、その部分の周波数応答の計測精度が悪化していることがわかる。また、図１０（ｃ）に示すように、基準値を設けて補正を行った場合、基準値を設けなかった場合と比較して、周波数応答の計測精度が向上していることが分かる。これは、基準値を設けることにより、高周波領域におけるＳＮ比の悪化を抑制できたためである。
【００９５】
〔実施形態４〕
本発明の他の実施形態について、図１１に基づいて説明すれば、以下のとおりである。なお、説明の便宜上、前記実施形態にて説明した部材と同じ機能を有する部材については、同じ符号を付記し、その説明を省略する。
【００９６】
〔サーボドライバの構成〕
図１１を参照して、本実施形態に係るサーボドライバ２’について説明する。図１１は、本実施形態に係るサーボドライバ２’の要部構成を示すブロック図である。
【００９７】
本実施形態では、上述した実施形態におけるサーボドライバ２の構成において、位置制御器８０が加わった構成である。本実施形態では、指令値生成部１０は、指令値として位置指令を生成し、指令値補正部２０は、指令値生成部１０が生成した位置指令を補正する。そして、補正後の位置指令を位置制御器８０に通知する。
【００９８】
位置制御器８０は、指令値補正部２０から通知された位置指令とエンコーダ６から通知された計測位置との偏差を用いて、速度指令を生成し、速度制御器４０に通知する。
【００９９】
これにより、指令値として位置指令を用いた場合であっても、上述した実施形態１〜３と同様に、指令値を補正することができ、適切に周波数応答を計測することができる。
【０１００】
〔補正処理の詳細〕
本実施形態での指令値補正部２０における補正方法について説明する。
【０１０１】
指令値補正部２０は、トルク飽和検出部６１、電流飽和検出部７１、または電圧飽和検出部７２から出力飽和の通知を受けた場合、そのときに指令値生成部１０から通知された指令値の周波数をカットオフ周波数とした１次ローパスフィルタに、指令値生成部１０からの指令値を入力し、得られた出力と同様の出力を補正後の指令値とする。
【０１０２】
すなわち、指令値補正部２０は、出力飽和した時点の指令値の周波数をカットオフ周波数とした１次ローパスフィルタ（後述する数式（２））の伝達関数となる指令補正器ということが言え、これに指令値生成部１０からの指令値を入力し、出力された指令値が補正後の指令値ということになる。
Ｇ２＝（２×π×ｆcurrent）／（ｓ＋２×π×ｆcurrent）・・・（２）
ここで、ｆcurrentは、指令値生成部１０から出力された、出力飽和となったときの指令値の周波数であり、ｓは、プラス変換演算子である。
【０１０３】
〔ソフトウェアによる実現例〕
サーボドライバ２、２’の制御ブロック（特に、指令値生成部１０、指令値補正部２０、周波数応答計測部３０、速度制御器４０、速度検出部５０、トルク制限器６０（トルク飽和検出部６１）、電流制御器７０（電流飽和検出部７１、電圧飽和検出部７２）、および位置制御器８０）は、集積回路（ＩＣチップ）等に形成された論理回路（ハードウェア）によって実現してもよいし、ＣＰＵ（Central Processing Unit）を用いてソフトウェアによって実現してもよい。
【０１０４】
後者の場合、サーボドライバ２、２’は、各機能を実現するソフトウェアであるプログラムの命令を実行するＣＰＵ、上記プログラムおよび各種データがコンピュータ（またはＣＰＵ）で読み取り可能に記録されたＲＯＭ（Read Only Memory）または記憶装置（これらを「記録媒体」と称する）、上記プログラムを展開するＲＡＭ（Random Access Memory）などを備えている。そして、コンピュータ（またはＣＰＵ）が上記プログラムを上記記録媒体から読み取って実行することにより、本発明の目的が達成される。上記記録媒体としては、「一時的でない有形の媒体」、例えば、テープ、ディスク、カード、半導体メモリ、プログラマブルな論理回路などを用いることができる。また、上記プログラムは、該プログラムを伝送可能な任意の伝送媒体（通信ネットワークや放送波等）を介して上記コンピュータに供給されてもよい。なお、本発明は、上記プログラムが電子的な伝送によって具現化された、搬送波に埋め込まれたデータ信号の形態でも実現され得る。
【０１０５】
本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。さらに、各実施形態にそれぞれ開示された技術的手段を組み合わせることにより、新しい技術的特徴を形成することができる。
【符号の説明】
【０１０６】
１  コントローラ
２  サーボドライバ（モータ制御装置）
３  モータ
６  エンコーダ
１０  指令値生成部
２０  指令値補正部（指令値修正部、出力部）
３０  周波数応答計測部（周波数特性演算部）
４０  速度制御器
５０  速度検出部（計測値取得部、出力部）
６０  トルク制限器
６１  トルク飽和検出部（出力値判定部）
７０  電流制御器
７１  電流飽和検出部（出力値判定部）
７２  電圧飽和検出部（出力値判定部）
８０  位置制御器
【図１】
0006493260.tif 000002
【図２】
0006493260.tif 000003
【図３】
0006493260.tif 000004
【図４】
0006493260.tif 000005
【図５】
0006493260.tif 000006
【図６】
0006493260.tif 000007
【図７】
0006493260.tif 000008
【図８】
0006493260.tif 000009
【図９】
0006493260.tif 000010
【図１０】
0006493260.tif 000011
【図１１】
0006493260.tif 000012