以下に、実施の形態を図面に基づいて詳細に説明する。なお、以下に説明する実施の形態は例示である。また、各実施の形態は、適宜組み合わせて実行することができる。
実施の形態1
図1は、本実施の形態における位置決め制御装置1000の構成の一例を示すブロック図である。位置決め制御装置1000は、試行パラメータ105及び調整条件108に基づき指令信号103を決定する指令生成部2、指令信号103に基づきモータ1を駆動し位置決め動作を実行する制御部4を備える。さらに、位置決め制御装置1000は、調整を実行し調整条件108に対応する優良パラメータ106を決定する調整部7を備える。さらに、位置決め制御装置1000は、調整レコード111を保持する調整レコード保持部10、調整レコード111に基づき調整条件108に対応する優良パラメータ106を推定優良パラメータ107として推定する推定部8を備える。
モータ1は、制御部4から出力される駆動電力Eによってトルク、推力等を発生する。モータ1の例としては、回転型サーボモータ、リニアモータ、ステッピングモータ等を挙げることができる。機械負荷3は、モータ1と機械的に接続され、モータ1によって駆動される。機械負荷3として、モータ1の発生するトルク、推力等によって動作し、機械負荷3の位置決め動作を実行する装置を適宜選択することができる。ここで、位置決め動作とは、機械負荷3を、目標移動距離だけ移動させる動作である。機械負荷3の例としては、電子部品実装機、半導体製造装置等を挙げることができる。また、位置決め動作における機械負荷3の移動は、機械負荷3の全体が移動してもよく、機械負荷3の一部の可動部が移動してもよい。モータ1及び機械負荷3を制御対象2000と称する。
制御部4は、指令信号103に基づき、駆動電力Eをモータ1に供給してモータ1を駆動し、モータ1を指令信号103に追従させる。ここで、指令信号103は、モータ1についての指令値であり、例えば、モータ1についての、位置、速度、加速度、トルク、電流の指令値としてもよい。制御部4として、モータ1の位置を指令信号103に追従させる構成を適宜採用することができる。例えば、検出したモータ1の位置と指令信号103との差異が小さくなるように、モータ1のトルク又は電流をPID制御に基づいて算出するフィードバック制御系を採用してもよい。また、制御部4として、検出した機械負荷3の位置が、指令信号103に追従するようにモータ1を駆動するフィードバック制御に、フィードフォワード制御を加えた2自由度制御系を採用してもよい。位置決め制御装置1000は、制御部4を構成要素として含まない構成とすることもできる。例えば、位置決め制御装置1000の外部にあるメモリ、プロセッサ等が、図1の制御部4と同様に、モータ1を指令信号103に追従させるように駆動してもよい。
状態センサ5は、モータ1又は機械負荷3の少なくともいずれか一方の状態、すなわち、制御対象2000の状態を、状態センサ信号101として検出する。状態量の例としては、モータ1についての、位置、速度、加速度、電流、トルク、推力等を挙げることができる。さらに、状態量の例として、機械負荷3についての、位置、速度、加速度等を挙げることができる。状態量は、上記に例示したものの全部としてもよく、一部としてもよい。状態センサ5の例としては、エンコーダ、レーザ変位計、ジャイロセンサ、加速度センサ、電流センサ、力センサ等を挙げることができる。図1の状態センサ5は、モータ1の位置を状態量として検出するエンコーダであるとして説明を行う。
調整部7は、運転条件のひとつである調整条件108と指令パラメータのひとつである試行パラメータ105とに基づく位置決め動作を実行する。そして、実行した位置決め動作の際のモータ1又は機械負荷3の状態を検出した状態センサ信号101による評価結果109に基づいて、指令パラメータのひとつを調整条件108に対応する優良パラメータ106として決定する。上記の調整部7による一連の動作を調整と称する。なお、左記の調整の中で、調整部7は、試行パラメータ105を複数決定し、調整条件108と複数の試行パラメータの各々とによる位置決め動作を、複数回行ってもよい。
調整部7が実行する調整の説明に用いる用語について説明する。位置決め動作の間のモータ1についての、位置、速度、加速度等の指令値の時系列パターンを指令パターンと称する。本実施の形態において、指令パターンは、調整条件108と試行パラメータ105とによって規定される。換言すれば、調整条件108及び試行パラメータ105を決定すれば、位置決め動作の間の指令パターンが一意に決定され、モータの動作が規定される。ここで、調整条件108とは、運転条件の一種である。そして、運転条件とは、位置決め動作の間のモータ1の動作を拘束する条件であり、運転条件は、モータ1の動きを規定する少なくとも一つの数値パラメータを含む。この数値パラメータを運転パラメータと称する。運転パラメータは、目標移動距離を含んでもよい。目標移動距離とは、位置決め動作における機械負荷3の移動距離の目標値である。
指令パラメータは、モータ1の動作を指定する指令であって、指令生成部2に入力される指令である。指令生成部2は、指令パラメータに基づいて指令信号103を決定する。そして、制御部4は、指令信号103に基づきモータ1を駆動する。また、試行パラメータ105、後述する優良パラメータ106、後述する推定優良パラメータ107等は、それぞれ、一群の指令パラメータであり、これらは、指令パラメータを種類ごとに分類する呼称ということができる。試行パラメータ105は、指令パラメータの一種であり、調整条件108のもとで変更可能なパラメータである。なお、調整条件108を拘束条件として、試行パラメータ105を様々に変更することによって、上記の拘束条件のもとで、様々な指令パターンの位置決め動作を実行することができる。試行パラメータ105、指令パターン、調整条件108等についての具体例については、図2を用いて後述する。
調整部7は、調整条件108を取得する。本実施の形態において、調整条件108は、作業者が決定してもよく、位置決め制御装置1000の内部又は外部の装置が決定してもよい。調整部7は、調整条件108のもとで、1つ又は複数の試行パラメータ105を決定する。そして、指令生成部2は、調整条件108と決定された試行パラメータ105とを取得し、指令信号103を生成し、制御部4は、指令信号103に基づく位置決め動作を実行する。換言すれば、調整部7は、調整条件108と試行パラメータ105とに基づく位置決め動作を実行する。評価部6は、実行した位置決め動作を、前述の状態センサ信号101に基づいて評価した結果を評価結果109として決定する。なお、評価部6は、位置決め動作を評価することによって、同時に位置決め動作に用いた試行パラメータ105を評価している。また、複数の試行パラメータ105を決定した場合、制御部4は、調整条件108と決定された試行パラメータ105の各々との組み合わせに基づく位置決め動作を実行する。評価部6が位置決め動作、すなわち試行パラメータ105を評価する動作については後述する。
調整部7は、評価結果109を取得する。そして、取得した評価結果109に基づき、指令パラメータのひとつを調整条件108に対応する優良パラメータ106として決定する。ここで、優良パラメータ106は、指令パラメータの一種である。また、評価結果109が良い位置決め動作を実行させる指令パラメータを、優良パラメータ106として決定してもよい。このような場合、優良パラメータ106は、評価部6の評価方法に依存して変化し、評価部6の評価方法を所望の方法に設定することにより、位置決め動作に求める性能を選択することができる。調整部7は、評価結果109に基づいて指令パラメータのひとつを優良パラメータ106として決定すればよい。一例として、調整において実行させた位置決め動作の評価結果109が最も良かった試行パラメータ105を、優良パラメータ106として決定してもよい。また、一例として、調整において実行させた位置決め動作の評価結果109が良かった2つを選択し、これらの中間値を優良パラメータ106として決定してもよい。
また、調整部7が、調整条件108を取得してから、調整条件108に対応する優良パラメータ106を決定するまでの動作を調整と称する。本実施の形態において、調整部7は、1回又は複数回の位置決め動作を実行し、位置決め動作の各々について評価結果109を取得する。調整条件108と決定された優良パラメータ106との組は、調整レコード111として調整レコード保持部10に保持される。ここで、調整条件108と優良パラメータ106とを対応づける動作を例示する。これらを、入力のタイミングに基づいて対応付けてもよい。例えば、調整条件108と調整条件108が入力された直後に入力される優良パラメータ106とを組とすることによって対応付けてもよい。また、調整条件108と優良パラメータ106との両方に識別子を設けて対応付けてもよい。
推定部8は、未調整条件110を取得する。ここで、未調整条件110は、運転条件の一種である。未調整条件110を、調整レコード保持部10に保持される調整条件108とは異なる運転条件としてもよい。推定部8はさらに、調整レコード111に基づいて指令パラメータのひとつを、未調整条件110に対応する推定優良パラメータ107として決定する。ここで、推定優良パラメータ107は、指令パラメータの一種である。ここで、優良パラメータ106は、調整部7が調整を実行して決定するものであり、一例として、調整条件108のもとで良い評価結果109を与える位置決め動作を実行させる指令パラメータとしてもよい。一方、推定優良パラメータ107は、指令パラメータのひとつを、未調整条件110に対応する推定優良パラメータ107として、推定部8が、推定により決定したものである。ここで、推定部8は、調整レコード111に基づいて指令パラメータのひとつを推定優良パラメータ107として決定すればよく、様々な方法をとることができる。一例として、未調整条件110のもとで、良い評価結果109が得られる指令パラメータのひとつを推定し、推定優良パラメータ107として決定してもよい。一例として、最善の評価結果109が得られると思われる指令パラメータのひとつを推定し、推定優良パラメータ107として決定してもよい。また、良い評価結果109が得られると思われる指令パラメータを、最上位のものから順にいくつか選択し、これらの平均値を推定優良パラメータ107として決定してもよい。図1の構成例では、未調整条件110は、外部から与えられるとしているが、位置決め制御装置1000の内部に、未調整条件110を決定する構成要素を設けてもよい。なお、本実施の形態において、図1の構成例では、推定優良パラメータ107及び未調整条件110が、指令生成部2に入力される構成としているが、推定優良パラメータ107及び未調整条件110は、必ずしも指令生成部2に入力される必要はない。例えば、外部へ出力する構成としてもよく、調整レコード保持部10に保持させる構成としてもよい。
以下に、試行パラメータ105、指令パターン、調整条件108等の具体例を例示する。図2は、本実施の形態における指令パターンの一例を示す図である。図2(a)から図2(d)の横軸は時間である。図2(a)から図2(d)のそれぞれの縦軸には、モータ1の、位置、速度、加速度及びジャークが示されており、これらは、指令信号103である。ここで、速度、加速度及びジャークはそれぞれ、モータ1の位置の、1階微分、2階微分及び3階微分である。横軸と縦軸との交点は、横軸上において評価運転の開始される指令開始時点となる時刻0である。図2の動作例の運転条件は、目標移動距離がDであるとする。すなわち、モータ1の位置が評価運転の開始時点0において0であり、終端時点となる時刻t=T1+T2+T3+T4+T5+T6+T7におけるモータ1の位置をDとする。
図2の指令パターンは、指令開始時点である時刻0から終端時点まで、順に、第1区間から第7区間に区分されている。nを1から7の自然数として、第n区間の時間長を第n時間長Tnとする。図2の動作例では、第1時間長T1から第7時間長T7までの7つのパラメータを、ひとつの試行パラメータ105とする。すなわち、7つで1セットのパラメータを、ひとつの試行パラメータ105としている。第2区間及び第6区間の加速度の大きさをそれぞれ、Aa及びAdとし、これらは、区間内で一定であるとする。加速度の大きさAaと加速度の大きさAdとは、試行パラメータ105の従属変数であり、設定自由度が無いことに留意する。なお、図2の例では、指令信号103を時系列に示したものが指令パターンとなっていると仮定しているため、指令パターンの各時刻における数値を指令信号103とよんでいる。
第1区間の時刻t(0≦t<T1)における指令信号103を、以下のように計算することができる。第1区間の時刻0から第1区間内の時刻tまでの間の、ジャーク、加速度A1及び速度V1のそれぞれを時間で積分したものが、加速度A1、速度V1及び位置P1となる。そして、第1区間では一定の割合で加速度が増加し、時刻T1で加速度の大きさAaに到達するとしているため、第1区間のジャークは、加速度の大きさAaをT1で除した値となる。以上から、加速度A1、速度V1及び位置P1はそれぞれ、(1)式から(3)式のように計算することができる。
また、第2区間の時刻t(T1≦t<T1+T2)における指令信号103、すなわち、加速度A2、速度V2及び位置P2は、第1区間と同様に(4)式から(6)式のように計算することができる。
また、第3区間の時刻t(T1+T2≦t<T1+T2+T3)における指令信号103、すなわち、加速度A3、速度V3及び位置P3は、第1区間と同様に(7)式から(9)式のように計算することができる。
また、第4区間の時刻t(T1+T2+T3≦t<T1+T2+T3+T4)における指令信号103、すなわち、加速度A4、速度V4及び位置P4は、第1区間と同様に、(10)式から(12)式のように計算することができる。
また、第5区間の時刻t(T1+T2+T3+T4≦t<T1+T2+T3+T4+T5)における指令信号103、すなわち、加速度A5、速度V5及び位置P5は、第1区間と同様に(13)式から(15)式のように計算することができる。
また、第6区間の時刻t(T1+T2+T3+T4+T5≦t<T1+T2+T3+T4+T5+T6)における指令信号103、すなわち、加速度A6、速度V6及び位置P6は、第1区間と同様に(16)式から(18)式のように計算することができる。
また、第7区間の時刻t(T1+T2+T3+T4+T5+T6≦t≦T1+T2+T3+T4+T5+T6+T7)における指令信号103、すなわち、加速度A7、速度V7及び位置P7は、第1区間と同様に(19)式から(21)式のように計算することができる。
そして、終端時点となる時刻t=T1+T2+T3+T4+T5+T6+T7において、速度V7が0に一致し、さらに、位置P7が目標移動距離Dに一致する。そのため、終端時点において、(22)式、及び(23)式が成立する。第2区間の加速度の大きさAa、及び第6区間の加速度の大きさAdは、(22)式と(23)式とから決定することができる。
以上が、試行パラメータ105と調整条件108とに基づき、指令信号103を生成する指令生成部2の動作の例示である。ここで、第1区間、第3区間、第5区間及び第7区間では、ジャークが非零の一定値である。つまり、第1時間長T1、第3時間長T3、第5時間長T5及び第7時間長T7は、ジャークが非零の一定値となる時間を指定している。ここで非零の一定値とは、0よりも大きい一定値又は0より小さい一定値を意味する。また、これらの区間では、時間長Tnに代えて、ジャークの大きさを、試行パラメータ105とすることもできる。例えば、第1区間におけるジャークの大きさをJ1と定めた場合、第1時間長T1とジャークJ1とは、(24)式のような関係を有する。
ジャークが非零の一定値となる区間の時間長を試行パラメータ105として定めることと、ジャークが非零の一定値となる区間のジャークの大きさを試行パラメータ105として定めることとは等価である。上記の例のように、試行パラメータ105は、試行パラメータ105と調整条件108とによって指令パターンを決定するものであればよく、ここで例示したように、同じ調整条件108のもとでも複数の選択肢があり得る。なお、試行パラメータ105の選び方は、上記に説明する方法に限定されるものではない。ここで、図2を用いて説明した形態では、運転条件と指令パラメータとを決定すれば、モータ1の最大加速度が決まる。すなわち、図2の形態は、運転条件と指令パラメータとが、位置決め動作の際のモータ1の加速度の最大値を規定している場合の一例である。このような場合、モータ1の最大加速度を超えないという拘束条件のもとで指令パラメータを変更しつつ、良い評価結果109を与える位置決め動作を実行させる指令パラメータを探索することができる。なお、モータの最大加速度は、モータの仕様によって決定される場合が多く、上記のような構成にすることによって容易に調整を行うことができる。
図3は、本実施の形態における運転条件と指令パラメータとの関係の一例を示す図である。なお、図3に示す運転条件は、調整条件108及び未調整条件110であり、図3に示す指令パラメータは、優良パラメータ106及び推定優良パラメータ107である。図3の横軸は、運転パラメータのひとつである目標移動距離を示している。図3の縦軸は指令パラメータである。図3(a)及び図3(b)には、調整レコード111がプロットされている。すなわち、図3(a)及び図3(b)には調整条件108と調整条件108に対応する優良パラメータ106とが塗り潰し記号、すなわち黒丸記号を用いてプロットされている。ここで、第n番目の調整条件108を目標移動距離D(n)とする。そして、目標移動距離D(n)における第j時間長をTj(n)とする。ここで、nは3以上の整数であり、jは1から7の整数である。また、Tj(n)は第n番目の優良パラメータ106の第j番目のパラメータ、すなわち、図2の例における第j番目の第j時間長である。このように、図2の例では、7つの時間長がひとつの指令パラメータを構成しているとしている。
なお、わかりやすく表示するために、図3には、優良パラメータ106として、指令パラメータの第j番目のパラメータのみを示している。図2の動作例のように、ひとつの指令パラメータが複数のパラメータで構成される場合も、指令パラメータの複数のパラメータの各々について同様にプロットすることができる。また、運転条件が、目標移動距離に加えてひとつ又は複数の運転パラメータを有する場合、図3のような2次元平面上のプロットに代えて、運転パラメータの各々について座標軸を有する多次元空間にプロットしてもよい。ここで、第n番目の調整条件108と第n番目の優良パラメータ106との組である調整レコード111をLnとする。第n番目の調整レコードLnは、第n番目の目標移動距離D(n)と第n番目の優良パラメータ106の組として、(25)式のように書くことができる。
なお、図3には、第n−2番目から第n+2番目までの5点の調整レコード111が示されているが、調整レコード111のデータ点数は、1点以上であればよく、2以上であることが好適である。調整レコード111のデータ点の数が多いほど、推定部8が推定優良パラメータ107を精度良く推定できる。図3(b)は、図3(a)に示すデータ点に追加して、D(n) と D(n+1)との間に、未調整条件D*と、未調整条件D*に対応する推定優良パラメータ Tj*とを、中抜き、すなわち白丸の記号を用いてプロットしたものである。推定部8は、調整レコード111に基づいて、(26)式のように線形補間を行うことによって推定優良パラメータTj*を推定してもよい。
(26)式では、未調整条件D*の近傍の、調整レコードLnと、調整レコードLn+1とを用いた線形1次近似式によって推定優良パラメータTj*を決定している。換言すれば、推定部8は、運転パラメータ及び優良パラメータ106をそれぞれ、入力及び出力として近似する線形補間関数を用いて推定優良パラメータ107を推定している。また、推定部8は、(27)式のように、線形補間関数に代えて、次数がPの近似多項式であるP次関数を用いて補間による推定を実行してもよい。総和記号Σを用いれば、(27)式を、(28)式のように記載することができる。
(28)式のaj(u)は、調整レコード111、境界条件等によって定まる定数である。上記に例示した線形補間、多項式補間に加え、ラグランジュ補間、スプライン補間等による近似を用いて推定優良パラメータ107を推定してもよい。以上が、推定部8が、調整レコード111に基づいて、未調整条件110のもとで、位置決め制御性能が優良となる指令パラメータとして、推定優良パラメータ107を推定する動作の例示である。なお、本実施の形態では、調整条件108の運転パラメータが目標移動距離のみとした場合について示したが、目標移動距離以外の運転パラメータを追加してもよい。運転パラメータの例としては、機械負荷3の位置決め動作の開始位置、停止位置等を挙げることができる。目標移動距離が同じ状態で、動作の開始位置、停止位置等を変更すると、機械負荷3の特性が変化し、発生する振動の振幅の大きさ、発生する振動の周波数、発生する振動の減衰の性質等が変わり、指令パラメータの再調整が必要となる場合がある。換言すれば、機械負荷3の位置決め動作の開始位置、停止位置等は、位置決め動作の評価結果109、すなわち、位置決め動作の優良度に影響を及ぼす。
なお、推定部8は、調整レコード111に含まれる調整条件108と調整条件108に対応する優良パラメータ106とに基づいて実行される全ての位置決め動作の中での最大の加速度を算出してもよい。そして、この算出された値より、未調整条件110と未調整条件110に対応する推定優良パラメータ107とに基づいて実行される位置決め動作の中での最大の加速度の値の方が小さくなるように、推定優良パラメータ107を決定してもよい。このように推定優良パラメータ107を決定することにより、実現不可能な推力又はトルクを発生させる未調整条件110と推定優良パラメータ107との組み合わせを、推定部8による推定結果の中から排除することができる。そして、運転条件のもとで、良い評価結果109が得られる位置決め動作を実行させる指令パラメータを、調整と推定とを組み合わせて効率的に探索することができる。
さらに、運転パラメータとして、機械負荷3の慣性の大きさ、周囲温度等を採用してもよい。ここで、機械負荷3の慣性は機械の質量等によって決まる。慣性、周囲温度等に依存して、位置決め制御装置1000の外乱が変化し、位置決め動作の性能に影響を及ぼす場合がある。上述のように、制御性能に影響のある数値を、調整条件108を構成する運転パラメータとして採用し、各運転パラメータに対応した高性能な位置決め制御を行うことができる装置を構成してもよい。また、本実施の形態の開示は、機械負荷3が直動し、位置決め制御装置1000が、直動型の位置決めを制御する場合を例として説明したが、例えば、機械負荷3の可動部が回転し、回転型の位置決めを制御する場合についても適用可能である。このような場合、位置、速度及び加速度のそれぞれに代えて、角度、角速度、角加速度を用いてもよい。
調整条件108が複数の運転パラメータを含み、運転パラメータごとに複数の値を取りうる場合、運転パラメータの種類と取りうる値との組み合わせの全てについて調整条件108を作成してもよい。調整条件108の一例を挙げる。例えば、運転パラメータとして、5つの値を取り得る目標移動距離と、3つの値を取り得る機械負荷3の慣性とが採用されたとする。このような場合、調整条件108の数をM=15とし、15の調整条件108を、調整条件108を調整部7及び調整レコード保持部10へと供給する主体が、テーブルに格納してもよい。ここで、独立変数を様々に変化させた場合に得られる数値を、独立変数に対応させて取り出すことが可能な状態に格納したデータをテーブルと称する。格納する場所の例としては、例えば、データを取り出し可能な記憶装置を挙げることができる。また、調整条件108を供給する主体とは、例えば、図9に示す運転条件決定部11のような構成要素としてもよい。
図4は、本実施の形態における調整の動作の一例を示すフロー図である。調整部7は、ステップS101において、全調整回数Mを設定する。Mは調整条件108の総数としてもよい。ステップS102において、調整部7は、実行中の調整回数kを初期化しk=0とする。ここで、ステップS101とステップS102の順番は、どちらを先に実行してもよく、2つの動作の一部又は全部を同時に実行してもよい。次に、ステップS103において、調整部7は、実行中の調整回数kをインクリメントする。すなわち、kを1増加させる。次に、ステップS104において、調整部7は、M個の調整条件108のうちの第k番目の調整条件108を読み出す。なお、図4の説明では、あらかじめすべての調整条件108を決定してテーブルに格納したものを読み出す構成を例示するが、調整条件108をあらかじめ決定せず、ステップS104を実行するごとに、調整条件108を決定する構成としてもよい。
次に、ステップS105において、調整部7は、第k番目の調整条件108のもとで後述する調整を実行し、第k番目の調整条件108に対応する優良パラメータ106を第k番目の優良パラメータ106として決定する。次に、ステップS106において、調整レコード保持部10は、第k番目の調整条件と第k番目の優良パラメータ106とを対応付けて、調整レコード111として保持する。次に、ステップS107において、調整部7は、kはM以上であるか否かを判断する。ステップS107において、kはM未満と判断した場合、ステップS103へ進む。そして、ステップS107において、kはM以上と判断されるまで、ステップS103からステップS107までの動作フローを繰り返し実行する。一方、ステップS107において、kはM以上と判断した場合、全ての調整条件108についての調整作業を終了する。図4に示す動作フローを実行することによって、調整条件108と調整条件108に対応する優良パラメータ106とを組にした調整レコード111を、M個の調整条件108のすべてについて調整レコード保持部10が保持する状態となる。
次に、評価部6の構成及び動作を例示する。図5は、本実施の形態における偏差の時間応答の一例を示す図である。偏差とは、目標移動距離とモータ1の位置との間の差異である。図5の動作例において、モータ1の位置は、状態センサ5によって状態センサ信号101として検出されるとしている。図5(a)から図5(c)はそれぞれ、異なる試行パラメータ105に基づく位置決め動作の偏差の時間波形を示している。ここで、試行パラメータ105に基づいて指令生成部2が指令信号103を生成し、生成された指令信号103に基づき制御部4が位置決め動作を実行する場合、実行された位置決め動作を、試行パラメータ105に基づく位置決め動作と称する。また、図2の例では、ひとつの試行パラメータ105が7つの時間長で構成されたように、試行パラメータ105が複数のパラメータで構成されるとしてもよい。
図5に示す例では、位置決めの完了時点を検出する際に、あらかじめ、位置決め制御の精度の基準となる許容幅IMPを定める。そして、位置決め制御を開始してから最初に偏差の大きさが許容幅IMP以下となるまでの時間を整定時間と称する。整定時間は、指令パターンが終了する終端時間T1+T2+T3+T4+T5+T6+T7よりも長くなる場合があるが、機械振動の影響等により、整定時間が終端時間より短くなる場合もあり得る。
図5(a)の動作例では、整定時間はTst1であり、整定時間Tst1の後、振幅が収束するまで偏差の大きさが許容幅IMPを超えない。図5(b)の動作例では、整定時間はTst2であり、整定時間Tst2の後、振幅が収束するまでに、偏差の大きさが1回許容幅IMPを超える。図5(c)では、整定時間はTst3であり、整定時間Tst3の後、振幅が収束するまで偏差の大きさが許容幅IMPを超えない。ここで、整定時間Tst3は、整定時間Tst1より小さく、整定時間Tst2より大きい(Tst2<Tst3<Tst1)としている。整定時間より後に偏差が許容幅IMPを超えないことと、位置決め動作の開始時点から偏差があらかじめ定めた値より最初に小さくなるまでの時間である位置決め時間を短くすることの2つが求められているとする。そして、同じ調整条件108のもとで、図5(a)から図5(c)に示した3つの位置決め動作が実行されるとする。このような場合、図5(c)の動作例が最も制御性能が高く、図5(c)の位置決め動作を実行させた試行パラメータ105を、優良パラメータ106として決定してもよい。上記のように、位置決め時間に基づいて評価結果109を決定してもよい。なお、位置決め時間は、位置決め動作の開始時点を起点としているが、起点は、このような場合に限定されるものではない。例えば、位置決め動作の開始時点より一定の時間だけ前又は後の時点を起点とすることもできる。
評価部6は、整定時間と、位置決め時間の経過時点からあらかじめ定めた時間が経過するまでの間に偏差の大きさが許容幅IMPを超えるか否かについての情報であるオーバーシュート情報とを組み合わせて評価結果を決定してもよい。このように、オーバーシュート情報に基づいて評価結果109を決定し、位置決め動作の完了時点より後に偏差の大きさが許容幅IMPを超える動作を実行させる試行パラメータ105が優良パラメータ106として選択される可能性を低下させることができる。また、偏差の振動振幅が大きい位置決め動作を実行させる試行パラメータ105が優良パラメータ106として選択される可能性を低下させることができる。また、評価部6は、(29)式の評価関数Eを評価結果として出力し、調整部7は、評価関数Eが小さいほど制御性能が高いとして評価関数Eの最小化を目標として調整を実行してもよい。また、(29)式の逆数を評価関数とし、評価関数が大きいほど制御性能が高いとして評価関数の最大化を目標として調整を実行してもよい。
(29)式の右辺の第1項のTstは整定時間である。また、第二項のL×Peは、オーバーシュート情報に基づいて決定されるペナルティの項である。第二項のPeはペナルティの有無を示す数値で、例えば、位置決め動作の完了時点からある一定の時間が経過するまでに偏差の大きさが許容幅を超えた場合に1とし、超えなかった場合に0としてもよい。また、第二項のLはペナルティの大きさを決定する正の定数である。Lを大きくすると、(29)式の評価関数は、整定時間に比べてペナルティに依存する度合いが大きくなり、ペナルティを避けることを優先する調整が実行される。一方、Lを小さくすると、評価関数は、ペナルティに比べて整定時間に依存する度合いが大きくなり、整定時間を短くすることを優先する調整が実行される。以上が、評価部6の構成及び動作の一例である。
なお、評価部6の構成は上記に限定されるものではない。例えば、偏差の時間積分値とモータ1の推力の時間積分値とを用いて評価結果109を算出してもよい。また、これらを組み合わせて評価結果109を算出する最適レギュレータを用いてもよい。また、偏差の大きさが初めて許容幅以下となってから、あらかじめ定めた時間が経過するまで目標移動距離に対する位置の超過量の最大値を指標としてもよい。また、目標移動距離を超えて位置決め動作の終着地点から見て位置決め動作の開始地点とは逆の側に行き過ぎる距離であるオーバーシュートの大きさに基づいて評価結果109を決定してもよい。また、指令パターンの中の最大加速度、又は指令パターンの中の最大速度を用いて評価結果としてもよい。また、これらを組み合わせて使用しても良い。なお、位置決め制御装置1000は、評価部6を構成要素として含まない構成としてもよい。例えば、位置決め制御装置1000の外部にあるメモリ及びプロセッサ、プロセッサ等が、図1の評価部6と同様に、状態センサ信号101に基づいて位置決め動作、すなわち試行パラメータ105を評価してもよい。
図6は、本実施の形態の調整の動作の一例を示すフロー図である。調整を開始すると、調整部7は、ステップS111において、1つの調整条件108のもとで実行する位置決め動作の試行回数の総数である総試行回数Vを設定する。ステップS112において、調整部7は、実行中の試行回数iを初期化する。例えばi=0としてもよい。図6の動作例では、試行パラメータ105をあらかじめV個用意し、第i番目の位置決め動作の実行の際には、用意したV個の試行パラメータ105の中から、第i番目の試行パラメータ105を設定するとしている。
試行パラメータ105の設定方法の例として、グリッドサーチと呼ばれる総当り方式を挙げることができる。本実施の形態の図2を用いて例示した7つの時間長で構成される試行パラメータ105についてのグリッドサーチの一例を説明する。第1時間長T1がとりうる値を複数設定する。設定する値は0を含んでも良い。第1時間長T1が0の場合、動作開始から指令信号103の加速度が最大加速度に到達するまでの時間が0になる。第1時間長T1と同様に、第2時間長T2から第7時間長T7までの6つに関しても、それぞれのパラメータがとりうる値を離散的にいくつか設定する。7つの時間長は、負の値を取ることはできないことに留意する。次に、設定した値の組み合わせを、試行パラメータ105としてあらかじめ設定する。例えば、1つの試行パラメータ105を構成するパラメータが、第1時間長T1から第7時間長T7の7つあり、時間長の各々について3点ずつ離散的に値を設定すると仮定する。このような場合、組み合わせの数は、3の7乗の2187個となり、試行パラメータ105の数は2187個となる。この場合、総試行回数をV=2187としてもよい。以上が、グリッドサーチによる試行パラメータ105の設定の一例である。
次にステップS113において、調整部7は、試行回数iをインクリメントする。すなわち、試行回数iを1増加させる。次に、ステップS114において、調整部7は、第i番目の位置決め動作の試行を実行するための試行パラメータ105を決定する。次に、ステップS115において、調整部7は、ステップS111において設定したV個の試行パラメータ105から、第i番目の試行パラメータ105を読み出す。そして、指令生成部2は、調整条件108と読みだした試行パラメータ105とに基づいて指令信号103を決定する。ステップS115において、制御部4は、指令信号103及び状態センサ信号101に基づいて駆動電力Eを決定し位置決め動作を実行する。さらに、ステップS115において、状態センサ5は、第i番目の状態センサ信号101を決定する。次に、ステップS116において、評価部6は、第i番目の評価結果109を決定し、調整部7は、第i番目の評価結果109を取得する。第i番目の評価結果109は、第i番目の位置決め動作に対する評価結果である。次に、ステップS117において、調整部7は、iがV以上であるか否かの判断を実行する。ステップS117において、調整部7は、iがVより小さいと判断した場合、ステップS113へ進む。そして、ステップS117において、iがV以上と判断されるまで、ステップS113からステップS117までの動作フローを繰り返し実行し、第1番目から第V番目までの位置決め動作と位置決め動作の各々に対応する評価結果109の決定が実行される。
一方、iがV以上と判断された場合(i≧V)、調整部7は、ステップS118へ進む。このとき、上述の第1番目から第V番目までの位置決め動作が実行され、位置決め動作に用いられたV個の試行パラメータ105と、試行パラメータ105の各々に対応する評価結果109とが得られた状態となっている。ステップS118において、調整部7は、V個の評価結果109の中から、位置決め制御の性能が最良であった試行パラメータ105を選択し、調整条件108のもとでの優良パラメータ106として決定する。なお、図4に説明したように、調整部7は、調整条件108の各々について調整を実行し、優良パラメータ106を得る。そのため、図4に示したフロー図による動作では、優良パラメータ106を、合計M個得る。
以上のように、ステップS111からステップS118までの動作フローを実施することによって、1つの調整条件108に対応する評価結果109が最も優良となる試行パラメータ105を、優良パラメータ106として決定してもよい。なお、調整の方法は上記に限るものではなく、調整条件に対応する優良パラメータ106を異なる手順で決定してもよい。また、図6の例では、最良の位置決め動作を実行した試行パラメータ105を優良パラメータ106として選択しているが、必ずしも、試行パラメータ105の中から選択する必要はない。調整条件108のもとで、最良の位置決め動作を与える指令パラメータを選択すればよい。本実施の形態では、指令パターンを規定する指令パラメータを、位置決め制御の性能が優良となるよう調整する方法を説明した。別の例として、制御部4がフィードバック制御又はフィードフォワード制御を実行する場合に用いる制御ゲインが、指令パラメータの中に含まれる構成とし、調整によって制御ゲインの最適値を探索してもよい。
図7は、本実施の形態における位置決め制御装置1000が備える処理回路をプロセッサ10001及びメモリ10002で構成する場合の構成例を示す図である。処理回路がプロセッサ10001及びメモリ10002で構成される場合、位置決め制御装置1000の処理回路の各機能は、ソフトウェア、ファームウェア、又はソフトウェアとファームウェアとの組み合わせによって実現される。ソフトウェア、ファームウェア等はプログラムとして記述され、メモリ10002に格納される。処理回路では、メモリ10002に記憶されたプログラムをプロセッサ10001が読み出して実行することによって、各機能を実現する。すなわち、処理回路は、位置決め制御装置1000の処理が結果的に実行されることになるプログラムを格納するためのメモリ10002を備える。また、これらのプログラムは、位置決め制御装置1000の手順および方法をコンピュータに実行させるものであるともいえる。
ここで、プロセッサ10001は、CPU(Central Processing Unit)、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、又はDSP(Digital Signal Processor)等であってもよい。メモリ10002は、例えば、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリ、EPROM(Erasable Programmable ROM)、EEPROM(登録商標)(Electrically EPROM)等の、不揮発性又は揮発性の半導体メモリとしてもよい。また、メモリ10002を、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、又はDVD(Digital Versatile Disc)等としてもよい。
図8は、本実施の形態における位置決め制御装置1000が備える処理回路を専用のハードウェアで構成する場合の構成例を示す図である。処理回路が専用のハードウェアで構成される場合、図8に示す処理回路10003は、例えば、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)、又はこれらを組み合わせたものとしてもよい。位置決め制御装置1000の機能を、機能ごとに処理回路10003によって実現してもよく、複数の機能をまとめて処理回路10003によって実現してもよい。なお、位置決め制御装置1000と制御対象2000とは、ネットワークを介して接続してもよい。また、位置決め制御装置1000は、クラウドサーバ上に存在してもよい。
以上のように、本実施の形態によれば、調整に要する時間が短く、高性能な位置決め動作を実行可能な位置決め制御装置を提供することができる。
実施の形態2
図9は、本実施の形態における位置決め制御装置1000aの構成の一例を示すブロック図である。位置決め制御装置1000aは、実施の形態1の位置決め制御装置1000の構成要素に加えて、運転条件決定部11を備える。運転条件決定部11は、調整レコード111又は制御対象2000の機械諸元に基づいて調整条件108又は未調整条件110のいずれか一方又は両方を決定する。より具体的には、調整条件108の運転パラメータ又は未調整条件110の運転パラメータを決定する。本実施の形態において、図1と同じ又は対応する構成要素については、図1と同一の符合を付す。
以下の説明では、調整条件108又は未調整条件110が設定される運転条件の範囲を調整範囲と称する。調整範囲とは、運転パラメータの範囲としてもよい。運転パラメータが複数ある場合、運転パラメータを複数有する運転条件について、複数の運転パラメータの範囲を調整範囲とし、運転パラメータの数だけの次元数を有する多次元空間の中に定められる範囲を調整範囲としてもよい。運転条件決定部11は、調整範囲の中で調整条件108又は未調整条件110の運転パラメータの値を定める。なお、設定した調整条件108はテーブルとして保持してもよい。例えば、調整範囲の中に、複数の調整条件108の運転パラメータが等間隔に配置されるように設定してもよい。
図10は、本実施の形態における運転条件決定部11の構成を例示する図である。図10(a)に示す運転条件決定部11は、精度推定部1101、機械諸元1102及び決定部1103を備える。機械諸元1102として、モータ1、機械負荷3等についての機械諸元が格納されている。機械諸元1102として格納される機械諸元の例としては、モータ1の最大速度、最大加速度、最大トルク、機械負荷3の慣性等を挙げることができる。機械諸元1102は、例えば、記憶装置に記録された取り出し可能な情報としてもよい。精度推定部1101は、調整範囲の中の一部又は全部について、推定部8にとって、推定優良パラメータ107を高い精度で推定することが容易であるか困難であるかの度合いを、機械諸元1102又は調整レコード111に基づいて推定する。
ここで、推定優良パラメータ107を高い精度で推定することが容易な範囲とは、推定優良パラメータ107と、優良パラメータ106との差異が、調整範囲の中の他の部分と比較して小さい範囲としてもよい。ここで、上記の推定優良パラメータ107は、その範囲に含まれるひとつの運転条件を未調整条件110として推定部8が推定した推定優良パラメータ107である。そして、優良パラメータ106とは、上記と同じ運転条件を試行パラメータ105として調整部7が調整を実行して決定した優良パラメータ106である。また、例えば、(22)式のように、線形補間を用いて推定部8が推定を実行する場合を考える。このような場合、精度推定部1101は、調整レコード111に基づき、調整範囲の中で、調整条件108の運転パラメータと優良パラメータ106との関係が線形の関係に近い部分を高精度範囲としてもよい。また、線形の関係と大きく異なる部分については低精度範囲としてもよい。このようにして、精度推定部1101が高精度範囲と低精度範囲を設定してもよい。
決定部1103は、高い精度での予測が困難な範囲における調整条件108の密度を増加させてもよい。また、高い精度での予測が容易な範囲における未調整条件110の密度を増加させてもよい。ここで、調整条件108又は未調整条件110の密度とは、運転パラメータの密度としてもよい。ここで、運転パラメータの密度とは、運転パラメータの値の一定の幅の中に配置された運転パラメータの数の多さの度合いである。すなわち、運転パラメータの値の一定の幅の中に配置された運転パラメータの数が多い場合、運転パラメータの密度が高いと称している。
以下に、精度推定部1101の動作を例示する。運転パラメータが目標移動距離であるとする。また、機械負荷3が共振周波数を有すると仮定する。そして、モータ1の速度及び加速度がそれぞれ、最大速度以下及び最大加速度以下に制限されているとする。そして、機械負荷3は、停止した状態(速度ゼロの状態)から最大速度の状態まで、最大加速度で加速し、次に、最大速度で可能な限り長い時間移動し、その後、停止するまで最大加速度で減速する位置決め動作を行うとする。このような場合、速度を時系列に示す速度パターンの形状(指令パターン)は、理想的には2等辺台形形状となる。そして、調整範囲の中に振動が発生しやすい目標移動距離があるとする。この振動が発生しやすい目標移動距離の近辺では、目標移動距離の変化に依存して、振動の発生しにくい指令パラメータの値が急激に変化する。そのため、振動が発生しやすい目標移動距離の近辺を、推定優良パラメータ107の高精度な推定が困難な低精度範囲としてもよい。以上が、精度推定部1101の動作の一例である。
なお、機械負荷3が解析的な式によって動作する可能性が高い運転条件の範囲を、推定優良パラメータ107の推定が容易な範囲である高精度範囲と定めてもよい。また、低精度範囲の数、高精度範囲の数は、ひとつでも複数でもよく、調整範囲の中に、高精度範囲と低精度範囲とが混在してもよい。そして、複数の低精度範囲又は高精度範囲を設定する場合、低精度範囲、高精度範囲等の幅は同じもよく、互いに異なってもよい。また、複数の運転パラメータの全部について低精度範囲又は高精度範囲を設定してもよく、一部について低精度範囲又は高精度範囲を設定してもよい。以上のように、図10(a)に説明した本実施の形態の構成によれば、推定部8が推定優良パラメータ107を推定する際の難度に応じて調整条件108又は未調整条件110を設定することができる。そのため、調整を実行することが効果的な範囲を選択して調整を実行させることができる。
図10(b)に示す運転条件決定部11は、図10(a)に示した精度推定部1101に代えて調整範囲決定部1104を備える。図10(a)に示す構成例では、あらかじめ与えられた調整範囲に対して調整条件108又は未調整条件110を決定したが、図10(b)に示す構成例では、調整範囲決定部1104が機械諸元1102又は調整レコード111に基づいて調整範囲を決定する。
以下に、調整範囲決定部1104が調整範囲を決定する動作を例示する。モータ1の最大速度であるVmaxと、モータ1の最大加速度であるAmaxとが、機械諸元1102として記憶されているとする。機械負荷3は、停止した状態(速度ゼロの状態)から最大速度の状態まで、最大加速度で加速し、次に、最大速度で可能な限り長い時間移動し、最大加速度で減速する位置決め動作を行うとする。調整範囲が運転パラメータである目標移動距離で与えられ、目標移動距離0から目標移動距離Dmaxが調整範囲であるとする。調整範囲決定部1104は、目標移動距離の最大値であるDmaxを決定することによって調整範囲を決定すると仮定する。
Vmax2/Amaxは、最大速度と最大加速度とが制限されるモータの間欠方式(Point-to-Point)の位置決めにおいて、最大加速度で加速し、最大加速度で減速し、速度の最高到達点で最大速度となる場合の目標移動距離である。このような場合、目標移動距離がVmax2/Amaxを下回ると、速度パターンの形状(指令パターン)は三角形状になり、最大速度Vmaxで移動する区間がなく、振動が発生しやすい。そのため、調整を実行することによって位置決め時間を大きく短縮することが期待できる。すなわち、調整の効果が大きい。
一方、目標移動距離がVmax2/Amaxを上回る場合、速度パターンの形状(指令パターン)は台形形状となり、最大速度Vmaxで移動する区間が生じる。このような場合、振動は発生しにくく、調整によって位置決め時間を大きく短縮することは期待できない。すなわち、調整の効果が小さい。上記に述べた内容により、目標移動距離がVmax2/Amaxを上回る場合、調整の効果は小さく、目標移動距離がVmax2/Amaxを下回る場合、調整の効果は小さいということができる。このような場合、調整範囲決定部1104は、次のように、(30)式を用いて調整範囲を決定してもよい。
(30)式のCは正の定数である。調整範囲決定部1104は、(30)式のCを、例えば、0.5から3の間として、(30)式の目標移動距離が0からDmaxの範囲を調整範囲としてもよい。さらに好ましくは、(30)式のCを1として(30)式の目標移動距離が0からDmaxの範囲を調整範囲としてもよい。このようにすれば、Vmax2/Amaxを指標値として、この指標値と同程度の値を下回る場合を調整範囲とすることができる。すなわち、調整の効果が大きい範囲を調整範囲とし、調整を行う時間をさらに短縮してもよい。以上が、調整範囲決定部1104の動作の一例である。決定部1103は、調整範囲決定部1104の定めた調整範囲に、調整条件108を設定する。なお、調整条件108又は未調整条件110を調整範囲の中に、互いに等しい間隔に設定してもよい。また、調整レコード111に基づいて、調整条件108の運転パラメータに対して調整条件108に対応する優良パラメータ106が急激に変化している領域を調整範囲に決定してもよい。言い換えれば、調整レコード111に基づいて、調整条件108に依存して優良パラメータ106の変化が大きい運転条件の範囲を調整範囲として定めてもよい。そして、調整によって位置決め動作に要する時間を短縮できる効果、又は、調整によって振動を低減する効果が大きい運転条件の範囲を調整範囲として定めてもよい。
以上説明したように、本実施の形態によれば、調整に要する時間が短く、高性能な位置決め動作を実行可能な位置決め制御装置を提供することができる。さらに、モータ1の機械諸元もしくは機械負荷3の機械諸元、又は調整レコード111に基づいて調整条件108又は未調整条件110を決定する運転条件決定部11を備える。
運転条件決定部11は、推定部8が高精度に推定優良パラメータ107を推定する容易さの度合いを決定する精度推定部1101を備えてもよい。このような場合、調整範囲の中の、推定優良パラメータ107の推定精度に応じて調整条件108の数を増減させることができる。そのため、低精度範囲には、多くの調整条件108を設定し、推定によらず調整によって優良パラメータ106を得ることができる。そして、効率良く調整を実行することができる。また、高精度範囲には、多くの未調整条件110を設定して、調整によらず推定によって推定優良パラメータ107を得ることができる。そして、調整を行う時間をさらに短縮することが可能となり、効率良く調整を実行することができる。
また、運転条件決定部11は、調整条件108が設定される運転条件の範囲である調整範囲を決定する調整範囲決定部1104を備えてもよい。このような場合、調整による位置決め時間の短縮の効果が大きいことが期待できる範囲を調整範囲として、調整を実行することができる。そして、調整を行う時間をさらに短縮することが可能となり、効率良く調整を実行することができる。
実施の形態3
図11は、本実施の形態における位置決め制御装置1000bの構成の一例を示すブロック図である。位置決め制御装置1000bは、実施の形態1の位置決め制御装置1000の調整部7及び調整レコード保持部10に代えて、調整部7a及び調整レコード保持部10aをそれぞれ備える。そして、図1に示す位置決め制御装置1000には含まれない調整管理部9を備える。図11の説明において、図1と同じ又は対応する構成要素については、図1と同一の符合を付す。
位置決め制御装置1000と位置決め制御装置1000bとの相違点の概略を述べる。位置決め制御装置1000bは、未調整条件110と推定優良パラメータ107とによる位置決め動作を実行する。そして、実行した位置決め動作の良又は不良を判断し、位置決め動作が不良である場合、新たな運転条件である追加調整条件112を決定する。そして、調整部7aが追加調整条件112のもとで調整を実行して、指令パラメータのひとつを、追加調整条件112に対応する追加優良パラメータ113として決定する。
位置決め制御装置1000bの動作について説明する。調整部7aは、実施の形態1の調整部7と同様に、調整条件108のもとでの調整を実行する。そして、調整レコード保持部10aは、実施の形態1の調整レコード保持部10と同様に調整レコード111を保持する。図1の位置決め制御装置1000では、推定部8が未調整条件110を外部から取得した。一方、図11の位置決め制御装置1000bでは、調整管理部9が未調整条件110を決定する。図11の位置決め制御装置1000bにおいても、未調整条件110を外部から取得する構成としてもよい。図11の推定部8は、図1の推定部8と同様に、指令パラメータのひとつを、未調整条件110に対応する推定優良パラメータ107として決定する。さらに、調整部7aは、未調整条件110と推定優良パラメータ107とによる位置決め動作である検証位置決め動作を実行する。換言すれば、調整管理部9が決定した未調整条件110と推定部8が決定した推定優良パラメータ107とによって、指令生成部2及び制御部4に位置決め動作を実行させる。さらに、調整管理部9は、評価部6から検証位置決め動作についての評価結果109を取得し、検証位置決め動作についての評価結果109が、あらかじめ定めた基準を満たすか否かを判断する。上記の調整部7aが実行する検証位置決め動作及び調整管理部9が実行する判断を検証と称する。
この検証の結果得られた判断結果が、あらかじめ定めた基準を満たさない場合、調整管理部9は追加調整条件112を決定する。ここで、追加調整条件112は、調整レコード111に含まれる調整条件108とは異なる運転条件とすることが望ましい。さらに、調整部7aは、決定された追加調整条件112のもとで調整を実行し、指令パラメータのひとつを追加調整条件112に対応する追加優良パラメータ113として決定する。調整レコード保持部10aは、追加調整条件112と追加優良パラメータ113との組を、追加調整レコードとして保持する。なお、実行した推定優良パラメータ107に基づく位置決め動作が、あらかじめ定めた基準を満たす場合、未調整条件110と推定優良パラメータ107との組を、調整レコード111として調整レコード保持部10aが保持してもよい。また、この未調整条件110と推定優良パラメータ107との組についても、調整レコード111ではなく追加調整レコードとして保持してもよい。
図12は、本実施の形態における運転条件と指令パラメータとの対応関係の一例を示す図である。図12の横軸は運転条件である。図12の縦軸は、指令パラメータである。図12において、実施の形態1の図3と同一又は対応するデータ点、軸等については、図3と同じ符合を付す。図12(a)のデータ点、軸等に付された符合の意味は、図3(a)と同一である。図12(b)には、図12(a)に示したデータ点に加え、未調整条件110と推定優良パラメータ107とが示されている。ここで、未調整条件110と推定優良パラメータ107とを未調整データと称する。ここで、検証の結果があらかじめ定めた基準を満たすと判断された未調整データ、すなわち、良である未調整データは、中抜き記号(白丸記号)を用いて示す。一方、基準を満たさないと判断された未調整データ、すなわち、検証の結果が否である未調整データは、バツ印記号(掛け算記号)を用いて示す。図10では、隣り合う調整条件108の間の運転条件の範囲を、未知区間と称する。なお、未知区間は、上記の隣り合う調整条件108の間の運転条件の範囲に加えて、調整条件108の配置される範囲である調整範囲の端部と、この端部に隣接する調整条件108の間の範囲も未知区間としてもよい。未知区間INT(n)は、2つの調整条件108の運転パラメータである、D(n)とD(n+1)との間の開区間としている。(31)式に示すように、未知区間INT(n)を、(D(n)、D(n+1))とする。なお、図12に示す例では、未知区間INT(n―2)から未知区間INT(n+1)までの4つの未知区間を図示しているが、未知区間の数は調整条件108の数に応じて増減させることができる。
図12(c)には、図12(b)と同様に、未調整データのうち、検証の結果が良と判断されたデータ点は白丸で示されているが、検証の結果が否と判断されたデータ点は、示していない。そして、追加調整条件112と追加優良パラメータ113とが、二重丸記号で示されている。前述のように、追加調整条件112と追加優良パラメータ113との組を追加調整レコードと称する。図12(b)では、未知区間INT(n―2)及び未知区間INT(n―1)に、検証の結果が否の未調整データが存在するとしている。調整管理部9は、検証の結果が否の未調整データが存在する未知区間の各々に追加調整条件112を1つずつ追加する。すなわち、未知区間INT(n―2)及び未知区間INT(n―2)のそれぞれに追加調整レコードを1点ずつ追加する。
未知区間INT(n―2)に追加した追加調整レコードを、Dad1及びTjad1によるデータ点とする。未知区間INT(n―1)に追加した追加調整レコードを、Dad2及びTjad2によるデータ点とする。以上のように、本実施の形態の位置決め制御装置1000aは、未調整データについて検証を実行する。そのため、基準を満たさない位置決め動作を実行させる未調整データを検出することができる。そして、前述のように、調整管理部9は、2つの調整条件108の間の区間である未知区間のうち、検証によって、否と判断された未調整データが存在する未知区間に追加調整条件112を決定することができる。このように追加調整条件112の配置を決定すれば、否と判断された未調整データの未調整条件110に近い運転条件を、追加調整条件112として決定することができる。ここで、2つの運転条件が近いとは、2つの運転条件の有する同種の運転パラメータの値が近いという意味としてもよい。すなわち、推定優良パラメータ107の推定精度が低い領域に対して選択的に追加調整条件112を配置することができる。以上により、効率よく調整を実行することができる。
図13は、本実施の形態における位置決め制御装置1000bの動作の一例を示すフロー図である。図13は、図12(a)に示す調整レコード111を調整レコード保持部10aが保持してから、図12(c)の追加調整レコードを調整レコード保持部10aが保持するまでの動作フローを示す。なお、図13の動作フローを開始する前に、図12(a)に示されている調整レコード111が調整レコード保持部10aに保持されているとする。動作フローを開始すると、ステップS201において、調整管理部9は、調整レコード保持部10aに保持された調整条件108の数に応じて、未知区間の数を決定する。未知区間の数をPとする。次に、ステップS202において、調整管理部9は、処理中の未知区間の番号である未知区間番号qの初期化を実行する。ここで、ステップS202において、図13ではqの値を0とする初期化を実行しているが、初期化として、例えば1などの他の値に設定してもよい。
次に、ステップS203において、調整管理部9は、処理中の未知区間番号qをインクリメントする。換言すると、処理中の未知区間番号qを1増加させる。次に、ステップS204において、調整管理部9は、第q番目の未知区間の未調整条件110をL個決定する。そして、ステップS205において、調整管理部9は、処理中の未調整条件番号wを初期化する。例えば、初期化として、wの値を0としてもよい。このL個の未調整条件110は、位置決め制御の性能を確認することが可能な数を用意することが望ましい。図12(a)に示した例では、各未知区間につき4つの未調整条件110を決定しており、L=4としている。
次に、ステップS206において、調整管理部9は、処理中の未調整条件番号wをインクリメントする。換言すれば、処理中の未調整条件番号wを1増加させる動作を実行する。次に、ステップS207において、推定部8は、第w番目の未調整条件110に対応する推定優良パラメータ107を決定する。次に、ステップS208において、調整部7a等は、第w番目の未調整データによる位置決め動作である第w番目の位置決め動作を実行する。次に、ステップS209において、調整管理部9は、第w番目の位置決め動作において得られた状態センサ信号101に基づいて評価部6による第w番目の評価結果109を得る。次に、ステップS210において、調整管理部9は、wがL以上か否かの判断を実行する。そして、wがL未満の場合、ステップS206へ進む。そして、ステップS210においてwがL以上と判断されるまで、ステップS206からステップS210までの動作フローを繰り返し実行する。一方、ステップS210において、Lがw以上と判断された場合、ステップS211へ進む。このとき、第1番目の評価結果109から第L番目の評価結果109までのL個の評価結果が得られた状態となっている。
ステップS211において、調整管理部9は、上記のL個の評価結果のすべてが、あらかじめ定めた基準を満たすか否かを判断する。ステップS211において、L個の評価結果のすべてが基準を満たすと判断した場合、ステップS212へ進む。一方、ステップS211において、L個の評価結果のうち少なくとも1つが基準を満たさないと判断した場合、ステップS213へと進む。ステップS212へ進んだ場合、調整管理部9は、Lがq以下であるか否かを判断する。Lがq以下である場合、動作フローを終了する。一方、Lがqより大きい場合、ステップS203へと進み、ステップS212において、Lがq以下であると判断されるまでステップS203からステップS212までの動作フローを繰り返し実行する。
ステップS213に進んだ場合、調整管理部9は、追加調整条件112を決定する。そして、ステップS214において、調整部7aは、追加調整条件112のもとでの調整である追加調整を実行し、追加優良パラメータ113を決定する。そして、ステップS215において、調整レコード保持部10aは、追加調整条件112と追加優良パラメータ113との組を追加調整レコードとして保持する。そして、ステップS204へ進む。そして、ステップS211でL個の評価結果が基準を満たすと判断されるまでステップS204からステップS215までの動作フローを繰り返し実行する。
なお、図12の動作例では、隣り合う2つの調整条件108の間の全体を未知区間が占めるとしているが、未知区間は、隣り合う2つの調整条件108の間の一部としてもよい。例えば、運転条件の範囲の中で、利用される可能性が低い部分が未知区間に含まれないように未知区間を設定してもよい。また、調整管理部9は、利用する可能性が低い運転条件の範囲に比べて、利用する可能性が高い運転条件の範囲により多くの未知区間を配置してもよい。そして、利用する可能性が高い運転条件の範囲に、より多くの追加調整条件112を設け、重点的に調整を実行してもよい。また、未調整条件110の間の間隔、未調整条件110と調整条件108との間の間隔は、均等に設定してもよく不均等に設定してもよい。また、未調整条件110の設定において、乱数を用いて確率的に未調整条件110を決定してもよい。
図12に示す動作例では、追加調整条件112を、未知区間の中心に1点とるが、未知区間の中に追加調整条件112を2点以上配置してもよい。また、追加調整条件112が定められた状態において、別の運転条件を新たに追加調整条件112として定める場合、既存の追加調整条件112を残してもよく削除してもよい。また、追加調整条件112を、検証において否と判断された未調整条件110に基づいて変更してもよい。例えば、否と判断された未調整条件110から所定の距離以下の範囲に、追加調整条件112を設けてもよい。そして、否と判断された未調整条件の付近を狙って調整を実行することによって効率よく調整を実行してもよい。ここで、2つの運転条件の間の距離とは、この2つの運転条件の含む同種の2つの運転パラメータの間の差異としてもよい。
図11に示す調整管理部9は、検証の結果得られた判断結果があらかじめ定めた基準を満たさない場合に追加調整条件112を決定する。しかしながら、本実施の形態の調整管理部9の動作は、このような形態に限定されるものではない。調整部7a及び調整管理部9が検証を実行しない場合でも、調整管理部9は、運転条件のひとつである追加調整条件112を決定することができる。また、検証が実行された場合に、実行した検証の結果に関わらず、調整管理部9は、運転条件のひとつである追加調整条件112を決定することができる。そして、調整が実行されていない運転条件に対して追加で調整を実行できるため、調整管理部9が決定する追加調整条件112は、調整条件108とは異なる運転条件とするのが好適である。図11に示す調整部7aは、上記のように決定された追加調整条件112のもとでの調整を実行し、指令パラメータのひとつを、決定された追加調整条件112に対応する追加優良パラメータ113として決定することができる。そして、調整レコード保持部10aは、このように決定された追加調整条件112と追加調整条件112に対応する追加優良パラメータ113との組を追加調整レコードとして保持することができる。
以上説明したように、本実施の形態によれば、実施の形態1と同様に、調整に要する時間が短く、高性能な位置決め動作を実行可能な位置決め制御装置を提供することができる。さらに、本実施の形態の位置決め制御装置1000bは、調整管理部9を備える。調整管理部9は、調整条件108とは異なる運転条件のひとつである追加調整条件112を決定する。そして、調整部7aは、追加調整条件112のもとでの調整を実行し、指令パラメータのひとつを、追加調整条件112に対応する追加優良パラメータ113として決定する。調整レコード保持部10aは、追加調整条件112と追加優良パラメータ113との組を追加調整レコードとしてさらに保持する。本実施の形態によれば、調整レコード111に含まれない追加調整条件112のもとでの調整を実行して、評価結果109が良い指令パラメータを決定することができる。そのため、より高精度に位置決め動作を実行することができる位置決め制御装置を提供することができる。
また、調整部7aは、未調整条件110と推定優良パラメータ107とによる位置決め動作を検証位置決め動作として実行する。調整管理部9aは、検証位置決め動作の際の状態センサ信号101による評価結果109があらかじめ定めた基準を満たすか否かを判断する。そして、基準を満たさない場合、調整管理部9aは、追加調整条件112を決定する。そのため、推定優良パラメータ107についての評価の結果が基準を満たさない場合を選択して追加調整条件112を設定することが可能となり、不要な調整を行わずに効率の良い調整を実行することができる。
調整管理部9は、未知区間のうち、基準を満たさないと判断された未調整条件110が配置された未知区間に追加調整条件112を決定してもよい。ここで、未知区間を、隣接する調整条件108の間の運転条件の範囲としてもよい。また、未知区間を、調整条件108が配置される範囲である調整範囲の端とこの調整範囲の端に隣接する調整条件108の間の運転条件の範囲としてもよい。本実施の形態の位置決め制御装置は、上記のような構成を有するため、基準を満たさないと判断された未調整条件110の近くに追加調整条件112を決定することができる。そのため、推定優良パラメータ107の推定の精度が低い部分に、選択的に追加調整条件112を決定することができる。
また、調整管理部9は、図9、図10に示した、調整条件108又は未調整条件110を決定する運転条件決定部11と同様に、機械諸元1102、調整レコード111等を利用して追加調整条件112を決定することもできる。また、運転条件108が目標移動距離を指定する場合に、調整管理部9は、あらかじめ定めたモータ1の最大速度とあらかじめ定めたモータ1の最大加速度とに基づいて基準距離を決定してもよい。そして、追加調整条件112の目標移動距離が、上記の基準距離と同じか上記の基準距離より小さくなるように、追加調整条件112を決定してもよい。基準距離は、あらかじめ定めたモータの最大速度が大きくなるほど長くなり、あらかじめ定めたモータの最大加速度が大きくなるほど短くなるような距離としてもよい。また、例えば、モータ1の最大加速度及びモータ1の最大速度が、モータ1の機械諸元として与えられているとする。そして、調整管理部9は、Cを1とした(30)式に記載のDmaxを基準距離として定め、この基準距離以下の範囲に、運転条件である目標移動距離が設定されるように、追加調整条件112を決定してもよい。このように、追加調整条件112を決定すれば、調整によって、位置決め動作に要する時間を顕著に短縮することができる範囲、すなわち、調整が有効な範囲に、追加調整条件112を設定することができる。
実施の形態4
図14は、本実施の形態における位置決め制御装置1000cの構成の一例を示すブロック図である。位置決め制御装置1000cの構成は、調整部7に代えて調整部7bを備える点を除き、実施の形態1の図1に示す位置決め制御装置1000と同じである。図15は、調整部7bの構成の一例を示すブロック図である。調整部7bは、調整学習部70を備える。図14、図15に示す構成要素のうち、実施の形態1の図1に示す構成要素と同じ又は対応する構成要素については、同一の符号を付す。
調整学習部70は、位置決め動作に用いた試行パラメータ105と実行された位置決め動作の評価結果109を含む状態量との関係を学習し、学習した結果に基づいて試行パラメータ105を決定する。調整学習部70は、評価結果109に基づいて報酬rを計算する報酬計算部701と、報酬rに基づいて価値関数Qを更新する価値関数更新部702とを備える。なお、図15の調整学習部70は、試行パラメータ105と評価結果109との関係を学習するが、調整学習部70は、試行パラメータ105と評価結果109を含む調整状態量との関係を学習してもよい。調整状態量の例としては、調整条件108、モータ1又は機械負荷3の機械諸元、温度、湿度等の周囲の環境等を挙げることができる。さらに、調整学習部70は、価値関数Qに基づいて調整の際に実行される位置決め動作に用いる試行パラメータ105を決定する意思決定部703を備える。本実施の形態では、図6のステップS114の動作において、調整学習部70が、試行パラメータ105を決定する。左記を除き、本実施の形態の動作フローは、実施の形態1の図4及び図6と同様である。
調整学習部70が試行パラメータ105を決定する動作の一例について説明する。調整学習部70は、様々な学習アルゴリズムを用いて学習を実行することができる。本実施の形態では、強化学習(Reinforcement Learning)を適用した場合を一例として説明する。強化学習は、ある環境内におけるエージェント(行動主体)が現在の状態を観測し、取るべき行動を決定するというものである。エージェントは行動を選択し、環境から報酬を得る。そして、一連の行動を通じて報酬が最も多く得られるような方策を学習する。強化学習の代表的な手法として、Q学習(Q-Learning)、TD学習(TD-Learning)等が知られている。例えばQ学習の場合、行動価値関数Q(s,a)の一般的な更新式は、(32)式で表される。更新式は、行動価値テーブルで表記することもできる。
(32)式において、stは時刻tにおける環境をあらわし、atは時刻tにおける行動をあらわす。行動atによって環境はst+1に変わる。rt+1はその環境の変化によってもらえる報酬をあらわし、γは割引率をあらわし、αは学習係数をあらわす。なお、割引率γは0より大きく1以下の範囲(0<γ≦1)、学習係数αは0より大きく1以下の範囲(0<α≦1)とする。Q学習を適用した場合、行動atは、試行パラメータ105の決定である。環境stは、調整条件108、モータ1の初期位置等で構成される。
報酬計算部701が報酬rを決定する動作を例示する。報酬計算部701は、評価結果109に応じて報酬rを決定する。実施の形態1に例示した評価部6は、評価結果109を、整定時間又は位置決め時間と、オーバーシュート情報とに基づいて決定する。ここで、オーバーシュート情報とは、前述のように、整定時間の経過時点からあらかじめ定めた時間が経過するまでの間に偏差の大きさが許容幅IMPを超えるか否かについての情報である。以下では、あらかじめ定めた時間が経過するまでの間に許容幅IMPを超える場合、オーバーシュート情報は良であると称し、あらかじめ定めた時間が経過するまでの間に許容幅IMPを超えない場合、オーバーシュート情報は否であると称する。オーバーシュート情報が否である場合、整定時間の逆数の値から5を減算した値を報酬rとし、オーバーシュート情報が良である場合、整定時間の逆数の値を報酬rとする。例えば、オーバーシュート情報が否で整定時間が0.1秒の場合、報酬rを整定時間の逆数である10から5を減じた5とする。報酬計算部701は、このように報酬rを決定することによって、整定時間が短く、かつ、オーバーシュート情報が良となる試行パラメータ105を探索してもよい。また、評価部6は、目標移動距離を超えて位置決め動作の開始地点とは逆の側に行き過ぎる距離であるオーバーシュートの大きさに基づいて評価結果109を決定してもよい。
価値関数更新部702は、報酬計算部701が計算した報酬rに基づいて行動価値関数Qを更新する。意思決定部703は、更新された行動価値関数Qが最も大きくなる行動atを決定する。すなわち、行動価値関数Qが最も大きくなるように、試行パラメータ105を決定する。なお、位置決め制御装置1000cの説明では、調整学習部70が用いる学習アルゴリズムとして強化学習を適用した場合について説明したが、本実施の形態の学習アルゴリズムは、強化学習に限定されるものではない。教師あり学習、教師なし学習、半教師あり学習等の公知の学習アルゴリズムを適用することも可能である。また、上述した学習アルゴリズムとしては、特徴量そのものの抽出を学習する深層学習(Deep Learning)を用いてもよい。また、他の方法、例えば、ニューラルネットワーク、遺伝的プログラミング、機能論理プログラミング、サポートベクターマシン、ベイズ最適化等に従って機械学習を実行してもよい。
また、本実施の形態に説明した学習を実行した学習済み学習器を備える位置決め制御装置を構成してもよい。学習済み学習器は、学習済のデータ、学習済のプログラム、又はこれらの組み合わせで構成してもよい。学習済み学習器を用いることにより、他の位置決め制御装置を用いた学習を利用することができるため、新たに学習を行わずに、高性能な位置決めを実現できる位置決め制御装置を提供することができる。また、図9に示す調整部7、図11に示す調整部7aに、本実施の形態に説明した構成を適用し、調整を効率的に実行してもよい。
以上、説明したように、本実施の形態の位置決め制御装置1000cは、実施の形態1と同様に、調整に要する時間が短く、高性能な位置決め動作を実行可能な位置決め制御装置を提供することができる。さらに、本実施の形態の位置決め制御装置1000cは、調整部7bを備える。調整部7bは、試行パラメータ105と評価結果109を含む調整状態量との関係を学習し、学習した結果に基づいて試行パラメータ105を決定する調整学習部70を備える。学習の結果を利用することにより試行パラメータを決定することができる。そして、調整に要する時間を短縮することができる。例えば、機械負荷3の剛性が小さいなど、機械負荷3の挙動の予測が困難な場合等に、調整学習部70が学習結果を利用して試行パラメータ105を決定することにより、調整に要する時間を短縮することができる。また、単純な試行錯誤を繰り返す調整に比べて、調整に要する時間を短縮することができる。
実施の形態5
図16は、本実施の形態における位置決め制御装置1000dの構成の一例を示すブロック図である。位置決め制御装置1000dは、図1に示す実施の形態1の位置決め制御装置1000の推定部8に代えて推定部8aを備える。その他の点については、実施の形態1の位置決め制御装置1000と同じである。位置決め制御装置1000dの説明では、実施の形態1の図1と同じ又は対応する構成要素については、同一の符号を付す。
図17は、本実施の形態における推定部8aの構成の一例を示すブロック図である。推定部8aは、調整レコード111を含む推定状態量に基づいて調整条件108と、調整条件108に対応する優良パラメータ106との関係を学習する。そして、学習した結果に基づいて、未調整条件110のもとで、指令パラメータのひとつを、推定優良パラメータ107として決定する。ここで、未調整条件110のもとで、良い評価結果109を与える位置決め動作を実行させる指令パラメータを、推定優良パラメータ107として決定してもよい。以下の説明では、一例として、推定部8aは、未調整条件110に基づいて推定優良パラメータを算出する推定用関数Esを学習する推定用学習部80を備える。推定用学習部80は、調整レコード111と、推定優良パラメータ107との誤差erを計算する誤差計算部801と、誤差erに基づき推定用関数Esを更新する推定用関数更新部802とを備える。さらに、推定用学習部80は、推定用関数Esと未調整条件110とに基づいて推定優良パラメータ107を決定する推定値決定部803を備える。なお、図17において誤差計算部801は、調整レコード111に基づいて誤差erを計算するが、調整レコード111を含む推定状態量に基づいて誤差erを計算してもよい。
推定用学習部80は、例えば、ニューラルネットワークモデルに従って、いわゆる教師あり学習によって、優良パラメータ106と調整条件108との関係を学習してもよい。ここで、ある入力と結果(ラベル)のデータの組を大量に学習装置に与えることで、それらのデータセットにある特徴を学習し、入力から結果を推定するモデルを教師あり学習とよんでいる。ニューラルネットワークは、複数のニューロンからなる入力層、複数のニューロンからなる中間層(隠れ層)、及び複数のニューロンからなる出力層で構成される。中間層は、1層でもよく2層以上でもよい。
図18は、本実施の形態におけるニューラルネットワークの構成の一例を示す図である。説明をわかりやすくするため、図18のニューラルネットワークは、入力数を3、層数を3としている。複数の入力が、X1からX3で構成される入力層に入力されると、入力値にw11からw16で構成される重みW1を乗じた値が、Y1とY2とで構成される中間層に入力される。さらに、中間層の入力値に、w21からw26で構成される重みW2を乗じた値が、Z1からZ3で構成される出力層から出力される。この出力結果は、重みW1の値と重みW2の値に依存して変化する。図18に示すニューラルネットワークは、推定用学習部80に入力される調整レコード111に基づいて作成されるデータセットに従って、教師あり学習により、調整条件108と、調整条件108に対応する優良パラメータ106との関係を学習する。すなわち、本実施の形態のニューラルネットワークによる学習の一例では、入力層に調整条件108を入力して、出力層から出力される優良パラメータ106を用いた位置決め動作の評価結果109が優良となるように重みW1及び重みW2を調整する。なお、本実施の形態において説明した学習を実行した学習済み学習器を搭載した位置決め制御装置を構成してもよい。学習済み学習器は、学習済のデータ、学習済のプログラム、又はこれらの組み合わせで構成してもよい。学習済み学習器を用いることにより、他の位置決め制御装置を用いた学習を利用することができるため、新たに学習を行わずに、高性能な位置決めを実現できる位置決め制御装置を提供することができる。
また、他の構成に、本実施の形態に説明した構成を適用してもよい。他の構成の例としては、図9に示す位置決め制御装置1000aの推定部8、図11に示す位置決め制御装置1000bの推定部8、又は図14に示す位置決め制御装置1000cの推定部8を挙げることができる。そして、位置決め制御装置1000a、位置決め制御装置1000b、又は位置決め制御装置1000cにおいて、推定優良パラメータ107の推定を、精度よく又は効率的に実行してもよい。
以上、説明したように、本実施の形態によれば、実施の形態1と同様に、調整に要する時間が短く、高性能な位置決め動作を実行可能な位置決め制御装置を提供することができる。さらに、本実施の形態の位置決め制御装置1000dは、推定用学習部80を有する推定部8aを備える。推定用学習部80は、調整レコード111を含む推定状態量に基づいて優良パラメータ106と調整条件108との関係を学習し、学習した結果に基づいて推定優良パラメータ107を決定する。そのため、推定優良パラメータ107を、より短い時間の間により正確に決定することができる。そして、複雑な特性をもつ機械負荷3に対しても、良い評価結果109を与える位置決め動作を実現することができる優良パラメータ106を、より短い時間で効率良く決定することができる。