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

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

▶ 国立大学法人 東京大学の特許一覧 ▶ 株式会社安川電機の特許一覧

特許7578244制御システムの生産装置、制御システムの生産方法及びプログラム
<>
  • 特許-制御システムの生産装置、制御システムの生産方法及びプログラム 図1
  • 特許-制御システムの生産装置、制御システムの生産方法及びプログラム 図2
  • 特許-制御システムの生産装置、制御システムの生産方法及びプログラム 図3
  • 特許-制御システムの生産装置、制御システムの生産方法及びプログラム 図4
  • 特許-制御システムの生産装置、制御システムの生産方法及びプログラム 図5
  • 特許-制御システムの生産装置、制御システムの生産方法及びプログラム 図6
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-10-28
(45)【発行日】2024-11-06
(54)【発明の名称】制御システムの生産装置、制御システムの生産方法及びプログラム
(51)【国際特許分類】
   G05B 13/04 20060101AFI20241029BHJP
【FI】
G05B13/04
【請求項の数】 19
(21)【出願番号】P 2022555003
(86)(22)【出願日】2020-10-06
(86)【国際出願番号】 JP2020037868
(87)【国際公開番号】W WO2022074734
(87)【国際公開日】2022-04-14
【審査請求日】2023-06-19
(73)【特許権者】
【識別番号】504137912
【氏名又は名称】国立大学法人 東京大学
(73)【特許権者】
【識別番号】000006622
【氏名又は名称】株式会社安川電機
(74)【代理人】
【識別番号】100088155
【弁理士】
【氏名又は名称】長谷川 芳樹
(74)【代理人】
【識別番号】100145012
【弁理士】
【氏名又は名称】石坂 泰紀
(74)【代理人】
【識別番号】100171099
【弁理士】
【氏名又は名称】松尾 茂樹
(72)【発明者】
【氏名】藤本 博志
(72)【発明者】
【氏名】北吉 良平
【審査官】田中 友章
(56)【参考文献】
【文献】特開2007-149124(JP,A)
【文献】特開2007-109103(JP,A)
【文献】特開2003-295906(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G05B 13/04
(57)【特許請求の範囲】
【請求項1】
制御対象に対する指令の時間変化を表す指令プロファイルと、前記指令プロファイルに応じた前記制御対象の状態の時間変化を表す応答プロファイルとに基づいて、前記指令に対する前記制御対象の応答特性の少なくとも一部を表す線形な第1モデルを生成する第1モデル生成部と、
前記指令プロファイルと、前記応答プロファイルと、前記第1モデルとに基づいて、前記応答特性のうち前記第1モデルに含まれない非線形な特性を表す第2モデルを生成する第2モデル生成部と、
前記指令プロファイルと、前記第1モデルと、前記第2モデルとに基づいて、前記指令プロファイルに応じた前記制御対象の状態の時間変化をシミュレーションした仮想応答プロファイルを生成し、前記応答プロファイルに対する前記仮想応答プロファイルの誤差を評価するモデル評価部と、
前記第1モデルと、前記第2モデルとに基づいて、制御目標と、前記制御目標に前記制御対象を追従させるための前記指令との関係を定める制御パラメータを生成するパラメータ生成部と、を備え、
前記第2モデル生成部は、
予め準備された複数種類の単位モデルの重み付け和に基づいて前記第2モデルを仮生成し、
前記第2モデルに基づく前記誤差の評価結果に基づいて、前記第2モデルにおける前記複数種類の単位モデルの重みを変更することを、所定条件が満たされるまで繰り返して前記第2モデルを生成する、制御システムの生産装置。
【請求項2】
前記複数種類の単位モデルのそれぞれは、指令に対する非線形な特性を表すモデルである、請求項記載の制御システムの生産装置。
【請求項3】
前記第2モデル生成部は、
前記第2モデルにおける前記複数種類の単位モデルの重みと、前記誤差の評価結果との関係を表す誤差モデルを、仮生成した前記第2モデルと、仮生成した前記第2モデルに基づく前記誤差の評価結果とに基づいて生成し、
所定の目標誤差と、前記誤差モデルとに基づいて、前記重みを変更することと、前記重みの変更後の前記第2モデルと、前記重みの変更後の前記第2モデルに基づく前記誤差の評価結果とに基づいて前記誤差モデルを更新することとを、所定条件が満たされるまで繰り返して前記第2モデルを生成する、請求項1又は2記載の制御システムの生産装置。
【請求項4】
前記第1モデル生成部は、前記指令プロファイルと、前記応答プロファイルとに基づいて、前記指令の周波数と、前記指令に対する前記制御対象の応答ゲインとの関係を表すゲインプロファイルを生成し、周波数特性を前記ゲインプロファイルにフィットさせた線形モデルに基づいて前記第1モデルを生成する、請求項1~3のいずれか一項記載の制御システムの生産装置。
【請求項5】
前記第1モデル生成部は、前記第2モデルが生成された後における前記誤差の評価結果が所定レベルを超えている場合に、前記指令プロファイルと、前記応答プロファイルと、前記第2モデルとに基づいて前記第1モデルを再生成する、請求項4記載の制御システムの生産装置。
【請求項6】
前記第1モデル生成部は、前記第2モデルが生成された後における前記誤差の評価結果が所定レベルを超えている場合に、前記指令プロファイルと、前記応答プロファイルと、前記第2モデルとに基づいて前記ゲインプロファイルを変更し、前記線形モデルの周波数特性を変更後の前記ゲインプロファイルにフィットさせて前記第1モデルを再生成する、請求項5記載の制御システムの生産装置。
【請求項7】
前記第1モデル生成部は、前記第2モデルが生成された後における前記誤差の評価結果が所定レベルを超えている場合に、前記指令プロファイルと、前記応答プロファイルと、前記第2モデルとに基づいて、前記応答プロファイルから前記第2モデルの応答を除去した修正プロファイルを生成し、前記指令プロファイルと、前記修正プロファイルとに基づいて前記ゲインプロファイルを変更する、請求項6記載の制御システムの生産装置。
【請求項8】
前記第2モデル生成部は、前記第1モデルが再生成された後における前記誤差の評価結果が所定レベルを超えている場合に、前記指令プロファイルと、前記応答プロファイルと、前記第1モデルとに基づいて前記第2モデルを再生成する、請求項5~7のいずれか一項記載の制御システムの生産装置。
【請求項9】
前記第1モデル生成部は、前記第2モデルが生成された後における前記誤差の評価結果が所定のレベルを超えている場合に、前記指令プロファイルと、前記応答プロファイルと、前記第2モデルとに基づいて前記第1モデルを再生成する、請求項1~4のいずれか一項記載の制御システムの生産装置。
【請求項10】
前記第2モデル生成部は、前記第2モデルに基づく前記誤差の評価結果に基づいて、前記第2モデルを変更することを、前記誤差の評価結果が前記レベルよりも高い第2レベル以下となるまで繰り返して前記第2モデルを生成する、請求項記載の制御システムの生産装置。
【請求項11】
前記第2モデル生成部は、前記第1モデルが再生成された後における前記誤差の評価結果が前記レベルを超えている場合に、前記指令プロファイルと、前記応答プロファイルと、前記第1モデルとに基づいて前記第2モデルを再生成する、請求項9又は10記載の制御システムの生産装置。
【請求項12】
前記制御対象は、駆動対象と、前記駆動対象を駆動するモータとを有し、
前記指令は、前記モータに発生させる駆動力の指令であり、前記制御対象の状態は、前記駆動対象の速度である、請求項1~11のいずれか一項記載の制御システムの生産装置。
【請求項13】
前記制御対象は、駆動対象と、前記駆動対象を駆動するモータとを有し、
前記指令は、前記モータに発生させる駆動力の指令であり、前記制御対象の状態は、前記駆動対象の位置である、請求項1~12のいずれか一項記載の制御システムの生産装置。
【請求項14】
前記指令プロファイルにおける前記指令の時間変化は、前記指令の振動を含む、請求項1~13のいずれか一項記載の制御システムの生産装置。
【請求項15】
制御対象に対する指令の時間変化を表す指令プロファイルと、前記指令プロファイルに応じた前記制御対象の状態の時間変化を表す応答プロファイルとに基づいて、前記指令に対する前記制御対象の応答特性の少なくとも一部を表す線形な第1モデルを生成する第1モデル生成部と、
前記指令プロファイルと、前記応答プロファイルと、前記第1モデルとに基づいて、前記応答特性のうち前記第1モデルに含まれない非線形な特性を表す第2モデルを生成する第2モデル生成部と、
前記指令プロファイルと、前記第1モデルと、前記第2モデルとに基づいて、前記指令プロファイルに応じた前記制御対象の状態の時間変化をシミュレーションした仮想応答プロファイルを生成し、前記応答プロファイルに対する前記仮想応答プロファイルの誤差を評価するモデル評価部と、
前記第1モデルと、前記第2モデルとに基づいて、制御目標と、前記制御目標に前記制御対象を追従させるための前記指令との関係を定める制御パラメータを生成するパラメータ生成部と、を備え、
前記第2モデル生成部は、
前記第2モデルを仮生成し、
前記第2モデルに基づく前記誤差の評価結果に基づいて、前記第2モデルを変更することを、所定条件が満たされるまで繰り返して前記第2モデルを生成し、
前記第1モデル生成部は、前記第2モデルが生成された後における前記誤差の評価結果が所定のレベルを超えている場合に、前記指令プロファイルと、前記応答プロファイルと、前記第2モデルとに基づいて前記第1モデルを再生成する、制御システムの生産装置。
【請求項16】
制御対象に対する指令の時間変化を表す指令プロファイルと、前記指令プロファイルに応じた前記制御対象の状態の時間変化を表す応答プロファイルとに基づいて、前記指令に対する前記制御対象の応答特性の少なくとも一部を表す線形な第1モデルを生成することと、
予め準備された複数種類の単位モデルの重み付け和に基づいて、前記応答特性のうち前記第1モデルに含まれない非線形な特性を表す第2モデルを仮生成することと、
前記指令プロファイルと、前記第1モデルと、前記第2モデルとに基づいて、前記指令プロファイルに応じた前記制御対象の状態の時間変化をシミュレーションした仮想応答プロファイルを生成し、前記応答プロファイルに対する前記仮想応答プロファイルの誤差を評価することと、
前記第2モデルに基づく前記誤差の評価結果に基づいて、前記第2モデルにおける前記複数種類の単位モデルの重みを変更することを、所定条件が満たされるまで繰り返して前記第2モデルを生成することと、
前記第1モデルと、前記第2モデルとに基づいて、制御目標と、前記制御目標に前記制御対象を追従させるための前記指令との関係を定める制御パラメータを生成することと、を含む制御システムの生産方法。
【請求項17】
制御対象に対する指令の時間変化を表す指令プロファイルと、前記指令プロファイルに応じた前記制御対象の状態の時間変化を表す応答プロファイルとに基づいて、前記指令に対する前記制御対象の応答特性の少なくとも一部を表す線形な第1モデルを生成することと、
前記応答特性のうち前記第1モデルに含まれない非線形な特性を表す第2モデルを仮生成することと、
前記指令プロファイルと、前記第1モデルと、前記第2モデルとに基づいて、前記指令プロファイルに応じた前記制御対象の状態の時間変化をシミュレーションした仮想応答プロファイルを生成し、前記応答プロファイルに対する前記仮想応答プロファイルの誤差を評価することと、
前記第2モデルに基づく前記誤差の評価結果に基づいて、前記第2モデルを変更することを、所定条件が満たされるまで繰り返して前記第2モデルを生成することと、
前記第2モデルが生成された後における前記誤差の評価結果が所定のレベルを超えている場合に、前記指令プロファイルと、前記応答プロファイルと、前記第2モデルとに基づいて前記第1モデルを再生成することと、
前記第1モデルと、前記第2モデルとに基づいて、制御目標と、前記制御目標に前記制御対象を追従させるための前記指令との関係を定める制御パラメータを生成することと、を含む制御システムの生産方法。
【請求項18】
制御対象に対する指令の時間変化を表す指令プロファイルと、前記指令プロファイルに応じた前記制御対象の状態の時間変化を表す応答プロファイルとに基づいて、前記指令に対する前記制御対象の応答特性の少なくとも一部を表す線形な第1モデルを生成することと、
予め準備された複数種類の単位モデルの重み付け和に基づいて、前記応答特性のうち前記第1モデルに含まれない非線形な特性を表す第2モデルを仮生成することと、
前記指令プロファイルと、前記第1モデルと、前記第2モデルとに基づいて、前記指令プロファイルに応じた前記制御対象の状態の時間変化をシミュレーションした仮想応答プロファイルを生成し、前記応答プロファイルに対する前記仮想応答プロファイルの誤差を評価することと、
前記第2モデルに基づく前記誤差の評価結果に基づいて、前記第2モデルにおける前記複数種類の単位モデルの重みを変更することを、所定条件が満たされるまで繰り返して前記第2モデルを生成することと、
前記第1モデルと、前記第2モデルとに基づいて、制御目標と、前記制御目標に前記制御対象を追従させるための前記指令との関係を定める制御パラメータを生成することと、を装置に実行させるプログラム。
【請求項19】
制御対象に対する指令の時間変化を表す指令プロファイルと、前記指令プロファイルに応じた前記制御対象の状態の時間変化を表す応答プロファイルとに基づいて、前記指令に対する前記制御対象の応答特性の少なくとも一部を表す線形な第1モデルを生成することと、
前記応答特性のうち前記第1モデルに含まれない非線形な特性を表す第2モデルを仮生成することと、
前記指令プロファイルと、前記第1モデルと、前記第2モデルとに基づいて、前記指令プロファイルに応じた前記制御対象の状態の時間変化をシミュレーションした仮想応答プロファイルを生成し、前記応答プロファイルに対する前記仮想応答プロファイルの誤差を評価することと、
前記第2モデルに基づく前記誤差の評価結果に基づいて、前記第2モデルを変更することを、所定条件が満たされるまで繰り返して前記第2モデルを生成することと、
前記第2モデルが生成された後における前記誤差の評価結果が所定のレベルを超えている場合に、前記指令プロファイルと、前記応答プロファイルと、前記第2モデルとに基づいて前記第1モデルを再生成することと、
前記第1モデルと、前記第2モデルとに基づいて、制御目標と、前記制御目標に前記制御対象を追従させるための前記指令との関係を定める制御パラメータを生成することと、を装置に実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、制御システムの生産装置、制御システムの生産方法及びプログラムに関する。
【背景技術】
【0002】
特許文献1には、ロボット及び障害物に関するモデル情報を記憶したモデル記憶部と、ロボットと障害物との衝突を回避しつつ、ロボットの先端部を開始位置から終了位置まで移動させ得るパスをモデル情報に基づいて生成する情報処理部と、を備えるロボットシミュレータが開示されている。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2018-134703号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
本開示は、シミュレーションの精度向上に有効な制御システムの生産装置及び制御システムの生産方法を提供する。
【課題を解決するための手段】
【0005】
本開示の一側面に係る制御システムの生産装置は、制御対象に対する指令の時間変化を表す指令プロファイルと、指令プロファイルに応じた制御対象の状態の時間変化を表す応答プロファイルとに基づいて、指令に対する制御対象の応答特性の少なくとも一部を表す第1モデルを生成する第1モデル生成部と、指令プロファイルと、応答プロファイルと、第1モデルとに基づいて、応答特性のうち第1モデルに含まれない特性を表す第2モデルを生成する第2モデル生成部と、第1モデルと、第2モデルとに基づいて、指令と、指令に制御対象を追従させるための制御量との関係を定める制御パラメータを生成するパラメータ生成部と、を備える。
【0006】
本開示の他の側面に係る制御システムの生産方法は、制御対象に対する指令の時間変化を表す指令プロファイルと、指令プロファイルに応じた制御対象の状態の時間変化を表す応答プロファイルとに基づいて、指令に対する制御対象の応答特性の少なくとも一部を表す第1モデルを生成することと、指令プロファイルと、応答プロファイルと、第1モデルとに基づいて、応答特性のうち第1モデルに含まれない特性を表す第2モデルを生成することと、第1モデルと、第2モデルとに基づいて、指令と、指令に制御対象を追従させるための制御量との関係を定める制御パラメータを生成することと、を含む。
【0007】
本開示の更に他の側面に係るプログラムは、制御対象に対する指令の時間変化を表す指令プロファイルと、指令プロファイルに応じた制御対象の状態の時間変化を表す応答プロファイルとに基づいて、指令に対する制御対象の応答特性の少なくとも一部を表す第1モデルを生成することと、指令プロファイルと、応答プロファイルと、第1モデルとに基づいて、応答特性のうち第1モデルに含まれない特性を表す第2モデルを生成することと、第1モデルと、第2モデルとに基づいて、指令と、指令に制御対象を追従させるための制御量との関係を定める制御パラメータを生成することと、を装置に実行させる。
【発明の効果】
【0008】
本開示によれば、シミュレーションの精度向上に有効な制御システムの生産装置及び制御システムの生産方法を提供することができる。
【図面の簡単な説明】
【0009】
図1】制御システムの構成を例示する模式図である。
図2】制御装置のハードウェア構成を例示する模式図である。
図3】モータの制御手順を例示するフローチャートである。
図4】パラメータ生成手順を例示するフローチャートである。
図5】制御パラメータに基づくモータの制御手順を例示するフローチャートである。
図6】ロボットの概略構成を例示する模式図である。
【発明を実施するための形態】
【0010】
以下、実施形態について、図面を参照しつつ詳細に説明する。説明において、同一要素又は同一機能を有する要素には同一の符号を付し、重複する説明を省略する。
【0011】
〔制御システム〕
図1に示すように、本実施形態に係る制御システム1は、制御対象2と、制御対象2を制御する制御装置100とを備えるシステムである。制御対象2は、モータ3と、伝達機構5と、駆動対象4と、センサ6とを含む。制御対象2における駆動対象4の形状・構造・大きさ、並びにモータ3の数及び大きさに特に制限はない。以下においては、モータ3が1つであり、駆動対象4が1つの剛体である場合を例示する。
【0012】
モータ3は、電力の供給に応じて、駆動対象4を駆動するための動力を発生させる。モータ3は、駆動対象4を回転駆動する回転型モータであってもよいし、駆動対象4を直線に沿って変位させるリニア型モータであってもよい。モータ3は、同期電動機であってもよいし、誘導電動機であってもよい。モータ3は、SPM(Surface Permanent Magnet)モータ、又はIPM(Interior Permanent Magnet)モータ等の永久磁石型の同期電動機であってもよいし、シンクロナスリラクタンスモータのように永久磁石を有しない同期電動機であってもよい。
【0013】
伝達機構5は、モータ3の出力軸の速度を駆動対象4に伝達する。伝達機構5は、例えばモータ3の出力軸の速度に対して駆動対象4の速度が低くなるように構成された減速機である。例えば伝達機構5は、所定の減速比にてモータ3から駆動対象4に動力を伝達する複数のギヤを含む。
【0014】
センサ6は、指令に対応する制御対象2の応答値を検出する。応答値の具体例としては、駆動対象4の位置又は速度が挙げられる。なお、モータ3が回転型である場合、モータ3による駆動対象4の回転角度が「位置」に相当し、モータ3による駆動対象4の回転速度が「速度」に相当する。また、トルクが駆動力に相当する。センサ6の具体例としては、駆動対象4の動作速度に比例した周波数のパルス信号を出力するロータリーエンコーダが挙げられる。ロータリーエンコーダによれば、駆動対象4の位置及び速度の両方を取得することができる。
【0015】
制御装置100は、駆動対象4に所望の動作をさせるようにモータ3を制御する。制御装置100は、予め生成された制御パラメータに基づいてモータ3を制御する。制御パラメータは、制御対象2に対する動作指令と、制御対象2を動作指令に追従させるため制御量の少なくとも一部との関係を定める。動作指令の具体例としては、駆動対象4に対する位置指令、速度指令等が挙げられる。制御量の具体例としては、モータ3に対する駆動力指令が挙げられる。
【0016】
制御パラメータの具体例としては、所謂フィードバック制御における比例ゲイン、積分ゲイン、微分ゲイン等が挙げられる。制御パラメータの他の例としては、フィードバック制御における応答遅れを補償するフィードフォワード補償用のパラメータが挙げられる。
【0017】
これらの制御パラメータは、制御対象2のモデルに基づき生成可能である。制御対象2のモデルは、制御指令に対する制御対象2の応答特性の少なくとも一部を表す。制御装置100は、制御対象2のモデルを生成することと、モデルに基づいて制御パラメータを生成することとを実行するように構成されていてもよい。
【0018】
モデル及び制御パラメータを生成することは、制御装置100の少なくとも一部を生産することに相当する。よって、モデル及び制御パラメータを生成する機能を有する制御装置100は、制御装置100自体の生産装置(制御システム1の生産装置)を含んでいるといえる。生産装置は、必ずしも制御装置100に含まれていなくてもよく、制御装置100と通信可能な他の装置に含まれていてもよい。他の装置の具体例としては、制御装置100と通信可能な上位コントローラ(例えばプログラマブルロジックコントローラ)、パーソナルコンピュータ又は携帯端末等が挙げられる。
【0019】
ここで、適切な制御パラメータを生成するには、適切なモデルを生成することが必要となる。モデルの具体例としては、線形微分方程式により表される線形モデルが挙げられる。しかしながら、実際の制御対象2は、線形モデルによるモデル化が難しい成分を含んでいる。モデル化が難しい成分の具体例としては、伝達機構5のバックラッシュによるがたつき、制御対象2の内部で生じるクーロン摩擦、デジタル信号処理における量子化誤差等が挙げられる。制御装置100は、線形モデルによるモデル化が難しい成分も含むモデルを生成し、生成したモデルに基づき制御パラメータを生成する。
【0020】
例えば制御装置100は、制御対象2に対する指令の時間変化を表す指令プロファイルと、指令プロファイルに応じた制御対象2の状態の時間変化を表す応答プロファイルとに基づいて、制御対象2の応答特性の少なくとも一部を表す第1モデルを生成することと、指令プロファイルと、応答プロファイルと、第1モデルとに基づいて、応答特性のうち第1モデルに含まれない特性を表す第2モデルを生成することと、第1モデルと、第2モデルとに基づいて制御パラメータを生成することと、を実行するように構成されている。
【0021】
指令の具体例としては、モータ3に発生させる駆動力の指令(以下、「駆動力指令」という。)が挙げられるが、これに限られない。指令は、モータ3の速度の指令であってもよいし、モータ3の位置の指令であってもよい。
【0022】
応答の具体例としては、駆動対象4の速度、駆動対象4の位置等が挙げられるが、これに限られない。応答は、モータ3から駆動対象4に伝わった駆動力であってもよいし、駆動力を伝えるためにモータ3に供給された駆動電流であってもよい。以下、指令が駆動力指令であり、応答が駆動対象4の速度又は位置である場合を具体的に例示する。
【0023】
例えば制御装置100は、機能上の構成要素(以下、「機能ブロック」という。)として、指令プロファイル記憶部111と、制御部112と、応答プロファイル記憶部113と、第1モデル生成部114と、ゲインプロファイル記憶部115と、第2モデル生成部132と、モデル記憶部121と、パラメータ生成部141と、パラメータ記憶部142とを備える。
【0024】
指令プロファイル記憶部111は、上記指令プロファイルを記憶する。指令プロファイルは、時間の経過に応じて増減を繰り返す振動を含んでいてもよい。指令プロファイルの例としては、チャープ信号、マルチサイン信号、擬似ランダム信号、ランダム信号、短時間不規則信号、インパルス加振信号等の各種信号が挙げられる。指令プロファイル記憶部111は、関数として連続的に示された指令プロファイルを記憶していてもよいし、時系列の指令値群(例えばテーブル)として離散的に示された指令プロファイルを記憶していてもよい。
【0025】
制御部112は、モータ3を駆動する。例えば制御部112は、指令プロファイル記憶部111が記憶する指令プロファイルに基づいて駆動電力を生成し、モータ3に供給することを所定の制御周期で繰り返し実行する。
【0026】
モータ3を駆動する際に、制御部112は、指令プロファイルに応じた制御対象2の状態(例えば駆動対象4の速度、位置)の時間変化を表す応答プロファイルを取得し、応答プロファイル記憶部113に記憶させる。例えば制御部112は、制御部112が指令プロファイルに基づいてモータ3を駆動する期間に、各制御周期においてセンサ6による駆動対象4の状態の検出値を取得し、時系列で応答プロファイル記憶部113に記憶させる。
【0027】
第1モデル生成部114は、指令プロファイル記憶部111が記憶する指令プロファイルと、当該指令プロファイルに対応して応答プロファイル記憶部113が記憶する応答プロファイルとに基づいて、上記第1モデルを生成する。例えば第1モデル生成部114は、指令プロファイルと、応答プロファイルとに基づいて、指令の周波数と、指令に対する制御対象2の応答ゲインとの関係を表すゲインプロファイルを生成し、ゲインプロファイル記憶部115に記憶させる。例えば第1モデル生成部114は、FFT(Fast Fourier Transform)等の周波数解析手法によってゲインプロファイルを生成する。応答ゲインは、応答プロファイルの振幅と、指令プロファイルの振幅との関係を表す値であり、例えば指令プロファイルの振幅に対する応答プロファイルの振幅の倍率である。
【0028】
第1モデル生成部114は、周波数特性をゲインプロファイルにフィットさせた線形モデルに基づいて第1モデルを生成する。線形モデルは、経過時間と入力との関係を表す入力関数と、経過時間と出力との関係を表す出力関数との関係を、線形微分方程式で表したモデルである。フィットさせるとは、完全に一致させることを意味するのではなく、近似させることを意味する。フィッティング手法の具体例としては、最小二乗法、多項式近似、円近似、各種関数(三角関数、B-Spline等)による近似等が挙げられる。
【0029】
第1モデル生成部114は、ゲインプロファイルと線形モデルとの関係を表すように機械学習により生成された学習済みモデルに基づいて第1モデルを生成してもよい。第1モデル生成部114は、生成した第1モデルをモデル記憶部121に記憶させる。
【0030】
第2モデル生成部132は、指令プロファイルと、応答プロファイルと、第1モデルとに基づいて、上記第2モデルを生成する。第2モデル生成部132は、予め準備された複数種類の単位モデルに基づいて第2モデルを生成してもよい。例えば、制御装置100は、上記複数種類の単位モデルを記憶する単位モデル記憶部131を更に備え、第2モデル生成部132は単位モデル記憶部131が記憶する複数種類の単位モデルに基づいて第2モデルを生成する。
【0031】
複数種類の単位モデルの少なくともいずれかは、指令に対する非線形な特性を表す非線形モデルであってもよい。単位モデルの具体例としては、モータ3の速度と、モータ3に作用するクーロン摩擦との関係を表すモデルが挙げられる。速度が負の値から正の値に切り替わるのに応じて、クーロン摩擦も負の値から正の値にステップ状に変化するので、速度とクーロン摩擦との関係は非線形となる。
【0032】
単位モデルの他の例としては、モータ3の位置と駆動対象4の位置との差と、モータ3から駆動対象4に伝わるトルクの大きさとの関係を表すモデルが挙げられる。モータ3の位置と駆動対象4の位置との差は、上述した伝達機構5のバックラッシュ等により生じる。バックラッシュの存在によりギヤ同士がかみ合っていない状態と、ギヤ同士がかみ合っている状態とで、モータ3から駆動対象4に伝わるトルクはステップ状に変化するので、モータ3の位置と駆動対象4の位置との差と、モータ3から駆動対象4に伝わるトルクとの関係は非線形となる。単位モデルの他の例としては、センサ6により制御対象2の状態がデジタル化される際の量子化誤差を表すモデルが挙げられる。第2モデル生成部132は、生成した第2モデルをモデル記憶部121に記憶させる。
【0033】
第2モデル生成部132は、複数種類の単位モデルの重み付け和に基づいて第2モデルを仮生成し、第1モデルと第2モデルとのモデル化誤差の評価結果に基づいて、第2モデルにおける複数種類の単位モデルの重みを変更することを、所定条件が満たされるまで繰り返して第2モデルを生成してもよい。
【0034】
例えば制御装置100は、モデル評価部122と、仮想プロファイル記憶部123とを更に備える。モデル評価部122は、指令プロファイル記憶部111が記憶する指令プロファイルと、モデル記憶部121が記憶する第1モデル及び第2モデルとに基づいて、指令プロファイルに応じた制御対象2の状態の時間変化をシミュレーションした仮想応答プロファイルを生成し、仮想プロファイル記憶部123に記憶させる。
【0035】
モデル評価部122は、応答プロファイル記憶部113が記憶する応答プロファイルと、仮想プロファイル記憶部123が記憶する仮想応答プロファイルとに基づいて、応答プロファイルに対する仮想応答プロファイルの誤差を評価する。応答プロファイルに対する仮想応答プロファイルの誤差は、上記モデル化誤差の一例である。
【0036】
モデル評価部122は、上記誤差の評価結果を表す数値を出力し得る限り、誤差の評価における演算手法に特に制限はない。例えばモデル評価部122は、誤差の絶対値を時間積分した値を評価結果として出力してもよいし、誤差の絶対値の時間平均値を評価結果として出力してもよい。また、モデル評価部122は、誤差の二乗を時間積分した値を評価結果として出力してもよいし、誤差の二乗の時間平均値を評価結果として出力してもよいし、当該時間平均値の平方根を評価結果として出力してもよい。モデル評価部122は、モデル記憶部121の記憶内容が更新される度に、上記誤差の評価結果を出力してもよい。
【0037】
第2モデル生成部132は、複数種類の単位モデルの重み付け和に基づいて第2モデルを仮生成し、モデル記憶部121に記憶させる。これにより、モデル記憶部121の記憶内容が更新されると、モデル評価部122が、上記誤差を評価する。第2モデル生成部132は、モデル評価部122による誤差の評価結果に基づいて、第2モデルにおける複数種類の単位モデルの重みを変更し、変更後の第2モデルをモデル記憶部121に記憶させることを、所定条件が満たされるまで繰り返す。上記所定条件が満たされたタイミングで、モデル記憶部121に記憶される第2モデルが、第2モデル生成部132による第2モデルの生成結果となる。
【0038】
所定条件の具体例としては、誤差の評価結果が所定レベル(以下、「第2レベル」という。)以下となることが挙げられる。この場合、第2モデル生成部132は、所定条件を満たした第2モデルを本生成結果としてモデル記憶部121に保存させてもよい。所定条件は、第2モデルにおける複数種類の単位モデルの重みの変更回数が所定回数となることが挙げられる。この場合、第2モデル生成部132は、所定条件を満たすまでに生成された第2モデルのうち、誤差の評価結果が最も小さい第2モデルを本生成結果としてモデル記憶部121に保存させてもよい。
【0039】
第2モデル生成部132は、第2モデルにおける複数種類の単位モデルの重みと、誤差の評価結果との関係を表す誤差モデルを、仮生成した第2モデルと、仮生成した第2モデルに基づく誤差の評価結果とに基づいて生成し、所定の目標誤差と誤差モデルとに基づいて重みを変更することと、重みの変更後の第2モデルと、重みの変更後の第2モデルに基づく誤差の評価結果とに基づいて誤差モデルを更新することとを、所定条件が満たされるまで繰り返して第2モデルを生成してもよい。誤差モデルの具体例としては、例えばベイズ推定による統計モデルが挙げられる。所定の目標誤差は、上記第2レベル以下である。
【0040】
例えば制御装置100は、学習データ記憶部133と、誤差モデル記憶部134とを更に備える。第2モデル生成部132は、仮生成した第2モデルと、仮生成した第2モデルに基づく誤差の評価結果とを対応付けたレコードを学習データ記憶部133に記憶させる。第2モデル生成部132は、学習データ記憶部133が記憶するレコードに基づいて初期の誤差モデルを生成し、生成した初期の誤差モデルを誤差モデル記憶部134に記憶させる。第2モデル生成部132は、上記重みをランダムに変更することと、重みの変更後の第2モデルに対応する上記レコードを学習データ記憶部133に記憶させることとを1回以上行い、これにより学習データ記憶部133に蓄積された複数のレコードに基づいて初期の誤差モデルを生成してもよい。
【0041】
初期の誤差モデルを生成した後、第2モデル生成部132は、以下の手順を所定条件が満たされるまで繰り返す。
i) 上記目標誤差と誤差モデルとに基づいて重みを変更し、重みの変更後の第2モデルをモデル記憶部121に記憶させる。
ii) 重みの変更後の第2モデルと、重みの変更後の第2モデルに基づく誤差の評価結果とを対応付けたレコードを学習データ記憶部133に蓄積する。
iii) 学習データ記憶部133が蓄積するレコードに基づいて誤差モデル記憶部134の誤差モデルを更新する。
【0042】
第1モデル生成部114は、第2モデルが生成された後におけるモデル評価部122による誤差の評価結果が所定レベルを超えている場合に、指令プロファイルと、応答プロファイルと、第2モデルとに基づいて第1モデルを再生成してもよい。ここでの所定レベル(以下、「第1レベル」という。)は、上記第2レベルよりも低い値であってもよい(第2レベルは第1レベルよりも高い値であってもよい)。
【0043】
例えば第1モデル生成部114は、第2モデルが生成された後における誤差の評価結果が第1レベルを超えている場合に、指令プロファイルと、応答プロファイルと、第2モデルとに基づいてゲインプロファイルを変更し、線形モデルの周波数特性を変更後のゲインプロファイルにフィットさせて第1モデルを再生成してもよい。
【0044】
例えば第1モデル生成部114は、指令プロファイルと、応答プロファイルと、第2モデルとに基づいて、応答プロファイルから第2モデルの応答を除去した修正プロファイルを生成し、指令プロファイルと、修正プロファイルとに基づいてゲインプロファイルを変更してもよい。
【0045】
第2モデル生成部132は、第1モデルが再生成された後における誤差の評価結果が所定レベル(例えば上記第1レベル)を超えている場合に、指令プロファイルと、応答プロファイルと、第1モデルとに基づいて第2モデルを再生成してもよい。なお、第2モデル生成部132は、第1モデルが再生された場合に、第2モデルの再生成の要否を判定することなく、第2モデルを再生成してもよい。
【0046】
このように、第2モデルが生成された後に、必要に応じ第1モデルを再生成し、第1モデルが再生成された後に、必要に応じ第2モデルを再生成する方式によれば、第1モデルの生成結果と、第2モデルの生成結果とが相互に影響し合い、制御対象2のモデル化精度が更に向上し得る。
【0047】
パラメータ生成部141は、モデル記憶部121が記憶する第1モデル及び第2モデルに基づいて、指令と、指令に制御対象2を追従させるための制御量との関係を定める制御パラメータを生成する。一例として、パラメータ生成部141は、指令と、指令に制御対象2を追従させるためのフィードフォワード補償値との関係を定める制御パラメータを生成する。フィードフォワード補償値の具体例としては、フィードバック制御による制御偏差(例えば指令値と、指令値に対する制御対象2の応答値との偏差)を縮小するように、フィードバック制御による制御量に加算される補償値が挙げられる。パラメータ生成部141は、生成した制御パラメータをパラメータ記憶部142に記憶させる。
【0048】
制御パラメータが生成された後、制御部112は、当該制御パラメータに基づいてモータ3を制御する。一例として、モータ3の位置を制御する場合、制御部112は、センサ6の検出値に基づいて駆動対象4の現在位置及び現在速度の情報を取得し、これらを目標位置及び目標速度に追従させるように駆動電力を生成する。一例として、制御部112は、目標位置と現在位置との偏差(以下、「位置偏差」という。)に比例演算、比例・積分演算、又は比例・積分・微分演算等を施して、位置偏差を縮小させるための目標速度を算出する。また、制御部112は、目標速度と現在速度との偏差(以下、「速度偏差」という。)に比例演算、比例・積分演算、又は比例・積分・微分演算等を施して、速度偏差を縮小させるための駆動力指令を算出する。
【0049】
更に、制御部112は、目標位置及び目標速度の少なくともいずれかと、パラメータ記憶部142が記憶する制御パラメータとに基づいて、上記フィードフォワード補償値を算出する。制御部112は、上記駆動力指令にフィードフォワード補償値を加算して補正後指令を算出し、補正後指令に基づいて駆動電力を生成し、モータ3に供給する。制御部112は、以上の手順を所定の制御周期で繰り返す。
【0050】
図2は、制御装置100のハードウェア構成を例示するブロック図である。図2に示すように、制御装置100は、回路190を有する。回路190は、一つ又は複数のプロセッサ191と、メモリ192と、ストレージ193と、入出力ポート194と、ドライバ回路195とを含む。ストレージ193は、例えば不揮発性の半導体メモリ等、コンピュータによって読み取り可能な記憶媒体を有する。ストレージ193は、制御対象2に対する指令の時間変化を表す指令プロファイルと、指令プロファイルに応じた制御対象2の状態の時間変化を表す応答プロファイルとに基づいて、指令に対する制御対象2の応答特性の少なくとも一部を表す第1モデルを生成することと、指令プロファイルと、応答プロファイルと、第1モデルとに基づいて、応答特性のうち第1モデルに含まれない特性を表す第2モデルを生成することと、第1モデルと、第2モデルとに基づいて、指令と、指令に制御対象2を追従させるための制御量との関係を定める制御パラメータを生成することと、を制御装置100に実行させるプログラムを記憶している。
【0051】
メモリ192は、ストレージ193の記憶媒体からロードしたプログラム及びプロセッサ191による演算結果を一時的に記憶する。プロセッサ191は、メモリ192と協働して上記プログラムを実行することで、制御装置100の各機能ブロックを構成する。入出力ポート194は、プロセッサ191からの指令に従って、センサ6との間で電気信号の入出力を行う。ドライバ回路195は、プロセッサ191からの指令に従って、モータ3に駆動電力を出力する。
【0052】
なお、制御装置100は、必ずしもプログラムにより各機能を構成するものに限られない。例えば制御装置100は、専用の論理回路又はこれを集積したASIC(Application Specific Integrated Circuit)により少なくとも一部の機能を構成してもよい。
【0053】
〔制御パラメータの生成手順〕
続いて、制御装置の生産方法の一例として、制御装置100が実行する制御パラメータの生成手順を例示する。この手順は、制御対象2に対する指令の時間変化を表す指令プロファイルと、指令プロファイルに応じた制御対象2の状態の時間変化を表す応答プロファイルとに基づいて、指令に対する制御対象2の応答特性の少なくとも一部を表す第1モデルを生成することと、指令プロファイルと、応答プロファイルと、第1モデルとに基づいて、応答特性のうち第1モデルに含まれない特性を表す第2モデルを生成することと、第1モデルと、第2モデルとに基づいて、指令と、指令に制御対象2を追従させるための制御量との関係を定める制御パラメータを生成することと、を含む。以下、応答プロファイルの取得手順と、取得した応答プロファイルに基づく制御パラメータの生成手順とを詳細に説明する。
【0054】
(応答プロファイルの取得手順)
図3に示すように、制御装置100は、ステップS01,S02,S03を順に実行する。ステップS01では、制御部112がモータ3を駆動する。例えば制御部112は、指令プロファイル記憶部111が記憶する指令プロファイルに基づいて駆動電力を生成し、モータ3に供給する。ステップS02では、制御部112が、センサ6による駆動対象4の状態の検出値を取得し、時系列で応答プロファイル記憶部113に記憶させる。ステップS03では、制御部112が、指令プロファイルの全期間に亘って、指令プロファイルに基づく駆動電力の供給が完了したかを確認する。
【0055】
ステップS03において指令プロファイルに基づく駆動電力の供給が完了していない期間が残っていると判定した場合、制御装置100は処理をステップS01に戻す。以後、制御装置100は、指令プロファイルの全期間に亘って駆動電力の供給が完了するまで、指令プロファイルに基づく駆動電力をモータ3に供給することと、センサ6による駆動対象4の状態の検出値を取得することと、を所定の制御周期で繰り返す。ステップS03において指令プロファイルの全期間に亘って指令プロファイルに基づく駆動電力の供給が完了したと判定した場合、応答プロファイルの取得が完了する。
【0056】
(制御パラメータの生成手順)
図4に示すように、制御装置100は、まずステップS11,S12,S13,S14,S15を実行する。ステップS11では、第1モデル生成部114が、指令プロファイルと、応答プロファイルとに基づいて、指令の周波数と、指令に対する制御対象2の応答ゲインとの関係を表すゲインプロファイルを生成し、ゲインプロファイル記憶部115に記憶させる。ステップS12では、第1モデル生成部114が、周波数特性をゲインプロファイルにフィットさせた線形モデルに基づいて第1モデルを生成する。
【0057】
ステップS13では、指令プロファイル記憶部111が記憶する指令プロファイルと、モデル記憶部121が記憶する第1モデル及び第2モデルとに基づいて、モデル評価部122が、指令プロファイルに応じた制御対象2の状態の時間変化をシミュレーションした仮想応答プロファイルを生成し、仮想プロファイル記憶部123に記憶させる。なお、第2モデル生成部132が最初の第2モデルを生成する前においては、モデル記憶部121に第1モデルのみが記憶される。この場合、モデル評価部122は、指令プロファイルと、第1モデルのみに基づいて仮想応答プロファイルを生成する。
【0058】
ステップS14では、応答プロファイル記憶部113が記憶する応答プロファイルと、仮想プロファイル記憶部123が記憶する仮想応答プロファイルとに基づいて、モデル評価部122が応答プロファイルに対する仮想応答プロファイルの誤差を評価する。ステップS15では、ステップS14における誤差の評価結果が上記第1レベル以下であるかを第2モデル生成部132が確認する。
【0059】
ステップS15において誤差の評価結果が第1レベル以下でないと判定した場合、制御装置100は、ステップS21,S22,S23,S24,S25を実行する。ステップS21では、第2モデル生成部132が、複数種類の単位モデルの重み付け和に基づいて第2モデルを仮生成し、モデル記憶部121に記憶させる。
【0060】
ステップS22では、第2モデル生成部132が、仮生成した第2モデルと、仮生成した第2モデルに基づく誤差の評価結果とに基づいて誤差モデルを生成する。例えば第2モデル生成部132は、仮生成した第2モデルと、仮生成した第2モデルに基づく誤差の評価結果とを対応付けたレコードを学習データ記憶部133に記憶させる。その後、第2モデル生成部132は、学習データ記憶部133が記憶するレコードに基づいて初期の誤差モデルを生成し、生成した初期の誤差モデルを誤差モデル記憶部134に記憶させる。
【0061】
ステップS23では、指令プロファイル記憶部111が記憶する指令プロファイルと、モデル記憶部121が記憶する第1モデル及び第2モデルとに基づいて、モデル評価部122が、指令プロファイルに応じた制御対象2の状態の時間変化をシミュレーションした仮想応答プロファイルを生成し、仮想プロファイル記憶部123に記憶させる。
【0062】
ステップS24では、応答プロファイル記憶部113が記憶する応答プロファイルと、仮想プロファイル記憶部123が記憶する仮想応答プロファイルとに基づいて、モデル評価部122が、応答プロファイルに対する仮想応答プロファイルの誤差を評価する。ステップS25では、ステップS24における誤差の評価結果が上記第2レベル以下であるかを第2モデル生成部132が確認する。
【0063】
ステップS25において誤差の評価結果が第2レベル以下でないと判定した場合、制御装置100はステップS26,S27を実行する。ステップS26では、第2モデル生成部132が、第2レベル以下の目標誤差と誤差モデルとに基づいて重みを変更し、重みの変更後の第2モデルをモデル記憶部121に記憶させる。
【0064】
ステップS27では、第2モデル生成部132が、重みの変更後の第2モデルと、重みの変更後の第2モデルに基づく誤差の評価結果とに基づいて誤差モデルを更新する。例えば第2モデル生成部132は、重みの変更後の第2モデルと、重みの変更後の第2モデルに基づく誤差の評価結果とを対応付けたレコードを学習データ記憶部133に蓄積する。その後、第2モデル生成部132は、学習データ記憶部133が蓄積するレコードに基づいて、誤差モデル記憶部134の誤差モデルを更新する。その後、制御装置100は処理をステップS23に戻す。以後、誤差の評価結果が第2レベル以下となるまで、誤差モデルに基づく第2モデルの変更と、変更後の第2モデルに基づく誤差モデルの更新とが繰り返される。
【0065】
ステップS25において誤差の評価結果が第2レベル以下であると判定した場合、制御装置100はステップS28を実行する。ステップS28では、ステップS24における誤差の評価結果が上記第1レベル以下であるかを第1モデル生成部114が確認する。
【0066】
ステップS28において誤差の評価結果が第1レベル以下でないと判定した場合、制御装置100はステップS29を実行する。ステップS29では、第1モデル生成部114が、指令プロファイルと、応答プロファイルと、第2モデルとに基づいてゲインプロファイルを変更する。その後、制御装置100は処理をステップS02に戻す。これにより、変更後のゲインプロファイルに基づいて第1モデルが再生成される。
【0067】
ステップS15において誤差の評価結果が第1レベル以下であると判定した場合、及びステップS28において誤差の評価結果が第1レベル以下であると判定した場合、制御装置100はステップS31を実行する。ステップS31では、モデル記憶部121が記憶する第1モデル及び第2モデルとに基づいてパラメータ生成部141が上記制御パラメータを生成し、パラメータ記憶部142に記憶させる。以上で制御パラメータの生成手順が完了する。
【0068】
〔制御手順〕
続いて、制御パラメータに基づく制御手順を例示する。図5に示すように、制御装置100は、ステップS41,S42,S43,S44,S45,S46,S47を順に実行する。ステップS41では、制御部112が目標位置を取得する。例えば制御部112は、予め与えられた駆動対象4の目標動作パターンに基づいて目標位置を取得してもよいし、上位のコントローラから目標位置を取得してもよい。ステップS42では、制御部112が、目標位置と、パラメータ記憶部142が記憶する制御パラメータとに基づいて、上記フィードフォワード補償値を算出する。
【0069】
ステップS43では、制御部112が、センサ6の検出値に基づいて駆動対象4の現在位置及び現在速度の情報を取得する。ステップS44では、制御部112が、目標位置と現在位置との偏差に基づいて、目標速度を算出する。ステップS45では、制御部112が、目標速度と現在速度との偏差に基づいて、駆動力指令を算出する。
【0070】
ステップS46では、制御部112が、駆動力指令にフィードフォワード補償値を加算して、補正後指令を算出する。ステップS47では、制御部112が、補正後指令に基づいて駆動電力を生成し、モータ3に供給する。制御部112は、以上の手順を所定の制御周期で繰り返す。
【0071】
〔応用例〕
上述した構成は、モータが複数であり、駆動対象が複数の剛体を含む制御対象にも適用可能である。例えば上述した構成は、図6に例示する多関節ロボットにも適用可能である。
【0072】
図6に示すロボット10は、所謂6軸の垂直多関節ロボットであり、基台11と、旋回部12と、アーム13,14,15と、ツール保持部16とを有する。基台11は、作業エリアにおいて床、台、又はAGV(Automated Guided Vehicle)上に固定される。旋回部12は、鉛直な軸線31まわりに旋回するように基台11上に設けられている。
【0073】
アーム13は、軸線31に交差(例えば直交)する軸線32まわりに揺動するように旋回部12に接続されている。ここでの交差は、所謂立体交差のようにねじれの関係にある場合を含む。アーム14は、軸線32に平行な軸線33まわりに揺動するように、アーム13の先端部に接続されている。アーム15は、アーム14に沿い軸線33に交差する軸線34まわりに旋回し、軸線34に交差(例えば直交)する軸線35まわりに揺動するようにアーム14の先端部に接続されている。
【0074】
ツール保持部16は、アーム15の中心に沿う軸線36まわりに旋回するように、アーム15の先端部に接続されている。ツール保持部16は、ワークを把持するハンド、溶接トーチ、塗装ガン、又はねじ締めツール等の様々なツール17を保持する。
【0075】
モータ21は、軸線31まわりに旋回部12を旋回させ、モータ22は、軸線32まわりにアーム13を揺動させ、モータ23は、軸線33まわりにアーム14を揺動させ、モータ24は、軸線34まわりにアーム14の先端部を旋回させ、モータ25は、軸線35まわりにアーム15を揺動させ、モータ26は、軸線36まわりにツール保持部16を旋回させる。
【0076】
ロボット10においては、ツール保持部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の駆動対象である。
【0077】
ロボット10のように、制御対象が複数のモータを有する場合、制御装置100は、上述した制御パラメータの生成手順と、制御パラメータに基づくモータの制御手順とを、モータごとに実行してもよい。
【0078】
〔本実施形態の効果〕
以上に説明したように、制御装置100は、制御対象2に対する指令の時間変化を表す指令プロファイルと、指令プロファイルに応じた制御対象2の状態の時間変化を表す応答プロファイルとに基づいて、指令に対する制御対象2の応答特性の少なくとも一部を表す第1モデルを生成する第1モデル生成部114と、指令プロファイルと、応答プロファイルと、第1モデルとに基づいて、応答特性のうち第1モデルに含まれない特性を表す第2モデルを生成する第2モデル生成部132と、第1モデルと、第2モデルとに基づいて、指令と、指令に制御対象2を追従させるための制御量との関係を定める制御パラメータを生成するパラメータ生成部141と、を備える。
【0079】
制御対象2の特性を表す第1モデルが生成された後、その第1モデルに基づいて、第1モデルに含まれない特性を表す第2モデルが更に生成され、第1モデルと第2モデルとに基づいてシミュレーションが実行される。このように、2種類のモデルを用いることによって、制御対象2をより適切にモデル化することができる。従って、シミュレーションの精度向上に有効である。
【0080】
第2モデル生成部132は、予め準備された複数種類の単位モデルに基づいて第2モデルを生成してもよい。この場合、第1モデルによるモデル化が困難な特性(例えば非線形特性)を容易にモデル化することができる。
【0081】
複数種類の単位モデルのそれぞれは、指令に対する非線形な特性を表すモデルであってもよい。この場合、線形モデルではモデル化できない非線形特性を容易にモデル化することができる。
【0082】
制御装置100は、指令プロファイルと、第1モデルと、第2モデルとに基づいて、指令プロファイルに応じた制御対象2の状態の時間変化をシミュレーションした仮想応答プロファイルを生成し、応答プロファイルに対する仮想応答プロファイルの誤差を評価するモデル評価部122を更に備え、第2モデル生成部132は、複数種類の単位モデルの重み付け和に基づいて第2モデルを仮生成し、第2モデルに基づく誤差の評価結果に基づいて、第2モデルにおける複数種類の単位モデルの重みを変更することを、所定条件が満たされるまで繰り返して第2モデルを生成してもよい。この場合、第1モデルによるモデル化が困難な特性を更に容易にモデル化することができる。
【0083】
第2モデル生成部132は、第2モデルにおける複数種類の単位モデルの重みと、誤差の評価結果との関係を表す誤差モデルを、仮生成した第2モデルと、仮生成した第2モデルに基づく誤差の評価結果とに基づいて生成し、所定の目標誤差と、誤差モデルとに基づいて、重みを変更することと、重みの変更後の第2モデルと、重みの変更後の第2モデルに基づく誤差の評価結果とに基づいて誤差モデルを更新することとを、所定条件が満たされるまで繰り返して第2モデルを生成してもよい。この場合、第1モデルによるモデル化が困難な特性をより迅速にモデル化することができる。
【0084】
第1モデル生成部114は、指令プロファイルと、応答プロファイルとに基づいて、指令の周波数と、指令に対する制御対象2の応答ゲインとの関係を表すゲインプロファイルを生成し、周波数特性をゲインプロファイルにフィットさせた線形モデルに基づいて第1モデルを生成してもよい。この場合、周波数解析によって線形モデルをフィッティングすることができるため、容易且つ適切なモデル化が可能となる。
【0085】
第1モデル生成部114は、第2モデルが生成された後における誤差の評価結果が所定レベルを超えている場合に、指令プロファイルと、応答プロファイルと、第2モデルとに基づいて第1モデルを再生成してもよい。この場合、第2モデルが生成された後、当該第2モデルを考慮して第1モデルを再生成することで、第1モデルの精度が更に向上することが期待される。従って、より適切なモデル化が可能である。
【0086】
第1モデル生成部114は、第2モデルが生成された後における誤差の評価結果が所定レベルを超えている場合に、指令プロファイルと、応答プロファイルと、第2モデルとに基づいてゲインプロファイルを変更し、線形モデルの周波数特性を変更後のゲインプロファイルにフィットさせて第1モデルを再生成してもよい。この場合、第2モデルに基づきゲインプロファイルを変更することで、第1モデルの再生成も最初の生成と同様に容易且つ適切に行うことができる。
【0087】
第1モデル生成部114は、第2モデルが生成された後における誤差の評価結果が所定レベルを超えている場合に、指令プロファイルと、応答プロファイルと、第2モデルとに基づいて、応答プロファイルから第2モデルの応答を除去した修正プロファイルを生成し、指令プロファイルと、修正プロファイルとに基づいてゲインプロファイルを変更してもよい。この場合、ゲインプロファイルを容易に変更することができる。
【0088】
第2モデル生成部132は、第1モデルが再生成された後における誤差の評価結果が所定レベルを超えている場合に、指令プロファイルと、応答プロファイルと、第1モデルとに基づいて第2モデルを再生成してもよい。この場合、第1モデルが再生成された後、当該第1モデルを考慮して第2モデルを再生成することで、第2モデルの精度が更に向上することが期待される。従って、より適切なモデル化が可能である。
【0089】
制御装置100は、指令プロファイルと、第1モデルと、第2モデルとに基づいて、指令プロファイルに応じた制御対象2の状態の時間変化をシミュレーションした仮想応答プロファイルを生成し、応答プロファイルに対する仮想応答プロファイルの誤差を評価するモデル評価部122を更に備え、第2モデル生成部132は、第2モデルを仮生成し、第2モデルに基づく誤差の評価結果に基づいて、第2モデルを変更することを、所定条件が満たされるまで繰り返して第2モデルを生成し、第1モデル生成部114は、第2モデルが生成された後における誤差の評価結果が所定の第1レベルを超えている場合に、指令プロファイルと、応答プロファイルと、第2モデルとに基づいて第1モデルを再生成してもよい。
【0090】
第2モデル生成部132は、第2モデルに基づく誤差の評価結果に基づいて、第2モデルを変更することを、誤差の評価結果が第1レベルよりも高い第2レベル以下となるまで繰り返して第2モデルを生成してもよい。
【0091】
第2モデル生成部132は、第1モデルが再生成された後における誤差の評価結果が第1レベルを超えている場合に、指令プロファイルと、応答プロファイルと、第1モデルとに基づいて第2モデルを再生成してもよい。
【0092】
制御対象2は、駆動対象4と、駆動対象4を駆動するモータ3とを有し、指令は、モータ3に発生させる駆動力の指令であり、制御対象2の状態は、駆動対象4の速度であってもよい。
【0093】
制御対象2は、駆動対象4と、駆動対象4を駆動するモータ3とを有し、指令は、モータ3に発生させる駆動力の指令であり、制御対象2の状態は、駆動対象4の位置であってもよい。
【0094】
指令プロファイルにおける指令の時間変化は、指令の振動を含んでいてもよい。
【0095】
以上、実施形態について説明したが、本開示は必ずしも上述した実施形態に限定されるものではなく、その要旨を逸脱しない範囲で様々な変更が可能である。
【符号の説明】
【0096】
2…制御対象、3…モータ、4…駆動対象、100…制御装置(制御システムの生産装置)、114…第1モデル生成部、122…モデル評価部、132…第2モデル生成部、141…パラメータ生成部。
図1
図2
図3
図4
図5
図6