(57)【要約】【課題】摩擦力を適切に補正することで補正値の振動を防ぐことができる制御装置、制御方法及びプログラムを提供することを目的とする。【解決手段】制御装置は、制御対象機械に対する指令値を取得する指令値取得部と、制御対象機械についての観測値を取得する観測値取得部と、指令値と観測値の差を解消するように制御対象機械を制御する制御部と、観測値と制御対象機械に適用される摩擦モデルに基づいて制御対象機械に作用する摩擦力を求める摩擦演算部と、摩擦力に対して、制御ループにおける制御対象機械との位相のずれの補償を行って指令値の補正を行う補償部と、を備える。【選択図】図２
2019219762.tif 000002
【特許請求の範囲】
【請求項１】
制御対象機械に対する指令値を取得する指令値取得部と、
前記制御対象機械についての観測値を取得する観測値取得部と、
前記指令値と前記観測値の差を解消するように前記制御対象機械を制御する制御部と、
前記観測値と前記制御対象機械に適用される摩擦モデルに基づいて前記制御対象機械に作用する摩擦力を求める摩擦演算部と、
前記摩擦力に対して、制御ループにおける前記制御対象機械との位相のずれの補償を行って前記指令値の補正を行う補償部と、
を備える制御装置。
【請求項２】
前記指令値が示す前記制御対象機械の移動方向にさらに基づいて、前記指令値を補正する補正部、を更に備える、請求項１に記載の制御装置。
【請求項３】
前記観測値は、前記制御部の制御によって位置が変化する前記制御対象機械の負荷の位置パラメータあり、
前記摩擦演算部は、前記負荷の位置パラメータを微分処理して前記制御対象機械における負荷の移動速度に変換する、請求項１または請求項２に記載の制御装置。
【請求項４】
前記観測値は、前記制御部の制御によって回転角度が変化する前記制御対象機械のモータの回転角度であるモータ角度であり、
前記摩擦演算部は、前記制御対象機械の伝達関数及びノッチフィルタを用いて、前記モータ角度から前記制御部の制御によって位置が変化する前記制御対象機械の負荷の移動速度に変換する、請求項１または請求項２に記載の制御装置。
【請求項５】
前記指令値と前記観測値の偏差と前記制御対象機械に適用される物理モデルに基づいて前記制御対象機械の速度を求め、求めた速度と前記観測値に基づく値との偏差にさらに基づいて前記指令値を補正する第１の外乱オブザーバ部、を更に備える、請求項１から請求項４のいずれか１項に記載の制御装置。
【請求項６】
前記指令値と前記観測値の偏差と前記制御対象機械に応じた物理モデルに基づいて前記制御対象機械の速度を求め、求めた前記速度と前記観測値に基づく値との偏差に基づいて補正値を生成し、生成した前記補正値を前記摩擦演算部に出力する第２の外乱オブザーバ部、を更に備え、
前記摩擦演算部は、前記第２の外乱オブザーバ部が出力した前記補正値に基づいて、求めた前記摩擦力を更新する、請求項１から請求項４のいずれか１項に記載の制御装置。
【請求項７】
前記指令値と前記観測値の偏差と前記制御対象機械に応じた物理モデルに基づいて前記制御対象機械の速度を求め、求めた速度と前記観測値に基づく値との偏差に基づいて補正値を生成し、生成した前記補正値を前記補償部に出力する第３の外乱オブザーバ部、を更に備え、
前記補償部は、前記第３の外乱オブザーバ部が出力した前記補正値に基づいて、前記指令値の補正を行う、請求項１から請求項４のいずれか１項に記載の制御装置。
【請求項８】
制御対象機械に対する指令値を取得する指令値取得部と、
前記制御対象機械についての観測値を取得する観測値取得部と、
前記指令値と前記観測値の差を解消するように前記制御対象機械を制御する制御部と、
前記観測値と前記制御対象機械に応じた摩擦モデルに基づいて前記制御対象機械に作用する摩擦力を求める摩擦演算部と、
前記指令値が示す前記制御対象機械の移動方向に基づいて、前記摩擦力に基づく値を補正して前記指令値の補正を行う補正部と、
を備える制御装置。
【請求項９】
指令値取得部が、制御対象機械に対する指令値を取得するステップと、
観測値取得部が、前記制御対象機械についての観測値を取得する観測値取得部と、
制御部が、前記指令値と前記観測値の差を解消するように前記制御対象機械を制御するステップと、
摩擦演算部が、前記観測値と前記制御対象機械に適用される摩擦モデルに基づいて前記制御対象機械に作用する摩擦力を求めるステップと、
補償部が、前記摩擦力に対して、制御ループにおける前記制御対象機械との位相のずれの補償を行って前記指令値の補正を行うステップと、
を含む制御方法。
【請求項１０】
指令値取得部が、制御対象機械に対する指令値を取得するステップと、
観測値取得部が、前記制御対象機械についての観測値を取得するステップと、
制御部が、前記指令値と前記観測値の差を解消するように前記制御対象機械を制御すると、
摩擦演算部が、前記観測値と前記制御対象機械に応じた摩擦モデルに基づいて前記制御対象機械に作用する摩擦力を求めるステップと、
補正部が、前記指令値が示す前記制御対象機械の移動方向に基づいて、前記摩擦力に基づく値を補正して前記指令値の補正を行うステップと、
を含む制御方法。
【請求項１１】
制御対象機械を制御する制御装置のコンピュータに、
前記制御対象機械に対する指令値を取得するステップと、
前記制御対象機械についての観測値を取得する観測値取得部と、
前記指令値と前記観測値の差を解消するように前記制御対象機械を制御するステップと、
前記観測値と前記制御対象機械に適用される摩擦モデルに基づいて前記制御対象機械に作用する摩擦力を求めるステップと、
前記摩擦力に対して、制御ループにおける前記制御対象機械との位相のずれの補償を行って前記指令値の補正を行うステップと、
を実行させるプログラム。
【請求項１２】
制御対象機械を制御する制御装置のコンピュータに、
前記制御対象機械に対する指令値を取得するステップと、
前記制御対象機械についての観測値を取得するステップと、
前記指令値と前記観測値の差を解消するように前記制御対象機械を制御すると、
前記観測値と前記制御対象機械に応じた摩擦モデルに基づいて前記制御対象機械に作用する摩擦力を求めるステップと、
前記指令値が示す前記制御対象機械の移動方向に基づいて、前記摩擦力に基づく値を補正して前記指令値の補正を行うステップと、
を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御装置、制御方法及びプログラムに関する。
【背景技術】
【０００２】
機械を駆動するアクチュエータでは、主に摩擦要素の非線形性に起因する位置決め精度の低下が生じ、品質の低下が課題となっている。すべり面の摩擦変動によって生じるスティックスリップ現象は、特に低速動作時において静摩擦による停止と移動を繰り返すことで生じる振動現象であり、階段状の位置決め応答を発生させ位置決め精度を悪化させる。
【０００３】
このような摩擦の影響を低減する手法として特許文献１には、制御装置が、機械装置に対するトルク指令を算出するトルク指令算出手段と、前記機械装置に生じる摩擦力の推定値を算出する摩擦推定手段と、前記摩擦推定手段によって算出された推定値に所定のゲインを乗算して補正値を算出する調整手段と、前記トルク指令算出手段によって算出された前記トルク指令を、前記調整手段によって算出された前記補正値で補正する補正手段と、を備え、前記ゲインは、前記機械装置に対する位置指令から位置偏差までの伝達関数のゲイン特性に基づいて決定される機械装置の制御方法が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第６１７７７０５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
摩擦力は、低速度にて静止摩擦の影響を受け大きくなる上、移動方向が反転すると摩擦力も急転する。このため、推定誤差により補正値が振動的になるという問題がある。高精度な摩擦モデルを利用するに当たり、この問題が顕著になる。
【０００６】
本発明は、上記の問題点に鑑みてなされたものであって、摩擦力を適切に補正することで補正値の振動を防ぐことができる制御装置、制御方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の第１の態様によれば、制御装置は、制御対象機械に対する指令値を取得する指令値取得部と、前記制御対象機械についての観測値を取得する観測値取得部と、前記指令値と前記観測値の差を解消するように前記制御対象機械を制御する制御部と、前記観測値と前記制御対象機械に適用される摩擦モデルに基づいて前記制御対象機械に作用する摩擦力を求める摩擦演算部と、前記摩擦力に対して、制御ループにおける前記制御対象機械との位相のずれの補償を行って前記指令値の補正を行う補償部と、を備える。
【０００８】
また、本発明の第２の態様によれば、前記指令値が示す前記制御対象機械の移動方向にさらに基づいて、前記指令値を補正する補正部、を更に備える。
【０００９】
また、本発明の第３の態様によれば、前記観測値は、前記制御部の制御によって位置が変化する前記制御対象機械の負荷の位置パラメータあり、前記摩擦演算部は、前記負荷の位置パラメータを微分処理して前記制御対象機械における負荷の移動速度に変換する。
【００１０】
また、本発明の第４の態様によれば、前記観測値は、前記制御部の制御によって回転角度が変化する前記制御対象機械のモータの回転角度であるモータ角度であり、前記摩擦演算部は、前記制御対象機械の伝達関数及びノッチフィルタを用いて、前記モータ角度から前記制御部の制御によって位置が変化する前記制御対象機械の負荷の移動速度に変換する。
【００１１】
また、本発明の第５の態様によれば、前記指令値と前記観測値の偏差と前記制御対象機械に適用される物理モデルに基づいて前記制御対象機械の速度を求め、求めた速度と前記観測値に基づく値との偏差にさらに基づいて前記指令値を補正する第１の外乱オブザーバ部、を更に備える。
【００１２】
また、本発明の第６の態様によれば、前記指令値と前記観測値の偏差と前記制御対象機械に応じた物理モデルに基づいて前記制御対象機械の速度を求め、求めた前記速度と前記観測値に基づく値との偏差に基づいて補正値を生成し、生成した前記補正値を前記摩擦演算部に出力する第２の外乱オブザーバ部、を更に備え、前記摩擦演算部は、前記第２の外乱オブザーバ部が出力した前記補正値に基づいて、求めた前記摩擦力を更新する。
【００１３】
また、本発明の第７の態様によれば、前記指令値と前記観測値の偏差と前記制御対象機械に応じた物理モデルに基づいて前記制御対象機械の速度を求め、求めた速度と前記観測値に基づく値との偏差に基づいて補正値を生成し、生成した前記補正値を前記補償部に出力する第３の外乱オブザーバ部、を更に備え、前記補償部は、前記第３の外乱オブザーバ部が出力した前記補正値に基づいて、前記指令値の補正を行う。
【００１４】
また、本発明の第８の態様によれば、制御装置は、制御対象機械に対する指令値を取得する指令値取得部と、前記制御対象機械についての観測値を取得する観測値取得部と、前記指令値と前記観測値の差を解消するように前記制御対象機械を制御する制御部と、前記観測値と前記制御対象機械に応じた摩擦モデルに基づいて前記制御対象機械に作用する摩擦力を求める摩擦演算部と、前記指令値が示す前記制御対象機械の移動方向に基づいて、前記摩擦力に基づく値を補正して前記指令値の補正を行う補正部と、を備える。
【００１５】
また、本発明の第９の態様によれば、制御方法は、指令値取得部が、制御対象機械に対する指令値を取得するステップと、観測値取得部が、前記制御対象機械についての観測値を取得する観測値取得部と、制御部が、前記指令値と前記観測値の差を解消するように前記制御対象機械を制御するステップと、摩擦演算部が、前記観測値と前記制御対象機械に適用される摩擦モデルに基づいて前記制御対象機械に作用する摩擦力を求めるステップと、補償部が、前記摩擦力に対して、制御ループにおける前記制御対象機械との位相のずれの補償を行って前記指令値の補正を行うステップと、を含む。
【００１６】
また、本発明の第１０の態様によれば、制御方法は、指令値取得部が、制御対象機械に対する指令値を取得するステップと、観測値取得部が、前記制御対象機械についての観測値を取得するステップと、制御部が、前記指令値と前記観測値の差を解消するように前記制御対象機械を制御すると、摩擦演算部が、前記観測値と前記制御対象機械に応じた摩擦モデルに基づいて前記制御対象機械に作用する摩擦力を求めるステップと、補正部が、前記指令値が示す前記制御対象機械の移動方向に基づいて、前記摩擦力に基づく値を補正して前記指令値の補正を行うステップと、を含む。
【００１７】
また、本発明の第１１の態様によれば、プログラムは、制御対象機械を制御する制御装置のコンピュータに、前記制御対象機械に対する指令値を取得するステップと、前記制御対象機械についての観測値を取得する観測値取得部と、前記指令値と前記観測値の差を解消するように前記制御対象機械を制御するステップと、前記観測値と前記制御対象機械に適用される摩擦モデルに基づいて前記制御対象機械に作用する摩擦力を求めるステップと、前記摩擦力に対して、制御ループにおける前記制御対象機械との位相のずれの補償を行って前記指令値の補正を行うステップと、を実行させる。
【００１８】
また、本発明の第１１の態様によれば、プログラムは、制御対象機械を制御する制御装置のコンピュータに、前記制御対象機械に対する指令値を取得するステップと、前記制御対象機械についての観測値を取得するステップと、前記指令値と前記観測値の差を解消するように前記制御対象機械を制御すると、前記観測値と前記制御対象機械に応じた摩擦モデルに基づいて前記制御対象機械に作用する摩擦力を求めるステップと、前記指令値が示す前記制御対象機械の移動方向に基づいて、前記摩擦力に基づく値を補正して前記指令値の補正を行うステップと、を実行させる。
【発明の効果】
【００１９】
上述の発明の各態様によれば、摩擦力を適切に補正することで補正値の振動を防ぐことができる。
【図面の簡単な説明】
【００２０】
【図１】第１実施形態に係る制御装置を有する工作機械の１軸の駆動構成要素を示す図である。
【図２】第１実施形態に係る制御装置の機能構成を示すブロック図である。
【図３】摩擦モデルの例を示す図である。
【図４】第１実施形態に係る補正部が行う処理手順例を示すフローチャートである。
【図５】第１実施形態に係る制御装置が制御対象機械を制御した結果を解析した例を示す図である。
【図６】比較例における工作機械の構成例を示すブロック図である。
【図７】比較例における制御装置が制御対象機械を制御した結果を解析した例を示す図である。
【図８】スティックスリップ現象例を示す図である。
【図９】第１実施形態に係る制御対象機械と摩擦補償部とを物理モデルとして表した図である。
【図１０】第２実施形態に係る制御装置の機能構成を示すブロック図である。
【図１１】第３実施形態に係る制御装置の機能構成を示すブロック図である。
【図１２】第４実施形態に係る制御装置の機能構成を示すブロック図である。
【発明を実施するための形態】
【００２１】
以下、本発明の実施の形態について図面を参照しながら説明する。なお、以下の説明に用いる図面では、各部材を認識可能な大きさとするため、各部材の縮尺を適宜変更している。
【００２２】
＜第１実施形態＞
［工作機械の１軸の駆動構成例］
まず、工作機械の１軸の駆動構成例を説明する。
図１は、本実施形態に係る制御装置１０を有する工作機械１の１軸の駆動構成要素を示す図である。図１に示すように、工作機械１は、制御装置１０と制御対象機械２とを含んで構成される。
【００２３】
制御装置１０は、制御対象機械２についての観測値が、上位装置（図示せず）から入力される指令値に一致するように、当該制御対象機械２を制御する。上位装置は、例えばコンピュータ等である。具体的には、制御装置１０は、制御対象機械２（モータ２１）についての観測値であるモータ位置観測値θＭと、上位装置から入力されるモータ位置指令値θＭ＊との偏差に応じたトルクτを、制御対象機械２に対して出力する。これにより、制御装置１０は、例えば制御対象機械２のテーブル２３の位置決め制御を行う。
【００２４】
制御対象機械２は、工作機械１の機械的可動機構であり、例えば、モータ２１と、ギア２２と、テーブル２３とを有してなる。図１に示すように、モータ２１とギア２２、及び、ギア２２とテーブル２３は、それぞれ、ボールねじなどの連結部材で連結され、モータ２１が発生させたトルクが、負荷であるテーブル２３まで伝達する機構を構成する。モータ２１は、例えばサーボモータである。制御対象機械２には、エンコーダが取り付けられている。制御対象機械２のエンコーダは、負荷角度の観測値を制御装置１０に出力する。
【００２５】
［制御装置１０の機能構成例］
次に、制御装置１０の機能構成例を説明する。
図２は、本実施形態に係る制御装置１０の機能構成を示すブロック図である。
図２に示すように、制御装置１０は、制御部１０１、及び摩擦補償部１６を備える。制御装置１０は、制御対象機械２を制御する。
制御部１０１は、位置比例制御部１１（指令値取得部、観測値取得部）、速度比例積分制御部１２、演算部１３、電流制御部１４、及び擬似微分部１５（観測値取得部）を備える。
また、摩擦補償部１６は、差分演算部１６１（指令値取得部）、摩擦演算部１６２（観測値取得部）、補償部１６３、及び補正部１６４を備える。
摩擦演算部１６２は、変換部１６２１及び摩擦モデル記憶部１６２２を備える。
補償部１６３は、摩擦補償フィルタ記憶部１６３１を備える。
【００２６】
なお、制御対象機械２は、図１を用いて説明したように、例えばモータ２１と、ギア２２と、テーブル２３と備える。また、制御対象機械２の負荷であるテーブル２３には、エンコーダ（不図示）が取り付けられている。
【００２７】
位置比例制御部１１は、上位装置から入力されたモータ位置指令値θＭ＊と、モータ２１（図１）から入力されたモータ位置観測値θＭとの偏差（θＭ＊−θＭ）に比例する大きさのモータ速度指令値ωＭ＊（制御信号）を生成する。位置比例制御部１１は、生成したモータ速度指令値ωＭ＊を、速度比例積分制御部１２と差分演算部１６１に出力する。
【００２８】
速度比例積分制御部１２は、位置比例制御部１１が出力するモータ速度指令値ωＭ＊と、擬似微分部１５が出力するモータ速度観測値ωＭとの偏差（ωＭ＊−ωＭ）及びその時間積分に比例した大きさのトルク指令値τ＊（制御信号）を生成する。速度比例積分制御部１２は、生成したトルク指令値τ＊を演算部１３に出力する。
【００２９】
演算部１３は、速度比例積分制御部１２が出力するトルク指令値τ＊（制御信号）に、摩擦補償部１６の補正部１６４が出力する補正トルク指令値Δτ＊（補正指令値）を加算する。演算部１３は、加算後のトルク指令値τ＊を電流制御部１４に出力する。
【００３０】
電流制御部１４は、演算部１３が出力するトルク指令値τ＊に応じたモータ電流を制御対象機械２に出力する。制御対象機械２のモータ２１（図１）は、このモータ電流により、トルク指令値τ＊に一致するトルクτを出力する。
【００３１】
擬似微分部１５は、モータ２１（図１）から入力されるモータ位置観測値θＭに対して擬似微分処理してモータ速度観測値ωＭを生成する。擬似微分部１５は、生成したモータ速度観測値ωＭを速度比例積分制御部１２に出力する。
【００３２】
摩擦補償部１６は、制御対象機械２のエンコーダが検出したエンコード値（観測値）と、モータ位置指令値θＭ＊と、に基づいて摩擦の影響を補償して補正トルク指令値Δτ＊（補正指令値）を生成する。補正トルク指令値Δτ＊は、制御ループにおける位相のずれ（位相遅れや位相進み）の補償を行う指令値の補正値である。また、エンコード値（観測値）は、制御部１０１の制御によって位置が変化する制御対象機械２の負荷の位置パラメータである。
【００３３】
差分演算部１６１は、所定時間毎のモータ位置指令値θＭ＊の差分を角度指令差分値として求める。例えば、差分演算部１６１は、第１時刻のモータ位置指令値θＭ＊と、第１時刻より所定時間後の第２時刻のモータ位置指令値θＭ＊との角度指令差分値を求める。差分演算部１６１は、求めた角度指令差分値ΔθＭ＊を補正部１６４に出力する。角度指令差分値ΔθＭ＊は、トルク指令における回転方向（正方向への回転、負方向への回転）を示している。
【００３４】
摩擦演算部１６２の変換部１６２１は、負荷側のエンコーダが出力する負荷角度の測定信号θ（観測値）を例えば微分処理することで負荷の移動速度に変換する。
【００３５】
摩擦モデル記憶部１６２２は、速度に対する摩擦力をモデル化した摩擦モデルを記憶する。なお、摩擦モデル記憶部１６２２が記憶する摩擦モデルについては、図３を用いて後述する。
【００３６】
摩擦演算部１６２は、変換部１６２１が変換した速度を用いて、摩擦モデル記憶部１６２２が記憶する摩擦モデルを参照して、速度に対応する摩擦量を求めることで摩擦推定値（補正指令値）を求める。なお、摩擦モデルが数式で表される場合、摩擦演算部１６２は、摩擦推定値（補正指令値）を演算によって求めるようにしてもよい。
【００３７】
摩擦補償フィルタ記憶部１６３１は、摩擦の影響をキャンセルするフィルタである摩擦補償フィルタを記憶する。なお、摩擦補償フィルタの求め方の例は、図７を用いて後述する。
【００３８】
補償部１６３は、摩擦演算部１６２が出力する摩擦推定値に対して、摩擦補償フィルタ記憶部１６３１が記憶する摩擦補償フィルタを用いて、多慣性系の位相遅れや位相進みを補償する摩擦補償値（摩擦力に基づく値、補正指令値）を求める。
【００３９】
補正部１６４は、差分演算部１６１が算出する角度指令差分値ΔθＭ＊に応じて、補償部１６３が出力する摩擦補償値を補正する。補正部１６４は、補正した後の値を補正トルク指令値Δτ＊として演算部１３に出力する。
【００４０】
［摩擦モデル例］
次に、摩擦モデル記憶部１６２２が記憶する摩擦モデルの一例を説明する。
図３は、摩擦モデルの例を示す図である。図３において、横軸は速度［ｄｅｇ／ｓ］であり、縦軸は摩擦力［Ｎｍ］である。
符号ｇ１は、加速時の速度に対する摩擦力の特性である。符号ｇ１の摩擦力は、符号ｇ１１に示すように、速度０から速度が増加する方向に変化する。
符号ｇ２は、減速時の速度に対する摩擦力の特性である。符号ｇ２の摩擦力は、符号ｇ１２に示すように、速度が約５０から速度が減少する方向に変化する。
なお、図３に示した特性はシミュレーション値である。このような摩擦モデルは、例えば、図７を用いて後述する制御対象機械２の物理モデルによって算出する。このため、摩擦モデルは、制御対象機械２に応じて異なる。
【００４１】
［補正部の処理例］
次に、補正部１６４が行う処理例を説明する。
図４は、本実施形態に係る補正部１６４が行う処理手順例を示すフローチャートである。
【００４２】
（ステップＳ１）補正部１６４は、差分演算部１６１が出力する角度指令差分値ΔθＭ＊を取得する。続けて、補正部１６４は、取得した角度指令差分値ΔθＭ＊が正であるか、０であるか、負であるかを判別する。これにより、補正部１６４は、指令値が示す制御対象機械２の移動方向を判別している。補正部１６４は、角度指令差分値ΔθＭ＊が正であると判別した場合（ステップＳ１；正）、ステップＳ２の処理に進める。補正部１６４は、角度指令差分値ΔθＭ＊が０であると判別した場合（ステップＳ１；０）、ステップＳ３の処理に進める。補正部１６４は、角度指令差分値ΔθＭ＊が負であると判別した場合（ステップＳ１；負）、ステップＳ４の処理に進める。
【００４３】
（ステップＳ２）補正部１６４は、正方向のみに摩擦補償を行う。換言すると、補正部１６４は、摩擦補償値が正の場合に補正トルク指令値Δτ＊として出力し、摩擦補償値が０または負の場合に０を補正トルク指令値Δτ＊として出力する。
【００４４】
（ステップＳ３）補正部１６４は、摩擦補償を行わない。換言すると、補正部１６４は、０を補正トルク指令値Δτ＊として出力する。
【００４５】
（ステップＳ４）補正部１６４は、負方向のみに摩擦補償を行う。換言すると、補正部１６４は、摩擦補償値が負の場合に補正トルク指令値Δτ＊として出力し、摩擦補償値が０または正の場合に０を補正トルク指令値Δτ＊として出力する。
【００４６】
補正部１６４が図４のように処理する意味合いを説明する。
図２に示したように、制御装置１０は、制御対象機械２に対してフィードバック制御を行っている。このため、仮にテーブル２３（図１）が進みすぎた場合、速度比例積分制御部１２が出力するトルク指令値τ＊は、進みすぎた分を戻す制御値となる。このように進み過ぎたときに、補正部１６４によって更に戻すような補正トルク指令値Δτ＊を出力してしまうと結果として戻りすぎてしまい、テーブル２３のスティックスリップ現象の振動を助長することになりかねない。このため、本実施形態では、角度指令差分値ΔθＭ＊に応じて、摩擦補償値の出力を補正することで、スティックスリップ現象の振動を助長しないようにしている。なお、スティックスリップ現象とは、摩擦によって発生する摩擦面の付着や、滑りの繰り返しによって引き起こされる振動現象である。
【００４７】
［解析結果例］
次に、制御装置が制御対象機械２を制御した結果を解析した例を説明する。
図５は、本実施形態に係る制御装置１０が制御対象機械２を制御した結果を解析した例を示す図である。なお、図５において、時刻１のときに制御を開始している。
【００４８】
図５（Ａ）は、時刻に対する角度の変化の解析結果である。図５（Ａ）において、横軸は時刻［ｓ］であり、縦軸は角度［ｄｅｇ］である。
符号ｇ３１は、モータ側の角度の変化を示している。符号ｇ３２は、負荷側の角度の変化を示している。符号ｇ３３は、スティックスリップ現象が発生していないリファレンスの角度の変化を示している。
【００４９】
図５（Ｂ）は、時刻に対する角度エラーの変化の解析結果である。図５（Ｂ）において、横軸は時刻［ｓ］であり、縦軸は角度エラー［ｄｅｇ］である。
符号ｇ３４は、モータ側の角度エラーの変化を示している。符号ｇ３５は、負荷側の角度エラーの変化を示している。
【００５０】
図５（Ｃ）は、時刻に対する入力トルクの変化の解析結果である。図５（Ｃ）において、横軸は時刻［ｓ］であり、縦軸は入力トルク［Ｎｍ］である。
符号ｇ３６は、統合トルク（Ｔｏｔａｌ  Ｔｏｒｑｕｅ）の変化を示している。符号ｇ３７は、摩擦補償（Ｆｒｉｃｔｉｏｎ  Ｃｏｍｐｅｎｓａｔｉｏｎ）の変化を示している。
【００５１】
本実施形態によれば、図５（Ｂ）のように、モータ側と負荷側との角度エラーが、１秒〜２秒の間で収束している。そして、図５（Ｂ）のように、２秒以降のモータ側と負荷側との角度エラーの値の変化はほぼ０であり、すなわち振動が抑えられている。この結果、図５（Ａ）のように、スティックスリップ現象を抑えることができている。
また、本実施形態によれば、補償部１６３が制御ループにおける位相遅れや位相進みの補償を行って前記指令値の補正値である補正指令値を生成しているため、負荷摩擦発生個所に作用するまでに遅れや減衰の影響を低減することができ、摩擦を正しく補償できる。
【００５２】
次に、比較例における工作機械９００において、制御装置が制御対象機械２を制御した結果を説明する。
まず、比較例における工作機械９００の構成例を説明する。
図６は、比較例における工作機械９００の構成例を示すブロック図である。図６に示すように、工作機械９００は、制御装置９１０と制御対象機械２を含んで構成される。
制御装置９１０は、位置比例制御部１１、速度比例積分制御部１２、電流制御部１４、擬似微分部１５、演算部９１３、微分処理部９２１、及び推定部９２２備える。制御装置１０と同様の機能を有する機能部には、同じ符号を用いて説明を省略する。
【００５３】
制御対象機械２は、図１と同様にモータ２１、ギア２２、及びテーブル２３を備える。モータ２１は、不図示のエンコーダが取り付けられている。
【００５４】
微分処理部９２１は、制御対象機械２のモータ２１（図１）のエンコーダが出力するエンコード値（観測値）に対して微分処理を行って速度を求める。
推定部９２２は、摩擦モデルを記憶する。推定部９２２は、微分処理部９２１が求めた速度を用いて、摩擦モデルを参照して摩擦力を推定する。推定部９２２は、推定した摩擦力を補償トルク指令値τ’＊として演算部９１３に出力する。
【００５５】
演算部９１３は、速度比例積分制御部１２が出力するトルク指令値τ＊に、推定部９２２が出力する補償トルク指令値τ’＊を加算する。演算部９１３は、加算後のトルク指令値τ＊を電流制御部１４に出力する。
【００５６】
次に、この比較例の制御装置９１０が制御対象機械２を制御した結果を解析した例を説明する。
図７は、比較例における制御装置が制御対象機械２を制御した結果を解析した例を示す図である。なお、図７において、時刻１のときに制御を開始している。
【００５７】
図７（Ａ）は、時刻に対する角度の変化の解析結果である。図７（Ａ）において、横軸は時刻［ｓ］であり、縦軸は角度［ｄｅｇ］である。
符号ｇ４１は、モータ側の角度の変化を示している。符号ｇ４２は、負荷側の角度の変化を示している。符号ｇ４３は、スティックスリップ現象が発生していないリファレンスの角度の変化を示している。
【００５８】
図７（Ｂ）は、時刻に対する角度エラーの変化の解析結果である。図７（Ｂ）において、横軸は時刻［ｓ］であり、縦軸は角度エラー［ｄｅｇ］である。
符号ｇ４４は、モータ側の角度エラーの変化を示している。符号ｇ４５は、負荷側の角度エラーの変化を示している。
【００５９】
図７（Ｃ）は、時刻に対する入力トルクの変化の解析結果である。図７（Ｃ）において、横軸は時刻［ｓ］であり、縦軸は入力トルク［Ｎｍ］である。
符号ｇ４６は、統合トルクの変化を示している。符号ｇ４７は、摩擦補償の変化を示している。
【００６０】
比較例によれば、図７（Ｂ）のように、モータ側と負荷側との角度エラーが、１秒〜２秒の間で大きく振動し、さらに約２秒以降も振動が継続している。この結果、図８に示すようなスティックスリップ現象が発生し続けることになる。図８は、スティックスリップ現象例を示す図である。図８において、横軸は時刻［ｓ］であり、縦軸は角度［ｄｅｇ］である。符号ｇ５１は目標値を示し、符号ｇ５２は実際に観測された角度（実角度）を示している。
【００６１】
比較例では、２秒後降も角度エラーの振動が継続しているため、図７（Ｃ）に示すように、２秒以降の統合トルクと摩擦補償の値も約０．５［Ｎｍ］の振幅で振動し続けている。また、図７（Ａ）に示すように、約２秒以降もモータ側と負荷側の角度が振動し続けている。時刻に対する角度の変化において、角度のスケールを拡大すると、図８のように時刻に対して角度が目標値に対して多すぎる状態と少なすぎる状態を繰り返している。なお、図８は、図７の角度のスケールを拡大した図ではなく、単にスティックスリップ現象例である。
【００６２】
一方、本実施形態では、図５（Ｃ）に示したように、２秒以降の統合トルクと摩擦補償の値の振幅がほぼ０であり、振動していない。また、本実施形態では、図５（Ａ）に示すように、約２秒以降のモータ側と負荷側の角度の振動がほぼ無い。このように、本実施形態では、比較例と比べて大幅にスティックスリップ現象を抑えることができた。
【００６３】
［補償部で用いられる摩擦補償フィルタ］
次に、補償部１６３で用いられる摩擦補償フィルタの例について説明する。
まず、摩擦補償フィルタを求めるために用いる制御対象機械の物理モデルと摩擦補償部の物理モデルについて説明する。
【００６４】
図９は、本実施形態に係る制御対象機械２と摩擦補償部１６とを物理モデルとして表した図である。図９に示すように、制御対象機械２は、モータ２１についての伝達関数と、ギア２２についての伝達関数と、テーブル２３についての伝達関数との組み合わせによりモデル化される。なお、符号Ｔ１１〜Ｔ１５は、加算または減算を行う演算部である。
また、符号ＣＰはトルク指令値τ＊を入力とする閉ループである。この閉ループＣＰの伝達関数をＰ（ｓ）とする。
【００６５】
モータ２１についての伝達関数は、モータ２１の慣性モーメントＪＭとモータ２１の粘性係数ＤＭによって規定される。
ギア２２についての伝達関数は、ギア２２の慣性モーメントＪｄとギア２２の粘性係数Ｄｄによって規定される。
テーブル２３についての伝達関数は、テーブル２３の慣性モーメントＪＬとテーブル２３の粘性係数ＤＬによって規定される。
【００６６】
伝達関数Ｔ１は、モータ２１とギア２２とを連結する連結部材の剛性係数Ｋｇによって規定される。
伝達関数Ｔ２は、ギア２２とテーブル２３とを連結する連結部材の剛性係数ＫＲによって規定される。
【００６７】
さらに、図９に示すように、テーブル２３についての伝達関数には、制御対象機械２が有する非線形成分の一つである第１線形摩擦係数Ｔ３が含まれる。第１線形摩擦係数Ｔ３は、制御対象負荷摩擦モデルであり線形係数Ｆとする。第１線形摩擦係数Ｔ３は、例えばテーブル２３の速度（テーブル速度観測値ωＬ）に応じて当該テーブル２３が発生させる摩擦抵抗ＴｆＬの特性を有する。第１線形摩擦係数Ｔ３は、テーブル２３の静止時に発生する静摩擦と、テーブル２３の動作時に発生する動摩擦とを有してなる（動摩擦は静摩擦よりも摩擦抵抗が小さい）。
【００６８】
微分部５１は、制御対象機械２の角度の観測値を微分して速度を求め、求めた速度を第２線形摩擦係数５２に出力する。
第２線形摩擦係数５２は、制御系負荷摩擦モデルであり線形係数Ｆｃとする。第２線形摩擦係数５２は、摩擦モデルを用いて、微分部５１から入力された速度に対応する摩擦値を推定して出力する。第２線形摩擦係数５２は、推定した推定摩擦値を摩擦補償フィルタ５３に出力する。
【００６９】
摩擦補償フィルタ５３は、伝達関数Ｐ（ｓ）における線形係数Ｆと線形係数ＦＣとの影響を除去するためのフィルタであり関数Ｇとする。換言すると、摩擦補償フィルタ５３は、摩擦の影響をキャンセルするためのフィルタでる。このフィルタは、補償部１６３で用いられる。
【００７０】
なお、図９に示した制御対象機械２の物理モデルは、あくまで、各駆動機構（モータ２１、ギア２２及びテーブル２３等）に、摩擦特性を主とする非線形要素が含まれていることを説明するために例示したものであり、制御対象機械２の物理モデルは、制御対象である機械に応じたものであればよく、これとは異なるものであってよい。
【００７１】
次に、摩擦補償フィルタの求め方の一例を説明する。
図９における閉ループの伝達関数Ｐ（ｓ）は、次式（１）のように表される。
【００７２】
【数１】
2019219762.tif 000003
【００７３】
式（１）において、分子ｘは次式（２）のように表され、分母ｙは次式（３）のように表され、
【００７４】
【数２】
2019219762.tif 000004
【００７５】
【数３】
2019219762.tif 000005
【００７６】
式（３）において、Ｆ（−ＤｄＤｇｓ３−・・・−ＫｇＫｒｓ）の項は、制御対象の負荷摩擦モデルの項である。また、Ｆｃ（ＤｇＤｒＧｓ３＋ＤｇＧＫｒｓ２＋ＤｒＧＫｇｓ２＋ＧＫｇＫｒｓ）の項は、制御系の負荷摩擦モデルの項である。また、（ＤｇＤｒＧｓ３＋ＤｇＧＫｒｓ２＋ＤｒＧＫｇｓ２＋ＧＫｇＫｒｓ）の項は、摩擦フィルタの項である。
式（２）の分子をＢ１（ｓ）とすると、次式（４）となる。
【００７７】
【数４】
2019219762.tif 000006
【００７８】
分母において、線形係数Ｆの項、Ｆｃの項及び関数Ｇの項以外をＡ１とすると、Ａ１は次式（５）のように表される。また、Ｆ（−ＤｄＤｇｓ３−・・・−ＫｇＫｒｓ）の項の（−ＤｄＤｇｓ３−・・・−ＫｇＫｒｓ）をＡ２とすると、Ａ２は次式（６）のように表される。また、Ｆｃ（ＤｇＤｒＧｓ３＋ＤｇＧＫｒｓ２＋ＤｒＧＫｇｓ２＋ＧＫｇＫｒｓ）の項において、（ＤｇＤｒＧｓ３＋ＤｇＧＫｒｓ２＋ＤｒＧＫｇｓ２＋ＧＫｇＫｒｓ）を摩擦補償フィルタである関数ＧでくくってＧＡ３とするとＡ３は次式（７）のように表される。
【００７９】
【数５】
2019219762.tif 000007
【００８０】
【数６】
2019219762.tif 000008
【００８１】
【数７】
2019219762.tif 000009
【００８２】
式（１）を、Ｂ１、Ａ１、Ａ２、Ａ３、線形係数Ｆ、線形係数Ｆｃ及び関数Ｇを用いて表すと次式（８）のようになる。
【００８３】
【数８】
2019219762.tif 000010
【００８４】
式（８）において、線形係数Ｆと線形係数Ｆｃとが等しいとすると、式（８）は次式（９）に置き換えることができる。
【００８５】
【数９】
2019219762.tif 000011
【００８６】
式（８）において、線形係数Ｆの項をキャンセルするためには、関数Ｇが次式（１０）であればよい。
【００８７】
【数１０】
2019219762.tif 000012
【００８８】
式（１０）は、非プロパな伝達関数であり、すなわち分子の方が分母より次数が大きい。このため、本実施形態では、この関数Ｇに対して、さらに次式（１１）のように、３次のＬＰＦ（ローパスフィルタ）をかけて分子の次数を分母の次数より小さくする。
【００８９】
【数１１】
2019219762.tif 000013
【００９０】
式（１１）において、１／（τＧｓ＋１）３の項が、３次のＬＰＦの項である。また、τＧは、ＬＰＦにおける所定の時定数である。
また、式（１１）において、ａ１’は次式（１２）であり、ａ２’は次式（１３）であり、ａ３’は次式（１４）であり、ａ４’は次式（１５）であり、ａ５’は次式（１６）である。
【００９１】
【数１２】
2019219762.tif 000014
【００９２】
【数１３】
2019219762.tif 000015
【００９３】
【数１４】
2019219762.tif 000016
【００９４】
【数１５】
2019219762.tif 000017
【００９５】
【数１６】
2019219762.tif 000018
【００９６】
本実施形態では、このようにして摩擦補償フィルタである関数Ｇ（摩擦補償フィルタＧともいう）を求める。
なお、式（１１）の摩擦補償フィルタＧは、図９に示した物理モデルを解いた値である。このため、制御対象である機械が異なり物理モデルが頃なる場合、摩擦補償フィルタＧは式（１１）と異なる値となる。この場合であっても、摩擦補償フィルタＧは、摩擦の影響をキャンセルするフィルタとして設計する。
【００９７】
以上のように、本実施形態では、摺動部に発生している摩擦力を推定するため、負荷に取り付けられたエンコード値から速度を算出するようにした。また、本実施形態では、速度値を参照して、摩擦モデルから現在作用している摩擦力を推定し制御トルク値に加算するようにした。また、本実施形態では、摩擦モデルは単純な動摩擦だけでなく、静摩擦と動摩擦を併せて再現するモデルを想定するようにした。
また、本実施形態では、推定した摩擦力は、閉ループ系から非線形摩擦の影響が消えるよう、モータから負荷への特性の位相遅れと位相進みを補償してから加算するようにした。
また、本実施形態では、モデル化困難な非線形負荷摩擦を動作点近傍で線形し、内部慣性系の影響を補正するフィルタを設計するようにした。なお、線形化によるモデル化誤差については、フィードバック制御で補償することで影響を減らすようにした。
また、本実施形態では、指令値から摩擦発生方向を予測し、摩擦力を補正することでハンチングを防ぐようにした。
【００９８】
これにより、本実施形態によれば、適切な摩擦補償力をアクチュエータに与えることで、高精度な位置決め精度を実現できる。
ここで、従来は、アクチュエータから実際の摺動部までの間には複数慣性系に模擬されるような機械要素が内在する（例えば減速機剛性、回転系であればシャフト捩じり剛性、並進系であれば並進変換に使われるボールねじ剛性など）に対し、これら特性を簡便なＤＣゲインで補正していた。しかしながら、高精度な摩擦補償を実現するに当たり、機械要素特性を精緻に把握して補正すべきであったが、従来の手法では補正できなかった。
これに対して本実施形態によれば、高精度な摩擦補償を実現するにあたり、機械要素特性を精緻に把握して補正することができる。
【００９９】
また、本実施形態によれば、多慣性系に含まれる位相進み・位相遅れ分を補正した摩擦力を補償することで高精度な摩擦補償を実現することができる。
また、本実施形態によれば、スリップの際にオーバシュートが発生しても、摩擦補償方向を補正部１６４によって制限することでハンチング（補正値の振動）を低減することができる。このように、本実施形態によれば、角度指令差分値ΔθＭ＊に応じて、摩擦補償値の出力を補正部１６４が補正することで、スティックスリップ現象の振動を助長しないようにすることができる。
【０１００】
＜第２実施形態＞
第１実施形態では、制御対象機械２の負荷であるテーブル２３（図１）にエンコーダが取り付けられている例を説明した。本実施形態では、制御対象機械２のモータ２１（図１）にエンコーダ（不図示）が取り付けられている例を説明する。
【０１０１】
図１０は、本実施形態に係る制御装置１０Ａの機能構成を示すブロック図である。
図１０に示すように、制御装置１０Ａは、制御部１０１、及び摩擦補償部１６Ａを備える。制御装置１０Ａは、制御対象機械２を制御する。
制御部１０１は、位置比例制御部１１（指令値取得部、観測値取得部）、速度比例積分制御部１２、演算部１３、電流制御部１４、及び擬似微分部１５（観測値取得部）を備える。
摩擦補償部１６Ａは、差分演算部１６１（指令値取得部）、摩擦演算部１６２Ａ（観測値取得部）、補償部１６３、及び補正部１６４を備える。
摩擦演算部１６２Ａは、変換部１６２１Ａ及び摩擦モデル記憶部１６２２Ａを備える。
補償部１６３は、摩擦補償フィルタ記憶部１６３１を備える。
なお、制御装置１０と同様の機能を有する機能部には、同じ符号を用いて説明を省略する。
【０１０２】
変換部１６２１Ａは、モータ２１（図１）に取り付けられているエンコーダ（不図示）が出力するエンコード値（観測値）を取得する。取得するエンコード値は、制御部１０１の制御によって回転角度が変化する制御対象機械２のモータ２１（図１）の回転角度であるモータ角度である。変換部１６２１Ａは、例えば、このモータ角度を、モータから負荷への伝達特性を通過させて負荷速度を推定する。そして、変換部１６２１Ａは、例えば、この負荷速度値を参照して、摩擦モデルから現在作用している摩擦力を推定する。なお、変換部１６２１Ａは、例えば、モータ角度から負荷の速度の伝達関数に対してノッチフィルタをかけて設計する。
【０１０３】
摩擦モデル記憶部１６２２Ａは、例えばＬｕＧｒｅモデルやＧＭＳモデルなど精緻にモデル化された摩擦モデルを記憶する。なお、ＬｕＧｒｅモデルは、Ｄａｈｌの摩擦モデルを拡張した摩擦モデルである。また、ＧＭＳモデルは、Ｎ個の特性の異なるブロックとばねが並列に接続されている摩擦モデルである。
【０１０４】
摩擦演算部１６２Ａは、変換部１６２１Ａが変換した速度を用いて、摩擦モデル記憶部１６２２が記憶する摩擦モデルを参照して、速度に対応する摩擦量を求めることで摩擦推定値（補正指令値）を求める。
【０１０５】
以下、補償部１６３及び補正部１６４の処理は、制御装置１０と同様である。
【０１０６】
制御対象機械２は、負荷にセンサ（エンコーダ）のないセミクローズドの制御となっていることが多い。このような場合は、負荷にエンコーダを取り付ける構成を実現するにはコストがかかる。一方、制御対象機械２のモータ２１（図１）がエンコーダを備えている場合が少なくない。このような構成では、第１実施形態の構成より、本実施形態の構成の方が実現しやすく、エンコーダの追加が不要であるのでコストアップがない。
そして、本実施形態の構成で得られる結果は、第１実施形態の構成と同等である。
【０１０７】
以上のように、本実施形態では、モータ２１（図１）のエンコーダの出力値に基づいて、摩擦の影響をキャンセルするようにした。
これにより、本実施形態では、第１実施形態と同等の効果を得ることができる。
【０１０８】
＜第３実施形態＞
第１実施形態の制御装置１０、または第２実施形態の制御装置１０Ａは、外乱オブザーバ部を備えていてもよい。
【０１０９】
図１１は、本実施形態に係る制御装置１０Ｂの機能構成を示すブロック図である。図１１は、第２実施形態の制御装置１０Ａに本実施形態を適用した例である。制御装置１０Ａと同様の機能を有する機能部には、同じ符号を用いて説明を省略する。
図１１に示すように、制御装置１０Ｂは、制御部１０１Ｂ、摩擦補償部１６Ａ、及び第１の外乱オブザーバ部１７を備える。
制御部１０１Ｂは、位置比例制御部１１（指令値取得部、観測値取得部）、速度比例積分制御部１２、演算部１３Ｂ、電流制御部１４、及び擬似微分部１５（観測値取得部）を備える。
第１の外乱オブザーバ部１７は、モデル記憶部１７１を備える。
【０１１０】
モデル記憶部１７１は、例えば図９に示した制御対象機械２の物理モデルと、制御対象機械２の物理モデルの逆モデルとを記憶する。なお、モデル記憶部１７１は、図９に示した制御対象機械２の物理モデルを簡略化した物理モデルと、制御対象機械２の物理モデルを簡略化の逆モデルとを記憶する。制御対象機械２の物理モデルを簡略化した物理モデルとは、例えばモータ２１（図１）、ギア２２（図１）、テーブル２３（図１）のうちの２つを含むモデルである。
【０１１１】
第１の外乱オブザーバ部１７は、速度比例積分制御部１２が出力するトルク指令値τ＊（制御信号）と、擬似微分部１５が出力するモータ速度観測値ωＭとを取得する。第１の外乱オブザーバ部１７は、モデル記憶部１７１が記憶する制御対象機械２の物理モデルにトルク指令値τ＊を入力して速度を求める。第１の外乱オブザーバ部１７は、求めた速度と、モータ速度観測値ωＭとの速度差を求める。第１の外乱オブザーバ部１７は、モデル記憶部１７１が記憶する制御対象機械２の物理モデルの逆モデルに求めた速度差を入力して、補正値εを求める。第１の外乱オブザーバ部１７は、補正値εを演算部１３Ｂに出力する。
【０１１２】
演算部１３Ｂは、速度比例積分制御部１２が出力するトルク指令値τ＊に、摩擦補償部１６の補正部１６４が出力する補正トルク指令値Δτ＊と、第１の外乱オブザーバ部１７が出力する補正値εとを加算する。演算部１３Ｂは、加算後のトルク指令値τ＊を電流制御部１４に出力する。換言すると、この補正値εは、指令値と観測値との差である応答差を打ち消すトルク指令である。
【０１１３】
摩擦モデルを精緻にモデル化することで、従来よりも精度の高い摩擦補償が可能になる。しかしながら、ロバスト性が低いことと、非線形性の小さい範囲で適用すると精度悪化を招く場合がある。
このため、本実施形態では、第１の外乱オブザーバ部１７を更に備えるようにした。
【０１１４】
これにより、本実施形態では、第１の外乱オブザーバ部１７が求めた補正値εによって非線形成分を補償することができる。なお、外乱オブザーバで発生する遅れ（信号を受けてから補償することによる無駄時間）に対しては、先行してフィードフォワードが指令を発生することで対処することができる。このように、本実施形態では両者を組み合わせた相乗効果によって、スティックスリップなどの非線形特性を補償できる。
なお、第１実施形態で説明した制御装置１０が第１の外乱オブザーバ部１７を更に備えた場合であっても、同様の効果を得ることができる。
【０１１５】
＜第４実施形態＞
第３実施形態では、第１の外乱オブザーバ部１７（図１１）が生成した補正値によって、トルク指令値を補正する例を説明した。本実施形態では、外乱オブザーバ部が生成した補正値εを元に、フィードフォワード補正量を逐次更新する例を説明する。本実施形態においても、第１実施例の制御装置１０、または第２実施形態の制御装置１０Ａに適用することができる。
【０１１６】
図１２は、本実施形態に係る制御装置１０Ｃの機能構成を示すブロック図である。図１２は、第２実施形態の制御装置１０Ａに本実施形態を適用した例である。制御装置１０Ａと同様の機能を有する機能部には、同じ符号を用いて説明を省略する。
図１２に示すように、制御装置１０Ｃは、制御部１０１、摩擦補償部１６Ｃ、及び第２の外乱オブザーバ部１７Ｃ（または第３の外乱オブザーバ部１７Ｄ）を備える。第２の外乱オブザーバ部１７Ｃ（または第３の外乱オブザーバ部１７Ｄ）は、モデル記憶部１７１を備える。
制御部１０１は、位置比例制御部１１（指令値取得部、観測値取得部）、速度比例積分制御部１２、演算部１３、電流制御部１４、及び擬似微分部１５（観測値取得部）を備える。
摩擦補償部１６Ｃは、差分演算部１６１（指令値取得部）、摩擦演算部１６２Ｃ（観測値取得部）、補償部１６３Ｃ、及び補正部１６４を備える。
摩擦演算部１６２Ｃは、変換部１６２１及び摩擦モデル記憶部１６２２を備える。
補償部１６３Ｃは、摩擦補償フィルタ記憶部１６３１を備える。
【０１１７】
第２の外乱オブザーバ部１７Ｃは、速度比例積分制御部１２が出力するトルク指令値τ＊と、擬似微分部１５が出力するモータ速度観測値ωＭとを取得する。第２の外乱オブザーバ部１７Ｃは、モデル記憶部１７１が記憶する制御対象機械２の物理モデルにトルク指令値τ＊を入力して速度を求める。第２の外乱オブザーバ部１７Ｃは、求めた速度と、モータ速度観測値ωＭとの速度差を求める。第２の外乱オブザーバ部１７Ｃは、モデル記憶部１７１が記憶する制御対象機械２の物理モデルの逆モデルに求めた速度差を入力して、補正値εを求める。第２の外乱オブザーバ部１７Ｃは、補正値εを摩擦演算部１６２Ｃに出力する。なお、第３の外乱オブザーバ部１７Ｄについては後述する。
【０１１８】
摩擦演算部１６２Ｃは、変換部１６２１が変換した速度を用いて、摩擦モデル記憶部１６２２が記憶する摩擦モデルを参照して、速度に対応する摩擦量を求めることで、摩擦推定値（補正指令値）を求める。摩擦演算部１６２Ｃは、第２の外乱オブザーバ部１７Ｃが出力する補正値εを用いて、フィードフォワード補正量Ｋを求める。例えば、摩擦演算部１６２Ｃは、Ｋ＝（１＋ε／Ｅ）（ただしＥは定数）によってフィードフォワード補正量Ｋを求める。フィードフォワード補正量Ｋは、例えばゲインである。摩擦演算部１６２Ｃは、求めた摩擦推定値にフィードフォワード補正量Ｋ（例えば１、１．１、１．２、・・・）を乗じて摩擦推定値（補正指令値）を逐次更新する。
例えば、摩擦演算部１６２Ｃは、補正値εが大きいほど摩擦外乱が大きく十分に補償されていないとみなしてＫを大きくする。摩擦演算部１６２Ｃは、逆に補正値εが小さい場合、十分に摩擦が補償されているとみなしてＫをデフォルトである１に近づける。
【０１１９】
以上のように、本実施形態では、第２の外乱オブザーバ部１７Ｃの補正値εを元に、フィードフォワード補正量Ｋを逐次更新するようにした。
第２の外乱オブザーバ部１７Ｃによる補正値εは、外乱の推定誤差を示している。推定誤差が大きいということは摩擦が大きいということなので、本実施形態では、これを補正すべくフィードフォワード補正量を大きくする。オブザーバでも補正可能だが、制御対象機械２の共振など機械特性によりオブザーバ帯域を上げられない場合には補正が遅れる。このような場合は、フィードフォワードで補正したほうが遅れを少なくできるので、即時非線形特性を補償できる。
【０１２０】
なお、上述した例では、摩擦演算部１６２Ｃのフィードフォワード補正量Ｋを逐次更新する例を説明したが、これに限らない。例えば、摩擦演算部１６２Ｃは、補正値εに基づいて、図９を用いて説明した物理モデルのパラメータを可変するようにしてもよい、可変するパラメータは、温度等によって変化しやすいパラメータであってもよい。
【０１２１】
さらに、補償部１６３Ｃのフィードフォワード補正量Ｋ’を逐次更新するようにしてもよい。この場合、第３の外乱オブザーバ部１７Ｄは、補正値εを摩擦演算部１６２Ｃに出力せず補償部１６３Ｃに出力するようにしてもよい。
【０１２２】
補償部１６３Ｃは、摩擦演算部１６２Ｃが出力する摩擦推定値（補正指令値）に対して、摩擦補償フィルタ記憶部１６３１が記憶する摩擦補償フィルタを用いて、多慣性系の位相遅れや位相進みを補償する摩擦補償値（補正指令値）を求める。補償部１６３Ｃは、第３の外乱オブザーバ部１７Ｄが出力する補正値εを用いて、フィードフォワード補正量Ｋ’を求めるようにしてもよい。例えば、補償部１６３Ｃは、Ｋ’＝（１＋ε／Ｅ’）（ただしＥ’は定数）によってフィードフォワード補正量Ｋ’を求めるようにしてもよい。補償部１６３Ｃは、求めた摩擦補償値にフィードフォワード補正量Ｋ’（例えば１、１．１、１．２、・・・）を乗じて摩擦補償値（補正指令値）を逐次更新するようにしてもよい。
【０１２３】
補償部１６３Ｃは、補正値εに基づいて、図９を用いて説明した物理モデルのパラメータを可変するようにしてもよい、可変するパラメータは、温度等によって変化しやすいパラメータであってもよい。
【０１２４】
なお、上述した各実施形態では、制御対象機械２が、図１に示したようなモータ２１とギア２２とテーブル２３を備える機械であり、ステージの位置決め制御の対象例を示したが、これに限らない。制御対象機械２が、例えば６軸のマニピュレータを有するロボットであってもよく、制御装置１０（または１０Ａ、１０Ｂ、１０Ｃ）は、各関節の角度や各速度の制御を行うようにしてもよい。また、制御対象機械２が、スティックスリップなど非線形要素が強く位置決め制御偏差が発生する装置等であってもよい。
【０１２５】
なお、上述した各実施形態では、制御装置１０（または１０Ａ、１０Ｂ、１０Ｃ）が補償部１６３（または１６３Ｃ）と補正部１６４を備える例を説明したが、これに限らない。制御装置１０（または１０Ａ、１０Ｂ、１０Ｃ）は、補正部１６４を備えていなくてもよい。この場合であっても、制御ループにおける位相遅れや位相進みの補償を行うことができる。
また、制御装置１０（または１０Ａ、１０Ｂ、１０Ｃ）は、補償部１６３（または１６３Ｃ）を備えていなくてもよい。この場合であっても、角度指令差分値ΔθＭ＊に応じて、摩擦補償値の出力を補正部１６４が補正することで、スティックスリップ現象の振動を助長しないようにすることができる。
【０１２６】
なお、本発明における制御装置１０（または１０Ａ、１０Ｂ、１０Ｃの機能の全てまたは一部を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより制御装置１０（または１０Ａ、１０Ｂ、１０Ｃ）が行う処理の全てまたは一部を行ってもよい。なお、ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものとする。また、「コンピュータシステム」は、ホームページ提供環境（あるいは表示環境）を備えたＷＷＷシステムも含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ（ＲＡＭ）のように、一定時間プログラムを保持しているものも含むものとする。
【０１２７】
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。また、上記プログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であってもよい。
【０１２８】
以上、本発明を実施するための形態について実施形態を用いて説明したが、本発明はこうした実施形態に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形および置換を加えることができる。
【符号の説明】
【０１２９】
１…工作機械、
１０，１０Ａ，１０Ｂ，１０Ｃ…制御装置、
２…制御対象機械、
１０１，１０１Ｂ…制御部、
１１…位置比例制御部（指令値取得部、観測値取得部）、
１２…速度比例積分制御部、
１３，１３Ｂ…演算部、
１４…電流制御部、
１５…擬似微分部（観測値取得部）、
１６，１６Ａ，１６Ｃ…摩擦補償部、
１６１…差分演算部（指令値取得部）、
１６２，１６２Ａ，１６２Ｃ…摩擦演算部（観測値取得部）、
１６３，１６３Ｃ…補償部、
１６４…補正部、
１６２１，１６２１Ａ…変換部、
１６２２，１６２２Ａ…摩擦モデル記憶部、
１６３１…摩擦補償フィルタ記憶部、
１７…第１の外乱オブザーバ部、
１７Ｃ…第２の外乱オブザーバ部、
１７Ｄ…第３の外乱オブザーバ部、
１７１…モデル記憶部、
２１…モータ、
２２…ギア、
２３…テーブル、
θＭ＊…モータ位置指令値、
θＭ…モータ位置観測値、
ωＭ＊…モータ速度指令値、
ωＭ…モータ速度観測値、
τ＊…トルク指令値、
Δτ＊…補正トルク指令値、
τ…トルク、
ΔθＭ＊…角度指令差分値、
Ｐ（ｓ）…閉ループの伝達関数、
Ｆ，ＦＣ…線形係数、
ＪＭ…モータの慣性モーメント、
ＤＭ…モータの粘性係数、
Ｊｄ…ギアの慣性モーメント、
Ｄｄ…ギアの粘性係数、
ＪＬ…テーブルの慣性モーメント、
ＤＬ…テーブルの粘性係数、
Ｋｇ…モータとギアとを連結する連結部材の剛性係数、
ＫＲ…ギアとテーブルとを連結する連結部材の剛性係数、
Ｇ…関数（摩擦補償フィルタ）、
ωＬ…テーブル速度観測値、
ＴｆＬ…摩擦抵抗、
Ｋ，Ｋ’…フィードフォワード補正量、
ε…補正値
【図１】
2019219762.tif 000019
【図２】
2019219762.tif 000020
【図３】
2019219762.tif 000021
【図４】
2019219762.tif 000022
【図５】
2019219762.tif 000023
【図６】
2019219762.tif 000024
【図７】
2019219762.tif 000025
【図８】
2019219762.tif 000026
【図９】
2019219762.tif 000027
【図１０】
2019219762.tif 000028
【図１１】
2019219762.tif 000029
【図１２】
2019219762.tif 000030