IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ 株式会社安川電機の特許一覧

<>
  • 特許-制御システム、制御装置及び制御方法 図1
  • 特許-制御システム、制御装置及び制御方法 図2
  • 特許-制御システム、制御装置及び制御方法 図3
  • 特許-制御システム、制御装置及び制御方法 図4
  • 特許-制御システム、制御装置及び制御方法 図5
  • 特許-制御システム、制御装置及び制御方法 図6
  • 特許-制御システム、制御装置及び制御方法 図7
  • 特許-制御システム、制御装置及び制御方法 図8
  • 特許-制御システム、制御装置及び制御方法 図9
  • 特許-制御システム、制御装置及び制御方法 図10
  • 特許-制御システム、制御装置及び制御方法 図11
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-02-07
(45)【発行日】2023-02-15
(54)【発明の名称】制御システム、制御装置及び制御方法
(51)【国際特許分類】
   G05D 3/12 20060101AFI20230208BHJP
   G05B 13/02 20060101ALI20230208BHJP
   G05B 23/02 20060101ALI20230208BHJP
   H02P 29/00 20160101ALI20230208BHJP
【FI】
G05D3/12 305L
G05B13/02 C
G05B23/02 R
H02P29/00
【請求項の数】 17
(21)【出願番号】P 2021532676
(86)(22)【出願日】2020-03-27
(86)【国際出願番号】 JP2020014290
(87)【国際公開番号】W WO2021009976
(87)【国際公開日】2021-01-21
【審査請求日】2022-01-25
(31)【優先権主張番号】PCT/JP2019/028261
(32)【優先日】2019-07-18
(33)【優先権主張国・地域又は機関】JP
(31)【優先権主張番号】62/940,912
(32)【優先日】2019-11-27
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】000006622
【氏名又は名称】株式会社安川電機
(74)【代理人】
【識別番号】100088155
【弁理士】
【氏名又は名称】長谷川 芳樹
(74)【代理人】
【識別番号】100145012
【弁理士】
【氏名又は名称】石坂 泰紀
(74)【代理人】
【識別番号】100171099
【弁理士】
【氏名又は名称】松尾 茂樹
(72)【発明者】
【氏名】嶌本 慶太
(72)【発明者】
【氏名】横矢 剛
【審査官】松本 泰典
(56)【参考文献】
【文献】特開2013-66965(JP,A)
【文献】特開2013-225284(JP,A)
【文献】特開2009-297827(JP,A)
【文献】特開2018-89744(JP,A)
【文献】特開2018-65221(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G05D 3/12
G05B 13/02
G05B 23/02
H02P 29/00
(57)【特許請求の範囲】
【請求項1】
駆動対象を駆動するモータと、
前記モータを駆動する制御部と、
前記モータに駆動力を発生させるために前記制御部が生成する駆動力指令に少なくとも基づいて、前記駆動力に対抗するように前記モータに作用する第1外力を推定する第1推定部と、
所定の動作パターンに基づき前記駆動対象を動作させるように前記制御部が前記モータを駆動する場合に前記第1推定部が推定する推定値の推移を表すプロファイルデータを記憶するデータ記憶部と、
前記データ記憶部が前記プロファイルデータを記憶した状態にて、前記動作パターンに基づいて前記制御部が前記モータを駆動している際に、前記第1推定部により新たに推定された前記推定値と、前記データ記憶部に記憶された前記プロファイルデータとの差分に基づいて、前記駆動対象に作用する第2外力を推定する第2推定部と、を備える制御システム。
【請求項2】
前記プロファイルデータは、過去に前記動作パターンに基づいて前記制御部が前記モータを駆動した際に、前記第1推定部により推定された推定値の推移を表す、請求項1記載の制御システム。
【請求項3】
前記プロファイルデータは、前記駆動対象に外力が作用していない状態で、前記第1推定部が推定した推定値の推移を表す、請求項2記載の制御システム。
【請求項4】
前記データ記憶部は、前記プロファイルデータを含む複数のプロファイルデータを記憶し、前記複数のプロファイルデータは複数の動作パターンにそれぞれ対応しており、複数のプロファイルデータのそれぞれは、対応する動作パターンに基づいて過去に前記制御部が前記モータを駆動した際に、前記第1推定部により推定された推定値の推移を表し、
制御部は、前記複数の動作パターンのいずれかに基づいて前記モータを駆動し、
前記制御システムは、前記制御部が基づく動作パターンに対応するプロファイルデータを前記複数のプロファイルデータから選択するデータ選択部を更に備え、
前記第2推定部は、前記データ選択部が選択したプロファイルデータに基づいて、前記第2外力を推定する、請求項2又は3記載の制御システム。
【請求項5】
前記第1推定部は、前記駆動力指令と、前記モータの応答値とに少なくとも基づいて、前記第1外力を推定する外乱オブザーバである、請求項1~4のいずれか一項記載の制御システム。
【請求項6】
前記第2推定部は、
前記プロファイルデータから、前記新たに推定された推定値に対応する推定値を抽出し、
前記新たに推定された推定値と、前記抽出した推定値との差に基づいて、前記第2外力を推定する、請求項1~5のいずれか一項記載の制御システム。
【請求項7】
前記第2推定部は、前記動作パターンによる駆動時間に基づいて、前記プロファイルから、前記新たに推定された推定値に対応する推定値を抽出する、請求項6記載の制御システム。
【請求項8】
前記第2推定部は、前記モータの応答値に基づいて、前記プロファイルデータから、前記新たに推定された推定値に対応する推定値を抽出する、請求項6又は7記載の制御システム。
【請求項9】
前記プロファイルデータを更新するデータ更新部を更に備える、請求項1~8のいずれか一項記載の制御システム。
【請求項10】
前記データ更新部は、
前記データ記憶部に記憶されたプロファイルデータと、前記第1推定部が新たに推定した推定値とに基づいて、更新の要否を判断し、
更新が必要だと判断された場合に、前記第1推定部が新たに推定した推定値に基づいて、前記プロファイルデータを更新する、請求項9記載の制御システム。
【請求項11】
前記制御部は、前記動作パターンと、前記第2推定部が推定した第2外力とに基づいて、前記モータを駆動する、請求項1~9のいずれか一項記載の制御システム。
【請求項12】
少なくとも前記第2推定部が推定した第2外力に基づいて、前記動作パターンに基づく前記制御部による前記モータの駆動結果を、2以上の類に分類する分類部を更に備える、請求項1~10のいずれか一項記載の制御システム。
【請求項13】
前記分類部は、前記第2推定部が推定した第2外力と、当該第2外力が推定されている際に、前記制御部が基づく前記動作パターンとに基づいて、前記駆動結果を分類する、請求項12記載の制御システム。
【請求項14】
少なくとも前記第2推定部が推定した第2外力に基づいて、前記駆動対象の劣化を推定する劣化推定部を更に備える、請求項1~13のいずれか一項記載の制御システム。
【請求項15】
少なくとも前記第2推定部が推定した第2外力に基づいて、前記駆動対象と周辺物体との接触を検知する接触検知部を更に備える、請求項1~14のいずれか一項記載の制御システム。
【請求項16】
駆動対象を駆動するモータを駆動する制御部と、
前記モータに駆動力を発生させるために前記制御部が生成する駆動力指令に少なくとも基づいて、前記駆動力に対抗するように前記モータに作用する第1外力を推定する第1推定部と、
所定の動作パターンに基づき前記駆動対象を動作させるように前記制御部が前記モータを駆動する場合に前記第1推定部が推定する推定値の推移を表すプロファイルデータを記憶するデータ記憶部と、
前記データ記憶部が前記プロファイルデータを記憶した状態にて、前記動作パターンに基づいて前記制御部が前記モータを駆動している際に、前記第1推定部により新たに推定された前記推定値と、前記データ記憶部に記憶された前記プロファイルデータとの差分に基づいて、前記駆動対象に作用する第2外力を推定する第2推定部と、を備える制御装置。
【請求項17】
駆動対象を駆動するモータを駆動することと、
前記モータに駆動力を発生させるために生成される駆動力指令に少なくとも基づいて、前記駆動力に対抗するように前記モータに作用する第1外力を推定することと、
所定の動作パターンに基づき前記駆動対象を動作させるように前記モータを駆動する場合に推定される前記第1外力の推定値の推移を表すプロファイルデータをデータ記憶部に記憶させることと、
前記データ記憶部が前記プロファイルデータを記憶した状態にて、前記動作パターンに基づいて前記モータを駆動している際に、新たに推定した前記第1外力の推定値と、前記データ記憶部に記憶された前記プロファイルデータとの差分に基づいて、前記駆動対象に作用する第2外力を推定することと、を含む制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、制御システム、制御装置及び制御方法に関する。
【背景技術】
【0002】
特許文献1には、ロボットの各軸モータへのトルク指令と各軸の速度検出値から外乱オブザーバにより推定外乱トルクを求め、推定外乱トルクに対しハイパスフィルタ処理を行った後、座標変換を行って外力を推定するロボットシステムが開示されている。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2012-11403号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
本開示は、外力の推定精度向上に有効な制御システム、制御装置及び制御方法を提供する。
【課題を解決するための手段】
【0005】
本開示の一側面に係る制御システムは、駆動対象を駆動するモータと、モータを駆動する制御部と、制御部における駆動力指令に少なくとも基づいて、モータに作用する第1外力を推定する第1推定部と、第1推定部が推定した推定値の推移を表すプロファイルデータを記憶するデータ記憶部と、所定の動作パターンに基づいて制御部がモータを駆動している際に、第1推定部により新たに推定された推定値と、データ記憶部に記憶されたプロファイルデータとに基づいて、駆動対象に作用する第2外力を推定する第2推定部と、を備える。
【0006】
本開示の他の側面に係る制御装置は、駆動対象を駆動するモータを駆動する制御部と、制御部における駆動力指令に少なくとも基づいて、モータに作用する第1外力を推定する第1推定部と、第1推定部が推定した推定値の推移を表すプロファイルデータを記憶するデータ記憶部と、所定の動作パターンに基づいて制御部がモータを駆動している際に、第1推定部により新たに推定された推定値と、データ記憶部に記憶されたプロファイルデータとに基づいて、駆動対象に作用する第2外力を推定する第2推定部と、を備える。
【0007】
本開示の更に他の側面に係る制御方法は、駆動対象を駆動するモータを駆動することと、モータを駆動するための駆動力指令に少なくとも基づいて、モータに作用する第1外力を推定することと、第1外力の推定値の推移を表すプロファイルデータをデータ記憶部に記憶させることと、所定の動作パターンに基づいてモータを駆動している際に、新たに推定した第1外力の推定値と、データ記憶部に記憶されたプロファイルデータとに基づいて、駆動対象に作用する第2外力を推定することと、を含む。
【発明の効果】
【0008】
本開示によれば、外力の推定精度向上に有効な制御システム、制御装置及び制御方法を提供することができる。
【図面の簡単な説明】
【0009】
図1】制御システムの構成を例示する模式図である。
図2】プロファイルデータを例示するテーブルである。
図3】制御装置の変形例を示すブロック図である。
図4】制御装置の更なる変形例を示すブロック図である。
図5】制御装置の更なる変形例を示すブロック図である。
図6】制御システムのハードウェア構成を例示する模式図である。
図7】プロファイルデータの生成手順を例示するフローチャートである。
図8】モータの駆動手順を例示するフローチャートである。
図9】モータの駆動手順の変形例を示すフローチャートである。
図10】モータの駆動手順の他の変形例を示すフローチャートである。
図11】ロボットの概略構成を例示する模式図である。
【発明を実施するための形態】
【0010】
以下、実施形態について、図面を参照しつつ詳細に説明する。説明において、同一要素又は同一機能を有する要素には同一の符号を付し、重複する説明を省略する。
【0011】
〔制御システム〕
本実施形態に係る制御システム1は、モータによって駆動対象に所望の動作をさせるシステムである。駆動対象の形状・構造・大きさ、並びにモータの数及び大きさに特に制限はない。以下においては、モータが1つであり、駆動対象が1つの剛体である場合を例示する。
【0012】
図1に示すように、制御システム1は、モータ2と、センサ3と、制御装置100とを備える。モータ2は、駆動対象4を駆動する。モータ2は、駆動対象4を回転駆動する回転型モータであってもよいし、駆動対象4を直線に沿って変位させるリニア型モータであってもよい。モータ2は、同期電動機であってもよいし、誘導電動機であってもよい。モータ2は、SPM(Surface Permanent Magnet)モータ、又はIPM(Interior Permanent Magnet)モータ等の永久磁石型の同期電動機であってもよいし、シンクロナスリラクタンスモータのように永久磁石を有しない同期電動機であってもよい。
【0013】
センサ3は、制御指令に対応するモータ2の応答値を検出する。応答値の具体例としては、モータ2の位置又は速度が挙げられる。なお、モータ2が回転型である場合、モータ2の出力軸の回転角度が「位置」に相当し、モータ2の出力軸の回転速度が「速度」に相当する。センサ3の具体例としては、モータ2の動作速度に比例した周波数のパルス信号を出力するロータリーエンコーダが挙げられる。ロータリーエンコーダによれば、モータ2の位置及び速度の両方を取得することができる。
【0014】
制御装置100は、駆動対象4に所望の動作をさせるようにモータ2を制御する。また、制御装置100は、力センサを用いないセンサレス方式にて、駆動対象4に作用する外力を推定する。後に例示するように、制御装置100は、推定した外力に基づいてモータ2を制御してもよいし、推定した外力に基づいて駆動対象4と周辺物体との接触を検知してもよいし、推定した外力に基づいて周辺物体の状態を推定してもよい。
【0015】
ここで、モータ2に作用する外力は、制御装置100による駆動力指令に基づいて推定可能である。例えば、モータ2が発生する駆動力が、駆動力指令に十分に追従している場合、駆動力指令に実質的に一致する外力がモータ2に作用していると推定することが可能である。
【0016】
駆動対象4に作用する外力は、モータ2にも伝わるので、モータ2に作用する外力は、駆動対象4に作用する外力を含む。しかしながら、モータ2に作用する外力は、駆動対象4に作用する外力の他に、少なくとも駆動対象4の慣性力を含む。更に、モータ2に作用する外力は、クーロン摩擦、粘性摩擦、駆動対象4の形状・大きさ・重さのばらつき等、モデル化が難しい成分も含んでいる。このため、単にモータ2に作用する外力に基づくのみでは、駆動対象4に作用する外力を高い精度で推定するのは難しい。これに対し、制御装置100は、駆動対象4に作用する外力のセンサレス方式による推定精度を向上させる。
【0017】
制御装置100は、モータ2を駆動することと、モータ2を駆動するための駆動力指令に少なくとも基づいて、モータ2に作用する第1外力を推定することと、第1外力の推定値の推移を表すプロファイルデータをデータ記憶部に記憶させることと、所定の動作パターンに基づいてモータ2を駆動している際に、新たに推定した第1外力と、データ記憶部に記憶されたプロファイルデータとに基づいて、駆動対象4に作用する第2外力を推定することと、を実行するように構成されている。例えば制御装置100は、機能上の構成(以下、「機能ブロック」という。)として、動作パターン記憶部111と、制御部112と、第1推定部113と、プロファイル生成部114と、データ記憶部115と、第2推定部116とを備える。
【0018】
動作パターン記憶部111は、少なくとも1つの動作パターンを記憶する。動作パターンは、モータ2の動作目標値の推移(時間変化)を表すデータである。例えば動作パターンは、少なくとも1つの動作コマンドを含む。動作コマンドは、少なくとも駆動対象4の目標位置を定める。動作コマンドは、駆動対象4の目標位置に代えて駆動対象4の目標速度を含んでいてもよいし、駆動対象4の目標位置及び目標速度の両方を含んでいてもよい。動作パターンは、時系列の複数の動作コマンドを含んでいてもよい。動作パターン記憶部111は、複数の動作パターンを記憶していてもよい。複数の動作パターンのそれぞれは、駆動対象4に一連の動作を行わせるための動作プログラムを構成するための単位プログラムであってもよい。
【0019】
制御部112は、モータ2を駆動する。例えば制御部112は、動作パターン記憶部111が記憶する動作パターンに基づいて駆動対象4を動作させるための駆動電力を生成し、モータ2に供給する。例えば制御部112は、センサ3の検出値に基づいて駆動対象4の現在位置及び現在速度の情報を取得し、これらを目標位置及び目標速度に追従させるように駆動電力を生成する。
【0020】
一例として、制御部112は、目標位置と現在位置との偏差(以下、「位置偏差」という。)に比例演算、比例・積分演算、又は比例・積分・微分演算等を施して、位置偏差を縮小させるための目標速度を算出する。また、制御部112は、目標速度と現在速度との偏差(以下、「速度偏差」という。)に比例演算、比例・積分演算、又は比例・積分・微分演算等を施して、速度偏差を縮小させるための駆動力指令を算出する。
【0021】
なお、モータ2が回転型である場合、モータ2の出力軸のトルクが駆動力に相当する。制御部112は、モータ2の駆動力を駆動力指令に追従させるための電流指令を算出し、電流指令に応じた駆動電流をモータ2に供給するように駆動電力を生成する。
【0022】
第1推定部113は、制御部112における上記駆動力指令に少なくとも基づいて、モータ2に作用する第1外力を推定する。例えば第1推定部113は、駆動力指令に一致する力を第1外力の推定結果として出力してもよい。なお、駆動電流が電流指令に一致する場合、駆動電流と駆動力指令とは相関することとなる。このような場合、駆動電流の検出値に基づくことと、電流指令に基づくことは、駆動力指令に基づくことと実質的に同義である。
【0023】
第1推定部113は、駆動力指令と、モータ2の応答値とに少なくとも基づいて、第1外力を推定する外乱オブザーバであってもよい。例えば第1推定部113は、モータ2の応答値(例えば現在速度及び現在位置)と、駆動対象4の既知の剛体モデルとに基づいて、駆動対象4からモータ2に作用する慣性力を推定し、当該慣性力を駆動力指令から減算した値を第1外力の推定結果として出力してもよい。
【0024】
プロファイル生成部114は、第1推定部113が推定した推定値の推移を表すプロファイルデータを生成する。例えばプロファイル生成部114は、動作パターン記憶部111が記憶する動作パターンに基づいて制御部112がモータ2を駆動した期間に第1外力の推定値を第1推定部113から繰り返し取得し、当該期間における第1外力の推定値の時間変化を表すプロファイルデータを生成する。これにより生成されたプロファイルデータは、過去に動作パターンに基づいて制御部112がモータ2を駆動した際に、第1推定部113により推定された推定値の推移を表すものとなる。
【0025】
プロファイル生成部114は、駆動対象4に外力が作用していない状態で、プロファイルデータを生成してもよい。これにより生成されたプロファイルデータは、駆動対象4に外力が作用していない状態で、第1推定部113が推定した推定値の推移を表すものとなる。
【0026】
動作パターン記憶部111が複数の動作パターンを記憶する場合に、プロファイル生成部114は、複数の動作パターンのそれぞれに対してプロファイルデータを生成してもよい。これにより、複数の動作パターンにそれぞれ対応する複数のプロファイルデータが生成される。複数のプロファイルデータのそれぞれは、対応する動作パターンに基づいて過去に制御部112がモータ2を駆動した際に、第1推定部113により推定された推定値の推移を表すものとなる。
【0027】
データ記憶部115は、プロファイル生成部114が生成したプロファイルデータを記憶する。データ記憶部115は、上述の複数のプロファイルデータを記憶してもよい。データ記憶部115は、第1外力の推定値と動作パターンとを対応付けて記憶してもよい。
【0028】
図2は、プロファイルデータを例示するテーブルである。プロファイルデータは、時系列の複数のレコードを含む。各レコードは、駆動時間と、位置と、速度と、第1外力の推定値とを含む。駆動時間は、動作パターンに基づくモータ2の動作の開始時から第1外力の推定時までの経過時間(動作パターンに基づくモータ2の駆動時間)である。位置は、第1外力の推定時におけるモータ2の位置である。ここでの位置は、目標位置であってもよいし、センサ3により検出された位置であってもよい。速度は、第1外力の推定時におけるモータ2の速度である。ここでの速度は、目標速度であってもよいし、センサ3により検出された速度であってもよい。なお、データ記憶部115は、図2に例示するような離散値に代えて、経過時間と位置との関係を表す関数、経過時間と速度との関係を表す関数、及び経過時間と第1外力の推定値との関係を表す関数等をプロファイルデータとして記憶してもよい。
【0029】
上述したように、動作パターンは、動作プログラムを構成するための単位プログラムであってもよい。この場合、動作プログラムにおける複数の動作パターンの実行順序に対応して、当該複数の動作パターンに対応するプロファイルデータを繋ぎ合わせることで、動作プログラムに対応するプロファイルデータを容易に生成することが可能となる。
【0030】
第2推定部116は、動作パターンに基づいて制御部112がモータ2を駆動している際に、第1推定部113により新たに推定された推定値(以下、「新規の推定値」という。)と、データ記憶部115に記憶されたプロファイルデータとに基づいて、駆動対象4に作用する第2外力を推定する。例えば第2推定部116は、プロファイルデータから、新規の推定値に対応する推定値(以下、「比較対象の推定値」という。)を抽出し、新規の推定値と比較対象の推定値との差に基づいて第2外力を推定する。例えば第2推定部116は、新規の推定値から比較対象の推定値を減算した値を第2外力の推定結果として出力する。
【0031】
一例として、第2推定部116は、動作パターンによる駆動時間(動作パターンに基づくモータ2の動作開始からの経過時間9に基づいて、プロファイルデータから比較対象の推定値を抽出してもよい。例えば第2推定部116は、第1推定部113が新規の推定値を出力した時点における駆動時間に対応する推定値をプロファイルデータから抽出する。
【0032】
第2推定部116は、モータ2の応答値に基づいて、プロファイルデータから、新たに推定された推定値に対応する推定値を抽出してもよい。例えば第2推定部116は、第1推定部113が新規の推定値を出力した時点におけるモータ2の位置に対応する推定値をプロファイルデータから抽出してもよい。第2推定部116は、第1推定部113が新規の推定値を出力した時点におけるモータ2の速度に対応する推定値をプロファイルデータから抽出してもよい。第2推定部116は、第1推定部113が新規の推定値を出力した時点におけるモータ2の位置及び速度に対応する推定値をプロファイルデータから抽出してもよい。
【0033】
データ記憶部115が複数のプロファイルデータを記憶する場合に、制御装置100は、図3に示すようにデータ選択部121を更に備えてもよい。データ選択部121は、制御部112が動作パターンに基づくモータ2の駆動を開始する時又は開始する前に、当該動作パターンに対応するプロファイルデータをデータ記憶部115の複数のプロファイルデータから選択する。この場合、第2推定部116は、データ選択部121が選択したプロファイルデータに基づいて、第2外力を推定する。
【0034】
図4に示すように、制御装置100は、データ更新部122を更に備えてもよい。データ更新部122は、データ記憶部115が記憶するプロファイルデータを更新する。更新することは、既存のプロファイルデータを上書きすることと、既存のプロファイルデータを旧版として残しつつ新たなプロファイルデータを書き込むこととを含む。
【0035】
データ更新部122は、データ記憶部115に記憶されたプロファイルデータと、第1推定部113が新たに推定した推定値とに基づいて、プロファイルデータの更新の要否を判断し、更新が必要だと判断された場合に、第1推定部113が新たに推定した推定値に基づいてプロファイルデータを更新してもよい。
【0036】
例えば制御装置100は、ログデータ記憶部129を更に有する。ログデータ記憶部129は、第1推定部113が新たに推定した推定値と、プロファイルデータとの関係の推移を表すログデータを記憶する。例えばログデータ記憶部129は、動作パターンに基づいて制御部112がモータ2を駆動する期間において、第2推定部116が推定した第2外力の推移をログデータとして記憶する。
【0037】
ログデータ記憶部129は、第2外力の推定値と、動作パターンとを対応付けて記憶してもよい。例えばログデータ記憶部129は、モータ2の位置及び速度と第2外力の推定値とを対応付けたレコードを時系列で記憶してもよい。位置・速度は、目標位置・目標速度であってもよいし、センサ3により検出された位置・速度であってもよい。
【0038】
データ更新部122は、ログデータ記憶部129が記憶するログデータに基づいて、プロファイルデータの更新の要否を判定する。例えばデータ更新部122は、ログデータが所定の判定基準(以下、「更新判定基準」という。)を満たすか否かに基づいてプロファイルデータの更新の要否を判定する。
【0039】
ここで、プロファイルデータは、上述したモデル化が難しい成分(クーロン摩擦、粘性摩擦、駆動対象4の形状・大きさ・重さのばらつき等)が経時的に変化した場合に更新が必要となる。そこで、更新判定基準は、上記モデル化が難しい成分の変化によりログデータに現れる特性に基づいて予め設定される。
【0040】
例えば、クーロン摩擦が経時的に大きくなる場合、ログデータは、記録開始から記録完了までのほぼ全域に亙って均一に上昇することが想定される。これに対応し、ログデータ内の所定範囲の全域に亙って、第2外力の推定値の値が所定の閾値を超えていることが、更新判定基準の一例として挙げられる。
【0041】
また、粘性摩擦が経時的に大きくなる場合、ログデータにおいて、速度と第2外力との相関レベルが高くなると考えられる。これに対応し、ログデータ内における速度と第2外力との相関レベルが所定の閾値を超えていることも、更新判定基準の一例として挙げられる。
【0042】
軸受け部が劣化・損傷した場合、ログデータにおいて、第2外力に周期的な変化が現れると考えられる。これに対応し、ログデータの第2外力の周波数解析結果において、特定の周波数成分の大きさが所定の閾値を超えることも、更新判定基準の一例として挙げられる。
【0043】
更に、駆動対象4が明らかに無負荷であると想定できる所定姿勢がある場合、駆動対象4が当該姿勢であるときの第2外力が所定の閾値を超えることも、更新判定基準となり得る。
【0044】
更新が必要であると判定した場合、データ更新部122は、プロファイル生成部114にプロファイルデータを再生成させ、再生成したプロファイルデータによってデータ記憶部115のプロファイルデータを更新させる。なお、クーロン摩擦の例として示したように、所定範囲の全域に亙ってログデータが均一に上昇する場合、データ更新部122は、均一な上昇成分を、データ記憶部115が記憶するプロファイルデータの全域に亙って加算してもよい。
【0045】
制御部112は、動作パターン記憶部111が記憶する動作パターンと、第2推定部116が推定した第2外力とに基づいて、モータ2を駆動してもよい。例えば制御部112は、第2推定部116が推定した第2外力に基づいて外力追従用の補正値を算出し、当該補正値により、動作パターンに基づく目標位置・目標速度を第2外力の作用方向に補正するインピーダンス制御を実行してもよい。制御部112は、第2外力と補正値との関係を表すように機械学習により予め生成されたモデルと、第2推定部116が新たに推定した第2外力とに基づいて補償値を算出してもよい。
【0046】
制御部112は、第1推定部113が推定した第1外力に基づいてフィードフォワード補償値を算出し、フィードフォワード補償値を駆動力指令に加算するフィードフォワード制御を更に実行してもよい。この場合、第1推定部113は、フィードフォワード補償値を算出するための第1外力の推定と、第2外力を推定するための第1外力の推定とで、第1推定値に対する推定条件(例えば駆動力指令に対するフィルタ条件)を変更してもよい。
【0047】
図5に示すように、制御装置100は、接触検知部124を更に備えてもよい。例えば接触検知部124は、少なくとも第2推定部116が推定した第2外力に基づいて、駆動対象4と周辺物体との接触を検知する。例えば接触検知部124は、第2推定部116が推定した第2外力の上昇に基づいて、駆動対象4と周辺物体との接触を検知してもよい。
【0048】
制御装置100は、少なくとも推定した第2外力に基づいて、動作パターンに基づくモータ2の駆動結果を2以上の類のいずれかに分類することを更に実行するように構成されていてもよい。例えば制御装置100は、分類基準記憶部125と、分類部126とを更に備える。
【0049】
分類基準記憶部125は、モータ2の駆動結果を2以上の類のいずれかに分類するための基準を記憶する。2以上の類の具体例としては、所定の基準に対する動作結果の良否、駆動対象4が直接的又は間接的に作用した後のワークの良否、駆動対象4が直接的又は間接的に作用した後のワークの状態等が挙げられる。
【0050】
一例として、分類部126は、駆動対象4の動作を「優良」又は「不良」に分類してもよい。例えば分類基準記憶部125は、駆動対象4の動作が優良である場合における第2外力の推移の上限を表す上限プロファイルと、駆動対象4の動作が優良である場合における第2外力の推移の下限を表す下限プロファイルとを記憶する。分類部126は、第2外力の推定値が上限プロファイルと下限プロファイルとの間に位置する場合には駆動対象4の動作を「優良」に分類し、第2外力の推定値が上限プロファイルと下限プロファイルとの間の外に位置する場合には駆動対象4の動作を「不良」に分類する。
【0051】
分類部126は、駆動対象4が直接的又は間接的に作用したワークの状態を「優良」又は「不良」に分類してもよい。例えば分類基準記憶部125は、ワークが優良となる場合における第2外力の推移の上限を表す上限プロファイルと、ワークが優良となる場合における第2外力の推移の下限を表す下限プロファイルとを記憶する。分類部126は、第2外力の推定値が上限プロファイルと下限プロファイルとの間に位置する場合にはワークの状態を「優良」に分類し、第2外力の推定値が上限プロファイルと下限プロファイルとの間の外に位置する場合にはワークの状態を「不良」に分類する。
【0052】
分類部126は、駆動対象4が直接的又は間接的に作用したワークの状態をより細分化された3以上の類に分類してもよい。例えば分類部126は、ワークの部位ごとの寸法を3以上の類に分類してもよい。例えば分類基準記憶部125は、第2外力とワークの寸法との関係を表すテーブル又は関数等を記憶する。分類部126は、テーブル又は関数と、第2外力の推定値とに基づいてワークの各部の寸法を算出する。
【0053】
分類部126は、第2推定部が推定した第2外力と、当該第2外力が推定されている際に、制御部112が基づく動作パターンとに基づいて、モータ2の駆動結果を分類してもよい。この場合、分類基準記憶部125が分類基準を動作パターンごとに記憶し、制御部112が基づく動作パターンに対応する分類基準を分類部126が選択してもよい。
【0054】
分類基準記憶部125は、第2外力と、モータ2の駆動結果との関係を表すように予め機械学習により生成されたモデルを記憶していてもよい。この場合分類部126は、第2外力の推定値の推移(例えばログデータ記憶部129が記憶する推移)と、上記モデルとに基づいて駆動結果を分類する。モデルは、第2外力と、当該第2外力が生じている際のモータ2の動作パターンとの組み合わせと、モータ2の駆動結果との関係を表すように生成されていてもよい。
【0055】
一例として、分類基準記憶部125は、第2外力の推移と、当該第2外力の推移が生じている際のモータ2の動作パターンとの組み合わせと、ワークの状態との関係を表すように生成されたモデルを記憶する。分類部126は、第2外力の推定値の推移と、当該推定値の推移が生じている際に制御部112が基づく動作パターンと、上記モデルとに基づいて、ワークの状態を3以上の類に分類する。
【0056】
第2推定部116は、モータ2に作用する第1外力に基づいて第2外力を推定する。このため、駆動対象4及びモータ2の少なくともいずれかの不具合、微変動に起因して制御システム1の内部で生じる状況変化も考慮して、モータ2の駆動結果を2以上の類に分類することができる。また、第2外力の推定結果に基づいて、駆動対象4の劣化を推定することも可能である。例えば制御装置100は、図4に示すように、劣化推定部127と、劣化報知部128とを更に備えてもよい。
【0057】
劣化推定部127は、少なくとも第2推定部116が推定した第2外力に基づいて、駆動対象4の劣化を推定する。劣化報知部128は、劣化推定部127により推定された駆動対象4の劣化を、報知データの送信又は表示デバイスへの報知表示等により報知する。
【0058】
第2外力の推定結果は、上述したモデル化が難しい成分(クーロン摩擦、粘性摩擦、駆動対象4の形状・大きさ・重さのばらつき等)の経時的な変化に起因する付加成分を含む。劣化推定部127は、上記付加成分に基づいて駆動対象4の劣化を推定する。
【0059】
例えば、クーロン摩擦が経時的に大きくなる場合、上記ログデータは、記録開始から記録完了までのほぼ全域に亙って均一に上昇する付加成分を含む。これに対応し、ログデータ内の所定範囲の全域に亙って、第2外力の推定値の値が所定の閾値を超えている場合に、劣化推定部127は、クーロン摩擦の上昇を伴う駆動対象4の劣化を推定する。
【0060】
また、粘性摩擦が経時的に大きくなる場合、ログデータにおいて、速度と第2外力との相関レベルが高くなると考えられる。これに対応し、ログデータ内における速度と第2外力との相関レベルが所定の閾値を超えている場合に、劣化推定部127は、粘性摩擦の上昇を伴う駆動対象4の劣化を推定する。
【0061】
軸受け部が劣化・損傷した場合、ログデータにおいて、第2外力に周期的な変化が現れると考えられる。これに対応し、ログデータの第2外力の周波数解析結果において、特定の周波数成分の大きさが所定の閾値を超える場合に、劣化推定部127は、軸受け部の劣化を推定する。
【0062】
更に、駆動対象4が明らかに無負荷であると想定できる所定姿勢がある場合、劣化推定部127は、駆動対象4が当該姿勢であるときの第2外力が所定の閾値を超える場合に駆動対象4の劣化を推定してもよい。
【0063】
劣化推定部127は、第2外力の推移と、駆動対象4の劣化との関係を表すように予め機械学習により生成されたモデルと、第2推定部116が推定した第2外力の推移とに基づいて、駆動対象4の劣化を推定してもよい。
【0064】
図6は、制御装置100のハードウェア構成を例示するブロック図である。図6に示すように、制御装置100は、回路190を有する。回路190は、一つ又は複数のプロセッサ191と、メモリ192と、ストレージ193と、入出力ポート194と、ドライバ回路195とを含む。ストレージ193は、例えば不揮発性の半導体メモリ等、コンピュータによって読み取り可能な記憶媒体を有する。ストレージ193は、モータ2を駆動することと、モータ2を駆動するための駆動力指令に少なくとも基づいて、モータ2に作用する第1外力を推定することと、第1外力の推定値の推移を表すプロファイルデータをデータ記憶部に記憶させることと、所定の動作パターンに基づいてモータ2を駆動している際に、新たに推定した第1外力と、データ記憶部115に記憶されたプロファイルデータとに基づいて、駆動対象4に作用する第2外力を推定することと、制御装置100に実行させるためのプログラムを記憶している。例えばストレージ193は、上述した各機能ブロックを制御装置100に構成させるためのプログラムを記憶している。
【0065】
メモリ192は、ストレージ193の記憶媒体からロードしたプログラム及びプロセッサ191による演算結果を一時的に記憶する。プロセッサ191は、メモリ192と協働して上記プログラムを実行することで、制御装置100の各機能ブロックを構成する。入出力ポート194は、プロセッサ191からの指令に従って、センサ3との間で電気信号の入出力を行う。ドライバ回路195は、プロセッサ191からの指令に従って、モータ2に駆動電力を出力する。
【0066】
なお、制御装置100は、必ずしもプログラムにより各機能を構成するものに限られない。例えば制御装置100は、専用の論理回路又はこれを集積したASIC(Application Specific Integrated Circuit)により少なくとも一部の機能を構成してもよい。
【0067】
〔制御手順〕
以下、制御方法の一例として、制御装置100が実行する制御手順を例示する。この制御手順は、モータ2を駆動することと、モータ2を駆動するための駆動力指令に少なくとも基づいて、モータ2に作用する第1外力を推定することと、第1外力の推定値の推移を表すプロファイルデータをデータ記憶部に記憶させることと、所定の動作パターンに基づいてモータ2を駆動している際に、新たに推定した第1外力と、データ記憶部に記憶されたプロファイルデータとに基づいて、駆動対象4に作用する第2外力を推定することと、を含む。この制御手順は、プロファイルデータを生成することを更に含んでいてもよい。以下、プロファイルデータの生成手順と、生成したプロファイルデータに基づくモータ2の駆動手順とを例示する。
【0068】
(プロファイルデータの生成手順)
図7は、動作パターン記憶部111が複数の動作パターンを記憶する場合に、動作パターンごとのプロファイルデータを生成する手順を例示するフローチャートである。
【0069】
図7に示すように、制御装置100は、まずステップS01,S02,S03,S04,S05,S06,S07を実行する。ステップS01では、プロファイル生成部114が、動作パターン記憶部111の複数の動作パターンのいずれか一つを選択する。以下、選択された動作パターンを「対象動作パターン」という。ステップS02では、制御部112が、センサ3の検出値に基づいて駆動対象4の現在位置及び現在速度の情報を取得する。
【0070】
ステップS03では、制御部112が、対象動作パターンに基づく目標位置及び目標速度と、駆動対象4の現在位置及び現在速度とに基づいて駆動力指令を算出する。一例として、制御部112は、目標位置と現在位置との偏差(以下、「位置偏差」という。)に比例演算、比例・積分演算、又は比例・積分・微分演算等を施して、位置偏差を縮小させるための目標速度を算出する。その後、制御部112は、目標速度と現在速度との偏差(以下、「速度偏差」という。)に比例演算、比例・積分演算、又は比例・積分・微分演算等を施して、速度偏差を縮小させるための駆動力指令を算出する。
【0071】
ステップS04では、制御部112が、モータ2の駆動力を駆動力指令に追従させるための電流指令を算出し、電流指令に応じた駆動電流をモータ2に供給するように駆動電力を生成する。ステップS05では、第1推定部113が、制御部112における上記駆動力指令に少なくとも基づいて、モータ2に作用する第1外力を推定する。
【0072】
ステップS06では、プロファイル生成部114が、ステップS05で推定された第1外力を含むレコードを、対象動作パターンのプロファイルデータに追加する。例えばプロファイル生成部114は、動作パターン記憶部111における当該プロファイルデータの記憶領域にレコードを追加する。ステップS07では、プロファイル生成部114が、対象動作パターンによるモータ2の動作が完了したかを確認する。
【0073】
ステップS07において対象動作パターンによるモータ2の動作が完了していないと判定した場合、制御装置100は処理をステップS02に戻す。以後、対象動作パターンによるモータ2の動作が完了するまで、対象動作パターンに対応するプロファイルデータへのレコードの追加が繰り返される。これにより、第1外力の推移を表すプロファイルデータが生成される。
【0074】
ステップS07において対象動作パターンによるモータ2の動作が完了したと判定した場合、制御装置100はステップS08を実行する。ステップS08では、動作パターン記憶部111が記憶する全ての動作パターンに対してプロファイルデータの生成が完了したかをプロファイル生成部114が確認する。
【0075】
ステップS08においてプロファイルデータの生成が完了していない動作パターンが残っていると判定した場合、制御装置100はステップS09を実行する。ステップS09では、プロファイル生成部114が、対象動作パターンを、プロファイルデータが生成されていない他の動作パターンに変更する。その後、プロファイル生成部114は処理をステップS02に戻す。以後、全ての動作パターンに対してプロファイルデータが生成されるまで、動作パターンの選択とプロファイルデータの生成とが繰り返される。
【0076】
ステップS08において全ての動作パターンに対してプロファイルデータの生成が完了したと判定した場合、制御装置100はプロファイルデータの生成を完了する。
【0077】
(駆動手順)
図8は、モータの駆動手順を例示するフローチャートである。より具体的に、図8は、第2外力の推定結果に基づいて動作パターンに基づく目標位置・目標速度を変更するインピーダンス制御手順のフローチャートを示す。
【0078】
図8に示すように、制御装置100は、まずステップS11,S12,S13,S14,S15を実行する。ステップS11では、制御部112が基づく動作パターン(モータ2を駆動するためにモータ2が選択している動作パターン)に対応するプロファイルデータを、データ選択部121がデータ記憶部115の複数のプロファイルデータから選択する。以下、制御部112が基づく動作パターンを「駆動用動作パターン」といい、選択されたプロファイルデータを「選択中プロファイル」という。
【0079】
ステップS12では、制御部112が、センサ3の検出値に基づいて駆動対象4の現在位置及び現在速度の情報を取得する。ステップS13では、制御部112が、ステップS03と同様に、駆動用動作パターンに基づく目標位置及び目標速度と、駆動対象4の現在位置及び現在速度とに基づいて駆動力指令を算出する。ステップS14では、制御部112が、ステップS04と同様に、モータ2の駆動力を駆動力指令に追従させるように駆動電力を生成する。ステップS15では、プロファイル生成部114が、駆動用動作パターンによるモータ2の動作が完了したかを確認する。
【0080】
ステップS15において駆動用動作パターンによるモータ2の動作が完了していないと判定した場合、制御装置100はステップS16,S17,S18,S19を実行する。ステップS16では、第1推定部113が、制御部112における上記駆動力指令に少なくとも基づいて、モータ2に作用する第1外力を新たに推定する。ステップS17では、第2推定部116が、第1推定部113により新たに推定された推定値(上記新規の推定値)に対応する推定値(上記比較対象の推定値)を選択中プロファイルから抽出する。
【0081】
ステップS18では、第2推定部116が、新規の推定値と比較対象の推定値との差に基づいて第2外力を推定する。ステップS19では、制御部112が、第2外力の推定値に基づく補償値を算出し、駆動用動作パターンに基づく次の目標位置・目標速度を第2外力の作用方向に変更する。その後、制御装置100は処理をステップS12に戻す。以後、駆動用動作パターンが完了するまで、第2外力の推定と、推定結果に基づく目標位置・目標速度の変更を行いながら、駆動用動作パターンに基づくモータ2の駆動が継続される。
【0082】
ステップS15において駆動用動作パターンによるモータ2の動作が完了したと判定した場合、駆動用動作パターンに基づくモータ2の駆動が完了する。
【0083】
図9は、モータの駆動手順の変形例を示すフローチャートである。より具体的に、図9は、第2外力の推定結果に基づいて駆動対象4と周辺物体との接触を検知する制御手順を示す。駆動用動作パターンの選択から、第2外力の推定までのステップS21~S28は、上述したステップS11~S18と同じである。ステップS28において第2外力を推定した後、制御装置100はステップS29を実行する。ステップS29では、接触検知部124が、第2外力の推定値に基づいて、駆動対象4と周辺物体とが接触しているか否かを確認する。
【0084】
ステップS29において駆動対象4と周辺物体とが接触していないと判定した場合、制御装置100は処理をステップS22に戻す。以後、駆動対象4と周辺物体との接触の有無を監視しながら、駆動用動作パターンに基づくモータ2の駆動が継続される。
【0085】
ステップS29において駆動対象4と周辺物体とが接触していると判定した場合、制御装置100は、一連の処理をステップS22に戻すことなく強制完了させる。以上で駆動用動作パターンに基づくモータ2の駆動が完了する。
【0086】
図10は、モータ2の駆動手順の他の変形例を示すフローチャートである。より具体的に、図10は、動作パターンに基づくモータ2の駆動が完了した後に、第2外力の推定結果に基づいてワークの状態を2以上の類に分類する手順を示す。駆動用動作パターンの選択から、第2外力の推定までのステップS31~S38は、上述したステップS11~S18と同じである。ステップS38において第2外力を推定した後、制御装置100は処理をステップS32に戻す。以後、駆動用動作パターンが完了するまで、駆動用動作パターンに基づくモータ2の駆動が継続される。
【0087】
ステップS35において駆動用動作パターンによるモータ2の動作が完了したと判定した場合、制御装置100はステップS39を実行する。ステップS39では、分類部126が、少なくとも第2外力の推定結果に基づいて、駆動対象4が直接的又は間接的に作用したワークの状態を2以上の類に分類する。ステップS39では、分類部126によるワークの状態の分類に代えて、又は加えて、劣化推定部127が、少なくとも第2外力の推定結果に基づいて駆動対象4の劣化を推定してもよい。以上で駆動用動作パターンに基づくモータ2の駆動が完了する。
【0088】
〔応用例〕
上述した構成は、モータが複数であり、駆動対象が複数の剛体を含むシステムにも適用可能である。例えば上述した構成は、図11に例示する多関節ロボットを含むロボットシステムにも適用可能である。
【0089】
図11に示すロボット10は、所謂6軸の垂直多関節ロボットであり、基台11と、旋回部12と、アーム13,14,15と、ツール保持部16とを有する。基台11は、作業エリアにおいて床、台、又はAGV(Automated Guided Vehicle)上に固定される。旋回部12は、鉛直な軸線31まわりに旋回するように基台11上に設けられている。
【0090】
アーム13は、軸線31に交差(例えば直交)する軸線32まわりに揺動するように旋回部12に接続されている。ここでの交差は、所謂立体交差のようにねじれの関係にある場合を含む。アーム14は、軸線32に平行な軸線33まわりに揺動するように、アーム13の先端部に接続されている。アーム15は、アーム14に沿い軸線33に交差する軸線34まわりに旋回し、軸線34に交差(例えば直交)する軸線35まわりに揺動するようにアーム14の先端部に接続されている。
【0091】
ツール保持部16は、アーム15の中心に沿う軸線36まわりに旋回するように、アーム15の先端部に接続されている。ツール保持部16は、ワークを把持するハンド、溶接トーチ、塗装ガン、又はねじ締めツール等の様々なツール17を保持する。
【0092】
モータ21は、軸線31まわりに旋回部12を旋回させ、モータ22は、軸線32まわりにアーム13を揺動させ、モータ23は、軸線33まわりにアーム14を揺動させ、モータ24は、軸線34まわりにアーム14の先端部を旋回させ、モータ25は、軸線35まわりにアーム15を揺動させ、モータ26は、軸線36まわりにツール保持部16を旋回させる。
【0093】
制御システム1においては、ツール保持部16及びツール17がモータ26の駆動対象である。アーム15、ツール保持部16及びツール17がモータ25の駆動対象である。アーム14の先端部、アーム15、ツール保持部16及びツール17がモータ24の駆動対象である。アーム14,15、ツール保持部16及びツール17がモータ23の駆動対象である。アーム13,14,15、ツール保持部16及びツール17がモータ22の駆動対象である。旋回部12、アーム13,14,15、ツール保持部16及びツール17がモータ21の駆動対象である。
【0094】
このように、いずれかのモータの駆動対象中に他のモータが含まれる構成においては、モータによる駆動対象の形状及び慣性モーメントが変化し得る。例えば、モータ21による駆動対象の形状および慣性モーメントが、モータ22,23,24,25,26の駆動によって変化する。このような場合、プロファイル生成部114は、ロボット10全体としての動作パターンに第1外力の推定値の推移を対応付けたプロファイルデータをモータ21,22,23,24,25,26のそれぞれに対して生成し、データ記憶部115に記憶させてもよい。ロボット10全体としての動作パターンの具体例としては、ツール保持部16の目標位置及び目標姿勢の推移を表すデータが挙げられる。
【0095】
この場合、第1推定部113は、モータ21,22,23,24,25,26のそれぞれに対して、駆動力指令に基づいて新規の推定値を出力する。第2推定部116は、比較対象の推定値をそれぞれのプロファイルデータから抽出することと、新規の推定値と比較対象の推定値との差に基づいて第2外力を推定することとを、モータ21,22,23,24,25,26のそれぞれに対して実行する。
【0096】
〔本実施形態の効果〕
以上に説明したように、制御システム1は、駆動対象4を駆動するモータ2と、モータ2を駆動する制御部112と、制御部112における駆動力指令に少なくとも基づいて、モータ2に作用する第1外力を推定する第1推定部113と、第1推定部113が推定した推定値の推移を表すプロファイルデータを記憶するデータ記憶部115と、所定の動作パターンに基づいて制御部112がモータ2を駆動している際に、第1推定部113により新たに推定された推定値と、データ記憶部115に記憶されたプロファイルデータとに基づいて、駆動対象4に作用する第2外力を推定する第2推定部116と、を備える。
【0097】
モータ2に作用する第1外力は、クーロン摩擦、粘性摩擦、モータ2による駆動対象4の形状・大きさ・重さのばらつき等、モデル化が難しい成分を含んでいる。これらの成分は、モータ2に作用する力に基づく外力(駆動対象4に作用する第2外力)の推定精度を低下させる要因となり得る。これに対し、制御装置100によれば、動作パターンに従ってモータ2が動作している最中に新たに推定された第1外力と、過去に推定された第1外力の推移を表すプロファイルデータとに基づいて外力が推定される。新たに推定された第1外力が、上述のモデル化が難しい成分を含む場合、過去に推定された第1外力も同様の成分を含む。このため、新たに推定された第1外力と、過去に推定された第1外力の推移を表すプロファイルデータとに基づくことによって、モデル化が難しい成分の影響を除去して外力を推定することが可能である。従って、外力の推定精度向上に有効である。
【0098】
プロファイルデータは、過去に動作パターンに基づいて制御部112がモータ2を駆動した際に、第1推定部113により推定された推定値の推移を表してもよい。この場合、動作パターンでモータ2を駆動しながら推定された新たな第1外力と、同じ動作パターンでモータ2を駆動しながら推定された過去の第1外力とに基づいて第2外力を推定できるので、外力の推定精度が更に向上する。
【0099】
プロファイルデータは、駆動対象4に外力が作用していない状態で、第1推定部113が推定した推定値の推移を表してもよい。この場合、駆動対象4に外力が作用していない状態でのプロファイルデータを基準とすることで、外力の推定精度が更に向上する。
【0100】
データ記憶部115は、プロファイルデータを含む複数のプロファイルデータを記憶し、複数のプロファイルデータは複数の動作パターンにそれぞれ対応しており、複数のプロファイルデータのそれぞれは、対応する動作パターンに基づいて過去に制御部112がモータを駆動した際に、第1推定部113により推定された推定値の推移を表し、制御部112は、複数の動作パターンのいずれかに基づいてモータ2を駆動し、制御システム1は、制御部112が基づく動作パターンに対応するプロファイルデータを複数のプロファイルデータから選択するデータ選択部を更に備え、第2推定部116は、データ選択部121が選択したプロファイルデータに基づいて、第2外力を推定してもよい。この場合、動作パターンごとにプロファイルデータを設け、それを動作パターンに応じて使い分けることで、外力の推定精度を更に向上させることができる。
【0101】
第1推定部113は、駆動力指令と、モータ2の応答値とに少なくとも基づいて、第1外力を推定する外乱オブザーバであってもよい。この場合、外力の推定精度が更に向上する。例えば、外乱オブザーバによれば、駆動対象4の動作がモータ2に及ぼす影響のうち、モデル化が可能な分(以下、「モデル化した影響」という。)を、モータ2に作用する外力から除去した第1外力を推定することができる。モデル化した影響を除去して推定された第1外力によれば、駆動対象4の実際の動作と動作パターンとの乖離が生じた場合であっても、新たに推定された第1外力の推定値及びプロファイルデータの両方から、モデル化した影響が予め除去されているので、上記乖離が第2外力の推定精度に影響を及ぼし難い。
【0102】
第2推定部116は、プロファイルデータから、新たに推定された推定値に対応する推定値を抽出し、新たに推定された推定値と、抽出した推定値との差に基づいて、第2外力を推定してもよい。この場合、第2外力を容易に推定することができる。
【0103】
第2推定部116は、動作パターンによる駆動時間に基づいて、プロファイルから、新たに推定された推定値(以下、「比較対象の推定値」という場合がある。)に対応する推定値を抽出してもよい。この場合、動作パターンによる駆動時間に基づくことで、比較対象の推定値を容易に抽出することができる。
【0104】
第2推定部116は、モータ2の応答値に基づいて、プロファイルデータから、新たに推定された推定値に対応する推定値を抽出してもよい。この場合、モータ2の応答値に基づくことで、新たに推定された推定値に対応する推定値をより適切に抽出することができる。例えば、第2推定部116は、モータ2の現在位置に基づいて比較対象の推定値を抽出してもよく、モータ2の現在速度に基づいて比較対象の推定値を抽出してもよく、モータ2の現在位置及び現在速度の両方に基づいて比較対象の推定値を抽出してもよい。モータ2の現在位置に基づいて比較対象の推定値を抽出する場合、現在位置に近い位置における推定値を抽出することで、外力の推定精度を更に向上させることができる。モータ2の現在速度に基づいて比較対象の推定値を抽出する場合、現在速度に近い速度における推定値を抽出することで、外力の推定精度を更に向上させることができる。更に、モータ2の現在位置及び現在速度の両方に基づいて比較対象の推定値を抽出する場合、現在位置に近い位置で且つ現在速度に近い速度における推定値を抽出することで、外力の推定精度を更に向上させることができる。
【0105】
制御システム1は、プロファイルデータを更新するデータ更新部122を更に備えていてもよい。この場合、外力の推定精度を維持することができる。
【0106】
データ更新部122は、データ記憶部115に記憶されたプロファイルデータと、第1推定部113が新たに推定した推定値とに基づいて、更新の要否を判断し、更新が必要だと判断された場合に、第1推定部113が新たに推定した推定値に基づいて、プロファイルデータを更新してもよい。この場合、経年劣化や環境変化などの状況の変化に対応してプロファイルデータをタイムリーに更新することができる。従って、外力の推定精度が更に向上する。
【0107】
制御部112は、動作パターンと、第2推定部116が推定した第2外力とに基づいて、モータ2を駆動してもよい。この場合、トルクセンサレスでトルクによるコントロールが可能になる。
【0108】
制御システム1は、少なくとも第2推定部116が推定した第2外力に基づいて、動作パターンに基づく制御部112によるモータ2の駆動結果を、2以上の類に分類する分類部126を更に備えていてもよい。この場合、外力の推定精度の向上が、駆動対象4と周辺物体の適切な状態に推定に寄与する。また、上述のように、第2推定部116は、モータ2に作用する第1外力に基づいて第2外力を推定する。このため、駆動対象4及びモータ2の少なくともいずれかの不具合、微変動に起因して制御システム1の内部で生じる状況変化も考慮して、モータ2の駆動結果を2以上の類に分類することができる。
【0109】
分類部126は、第2推定部116が推定した第2外力と、当該第2外力が推定されている際に、制御部112が基づく動作パターンとに基づいて、駆動結果を分類してもよい。この場合、動作パターンと、その際の第2外力との基づく分類が可能なため、より正確な分類が可能である。
【0110】
制御システム1は、少なくとも第2推定部116が推定した第2外力に基づいて、駆動対象4の劣化を推定する劣化推定部127を更に備えていてもよい。この場合、外力の推定結果を、駆動対象4の劣化予知にも活用することができる。
【0111】
制御システム1は、少なくとも第2推定部116が推定した第2外力に基づいて、駆動対象4と周辺物体との接触を検知する接触検知部124を更に備えていてもよい。この場合、外力の推定精度の向上が、適切な接触検知に寄与する。
【0112】
以上、実施形態について説明したが、本開示は必ずしも上述した実施形態に限定されるものではなく、その要旨を逸脱しない範囲で様々な変更が可能である。
【符号の説明】
【0113】
1…制御システム、2,21,22,23,24,25,26…モータ、4…駆動対象、100…制御装置、112…制御部、113…第1推定部、115…データ記憶部、116…第2推定部、121…データ選択部、122…データ更新部、124…接触検知部、126…分類部、127…劣化推定部。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11