(57)【特許請求の範囲】
【請求項１】
制御対象の出力が目標指令に一致するように、今回のサンプリングをi番目とし、予測モデルを用いて、制御対象の出力y(i)の制御周期Ts毎の出力増分値Δy(i)のｍ個先の予測値Δy*(i+m)をｎ個前の出力増分値Δy(i-n)と、ｎ個前の制御入力v（i-n）を用いた次式
【数１】
0003870767.tif 000012
で表し、先読み区間をM1からMとし、検出遅れKと、重み係数ｗmと、重み係数αと、重み係数Cと、重み係数Cdと、今回の位置偏差e(i-K)と、ｍ個先の偏差の予測値 e*(i+m)と、今回の制御入力v（i）と、v（i）の制御周期Ts毎の増分値Δv（i）とから構成される評価関数J
【数２】
0003870767.tif 000013
が最小になるように、前記今回の制御入力v(i)を、ｍ個先の指令r(i)の制御周期Ts毎の増分値Δr(i+m)を用いた次式
【数３】
0003870767.tif 000014
により算出し、制御対象へ出力する予測制御方法において、前記評価関数Jに含まれる重み係数Ｃの値を、前記重み係数Ｃの関数であるgn, pnからなる次式の右辺と等価位置ループ比例ゲインであるKphが等しくなるように設定する
【数４】
0003870767.tif 000015
ことを特徴とする予測制御方法。
【請求項２】
前記予測モデルが、速度ループを一次遅れ要素で近似したものである場合、前記評価関数Jに含まれる重み係数Cの値は、前記Kphを適当に選ぶことで、次式
【数５】
0003870767.tif 000016
から計算することを特徴とする請求項１記載の予測制御方法。
【請求項３】
前記Kphと重み係数αの関係、および、前記Kphと重み係数Cdの関係を、予めシミュレーションまたは実験により求め、その求めた関係を関数またはテーブルとしてメモリに格納し、
α=e*Kph+f               ・・・（９）
Cd=a*Kph3+b*Kph2+c*Kph+d  ・・・（10）
（ここで a,b,c,d,e,f はシミュレーションや実験により求めた定数）
式（9）および式（10）にKphを代入することにより、重み係数α、Cｄを
決定することを特徴とする、請求項１または２記載の予測制御方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、工作機やロボット等のサーボ制御に関するものであり、特に、予測制御を使用する際の、評価関数の重みを自動決定する方法に関する。
【０００２】
【従来の技術】
予測制御は、未来の指令から、未来の制御対象の出力を予測モデルを用いて推定し、未来の偏差が小さくなるように重みを考慮した評価関数Ｊが最小になるように制御対象へ入力する制御入力ｖ(i)を算出するものである。
発明者の一人は、予測制御装置として、特願平5-197956「予見制御装置」（特開平０７−０２８５０８）や特願平5-511298（特許第３１５８４３９号）「予見制御装置」などを発明しており、該予測制御装置を実際に使用する場合、各重み係数の値は、オペレータが試行錯誤的に調整していた。
【０００３】
【発明が解決しようとする課題】
しかしながら、従来の方法では、重み係数の値を試行錯誤的に決定するため、調整の時間と労力を浪費するという問題があった。そのため、予測制御装置が誰にでも簡単に使用できないという問題もあった。また、調整できたとしても、調整結果に個人差があり、調整後の性能にもばらつきが生じるという問題があった。
【０００４】
【課題を解決するための手段】
上記問題を解決するため第１の発明の予測制御方法は、制御対象の出力が目標指令に一致するように、今回のサンプリングをi番目とし、予測モデルを用いて、制御対象の出力y(i)の制御周期Ts毎の出力増分値Δy(i)のｍ個先の予測値Δy*(i+m)をｎ個前の出力増分値Δy(i-n)と、ｎ個前の制御入力v（i-n）を用いた次式
【０００５】
【数６】
0003870767.tif 000002
【０００６】
で表し、
先読み区間をM1からMとし、検出遅れKと、重み係数ｗmと、重み係数αと、重み係数Cと、重み係数Cdと、今回の位置偏差e(i-K)と、ｍ個先の偏差の予測値  e*(i+m)と、今回の制御入力v（i）と、v（i）の制御周期Ts毎の増分値Δv（i）とから構成される評価関数J
【０００７】
【数７】
0003870767.tif 000003
【０００８】
が最小になるように、前記今回の制御入力v(i)を、ｍ個先の指令r(i)の制御周期Ts毎の増分値Δr(i+m)を用いた次式
【０００９】
【数８】
0003870767.tif 000004
【００１０】
により算出し、制御対象へ出力する予測制御方法において、
前記評価関数Jに含まれる重み係数Cの値を、等価位置ループ比例ゲインであるKphを適当に選ぶことで、次式
【００１１】
【数９】
0003870767.tif 000005
【００１２】
を満たすように設定することを特徴とするものである。
また、第２の発明の予測制御方法は、前記予測モデルが、特に、速度ループを一次遅れ要素で近似したものである場合、前記評価関数Jに含まれる重み係数Cの値は、前記Kphを適当に選ぶことで、次式
【００１３】
【数１０】
0003870767.tif 000006
【００１４】
から計算されることを特徴とするものである。
また、第３の発明の予測制御方法は、前記Kphと重み係数αの関係、および、前記Kphと重み係数Cdの関係を、予め関数、もしくはテーブルとしてメモリに格納することで、Kphを適当に選ぶことで、重み係数αとCdの値が、自動的に決定されることを特徴とするものである。
【００１５】
【発明の実施の形態】
本発明の実施例を図に基づいて説明する。図１は、本発明を説明するフローチャートである。S1〜S4の処理は以下に示す通りである。
（S１）まず、適当なKphの値を、パラメータに設定する。
（S２）重み係数αとCdが決定される。
（S３）重み係数Cの値が自動的に決定される。
（S４）算出された各重み係数の値と予測モデル等から、予測制御で必要な各変数νm,pn,gn,Eが計算される。
ここまでの処理は、オフライン処理で電源投入時、または、パラメータ設定時に自動的に処理される。後は（Ｓ４）で算出した各変数を用いて、制御周期Ts毎に、実際に予測制御が行われる。
次に（S3）の処理について説明する。
図２は予測制御をブロック図で表したものである。
図２中の各変数は
R(z)：位置指令
V(z)：速度指令
Y(z)：位置（制御出力）
ΔY(z)：位置の制御周期Ts毎の増分値
Gp(z)：制御対象モデルの伝達関数（V(z)からY(z)まで）
Gv(z)：制御対象モデルの伝達関数（V(z)からΔY(z)まで）
Σ：積算器  1/(1-z-1)
【００１６】
【数１１】
0003870767.tif 000007
【００１７】
で表される。
ここで、予測測制御で用いられる各パラメータ各変数νm,pn,gn,E,qmは制御対象のモデルと各重みの値から計算される値であり、計算方法は特願平5-511298等「予見制御装置」に詳細に記されているのでここでは省略する。
ここで、Gv(z)をGv2(z)からなる速度フィードバックループとすると、図２は図３のように変形できる。
さらに、図３を一般的にマイナーループに速度制御を有する位置制御系の形に変形すると、図４のように変形することができる。
図４中Eは
E=（1+α）・v1
で表される。
また、式（２）、式（３）より、
【００１８】
【数１２】
0003870767.tif 000008
【００１９】
の関係が成り立つので、
図４は図５のように変形でき、図５で定常項（z=1）のみ考慮すると、等価Kp値Kphは、
【００２０】
【数１３】
0003870767.tif 000009
【００２１】
のようになる。
式（６）のgn、pnは重みCで表現される値であるため、式（６）を逆算することで、Kphから重みCを自動的に計算することができる。
次に具体例として、Gv2(z)からなる速度フィードバックループを比例ゲインKvからなる一次遅れ要素である場合の重み係数Cを計算する式を導出する方法を説明する。
速度フィードバックループが一次遅れで構成されるとき、Na,Nbは以下のようになる。
Na=1、Nb=2
よって、式（６）は重み係数Cを用いて式（７）のように表現することができる。
【００２２】
【数１４】
0003870767.tif 000010
【００２３】
したがって、式（７）を逆算することにより、式（８）が得られる。
【００２４】
【数１５】
0003870767.tif 000011
【００２５】
このように、式（８）を用いれば、Kphの値から自動的に重み係数Cを算出することが可能である。
以上が（Ｓ３）の処理の説明である。
次に（Ｓ２）の処理について説明する。
変数Kphと、重み係数α、Cｄそれぞれとの関係を、例えば、シミュレーションや実験により求めたとして、それらの関係が以下のようになったとき、
α=e*Kph+f                                                  （９）      Cd=a*Kph3+b*Kph2+c*Kph+d                                    （10）（ここで  a,b,c,d,e,f  はシミュレーションや実験により求めた定数）
式（9）および式（10）にKphを代入することにより、重み係数α、Cｄは自動的に計算される。
ここでは、変数Kphと、重み係数αとCｄの関係式は、１次と３次の多項式で近似しているが、指数関数など、その他どのような関数で近似してもよい。
また、ここでは、変数Kphと、重み係数αとCｄの関係を関数で表現しているが、それらの関係をテーブルとして持っておいてもよい。その場合も同様の効果が得られる。
また、重み係数αとCｄは通常０で使用することが多いため、その場合は、（Ｓ２）の処理は省略されることになり、その場合（Ｓ３）と（Ｓ４）の処理では、重み係数αとCｄは０として計算されることになる。
【００２６】
【発明の効果】
以上述べたように本発明の方法によれば、Kphの値をパラメータとして入力するだけで、自動的に最適な重み係数の値が決定され、オペレータは面倒なパラメータ調整をしなくても良くなる。また、調整によるばらつきが発生しないため、オペレータによって性能が著しくことなるといった問題も解決される。これらの効果により、予測制御装置が誰でも簡単に使用できるようになるという効果が得られる。
【図面の簡単な説明】
【図１】本発明の実際の処理を表すフローチャート
【図２】本発明の重み計算式の導出方法を説明する図
【図３】本発明の重み計算式の導出方法を説明する図
（図２のGv(z)を速度フィードバックループとした図）
【図４】本発明の重み計算式の導出方法を説明する図
（図３を等価変換したことを示す図）
【図５】本発明の重み計算式の導出方法を説明する図
（図４のブロックを違う変数で記述した図）
【符号の説明】
Ｓ１〜Ｓ４    オフライン処理の処理ステップ
【図１】
0003870767.tif 000017
【図２】
0003870767.tif 000018
【図３】
0003870767.tif 000019
【図４】
0003870767.tif 000020
【図５】
0003870767.tif 000021