特開2019-219762(P2019-219762A)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 三菱重工業株式会社の特許一覧

<>
  • 特開2019219762-制御装置、制御方法及びプログラム 図000019
  • 特開2019219762-制御装置、制御方法及びプログラム 図000020
  • 特開2019219762-制御装置、制御方法及びプログラム 図000021
  • 特開2019219762-制御装置、制御方法及びプログラム 図000022
  • 特開2019219762-制御装置、制御方法及びプログラム 図000023
  • 特開2019219762-制御装置、制御方法及びプログラム 図000024
  • 特開2019219762-制御装置、制御方法及びプログラム 図000025
  • 特開2019219762-制御装置、制御方法及びプログラム 図000026
  • 特開2019219762-制御装置、制御方法及びプログラム 図000027
  • 特開2019219762-制御装置、制御方法及びプログラム 図000028
  • 特開2019219762-制御装置、制御方法及びプログラム 図000029
  • 特開2019219762-制御装置、制御方法及びプログラム 図000030
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】特開2019-219762(P2019-219762A)
(43)【公開日】2019年12月26日
(54)【発明の名称】制御装置、制御方法及びプログラム
(51)【国際特許分類】
   G05D 3/12 20060101AFI20191129BHJP
   G05B 19/404 20060101ALI20191129BHJP
   H02P 29/00 20160101ALI20191129BHJP
   H02P 21/13 20060101ALI20191129BHJP
【FI】
   G05D3/12 305Z
   G05B19/404 J
   H02P29/00
   H02P21/13
【審査請求】未請求
【請求項の数】12
【出願形態】OL
【全頁数】26
(21)【出願番号】特願2018-114940(P2018-114940)
(22)【出願日】2018年6月15日
(71)【出願人】
【識別番号】000006208
【氏名又は名称】三菱重工業株式会社
(74)【代理人】
【識別番号】100149548
【弁理士】
【氏名又は名称】松沼 泰史
(74)【代理人】
【識別番号】100162868
【弁理士】
【氏名又は名称】伊藤 英輔
(74)【代理人】
【識別番号】100161702
【弁理士】
【氏名又は名称】橋本 宏之
(74)【代理人】
【識別番号】100189348
【弁理士】
【氏名又は名称】古都 智
(74)【代理人】
【識別番号】100196689
【弁理士】
【氏名又は名称】鎌田 康一郎
(74)【代理人】
【識別番号】100210572
【弁理士】
【氏名又は名称】長谷川 太一
(72)【発明者】
【氏名】▲徳▼山 享大
(72)【発明者】
【氏名】村田 直史
(72)【発明者】
【氏名】望月 慶佑
(72)【発明者】
【氏名】粟屋 伊智郎
【テーマコード(参考)】
3C269
5H303
5H501
5H505
【Fターム(参考)】
3C269AB01
3C269BB03
3C269GG01
3C269GG06
3C269MN04
5H303AA01
5H303BB06
5H303CC07
5H303DD01
5H303FF03
5H303HH01
5H303HH05
5H303JJ02
5H303KK02
5H303KK18
5H303KK27
5H303LL03
5H303MM05
5H501AA22
5H501BB11
5H501DD01
5H501EE01
5H501FF07
5H501FF10
5H501GG01
5H501GG03
5H501JJ03
5H501JJ17
5H501JJ22
5H501JJ23
5H501JJ24
5H501LL07
5H501LL35
5H505AA18
5H505BB04
5H505FF07
5H505FF10
5H505GG01
5H505GG02
5H505JJ03
5H505JJ17
5H505JJ22
5H505JJ23
5H505JJ24
5H505LL07
5H505LL37
5H505LL41
(57)【要約】
【課題】摩擦力を適切に補正することで補正値の振動を防ぐことができる制御装置、制御方法及びプログラムを提供することを目的とする。
【解決手段】制御装置は、制御対象機械に対する指令値を取得する指令値取得部と、制御対象機械についての観測値を取得する観測値取得部と、指令値と観測値の差を解消するように制御対象機械を制御する制御部と、観測値と制御対象機械に適用される摩擦モデルに基づいて制御対象機械に作用する摩擦力を求める摩擦演算部と、摩擦力に対して、制御ループにおける制御対象機械との位相のずれの補償を行って指令値の補正を行う補償部と、を備える。
【選択図】図2
【特許請求の範囲】
【請求項1】
制御対象機械に対する指令値を取得する指令値取得部と、
前記制御対象機械についての観測値を取得する観測値取得部と、
前記指令値と前記観測値の差を解消するように前記制御対象機械を制御する制御部と、
前記観測値と前記制御対象機械に適用される摩擦モデルに基づいて前記制御対象機械に作用する摩擦力を求める摩擦演算部と、
前記摩擦力に対して、制御ループにおける前記制御対象機械との位相のずれの補償を行って前記指令値の補正を行う補償部と、
を備える制御装置。
【請求項2】
前記指令値が示す前記制御対象機械の移動方向にさらに基づいて、前記指令値を補正する補正部、を更に備える、請求項1に記載の制御装置。
【請求項3】
前記観測値は、前記制御部の制御によって位置が変化する前記制御対象機械の負荷の位置パラメータあり、
前記摩擦演算部は、前記負荷の位置パラメータを微分処理して前記制御対象機械における負荷の移動速度に変換する、請求項1または請求項2に記載の制御装置。
【請求項4】
前記観測値は、前記制御部の制御によって回転角度が変化する前記制御対象機械のモータの回転角度であるモータ角度であり、
前記摩擦演算部は、前記制御対象機械の伝達関数及びノッチフィルタを用いて、前記モータ角度から前記制御部の制御によって位置が変化する前記制御対象機械の負荷の移動速度に変換する、請求項1または請求項2に記載の制御装置。
【請求項5】
前記指令値と前記観測値の偏差と前記制御対象機械に適用される物理モデルに基づいて前記制御対象機械の速度を求め、求めた速度と前記観測値に基づく値との偏差にさらに基づいて前記指令値を補正する第1の外乱オブザーバ部、を更に備える、請求項1から請求項4のいずれか1項に記載の制御装置。
【請求項6】
前記指令値と前記観測値の偏差と前記制御対象機械に応じた物理モデルに基づいて前記制御対象機械の速度を求め、求めた前記速度と前記観測値に基づく値との偏差に基づいて補正値を生成し、生成した前記補正値を前記摩擦演算部に出力する第2の外乱オブザーバ部、を更に備え、
前記摩擦演算部は、前記第2の外乱オブザーバ部が出力した前記補正値に基づいて、求めた前記摩擦力を更新する、請求項1から請求項4のいずれか1項に記載の制御装置。
【請求項7】
前記指令値と前記観測値の偏差と前記制御対象機械に応じた物理モデルに基づいて前記制御対象機械の速度を求め、求めた速度と前記観測値に基づく値との偏差に基づいて補正値を生成し、生成した前記補正値を前記補償部に出力する第3の外乱オブザーバ部、を更に備え、
前記補償部は、前記第3の外乱オブザーバ部が出力した前記補正値に基づいて、前記指令値の補正を行う、請求項1から請求項4のいずれか1項に記載の制御装置。
【請求項8】
制御対象機械に対する指令値を取得する指令値取得部と、
前記制御対象機械についての観測値を取得する観測値取得部と、
前記指令値と前記観測値の差を解消するように前記制御対象機械を制御する制御部と、
前記観測値と前記制御対象機械に応じた摩擦モデルに基づいて前記制御対象機械に作用する摩擦力を求める摩擦演算部と、
前記指令値が示す前記制御対象機械の移動方向に基づいて、前記摩擦力に基づく値を補正して前記指令値の補正を行う補正部と、
を備える制御装置。
【請求項9】
指令値取得部が、制御対象機械に対する指令値を取得するステップと、
観測値取得部が、前記制御対象機械についての観測値を取得する観測値取得部と、
制御部が、前記指令値と前記観測値の差を解消するように前記制御対象機械を制御するステップと、
摩擦演算部が、前記観測値と前記制御対象機械に適用される摩擦モデルに基づいて前記制御対象機械に作用する摩擦力を求めるステップと、
補償部が、前記摩擦力に対して、制御ループにおける前記制御対象機械との位相のずれの補償を行って前記指令値の補正を行うステップと、
を含む制御方法。
【請求項10】
指令値取得部が、制御対象機械に対する指令値を取得するステップと、
観測値取得部が、前記制御対象機械についての観測値を取得するステップと、
制御部が、前記指令値と前記観測値の差を解消するように前記制御対象機械を制御すると、
摩擦演算部が、前記観測値と前記制御対象機械に応じた摩擦モデルに基づいて前記制御対象機械に作用する摩擦力を求めるステップと、
補正部が、前記指令値が示す前記制御対象機械の移動方向に基づいて、前記摩擦力に基づく値を補正して前記指令値の補正を行うステップと、
を含む制御方法。
【請求項11】
制御対象機械を制御する制御装置のコンピュータに、
前記制御対象機械に対する指令値を取得するステップと、
前記制御対象機械についての観測値を取得する観測値取得部と、
前記指令値と前記観測値の差を解消するように前記制御対象機械を制御するステップと、
前記観測値と前記制御対象機械に適用される摩擦モデルに基づいて前記制御対象機械に作用する摩擦力を求めるステップと、
前記摩擦力に対して、制御ループにおける前記制御対象機械との位相のずれの補償を行って前記指令値の補正を行うステップと、
を実行させるプログラム。
【請求項12】
制御対象機械を制御する制御装置のコンピュータに、
前記制御対象機械に対する指令値を取得するステップと、
前記制御対象機械についての観測値を取得するステップと、
前記指令値と前記観測値の差を解消するように前記制御対象機械を制御すると、
前記観測値と前記制御対象機械に応じた摩擦モデルに基づいて前記制御対象機械に作用する摩擦力を求めるステップと、
前記指令値が示す前記制御対象機械の移動方向に基づいて、前記摩擦力に基づく値を補正して前記指令値の補正を行うステップと、
を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、制御装置、制御方法及びプログラムに関する。
【背景技術】
【0002】
機械を駆動するアクチュエータでは、主に摩擦要素の非線形性に起因する位置決め精度の低下が生じ、品質の低下が課題となっている。すべり面の摩擦変動によって生じるスティックスリップ現象は、特に低速動作時において静摩擦による停止と移動を繰り返すことで生じる振動現象であり、階段状の位置決め応答を発生させ位置決め精度を悪化させる。
【0003】
このような摩擦の影響を低減する手法として特許文献1には、制御装置が、機械装置に対するトルク指令を算出するトルク指令算出手段と、前記機械装置に生じる摩擦力の推定値を算出する摩擦推定手段と、前記摩擦推定手段によって算出された推定値に所定のゲインを乗算して補正値を算出する調整手段と、前記トルク指令算出手段によって算出された前記トルク指令を、前記調整手段によって算出された前記補正値で補正する補正手段と、を備え、前記ゲインは、前記機械装置に対する位置指令から位置偏差までの伝達関数のゲイン特性に基づいて決定される機械装置の制御方法が開示されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特許第6177705号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
摩擦力は、低速度にて静止摩擦の影響を受け大きくなる上、移動方向が反転すると摩擦力も急転する。このため、推定誤差により補正値が振動的になるという問題がある。高精度な摩擦モデルを利用するに当たり、この問題が顕著になる。
【0006】
本発明は、上記の問題点に鑑みてなされたものであって、摩擦力を適切に補正することで補正値の振動を防ぐことができる制御装置、制御方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0007】
本発明の第1の態様によれば、制御装置は、制御対象機械に対する指令値を取得する指令値取得部と、前記制御対象機械についての観測値を取得する観測値取得部と、前記指令値と前記観測値の差を解消するように前記制御対象機械を制御する制御部と、前記観測値と前記制御対象機械に適用される摩擦モデルに基づいて前記制御対象機械に作用する摩擦力を求める摩擦演算部と、前記摩擦力に対して、制御ループにおける前記制御対象機械との位相のずれの補償を行って前記指令値の補正を行う補償部と、を備える。
【0008】
また、本発明の第2の態様によれば、前記指令値が示す前記制御対象機械の移動方向にさらに基づいて、前記指令値を補正する補正部、を更に備える。
【0009】
また、本発明の第3の態様によれば、前記観測値は、前記制御部の制御によって位置が変化する前記制御対象機械の負荷の位置パラメータあり、前記摩擦演算部は、前記負荷の位置パラメータを微分処理して前記制御対象機械における負荷の移動速度に変換する。
【0010】
また、本発明の第4の態様によれば、前記観測値は、前記制御部の制御によって回転角度が変化する前記制御対象機械のモータの回転角度であるモータ角度であり、前記摩擦演算部は、前記制御対象機械の伝達関数及びノッチフィルタを用いて、前記モータ角度から前記制御部の制御によって位置が変化する前記制御対象機械の負荷の移動速度に変換する。
【0011】
また、本発明の第5の態様によれば、前記指令値と前記観測値の偏差と前記制御対象機械に適用される物理モデルに基づいて前記制御対象機械の速度を求め、求めた速度と前記観測値に基づく値との偏差にさらに基づいて前記指令値を補正する第1の外乱オブザーバ部、を更に備える。
【0012】
また、本発明の第6の態様によれば、前記指令値と前記観測値の偏差と前記制御対象機械に応じた物理モデルに基づいて前記制御対象機械の速度を求め、求めた前記速度と前記観測値に基づく値との偏差に基づいて補正値を生成し、生成した前記補正値を前記摩擦演算部に出力する第2の外乱オブザーバ部、を更に備え、前記摩擦演算部は、前記第2の外乱オブザーバ部が出力した前記補正値に基づいて、求めた前記摩擦力を更新する。
【0013】
また、本発明の第7の態様によれば、前記指令値と前記観測値の偏差と前記制御対象機械に応じた物理モデルに基づいて前記制御対象機械の速度を求め、求めた速度と前記観測値に基づく値との偏差に基づいて補正値を生成し、生成した前記補正値を前記補償部に出力する第3の外乱オブザーバ部、を更に備え、前記補償部は、前記第3の外乱オブザーバ部が出力した前記補正値に基づいて、前記指令値の補正を行う。
【0014】
また、本発明の第8の態様によれば、制御装置は、制御対象機械に対する指令値を取得する指令値取得部と、前記制御対象機械についての観測値を取得する観測値取得部と、前記指令値と前記観測値の差を解消するように前記制御対象機械を制御する制御部と、前記観測値と前記制御対象機械に応じた摩擦モデルに基づいて前記制御対象機械に作用する摩擦力を求める摩擦演算部と、前記指令値が示す前記制御対象機械の移動方向に基づいて、前記摩擦力に基づく値を補正して前記指令値の補正を行う補正部と、を備える。
【0015】
また、本発明の第9の態様によれば、制御方法は、指令値取得部が、制御対象機械に対する指令値を取得するステップと、観測値取得部が、前記制御対象機械についての観測値を取得する観測値取得部と、制御部が、前記指令値と前記観測値の差を解消するように前記制御対象機械を制御するステップと、摩擦演算部が、前記観測値と前記制御対象機械に適用される摩擦モデルに基づいて前記制御対象機械に作用する摩擦力を求めるステップと、補償部が、前記摩擦力に対して、制御ループにおける前記制御対象機械との位相のずれの補償を行って前記指令値の補正を行うステップと、を含む。
【0016】
また、本発明の第10の態様によれば、制御方法は、指令値取得部が、制御対象機械に対する指令値を取得するステップと、観測値取得部が、前記制御対象機械についての観測値を取得するステップと、制御部が、前記指令値と前記観測値の差を解消するように前記制御対象機械を制御すると、摩擦演算部が、前記観測値と前記制御対象機械に応じた摩擦モデルに基づいて前記制御対象機械に作用する摩擦力を求めるステップと、補正部が、前記指令値が示す前記制御対象機械の移動方向に基づいて、前記摩擦力に基づく値を補正して前記指令値の補正を行うステップと、を含む。
【0017】
また、本発明の第11の態様によれば、プログラムは、制御対象機械を制御する制御装置のコンピュータに、前記制御対象機械に対する指令値を取得するステップと、前記制御対象機械についての観測値を取得する観測値取得部と、前記指令値と前記観測値の差を解消するように前記制御対象機械を制御するステップと、前記観測値と前記制御対象機械に適用される摩擦モデルに基づいて前記制御対象機械に作用する摩擦力を求めるステップと、前記摩擦力に対して、制御ループにおける前記制御対象機械との位相のずれの補償を行って前記指令値の補正を行うステップと、を実行させる。
【0018】
また、本発明の第11の態様によれば、プログラムは、制御対象機械を制御する制御装置のコンピュータに、前記制御対象機械に対する指令値を取得するステップと、前記制御対象機械についての観測値を取得するステップと、前記指令値と前記観測値の差を解消するように前記制御対象機械を制御すると、前記観測値と前記制御対象機械に応じた摩擦モデルに基づいて前記制御対象機械に作用する摩擦力を求めるステップと、前記指令値が示す前記制御対象機械の移動方向に基づいて、前記摩擦力に基づく値を補正して前記指令値の補正を行うステップと、を実行させる。
【発明の効果】
【0019】
上述の発明の各態様によれば、摩擦力を適切に補正することで補正値の振動を防ぐことができる。
【図面の簡単な説明】
【0020】
図1】第1実施形態に係る制御装置を有する工作機械の1軸の駆動構成要素を示す図である。
図2】第1実施形態に係る制御装置の機能構成を示すブロック図である。
図3】摩擦モデルの例を示す図である。
図4】第1実施形態に係る補正部が行う処理手順例を示すフローチャートである。
図5】第1実施形態に係る制御装置が制御対象機械を制御した結果を解析した例を示す図である。
図6】比較例における工作機械の構成例を示すブロック図である。
図7】比較例における制御装置が制御対象機械を制御した結果を解析した例を示す図である。
図8】スティックスリップ現象例を示す図である。
図9】第1実施形態に係る制御対象機械と摩擦補償部とを物理モデルとして表した図である。
図10】第2実施形態に係る制御装置の機能構成を示すブロック図である。
図11】第3実施形態に係る制御装置の機能構成を示すブロック図である。
図12】第4実施形態に係る制御装置の機能構成を示すブロック図である。
【発明を実施するための形態】
【0021】
以下、本発明の実施の形態について図面を参照しながら説明する。なお、以下の説明に用いる図面では、各部材を認識可能な大きさとするため、各部材の縮尺を適宜変更している。
【0022】
<第1実施形態>
[工作機械の1軸の駆動構成例]
まず、工作機械の1軸の駆動構成例を説明する。
図1は、本実施形態に係る制御装置10を有する工作機械1の1軸の駆動構成要素を示す図である。図1に示すように、工作機械1は、制御装置10と制御対象機械2とを含んで構成される。
【0023】
制御装置10は、制御対象機械2についての観測値が、上位装置(図示せず)から入力される指令値に一致するように、当該制御対象機械2を制御する。上位装置は、例えばコンピュータ等である。具体的には、制御装置10は、制御対象機械2(モータ21)についての観測値であるモータ位置観測値θと、上位装置から入力されるモータ位置指令値θ*との偏差に応じたトルクτを、制御対象機械2に対して出力する。これにより、制御装置10は、例えば制御対象機械2のテーブル23の位置決め制御を行う。
【0024】
制御対象機械2は、工作機械1の機械的可動機構であり、例えば、モータ21と、ギア22と、テーブル23とを有してなる。図1に示すように、モータ21とギア22、及び、ギア22とテーブル23は、それぞれ、ボールねじなどの連結部材で連結され、モータ21が発生させたトルクが、負荷であるテーブル23まで伝達する機構を構成する。モータ21は、例えばサーボモータである。制御対象機械2には、エンコーダが取り付けられている。制御対象機械2のエンコーダは、負荷角度の観測値を制御装置10に出力する。
【0025】
[制御装置10の機能構成例]
次に、制御装置10の機能構成例を説明する。
図2は、本実施形態に係る制御装置10の機能構成を示すブロック図である。
図2に示すように、制御装置10は、制御部101、及び摩擦補償部16を備える。制御装置10は、制御対象機械2を制御する。
制御部101は、位置比例制御部11(指令値取得部、観測値取得部)、速度比例積分制御部12、演算部13、電流制御部14、及び擬似微分部15(観測値取得部)を備える。
また、摩擦補償部16は、差分演算部161(指令値取得部)、摩擦演算部162(観測値取得部)、補償部163、及び補正部164を備える。
摩擦演算部162は、変換部1621及び摩擦モデル記憶部1622を備える。
補償部163は、摩擦補償フィルタ記憶部1631を備える。
【0026】
なお、制御対象機械2は、図1を用いて説明したように、例えばモータ21と、ギア22と、テーブル23と備える。また、制御対象機械2の負荷であるテーブル23には、エンコーダ(不図示)が取り付けられている。
【0027】
位置比例制御部11は、上位装置から入力されたモータ位置指令値θ*と、モータ21(図1)から入力されたモータ位置観測値θとの偏差(θ*−θ)に比例する大きさのモータ速度指令値ω*(制御信号)を生成する。位置比例制御部11は、生成したモータ速度指令値ω*を、速度比例積分制御部12と差分演算部161に出力する。
【0028】
速度比例積分制御部12は、位置比例制御部11が出力するモータ速度指令値ω*と、擬似微分部15が出力するモータ速度観測値ωとの偏差(ω*−ω)及びその時間積分に比例した大きさのトルク指令値τ*(制御信号)を生成する。速度比例積分制御部12は、生成したトルク指令値τ*を演算部13に出力する。
【0029】
演算部13は、速度比例積分制御部12が出力するトルク指令値τ*(制御信号)に、摩擦補償部16の補正部164が出力する補正トルク指令値Δτ*(補正指令値)を加算する。演算部13は、加算後のトルク指令値τ*を電流制御部14に出力する。
【0030】
電流制御部14は、演算部13が出力するトルク指令値τ*に応じたモータ電流を制御対象機械2に出力する。制御対象機械2のモータ21(図1)は、このモータ電流により、トルク指令値τ*に一致するトルクτを出力する。
【0031】
擬似微分部15は、モータ21(図1)から入力されるモータ位置観測値θに対して擬似微分処理してモータ速度観測値ωを生成する。擬似微分部15は、生成したモータ速度観測値ωを速度比例積分制御部12に出力する。
【0032】
摩擦補償部16は、制御対象機械2のエンコーダが検出したエンコード値(観測値)と、モータ位置指令値θ*と、に基づいて摩擦の影響を補償して補正トルク指令値Δτ*(補正指令値)を生成する。補正トルク指令値Δτ*は、制御ループにおける位相のずれ(位相遅れや位相進み)の補償を行う指令値の補正値である。また、エンコード値(観測値)は、制御部101の制御によって位置が変化する制御対象機械2の負荷の位置パラメータである。
【0033】
差分演算部161は、所定時間毎のモータ位置指令値θ*の差分を角度指令差分値として求める。例えば、差分演算部161は、第1時刻のモータ位置指令値θ*と、第1時刻より所定時間後の第2時刻のモータ位置指令値θ*との角度指令差分値を求める。差分演算部161は、求めた角度指令差分値Δθ*を補正部164に出力する。角度指令差分値Δθ*は、トルク指令における回転方向(正方向への回転、負方向への回転)を示している。
【0034】
摩擦演算部162の変換部1621は、負荷側のエンコーダが出力する負荷角度の測定信号θ(観測値)を例えば微分処理することで負荷の移動速度に変換する。
【0035】
摩擦モデル記憶部1622は、速度に対する摩擦力をモデル化した摩擦モデルを記憶する。なお、摩擦モデル記憶部1622が記憶する摩擦モデルについては、図3を用いて後述する。
【0036】
摩擦演算部162は、変換部1621が変換した速度を用いて、摩擦モデル記憶部1622が記憶する摩擦モデルを参照して、速度に対応する摩擦量を求めることで摩擦推定値(補正指令値)を求める。なお、摩擦モデルが数式で表される場合、摩擦演算部162は、摩擦推定値(補正指令値)を演算によって求めるようにしてもよい。
【0037】
摩擦補償フィルタ記憶部1631は、摩擦の影響をキャンセルするフィルタである摩擦補償フィルタを記憶する。なお、摩擦補償フィルタの求め方の例は、図7を用いて後述する。
【0038】
補償部163は、摩擦演算部162が出力する摩擦推定値に対して、摩擦補償フィルタ記憶部1631が記憶する摩擦補償フィルタを用いて、多慣性系の位相遅れや位相進みを補償する摩擦補償値(摩擦力に基づく値、補正指令値)を求める。
【0039】
補正部164は、差分演算部161が算出する角度指令差分値Δθ*に応じて、補償部163が出力する摩擦補償値を補正する。補正部164は、補正した後の値を補正トルク指令値Δτ*として演算部13に出力する。
【0040】
[摩擦モデル例]
次に、摩擦モデル記憶部1622が記憶する摩擦モデルの一例を説明する。
図3は、摩擦モデルの例を示す図である。図3において、横軸は速度[deg/s]であり、縦軸は摩擦力[Nm]である。
符号g1は、加速時の速度に対する摩擦力の特性である。符号g1の摩擦力は、符号g11に示すように、速度0から速度が増加する方向に変化する。
符号g2は、減速時の速度に対する摩擦力の特性である。符号g2の摩擦力は、符号g12に示すように、速度が約50から速度が減少する方向に変化する。
なお、図3に示した特性はシミュレーション値である。このような摩擦モデルは、例えば、図7を用いて後述する制御対象機械2の物理モデルによって算出する。このため、摩擦モデルは、制御対象機械2に応じて異なる。
【0041】
[補正部の処理例]
次に、補正部164が行う処理例を説明する。
図4は、本実施形態に係る補正部164が行う処理手順例を示すフローチャートである。
【0042】
(ステップS1)補正部164は、差分演算部161が出力する角度指令差分値Δθ*を取得する。続けて、補正部164は、取得した角度指令差分値Δθ*が正であるか、0であるか、負であるかを判別する。これにより、補正部164は、指令値が示す制御対象機械2の移動方向を判別している。補正部164は、角度指令差分値Δθ*が正であると判別した場合(ステップS1;正)、ステップS2の処理に進める。補正部164は、角度指令差分値Δθ*が0であると判別した場合(ステップS1;0)、ステップS3の処理に進める。補正部164は、角度指令差分値Δθ*が負であると判別した場合(ステップS1;負)、ステップS4の処理に進める。
【0043】
(ステップS2)補正部164は、正方向のみに摩擦補償を行う。換言すると、補正部164は、摩擦補償値が正の場合に補正トルク指令値Δτ*として出力し、摩擦補償値が0または負の場合に0を補正トルク指令値Δτ*として出力する。
【0044】
(ステップS3)補正部164は、摩擦補償を行わない。換言すると、補正部164は、0を補正トルク指令値Δτ*として出力する。
【0045】
(ステップS4)補正部164は、負方向のみに摩擦補償を行う。換言すると、補正部164は、摩擦補償値が負の場合に補正トルク指令値Δτ*として出力し、摩擦補償値が0または正の場合に0を補正トルク指令値Δτ*として出力する。
【0046】
補正部164が図4のように処理する意味合いを説明する。
図2に示したように、制御装置10は、制御対象機械2に対してフィードバック制御を行っている。このため、仮にテーブル23(図1)が進みすぎた場合、速度比例積分制御部12が出力するトルク指令値τ*は、進みすぎた分を戻す制御値となる。このように進み過ぎたときに、補正部164によって更に戻すような補正トルク指令値Δτ*を出力してしまうと結果として戻りすぎてしまい、テーブル23のスティックスリップ現象の振動を助長することになりかねない。このため、本実施形態では、角度指令差分値Δθ*に応じて、摩擦補償値の出力を補正することで、スティックスリップ現象の振動を助長しないようにしている。なお、スティックスリップ現象とは、摩擦によって発生する摩擦面の付着や、滑りの繰り返しによって引き起こされる振動現象である。
【0047】
[解析結果例]
次に、制御装置が制御対象機械2を制御した結果を解析した例を説明する。
図5は、本実施形態に係る制御装置10が制御対象機械2を制御した結果を解析した例を示す図である。なお、図5において、時刻1のときに制御を開始している。
【0048】
図5(A)は、時刻に対する角度の変化の解析結果である。図5(A)において、横軸は時刻[s]であり、縦軸は角度[deg]である。
符号g31は、モータ側の角度の変化を示している。符号g32は、負荷側の角度の変化を示している。符号g33は、スティックスリップ現象が発生していないリファレンスの角度の変化を示している。
【0049】
図5(B)は、時刻に対する角度エラーの変化の解析結果である。図5(B)において、横軸は時刻[s]であり、縦軸は角度エラー[deg]である。
符号g34は、モータ側の角度エラーの変化を示している。符号g35は、負荷側の角度エラーの変化を示している。
【0050】
図5(C)は、時刻に対する入力トルクの変化の解析結果である。図5(C)において、横軸は時刻[s]であり、縦軸は入力トルク[Nm]である。
符号g36は、統合トルク(Total Torque)の変化を示している。符号g37は、摩擦補償(Friction Compensation)の変化を示している。
【0051】
本実施形態によれば、図5(B)のように、モータ側と負荷側との角度エラーが、1秒〜2秒の間で収束している。そして、図5(B)のように、2秒以降のモータ側と負荷側との角度エラーの値の変化はほぼ0であり、すなわち振動が抑えられている。この結果、図5(A)のように、スティックスリップ現象を抑えることができている。
また、本実施形態によれば、補償部163が制御ループにおける位相遅れや位相進みの補償を行って前記指令値の補正値である補正指令値を生成しているため、負荷摩擦発生個所に作用するまでに遅れや減衰の影響を低減することができ、摩擦を正しく補償できる。
【0052】
次に、比較例における工作機械900において、制御装置が制御対象機械2を制御した結果を説明する。
まず、比較例における工作機械900の構成例を説明する。
図6は、比較例における工作機械900の構成例を示すブロック図である。図6に示すように、工作機械900は、制御装置910と制御対象機械2を含んで構成される。
制御装置910は、位置比例制御部11、速度比例積分制御部12、電流制御部14、擬似微分部15、演算部913、微分処理部921、及び推定部922備える。制御装置10と同様の機能を有する機能部には、同じ符号を用いて説明を省略する。
【0053】
制御対象機械2は、図1と同様にモータ21、ギア22、及びテーブル23を備える。モータ21は、不図示のエンコーダが取り付けられている。
【0054】
微分処理部921は、制御対象機械2のモータ21(図1)のエンコーダが出力するエンコード値(観測値)に対して微分処理を行って速度を求める。
推定部922は、摩擦モデルを記憶する。推定部922は、微分処理部921が求めた速度を用いて、摩擦モデルを参照して摩擦力を推定する。推定部922は、推定した摩擦力を補償トルク指令値τ’*として演算部913に出力する。
【0055】
演算部913は、速度比例積分制御部12が出力するトルク指令値τ*に、推定部922が出力する補償トルク指令値τ’*を加算する。演算部913は、加算後のトルク指令値τ*を電流制御部14に出力する。
【0056】
次に、この比較例の制御装置910が制御対象機械2を制御した結果を解析した例を説明する。
図7は、比較例における制御装置が制御対象機械2を制御した結果を解析した例を示す図である。なお、図7において、時刻1のときに制御を開始している。
【0057】
図7(A)は、時刻に対する角度の変化の解析結果である。図7(A)において、横軸は時刻[s]であり、縦軸は角度[deg]である。
符号g41は、モータ側の角度の変化を示している。符号g42は、負荷側の角度の変化を示している。符号g43は、スティックスリップ現象が発生していないリファレンスの角度の変化を示している。
【0058】
図7(B)は、時刻に対する角度エラーの変化の解析結果である。図7(B)において、横軸は時刻[s]であり、縦軸は角度エラー[deg]である。
符号g44は、モータ側の角度エラーの変化を示している。符号g45は、負荷側の角度エラーの変化を示している。
【0059】
図7(C)は、時刻に対する入力トルクの変化の解析結果である。図7(C)において、横軸は時刻[s]であり、縦軸は入力トルク[Nm]である。
符号g46は、統合トルクの変化を示している。符号g47は、摩擦補償の変化を示している。
【0060】
比較例によれば、図7(B)のように、モータ側と負荷側との角度エラーが、1秒〜2秒の間で大きく振動し、さらに約2秒以降も振動が継続している。この結果、図8に示すようなスティックスリップ現象が発生し続けることになる。図8は、スティックスリップ現象例を示す図である。図8において、横軸は時刻[s]であり、縦軸は角度[deg]である。符号g51は目標値を示し、符号g52は実際に観測された角度(実角度)を示している。
【0061】
比較例では、2秒後降も角度エラーの振動が継続しているため、図7(C)に示すように、2秒以降の統合トルクと摩擦補償の値も約0.5[Nm]の振幅で振動し続けている。また、図7(A)に示すように、約2秒以降もモータ側と負荷側の角度が振動し続けている。時刻に対する角度の変化において、角度のスケールを拡大すると、図8のように時刻に対して角度が目標値に対して多すぎる状態と少なすぎる状態を繰り返している。なお、図8は、図7の角度のスケールを拡大した図ではなく、単にスティックスリップ現象例である。
【0062】
一方、本実施形態では、図5(C)に示したように、2秒以降の統合トルクと摩擦補償の値の振幅がほぼ0であり、振動していない。また、本実施形態では、図5(A)に示すように、約2秒以降のモータ側と負荷側の角度の振動がほぼ無い。このように、本実施形態では、比較例と比べて大幅にスティックスリップ現象を抑えることができた。
【0063】
[補償部で用いられる摩擦補償フィルタ]
次に、補償部163で用いられる摩擦補償フィルタの例について説明する。
まず、摩擦補償フィルタを求めるために用いる制御対象機械の物理モデルと摩擦補償部の物理モデルについて説明する。
【0064】
図9は、本実施形態に係る制御対象機械2と摩擦補償部16とを物理モデルとして表した図である。図9に示すように、制御対象機械2は、モータ21についての伝達関数と、ギア22についての伝達関数と、テーブル23についての伝達関数との組み合わせによりモデル化される。なお、符号T11〜T15は、加算または減算を行う演算部である。
また、符号CPはトルク指令値τ*を入力とする閉ループである。この閉ループCPの伝達関数をP(s)とする。
【0065】
モータ21についての伝達関数は、モータ21の慣性モーメントJとモータ21の粘性係数Dによって規定される。
ギア22についての伝達関数は、ギア22の慣性モーメントJとギア22の粘性係数Dによって規定される。
テーブル23についての伝達関数は、テーブル23の慣性モーメントJとテーブル23の粘性係数Dによって規定される。
【0066】
伝達関数T1は、モータ21とギア22とを連結する連結部材の剛性係数Kによって規定される。
伝達関数T2は、ギア22とテーブル23とを連結する連結部材の剛性係数Kによって規定される。
【0067】
さらに、図9に示すように、テーブル23についての伝達関数には、制御対象機械2が有する非線形成分の一つである第1線形摩擦係数T3が含まれる。第1線形摩擦係数T3は、制御対象負荷摩擦モデルであり線形係数Fとする。第1線形摩擦係数T3は、例えばテーブル23の速度(テーブル速度観測値ω)に応じて当該テーブル23が発生させる摩擦抵抗TfLの特性を有する。第1線形摩擦係数T3は、テーブル23の静止時に発生する静摩擦と、テーブル23の動作時に発生する動摩擦とを有してなる(動摩擦は静摩擦よりも摩擦抵抗が小さい)。
【0068】
微分部51は、制御対象機械2の角度の観測値を微分して速度を求め、求めた速度を第2線形摩擦係数52に出力する。
第2線形摩擦係数52は、制御系負荷摩擦モデルであり線形係数Fとする。第2線形摩擦係数52は、摩擦モデルを用いて、微分部51から入力された速度に対応する摩擦値を推定して出力する。第2線形摩擦係数52は、推定した推定摩擦値を摩擦補償フィルタ53に出力する。
【0069】
摩擦補償フィルタ53は、伝達関数P(s)における線形係数Fと線形係数Fとの影響を除去するためのフィルタであり関数Gとする。換言すると、摩擦補償フィルタ53は、摩擦の影響をキャンセルするためのフィルタでる。このフィルタは、補償部163で用いられる。
【0070】
なお、図9に示した制御対象機械2の物理モデルは、あくまで、各駆動機構(モータ21、ギア22及びテーブル23等)に、摩擦特性を主とする非線形要素が含まれていることを説明するために例示したものであり、制御対象機械2の物理モデルは、制御対象である機械に応じたものであればよく、これとは異なるものであってよい。
【0071】
次に、摩擦補償フィルタの求め方の一例を説明する。
図9における閉ループの伝達関数P(s)は、次式(1)のように表される。
【0072】
【数1】
【0073】
式(1)において、分子xは次式(2)のように表され、分母yは次式(3)のように表され、
【0074】
【数2】
【0075】
【数3】
【0076】
式(3)において、F(−D−・・・−Ks)の項は、制御対象の負荷摩擦モデルの項である。また、F(DGs+DGK+DGK+GKs)の項は、制御系の負荷摩擦モデルの項である。また、(DGs+DGK+DGK+GKs)の項は、摩擦フィルタの項である。
式(2)の分子をB(s)とすると、次式(4)となる。
【0077】
【数4】
【0078】
分母において、線形係数Fの項、Fcの項及び関数Gの項以外をA1とすると、Aは次式(5)のように表される。また、F(−D−・・・−Ks)の項の(−D−・・・−Ks)をA2とすると、Aは次式(6)のように表される。また、F(DGs+DGK+DGK+GKs)の項において、(DGs+DGK+DGK+GKs)を摩擦補償フィルタである関数GでくくってGAとするとAは次式(7)のように表される。
【0079】
【数5】
【0080】
【数6】
【0081】
【数7】
【0082】
式(1)を、B、A、A、A、線形係数F、線形係数F及び関数Gを用いて表すと次式(8)のようになる。
【0083】
【数8】
【0084】
式(8)において、線形係数Fと線形係数Fとが等しいとすると、式(8)は次式(9)に置き換えることができる。
【0085】
【数9】
【0086】
式(8)において、線形係数Fの項をキャンセルするためには、関数Gが次式(10)であればよい。
【0087】
【数10】
【0088】
式(10)は、非プロパな伝達関数であり、すなわち分子の方が分母より次数が大きい。このため、本実施形態では、この関数Gに対して、さらに次式(11)のように、3次のLPF(ローパスフィルタ)をかけて分子の次数を分母の次数より小さくする。
【0089】
【数11】
【0090】
式(11)において、1/(τs+1)の項が、3次のLPFの項である。また、τは、LPFにおける所定の時定数である。
また、式(11)において、aは次式(12)であり、aは次式(13)であり、aは次式(14)であり、aは次式(15)であり、aは次式(16)である。
【0091】
【数12】
【0092】
【数13】
【0093】
【数14】
【0094】
【数15】
【0095】
【数16】
【0096】
本実施形態では、このようにして摩擦補償フィルタである関数G(摩擦補償フィルタGともいう)を求める。
なお、式(11)の摩擦補償フィルタGは、図9に示した物理モデルを解いた値である。このため、制御対象である機械が異なり物理モデルが頃なる場合、摩擦補償フィルタGは式(11)と異なる値となる。この場合であっても、摩擦補償フィルタGは、摩擦の影響をキャンセルするフィルタとして設計する。
【0097】
以上のように、本実施形態では、摺動部に発生している摩擦力を推定するため、負荷に取り付けられたエンコード値から速度を算出するようにした。また、本実施形態では、速度値を参照して、摩擦モデルから現在作用している摩擦力を推定し制御トルク値に加算するようにした。また、本実施形態では、摩擦モデルは単純な動摩擦だけでなく、静摩擦と動摩擦を併せて再現するモデルを想定するようにした。
また、本実施形態では、推定した摩擦力は、閉ループ系から非線形摩擦の影響が消えるよう、モータから負荷への特性の位相遅れと位相進みを補償してから加算するようにした。
また、本実施形態では、モデル化困難な非線形負荷摩擦を動作点近傍で線形し、内部慣性系の影響を補正するフィルタを設計するようにした。なお、線形化によるモデル化誤差については、フィードバック制御で補償することで影響を減らすようにした。
また、本実施形態では、指令値から摩擦発生方向を予測し、摩擦力を補正することでハンチングを防ぐようにした。
【0098】
これにより、本実施形態によれば、適切な摩擦補償力をアクチュエータに与えることで、高精度な位置決め精度を実現できる。
ここで、従来は、アクチュエータから実際の摺動部までの間には複数慣性系に模擬されるような機械要素が内在する(例えば減速機剛性、回転系であればシャフト捩じり剛性、並進系であれば並進変換に使われるボールねじ剛性など)に対し、これら特性を簡便なDCゲインで補正していた。しかしながら、高精度な摩擦補償を実現するに当たり、機械要素特性を精緻に把握して補正すべきであったが、従来の手法では補正できなかった。
これに対して本実施形態によれば、高精度な摩擦補償を実現するにあたり、機械要素特性を精緻に把握して補正することができる。
【0099】
また、本実施形態によれば、多慣性系に含まれる位相進み・位相遅れ分を補正した摩擦力を補償することで高精度な摩擦補償を実現することができる。
また、本実施形態によれば、スリップの際にオーバシュートが発生しても、摩擦補償方向を補正部164によって制限することでハンチング(補正値の振動)を低減することができる。このように、本実施形態によれば、角度指令差分値Δθ*に応じて、摩擦補償値の出力を補正部164が補正することで、スティックスリップ現象の振動を助長しないようにすることができる。
【0100】
<第2実施形態>
第1実施形態では、制御対象機械2の負荷であるテーブル23(図1)にエンコーダが取り付けられている例を説明した。本実施形態では、制御対象機械2のモータ21(図1)にエンコーダ(不図示)が取り付けられている例を説明する。
【0101】
図10は、本実施形態に係る制御装置10Aの機能構成を示すブロック図である。
図10に示すように、制御装置10Aは、制御部101、及び摩擦補償部16Aを備える。制御装置10Aは、制御対象機械2を制御する。
制御部101は、位置比例制御部11(指令値取得部、観測値取得部)、速度比例積分制御部12、演算部13、電流制御部14、及び擬似微分部15(観測値取得部)を備える。
摩擦補償部16Aは、差分演算部161(指令値取得部)、摩擦演算部162A(観測値取得部)、補償部163、及び補正部164を備える。
摩擦演算部162Aは、変換部1621A及び摩擦モデル記憶部1622Aを備える。
補償部163は、摩擦補償フィルタ記憶部1631を備える。
なお、制御装置10と同様の機能を有する機能部には、同じ符号を用いて説明を省略する。
【0102】
変換部1621Aは、モータ21(図1)に取り付けられているエンコーダ(不図示)が出力するエンコード値(観測値)を取得する。取得するエンコード値は、制御部101の制御によって回転角度が変化する制御対象機械2のモータ21(図1)の回転角度であるモータ角度である。変換部1621Aは、例えば、このモータ角度を、モータから負荷への伝達特性を通過させて負荷速度を推定する。そして、変換部1621Aは、例えば、この負荷速度値を参照して、摩擦モデルから現在作用している摩擦力を推定する。なお、変換部1621Aは、例えば、モータ角度から負荷の速度の伝達関数に対してノッチフィルタをかけて設計する。
【0103】
摩擦モデル記憶部1622Aは、例えばLuGreモデルやGMSモデルなど精緻にモデル化された摩擦モデルを記憶する。なお、LuGreモデルは、Dahlの摩擦モデルを拡張した摩擦モデルである。また、GMSモデルは、N個の特性の異なるブロックとばねが並列に接続されている摩擦モデルである。
【0104】
摩擦演算部162Aは、変換部1621Aが変換した速度を用いて、摩擦モデル記憶部1622が記憶する摩擦モデルを参照して、速度に対応する摩擦量を求めることで摩擦推定値(補正指令値)を求める。
【0105】
以下、補償部163及び補正部164の処理は、制御装置10と同様である。
【0106】
制御対象機械2は、負荷にセンサ(エンコーダ)のないセミクローズドの制御となっていることが多い。このような場合は、負荷にエンコーダを取り付ける構成を実現するにはコストがかかる。一方、制御対象機械2のモータ21(図1)がエンコーダを備えている場合が少なくない。このような構成では、第1実施形態の構成より、本実施形態の構成の方が実現しやすく、エンコーダの追加が不要であるのでコストアップがない。
そして、本実施形態の構成で得られる結果は、第1実施形態の構成と同等である。
【0107】
以上のように、本実施形態では、モータ21(図1)のエンコーダの出力値に基づいて、摩擦の影響をキャンセルするようにした。
これにより、本実施形態では、第1実施形態と同等の効果を得ることができる。
【0108】
<第3実施形態>
第1実施形態の制御装置10、または第2実施形態の制御装置10Aは、外乱オブザーバ部を備えていてもよい。
【0109】
図11は、本実施形態に係る制御装置10Bの機能構成を示すブロック図である。図11は、第2実施形態の制御装置10Aに本実施形態を適用した例である。制御装置10Aと同様の機能を有する機能部には、同じ符号を用いて説明を省略する。
図11に示すように、制御装置10Bは、制御部101B、摩擦補償部16A、及び第1の外乱オブザーバ部17を備える。
制御部101Bは、位置比例制御部11(指令値取得部、観測値取得部)、速度比例積分制御部12、演算部13B、電流制御部14、及び擬似微分部15(観測値取得部)を備える。
第1の外乱オブザーバ部17は、モデル記憶部171を備える。
【0110】
モデル記憶部171は、例えば図9に示した制御対象機械2の物理モデルと、制御対象機械2の物理モデルの逆モデルとを記憶する。なお、モデル記憶部171は、図9に示した制御対象機械2の物理モデルを簡略化した物理モデルと、制御対象機械2の物理モデルを簡略化の逆モデルとを記憶する。制御対象機械2の物理モデルを簡略化した物理モデルとは、例えばモータ21(図1)、ギア22(図1)、テーブル23(図1)のうちの2つを含むモデルである。
【0111】
第1の外乱オブザーバ部17は、速度比例積分制御部12が出力するトルク指令値τ*(制御信号)と、擬似微分部15が出力するモータ速度観測値ωとを取得する。第1の外乱オブザーバ部17は、モデル記憶部171が記憶する制御対象機械2の物理モデルにトルク指令値τ*を入力して速度を求める。第1の外乱オブザーバ部17は、求めた速度と、モータ速度観測値ωとの速度差を求める。第1の外乱オブザーバ部17は、モデル記憶部171が記憶する制御対象機械2の物理モデルの逆モデルに求めた速度差を入力して、補正値εを求める。第1の外乱オブザーバ部17は、補正値εを演算部13Bに出力する。
【0112】
演算部13Bは、速度比例積分制御部12が出力するトルク指令値τ*に、摩擦補償部16の補正部164が出力する補正トルク指令値Δτ*と、第1の外乱オブザーバ部17が出力する補正値εとを加算する。演算部13Bは、加算後のトルク指令値τ*を電流制御部14に出力する。換言すると、この補正値εは、指令値と観測値との差である応答差を打ち消すトルク指令である。
【0113】
摩擦モデルを精緻にモデル化することで、従来よりも精度の高い摩擦補償が可能になる。しかしながら、ロバスト性が低いことと、非線形性の小さい範囲で適用すると精度悪化を招く場合がある。
このため、本実施形態では、第1の外乱オブザーバ部17を更に備えるようにした。
【0114】
これにより、本実施形態では、第1の外乱オブザーバ部17が求めた補正値εによって非線形成分を補償することができる。なお、外乱オブザーバで発生する遅れ(信号を受けてから補償することによる無駄時間)に対しては、先行してフィードフォワードが指令を発生することで対処することができる。このように、本実施形態では両者を組み合わせた相乗効果によって、スティックスリップなどの非線形特性を補償できる。
なお、第1実施形態で説明した制御装置10が第1の外乱オブザーバ部17を更に備えた場合であっても、同様の効果を得ることができる。
【0115】
<第4実施形態>
第3実施形態では、第1の外乱オブザーバ部17(図11)が生成した補正値によって、トルク指令値を補正する例を説明した。本実施形態では、外乱オブザーバ部が生成した補正値εを元に、フィードフォワード補正量を逐次更新する例を説明する。本実施形態においても、第1実施例の制御装置10、または第2実施形態の制御装置10Aに適用することができる。
【0116】
図12は、本実施形態に係る制御装置10Cの機能構成を示すブロック図である。図12は、第2実施形態の制御装置10Aに本実施形態を適用した例である。制御装置10Aと同様の機能を有する機能部には、同じ符号を用いて説明を省略する。
図12に示すように、制御装置10Cは、制御部101、摩擦補償部16C、及び第2の外乱オブザーバ部17C(または第3の外乱オブザーバ部17D)を備える。第2の外乱オブザーバ部17C(または第3の外乱オブザーバ部17D)は、モデル記憶部171を備える。
制御部101は、位置比例制御部11(指令値取得部、観測値取得部)、速度比例積分制御部12、演算部13、電流制御部14、及び擬似微分部15(観測値取得部)を備える。
摩擦補償部16Cは、差分演算部161(指令値取得部)、摩擦演算部162C(観測値取得部)、補償部163C、及び補正部164を備える。
摩擦演算部162Cは、変換部1621及び摩擦モデル記憶部1622を備える。
補償部163Cは、摩擦補償フィルタ記憶部1631を備える。
【0117】
第2の外乱オブザーバ部17Cは、速度比例積分制御部12が出力するトルク指令値τ*と、擬似微分部15が出力するモータ速度観測値ωとを取得する。第2の外乱オブザーバ部17Cは、モデル記憶部171が記憶する制御対象機械2の物理モデルにトルク指令値τ*を入力して速度を求める。第2の外乱オブザーバ部17Cは、求めた速度と、モータ速度観測値ωとの速度差を求める。第2の外乱オブザーバ部17Cは、モデル記憶部171が記憶する制御対象機械2の物理モデルの逆モデルに求めた速度差を入力して、補正値εを求める。第2の外乱オブザーバ部17Cは、補正値εを摩擦演算部162Cに出力する。なお、第3の外乱オブザーバ部17Dについては後述する。
【0118】
摩擦演算部162Cは、変換部1621が変換した速度を用いて、摩擦モデル記憶部1622が記憶する摩擦モデルを参照して、速度に対応する摩擦量を求めることで、摩擦推定値(補正指令値)を求める。摩擦演算部162Cは、第2の外乱オブザーバ部17Cが出力する補正値εを用いて、フィードフォワード補正量Kを求める。例えば、摩擦演算部162Cは、K=(1+ε/E)(ただしEは定数)によってフィードフォワード補正量Kを求める。フィードフォワード補正量Kは、例えばゲインである。摩擦演算部162Cは、求めた摩擦推定値にフィードフォワード補正量K(例えば1、1.1、1.2、・・・)を乗じて摩擦推定値(補正指令値)を逐次更新する。
例えば、摩擦演算部162Cは、補正値εが大きいほど摩擦外乱が大きく十分に補償されていないとみなしてKを大きくする。摩擦演算部162Cは、逆に補正値εが小さい場合、十分に摩擦が補償されているとみなしてKをデフォルトである1に近づける。
【0119】
以上のように、本実施形態では、第2の外乱オブザーバ部17Cの補正値εを元に、フィードフォワード補正量Kを逐次更新するようにした。
第2の外乱オブザーバ部17Cによる補正値εは、外乱の推定誤差を示している。推定誤差が大きいということは摩擦が大きいということなので、本実施形態では、これを補正すべくフィードフォワード補正量を大きくする。オブザーバでも補正可能だが、制御対象機械2の共振など機械特性によりオブザーバ帯域を上げられない場合には補正が遅れる。このような場合は、フィードフォワードで補正したほうが遅れを少なくできるので、即時非線形特性を補償できる。
【0120】
なお、上述した例では、摩擦演算部162Cのフィードフォワード補正量Kを逐次更新する例を説明したが、これに限らない。例えば、摩擦演算部162Cは、補正値εに基づいて、図9を用いて説明した物理モデルのパラメータを可変するようにしてもよい、可変するパラメータは、温度等によって変化しやすいパラメータであってもよい。
【0121】
さらに、補償部163Cのフィードフォワード補正量K’を逐次更新するようにしてもよい。この場合、第3の外乱オブザーバ部17Dは、補正値εを摩擦演算部162Cに出力せず補償部163Cに出力するようにしてもよい。
【0122】
補償部163Cは、摩擦演算部162Cが出力する摩擦推定値(補正指令値)に対して、摩擦補償フィルタ記憶部1631が記憶する摩擦補償フィルタを用いて、多慣性系の位相遅れや位相進みを補償する摩擦補償値(補正指令値)を求める。補償部163Cは、第3の外乱オブザーバ部17Dが出力する補正値εを用いて、フィードフォワード補正量K’を求めるようにしてもよい。例えば、補償部163Cは、K’=(1+ε/E’)(ただしE’は定数)によってフィードフォワード補正量K’を求めるようにしてもよい。補償部163Cは、求めた摩擦補償値にフィードフォワード補正量K’(例えば1、1.1、1.2、・・・)を乗じて摩擦補償値(補正指令値)を逐次更新するようにしてもよい。
【0123】
補償部163Cは、補正値εに基づいて、図9を用いて説明した物理モデルのパラメータを可変するようにしてもよい、可変するパラメータは、温度等によって変化しやすいパラメータであってもよい。
【0124】
なお、上述した各実施形態では、制御対象機械2が、図1に示したようなモータ21とギア22とテーブル23を備える機械であり、ステージの位置決め制御の対象例を示したが、これに限らない。制御対象機械2が、例えば6軸のマニピュレータを有するロボットであってもよく、制御装置10(または10A、10B、10C)は、各関節の角度や各速度の制御を行うようにしてもよい。また、制御対象機械2が、スティックスリップなど非線形要素が強く位置決め制御偏差が発生する装置等であってもよい。
【0125】
なお、上述した各実施形態では、制御装置10(または10A、10B、10C)が補償部163(または163C)と補正部164を備える例を説明したが、これに限らない。制御装置10(または10A、10B、10C)は、補正部164を備えていなくてもよい。この場合であっても、制御ループにおける位相遅れや位相進みの補償を行うことができる。
また、制御装置10(または10A、10B、10C)は、補償部163(または163C)を備えていなくてもよい。この場合であっても、角度指令差分値Δθ*に応じて、摩擦補償値の出力を補正部164が補正することで、スティックスリップ現象の振動を助長しないようにすることができる。
【0126】
なお、本発明における制御装置10(または10A、10B、10Cの機能の全てまたは一部を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより制御装置10(または10A、10B、10C)が行う処理の全てまたは一部を行ってもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。また、「コンピュータシステム」は、ホームページ提供環境(あるいは表示環境)を備えたWWWシステムも含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(RAM)のように、一定時間プログラムを保持しているものも含むものとする。
【0127】
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。また、上記プログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であってもよい。
【0128】
以上、本発明を実施するための形態について実施形態を用いて説明したが、本発明はこうした実施形態に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形および置換を加えることができる。
【符号の説明】
【0129】
1…工作機械、
10,10A,10B,10C…制御装置、
2…制御対象機械、
101,101B…制御部、
11…位置比例制御部(指令値取得部、観測値取得部)、
12…速度比例積分制御部、
13,13B…演算部、
14…電流制御部、
15…擬似微分部(観測値取得部)、
16,16A,16C…摩擦補償部、
161…差分演算部(指令値取得部)、
162,162A,162C…摩擦演算部(観測値取得部)、
163,163C…補償部、
164…補正部、
1621,1621A…変換部、
1622,1622A…摩擦モデル記憶部、
1631…摩擦補償フィルタ記憶部、
17…第1の外乱オブザーバ部、
17C…第2の外乱オブザーバ部、
17D…第3の外乱オブザーバ部、
171…モデル記憶部、
21…モータ、
22…ギア、
23…テーブル、
θ*…モータ位置指令値、
θ…モータ位置観測値、
ω*…モータ速度指令値、
ω…モータ速度観測値、
τ*…トルク指令値、
Δτ*…補正トルク指令値、
τ…トルク、
Δθ*…角度指令差分値、
P(s)…閉ループの伝達関数、
F,F…線形係数、
…モータの慣性モーメント、
…モータの粘性係数、
…ギアの慣性モーメント、
…ギアの粘性係数、
…テーブルの慣性モーメント、
…テーブルの粘性係数、
…モータとギアとを連結する連結部材の剛性係数、
…ギアとテーブルとを連結する連結部材の剛性係数、
G…関数(摩擦補償フィルタ)、
ω…テーブル速度観測値、
fL…摩擦抵抗、
K,K’…フィードフォワード補正量、
ε…補正値
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12