(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-05-29
(45)【発行日】2024-06-06
(54)【発明の名称】制御システム、制御方法、コンピュータ、および制御プログラム
(51)【国際特許分類】
G05B 13/04 20060101AFI20240530BHJP
B25J 9/10 20060101ALI20240530BHJP
【FI】
G05B13/04
B25J9/10 A
(21)【出願番号】P 2022545260
(86)(22)【出願日】2020-08-31
(86)【国際出願番号】 JP2020032901
(87)【国際公開番号】W WO2022044329
(87)【国際公開日】2022-03-03
【審査請求日】2023-06-19
(73)【特許権者】
【識別番号】504137912
【氏名又は名称】国立大学法人 東京大学
(73)【特許権者】
【識別番号】000006622
【氏名又は名称】株式会社安川電機
(74)【代理人】
【識別番号】100088155
【氏名又は名称】長谷川 芳樹
(74)【代理人】
【識別番号】100145012
【氏名又は名称】石坂 泰紀
(74)【代理人】
【識別番号】100171099
【氏名又は名称】松尾 茂樹
(74)【代理人】
【識別番号】100144440
【氏名又は名称】保坂 一之
(72)【発明者】
【氏名】藤本 博志
(72)【発明者】
【氏名】北吉 良平
【審査官】中田 善邦
(56)【参考文献】
【文献】特開2009-134751(JP,A)
【文献】特開平9-269804(JP,A)
【文献】特開平10-91211(JP,A)
【文献】特開2010-182186(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G05B 13/04
B25J 9/10
(57)【特許請求の範囲】
【請求項13】
制御対象に出力される第1指令に対応する該制御対象の基準の状態の周波数特性を表す基準応答プロファイルの数学モデルを記憶部に格納するステップと、
前記基準応答プロファイルと、前記第1指令に応答した前記制御対象の現実の状態の周波数特性を表す第1実応答プロファイルとの誤差を取得するステップと、
前記誤差が所与の閾値よりも大きい周波数に基づく第2指令に応答した前記制御対象の現実の状態の周波数特性を表す第2実応答プロファイルと、前記基準応答プロファイルとに基づいて、前記数学モデルを更新するステップと、
をコンピュータに実行させる制御プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示の一側面は、制御システム、制御方法、コンピュータ、および制御プログラムに関する。
【背景技術】
【0002】
特許文献1には、ロボット及び障害物に関するモデル情報を記憶したモデル記憶部と、ロボットと障害物との衝突を回避しつつ、ロボットの先端部を開始位置から終了位置まで移動させ得るパスをモデル情報に基づいて生成する情報処理部とを備えるロボットシミュレータが記載されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
本開示の一側面では、制御対象への指令を適切に調整することが望まれている。
【課題を解決するための手段】
【0005】
本開示の一側面に係る制御システムは、制御対象に指令を出力するコントローラを備える。この制御システムは、第1指令に対応する制御対象の基準の状態の周波数特性を表す基準応答プロファイルの数学モデルを記憶する記憶部と、基準応答プロファイルと、第1指令に応答した制御対象の現実の状態の周波数特性を表す第1実応答プロファイルとの誤差を取得する誤差取得部と、誤差が所与の閾値よりも大きい周波数に基づく第2指令をコントローラから制御対象に出力させる指示部と、第2指令に応答した制御対象の現実の状態の周波数特性を表す第2実応答プロファイルと、基準応答プロファイルとに基づいて、数学モデルを更新するモデル更新部とを備える。
【0006】
本開示の一側面に係る制御方法は、制御対象に指令を出力するコントローラを備える制御システムにより実行される。この制御方法は、第1指令に対応する制御対象の基準の状態の周波数特性を表す基準応答プロファイルの数学モデルを記憶部に格納するステップと、基準応答プロファイルと、第1指令に応答した制御対象の現実の状態の周波数特性を表す第1実応答プロファイルとの誤差を取得するステップと、誤差が所与の閾値よりも大きい周波数に基づく第2指令をコントローラから制御対象に出力させるステップと、第2指令に応答した制御対象の現実の状態の周波数特性を表す第2実応答プロファイルと、基準応答プロファイルとに基づいて、数学モデルを更新するステップとを含む。
【0007】
本開示の一側面に係るコンピュータは、制御対象に出力される第1指令に対応する該制御対象の基準の状態の周波数特性を表す基準応答プロファイルの数学モデルを記憶する記憶部と、基準応答プロファイルと、第1指令に応答した制御対象の現実の状態の周波数特性を表す第1実応答プロファイルとの誤差を取得する誤差取得部と、誤差が所与の閾値よりも大きい周波数に基づく第2指令に応答した制御対象の現実の状態の周波数特性を表す第2実応答プロファイルと、基準応答プロファイルとに基づいて、数学モデルを更新するモデル更新部とを備える。
【0008】
本開示の一側面に係る制御プログラムは、制御対象に出力される第1指令に対応する該制御対象の基準の状態の周波数特性を表す基準応答プロファイルの数学モデルを記憶部に格納するステップと、基準応答プロファイルと、第1指令に応答した制御対象の現実の状態の周波数特性を表す第1実応答プロファイルとの誤差を取得するステップと、誤差が所与の閾値よりも大きい周波数に基づく第2指令に応答した制御対象の現実の状態の周波数特性を表す第2実応答プロファイルと、基準応答プロファイルとに基づいて、数学モデルを更新するステップとをコンピュータに実行させる。
【発明の効果】
【0009】
本開示の一側面によれば、制御対象への指令を適切に調整することができる。
【図面の簡単な説明】
【0010】
【
図2】制御システムで用いられるコンピュータのハードウェア構成の一例を示す図である。
【
図3】制御システムの動作の一例を示すフローチャートである。
【
図5】応答プロファイル間の誤差の一例を示す図である。
【発明を実施するための形態】
【0011】
以下、添付図面を参照しながら本開示での実施形態を詳細に説明する。図面の説明において同一または同等の要素には同一の符号を付し、重複する説明を省略する。
【0012】
[システムの概要]
本開示の一側面に係る制御システム1は、制御対象9に指令信号を出力するコントローラ3を備える仕組みである。制御対象とは、目的に応じた所定の動作を行って、有用な仕事を実行する装置をいう。制御対象を機械と言い換えることもできる。制御対象9の例として、任意の種類のロボットと、任意の種類の工作機械とが挙げられる。しかし、制御対象9の種類はこれらに限定されない。制御システム1は任意の制御対象を制御するために用いることができる。
【0013】
指令信号とは、制御対象9を制御するための命令である指令を示すデータ信号をいう。制御対象9はコントローラ3から出力される指令信号に基づいて動作する。指令信号の例として位置指令および速度指令が挙げられる。しかし、指令信号の種類はこれらに限定されない。
【0014】
コントローラ3は予め生成された制御パラメータに基づいて指令信号を生成し、この指令信号によって制御対象9を制御する。制御パラメータは、制御対象9への指令と、その指令に制御対象9を追従させるための制御量との関係を定める変数をいう。指令と制御量との関係の例として、駆動対象に対する位置指令または速度指令と、モータに対する駆動力指令との関係が挙げられる。駆動力指令は制御量の一例である。
【0015】
制御パラメータは、コントローラ3を稼働させる前に、制御対象9の特性に基づいて調整される。しかし、制御対象9の特性は時間の経過に伴って変化し得るので、その特性の変化に合わせて制御パラメータを再調整する必要が生じ得る。また、制御対象9の特性を測定する際にその測定結果が誤差を含むと、その誤った特性に基づいて制御パラメータが調整され、その結果、制御対象9の動作に誤差が発生する可能性がある。
【0016】
制御システム1は、制御対象9の特性をより正確に特定し、この特定された特性に基づいて、制御パラメータを適切に調整するための処理を自動的に実行する。この仕組みによって制御パラメータが自動的に適切に調整されるので、制御対象9の特性が経年変化したり、その特性の初期測定において誤差が発生したりしても、制御対象9に適切な指令を出力し続けることができる。この結果、制御対象9を適切に動作させ続けることができる。制御パラメータが自動的に調整されることによって、作業員がコントローラ3を調整するために現場に出向く必要がなくなるので、コントローラ3の調整に要する時間およびコストを節約することができる。加えて、専門知識を持たないユーザもコントローラ3および制御対象9を適切に動作させ続けることが可能になる。
【0017】
[システムの構成]
図1は実施形態に係る制御システム1の構成の一例を示す図である。制御システム1は制御対象9と接続される。
図1では一つの制御対象9を示す。しかし、制御対象9の個数は限定されず、制御システム1は複数の制御対象9と接続してもよい。
【0018】
一例では、制御対象9はサーボアンプ90、モータ91、伝達機構92、駆動対象93、およびセンサ94を備える。駆動対象93の形状、構造、および大きさは限定されない。モータ91の数および大きさも限定されない。以下では、モータ91が一つであり且つ駆動対象93が一つの剛体である制御対象9を例示する。
【0019】
サーボアンプ90は、コントローラ3からの指令信号にモータ91の出力を追従させるための装置である。具体的には、サーボアンプ90はその指令信号に基づいて、モータ91を動かすための電力を生成し、その電力をモータ91に供給する。この供給される電力は、トルク指令、電流指令などのような駆動力指令に相当する。
【0020】
モータ91は、電力の供給に応じて、駆動対象93を駆動させるための動力を発生させる装置である。モータ91は、駆動対象93を回転させる回転型モータであってもよいし、駆動対象93を直線に沿って変位させるリニア型モータであってもよい。モータ91は、同期電動機であってもよいし、誘導電動機であってもよい。モータ91は、SPM(Surface Permanent Magnet)モータ、IPM(Interior
Permanent Magnet)モータ等の永久磁石型の同期電動機であってもよい。モータ91は、シンクロナスリラクタンスモータ(synchronous reluctance motor)のような、永久磁石を有しない同期電動機であってもよい。
【0021】
伝達機構92は、モータ91の出力軸の速度を駆動対象93に伝達する構成要素である。伝達機構92は、例えばモータ91の出力軸の速度に対して駆動対象93の速度が低くなるように構成された減速機である。例えば伝達機構92は、所定の減速比にてモータ91から駆動対象93に動力を伝達する複数のギヤを含む。
【0022】
センサ94は、指令に対応する制御対象9の応答値を検出する装置である。応答値とは、指令に対する制御対象9の状態(すなわち応答)を示す物理量をいう。応答値の具体例としては、駆動対象93の位置および速度の少なくとも一方が挙げられる。モータ91が回転型である場合には、モータ91による駆動対象93の回転角度が「位置」に相当し、モータ91による駆動対象93の回転速度が「速度」に相当する。また、トルクが駆動力に相当する。センサ94の具体例としては、駆動対象93の動作速度に比例した周波数のパルス信号を出力するロータリーエンコーダが挙げられる。ロータリーエンコーダは駆動対象93の位置および速度の両方を取得することができる。
【0023】
制御システム1は演算装置2およびコントローラ3を備える。演算装置2は制御パラメータを算出するコンピュータである。コントローラ3はその制御パラメータに基づく指令信号を制御対象9に出力する装置である。より具体的には、コントローラ3は、モータ91に発生させる駆動力に関する指令を示す指令信号(例えば、位置指令、速度指令など)をサーボアンプ90に出力する。一例では、演算装置2はコントローラ3よりも高い性能を有するコンピュータである。演算装置2のために用いられるコンピュータの具体的な種類は限定されない。例えば、演算装置2は、パーソナルコンピュータ、業務用サーバ、携帯端末などのような汎用コンピュータによって実現されてもよい。あるいは、演算装置2は、プログラマブルロジックコントローラなどのような専用装置によって実現されてもよい。コントローラ3の具体的な構成は何ら限定されない。
【0024】
図1に示すように、演算装置2は機能モジュールとして基準プロファイル記憶部20、モデル記憶部21、初期設定部22、実プロファイル算出部23、実プロファイル記憶部24、誤差取得部25、指示部26、モデル更新部27、パラメータ算出部28、および調整制御部29を備える。
【0025】
基準プロファイル記憶部20は、基準応答プロファイルを記憶する機能モジュールである。基準応答プロファイルとは、制御パラメータを調整する際に基準として用いられる制御対象9の応答プロファイルをいう。本開示において、応答プロファイルとは、コントローラ3からの指令に応答した制御対象9の状態を表す情報をいい、より具体的には、該状態の周波数特性を表す情報をいう。制御対象9の状態の周波数特性は、指令の時間変化に応じた制御対象9の状態の時間変化を周波数領域表現に変換することで得られる。制御対象9の状態は任意のデータ項目によって示されてもよく、例えば、位置、姿勢、速度、加速度、トルク、力、および電流値のうちの少なくとも一つによって表されてもよい。応答プロファイルは周波数解析手法によって得られる。本実施形態では周波数解析手法としてFFT(Fast Fourier Transform)を例示する。しかし、制御システム1は他の周波数解析手法を用いてもよい。基準応答プロファイルは、指令に対応する制御対象9の基準の状態を表す。
【0026】
モデル記憶部21は、制御パラメータを算出するために用いられる数学モデルを記憶する機能モジュールである。より具体的には、モデル記憶部21は基準応答プロファイルの数学モデルを記憶する。本開示において、数学モデルとは、コントローラ3からの指令に基づく制御対象9の動作を表現する数式をいう。数学モデルは一つの数式によって表されてもよいし、複数の数式の組合せによって表されてもよい。
【0027】
初期設定部22は、基準応答プロファイルおよび数学モデルを初期設定する機能モジュールである。初期設定部22はその初期設定として、初期の基準応答プロファイルを基準プロファイル記憶部20に格納し、初期の数学モデルをモデル記憶部21に格納する。
【0028】
実プロファイル算出部23は、実応答プロファイルを算出する機能要素である。本開示において、実応答プロファイルとは、コントローラ3からの指令に実際に応答した制御対象の現実の状態を表す応答プロファイルをいい、より具体的には、該状態の周波数特性を表す応答プロファイルをいう。実プロファイル算出部23は制御対象9の応答値の時間変化をコントローラ3から受信し、その受信データに基づいて実応答プロファイルを算出する。
【0029】
実プロファイル記憶部24は、実プロファイル算出部23によって算出された実応答プロファイルを記憶する機能モジュールである。
【0030】
誤差取得部25は、基準応答プロファイルと実応答プロファイルとの誤差を取得する機能モジュールである。この誤差は、実応答プロファイルが基準応答プロファイルからどのくらい乖離しているかを示す指標ということができる。
【0031】
指示部26は、指令信号をコントローラ3から制御対象9に出力させる機能モジュールである。具体的には、指示部26はその指令信号を生成するために用いられる制御情報をコントローラ3に送信する。コントローラ3はその制御情報に基づいて指令信号を生成し、その指令信号を制御対象9に出力する。
【0032】
モデル更新部27は、モデル記憶部21に記憶されている数学モデルを更新する機能モジュールである。具体的には、モデル更新部27は基準応答プロファイルおよび実応答プロファイルに基づいて数学モデルを更新する。
【0033】
パラメータ算出部28は、更新された数学モデルに基づいて制御パラメータを再計算する機能モジュールである。再計算された制御パラメータは制御情報の少なくとも一部として指示部26からコントローラ3に送信される。
【0034】
調整制御部29は、基準応答プロファイルと実応答プロファイルとの誤差が所与の閾値以下になるまで、数学モデルの更新および制御パラメータの再計算を含む一連の処理を繰り返し実行する機能モジュールである。端的に言うと、調整制御部29は制御対象9が許容誤差の範囲内で動作するようにその処理を繰り返し実行する。誤差が閾値を超える場合には、調整制御部29はその繰返し処理を他の機能モジュールに実行させる。誤差が閾値以下である場合には、調整制御部29は制御パラメータを確定する。
【0035】
図2は、制御システム1で用いられるコンピュータ100のハードウェア構成の一例を示す図である。この例では、コンピュータ100は本体110、モニタ120、および入力デバイス130を備える。
【0036】
本体110はコンピュータの主たる機能を実行する装置である。本体110は回路160を有し、回路160は、少なくとも一つのプロセッサ161と、メモリ162と、ストレージ163と、入出力ポート164と、通信ポート165とを有する。ストレージ163は、本体110の各機能モジュールを構成するためのプログラムを記録する。ストレージ163は、ハードディスク、不揮発性の半導体メモリ、磁気ディスク、光ディスク等の、コンピュータ読み取り可能な記録媒体である。メモリ162は、ストレージ163からロードされたプログラム、プロセッサ161の演算結果等を一時的に記憶する。プロセッサ161は、メモリ162と協働してプログラムを実行することで、各機能モジュールを構成する。入出力ポート164は、プロセッサ161からの指令に応じて、モニタ120または入力デバイス130との間で電気信号の入出力を行う。入出力ポート164は他の装置との間で電気信号の入出力を行ってもよい。通信ポート165は、プロセッサ161からの指令に従って、通信ネットワークNを介して他の装置との間でデータ通信を行う。
【0037】
モニタ120は、本体110から出力された情報を表示するための装置である。モニタ120は、テキストまたはグラフィックを表示できればいかなるものであってもよい。モニタ120の具体例としては液晶パネル等が挙げられる。
【0038】
入力デバイス130は、本体110に情報を入力するための装置である。入力デバイス130は、所望の情報を入力可能であればいかなるものであってもよい。入力デバイス130の具体例としては、キーパッド、マウス、操作コントローラ等の操作インタフェースが挙げられる。
【0039】
モニタ120および入力デバイス130はタッチパネルとして一体化されていてもよい。例えばタブレットコンピュータのように、本体110、モニタ120、および入力デバイス130が一体化されていてもよい。
【0040】
[制御方法]
本開示に係る制御方法の一例として、
図3を参照しながら、制御システム1により実行される一連の処理手順の一例を説明する。
図3は制御システム1の動作の一例を処理フローS1として示すフローチャートである。すなわち、制御システム1は処理フローS1を実行する。
【0041】
ステップS11では、初期設定部22が基準応答プロファイルおよび数学モデルを初期設定する。初期設定部22は初期の基準応答プロファイルを基準プロファイル記憶部20に格納し、初期の数学モデルをモデル記憶部21に格納する。
【0042】
初期の基準応答プロファイルを準備する手法は限定されない。一例では、初期設定部22は、実際に指令に応答した制御対象9から得られた応答値の時系列データ(本開示ではこれを「時系列応答データ」ともいう)を取得する。時系列応答データは制御対象9の状態の時間変化を離散的に示す。初期設定部22はFFTを用いて現実の時系列応答データから初期の基準応答プロファイルを算出してもよい。すなわち、基準応答プロファイルによって表される制御対象9の「基準の状態」は、制御対象9を実際に動作させた結果(例えば実験結果)である現実の状態によって表されてもよい。
【0043】
あるいは、初期設定部22は、コンピュータシミュレーション上で制御対象9を動作させて時系列応答データを取得し、FFTを用いてその時系列応答データから初期の基準応答プロファイルを算出してもよい。すなわち、上記の「基準の状態」は、コンピュータシミュレーションによって算出された仮想の状態によって表されてもよい。
【0044】
あるいは、初期設定部22は、既に用意されている基準応答プロファイルを取得してもよい。例えば、初期設定部22はユーザによって入力された基準応答プロファイルを受け付けてもよいし、他のコンピュータから基準応答プロファイルを受信してもよいし、データベースなどの他の記憶装置から基準応答プロファイルを読み出してもよい。
【0045】
初期設定部22は生成または取得された初期の基準応答プロファイルを基準プロファイル記憶部20に格納する。一例では、基準応答プロファイルは制御対象9の状態の周波数特性を離散的に示す。
【0046】
初期の数学モデルを準備する手法も限定されない。一例では、モデル記憶部21は、基準応答プロファイルと共に既に用意されている初期の数学モデルを、ユーザ入力、他のコンピュータからの受信、またはデータベースへのアクセスによって取得してもよい。初期設定部22は取得された初期の数学モデルをモデル記憶部21に格納する。
【0047】
別の例では、初期設定部22は初期の数学モデルを生成してもよい。数学モデルを生成するために指令プロファイルおよび応答プロファイルが用いられる。初期設定部22は、制御対象9への指令の時間変化に対してFFTを実行して、指令プロファイルを取得する。また、初期設定部22はその応答プロファイルとして基準応答プロファイルを用いる。続いて、初期設定部22は指令プロファイルの振幅と応答プロファイルの振幅との関係を表す応答ゲインを算出する。例えば、応答ゲインは指令プロファイルの振幅に対する応答プロファイルの振幅の倍率を表す。続いて、初期設定部22は指令の周波数と応答ゲインとの関係を表すゲインプロファイルを生成する。そして、初期設定部22は、周波数特性をそのゲインプロファイルにフィッティングさせた数学モデルを生成する。このフィッティングは、基準応答プロファイルに基づくフィッティングであるといえる。一例では、この数学モデルは、経過時間と入力との関係を表す入力関数と、経過時間と出力との関係を表す出力関数との関係を表す線形微分方程式でもよい。「周波数特性をゲインプロファイルにフィッティングさせる」とは、周波数特性をゲインプロファイルに近似させることを意味し、周波数特性がゲインプロファイルに一致することを含む概念である。初期設定部22は任意のフィッティング手法によって初期の数学モデルを生成してよい。例えば、初期設定部22は、最小二乗法、多項式近似、円近似、各種関数(三角関数、B-Spline等)による近似、または複数の関数の重み付け和によって初期の数学モデルを生成してもよい。あるいは、初期設定部22は、ゲインプロファイルと数学モデルとの関係を表すように機械学習により生成された学習済みモデルに基づいて初期の数学モデルを生成してもよい。初期設定部22は生成された初期の数学モデルを基準応答プロファイルの数学モデルとしてモデル記憶部21に格納する。
【0048】
初期設定部22は複数の数学モデルを生成してもよい。例えば、初期設定部22はゲインプロファイルに関する数学モデルと、位相プロファイルに関する数学モデルとを、基準応答プロファイルの数学モデルとして生成してもよい。位相とは、指令に対する応答の時間的な遅れをいう。
【0049】
ステップS12では、パラメータ算出部28が初期の数学モデルをモデル記憶部21から読み出し、その数学モデルに基づいて制御パラメータの初期値を算出する。
【0050】
制御パラメータはコントローラ3の具体的な構成に対応する。上述したようにコントローラ3の具体的な構成(言い換えると、自動制御の手法)は限定されず、したがって制御パラメータも限定されない。パラメータ算出部28はフィードバック制御の制御パラメータを算出してもよいし、フィードフォワード制御の制御パラメータを算出してもよい。一例では、制御パラメータは、入力と出力との関係(例えば振幅比)を示すゲインを含んでもよい。あるいは、制御パラメータは、指令の周波数特性を調整するための基底フィルタを構成するフィルタの種類、個数、およびパラメータを含んでもよい。より具体的な例として、パラメータ算出部28はPID制御における制御パラメータである比例ゲイン、積分ゲイン、および微分ゲインを算出してもよい。あるいは、パラメータ算出部28は、複数の制御ループによって構成されるカスケード制御におけるゲインを算出してもよい。カスケード制御におけるゲインは、例えば、比例ゲイン、積分ゲイン、および微分ゲインである。カスケード制御の一例としてP-PI制御が挙げられるが、カスケード制御の具体的な構成はこれに限定されない。基底フィルタとは、制御システムを構成するために用いられる複数種類のフィルタを組み合わせることで生成されるフィルタをいう。制御システムを構成するために用いられるフィルタの例としては、ローパスフィルタ、ハイパスフィルタ、ノッチフィルタ、ピークフィルタ、オールパスフィルタ、位相進み補償、位相遅れ補償などのような、ゲインと位相を調整するために用いられるフィルタが挙げられる。しかし、用いられるフィルタの種類はこれらの例に限定されない。
【0051】
制御パラメータの計算方法は限定されない。一例では、パラメータ算出部28はH∞制御理論と、この理論に対応する最適化計算とを数学モデルに対して実行して、制御パラメータを算出してもよい。H∞制御理論とは、閉ループ系の伝達関数の大きさをH∞ノルムという尺度で測り、そのノルムを小さくすることで目的の性能を達成する手法である。H∞制御理論の一例として、パラメータ算出部28はStructured H∞制御を用いてもよい。最適化計算の例として線形行列不等式(Linear Matrix Inequality(LMI))が挙げられる。しかし、最適化計算はこれに限定されず、パラメータ算出部28は任意の最適化手法を用いてよい。パラメータ算出部28はユーザにより設定された拘束条件に従って最適化計算を実行する。拘束条件の例として、制御対象9の動作時間(すなわち、制御対象9の状態が初期値から目標値に至るまでの時間)と、制御対象9の動作に関する許容誤差とが挙げられる。しかし、拘束条件はこれらに限定されるものではなく、任意の方針によって設定されてよい。
【0052】
ステップS13では、制御システム1が、算出された制御パラメータに基づく第1指令を制御対象9に出力する。具体的には、指示部26が、その制御パラメータを示す制御情報をコントローラ3に送信する。コントローラ3はその制御情報を受信し、制御パラメータを設定する。そして、コントローラ3はその制御パラメータに基づいて第1指令を生成し、その第1指令を制御対象9に出力する。より具体的には、コントローラ3は第1指令を示す指令信号を生成および出力する。このように、指示部26は第1指令をコントローラ3から制御対象9に出力させる。第1指令は制御対象9を目標値に向けて動作させるための指令である。目標値の設定方法は限定されない。例えば、指示部26が制御パラメータおよび目標値を示す制御情報をコントローラ3に送信し、コントローラ3がその制御情報を受信して目標値を設定してもよい。あるいは、指示部26は駆動対象93の所与の目標動作パターンに基づいて目標値を取得してもよい。第1指令を示す指令信号の例として、チャープ信号、マルチサイン信号、擬似ランダム信号、ランダム信号、短時間不規則信号、およびインパルス加振信号が挙げられる。しかし、その指令信号の種類はこれらに限定されない。
【0053】
一例では、コントローラ3はフィードバック制御によって制御対象9を目標値に向けて動作させる。具体的には、コントローラ3は、センサ94によって検出された応答値を受信し、その応答値に基づいて駆動対象93の目標値と現在値(現在の状態)との差を偏差としてとして算出する。コントローラ3は算出された偏差に対して所定の演算を実行して、その偏差を縮小させるための第1指令を決定する。所定の演算はコントローラ3の具体的な構成(言い換えると、自動制御の手法)に依存し、したがって、演算の具体的な手法は限定されない。例えば、カスケード制御などのPID制御が採用される場合には、所定の演算は、比例演算、積分演算、および微分演算を含む。コントローラ3は決定された第1指令を示す指令信号を生成し、この指令信号を制御対象9に出力する。コントローラ3は、制御対象9が目標値に至るまで、偏差に基づく第1指令の出力を所定の制御周期で繰り返し実行する。
【0054】
コントローラ3は制御対象9を目標値に向けて動作させている間に、所定の制御周期においてセンサ94からの応答値を記録して、時系列応答データを取得する。コントローラ3はその時系列応答データを演算装置2に送信する。
【0055】
ステップS14では、実プロファイル算出部23が第1実応答プロファイルを算出する。実プロファイル算出部23はコントローラ3から時系列応答データを受信する。そして、実プロファイル算出部23はFFTを用いて、その時系列応答データから(すなわち、制御対象9の状態の時間変化から)第1実応答プロファイルを算出する。実プロファイル算出部23はその第1実応答プロファイルを実プロファイル記憶部24に格納する。
【0056】
ステップS15では、誤差取得部25が第1実応答プロファイルと基準応答プロファイルとの誤差を取得する。より具体的には、誤差取得部25は個々の周波数においてこれら二つの応答プロファイルの間のスペクトル成分の差を算出し、その差の集合を誤差として取得する。
【0057】
ステップS16では、調整制御部29が、その誤差が所与の閾値以下であるか否かを判定する。一例では、調整制御部29は応答プロファイルによって示される全周波数において共通の閾値を用いて、スペクトル差がその閾値を超える周波数が存在するか否かを判定する。
【0058】
一例では、すべての周波数においてスペクトル差が閾値以下である場合に、調整制御部29は誤差が閾値以下であると判定する(ステップS16においてYES)。この場合には処理はステップS22に進む。ステップS22では、調整制御部29が制御パラメータを確定する。この結果、コントローラ3は確定された制御パラメータに従って適切な指令を制御対象9に出力することができる。
【0059】
一例では、スペクトル差が閾値を超える1以上の周波数が存在する場合に、調整制御部29は誤差が閾値を超えると判定する(ステップS16においてNO)。そして、調整制御部29は、数学モデルの更新および制御パラメータの再計算を含む一連の処理を実行すると決定する。この決定により処理はステップS17に進む。
【0060】
ステップS17では、指示部26が、その誤差に対応する周波数を含む限定された帯域を同定範囲として設定する。誤差に対応する周波数とは、スペクトル差が閾値を超える周波数をいう。より具体的には、誤差に対応する周波数は、スペクトル差が閾値を超える周波数のうち代表の一つの周波数でもよい。例えば、指示部26はスペクトル差が最も大きい周波数を「誤差に対応する周波数」として特定してもよい。限定された帯域とは、応答プロファイルによって示される周波数帯域の一部をいう。同定範囲の具体的な長さは限定されない。例えば、指示部26は10Hz、20Hzなどの固定幅を同定範囲として設定してもよい。あるいは、指示部26は、同定範囲の幅を任意の手法によって動的に設定してもよい。一例として、指示部26は、誤差に対応する周波数を含み、且つスペクトル差が閾値を超え続けている範囲を同定範囲として設定してもよい。具体的には、指示部26は、誤差に対応する周波数よりも小さい帯域において、スペクトル差が閾値以下である1以上の周波数のうちの最大値を同定範囲の下限値(始点)として設定する。さらに指示部26は、誤差に対応する周波数よりも大きい帯域において、スペクトル差が閾値以下である1以上の周波数のうちの最小値を同定範囲の上限値(終点)として設定する。指示部26はこのような処理によって、スペクトル差が閾値を超え続けている範囲を特定できる。
【0061】
ステップS18では、制御システム1が、同定範囲に対応する第2指令を制御対象9に出力する。具体的には、指示部26が、その同定範囲を示す制御情報をコントローラ3に送信する。コントローラ3はその制御情報を受信し、その同定範囲内の周波数成分に基づく第2指令を生成する。より具体的には、コントローラは同定範囲内の周波数成分によって構成される第2指令を生成する。そして、コントローラ3はその第2指令を制御対象9に出力する。より具体的には、コントローラ3は第2指令を示す指令信号を生成および出力する。このように、指示部26は第2指令をコントローラ3から制御対象9に出力させる。第2指令は、同定範囲に対応する制御対象9の状態を特に同定することを目的とするので、同定指令ということもできる。第1指令と同様に、第2指令を示す指令信号は、チャープ信号、マルチサイン信号、擬似ランダム信号、ランダム信号、短時間不規則信号、またはインパルス加振信号でもよいし、他の種類の信号でもよい。コントローラ3は、第1指令による制御と同様に、フィードバック制御によって制御対象9を目標値に向けて動作させる。コントローラ3はその処理の間に、所定の制御周期においてセンサ94からの応答値を記録して、時系列応答データを取得する。コントローラ3はその時系列応答データを演算装置2に送信する。
【0062】
ステップS19では、実プロファイル算出部23が第2実応答プロファイルを算出する。実プロファイル算出部23はコントローラ3から時系列応答データを受信する。そして、実プロファイル算出部23はFFTを用いて、その時系列応答データから(すなわち、制御対象9の状態の時間変化から)第2実応答プロファイルを算出する。実プロファイル算出部23はその第2実応答プロファイルを実プロファイル記憶部24に格納する。
【0063】
ステップS20では、モデル更新部27が基準応答プロファイルおよび第2実応答プロファイルに基づいてモデル記憶部21内の数学モデルを更新する。モデル更新部27は基準応答プロファイルを基準プロファイル記憶部20から読み出し、第2実応答プロファイルを実プロファイル記憶部24から読み出す。そして、モデル更新部27は基準応答プロファイルのうち同定範囲の部分を第2実応答プロファイルに置き換える。具体的には、モデル更新部27は基準応答プロファイルのうち、同定範囲のスペクトル成分を、第2実応答プロファイルにより示されるスペクトル成分に置き換えて、基準応答プロファイルを更新する。続いてモデル更新部27は、更新された基準応答プロファイルに基づくゲインプロファイルに周波数特性をフィッティングさせた数学モデルを生成する。モデル更新部27は初期設定部22と同様の手法により、更新された基準応答プロファイルに基づくフィッティングを実行して、数学モデルを生成する。モデル更新部27は更新された基準応答プロファイルを基準プロファイル記憶部20に格納して、基準応答プロファイルを更新する。また、モデル更新部27は生成された数学モデルを、更新された基準応答プロファイルの数学モデルとしてモデル記憶部21に格納して、モデル記憶部21内の数学モデルを更新する。
ステップS21では、パラメータ算出部28が、更新された数学モデルをモデル記憶部21から読み出し、その数学モデルに基づいて制御パラメータを再計算する。制御パラメータの計算方法は、制御パラメータの初期値の計算方法と同じである。したがって、一例では、パラメータ算出部28はH∞制御理論と、この理論に対応する最適化計算とを、更新された数学モデルに対して実行して、制御パラメータを算出する。
【0064】
ステップS21の後に、ステップS13以降の処理が繰り返される。ステップS13では、制御システム1が、再計算された制御パラメータに基づく新たな第1指令を制御対象9に出力する。ステップS14では、実プロファイル算出部23が新たな第1実応答プロファイルを算出する。ステップS15では、誤差取得部25がその第1実応答プロファイルと更新された基準応答プロファイルとの誤差を取得する。ステップS16では、調整制御部29が、その誤差が閾値以下であるか否かを再び判定する。
【0065】
処理フローS1に示すように、制御システム1は初期の数学モデルを設定し、制御パラメータの初期値をコントローラ3に設定する。続いて、制御システム1はその制御パラメータに基づく第1指令によって制御対象9を動作させ、制御対象9の基準の状態と現実の状態との間で大きな誤差が生じている周波数を特定する。続いて、制御システム1はその周波数に基づく第2指令によって制御対象9を動作させ、制御対象9の特性をより正確に取得する。そして、制御システム1はその特性に基づいて数学モデルを更新し、制御パラメータを再計算し、新たな第1指令によって制御対象9を動作させ、再び誤差を評価する。制御システム1は、制御対象9が許容誤差の範囲内で動作するようになるまで、数学モデルを更新し制御パラメータを調整する処理を繰り返す。この一連の処理によって、制御システム1は所望の動作を制御対象9に行わせることが可能なコントローラ3を自動的に設計する。
【0066】
図4~
図6を参照しながら、数学モデルの更新の具体例を説明する。この具体例ではゲインプロファイルに着目する。
図4は数学モデルの一例を示す図である。
図5は第1実応答プロファイルと基準応答プロファイルとの誤差の一例を示す図である。
図6はその誤差に基づく数学モデルの更新の一例を示す図である。
図5および
図6はいずれも
図4に対応する。
【0067】
図4において、グラフ201は、0.1Hzから1000Hzまでの帯域において得られた初期の基準応答プロファイルに基づくフィッティングを実行して得られる数学モデル220を表す。より具体的には、この数学モデル220は、初期の基準応答プロファイルに基づくゲインプロファイル211に周波数特性をフィッティングさせて得られる。グラフ202は、その数学モデル220のうち80Hz~100Hzにおける部分を拡大して示す。グラフ202における丸印は、ゲインプロファイル211の個々の離散値を示す。
【0068】
パラメータ算出部28は数学モデル220に基づいて制御パラメータの初期値を算出し、指示部26はその初期値に基づく第1指令をコントローラ3から制御対象9に出力させる。実プロファイル算出部23は、その制御対象9からの時系列応答データに対してFFTを実行して、第1実応答プロファイルを算出する。
【0069】
これらの一連の処理において、
図5に示す結果が得られるとする。
図5において、グラフ203は、制御対象9の基準の状態を示す時系列応答データ231と、第1指令に従って動作した制御対象9の現実の状態を示す時系列応答データ232とを示す。グラフ203において、横軸は経過時間を示し、縦軸は駆動対象93の位置の誤差を示す。グラフ204は、時系列応答データ231から算出される初期の基準応答プロファイル241と、時系列応答データ232から算出される第1実応答プロファイル242とを示す。グラフ204において、横軸は周波数を示し、縦軸はスペクトル成分を示す。この例では、16.3Hzを中心とする帯域と91.9Hzを中心とする帯域とにおいてスペクトル成分の差が大きい。
【0070】
誤差取得部25はこのようなスペクトル成分の差を誤差として取得する。一例では、調整制御部29がその誤差に基づいて、91.9Hzを含む限定された帯域を同定範囲として設定する。この例では、調整制御部29が85Hzから95Hzまでの範囲を同定範囲として設定すると仮定する。指示部26は、その同定範囲に対応する第2指令をコントローラ3から制御対象9に出力させる。実プロファイル算出部23は、その制御対象9からの時系列応答データに対してFFTを実行して、第2実応答プロファイルを算出する。
【0071】
図6に示すグラフ205は、第2実応答プロファイルに基づくゲインプロファイル212を
図4におけるグラフ202上にプロットすることで得られる。グラフ205ではゲインプロファイル212の個々の離散値を菱形印により示す。モデル更新部27は、基準応答プロファイルのうち同定範囲(85Hz~95Hz)の部分を第2実応答プロファイルに置き換えて、基準応答プロファイルを更新する。この更新によって、ゲインプロファイル211のうち同定範囲の部分がゲインプロファイル212に置き換えられる。グラフ206は、その置き換えによって更新されたゲインプロファイル211Aの離散値を示す。モデル更新部27はそのゲインプロファイル212Aに周波数特性をフィッティングさせた数学モデル220Aを生成し、その数学モデル220Aをモデル記憶部21に格納する。この処理によって、モデル更新部27は数学モデル220を数学モデル220Aに更新する。グラフ206は数学モデル220Aを80Hz~100Hzの範囲に限定して示す。しかし、モデル更新部27は基準応答プロファイルの周波数帯域の全体に対して数学モデル220Aを生成することに留意されたい。
【0072】
その後、パラメータ算出部28は数学モデル220Aに基づいて制御パラメータを算出し、指示部26はその制御パラメータに基づく新たな第1指令をコントローラ3から制御対象9に出力させる。制御システム1は、更新された基準応答プロファイルと、調整された制御パラメータに基づいて動作した制御対象9の第1実応答プロファイルとの誤差に基づいて、数学モデルの更新と制御パラメータの再計算とを含む一連の処理を更新するか、または、制御パラメータを確定する。制御システム1は必要な回数のループ処理を実行して、最終的に制御パラメータを確定する。
【0073】
上述したように、初期の基準応答プロファイルは現実の状態を表してもよいし仮想の状態を表してもよい。例えば、初期の基準応答プロファイルが、第1指令に対応する制御対象9の第1時点における現実の状態の周波数特性を表すとする。初期の数学モデルは、その現実の状態を表す基準応答プロファイルに基づいて生成される。この場合には、基準応答プロファイルと、第1時点よりも後の第2時点における第1実応答プロファイルとの誤差は、制御対象9の経年変化によって生じたといえる。その誤差が許容範囲になるように制御パラメータを調整することで、その経年変化が吸収されて、制御対象9を引き続き適切に操作し続けることができる。
【0074】
一方、初期の基準応答プロファイルが、第1指令に対応する制御対象9の仮想の状態の周波数特性を表すとする。初期の数学モデルは、その仮想の状態を表す基準応答プロファイルに基づいて生成される。この場合には、シミュレーションによって初期設定された制御パラメータが制御対象9の現実の特性に合うように調整されるので、制御対象9を適切に操作することができる。
【0075】
[応用例]
制御システム1は、モータが複数であり且つ駆動対象が複数の剛体を含む制御対象にも適用可能である。例えば、制御システム1は多関節ロボットにも適用可能である。
【0076】
図7は、多関節ロボットの一例であるロボット310を示す図である。ロボット310は、いわゆる6軸の垂直多関節ロボットであり、基台311と、旋回部312と、アーム313,314,315と、ツール保持部316とを有する。基台311は、作業エリアにおいて床、台、またはAGV(Automated Guided Vehicle)上に固定される。旋回部312は、鉛直な軸線331まわりに旋回するように基台311上に設けられる。
【0077】
アーム313は、軸線331に交差(例えば直交)する軸線332まわりに揺動するように旋回部312に接続される。ここでの交差は、いわゆる立体交差のようにねじれの関係にある場合を含む。アーム314は、軸線332に平行な軸線333まわりに揺動するように、アーム313の先端部に接続される。アーム315は、アーム314に沿い軸線333に交差する軸線334まわりに旋回し、軸線334に交差(例えば直交)する軸線335まわりに揺動するように、アーム314の先端部に接続される。
【0078】
ツール保持部316は、アーム315の中心に沿う軸線336まわりに旋回するように、アーム315の先端部に接続される。ツール保持部316は、ワークを把持するハンド、溶接トーチ、塗装ガン、ねじ締めツールなどの様々なツール317を保持する。
【0079】
モータ321は、軸線331まわりに旋回部312を旋回させる。モータ322は、軸線332まわりにアーム313を揺動させる。モータ323は、軸線333まわりにアーム314を揺動させる。モータ324は、軸線334まわりにアーム314の先端部を旋回させる。モータ325は、軸線335まわりにアーム315を揺動させる。モータ326は、軸線336まわりにツール保持部316を旋回させる。
【0080】
ロボット310においては、ツール保持部316およびツール317がモータ326の駆動対象である。アーム315、ツール保持部316、およびツール317はモータ325の駆動対象である。アーム314の先端部、アーム315、ツール保持部316、およびツール317がモータ324の駆動対象である。アーム314,315、ツール保持部316、およびツール317はモータ323の駆動対象である。アーム313,314,315、ツール保持部316、およびツール317はモータ322の駆動対象である。旋回部312、アーム313,314,315、ツール保持部316、およびツール317はモータ321の駆動対象である。
【0081】
ロボット310のように制御対象が複数のモータを有する場合には、制御システム1は処理フローS1をモータごとに実行してもよい。
【0082】
[プログラム]
制御システム1の各機能モジュールは、プロセッサ161またはメモリ162の上に制御プログラムを読み込ませてプロセッサ161にそのプログラムを実行させることで実現される。制御プログラムは、制御システム1の各機能モジュールを実現するためのコードを含む。プロセッサ161は制御プログラムに従って入出力ポート164または通信ポート165を動作させ、メモリ162またはストレージ163におけるデータの読み出しおよび書き込みを実行する。このような処理により制御システム1の各機能モジュールが実現される。
【0083】
制御プログラムは、CD-ROM、DVD-ROM、半導体メモリなどの非一時的な記録媒体に固定的に記録された上で提供されてもよい。あるいは、制御プログラムは、搬送波に重畳されたデータ信号として通信ネットワークを介して提供されてもよい。
【0084】
[効果]
以上説明したように、本開示の一側面に係る制御システムは、制御対象に指令を出力するコントローラを備える。この制御システムは、第1指令に対応する制御対象の基準の状態の周波数特性を表す基準応答プロファイルの数学モデルを記憶する記憶部と、基準応答プロファイルと、第1指令に応答した制御対象の現実の状態の周波数特性を表す第1実応答プロファイルとの誤差を取得する誤差取得部と、誤差が所与の閾値よりも大きい周波数に基づく第2指令をコントローラから制御対象に出力させる指示部と、第2指令に応答した制御対象の現実の状態の周波数特性を表す第2実応答プロファイルと、基準応答プロファイルとに基づいて、数学モデルを更新するモデル更新部とを備える。
【0085】
本開示の一側面に係る制御方法は、制御対象に指令を出力するコントローラを備える制御システムにより実行される。この制御方法は、第1指令に対応する制御対象の基準の状態の周波数特性を表す基準応答プロファイルの数学モデルを記憶部に格納するステップと、基準応答プロファイルと、第1指令に応答した制御対象の現実の状態の周波数特性を表す第1実応答プロファイルとの誤差を取得するステップと、誤差が所与の閾値よりも大きい周波数に基づく第2指令をコントローラから制御対象に出力させるステップと、第2指令に応答した制御対象の現実の状態の周波数特性を表す第2実応答プロファイルと、基準応答プロファイルとに基づいて、数学モデルを更新するステップとを含む。
【0086】
本開示の一側面に係るコンピュータは、制御対象に出力される第1指令に対応する該制御対象の基準の状態の周波数特性を表す基準応答プロファイルの数学モデルを記憶する記憶部と、基準応答プロファイルと、第1指令に応答した制御対象の現実の状態の周波数特性を表す第1実応答プロファイルとの誤差を取得する誤差取得部と、誤差が所与の閾値よりも大きい周波数に基づく第2指令に応答した制御対象の現実の状態の周波数特性を表す第2実応答プロファイルと、基準応答プロファイルとに基づいて、数学モデルを更新するモデル更新部とを備える。
【0087】
本開示の一側面に係る制御プログラムは、制御対象に出力される第1指令に対応する該制御対象の基準の状態の周波数特性を表す基準応答プロファイルの数学モデルを記憶部に格納するステップと、基準応答プロファイルと、第1指令に応答した制御対象の現実の状態の周波数特性を表す第1実応答プロファイルとの誤差を取得するステップと、誤差が所与の閾値よりも大きい周波数に基づく第2指令に応答した制御対象の現実の状態の周波数特性を表す第2実応答プロファイルと、基準応答プロファイルとに基づいて、数学モデルを更新するステップとをコンピュータに実行させる。
【0088】
このような側面においては、基準応答と第1実応答との誤差に基づく追加の指令(第2指令)により得られる第2実応答を考慮して数学モデルが自動的に更新される。更新された数学モデルは、制御対象の特性をより高精度に反映する。したがって、その更新された数学モデルを用いることで、制御対象への指令を適切に調整することができる。
【0089】
他の側面に係る制御システムでは、指示部は、第1実応答プロファイルの周波数帯域の一部であり、且つ誤差に対応する周波数を含む限定された帯域を同定範囲として設定し、同定範囲内の周波数成分に基づく第2指令をコントローラから制御対象に出力させてもよい。相対的に大きい誤差が発生した周波数の周辺に限定された同定範囲内の周波数成分を用いて第2指令を生成することで、その誤差に対応する第2実応答プロファイルが詳細に得られる。その詳細な第2実応答プロファイルを用いて、数学モデルをより適切に更新することができる。
【0090】
他の側面に係る制御システムでは、モデル更新部は、基準応答プロファイルのうち同定範囲の部分を第2実応答プロファイルに置き換えて、基準応答プロファイルを更新し、更新された基準応答プロファイルに基づくフィッティングを実行して、数学モデルを更新してもよい。相対的に大きい誤差が発生した範囲が修正された基準応答プロファイルに基づくフィッティングを実行することで、制御対象の特性をより正確に反映した数学モデルを生成することができる。
【0091】
他の側面に係る制御システムは、指令と、指令に制御対象を追従させるための制御量との関係を定める制御パラメータを、更新された数学モデルに基づいて再計算するパラメータ算出部をさらに備えてもよい。指示部は、再計算された制御パラメータに基づく新たな指令をコントローラから制御対象に出力させてもよい。更新された数学モデルに基づいて制御パラメータを再計算することで、より適切な指令を制御対象に出力することができる。
【0092】
他の側面に係る制御システムでは、パラメータ算出部は、H∞制御理論および対応する最適化計算を更新された数学モデルに対して実行して、制御パラメータを再計算してもよい。H∞制御理論を利用することで、制御対象の応答の変動、外乱などのような不確実性に対して堅牢な制御パラメータを得ることができる。その結果、制御システムのロバスト性を向上させることができる。
【0093】
他の側面に係る制御システムでは、パラメータ算出部は、制御パラメータの再計算として、カスケード制御におけるゲインを再計算してもよい。カスケード制御におけるゲインを再計算することで、外乱の影響を迅速に抑制可能な指令をより適切に生成することができる。
【0094】
他の側面に係る制御システムでは、新たな指令に対応する誤差が閾値以下になるまで、第2指令の出力と、数学モデルの更新と、制御パラメータの再計算と、新たな指令の出力とを含む処理を繰り返し実行する調整制御部をさらに備えてもよい。この繰り返し処理によって、人手を介することなく、適切な指令を自動的に生成することが可能になる。
【0095】
他の側面に係る制御システムでは、記憶部は、第1指令に対応する制御対象の第1時点における現実の状態の周波数特性を基準の状態の周波数特性として表す基準応答プロファイルの数学モデルを記憶してもよい。誤差取得部は、基準応答プロファイルと、第1時点よりも後の第2時点における第1実応答プロファイルとの誤差を取得してもよい。この仕組みによって、制御対象の経年変化が生じた場合でもその変化に応じて数学モデルが適切に更新される。この更新された数学モデルを用いることで、経年変化の影響を吸収して制御対象を適切に操作し続けることができる。
【0096】
他の側面に係る制御システムでは、記憶部は、第1指令に対応する制御対象の仮想の状態の周波数特性を基準の状態の周波数特性として表す基準応答プロファイルの数学モデルを記憶してもよい。誤差取得部は、基準応答プロファイルと第1実応答プロファイルとの誤差を取得してもよい。この仕組みによって、シミュレーションにより用意された数学モデルが、制御対象の現実の応答に基づいて適切に更新される。この更新された数学モデルを用いることで、制御対象の現実の特性に基づいて該制御対象を適切に操作することができる。
【0097】
他の側面に係る制御システムでは、制御対象は、駆動対象と、該駆動対象を駆動するモータとを有してもよい。第1指令および第2指令のそれぞれは、モータに発生させる駆動力に関してもよい。制御対象の基準の状態および現実の状態のそれぞれは、駆動対象の位置および速度の少なくとも一方であってもよい。この場合には、駆動対象の位置または速度を所望の値にするためのモータへの指令を適切に調整することができる。
【0098】
[変形例]
以上、本開示での実施形態に基づいて詳細に説明した。しかし、本開示は上記実施形態に限定されるものではない。本開示は、その要旨を逸脱しない範囲で様々な変形が可能である。
【0099】
制御システムの構成は上記実施形態に限定されない。コントローラ3は演算装置2の機能モジュールの一部を備えてもよい。例えば、コントローラ3は、実プロファイル算出部23に相当する機能を実行してもよい。演算装置2およびコントローラ3は一つの装置に集約されてもよい。
【0100】
システムのハードウェア構成は、プログラムの実行により各機能モジュールを実現する態様に限定されない。例えば、上記実施形態における機能モジュールの少なくとも一部が、その機能に特化した論理回路により構成されていてもよいし、該論理回路を集積したASIC(Application Specific Integrated Circu
it)により構成されてもよい。
【0101】
少なくとも一つのプロセッサにより実行される方法の処理手順は上記実施形態での例に限定されない。例えば、上述したステップ(処理)の一部が省略されてもよいし、別の順序で各ステップが実行されてもよい。また、上述したステップのうちの任意の2以上のステップが組み合わされてもよいし、ステップの一部が修正または削除されてもよい。あるいは、上記の各ステップに加えて他のステップが実行されてもよい。
【0102】
コンピュータシステムまたはコンピュータ内で二つの数値の大小関係を比較する際には、「以上」および「よりも大きい」という二つの基準のどちらを用いてもよく、「以下」および「未満」という二つの基準のうちのどちらを用いてもよい。このような基準の選択は、二つの数値の大小関係を比較する処理についての技術的意義を変更するものではない。
【符号の説明】
【0103】
1…制御システム、2…演算装置(コンピュータ)、3…コントローラ、9…制御対象、20…基準プロファイル記憶部、21…モデル記憶部、22…初期設定部、23…実プロファイル算出部、24…実プロファイル記憶部、25…誤差取得部、26…指示部、27…モデル更新部、28…パラメータ算出部、29…調整制御部。