本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。
§1 適用例
まず、図1を参照して、本発明が適用される場面の一例について説明する。図1は、本実施の形態に従う制御装置が適用される制御システムの構成例を示す模式図である。図1に示す例の制御システム1は、負荷となる制御対象2と、制御対象2の出力を計測するための計測センサ20と、1または複数のサーボドライバと、1または複数のサーボモータと、制御装置100と、HMI(ヒューマンマシンインターフェイス)30とを含む。
図1に示す例の制御対象2は、ワークが置載されるワーキングプレート3を互いに直交する二方向にそれぞれ移動させることができるXYステージである。なお、制御対象2は、XYステージに限定されるものではなく、出力が振動し得る装置、例えば指定された位置(停止位置)に位置決めされる装置であってもよい。
1または複数のサーボモータは、制御対象2のワーキングプレート3を移動させるためのモータであり、図1に示す例では、2つのサーボモータ300X,300Y(以下、「サーボモータ300」とも称する。)を含む。
制御対象2は、ワーキングプレート3の他に、第1ベースプレート4と、第2ベースプレート7とを有する。
第1ベースプレート4には、ワーキングプレート3をX方向に沿って任意に移動させるボールネジ6が配置されている。ボールネジ6は、ワーキングプレート3に含まれるナットと係合されている。ボールネジ6の一端に連結されたサーボモータ300Xが回転駆動することで、ワーキングプレート3に含まれるナットとボールネジ6とが相対回転し、その結果、ワーキングプレート3がX方向に沿って移動することになる。
さらに、第2ベースプレート7は、ワーキングプレート3および第1ベースプレート4をY方向に沿って任意に移動させるボールネジ9が配置されている。ボールネジ9は、第1ベースプレート4に含まれるナットと係合されている。ボールネジ9の一端に連結されたサーボモータ300Yが回転駆動することで、第1ベースプレート4に含まれるナットとボールネジ9とが相対回転し、その結果、ワーキングプレート3および第1ベースプレート4がY方向に沿って移動することになる。
1または複数のサーボドライバは、サーボモータを駆動する。図1に示す例では、2つのサーボドライバ200X,200Y(以下、「サーボドライバ200」とも称する。)は、サーボモータ300X,300Yをそれぞれ駆動する。
サーボドライバ200は、制御装置100からの指令値(指令位置または指令速度)と、対応するサーボモータ300からのフィードバック値とに基づいて、対応するサーボモータ300に対する駆動信号を生成する。サーボドライバ200は、生成した動作信号をサーボモータ300に出力することにより、サーボモータ300を駆動する。
例えば、サーボドライバ200は、対応するサーボモータ300の回転軸に結合されたエンコーダからの出力信号をフィードバック値として受ける。フィードバック値により、サーボモータ300の位置、回転位相、回転速度、累積回転数などを検出できる。
計測センサ20は、制御対象2の出力としてワーキングプレート3の位置(以下、「負荷位置」ともいう。)を計測する。計測センサ20は、計測した負荷位置を示す計測値を制御装置100に送信する。図1に示す例では、計測センサ20は、2つの計測センサ20X,20Yを含む。計測センサ20X,20Yは、例えばレーザ変位計などの変位センサによって構成される。
計測センサ20Xは、ワーキングプレート3におけるX方向の位置を計測する。具体的には、計測センサ20Xは、ワーキングプレート3におけるX方向に直交する端面の変位を計測する。
計測センサ20Yは、ワーキングプレート3におけるY方向の位置を計測する。具体的には、計測センサ20Yは、ワーキングプレート3におけるY方向に直交する端面の変位を計測する。
制御装置100は、制御対象2の出力(ここでは負荷位置)を制御する。例えば、制御装置100は、モデル予測制御により操作量を計算し、計算した操作量をサーボドライバ200に出力することにより、負荷位置の制御を行なう。制御装置100とサーボドライバ200との間では、操作量を含むデータの遣り取りが可能になっている。
さらに、制御装置100は、制御対象2の出力(負荷位置)の計測値を計測センサ20から取得し、当該計測値を用いて、制御対象2の出力の振動に関与する制御対象2の物理量(例えば振動周波数)の値の変動を検出する。具体的には、制御装置100は、物理量の互いに異なる値を用いて複数の制御対象モデルを作成する。制御対象モデルは、制御対象2の動特性を示すモデルである。制御装置100は、複数の制御対象の各々について、当該制御対象モデルを用いて制御対象2の出力の予測値を演算する。制御装置100は、計測値と複数の制御対象モデルそれぞれの予測値との誤差(以下、「予測誤差」という。)の比較結果に基づいて、物理量の値の変動を検出する。
予測誤差は、制御対象モデルを作成する際に用いた物理量の値と実際の制御対象2の物理量の値との差が小さいほど小さくなる。そのため、制御装置100は、特許文献1のように基準状態での第1関係値を予め準備することなく、複数の制御対象モデルの予測誤差を比較することによって、制御対象2の物理量の値の変動を容易に検出できる。
制御装置100には、ネットワーク101cを介してHMI30が接続されている。制御装置100は、制御対象2の物理量の値の変動の検出結果等をHMI30に適宜通知することができる。
図1には、制御装置100とサーボドライバ200との間がフィールドバス101aを介して接続され、制御装置100と計測センサ20との間がフィールドバス101bを介して接続されている構成例を示す。但し、このような構成例に限らず、任意の通信手段を採用することができる。あるいは、制御装置100とサーボドライバ200および計測センサ20との間を直接信号線で接続するようにしてもよい。さらに、制御装置100とサーボドライバ200とを一体化した構成を採用してもよい。以下に説明するような、アルゴリズムが実現されるものであれば、どのような実装形態を採用してもよい。
§2 具体例
次に、本実施の形態に係る制御装置100の具体例について説明する。
<A.制御装置のハードウェア構成例>
本実施の形態に従う制御装置100は、一例として、PLC(プログラマブルコントローラ)を用いて実装されてもよい。制御装置100は、予め格納された制御プログラム(後述するシステムプログラムおよびユーザプログラムを含む)をプロセッサが実行することで、後述するような処理が実現されてもよい。
図2は、本実施の形態に従う制御装置100のハードウェア構成の一例を示す模式図である。図2に示されるように、制御装置100は、CPU(Central Processing Unit)やMPU(Micro-Processing Unit)などのプロセッサ102と、チップセット104と、メインメモリ106と、フラッシュメモリ108と、外部ネットワークコントローラ116と、メモリカードインターフェイス118と、フィールドバスコントローラ122,124と、外部ネットワークコントローラ116と、メモリカードインターフェイス118とを含む。
プロセッサ102は、フラッシュメモリ108に格納されたシステムプログラム110およびユーザプログラム112を読み出して、メインメモリ106に展開して実行することで、制御対象に対する任意の制御を実現する。プロセッサ102がシステムプログラム110およびユーザプログラム112を実行することで、後述するような、サーボドライバ200への操作量の出力、フィールドバスを介したデータ通信に係る処理などを実行する。
システムプログラム110は、データの入出力処理や実行タイミング制御などの、制御装置100の基本的な機能を提供するための命令コードを含む。ユーザプログラム112は、制御対象に応じて任意に設計され、シーケンス制御を実行するためのシーケンスプログラム112Aおよびモーション制御を実行するためのモーションプログラム112Bを含む。ユーザプログラム112において、ファンクションブロックが定義されることで、本実施の形態に従う処理および機能が実現される。ファンクションブロックは、制御装置100で実行されるプログラムのコンポーネントであり、複数回使用するプログラムエレメントをモジュール化したものを意味する。
チップセット104は、各コンポーネントを制御することで、制御装置100全体としての処理を実現する。
フィールドバスコントローラ122は、制御装置100とフィールドバスを通じて連結される各種デバイスとデータを遣り取りするインターフェイスである。このようなデバイスの一例として、計測センサ20が接続されている。
フィールドバスコントローラ124は、制御装置100とフィールドバスを通じて連結される各種デバイスとデータを遣り取りするインターフェイスである。このようなデバイスの一例として、サーボドライバ200が接続されている。
フィールドバスコントローラ122,124は、接続されているデバイスに対して任意の指令を与えることができるとともに、デバイスが管理している任意のデータを取得することができる。
外部ネットワークコントローラ116は、各種の有線/無線ネットワークを通じて、HMI30を含む各種の装置との間でデータの遣り取りを制御する。
メモリカードインターフェイス118は、メモリカード120を着脱可能に構成されており、メモリカード120に対してデータを書込み、メモリカード120からデータを読出すことが可能になっている。
<B.サーボドライバ>
本実施の形態に従う制御装置100に接続されるサーボドライバ200の動作について説明する。サーボドライバ200は、制御装置100から出力された操作量を指令値(指令位置または指令速度)として受けるとともに、サーボモータ300に結合されたエンコーダからの出力信号をフィードバック値(後述するサーボモータ300の位置の計測値PVM(図3参照))として受ける。サーボドライバ200は、指令値およびフィードバック値を用いて、例えばモデル追従制御系の制御ループに従う制御演算を実行する。
サーボドライバ200は、指令値として指令位置を受ける場合、位置制御ループおよび速度制御ループに従う制御演算を実行する。サーボドライバ200は、指令値として指令速度を受ける場合、速度制御ループに従う制御演算を実行する。
サーボドライバ200は、位置制御ループに従う制御演算を実行することにより、フィードバック値により得られるサーボモータ300の計測位置と制御装置100から与えられる指令位置との位置偏差に応じた指令速度を演算する。
サーボドライバ200は、速度制御ループに従う制御演算を実行することにより、指令速度とフィードバック値から得られるサーボモータ300の計測速度との速度偏差に応じたトルクを演算する。サーボドライバ200は、演算されたトルクをサーボモータ300に発生させるための電流指令を示す動作信号を出力する。
<C.制御装置の機能構成例>
図3は、本実施の形態に係る制御装置の機能構成を示す模式図である。図3に示されるように、制御装置100は、モデル作成モジュール130と、軌道生成モジュール140と、モデル予測制御モジュール150とからなる制御ユニット160を備える。図中においては、モデル予測制御を「MPC(Model Predictive Control)」とも記す。なお、制御装置100は、サーボドライバ200X,200Yにそれぞれ対応する2つの制御ユニット160を備えている。ただし、図3には簡略化のため2つの制御ユニット160のうち一方のみが描かれている。
モデル作成モジュール130は、典型的には、ユーザプログラム112において、モデル作成ファンクションブロックが規定されることにより実現される。すなわち、モデル作成モジュール130は、ユーザプログラム112に規定されるモデル作ファンクションブロックによって機能化される。
モデル作成モジュール130は、サーボドライバ200およびサーボモータ300からなる第1モデル対象400の動特性を示す第1動特性モデルを作成する。モデル作成モジュール130は、作成した第1動特性モデルを規定するモデルパラメータをモデル予測制御モジュール150へ与える。
軌道生成モジュール140は、予め指定された目標軌道に沿って、制御対象2の目標位置(指令位置)の時系列データを生成し、各制御周期に対応する目標位置SPを当該時系列データから順次読出し、モデル予測制御モジュール150へ入力する。具体的には、軌道生成モジュール140は、目標位置の時系列データから、現時刻から将来の一定期間である予測ホライズン終了までの複数の目標位置を抽出し、モデル予測制御モジュール150へ入力する。
なお、制御装置100は、目標軌道を規定する目標位置の時系列データを予め記憶しておいてもよい。この場合には、軌道生成モジュール140は、予め記憶された目標位置の時系列データへアクセスする。このように、目標軌道を規定する制御周期毎の目標位置は、時系列データの形で予め格納されていてもよいし、予め定められた計算式に従って各制御周期についての目標位置を逐次計算するようにしてもよい。
モデル予測制御モジュール150は、操作量計算部151と、検出部152とを含む。モデル予測制御モジュール150に含まれる操作量計算部151および検出部152の各々は、典型的には、ユーザプログラム112にファンクションブロックが規定されることにより実現される。すなわち、操作量計算部151および検出部152の各々は、ユーザプログラム112に規定されるファンクションブロックによって機能化される。なお、操作量計算部151および検出部152は、互いに異なるファンクションブロックによってそれぞれ機能化されてもよいし、1つのファンクションブロックによって機能化されてもよい。
操作量計算部151は、制御対象2からなる第2モデル対象402の動特性を示す第2動特性モデルを作成するとともに、第1動特性モデルおよび第2動特性モデルを用いたモデル予測制御を実行し、サーボドライバ200に出力する操作量MVを生成する。
検出部152は、物理量の互いに異なる値を用いて複数の制御対象モデルを作成する。物理量は例えば振動周波数である。複数の制御対象モデルのうちの1つは、第2動特性モデルと同一である。
検出部152は、複数の制御対象モデルの各々について、当該制御対象モデルを用いて負荷位置の予測値を演算する。検出部152は、計測センサ20からの計測値PVと複数の制御対象モデルそれぞれの予測値との予測誤差の比較結果に基づいて、制御対象2の物理量の値の変動を検出する。
検出部152は、制御対象2の物理量の値の変動を検出した場合、当該物理量の変動後の値を推定してもよい。操作量計算部151は、推定された変動後の値に応じて、第2動特性モデルを更新することが好ましい。これにより、第2動特性モデルで示される動特性と制御対象2の実際の動特性との誤差を小さくすることができる。その結果、目標軌道に対する制御対象2の追従性および制御対象2の制振性能が向上する。
<D.第1動特性モデルの作成>
次に、第1動特性モデルの作成手法について説明する。第1動特性モデルは、例えば特開2018−120327(特許文献2)に開示の手法を用いて作成される。第1動特性モデルは、モデル予測制御を実行する前のチューニングにより作成される。
図4は、第1動特性モデルを作成するために実行されるチューニングを説明する図である。図4に示されるように、制御装置100のモデル作成モジュール130は、チューニング用に予め設定された複数の操作量(例えば指令位置)を順にサーボドライバ200に出力し、サーボモータ300の計測位置を取得する。サーボモータ300の計測位置は、サーボモータ300の回転軸に結合されたエンコーダから出力されるフィードバック値から特定される。モデル作成モジュール130は、操作量および計測位置をそれぞれ同定入力および同定出力とし、同定入力に対する同定出力の関係を用いてシステム同定手法を適用することで、第1動特性モデルを作成できる。
第1動特性モデルを示す関数は、例えば以下の[数1]の関数PCM(z−1)で示される。関数PCM(z−1)は、むだ時間要素と、n次遅れ要素とを組み合わせた離散時間伝達関数である。関数PCM(z−1)で示される第1動特性モデルにおいては、むだ時間要素のむだ時間dならびにn次遅れ要素の変数a1〜anおよび変数b1〜bmがモデルパラメータとして決定される。なお、次数nおよび次数mについても最適な値が決定されてもよい。
このようなモデルパラメータの作成処理(すなわち、システム同定)は、同定入力および同定出力を用いて、最小二乗法などにより実行されてもよい。
具体的には、y=PCM(z−1)*uの変数uに同定入力として選択された操作量を与えたときの出力yが、同定出力として選択された計測位置と一致するように(すなわち、誤差が最小になるように)、特性パラメータの各々の値が決定される。
このとき、むだ時間dを先に決定した上で、同定出力を当該決定したむだ時間dだけ進めた補正後の時間波形を生成し、その補正後の時間波形に基づいて、むだ時間要素を除いた残りの伝達関数の要素を決定してもよい。
<E.第2動特性モデルの作成>
次に、第2動特性モデルの作成手法について説明する。第2動特性モデルは、制御対象2の物理量(例えば振動周波数)の値を用いて作成される。以下では、物理量が振動周波数である場合の例について説明する。制御対象2の振動周波数の初期値は、例えば、モデル予測制御を実行する前のチューニングにおいて取得された制御対象2の振動波形から抽出される。振動波形は、サーボモータ300の回転を停止した直後のワーキングプレート3の位置を計測センサ20が計測することにより得られる。
図5は、振動波形の一例を示す図である。図5には、横軸を時間とし、縦軸を制御対象2の出力(負荷位置)とするグラフが示される。サーボモータ300の回転が停止したとしても、制御対象2のワーキングプレート3は振動する。ワーキングプレート3は、制御対象2の固有振動周波数に従って振動する。そこで、制御装置100のモデル作成モジュール130は、振動波形から振動周期T0’を抽出し、f0=1/T0’に従って振動周波数の値f0を算出する。もしくは、モデル作成モジュール130は、減衰の影響を考慮して、以下の[数2]に従って振動周波数の値f0を算出してもよい。ζは振動の減衰比を示す。
第2動特性モデルは、振動周波数の値f0を用いて作成される。第2動特性モデルを示す関数は、例えば以下の[数3]の関数PML(s)で示される。関数PML(s)において、ω0は、制御対象2の振動角周波数であり、ω0=2πf0で示される。算出された振動周波数の値f0を用いて、関数PML(s)で示される第2動特性モデルが作成される。
第2動特性モデルを示す関数は、以下の[数4]または「数5]の関数PML(s)で示されてもよい。
ζは、対数減衰率δを用いて、ζ=δ/(δ2+4π2)1/2で示される。対数減衰率δは、振動波形において連続する2つの波の振幅比の値Adrと自然対数lnとを用いて、δ=ln(1/Adr)で示される。振幅比の値Adrは、図6に示す振動波形において連続する2つの波の振幅An,An+1の比An+1/Anで示される。そのため、操作量計算部151は、振動波形から抽出された振幅比の値Adrおよび振動周波数の値f0を用いて、[数3]〜[数5]のいずれかの関数PML(s)で示される第2動特性モデルを作成すればよい。
なお、操作量計算部151は、[数3]〜[数5]の関数PML(s)を離散時間形式に変換(Z変換)し、変換された関数PML(z−1)を用いてモデル予測制御を行なう。
<F.モデル予測制御の処理例>
モデル予測制御の処理例を説明する前に、図6を参照して、第1動特性モデルPCMおよび第2動特性モデルPMLを用いた負荷位置の演算方法の例について説明する。図6は、第1動特性モデルPCMおよび第2動特性モデルPMLを用いた負荷位置の演算方法の例を示す図である。
図6に示されるように、操作量計算部151は、操作量MVを第1動特性モデルPCMに入力することにより、当該操作量MVに応じたサーボモータ300の予測位置(以下、「モータ位置」とも称する。)を示す予測値YMを演算できる。操作量計算部151は、演算された予測値YMを第2動特性モデルPMLに入力することにより、当該予測値YMに応じた負荷位置の予測値YLを演算できる。
図6に示す演算方法を用いて、操作量計算部151は、例えば以下のような制御により、制御周期毎にサーボドライバ200に出力する操作量MVを計算する。
操作量計算部151は、上記の[数1]の関数PCM(z−1)で示される第1動特性モデルPCMに、今回の制御周期kまでに生成した操作量MVk,・・・,MVk−m+1を入力することにより、制御周期k+d+1におけるモータ位置の予測値YMk+d+1を演算する。ここで、mは、上記のように、第1動特性モデルPCMで規定される次数である。また、制御周期k+d+1は、今回の制御周期kの終了時から動特性モデルに規定されるむだ時間d+1だけ経過した制御周期である。
操作量計算部151は、予測値YMk+d+1を第2動特性モデルPMLに入力することにより、制御周期k+d+1における負荷位置の予測値YLk+d+1を演算する。
上記のようにして求められた負荷位置の予測値YLk+d+1は、次回の制御周期における操作量MVを生成するために使用される。このとき、次回の制御周期に備えて、演算されたデータが1制御周期分だけシフトされる。例えば、上記のようにして求められた予測値YLk+d+1は、次回の制御周期において予測値YLk+dとして使用される。言い換えると、今回の制御周期kでは、前回の制御周期において演算された予測値YLk+d+1が予測値YLk+dとして使用される。操作量計算部151は、前回の制御周期で演算済みの当該予測値YLk+dと第1動特性モデルPCMおよび第2動特性モデルPMLとを用いたモデル予測制御により、サーボドライバ200に出力する操作量MVkを生成する。
モデル予測制御としては公知の技術が採用され得る。例えば、操作量計算部151は、以下のようなモデル予測制御に従って、操作量MVkを生成してもよい。
操作量計算部151は、第1動特性モデルPCMおよび第2動特性モデルPMLを作成した後、ステップ応答計算とランプ応答計算とを行なう。
ステップ応答計算とは、出力が0である初期状態において最大の入力(ステップ入力)を継続したときの動特性モデル(第1動特性モデルPCMおよび第2動特性モデルPMLを組み合わせたモデル)の出力Ysを求める計算である。以下の説明では、ステップ入力の入力開始からの経過時間i(>むだ時間d)における出力YsをYs(i)とする。
ランプ応答計算とは、出力が0である初期状態において制御周期毎に1段階ずつ増加させた入力(ランプ入力)を行なったときの動特性モデルの出力Yrを求める計算である。以下の説明では、ランプ入力の入力開始からの経過時間i(>むだ時間d)における出力YrをYr(i)とする。
さらに、操作量計算部151は、負荷位置の予測値YLk+dを指定状態とした自由応答計算を行なう。自由応答計算とは、制御周期k+dにおいて指定状態にある動特性モデルにおいて、今回の制御周期k以降の入力を0としたときの、制御周期k+dより後の制御周期k+d+Hにおける動特性モデルの出力Yf(k+d+H)を求める計算である。
操作量計算部151は、ステップ出力およびランプ出力の大きさをそれぞれksおよびkrとして、制御周期k+dより後の制御周期k+d+Hにおける動特性モデルの出力MHk+d+Hを以下の式に従って演算する。
MHk+d+H=ks*Ys(H)+kr*Yr(H)+Yf(k+d+H)
操作量計算部151は、MHk+d+Hと予測値YLk+dとの差分ΔMHと、制御周期k+d+Hにおける参照軌道上の位置RHk+d+Hと予測値YLk+dとの差分ΔPHとが一致するように、ksおよびkrを求める。参照軌道は、制御周期k+d+Hにおける目標位置SPk+d+Hと予め定められる参照軌道時定数Trとによって特定される。2つの変数ksおよびkrを求めるため、Hとして2つの値が設定される。Hとして設定される2つの値は、制御対象2の振動周期よりも短い時間であり、例えば振動周期の1/8および振動周期の1/4である。そして、当該2つの値のそれぞれの式からなる連立方程式を解くことにより、変数ks,krが演算される。
操作量計算部151は、上記のようにして求めたksとステップ入力との積を、今回の制御周期kにおいてサーボドライバ200に出力する操作量MVkとして計算すればよい。
なお、計測センサ20から負荷位置の計測値PVを受けるため、操作量計算部151は、計測値PVに基づいて、負荷位置の予測値YLを計算してもよい。計測値PVを用いることなく予測値YLを演算して操作量MVを生成するモデル予測制御は、「独立モデル型のモデル予測制御」といわれる。また、計測値PVによって計算された予測値YLを用いて操作量MVを生成するモデル予測制御は、「リセットモデル型のモデル予測制御」といわれる。
<G.物理量の変動検出の処理例>
図7〜図9を参照して、検出部152による物理量の変動検出の処理例について説明する。図7は、検出部による物理量の変動検出の演算例を示す図である。
検出部152は、制御対象2が取り得る動特性を示す複数の制御対象モデルを作成する。検出部152は、現状の第2動特性モデルPMLを、複数の制御対象モデルの1つである基準制御対象モデルPML0として用いる。検出部152は、基準制御対象モデルPML0とは異なる物理量の値を用いて、残りの制御対象モデルを作成する。
例えば、検出部152は、現状の第2動特性モデルPMLに対応する振動周波数の値f0を用いて、以下の数[6]の関数PMLH(s)で示される高域側制御対象モデルPMLHと、以下の数[7]の関数PMLL(s)で示される低域側制御対象モデルPMLLとを作成する。
数[6]の関数PMLH(s)において、ωHは、振動角周波数であり、ωH=2*π*fHで示される。fHは、振動周波数f0よりも高域側の振動周波数を示し、fH=αH*f0で示される。αHは1よりも大きい係数である。数[7]の関数PMLL(s)において、ωLは、振動角周波数であり、ωL=2*π*fLで示される。fLは、振動周波数f0よりも低域側の振動周波数を示し、fL=αL*f0で示される。αLは1よりも小さい係数である。
検出部152は、複数の制御対象モデルの各々について、当該制御対象モデルを用いて負荷位置の予測値を演算する。
具体的には、検出部152は、サーボドライバ200に出力する操作量MVを第1動特性モデルPCMに入力することにより、モータ位置の予測値YMを演算する。
次に、検出部152は、予測値YMを基準制御対象モデルPML0に入力することにより負荷位置の予測値YLを演算する。当該予測値YLは、今回の制御周期の終了時から動特性モデルに規定されるむだ時間d+1だけ経過した制御周期における負荷位置を示す。同様に、検出部152は、予測値YMを高域側制御対象モデルPMLHに入力することにより負荷位置の予測値YLHを演算する。検出部152は、予測値YMを低域側制御対象モデルPMLLに入力することにより負荷位置の予測値YLLを演算する。このとき、検出部152は、独立モデル型のモデル予測制御と同じように、計測値PVを用いることなく負荷位置の予測値を演算する。
なお、検出部152は、操作量計算部151と同様に、基準制御対象モデルPML0を示す関数PML(s)を離散時間形式に変換(Z変換)し、変換された関数PML(z−1)を用いて負荷位置の予測値を演算する。同様に、[数6]の関数PMLH(s)および数[7]の関数PMLL(s)は、離散時間形式にそれぞれ変換(Z変換)され、変換された関数PMLH(z−1)および関数PMLL(z−1)を用いて負荷位置の予測値が演算される。
検出部152は、複数の制御対象モデルの各々について、負荷位置の計測値PVと負荷位置の予測値との予測誤差を演算する。なお、上述したように、負荷位置の予測値は、今回の制御周期の終了時から動特性モデルに規定されるむだ時間d+1だけ経過した制御周期における負荷位置を示す。そのため、むだ時間d+1だけ経過した制御周期において計測センサ20から取得した計測値PVと予測値との予測誤差が演算される。図7に示す例では、検出部152は、基準制御対象モデルPML0の出力である予測値YLと計測値PVとの予測誤差PEを演算する。検出部152は、高域側制御対象モデルPMLHの出力である予測値YLHと計測値PVとの予測誤差PEHを演算する。検出部152は、低域側制御対象モデルPMLLの出力である予測値YLLと計測値PVとの予測誤差PELを演算する。
検出部152は、複数の制御対象モデルに対応する予測誤差を比較する予測誤差比較処理154を実行することにより、制御対象2における振動周波数の値の変動を検出する。さらに、検出部152は、振動周波数の値の変動を検出した場合に、振動周波数の変動後の値を推定してもよい。
図8は、複数の制御対象モデルに対応する予測誤差の時間変化の一例を示す図である。図9は、複数の制御対象モデルに対応する予測誤差の時間変化の別の例を示す図である。図8および図9には、制御対象2を0.4秒で所定距離だけ移動させて位置決めする制御を行なったときの予測誤差の時間変化が示される。
図8および図9において、ΔPEは、制御開始から目標位置が停止するまでの0〜0.4秒の区間における、基準制御対象モデルPML0の出力である予測値YLと計測値PVとの予測誤差PEの変化幅(最大値と最小値との差)を示す。ΔPEHは、同じ区間における、高域側制御対象モデルPMLHの出力である予測値YLHと計測値PVとの予測誤差PEHの変化幅を示す。ΔPELは、同じ区間における、低域側制御対象モデルPMLLの出力である予測値YLLと計測値PVとの予測誤差PELの変化幅を示す。
予測誤差は、制御対象モデルを作成する際に用いた物理量(例えば振動周波数)の値と制御対象2の実際の物理量(例えば振動周波数)の値とが近いほど小さくなる。図8に示す例では、ΔPE,ΔPEHおよびΔPELのうちΔPEが最も小さい。そのため、実際の制御対象2の振動周波数の値は、f0,fHおよびfLのうちf0に最も近く、f0から変動していないと判断できる。
ただし、図8に示す例では、ΔPEHに比べて、ΔPELが非常に大きい。そのため、実際の制御対象2の振動周波数の値は、f0よりも少しfH側に変動していると判断されてもよい。この場合、振動周波数の変動後の値は、f0から(f0+fH)/2までの値と推定される。
ΔPEとΔPEHとが同程度である場合には、振動周波数の変動後の値は、(f0+fH)/2と推定されてもよい。
図9に示す例では、ΔPE,ΔPEHおよびΔPELのうちΔPEHが最も小さい。そのため、実際の制御対象2の振動周波数の値は、f0,fHおよびfLのうちfHに最も近い。従って、振動周波数の値が変動していると判断される。この場合、振動周波数の変動後の値はfHと推定される。
図8および図9に示す例を考慮して、検出部152は、例えば以下の示すような判断基準1〜7に従って、振動周波数の値の変動の有無を判断するとともに、振動周波数の変動後の値を推定すればよい。ただし、判断基準は、以下に示すものに限定されず、制御対象2に応じて適宜設定される。
(判断基準1)ΔPE,ΔPEHおよびΔPELのうちΔPEが最小であるという条件Aと、(ΔPEH−ΔPE)が閾値Th1Hより大きく、かつ、(ΔPEL−ΔPE)が閾値Th1Lより大きいという条件Bとの両方を満たす場合、振動周波数の値が変動していない。
(判断基準2)条件Aと、(ΔPEH−ΔPE)が閾値Th1Hから閾値Th2H(<Th1H)の範囲内であるという条件Cとを満たす場合に、振動周波数の値が変動しており、変動後の値がf0と(f0+fH)/2との間の値である。変動後の値は、例えば、f0と(f0+fH)/2との中間値(3f0+fH)/4である。
(判断基準3)条件Aと、(ΔPEL−ΔPE)が閾値Th1Lから閾値Th2L(<Th1L)の範囲内であるという条件Dとを満たす場合に、振動周波数の値が変動しており、変動後の値が(fL+f0)/20からf0までの値である。変動後の値は、例えば、(fL+f0)/20とf0との中間値(3f0+fL)/4である。
(判断基準4)ΔPEおよびΔPEHがΔPELよりも小さいという条件Eと、|ΔPEH−ΔPE|が閾値Th2H未満である条件Fとを満たす場合に、振動周波数の値が変動しており、変動後の値が(f0+fH)/2である。
(判断基準5)ΔPEおよびΔPELがΔPEHよりも小さいという条件Gと、|ΔPEL−ΔPE|が閾値Th2L未満である条件Hとを満たす場合に、振動周波数の値が変動しており、変動後の値が(f0+fL)/2である。
(判断基準6)条件Fを満たさず、かつ、ΔPE,ΔPEHおよびΔPELのうちΔPEHが最小であるという条件Iを満たす場合、振動周波数の値が変動しており、変動後の値がfHである。
(判断基準7)条件Hを満たさず、かつ、ΔPE,ΔPEHおよびΔPELのうちΔPELが最小であるという条件Jを満たす場合、振動周波数の値が変動しており、変動後の値がfLである。
なお、図7に示す例では、1つの高域側制御対象モデルPMLHと1つの低域側制御対象モデルPMLLとが作成される。しかしながら、複数の高域側制御対象モデルPMLH1〜PMLHj(jは2以上の整数)が作成されてもよく、複数の低域側制御対象モデルPMLL1〜PMLLk(kは2以上の整数)が作成されてもよい。複数の高域側制御対象モデルPMLH1〜PMLHjは、振動周波数の値fH1(=αH1*f0)〜fHj(=αHj*f0)を用いてそれぞれ作成される。複数の低域側制御対象モデルPMLL1〜PMLLkは、振動周波数の値fL1(=αL1*f0)〜fLk(=αLk*f0)を用いてそれぞれ作成される。
複数の高域側制御対象モデルPMLH1〜PMLHjが作成される場合、検出部152は、複数の高域側制御対象モデルPMLH1〜PMLHjに対応する予測誤差PEH1〜PEHjをそれぞれ演算する。さらに、検出部152は、制御開始から目標位置が停止するまでの区間における予測誤差PEH1〜PEHjの変化幅ΔPEH1〜ΔPEHjをそれぞれ演算する。
実際の制御対象2の振動周波数の値がfHi近傍に変動した場合、ΔPEHiが最も小さくなる。また、実際の制御対象2の振動周波数の値がfHiとfH(i+1)との中心辺りに変動した場合、ΔPEHiとΔPEH(i+1)とが同程度となり、他の予測誤差の変化幅より小さくなる。
そこで、検出部152は、上記の判断基準1〜5に加えて、例えば以下の示すような判断基準8,9に従って、振動周波数の値の変動の有無を判断するとともに、振動周波数の変動後の値を推定すればよい。なお、上記の判断基準1〜5では、ΔPEHをΔPEH1に置き換えるものとする。以下の判断基準8,9は、上記の判断基準6,7の代わりに用いられる。
(判断基準8)ΔPEHiが他の全ての予測誤差の変化幅よりも閾値Th3H以上小さい場合、振動周波数の値が変動しており、変動後の値がfHiである。
(判断基準9)ΔPEHiおよびΔPEH(i+1)が他の全ての予測誤差の変化幅よりも小さく、かつ、|ΔPEHi−ΔPEH(i+1)|が閾値TH3H未満である場合、振動周波数の値が変動しており、変動後の値が(fHi+fH(i+1))/2である。
同様に、複数の低域側制御対象モデルPMLL1〜PMLLkが作成される場合、検出部152は、複数の低域側制御対象モデルPMLL1〜PMLLkに対応する予測誤差PEL1〜PELkをそれぞれ演算する。さらに、検出部152は、制御開始から目標位置が停止するまでの期間における、予測誤差PEL1〜PELkの変化幅ΔPEL1〜ΔPELkをそれぞれ演算する。
実際の制御対象2の振動周波数の値がfLi近傍に変動した場合、ΔPELiが最も小さくなる。また、実際の制御対象2の振動周波数の値がfLiとfL(i+1)との中心辺りに変動した場合、ΔPELiとΔPEL(i+1)とが同程度となり、他の予測誤差の変化幅より小さくなる。
そこで、検出部152は、上記の判断基準1〜5に加えて、例えば以下の示すような判断基準10,11に従って、振動周波数の値の変動の有無を判断するとともに、振動周波数の変動後の値を推定すればよい。なお、上記の判断基準1〜5では、ΔPELをΔPEL1に置き換えるものとする。以下の判断基準10,11は、上記の判断基準6,7の代わりに用いられる。
(判断基準10)ΔPELiが他の全ての予測誤差の変化幅よりも閾値Th3L以上小さい場合、振動周波数が変動しており、変動後の値がfLiである。
(判断基準11)ΔPELiおよびΔPEL(i+1)が他の全ての予測誤差の変化幅よりも小さく、かつ、|ΔPELi−ΔPEL(i+1)|が閾値Th3L未満である場合、振動周波数の値が変動しており、変動後の値が(fLi+fL(i+1))/2である。
複数の高域側制御対象モデルPMLH1〜PMLHjと複数の低域側制御対象モデルPMLL1〜PMLLkとが作成されることにより、振動周波数の値の変動の検出精度および振動周波数の変動後の値の推定精度が向上する。
<H.第2動特性モデルの更新>
操作量計算部151は、検出部152によって推定された振動周波数の変動後の値に応じて、第2動特性モデルPMLを更新することが好ましい。具体的には、操作量計算部151は、振動周波数の値f0を変動後の値に更新し、更新後の値f0を用いて、上記の[数3]〜[数5]のいずれかの関数PML(s)で示される第2動特性モデルPMLを作成すればよい。
なお、操作量計算部151は、検出部152によって振動周波数の変動後の値が推定されると、自動的に第2動特性モデルPMLを更新してもよいし、ユーザからの指示を受けてから第2動特性モデルPMLを更新してもよい。
操作量計算部151は、ユーザからの指示を受けてから第2動特性モデルPMLを更新する場合、HMI30に当該指示を受け付けるための画面を表示すればよい。
図10は、第2動特性モデルPMLの更新指示を受け付けるための画面の一例を示す図である。図10に示す画面31は、HMI30に表示される。画面31は、表示欄31A〜31Dを含む。表示欄31Aには、現状の第2動特性モデルPMLに対応する振動周波数の値f0(図中、「基準振動周波数」と表記)が表示される。表示欄31Bには、高域側制御対象モデルPMLH1〜PMLHjと低域側制御対象モデルPMLL1〜PMLLkとを作成するための係数αH1〜αHj,αL1〜αLkが表示される。表示欄31Cには、各制御対象モデルについて演算された予測誤差の時間変化を示すグラフが表示される。表示欄31Dは、推定された振動周波数の変動後の値が表示される。さらに、表示欄31Dは、第2動特性モデルPMLを作成する際に用いる振動周波数の値f0の更新を指示する指示ボタン31Eを含む。
操作量計算部151は、指示ボタン31Eが操作されると、第2動特性モデルPMLを作成する際に用いる振動周波数の値f0を変動後の値に更新する。操作量計算部151は、更新後の値f0を用いて、上記の[数3]〜[数5]のいずれかの関数PML(s)で示される第2動特性モデルPMLを作成すればよい。
さらに、検出部152は、第2動特性モデルPMLの更新に応じて、基準制御対象モデルPML0、高域側制御対象モデルPMLHおよび低域側制御対象モデルPMLLを更新する。
<I.処理手順>
次に、本実施の形態に従う制御装置100による制御処理の概要について説明する。図11は、本実施の形態に従う制御システムによる制御処理の流れを示すフローチャートである。図11に示すステップは、制御装置100のプロセッサ102が制御プログラム(図2に示すシステムプログラム110およびユーザプログラム112を含む)を実行することで実現されてもよい。
まず、制御装置100は、サーボドライバ200に対してチューニングを実行させ、チューニングにより同定入力および同定出力を取得するとともに、チューニングの際に計測センサ20によって計測された振動波形から振動周波数の値f0および振幅比の値Adrを抽出する。そして、制御装置100は、同定入力および同定出力に基づいて第1動特性モデルPCMを作成するとともに、振動周波数の値f0および振幅比の値Adrに基づいて第2動特性モデルPMLを作成する(ステップS1)。
次に、制御装置100は、係数αH,αLを設定し、高域側制御対象モデルPMLHと低域側制御対象モデルPMLLとを作成する(ステップS2)。
次に、ステップS3において、制御装置100は、第1動特性モデルPCMと第2動特性モデルPMLとを用いたモデル予測制御を実行する。さらに、制御装置100は、モデル予測制御と並行して、基準制御対象モデルPML0(第2動特性モデルPMLと同一)と高域側制御対象モデルPMLHと低域側制御対象モデルPMLLとの各々について、予測誤差を演算し、演算した予測誤差を記憶する。
ステップS3のモデル予測制御により、制御対象2は、目標軌道の終点に位置決めされる。そして、制御装置100は、制御対象2の位置決め期間における、複数の制御対象モデルの予測誤差の時間変化を記憶する。
次に、制御装置100は、制御処理を終了するか否かを判断する(ステップS4)。例えば、制御装置100は、次の位置決め指令を上位制御部から受けていない場合に、制御処理を終了すると判断する。制御処理を終了すると判断した場合(ステップS4でYES)、制御装置100による制御処理は終了する。
制御処理を終了しないと判断した場合(ステップS4でNO)、制御装置100は、直近のステップS3で記憶した、複数の制御対象モデルの予測誤差を比較し、比較結果に基づいて振動周波数の値の変動の有無を判断する(ステップS5)。ステップS5において、制御装置100は、振動周波数の値が変動している場合に、振動周波数の変動後の値を推定する。
次に、制御装置100は、第2動特性モデルPMLの更新の要否を判断する(ステップS6)。制御装置100は、振動周波数の値が変動している場合に、第2動特性モデルPMLの更新が必要であると判断してもよい。もしくは、制御装置100は、振動周波数の値が変動しており、かつ、図10に示す画面31において指示ボタン31Eが操作された場合に、第2動特性モデルPMLの更新が必要であると判断してもよい。
第2動特性モデルの更新が不要である場合(ステップS6でNO)、制御装置100による制御処理は、ステップS3に戻る。第2動特性モデルPMLの更新が必要である場合(ステップS6でYES)、制御装置100は、振動周波数の値f0を推定された変動後の値に更新する。さらに、制御装置100は、更新後値の値f0に従って、第2動特性モデルPML(基準制御対象モデルPML0)と高域側制御対象モデルPMLHと低域側制御対象モデルPMLLとを更新する。ステップS6の後、制御装置100による制御処理は、ステップS3に戻る。
<J.プログラミング例>
本実施の形態に従う制御装置100による制御処理は、制御装置100で実行されるユーザプログラム112において命令を記述することで実行され得る。以下、本実施の形態に従う制御装置100のプログラミングの一例について説明する。
図12は、本実施の形態に従う制御装置100で実行される命令コードの一例を示す図である。図12には、操作量計算部151および検出部152を一体化して機能化する例のモデル予測制御ファンクションブロック115が示される。モデル予測制御ファンクションブロック115(以下、「モデル予測制御FB115」という)は、第2動特性モデルの作成、モデル予測制御の実行、および振動周波数の変動の検出を規定するためのファンクションブロックである。上記のモデル予測制御モジュール150は、モデル予測制御FB115によって実現される。
モデル予測制御FB115は、入力項目として、開始指示115Aと、サンプリング周期115Bと、目標位置115Cと、モデルパラメータ115Dと、制御パラメータ115Eと、振動周波数115Fと、振幅比115Gと、計測値115Hと、検出用係数115Iと、振動周波数更新指示115Jとを含む。モデル予測制御FB115は、出力項目として、ステータス115Kと、操作量115Lと。予測誤差115Mと、推定振動周波数115Nとを含む。
開始指示115Aには、例えば、モデル予測制御を開始するための条件が設定される。サンプリング周期115Bには、モデル予測制御による演算を実行する制御周期が設定される。
目標位置115Cには、予め定められた制御対象2の目標軌道を規定する複数の目標位置のデータ配列が設定される。
モデルパラメータ115Dには、モデル作成モジュール130によって作成された第1動特性モデルPCMを規定するためのモデルパラメータ(d,a1〜an,b1〜bm)が入力される。
制御パラメータ115Eには、モデル予測制御で用いる予測ホライズンおよび参照軌道時定数が入力される。
振動周波数115Fには、振動周波数の値f0が入力される。なお、チューニングを行なった直後において、振動周波数115Fには、チューニングの際に計測された制御対象2の振動波形から抽出された振動周波数の値がf0として入力される。振動周波数更新指示115Jに更新指示が入力された場合において、振動周波数115Fには、推定振動周波数115Nから出力された振動周波数の変動後の値がf0として入力される。
振幅比115Gには、チューニングの際に計測された制御対象2の振動波形から抽出された振幅比の値Adrが入力される。
計測値115Hには、計測センサ20から出力された計測値PVが入力される。検出用係数115Iには、高域側制御対象モデルPMLH1〜PMLHjおよび低域側制御対象モデルPMLL1〜PMLLkを作成するための係数αH1〜αHj,αL1〜αLkが入力される。係数αH1〜αHj,αL1〜αLkは、制御対象2に応じて予め定められる。
振動周波数更新指示115Jには、図10に示す画面31の指示ボタン31Eが操作されたことに応じて、振動周波数の更新指示が入力される。
また、ステータス115Kからは、モデル予測制御FB115による処理の実行状態を示す値が出力される。
操作量115Lからは、第1動特性モデルおよび第2動特性モデルを用いたモデル予測制御により計算された操作量MVが出力される。
予測誤差115Mからは、基準制御対象モデルPML0(第2動特性モデルPMLと同一)、高域側制御対象モデルPMLH1〜PMLHjおよび低域側制御対象モデルPMLL1〜PMLLkの各々に対応する予測誤差が出力される。
推定振動周波数115Nからは、基準制御対象モデルPML0、高域側制御対象モデルPMLH1〜PMLHjおよび低域側制御対象モデルPMLL1〜PMLLkの予測誤差の比較結果に基づいて推定された、振動周波数の変動後の値が出力される。
<K.シミュレーション結果>
図13は、参考形態におけるシミュレーション結果の一例を示す図である。図13には、モデル予測制御を行なうことなく、目標軌道から生成される指令値をサーボドライバ200に直接出力した場合のシミュレーション結果が示される。図13には、以下の条件下でのシミュレーション結果が示される。
・制御対象2の固有振動周波数を9.2Hzとした。
・目標軌道を400msで制御対象を100mm移動させる5次軌道とした。
図13に示されるように、制御対象2の出力であるワーキングプレート3の位置(負荷位置)は、目標位置に対して大きく振動することがわかる。
図14は、本実施の形態におけるシミュレーション結果の一例を示す図である。図15は、本実施の形態におけるシミュレーション結果の別の例を示す図である。図16は、本実施の形態におけるシミュレーション結果のさらに別の例を示す図である。図14〜図16には、以下の条件下でのシミュレーション結果が示される。
・制御対象2の振動周波数が9.2Hzであるときの第2動特性モデルPMLを用いた。
・目標軌道を400msで制御対象2を100mm移動させる5次軌道とした。
・リセットモデル型のモデル予測制御に従って指令値が生成されるように設定した。
・係数αHを1.1に設定した高域側制御対象モデルPMLHを作成した。すなわち、高域側制御対象モデルPMLHは、制御対象の振動周波数が1.1×9.2Hzであると仮定したときのモデルである。
・係数αLを0.9に設定した低域側制御対象モデルPMLLを作成した。すなわち、低域側制御対象モデルPMLLは、制御対象の振動周波数が0.9×9.2Hzであると仮定したときのモデルである。
図14の最左列の(a)には、制御対象2の固有振動周波数を9.2Hzとしたときのシミュレーション結果が示される。図14の左から2列目の(b)には、制御対象2の固有振動周波数を9.2Hzの1.03倍に変動させたときのシミュレーション結果が示される。図14の左から3列目の(c)には、制御対象2の固有振動周波数を9.2Hzの1.05倍に変動させたときのシミュレーション結果が示される。図14の左から4列目の(d)には、制御対象2の固有振動周波数を9.2Hzの1.07倍に変動させたときのシミュレーション結果が示される。
図15の最左列の(a)には、制御対象2の固有振動周波数を9.2Hzの1.09倍に変動させたときのシミュレーション結果が示される。図15の左から2列目の(b)には、制御対象2の固有振動周波数を9.2Hzの1.2倍に変動させたときのシミュレーション結果が示される。図15の左から3列目の(c)には、制御対象2の固有振動周波数を9.2Hzの0.97倍に変動させたときのシミュレーション結果が示される。図15の左から4列目の(d)には、制御対象2の固有振動周波数を9.2Hzの0.95倍に変動させたときのシミュレーション結果が示される。
図16の最左列の(a)には、制御対象2の固有振動周波数を9.2Hzの0.93倍に変動させたときのシミュレーション結果が示される。図16の左から2列目の(b)には、制御対象2の固有振動周波数を9.2Hzの0.91倍に変動させたときのシミュレーション結果が示される。図16の左から3列目の(c)には、制御対象2の固有振動周波数を9.2Hzの0.8倍に変動させたときのシミュレーション結果が示される。
図14〜16において、各列の上段には、目標位置の時間変化つまり目標軌道が示される。目標軌道は5次軌道である。各列の中段には、目標位置と負荷位置との時間変化が示される。図13と比較して、モデル予測制御を行なうことにより、振動が抑制されていることがわかる。各列の下段には、基準制御対象モデルPML0に対応する予測誤差PEと、高域側制御対象モデルPMLHに対応する予測誤差PEHと、低域側制御対象モデルPMLLに対応する予測誤差PELとの時間変化が示される。上段および中段のグラフの横軸の目盛りは、下段のグラフの横軸の目盛りと同じである。
図14(a)に示されるように、第2動特性モデルPMLに設定される振動周波数の値と制御対象2の振動周波数の値とが一致している場合、第2動特性モデルPMLを用いたモデル予測制御により、目標位置に対する追従性が高く、振動も抑制される。第2動特性モデルPMLに設定される振動周波数の値f0と制御対象2の振動周波数の値とが一致しているため、基準制御対象モデルPML0に対応する予測誤差PEの変化幅が他の予測誤差PEH,PELの変化幅よりも小さくなっている。
図14(b)〜(d)および図15(a)(b)に示されるように、制御対象2の振動周波数の値が第2動特性モデルPMLに設定される振動周波数の値f0よりも高域側に変動すると、その変動量が増えるに従って目標位置に対する追従性が低下する。
図14(b)〜(d)および図15(a)(b)に示されるように、制御対象2の振動周波数の値が高域側に変動するにつれて、高域側制御対象モデルPMLHに対応する予測誤差PEHの変化幅が小さくなっている。制御対象2の振動周波数の値が高域側制御対象モデルPMLHに設定される振動周波数の値fHに最も近いときに、予測誤差PEHの変化幅が最も小さくなっている(図15(a)参照)。
逆に、基準制御対象モデルPML0に設定される振動周波数の値f0から制御対象2の振動周波数の値が遠くなるにつれて、基準制御対象モデルPML0に対応する予測誤差PEの変化幅が大きくなっている。制御対象2の振動周波数の値が高域側制御対象モデルPMLHに設定される振動周波数の値fHよりも基準制御対象モデルPML0に設定される振動周波数の値f0に近い場合、予測誤差PEの変化幅が予測誤差PEHの変化幅よりも小さい(図14(b)参照)。制御対象2の振動周波数の値が高域側制御対象モデルPMLHに設定される振動周波数の値fHと基準制御対象モデルPML0に設定される振動周波数の値f0との中心である場合、予測誤差PEの変化幅と予測誤差PEHの変化幅とは略同じである(図14(c)参照)。制御対象2の振動周波数の値が基準制御対象モデルPML0に設定される振動周波数の値f0よりも高域側制御対象モデルPMLHに設定される振動周波数の値fHに近い場合、予測誤差PEHの変化幅が予測誤差PEの変化幅よりも小さい(図14(d)、図15(a)(b)参照)。
図15(c)(d)および図16(a)〜(c)に示されるように、制御対象2の振動周波数の値が低域側に変動するにつれて、低域側制御対象モデルPMLLに対応する予測誤差PELの変化幅が小さくなっている。制御対象2の振動周波数の値が低域側制御対象モデルPMLLに設定される振動周波数の値fLに最も近いときに、予測誤差PELの変化幅が最も小さくなっている(図16(b)参照)。
逆に、基準制御対象モデルPML0に設定される振動周波数の値f0から制御対象2の振動周波数の値が遠くなるにつれて、基準制御対象モデルPML0に対応する予測誤差PEの変化幅が大きくなっている。制御対象2の振動周波数の値が低域側制御対象モデルPMLLに設定される振動周波数の値fLよりも基準制御対象モデルPML0に設定される振動周波数の値f0に近い場合、予測誤差PEの変化幅が予測誤差PELの変化幅よりも小さい(図15(c)参照)。制御対象2の振動周波数の値が低域側制御対象モデルPMLLに設定される振動周波数の値fLと基準制御対象モデルPML0に設定される振動周波数の値f0との中心である場合、予測誤差PEの変化幅と予測誤差PELの変化幅とは略同じである(図15(d)参照)。制御対象2の振動周波数の値が基準制御対象モデルPML0に設定される振動周波数の値f0よりも低域側制御対象モデルPMLLに設定される振動周波数の値fLに近い場合、予測誤差PELの変化幅が予測誤差PEの変化幅よりも小さい(図16(a)〜(c)参照)。
このように、制御対象2の振動周波数の値の変動に応じて、予測誤差PE,PEH,PELの変化幅が変化する。このことから、予測誤差PE,PEH,PELの変化幅を比較することにより、制御対象2の振動周波数の変動後の値を推定することができる。予測誤差PE,PEH,PELの変化幅は、制御開始から目標位置が停止するまでの期間(すなわち制御対象が移動している期間)で大きくなりやすい。そのため、制御開始から目標位置が停止するまでの比較対象区間(図14〜図16に示す例では0〜0.4秒の区間)における予測誤差PE,PEH,PELの変化幅を比較すればよい。変化幅は、比較対象区間における最大値と最小値との差である。
図14(a)および(b)の下段において、予測誤差PE,PEHおよびPELのうち予測誤差PEの変化幅が最も小さい。そのため、図14(a)および(b)の下段に示す予測誤差が得られた場合、検出部152は、振動周波数の変動がないと判断すればよい(上記の判断基準1参照)。この場合、第2動特性モデルPMLの振動周波数の値f0は更新されない。
なお、図14(b)の下段では、予測誤差PEHの変化幅と予測誤差PEの変化幅との差が予測誤差PELの変化幅と予測誤差PEの変化幅との差よりも小さい。そのため、図14(b)の下段に示す予測誤差が得られた場合、検出部152は、振動周波数の値が変動していると判断し、振動周波数の変動後の値をf0から(f0+fH)/2までの値と推定すればよい(上記の判断基準2参照)。
図14(c)の下段において、予測誤差PEの変化幅と予測誤差PEHの変化幅とは、ほぼ同じであり、予測誤差PELの変化幅よりも小さい。そのため、図14(c)の下段に示す予測誤差が得られた場合、検出部152は、振動周波数の値が変動していると判断し、振動周波数の変動後の値を(f0+fH)/2と推定すればよい(上記の判断基準4参照)。
図14(d)および図15(a)(b)の下段において、予測誤差PE,PEHおよびPELのうち予測誤差PEHの変化幅が最も小さい。そのため、図14(d)および図15(a)(b)の下段に示す予測誤差が得られた場合、検出部152は、振動周波数の値が変動していると判断し、振動周波数の変動後の値をfHと推定すればよい(上記の判断基準6参照)。
図15(c)の下段において、予測誤差PE,PEHおよびPELのうち予測誤差PEの変化幅が最も小さい。そのため、図15(c)の下段に示す予測誤差が得られた場合、検出部152は、振動周波数の変動がないと判断すればよい(上記の判断基準1参照)。この場合、第2動特性モデルPMLに設定される振動周波数の値f0は更新されない。
図15(d)の下段において、予測誤差PEの変化幅と予測誤差PELの変化幅とは、略同じであり、予測誤差PEHの変化幅よりも小さい。そのため、図15(d)の下段に示す予測誤差が得られた場合、検出部152は、振動周波数の値が変動していると判断し、振動周波数の変動後の値を(f0+fL)/2と推定すればよい(上記の判断基準5参照)。
図16(a)〜(c)の下段において、予測誤差PE,PEHおよびPELのうち予測誤差PELの変化幅が最も小さい。そのため、図16(a)〜(c)の下段に示す予測誤差が得られた場合、検出部152は、振動周波数の値の変動が変動していると判断し、振動周波数の変動後の値をfLと推定すればよい(上記の判断基準7参照)。
<L.利点>
以上のように、本実施の形態に係る制御装置100は、制御対象2の出力の計測値PVを取得するための取得部であるフィールドバスコントローラ122と、制御対象2の出力の振動に関与する制御対象2の物理量(例えば振動周波数)の値の変動を検出するための検出部152とを備える。検出部152は、物理量の互いに異なる値を用いて作成された複数の制御対象モデルの各々について、当該制御対象モデルを用いて制御対象2の出力の予測値を演算する。さらに、検出部152は、計測値と複数の制御対象モデルそれぞれの予測値との予測誤差の比較結果に基づいて、物理量の値の変動を検出する。
上記の構成によれば、予測誤差は、制御対象モデルを作成する際に用いた物理量の値と実際の制御対象2の物理量の値との差が小さいほど小さくなる。そのため、制御装置100は、特許文献1のように基準状態での第1関係値を予め測定することなく、複数の制御対象モデルの予測誤差を比較することによって、制御対象2の物理量の値の変動を容易に検出できる。
制御装置100は、物理量の値に応じて設定された関数PML(z−1)によって規定されるモデルを用いたモデル予測制御により、制御対象2を制御するための操作量MVを生成するための制御部である操作量計算部151をさらに備える。検出部152は、物理量の値の変動を検出した場合に、物理量の変動後の値を推定する。関数PML(z−1)は、変動後の値に応じて更新される。
上記の構成によれば、物理量の変動後の値に応じて更新された関数PML(z−1)を用いて指令値が生成されるため、目標位置に対する追従性および制振性能を向上させることができる。さらに、物理量の値の変動に対するロバスト性が向上する。
制御装置100は、変動後の値に応じて関数PML(z−1)を更新する指示を受け付けるためのHMI30と接続される。関数PML(z−1)は、HMI30が指示を受け付けたときに更新される。上記の構成によれば、ユーザは、関数PML(z−1)の更新の適否を確認してから、関数PML(z−1)を更新することができる。すなわち、ユーザの確認のない状態で関数PML(z−1)が更新されることを避けることができる。
上記の判断基準6〜8,10のように、検出部152は、複数の制御対象モデルのうち、予測誤差の変化幅が最小の制御対象モデルに対応する物理量の値を変動後の値として推定する。もしくは、上記の判断基準2〜5,9,11のように、検出部152は、複数の制御対象モデルのうち予測誤差の変化幅が最小の制御対象モデルに対応する物理量の値と、複数の制御対象モデルのうち予測誤差の変化幅が2番目に小さい制御対象モデルに対応する物理量の値との間の値を、変動後の値として推定してもよい。このようにして、物理量の変動後の値が容易に推定される。
<M.変形例>
<M−1.変形例1>
上記の説明では、検出部152は、操作量MVを第1動特性モデルPCMに入力することにより得られるモータ位置の予測値YMを各制御対象モデルに入力する。しかしながら、検出部152は、モータ位置の計測値PVM(図3参照)を各制御対象モデルに入力することにより、負荷位置の予測値を演算してもよい。
<M−2.変形例2>
上記の説明では、制御装置100は、第1動特性モデルPCMおよび第2動特性モデルPMLを用いたモデル予測制御により操作量MVを計算し、当該操作量MVを指令値としてサーボドライバ200に出力するものとした。しかしながら、制御装置は、制御対象の物理量(例えば振動周波数)の値に応じて設定されるフィルタを用いて指令値を生成してもよい。
図17は、変形例2に係る制御装置の機能構成を示す模式図である。変形例2に係る制御装置100Aは、図3に示す制御装置100と比較して、制御ユニット160の代わりに制御ユニット160Aを備える点で相違する。制御ユニット160Aは、制御ユニット160と比較して、モデル作成モジュール130およびモデル予測制御モジュール150の代わりに、補正モジュール170および検出モジュール180を含む点で相違する。
補正モジュール170は、逆特性フィルタFTを用いて、目標軌道から生成される指令値(指令位置)である目標位置SPを補正し、補正後の指令値をサーボドライバ200に与える。
逆特性フィルタFTは、制御対象2の振動周波数の値に応じて設定される。逆特性フィルタFTは、サーボモータ300の位置から制御対象2の位置までの伝達特性の逆特性を示すフィルタである。逆特性フィルタFTは、例えば上記の第2動特性モデルPMLの逆特性を示し、以下の[数8]の式で示される。ω0は、振動角周波数であり、ω0=2*π*f0で示される。例えば、目標軌道が5次軌道である場合、[数8]の右辺第2項は、5次軌道を2回微分して加速度データを求め、1次遅れ演算を加えることで算出される。
逆特性フィルタFTがサーボモータ300の位置から制御対象2の位置までの伝達特性の逆特性を示すため、振動周波数のゲインを低減することができる。その結果、逆特性フィルタFTにより補正された指令値をサーボドライバ200に与えることにより、制御対象2の振動が抑制される。
逆特性フィルタFTは、上記の第2動特性モデルPMLと同様に、チューニングの際に得られた制御対象2の振動波形に基づいて作成される。具体的には、振動波形から抽出される振動周波数の値をf0とし、振幅比の値Adrから算出される減衰比の値をζとして、上記の[数8]に従って逆特性フィルタFTが作成される。なお、振幅比の値Adrを取得できない場合には、Adr=1と仮定し、ζ=0とすればよい。その後、逆特性フィルタFTは、検出モジュール180によって推定された、振動周波数の変動後の値をf0とすることにより更新される。
検出モジュール180は、上記の検出部152と同様に、複数の制御対象モデルの各々について予測誤差を演算し、複数の制御対象モデルの予測誤差の比較結果に基づいて、制御対象2の物理量(ここでは振動周波数)の値の変動を検出する。
図18は、検出モジュールによる物理量の変動検出の演算例を示す図である。検出モジュール180は、上記の検出部152と同様の方法により、制御対象2が取り得る動特性を示す複数の制御対象モデルを作成する。すなわち、検出モジュール180は、現状の逆特性フィルタFTに対応する振動角周波数の値ω0および減衰比ζを用いて、上記の[数3]〜[数5]のいずれかの関数PML(s)で示される基準制御対象モデルPML0を作成する。さらに、検出モジュール180は、上記の数[6]の関数PMLH(s)で示される高域側制御対象モデルPMLHと、上記の数[7]の関数PMLL(s)で示される低域側制御対象モデルPMLLとを作成する。
なお、図18に示す例では、検出モジュール180は、4つの高域側制御対象モデルPMLH1〜PMLH4を作成し、4つの低域側制御対象モデルPMLL1〜PMLL4を作成している。高域側制御対象モデルPMLH1〜PMLH4は、以下の数[9]の関数PMLH1(s)〜PMLH4(s)でそれぞれ示される。低域側制御対象モデルPMLL1〜PMLL4は、以下の数[10]の関数PMLL1(s)〜PMLL4(s)でそれぞれ示される。
関数PMLHi(s)において、ωHiは、振動角周波数であり、ωHi=2*π*fHiで示される。fHiは、基準制御対象モデルPML0を作成する際に用いる振動周波数の値f0よりも高域側の振動周波数の値を示し、fHi=αHi*f0で示される。αHiは1よりも大きい係数である。関数PMLLi(s)において、ωLiは、振動角周波数であり、ωLi=2*π*fLiで示される。fLiは、基準制御対象モデルPML0を作成する際に用いる振動周波数の値f0よりも低域側の振動周波数の値を示し、fLi=αLi*f0で示される。αLiは1よりも小さい係数である。
検出モジュール180は、複数の制御対象モデルの各々について、当該制御対象モデルを用いて負荷位置の予測値を演算する。
図18に示す例では、検出モジュール180は、サーボモータ300の位置の計測値PVMを基準制御対象モデルPML0に入力することにより負荷位置の予測値YLを演算する。同様に、検出モジュール180は、計測値PVMを高域側制御対象モデルPMLH1〜PMLH4に入力することにより負荷位置の予測値YLH1〜YLH4をそれぞれ演算する。検出モジュール180は、計測値PVMを低域側制御対象モデルPMLL1〜PMLL4に入力することにより負荷位置の予測値YLL1〜YLL4をそれぞれ演算する。
検出モジュール180は、複数の制御対象モデルの各々について、負荷位置の計測値PVと負荷位置の予測値との予測誤差を演算し、複数の制御対象モデルに対応する予測誤差を比較する予測誤差比較処理154を実行する。図18に示す例では、予測値YL,YLH1〜YLH4,YLL1〜YLL4から予測誤差PE,PEH1〜PEH4,PEL1〜PEL4がそれぞれ演算される。
検出モジュール180は、予測誤差比較処理154の結果に基づいて、振動周波数の値の変動を検出するとともに、振動周波数の値が変動している場合に、振動周波数の変動後の値を推定する。当該検出方法および推定方法は、検出部152と同じである。そのため、当該検出方法および推定方法の詳細な説明を省略する。
補正モジュール170は、検出モジュール180によって推定された変動後の値に応じて、逆特性フィルタFTを更新することが好ましい。具体的には、補正モジュール170は、振動周波数の値f0を推定された変動後の値に更新し、更新後の振動周波数の値f0を用いて、上記の[数8]に従って逆特性フィルタFTを更新すればよい。
なお、補正モジュール170は、検出モジュール180によって変動後の値が推定されると、自動的に逆特性フィルタFTを更新してもよい。もしくは、補正モジュール170は、図10に示す画面31をHMI30に表示し、HMI30が更新指示を受け付けたときに、推定された変動後の値に応じて逆特性フィルタFTを更新してもよい。
図19は、変形例2に係る制御装置の制御処理の流れを示すフローチャートである。まず、制御装置100Aは、サーボドライバ200に対してチューニングを実行させ、チューニングの際に計測センサ20によって計測された振動波形から振動周波数の値f0および振幅比の値Adrを抽出する。そして、制御装置100Aは、振動周波数の値f0および振幅比の値Adrに基づいて逆特性フィルタFTを作成するとともに、基準制御対象モデルPML0を作成する(ステップS11)。
次に、制御装置100は、係数αH,αLを設定し、高域側制御対象モデルPMLH(PMLH1〜PMLH4)と低域側制御対象モデルPMLL(PMLL1〜PMLL4)とを作成する(ステップS2)。
次に、ステップS13において、制御装置100Aは、逆特性フィルタFTを用いて指令値の補正を実行する。さらに、制御装置100Aは、基準制御対象モデルPML0と高域側制御対象モデルPMLH(PMLH1〜PMLH4)と低域側制御対象モデルPMLL(PMLL1〜PMLL4)との各々について予測誤差を演算し、演算した予測誤差を記憶する。
ステップS13の処理によって、制御対象2は、目標軌道の終点に位置決めされる。そして、制御装置100Aは、制御対象2の位置決めの期間における、複数の制御対象モデルの予測誤差の時間変化を記憶する。
次に、制御装置100Aは、制御処理を終了するか否かを判断する(ステップS4)。制御処理を終了すると判断した場合(ステップS4でYES)、制御装置100Aによる制御処理は終了する。
制御処理を終了しないと判断した場合(ステップS4でNO)、制御装置100Aは、直近のステップS13で記憶した、複数の制御対象モデルの予測誤差を比較し、比較結果に基づいて振動周波数の値の変動の有無を判断する(ステップS5)。ステップS5において、制御装置100Aは、振動周波数の値が変動していると判断した場合に、振動周波数の変動後の値を推定する。
そして、制御装置100Aは、逆特性フィルタFTの更新の要否を判断する(ステップS16)。制御装置100Aは、振動周波数の値の変動が検出された場合に、逆特性フィルタFTの更新が必要であると判断してもよい。もしくは、制御装置100Aは、振動周波数の値の変動が検出され、かつ、図10に示す画面31において指示ボタン31Eが操作された場合に、逆特性フィルタFTの更新が必要であると判断してもよい。
逆特性フィルタFTの更新が不要である場合(ステップS16でNO)、制御装置100Aによる制御処理は、ステップS13に戻り、次の位置決めが行なわれる。逆特性フィルタFTの更新が必要である場合(ステップS16でYES)、制御装置100Aは、振動周波数の値f0を、推定された変動後の値に更新する。さらに、制御装置100Aは、更新後の振動周波数の値f0に従って、逆特性フィルタFTと基準制御対象モデルPML0と高域側制御対象モデルPMLHと低域側制御対象モデルPMLLとを更新する(ステップS17)。ステップS17の後、制御装置100Aによる制御処理は、ステップS13に戻り、次の位置決めが行なわれる。
図20は、変形例2におけるシミュレーション結果の一例を示す図である。図21は、変形例2におけるシミュレーション結果の別の例を示す図である。図22は、変形例2におけるシミュレーション結果のさらに別の例を示す図である。図21〜図22には、以下の条件下でのシミュレーション結果が示される。
・制御対象の振動周波数が9.2Hzであるときの逆特性フィルタFTを用いた。
・目標軌道を400msで制御対象を100mm移動させる5次軌道とした。
・係数αHを1.02,1.04,1.06,1.08に設定した高域側制御対象モデルPMLH1〜PMLH4をそれぞれ作成した。
・係数αLを0.98,0.96,0.94,0.92に設定した低域側制御対象モデルPMLL1〜PMLL4をそれぞれ作成した。
図20には、制御対象の固有振動周波数を9.2Hzとしたときのシミュレーション結果が示される。図21には、制御対象の固有振動周波数を9.2Hzの1.07倍に変動させたときのシミュレーション結果が示される。図22には、制御対象の固有振動周波数を9.2Hzの0.98倍に変動させたときのシミュレーション結果が示される。
図20〜21において、(a)には、目標位置の時間変化つまり目標軌道が示される。目標軌道は5次軌道である。(b)には、目標位置と負荷位置との時間変化が示される。(c)には、基準制御対象モデルPML0に対応する予測誤差PEと、高域側制御対象モデルPMLH1〜PMLH4にそれぞれ対応する予測誤差PEH1〜PEH4と、低域側制御対象モデルPMLL1〜PMLL4にそれぞれ対応する予測誤差PEL1〜PEL4との時間変化が示される。
図20に示されるように、逆特性フィルタFTに設定される振動周波数の値と制御対象2の振動周波数の値とが一致している場合、目標位置に対する追従性が高く、振動も抑制される。逆特性フィルタFTに設定される振動周波数の値と制御対象2の振動周波数の値とが一致しているため、基準制御対象モデルPML0に対応する予測誤差PEの変化幅ΔPEが他の予測誤差の変化幅よりも小さくなっている。そのため、図20(c)に示す予測誤差が得られた場合、検出モジュール180は、振動周波数の変動がないと判断すればよい(上記の判断基準1参照)。
図21に示す例では、制御対象2の振動周波数の値が逆特性フィルタFTに設定される振動周波数の値から僅かに変動しているものの、図20に示す例と比較して、制振性の差はほとんど見られない(図21の(b)参照)。図22に示す例では、図20に示す例と比較して、僅かに制振性が低下している(図22の(b)参照)。このように制振性の変化は僅かであるものの、(c)に示されるように、予測誤差は大きく変化する。そのため、予測誤差から振動周波数の値の変動を検出できる。
図21に示す例では、高域側制御対象モデルPMLH3に対応する予測誤差PEH3の変化幅ΔPEH3と高域側制御対象モデルPMLH4に対応する予測誤差PEH4の変化幅ΔPEH4とが同程度であり、他の予測誤差の変化幅よりも小さくなっている。そのため、図21(c)に示す予測誤差が得られた場合、検出モジュール180は、振動周波数の値の変動を検出し、振動周波数の変動後の値を(fH3+fH4)/2と推定すればよい(上記の判断基準9参照)。
図22に示す例では、低域側制御対象モデルPMLL1に対応する予測誤差PEL1の変化幅ΔPEL1が他の予測誤差の変化幅よりも小さくなっている。そのため、図22(c)に示す予測誤差が得られた場合、検出モジュール180は、振動周波数の値の変動を検出し、振動周波数の変動後の値をfL1と推定すればよい(上記の判断基準10参照)。
<M−3.変形例3>
上記の説明では、ある停止位置までの位置決め(図11のステップS3、図19のステップS13)が終了した後に、振動周波数の変動後の値が推定され、第2動特性モデルPMLまたは逆特性フィルタFTが更新される。そのため、次の位置決めでは制振性能および目標軌道への追従性が向上する。
しかしながら、ある停止位置までの位置決めの途中に、振動周波数の変動後の値が推定され、第2動特性モデルPMLまたは逆特性フィルタFTが更新されてもよい。例えば、目標位置が停止する前の移動中に振動周波数の変動が検出され、第2動特性モデルPMLまたは逆特性フィルタFTが更新される。あるいは、停止と移動とを複数回繰り返して実行する場合に、途中の停止時に、第2動特性モデルPMLまたは逆特性フィルタFTが更新されてもよい。
<M−4.変形例4>
上記の説明では、検出部152および検出モジュール180が制御対象2の物理量として振動周波数の値の変動を検出する例について説明した。しかしながら、検出部152および検出モジュール180は、制御対象2の物理量として振動周波数以外のパラメータの値の変動を検出してもよい。物理量としては、例えば、質量、イナーシャ、摩擦係数(例えば粘性摩擦係数)、ばね定数などがあり得る。
さらに、1つの物理量ではなく、複数の物理量(例えば、質量、イナーシャ、粘性摩擦係数およびばね定数の3つの物理量)の値の変動が検出されてもよい。この場合、質量、イナーシャ、粘性摩擦係数およびばね定数の各々の値が互いに異なる複数の制御対象を仮定し、当該複数の制御対象にそれぞれ対応する複数の制御対象モデルを作成すればよい。
<M−5.変形例5>
上記の説明では、高域側制御対象モデルPMLHと低域側制御対象モデルPMLLとの両者が作成されるものとした。しかしながら、制御対象2の物理量の変動方向が高域側および低域側の一方に限られる場合には、高域側制御対象モデルPMLHおよび低域側制御対象モデルPMLLのうち物理量の変動方向に対応するモデルのみが作成されてもよい。
<N.付記>
以上のように、本実施の形態および変形例は以下のような開示を含む。
(構成1)
制御対象(2)を制御する制御装置(100,100A)であって、
前記制御対象(2)の出力の計測値を取得するための取得部(122)と、
前記制御対象(2)の出力の振動に関与する前記制御対象(2)の物理量の値の変動を検出するための検出部(102、152,180)とを備え、
前記検出部(102、152,180)は、
前記物理量の互いに異なる値を用いて作成された複数の制御対象モデルの各々について、当該制御対象モデルを用いて前記制御対象の出力の予測値を演算し、
前記計測値と前記複数の制御対象モデルそれぞれの前記予測値との誤差の比較結果に基づいて、前記物理量の値の変動を検出する、制御装置(100,100A)。
(構成2)
前記物理量の値に応じて設定された関数によって規定されるモデルを用いたモデル予測制御により、前記制御対象(2)を制御するための操作量を生成するための制御部(102,151)をさらに備え、
前記検出部(102,152,180)は、前記物理量の値の変動を検出した場合に、前記物理量の変動後の値を推定し、
前記関数は、前記変動後の値に応じて更新される、構成1に記載の制御装置(100)。
(構成3)
前記物理量の値に応じて設定された関数によって規定されるフィルタを用いて、目標軌道から生成される指令値を補正し、補正後の指令値を前記制御対象(2)に出力する補正部(102,170)をさらに備え、
前記検出部(102,180)は、前記物理量の値の変動を検出した場合に、前記物理量の変動後の値を推定し、
前記関数は、前記変動後の値に応じて更新される、構成1に記載の制御装置(100A)。
(構成4)
前記制御装置(100,100A)は、前記変動後の値に応じて前記関数を更新する指示を受け付けるためのヒューマンマシンインターフェイス(30)と接続され、
前記関数は、前記ヒューマンマシンインターフェイス(30)が前記指示を受け付けたときに更新される、構成2に記載の制御装置(100,100A)。
(構成5)
前記検出部(102,152,180)は、前記複数の制御対象モデルのうち、前記誤差の変化幅が最小の制御対象モデルに対応する前記物理量の値を前記変動後の値として推定する、構成2または3に記載の制御装置(100,100A)。
(構成6)
前記検出部(102,152,180)は、前記複数の制御対象モデルのうち前記誤差の変化幅が最小の制御対象モデルに対応する前記物理量の値と、前記複数の制御対象モデルのうち前記誤差の変化幅が2番目に小さい制御対象モデルに対応する前記物理量の値との間の値を、前記変動後の値として推定する、構成2または3に記載の制御装置(100,100A)。
(構成7)
前記物理量は、振動周波数、質量、イナーシャ、摩擦係数およびばね定数の少なくとも1つを含む、構成1から6のいずれかに記載の制御装置(100,100A)。
(構成8)
制御対象(2)を制御する制御装置(100,100A)を実現するための制御プログラム(110,112)であって、
前記制御プログラム(110,112)は、コンピュータに、
前記制御対象(2)の出力の計測値を取得するステップと、
前記制御対象(2)の出力の振動に関与する前記制御対象(2)の物理量の値の変動を検出するステップとを実行させ、
前記検出するステップは、
前記物理量の互いに異なる値を用いて作成された複数の制御対象モデルの各々について、当該制御対象モデルを用いて前記制御対象の出力の予測値を演算するステップと、
前記計測値と前記複数の制御対象モデルそれぞれの前記予測値との誤差の比較結果に基づいて、前記物理量の値の変動を検出するステップとを含む、制御プログラム。
本発明の実施の形態について説明したが、今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。