JP7014062B2 - 制御装置、制御装置の制御方法、情報処理プログラム、および記録媒体 - Google Patents

制御装置、制御装置の制御方法、情報処理プログラム、および記録媒体 Download PDF

Info

Publication number
JP7014062B2
JP7014062B2 JP2018122039A JP2018122039A JP7014062B2 JP 7014062 B2 JP7014062 B2 JP 7014062B2 JP 2018122039 A JP2018122039 A JP 2018122039A JP 2018122039 A JP2018122039 A JP 2018122039A JP 7014062 B2 JP7014062 B2 JP 7014062B2
Authority
JP
Japan
Prior art keywords
spindle
future
slave axis
axis
cycle
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2018122039A
Other languages
English (en)
Other versions
JP2020005385A (ja
Inventor
正樹 浪江
功征 川又
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Omron Corp
Original Assignee
Omron Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Omron Corp filed Critical Omron Corp
Priority to JP2018122039A priority Critical patent/JP7014062B2/ja
Priority to PCT/JP2019/020770 priority patent/WO2020003839A1/ja
Publication of JP2020005385A publication Critical patent/JP2020005385A/ja
Application granted granted Critical
Publication of JP7014062B2 publication Critical patent/JP7014062B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D3/00Control of position or direction
    • G05D3/12Control of position or direction using feedback
    • HELECTRICITY
    • H02GENERATION; CONVERSION OR DISTRIBUTION OF ELECTRIC POWER
    • H02PCONTROL OR REGULATION OF ELECTRIC MOTORS, ELECTRIC GENERATORS OR DYNAMO-ELECTRIC CONVERTERS; CONTROLLING TRANSFORMERS, REACTORS OR CHOKE COILS
    • H02P5/00Arrangements specially adapted for regulating or controlling the speed or torque of two or more electric motors
    • H02P5/46Arrangements specially adapted for regulating or controlling the speed or torque of two or more electric motors for speed regulation of two or more dynamo-electric motors in relation to one another

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Power Engineering (AREA)
  • Control Of Multiple Motors (AREA)
  • Control Of Position Or Direction (AREA)
  • Numerical Control (AREA)

Description

本発明は、主軸の位置に対して従軸の位置を追従させる制御装置等に関する。
主軸位置に対して従軸位置を追従させる制御において、従軸の制御の追従性を向上させるためには、従軸の未来の指令値を予測するのが有効である。そこで従来、従軸の未来の指令値を予測するために主軸の未来のフィードバック値を予測する試みが知られている。
例えば、下掲の特許文献1には、主軸モータに同期して従属軸モータを駆動する同期制御装置であって、主軸装置の動特性モデルを利用して、未来の主軸位置増分値の予測値を求める構成が開示されている。
特開平9-289788(1997年11月4日公開)
しかしながら、上述のような従来技術には、「主軸の未来のフィードバック値」の予測が必要になるのは、「主軸装置の動特性モデル」を用いて行う予測の精度が低い状況であるとの問題がある。すなわち、「主軸装置の動特性モデル」の利用には、外乱がなく、かつ、「主軸装置の動特性モデル」の特性変動がないとの前提が必要とされる。このような前提があり、かつ、動特性モデルによる予測の精度が高いのであれば、その動特性モデルを主軸の制御に用いることで、主軸のフィードバック値を主軸の指令値に高精度に追従させることができるはずである。そして、主軸のフィードバック値を主軸の指令値に高精度に追従させることができるのであれば、そもそも「主軸の未来のフィードバック値」を予測する必要はなく、「主軸の未来の指令値」から「従軸の未来の指令値」を計算すればよいと考えられる。
本発明の一態様は、主軸位置に対する従軸制御の追従性を向上することであり、例えば、従軸制御に適用するモデル予測制御の性能を十分に発揮させるため、主軸の未来のフィードバック値を予測して、対応する従軸の未来の指令値を予測することを目的とする。
上記の課題を解決するために、本発明の一態様に係る制御装置は、主軸の位置に対して従軸の位置を追従させる制御装置であって、(A)前記主軸の位置をフィードバック制御する第1サーボ制御系の、前記主軸のフィードバック位置である主軸フィードバック位置の現在における加速度が、所定期間にわたって一定のまま継続すると仮定して、または、(B)前記主軸の目標軌道から生成される指令位置である主軸指令位置と前記主軸フィードバック位置との偏差である位置偏差の、現在における時間変化率が、所定期間にわたって一定のまま継続すると仮定して、未来における前記主軸フィードバック位置を予測する予測部と、前記予測部により予測された未来における前記主軸フィードバック位置に対応する、前記従軸の位置である対応従属位置を演算する演算部と、前記従軸の位置をフィードバック制御する第2サーボ制御系の動特性モデルを用いて予測する、未来における前記従軸の予測位置が、前記演算部により演算された前記対応従属位置に一致するように、前記第2サーボ制御系に対する現在における指令値である従軸指令値を生成する従軸指令部と、を備えることを特徴としている。
前記の構成によれば、前記制御装置は、未来における前記主軸フィードバック位置を、(1)前記主軸フィードバック位置の現在における加速度が所定期間にわたって一定のまま継続すると仮定して、または、(2)前記位置偏差の、現在における時間変化率が、所定期間にわたって一定のまま継続すると仮定して、予測する。
特に、前記制御装置は、前記第1サーボ制御系の動特性モデルを用いずに予測した前記主軸の未来のフィードバック位置から、前記主軸の未来のフィードバック位置に対応する、前記従軸の未来の位置である対応従属位置を演算する。そして、前記制御装置は、演算した前記対応従属位置を前記従軸の未来の指令値(指令位置)とする、前記第2サーボ制御系の動特性モデルを用いたモデル予測制御を、前記従軸の制御に適用する。つまり、前記制御装置は、未来における前記主軸フィードバック位置を予測し、予測した「未来における前記主軸フィードバック位置」に対応する「前記従軸の未来の指令値」を用いたモデル予測制御を、前記従軸の制御に適用する。
したがって、前記制御装置は、前記従軸の位置制御について追従性を向上させ、前記従軸の位置制御を高速化・高精度化することができるとの効果を奏する。例えば、前記制御装置は、前記制御装置によって制御する機械等の動作をより高速化させて、これらの機械を用いた生産現場の生産性の向上に寄与するとの効果を奏する。
本発明の一態様に係る制御装置は、前記主軸の位置に対して前記従軸の位置を追従させ、前記予測部は、各周期における前記主軸フィードバック位置の加速度が、複数の周期にわたって一定であると仮定して、現在および過去の各周期における前記主軸フィードバック位置を用いて、未来の周期における前記主軸フィードバック位置を予測してもよい。
前記の構成によれば、前記制御装置は、現在および過去の各周期における前記主軸フィードバック位置を用いて、未来の周期における前記主軸フィードバック位置を予測する。
例えば、前記制御装置は、現在の周期における前記主軸フィードバック位置と、現在から1周期前の周期における前記主軸フィードバック位置との差を、前記周期の時間間隔である周期時間で除して、現在の周期における前記第1サーボ制御系のフィードバック速度を算出する。
また、前記制御装置は、現在から1周期前の周期における前記主軸フィードバック位置と、現在から2周期前の周期における前記主軸フィードバック位置との差を、前記周期時間で除して、現在から1周期前の周期における前記第1サーボ制御系のフィードバック速度を算出する。
そして、前記制御装置は、前記第1サーボ制御系の現在の周期におけるフィードバック速度と、現在から1周期前の周期におけるフィードバック速度との差を、前記周期時間で除して、現在の周期における前記第1サーボ制御系のフィードバック加速度を算出する。
前記制御装置は、算出した「現在の周期における前記第1サーボ制御系のフィードバック加速度」が未来の周期においても一定で継続すると仮定して、前記周期時間、「前記第1サーボ制御系の現在の周期におけるフィードバック加速度」、「前記第1サーボ制御系の現在の周期におけるフィードバック速度」、および、「前記第1サーボ制御系の現在の周期における前記主軸フィードバック位置」から、未来の周期における前記主軸フィードバック位置を予測する。
そして、前記制御装置は、予測した「未来の周期における前記主軸フィードバック位置」に対応する、前記従軸の未来の位置である対応従属位置を演算する。前記制御装置は、演算した前記対応従属位置を前記従軸の未来の指令値(指令位置)とする、前記第2サーボ制御系の動特性モデルを用いたモデル予測制御を、前記従軸の制御に適用する。つまり、前記制御装置は、前記従軸の制御に適用する前記モデル予測制御に、現在および過去の前記主軸フィードバック位置を用いて予測した「未来の前記主軸フィードバック位置」に対応する、前記従軸の未来の指令値(前記対応従属位置)を用いる。
したがって、前記制御装置は、主軸の位置に対して従軸の位置を追従させる制御装置において、前記従軸の位置制御について追従性を向上させ、前記従軸の位置制御を高速化・高精度化することができるとの効果を奏する。
本発明の一態様に係る制御装置は、前記主軸の位置に対して前記従軸の位置を追従させ、前記予測部は、各周期における前記主軸指令位置と前記主軸フィードバック位置との偏差である前記位置偏差の、時間に対する変化率が、複数の周期にわたって一定であると仮定して、(C)現在および過去の各周期における前記主軸フィードバック位置と、(D)過去、現在、および、未来の各周期における前記主軸指令位置と、を用いて、未来の周期における前記主軸フィードバック位置を予測してもよい。
前記の構成によれば、前記制御装置は、(C)現在および過去の各周期における前記主軸フィードバック位置と、(D)過去、現在、および、未来の各周期における前記主軸指令位置と、を用いて、未来の周期における前記主軸フィードバック位置を予測する。
例えば、前記制御装置は、現在の周期における前記主軸指令位置と前記主軸フィードバック位置との差から、現在の周期における前記位置偏差を算出する。また、前記制御装置は、現在から1周期前の周期における前記主軸指令位置と前記主軸フィードバック位置との差から、現在から1周期前の周期における前記位置偏差を算出する。
そして、前記制御装置は、現在の周期における前記位置偏差と、現在から1周期前の周期における位置偏差との差を、前記周期の時間間隔である周期時間で除して、「現在の周期における、前記位置偏差の時間に対する変化(率)」を示す、「現在の周期における位置偏差変化率」を算出する。
前記制御装置は、算出した「現在の周期における位置偏差変化率」が未来の周期においても一定で継続すると仮定して、前記周期時間、「現在の周期における位置偏差変化率」、および、「現在の周期における位置偏差」から、「未来の周期における前記位置偏差」を算出する。
そして、前記制御装置は、「未来の周期における主軸指令位置」と、算出した「未来の周期における前記位置偏差」との差から、「未来の周期における前記主軸フィードバック位置」を予測する。
前記制御装置は、予測した「未来の周期における前記主軸フィードバック位置」に対応する、前記従軸の未来の位置である対応従属位置を演算する。前記制御装置は、演算した前記対応従属位置を前記従軸の未来の指令値(指令位置)とする、前記第2サーボ制御系の動特性モデルを用いたモデル予測制御を、前記従軸の制御に適用する。つまり、前記制御装置は、前記従軸の制御に適用する前記モデル予測制御に、「現在および過去の前記主軸フィードバック位置」と、「過去、現在、および、未来の前記主軸指令位置」とを用いて予測した「未来の前記主軸フィードバック位置」に対応する、前記従軸の未来の指令値(前記対応従属位置)を用いる。
したがって、前記制御装置は、主軸の位置に対して従軸の位置を追従させる制御装置において、前記従軸の位置制御について追従性を向上させ、前記従軸の位置制御を高速化・高精度化することができるとの効果を奏する。
本発明の一態様に係る制御装置は、前記第1サーボ制御系の動特性モデルを用いて予測する未来における前記主軸の予測位置が、未来における前記主軸指令位置に一致するように、前記第1サーボ制御系に対する現在における指令値である指令主軸値を生成する主軸指令部をさらに備えてもよい。
前記の構成によれば、前記制御装置は、前記第1サーボ制御系の動特性モデルを用いて予測する未来における前記主軸の予測位置が、未来における前記主軸指令位置に一致するように、前記第1サーボ制御系に対する現在における指令主軸値を生成する。
したがって、前記制御装置は、前記第1サーボ制御系の動特性モデルを用いたモデル予測制御を前記主軸の位置の制御に適用することによって、前記主軸の位置制御について、追従性を向上させることができるとの効果を奏する。
特に、未来における前記主軸指令位置を用いて未来における前記主軸フィードバック位置を予測する場合、前記主軸の位置の制御には、高い追従性が求められる。そこで、前記制御装置は、前記第1サーボ制御系の動特性モデルを用いたモデル予測制御を前記主軸の位置の制御に適用することによって、前記主軸の位置制御について、追従性を向上させる。
したがって、前記制御装置は、モデル予測制御によって前記主軸の位置制御の追従性を向上させ、かつ、未来における前記主軸指令位置を用いて予測した未来における前記主軸フィードバック位置を用いて前記従軸の位置制御の追従性を向上させることができるとの効果を奏する。
本発明の一態様に係る制御装置は、前記予測部により予測された未来における前記主軸フィードバック位置を監視する監視部をさらに備えてもよい。
前記の構成によれば、前記制御装置は、予測した「未来における前記主軸フィードバック位置」を監視し、例えば、予測した「未来における前記主軸フィードバック位置」の変動を検知する。
したがって、前記制御装置は、予測した「未来における前記主軸フィードバック位置」を監視し、例えばその変動を検知することによって、変動にみられる傾向性および急激な変動の発生等を把握することができるとの効果を奏する。
本発明の一態様に係る制御装置において、前記主軸は電子カムの主軸であり、前記従軸は前記電子カムの従軸であり、前記演算部は、前記予測部により予測された未来における前記電子カムの主軸の位相に対応する、前記電子カムの従軸の位置を演算するカム演算部であってもよい。
前記の構成によれば、前記制御装置は、予測した未来における前記電子カムの主軸の位相に対応する、前記電子カムの従軸の位置を演算する。
ここで、前記制御装置は、未来における前記電子カムの主軸のフィードバック位置(フィードバック位相)を、(1)前記電子カムの主軸をフィードバック制御する前記第1サーボ制御系の、前記主軸のフィードバック位置である主軸フィードバック位置の現在における加速度が、所定期間にわたって一定のまま継続すると仮定して、または、(2)前記主軸の目標軌道から生成される指令位置である主軸指令位置と前記主軸フィードバック位置との偏差である位置偏差の、現在における時間変化率が、所定期間にわたって一定のまま継続すると仮定して、予測する。
つまり、前記制御装置は、前記電子カムの未来の主軸の位置を前記第1サーボ制御系の動特性モデルを用いずに予測し、予測した前記電子カムの未来の主軸の位置に対応する、前記電子カムの未来の従軸の位置(対応従属位置)を演算する。そして、前記制御装置は、演算した対応従属位置を用いて、前記電子カムの従軸の位置を制御する。具体的には、前記制御装置は、未来における前記主軸フィードバック位置を予測し、予測した「未来における前記主軸フィードバック位置」に対応する「前記従軸の未来の指令値」を用いたモデル予測制御を、前記従軸の制御に適用する。
したがって、前記制御装置は、前記電子カムの主軸の位置(位相)に対して前記電子カムの従軸の位置を追従させる制御装置において、前記従軸の位置制御について追従性を向上させ、前記従軸の位置制御を高速化・高精度化することができるとの効果を奏する。
特に、前記制御装置は、前記第1サーボ制御系の動特性モデルを用いずに予測した前記電子カムの主軸の未来のフィードバック位置から、対応する「前記電子カムの従軸の未来の位置である、対応従属位置」を演算する。そして、前記制御装置は、演算した対応従属位置(前記未来における前記従軸の位置)を前記従軸の未来の指令値(指令位置)とする、前記第2サーボ制御系の動特性モデルを用いたモデル予測制御を、前記従軸の制御に適用する。したがって、前記制御装置は、前記電子カムの従軸の位置制御について、追従性を向上させ、前記従軸の位置制御を高速化・高精度化することができるとの効果を奏する。
上記の課題を解決するために、本発明の一態様に係る制御方法は、主軸の位置に対して従軸の位置を追従させる制御装置の制御方法であって、(A)前記主軸の位置をフィードバック制御する第1サーボ制御系の、前記主軸のフィードバック位置である主軸フィードバック位置の現在における加速度が、所定期間にわたって一定のまま継続すると仮定して、または、(B)前記主軸の目標軌道から生成される指令位置である主軸指令位置と前記主軸フィードバック位置との偏差である位置偏差の、現在における時間変化率が、所定期間にわたって一定のまま継続すると仮定して、未来における前記主軸フィードバック位置を予測する予測ステップと、前記予測ステップにて予測された未来における前記主軸フィードバック位置に対応する、前記従軸の位置である対応従属位置を演算する演算ステップと、前記従軸の位置をフィードバック制御する第2サーボ制御系の動特性モデルを用いて予測する、未来における前記従軸の予測位置が、前記演算ステップにて演算された前記対応従属位置に一致するように、前記第2サーボ制御系に対する現在における指令値である従軸指令値を生成する従軸指令ステップと、を含むことを特徴としている。
前記の方法によれば、前記制御方法は、未来における前記主軸フィードバック位置を、(1)前記主軸フィードバック位置の現在における加速度が所定期間にわたって一定のまま継続すると仮定して、または、(2)前記位置偏差の、現在における時間変化率が、所定期間にわたって一定のまま継続すると仮定して、予測する。
特に、前記制御方法は、前記第1サーボ制御系の動特性モデルを用いずに予測した前記主軸の未来のフィードバック位置から、前記主軸の未来のフィードバック位置に対応する、前記従軸の未来の位置である対応従属位置を演算する。そして、前記制御方法は、演算した前記対応従属位置を前記従軸の未来の指令値(指令位置)とする、前記第2サーボ制御系の動特性モデルを用いたモデル予測制御を、前記従軸の制御に適用する。つまり、前記制御方法は、未来における前記主軸フィードバック位置を予測し、予測した「未来における前記主軸フィードバック位置」に対応する「前記従軸の未来の指令値」を用いたモデル予測制御を、前記従軸の制御に適用する。
したがって、前記制御方法は、前記従軸の位置制御について追従性を向上させ、前記従軸の位置制御を高速化・高精度化することができるとの効果を奏する。例えば、前記制御方法は、前記制御方法によって制御する機械等の動作をより高速化させて、これらの機械を用いた生産現場の生産性の向上に寄与するとの効果を奏する。
本発明の一態様によれば、主軸位置に対して従軸位置を追従させる制御装置等において、前記主軸位置に対する前記従軸の位置制御の追従性を向上させることができるという効果を奏する。
本発明の実施形態1に係るコントローラ等の要部構成を示すブロック図である。 図1のコントローラが実行する処理の概要を示すフロー図である。 本発明の実施形態2に係るコントローラ等の要部構成を示すブロック図である。 図3のコントローラが実行する処理の概要を示すフロー図である。 本発明の実施形態3に係るコントローラ等の要部構成を示すブロック図である。 シミュレーション1において主軸の制御に印加する外乱を示す図である。 図6の外乱を印加した場合に、従来のコントローラおよび各実施形態に係るコントローラが実現する従軸制御について説明する図である。 シミュレーション2において主軸の制御に印加する外乱を示す図である。 図8の外乱を印加した場合に、従来のコントローラおよび各実施形態に係るコントローラが実現する従軸制御について説明する図である。
以下、本発明の一側面に係る実施の形態(以下、「本実施形態」とも表記する)を、図面に基づいて説明する。なお、図中同一または相当部分には同一符号を付してその説明は繰返さない。以下の各実施形態においては、機械および設備等の制御対象を制御するコントローラ100、500、および900の各々を、制御装置の典型例として説明を行う。コントローラ100、500、および900は各々、例えばPLC(プログラマブル・ロジック・コントローラ、Programmable Logic Controller)である。以下では、コントローラ100、500、および900について、各々の構成および各々の装置が実行する処理について、実施形態1、2、および3において説明し、その後、各々の装置が奏する効果について、図6から図9を用いて後述する。
〔実施形態1〕
先ず、コントローラ100の構成、および、コントローラ100が実行する処理について、以下、図1および図2を参照しながら説明していく。
§1.適用例
コントローラ100は、主軸の位置に対して、従軸の位置を追従させる制御を実行する制御装置である。コントローラ100は、従軸の制御について、モデル予測制御(Model Predictive Control、以下では「MPC」と略記する)を適用し、従軸の制御の追従性を向上させている。
ここで、従軸の制御にMPCを適用する場合、従軸の未来の指令値を予め取得できなければ、MPCを適用することによる十分な効果を期待できない。そこで、コントローラ100は、主軸の未来のフィードバック(Feed Back、以下「FB」と略記する)値を予測し、予測した主軸の未来のFB値に対応する、従軸の未来の指令値を演算し、つまり、予測した主軸の未来のFB値から従軸の未来の指令値を予測する。そして、コントローラ100は、予測した「従軸の未来の指令値」を用いるMPCを従軸の制御に適用することによって、従軸の制御の追従性を十分に向上させる。コントローラ100は、主軸に対する従軸の追従性を向上させることによって、コントローラ100によって制御する機械の動作をより高速化することができ、これらの機械を用いた生産現場の生産性の向上に寄与することができる。なお、以下の説明においては、コントローラ100を電子カム制御に適用する例を説明する。ただし、コントローラ100の適用例は、電子カム制御に限られるものではなく、「主軸の位置に対して、従軸の位置を追従させる制御」であればよい。以下、図1および図2を用いて、コントローラ100の詳細について説明していく。
§2.構成例
図1は、コントローラ100等の要部構成を示すブロック図である。以下、コントローラ100についての理解を容易にするため、先ず、コントローラ100を含む制御システム1の概要について説明する。
(制御システムの概要)
図1に例示する制御システム1は、上位コントローラであるコントローラ100と、コントローラ100により制御される主軸サーボ系200および従軸サーボ系300と、を含む。
主軸サーボ系200は、主軸サーボドライバ210と、主軸サーボドライバ210によって駆動を制御される機械240(例えば、モータおよびメカ)と、を含むフィードバック制御系である。同様に、従軸サーボ系300は、従軸サーボドライバ310と、従軸サーボドライバ310によって駆動を制御される機械330(例えば、モータおよびメカ)と、を含むフィードバック制御系である。コントローラ100と、主軸サーボドライバ210および従軸サーボドライバ310の各々とは通信可能に接続されており、その接続方式は、任意の有線接続方式または無線接続方式である。
主軸サーボ系200において、主軸サーボドライバ210は、コントローラ100から所定の制御周期(主軸側制御周期)ごとに受け付ける「主軸についての指令値」に従って、機械240の出力(つまり、主軸の位置)を制御するフィードバック制御装置である。機械240の出力は、主軸位置のFB値(以下、「FB位置(主軸)」とも称する)として、主軸サーボドライバ210およびコントローラ100の各々へ入力される。
主軸サーボドライバ210は、コントローラ100からの「主軸についての指令値(例、指令位置(主軸))」を目標値とし、実測値(例、FB位置(主軸))をフィードバック値として、機械240にフィードバック制御を行う。すなわち、主軸サーボドライバ210は、実測値が目標値に近づくように、機械240(特に、機械240が含むサーボモータ)を駆動するための電流を調整する。なお、主軸サーボドライバ210は、サーボモータアンプと称されることもある。
図1の主軸サーボドライバ210は、比例制御(P制御)を行う位置制御部220と、比例積分制御(PI制御)を行なう速度制御部230とを備え、コントローラ100から「主軸についての指令位置(以下、「指令位置(主軸)」とも称する)」を受信する。位置制御部220は、コントローラ100から受け付けた指令位置(主軸)と、エンコーダ等によって取得するFB位置(主軸)との偏差である位置偏差から、指令速度を出力する。速度制御部230は、位置制御部220が出力する指令速度と、FB位置(主軸)を微分して算出したFB速度(主軸)との偏差である速度偏差(主軸)から、指令トルク(主軸)を生成する。主軸サーボドライバ210は、生成した指令トルク(主軸)に基づいて、機械240を制御する。
従軸サーボ系300において、従軸サーボドライバ310は、コントローラ100から所定の制御周期(従軸側制御周期)ごとに受け付ける「従軸についての指令値」に従って、機械330の出力(つまり、従軸の位置)を制御するフィードバック制御装置である。機械330の出力は、従軸位置のFB値(以下、「FB位置(従軸)」とも称する)として、従軸サーボドライバ310およびコントローラ100の各々へ入力される。
従軸サーボドライバ310は、コントローラ100からの「従軸についての指令値(例、指令速度(従軸))」を目標値とし、実測値(例、FB位置(従軸)を時間微分したFB速度(従軸))をフィードバック値として、機械330にフィードバック制御を行う。すなわち、従軸サーボドライバ310は、実測値が目標値に近づくように、機械330(特に、機械330が含むサーボモータ)を駆動するための電流を調整する。なお、従軸サーボドライバ310は、サーボモータアンプと称されることもある。
図1の従軸サーボドライバ310は、比例積分制御(PI制御)を行なう速度制御部320を備え、コントローラ100から「従軸についての指令速度(以下、「指令速度(従軸)」とも称する)」を受信する。速度制御部320は、コントローラ100から受け付けた指令速度(従軸)と、エンコーダ等によって取得するFB位置(従軸)を微分して算出したFB速度(従軸)との偏差である速度偏差(従軸)から、指令トルク(従軸)を生成する。従軸サーボドライバ310は、生成した指令トルク(従軸)に基づいて、機械330を制御する。
コントローラ100(制御装置)は、主軸サーボ系200および従軸サーボ系300を含む制御システム1の全体を制御し、例えば、プログラマブルコントローラ(PLC、Programmable Logic Controller)である。
コントローラ100は、主軸サーボ系200および従軸サーボ系300に各々に指令値を出力して、主軸サーボ系200および従軸サーボ系300の各々を制御する。コントローラ100は、例えば、主軸側制御周期ごとに、主軸についての指令位置である「指令位置(主軸)」を主軸サーボ系200に出力して、主軸サーボ系200を制御する。
また、コントローラ100は、例えば、従軸側制御周期ごとに、従軸についての指令速度である「指令速度(従軸)」を従軸サーボ系300に出力して、従軸サーボ系300を制御する。コントローラ100は、従軸サーボ系300の動特性モデルを用いるMPCを、従軸サーボ系300の制御に適用する。
コントローラ100の主軸サーボ系200に対する制御周期(主軸側制御周期)と、コントローラ100の従軸サーボ系300に対する制御周期(従軸側制御周期)とは、同じであってもよいし、同じ時間でなくともよい。例えば、従軸側制御周期は主軸側制御周期よりも短くてもよく、つまり、従軸側制御周期は主軸側制御周期よりも速くてもよい。なお、主軸側制御周期の長さ(時間間隔)は、従軸側制御周期の長さ(時間間隔)の整数倍であるのが望ましい。なお、以下の説明においては、主軸側制御周期と従軸側制御周期とが同じ時間間隔である例について説明する。
コントローラ100は、主軸サーボ系200および従軸サーボ系300からFB値を取得して、主軸サーボ系200および従軸サーボ系300の制御に利用する。コントローラ100は、例えば、機械240の出力(つまり、主軸の位置)であるFB位置(主軸)を主軸サーボ系200から取得し、主軸サーボ系200および従軸サーボ系300の制御に利用する。また、コントローラ100は、例えば、機械330の出力(つまり、従軸の位置)であるFB位置(従軸)を従軸サーボ系300から取得し、従軸サーボ系300の制御に利用する。
ここで、コントローラ100は、従軸サーボ系300の制御に、従軸サーボ系300の動特性モデルを用いるMPCを適用する。具体的には、コントローラ100は、従軸サーボ系300の動特性モデルを用いて予測する未来のFB位置(従軸)が、「従軸の未来の指令値」に一致するよう、現在の指令速度(従軸)を生成する。特に、コントローラ100は、現在の制御周期および過去の制御周期の各々におけるFB位置(主軸)から、未来の制御周期におけるFB位置(主軸)を予測する。そして、コントローラ100は、予測した「未来の制御周期におけるFB位置(主軸)」に対応する「従軸の未来の指令値(=未来の制御周期における従軸の指令位置)」を用いて、従軸(=従軸サーボ系300)に対するMPCを実行する。
(コントローラの概要)
これまで、制御システム1の概要を説明してきた。次に、コントローラ100についての理解を容易にするため、コントローラ100の概要を以下のように整理しておく。
すなわち、コントローラ100は、主軸の過去と現在のFB値のみを用いて、主軸の未来のFB値を予測する。すなわち、コントローラ100は、主軸の現在および過去の周期におけるFB位置(主軸)を用いて、現在の周期のFB位置(主軸)の加速度が一定で継続すると仮定して、未来の周期におけるFB位置(主軸)を予測する。そして、コントローラ100は、予測した主軸の未来のFB値(つまり、未来の周期におけるFB位置(主軸))に対応する、従軸の未来の指令値(つまり、未来の周期における指令位置(従軸)。「対応従属位置」とも称する)を演算する。コントローラ100は、演算した対応従属位置(=未来の周期における指令位置(従軸))を入力として、従軸サーボ系300の動特性モデルを用いたMPCを従軸の制御に適用し、つまり、従軸サーボ系300についてMPCを実行する。
具体的には、コントローラ100は、主軸の位置に対して従軸の位置を追従させる制御装置であって、第1予測部120(予測部)と、カム演算部130(演算部)と、MPC部140(従軸指令部)と、を備えている。第1予測部120は、「主軸の位置をフィードバック制御する主軸サーボ系200(第1サーボ制御系)の、主軸のフィードバック位置であるFB位置(主軸)の現在における加速度が、所定期間にわたって一定のまま継続する」と仮定して、未来におけるFB位置(主軸)を予測する。カム演算部130は、第1予測部120により予測された「未来におけるFB位置(主軸)」に対応する「従軸の位置」である対応従属位置を演算する。MPC部140は、従軸の位置をフィードバック制御する従軸サーボ系300(第2サーボ制御系)の動特性モデルを用いて予測する「未来における従軸の予測位置」が、カム演算部130により演算された「未来における対応従属位置」に一致するように、従軸サーボ系300に対する現在における指令値である従軸指令値を生成する。
前記の構成によれば、コントローラ100は、「FB位置(主軸)の現在における加速度が、所定期間にわたって一定のまま継続する」と仮定して、未来におけるFB位置(主軸)を予測する。例えば、コントローラ100は、「現在のFB位置(主軸)」から算出する「現在のFB加速度(主軸)」が、所定期間にわたって一定のまま継続すると仮定して、未来におけるFB位置(主軸)を予測する。
特に、コントローラ100は、主軸サーボ系200の動特性モデルを用いずに予測した未来のFB位置(主軸)から、未来のFB位置(主軸)に対応する、従軸の未来の位置である対応従属位置を演算する。そして、コントローラ100は、演算した対応従属位置(未来の従軸の位置)を従軸の未来の指令値(指令位置)とする、従軸サーボ系300の動特性モデルを用いたMPCを、従軸の制御に適用する。つまり、コントローラ100は、未来におけるFB位置(主軸)を予測し、予測した「未来におけるFB位置(主軸)」に対応する「対応従属位置(従軸の未来の指令値、未来の周期における指令位置(従軸))」を用いたMPCを、従軸の制御に適用する。
したがって、コントローラ100は、従軸の位置制御について追従性を向上させ、従軸の位置制御を高速化・高精度化することができるとの効果を奏する。例えば、コントローラ100は、コントローラ100によって制御する機械等の動作をより高速化させて、これらの機械を用いた生産現場の生産性の向上に寄与するとの効果を奏する。
コントローラ100は、例えば、主軸の位置に対して従軸の位置を追従させる。コントローラ100において、第1予測部120は、「各周期(各主軸側制御周期)におけるFB位置(主軸)の加速度が、複数の周期(主軸側制御周期)にわたって一定である」と仮定して、現在および過去の各周期(各主軸側制御周期)におけるFB位置(主軸)を用いて、未来の周期(主軸側制御周期)におけるFB位置(主軸)を予測する。
前記の構成によれば、コントローラ100は、現在および過去の各周期(各主軸側制御周期)におけるFB位置(主軸)を用いて、未来の周期(主軸側制御周期)におけるFB位置(主軸)を予測する。
例えば、コントローラ100は、現在の周期(主軸側制御周期)におけるFB位置(主軸)と、現在から1周期前の周期(主軸側制御周期)におけるFB位置(主軸)との差を、周期(主軸側制御周期)の時間間隔である周期時間で除して、現在の周期(主軸側制御周期)における主軸サーボ系200のフィードバック速度(FB速度(主軸))を算出する。同様に、コントローラ100は、現在から1周期前の周期におけるFB位置(主軸)と、現在から2周期前の周期におけるFB位置(主軸)との差を、前記周期時間で除して、現在から1周期前の周期におけるFB速度(主軸)を算出する。
そして、コントローラ100は、現在の周期におけるFB速度(主軸)と、現在から1周期前の周期におけるFB速度(主軸)との差を、前記周期時間で除して、現在の周期における主軸サーボ系200のフィードバック加速度(FB加速度(主軸))を算出する。
コントローラ100は、算出した「現在の周期におけるFB加速度(主軸)」が未来の周期においても一定で継続すると仮定して、前記周期時間、「現在の周期におけるFB加速度(主軸)」、「現在の周期におけるFB速度(主軸)」、および、「現在の周期におけるFB位置(主軸)」から、未来の周期におけるFB位置(主軸)を予測する。
そして、コントローラ100は、予測した「未来の周期におけるFB位置(主軸)」に対応する、未来の周期における従軸の位置(つまり、指令位置(従軸))である対応従属位置を演算する。コントローラ100は、演算した対応従属位置を「未来の従軸の指令値(指令位置(従軸))」とする、従軸サーボ系300の動特性モデルを用いたMPCを、従軸の制御に適用する。つまり、コントローラ100は、従軸の制御に適用するMPCに、現在および過去のFB位置(主軸)を用いて予測した「未来のFB位置(主軸)」に対応する「未来の指令位置(従軸)(つまり、対応従属位置)」を用いる。
したがって、コントローラ100は、主軸の位置に対して従軸の位置を追従させる制御装置において、従軸の位置制御について追従性を向上させ、従軸の位置制御を高速化・高精度化することができるとの効果を奏する。
コントローラ100は、第1予測部120により予測された未来におけるFB位置(主軸)を監視する監視部150を備えている。前記の構成によれば、コントローラ100は、予測した未来におけるFB位置(主軸)を監視し、例えば、予測した未来における前記FB位置(主軸)の変動を検知する。したがって、コントローラ100は、予測した未来におけるFB位置(主軸)を監視し、例えばその変動を検知することによって、変動にみられる傾向性および急激な変動の発生等を把握することができるとの効果を奏する。
制御システム1(コントローラ100)において、例えば、主軸は電子カムの主軸であり、従軸は電子カムの従軸である。カム演算部130は、例えば、第1予測部120により予測された「未来における電子カムの主軸の位相」に対応する、「未来における電子カムの従軸の位置」を演算する。
前記の構成によれば、コントローラ100は、予測した未来における電子カムの主軸の位相に対応する、未来における電子カムの従軸の位置を演算する。
ここで、コントローラ100は、「電子カムの主軸のFB位相であるFB位置(主軸)の加速度が、所定期間にわたって一定のまま継続する」と仮定して、未来における電子カムの主軸のFB位置(FB位相)を予測する。つまり、コントローラ100は、電子カムの未来の主軸の位置を主軸サーボ系200の動特性モデルを用いずに予測する。そして、コントローラ100は、予測した「電子カムの未来の主軸の位置」に対応する、「電子カムの未来の従軸の位置(対応従属位置)」を演算する。コントローラ100は、演算した対応従属位置を用いて、電子カムの従軸の位置を制御する(具体的には、電子カムの従軸の位置制御に、MPCを適用する)。コントローラ100は、未来におけるFB位置(主軸)を予測し、予測した「未来におけるFB位置(主軸)」に対応する「電子カムの従軸の未来の指令値」を用いたMPCを、従軸の制御に適用する。
したがって、コントローラ100は、電子カムの主軸の位置(位相)に対して電子カムの従軸の位置を追従させる制御装置において、従軸の位置制御について追従性を向上させ、従軸の位置制御を高速化・高精度化することができるとの効果を奏する。
特に、コントローラ100は、主軸サーボ系200の動特性モデルを用いずに予測した電子カムの主軸の未来のフィードバック位置から、対応する「電子カムの従軸の未来の位置である、対応従属位置」を演算する。そして、コントローラ100は、演算した対応従属位置(未来における従軸の位置)を「従軸の未来の指令値(指令位置)」とする、従軸サーボ系300の動特性モデルを用いたMPCを、従軸の制御に適用する。したがって、コントローラ100は、電子カムの従軸の位置制御について、追従性を向上させ、従軸の位置制御を高速化・高精度化することができるとの効果を奏する。
これまでに概要を整理してきたコントローラ100について、次に、その構成等の詳細について、図1を用いて説明していく。
(コントローラの詳細)
図1に示すように、コントローラ100は、機能ブロックとして、指令値生成部110、第1予測部120、カム演算部130、MPC部140、および、監視部150を備えている。なお、記載の簡潔性を担保するため、本実施の形態に直接関係のない構成は、説明およびブロック図から省略している。ただし、実施の実情に則して、コントローラ100は、当該省略された構成を備えてもよい。図1に例示した各機能ブロックは、例えば、CPU(central processing unit)などが、ROM(read only memory)、NVRAM(non-Volatile random access memory)等で実現された記憶装置(記憶部160)に記憶されているプログラムを不図示のRAM(random access memory)等に読み出して実行することで実現できる。以下、コントローラ100における各機能ブロックについて説明する。
(記憶部以外の機能ブロックの詳細)
指令値生成部110は、外部(例えば、ユーザ)から、主軸の目標軌道データ(目標軌道)を受け付け(軌道生成)、受け付けた目標軌道データから制御周期(主軸側制御周期)ごとに指令値(具体的には、指令位置(主軸))を生成する。そして、指令値生成部110は、生成した指令位置(主軸)を、主軸側制御周期ごとに、主軸サーボ系200(具体的には、主軸サーボドライバ210)へと出力する。
第1予測部120は、主軸サーボ系200から、「主軸サーボ系200(特に、機械240)の出力である主軸の位置(=FB位置(主軸))」を、FB情報として、主軸側制御周期ごとに取得する。そして、第1予測部120は、主軸側制御周期ごとに取得したFB位置(主軸)から、「未来の主軸側制御周期におけるFB位置(主軸)」を主軸側制御周期ごとに予測する。
ここで、第1予測部120は、主軸の過去および現在のFB値のみを用いて、主軸の現周期のFB位置の加速度が一定で継続すると仮定して、主軸の未来のFB値を予測する。例えば、
Figure 0007014062000001
として、第1予測部120は、
Figure 0007014062000002
を実行する。
すなわち、第1予測部120は、現在の主軸側制御周期におけるFB位置(主軸)(上述の式におけるPV)と、現在から1周期前の主軸側制御周期におけるFB位置(主軸)(上述の式におけるPVn-1)との差を、主軸側制御周期の時間間隔である周期時間Tsで除して、現在の主軸側制御周期における主軸サーボ系200のフィードバック速度(PVv)を算出する。
また、第1予測部120は、現在から1周期前の主軸側制御周期におけるFB位置(主軸)(上述の式におけるPVn-1)と、現在から2周期前の主軸側制御周期におけるFB位置(主軸)(上述の式におけるPVn-2)との差を、周期時間Tsで除して、現在から1周期前の主軸側制御周期における主軸サーボ系200のフィードバック速度(PVvn-1)を算出する。
そして、第1予測部120は、主軸サーボ系200の、現在の主軸側制御周期におけるフィードバック速度PVvと、現在から1周期前の主軸側制御周期におけるフィードバック速度PVvn-1との差を、周期時間Tsで除して、現在の主軸側制御周期における主軸サーボ系200のフィードバック加速度(上述の式におけるPVa)を算出する。すなわち、「PVa=(PVv-PVvn-1)/Ts=(PV-2*PVn-1+PVn-2)/Ts」を算出する。
第1予測部120は、算出した「現在の周期における主軸サーボ系200のフィードバック加速度PVa」が未来の主軸側制御周期においても一定で継続すると仮定して、未来の周期におけるFB位置(主軸)を予測する。
すなわち、「未来の周期におけるFB位置(主軸)」は、具体的には、「i周期後の予測FB位置(主軸)(「i=1 to H」とする)」であるとして、第1予測部120は、「i周期後の予測FB位置(主軸)PVpr(i)」を、上述の式の通り、予測する。すなわち、第1予測部120は、周期時間Ts、「主軸サーボ系200の現在の周期におけるフィードバック加速度PVa」、「主軸サーボ系200の現在の周期におけるフィードバック速度PVv(上述の式におけるPVv)」、および、「主軸サーボ系200の現在の周期におけるFB位置(主軸)PV」から、「未来の周期におけるFB位置(主軸)PVpr(i)」を予測する。
第1予測部120は、予測した主軸側制御周期ごとの「未来の主軸側制御周期におけるFB位置(主軸)」を、カム演算部130に通知し、また、記憶部160の予測主軸位置テーブル161に格納する。
カム演算部130は、第1予測部120から通知された「未来の主軸側制御周期におけるFB位置(主軸)」に対応する、「未来の従軸制御周期における指令位置(従軸)」を演算する。なお、以下では、カム演算部130が「未来の主軸側制御周期におけるFB位置(主軸)」から演算する「未来の従軸制御周期における指令位置(従軸)」を、「対応従属位置」とも称する。
カム演算部130は、例えば、「主軸の位置に対して、従軸の位置を対応付けた配列」である主従関係情報(例えば、いわゆる「カムテーブル」)を用いて、対応従属位置を演算する。カム演算部130は、「主軸の位置に対して、従軸の位置を対応付けた演算式(例えば、いわゆる「カム演算式」)」を用いて、対応従属位置を演算してもよい。カム演算部130は、周知の技術を用いて、対応従属位置を演算できればよく、対応従属位置を演算する方法は、特に限定されない。
カム演算部130は、「未来の主軸側制御周期におけるFB位置(主軸)」から演算した、「未来の主軸側制御周期におけるFB位置(主軸)」に対応する「未来の従軸制御周期における指令位置(従軸)」を、つまり、「対応従属位置」を、MPC部140に通知する。
MPC部140は、従軸サーボ系300の動特性モデルを用いて、従軸サーボ系300についてMPC(モデル予測制御)を行なう。具体的には、MPC部140は、カム演算部130により演算された対応従属位置と、従軸サーボ系300から取得するFB位置(従軸)とを用いて、従軸サーボ系300の動特性モデルを用いたMPCによって、指令速度(従軸)を生成する。
先ず、MPC部140は、従軸サーボドライバ310および機械330のモデル(つまり、従軸サーボ系300の動特性モデル)を内部モデルとして有し、この内部モデルを用いて、「未来の周期(従軸側制御周期)におけるFB位置(従軸)」を予測する。例えば、MPC部140は、従軸サーボ系300の動特性モデルによって、「これまでに取得しているFB位置(従軸)」および「これまでに従軸サーボドライバ310へ出力している指令値(従軸)」を用いて、「未来の周期(従軸側制御周期)におけるFB位置(従軸)」を予測する。
そして、MPC部140は、予測した「未来の周期におけるFB位置(従軸)」が、カム演算部130により演算された対応従属位置に一致するように、従軸サーボ系300に対する現在の周期における指令値(例えば、指令速度(従軸))を生成する。MPC部140は、予測した「未来の周期におけるFB位置(従軸)」が、「未来の主軸側制御周期におけるFB位置(主軸)」に対応する「未来の従軸制御周期における指令位置(従軸)」に一致するよう、現在の従軸制御周期における指令速度(従軸)を生成する。MPC部140は、生成した「現在の従軸制御周期における指令速度(従軸)」を、現在の従軸制御周期において、従軸サーボ系300(具体的には、従軸サーボドライバ310)に出力する。
監視部150は、第1予測部120により予測された「未来の主軸側制御周期におけるFB位置(主軸)」を監視し、例えば、「未来の主軸側制御周期におけるFB位置(主軸)」に異常等が発生すると、コントローラ100の外部等に通知する。例えば、監視部150は、記憶部160の予測主軸位置テーブル161に格納されている複数周期分の「未来の主軸側制御周期におけるFB位置(主軸)」を監視し、「未来の主軸側制御周期におけるFB位置(主軸)」の経時変化を監視する。監視部150は、「未来の主軸側制御周期におけるFB位置(主軸)」の経時変化を監視することによって、「未来の主軸側制御周期におけるFB位置(主軸)」の変動を検知し、例えば、変動にみられる傾向性および急激な変動の発生等を把握することができる。そして、監視部150は、把握した「未来の主軸側制御周期におけるFB位置(主軸)」の変動の傾向性、および「未来の主軸側制御周期におけるFB位置(主軸)」の急激な変動の発生などについて、コントローラ100の内部の他のプログラム(機能ブロック)、または外部の装置に通知する。
(記憶部の詳細)
記憶部160は、コントローラ100が使用する各種データを格納する記憶装置である。なお、記憶部160は、コントローラ100が実行する(1)制御プログラム、(2)OSプログラム、(3)コントローラ100が有する各種機能を実行するためのアプリケーションプログラム、および、(4)該アプリケーションプログラムを実行するときに読み出す各種データを非一時的に記憶してもよい。上記の(1)~(4)のデータは、例えば、ROM(read only memory)、フラッシュメモリ、EPROM(Erasable Programmable ROM)、EEPROM(登録商標)(Electrically EPROM)、HDD(Hard Disc Drive)等の不揮発性記憶装置に記憶される。また、例えば、カム演算部130が「未来の主軸側制御周期におけるFB位置(主軸)」から「未来の従軸制御周期における指令位置(従軸)」を演算するのに用いる主従関係情報(例えば、カムテーブルまたはカム演算式)は記憶部160に格納されていてもよい。
コントローラ100は、図示しない一時記憶部を備えていてもよい。一時記憶部は、コントローラ100が実行する各種処理の過程で、演算に使用するデータおよび演算結果等を一時的に記憶するいわゆるワーキングメモリであり、RAM(Random Access Memory)などの揮発性記憶装置で構成される。
どのデータをどの記憶装置に記憶するのかについては、コントローラ100の使用目的、利便性、コスト、または、物理的な制約などから適宜決定される。記憶部160はさらに予測主軸位置テーブル161を格納している。
予測主軸位置テーブル161には、第1予測部120によって、第1予測部120が各主軸側制御周期において予測した、主軸側制御周期ごとの「未来の主軸側制御周期におけるFB位置(主軸)」が格納される。
§3.動作例
図2は、コントローラ100が実行する処理の全体概要を示すフロー図である。コントローラ100は先ず初期処理を実行し(S410)、例えば、起動後、通常動作(主軸サーボ系200および従軸サーボ系300の各々への制御処理)を開始する前の初期イニシャライズ(初期処理、例えば、通常動作に必要な各種の設定処理等)を実行する。
コントローラ100は、主軸サーボ系200および従軸サーボ系300の各々から、主軸および従軸の各々のFB値(つまり、FB位置(主軸)およびFB位置(従軸))を入力として受け付ける(S420)。そして、指令値生成部110は、主軸の目標軌道データから、主軸側制御周期ごとの主軸サーボドライバ210への指令値(例、指令位置(主軸))を計算する(S430)。
第1予測部120は、S420で受け付けたFB位置(主軸)から、主軸の未来FB値を、つまり、「未来の主軸側制御周期におけるFB位置(主軸)」を、予測する(S440)。そして、第1予測部120は、予測した「未来の主軸側制御周期におけるFB位置(主軸)」を、カム演算部130に通知する。
カム演算部130は、第1予測部120から通知された「未来の主軸側制御周期におけるFB位置(主軸)」に対応する、従軸の未来対応値(対応従属位置)を、つまり、「未来の従軸制御周期における指令位置(従軸)」を、計算する(S450)。カム演算部130は、「未来の主軸側制御周期におけるFB位置(主軸)」から計算した対応従属位置を、MPC部140に通知する。
MPC部140は、従軸サーボ系300の動特性モデルを用いて、従軸サーボドライバ310への指令値を計算し(S460)、つまり、従軸サーボ系300の動特性モデルを用いたMPCを従軸サーボ系300の制御に適用する。具体的には、MPC部140は、従軸サーボ系300の動特性モデルを用いて予測した「未来の周期(未来の従軸側制御周期)におけるFB位置(従軸)」が、S450で計算した対応従属位置に一致するように、指令速度(従軸)を生成する。
コントローラ100(具体的には、指令値生成部110およびMPC部140の各々)は、主軸側および従軸側のサーボドライバ(つまり、主軸サーボドライバ210および従軸サーボドライバ310)へ、指令値を出力する(S470)。すなわち、指令値生成部110は主軸サーボドライバ210に指令位置(主軸)を出力し、MPC部140は従軸サーボドライバ310に指令速度(従軸)を出力する。そして、コントローラ100は、制御が終了する(S480でYes)まで、S420からS470までの処理を、制御周期ごとに繰り返す。
これまでに図2を用いて説明してきた、コントローラ100の実行する制御方法は、以下のように整理することができる。すなわち、コントローラ100の実行する制御方法は、主軸の位置に対して従軸の位置を追従させる制御装置の制御方法であって、「主軸の位置をフィードバック制御する主軸サーボ系200の、主軸のフィードバック位置であるFB位置(主軸)の現在における加速度が、所定期間にわたって一定のまま継続する」と仮定して、未来におけるFB位置(主軸)を予測する予測ステップ(S440)と、予測ステップにて予測された「未来におけるFB位置(主軸)」に対応する、「未来における従軸の位置」である対応従属位置を演算する演算ステップ(S450)と、従軸の位置をフィードバック制御する従軸サーボ系300の動特性モデルを用いて予測する「未来における従軸の予測位置」が、演算ステップにて演算された「未来における対応従属位置」に一致するように、従軸サーボ系300に対する現在における指令値である従軸指令値を生成する従軸指令ステップ(S460)と、を含んでいる。
前記の方法によれば、前記制御方法は、「FB位置(主軸)の現在における加速度が、所定期間にわたって一定のまま継続する」と仮定して、未来における主軸のフィードバック位置であるFB位置(主軸)を予測する。
特に、前記制御方法は、主軸サーボ系200の動特性モデルを用いずに予測した未来のFB位置(主軸)から、未来のFB位置(主軸)に対応する、従軸の未来の位置である対応従属位置を演算する。そして、前記制御方法は、演算した対応従属位置(未来における従軸の位置)を従軸の未来の指令値(指令位置)とする、従軸サーボ系300の動特性モデルを用いたMPCを、従軸の制御に適用する。つまり、前記制御方法は、未来におけるFB位置(主軸)を予測し、予測した「未来におけるFB位置(主軸)」に対応する「対応従属位置(従軸の未来の指令値、未来の周期における指令位置(従軸))」を用いたMPCを、従軸の制御に適用する。
したがって、前記制御方法は、従軸の位置制御について追従性を向上させ、従軸の位置制御を高速化・高精度化することができるとの効果を奏する。例えば、前記制御方法は、前記制御方法によって制御する機械等の動作をより高速化させて、これらの機械を用いた生産現場の生産性の向上に寄与するとの効果を奏する。
〔実施形態2〕
本発明の実施形態2について、図3および図4に基づいて説明すれば、以下のとおりである。なお、説明の便宜上、前記実施形態にて説明した部材と同じ機能を有する部材については、同じ符号を付記し、その説明を省略する。先ず、実施形態2に係るコントローラ500に係る理解を容易にするため、コントローラ500について、実施形態1で説明したコントローラ100との違いを説明する。
(実施形態1との違い)
コントローラ100は、主軸の未来のFB値の予測に「主軸の現在および過去のFB値」を利用していた。これに対して、本実施形態に係るコントローラ500は、「主軸の現在および過去のFB値」に加えてさらに、「主軸の未来の指令値」を用いて、主軸の未来のFB値を予測する。
ここで、「主軸の未来の指令値」を用いて主軸の未来のFB値を予測するコントローラ500には、主軸の制御について、高い指令追従性が求められる。つまり、「主軸の未来の指令値」を用いた「主軸の未来のFB値」の予測は、主軸制御における指令値への高い追従性を前提としている。具体的には、主軸制御において指令値への追従性が低い場合、主軸の制御偏差の変化が指令値の変化に対して非常に緩慢になり、制御偏差の変化と指令値の変化とを組み合わせても、主軸の未来のFB値の予測精度が低くなってしまう。そのため、「主軸の未来の指令値」を用いて「主軸の未来のFB値」を予測する場合、主軸制御の指令値への追従性は、相当程度高いことが求められる。
そこで、コントローラ500は、主軸の制御にMPCを適用することにより、主軸制御における指令値への高追従性を実現し、また、「主軸の未来の指令値」を用いた、高精度の「主軸の未来のFB値」の予測を実現している。
コントローラ500は、コントローラ100と同じように、主軸に対する従軸の追従性を向上させることによって、コントローラ500によって制御する機械の動作をより高速化することができ、これらの機械を用いた生産現場の生産性の向上に寄与する。なお、以下の説明においては、実施形態1のコントローラ100と同様に、コントローラ500を電子カム制御に適用する例を説明する。ただし、コントローラ500の適用例は、電子カム制御に限られるものではなく、「主軸の位置に対して、従軸の位置を追従させる制御」であればよい。以下、図3および図4を用いて、コントローラ500の詳細について説明していく。
(制御システムの概要)
図3は、コントローラ500等の要部構成を示すブロック図である。以下、コントローラ500についての理解を容易にするため、先ず、コントローラ500を含む制御システム2の概要について説明する。
図3に例示する制御システム2は、上位コントローラであるコントローラ500と、コントローラ500により制御される主軸サーボ系600および従軸サーボ系700と、を含む。主軸サーボ系600は、主軸サーボドライバ610と、主軸サーボドライバ610によって駆動を制御される機械630(例えば、モータおよびメカ)と、を含むフィードバック制御系である。同様に、従軸サーボ系700は、従軸サーボドライバ710と、従軸サーボドライバ710によって駆動を制御される機械730(例えば、モータおよびメカ)と、を含むフィードバック制御系である。コントローラ500と、主軸サーボドライバ610および従軸サーボドライバ710の各々とは通信可能に接続されており、その接続方式は、任意の有線接続方式または無線接続方式である。
主軸サーボ系600において、主軸サーボドライバ610は、コントローラ500から所定の制御周期(主軸側制御周期)ごとに受け付ける「主軸についての指令値」に従って、機械630の出力(つまり、主軸の位置)を制御するフィードバック制御装置である。機械630の出力は、主軸位置のFB値(以下、「FB位置(主軸)」とも称する)として、主軸サーボドライバ610およびコントローラ500の各々へ入力される。
主軸サーボドライバ610は、コントローラ500からの「主軸についての指令値(指令主軸値。例えば、指令速度(主軸))」を目標値とし、実測値(例、FB位置(主軸)を時間微分したFB速度(主軸))をフィードバック値として、機械630にフィードバック制御を行う。すなわち、主軸サーボドライバ610は、実測値が目標値に近づくように、機械630(特に、機械630が含むサーボモータ)を駆動するための電流を調整する。なお、主軸サーボドライバ610は、サーボモータアンプと称されることもある。
図3の主軸サーボドライバ610は、比例積分制御(PI制御)を行なう速度制御部620を備え、コントローラ500から「主軸についての指令速度(以下、「指令速度(主軸)」とも称する)」を受信する。速度制御部620は、コントローラ500から受け付けた指令速度(主軸)と、FB位置(主軸)を微分して算出したFB速度(主軸)との偏差である速度偏差(主軸)から、指令トルク(主軸)を生成する。主軸サーボドライバ610は、生成した指令トルク(主軸)に基づいて、機械630を制御する。
従軸サーボ系700において、従軸サーボドライバ710は、コントローラ500から所定の制御周期(従軸側制御周期)ごとに受け付ける「従軸についての指令値」に従って、機械730の出力(つまり、従軸の位置)を制御するフィードバック制御装置である。機械730の出力は、従軸位置のFB値(以下、「FB位置(従軸)」とも称する)として、従軸サーボドライバ710およびコントローラ500の各々へ入力される。
従軸サーボドライバ710は、コントローラ500からの「従軸についての指令値(例、指令速度(従軸))」を目標値とし、実測値(例、FB位置(従軸)を時間微分したFB速度(従軸))をフィードバック値として、機械730にフィードバック制御を行う。すなわち、従軸サーボドライバ710は、実測値が目標値に近づくように、機械730(特に、機械730が含むサーボモータ)を駆動するための電流を調整する。なお、従軸サーボドライバ710は、サーボモータアンプと称されることもある。
図3の従軸サーボドライバ710は、比例積分制御(PI制御)を行なう速度制御部720を備え、コントローラ500から「従軸についての指令速度(以下、「指令速度(従軸)」とも称する)」を受信する。速度制御部720は、コントローラ500から受け付けた指令速度(従軸)と、エンコーダ等によって取得するFB位置(従軸)を微分して算出したFB速度(従軸)との偏差である速度偏差(従軸)から、指令トルク(従軸)を生成する。従軸サーボドライバ710は、生成した指令トルク(従軸)に基づいて、機械730を制御する。
コントローラ500(制御装置)は、主軸サーボ系600および従軸サーボ系700を含む制御システム2の全体を制御し、例えば、プログラマブルコントローラ(PLC、Programmable Logic Controller)である。
コントローラ500は、主軸サーボ系600および従軸サーボ系700に各々に指令値を出力して、主軸サーボ系600および従軸サーボ系700の各々を制御する。コントローラ500は、例えば、主軸側制御周期ごとに、主軸についての指令速度である「指令速度(主軸)」を主軸サーボ系600に出力して、主軸サーボ系600を制御する。コントローラ500は、主軸サーボ系600の動特性モデルを用いるMPCを、主軸サーボ系600の制御に適用する。
また、コントローラ500は、例えば、従軸側制御周期ごとに、従軸についての指令速度である「指令速度(従軸)」を従軸サーボ系700に出力して、従軸サーボ系700を制御する。コントローラ500は、従軸サーボ系700の動特性モデルを用いるMPCを、従軸サーボ系700の制御に適用する。
コントローラ500の主軸サーボ系600に対する制御周期(主軸側制御周期)と、コントローラ500の従軸サーボ系700に対する制御周期(従軸側制御周期)とは、同じであってもよいし、同じ時間でなくともよい。例えば、従軸側制御周期は主軸側制御周期よりも短くてもよく、つまり、従軸側制御周期は主軸側制御周期よりも速くてもよい。
コントローラ500は、主軸サーボ系600および従軸サーボ系700からFB値を取得して、主軸サーボ系600および従軸サーボ系700の制御に利用する。コントローラ500は、例えば、機械630の出力(つまり、主軸の位置)であるFB位置(主軸)を主軸サーボ系600から取得し、主軸サーボ系600および従軸サーボ系700の制御に利用する。また、コントローラ500は、例えば、機械730の出力(つまり、従軸の位置)であるFB位置(従軸)を従軸サーボ系700から取得し、従軸サーボ系700の制御に利用する。
(コントローラの概要)
これまで、制御システム2の概要を説明してきた。次に、コントローラ500についての理解を容易にするため、コントローラ500の概要を以下のように整理しておく。
すなわち、コントローラ500は、主軸の過去および現在の各々の主軸側制御周期における「FB値および指令値」、さらに、未来の主軸側制御周期における指令値を用いて、未来の主軸側制御周期におけるFB値を予測する。つまり、コントローラ500は、主軸の過去および現在の各々の主軸側制御周期における「FB位置(主軸)および指令位置(主軸)」と、未来の主軸側制御周期における指令位置(主軸)とを用いて、未来の主軸側制御周期におけるFB位置(主軸)を予測する。
ここで、コントローラ500は、「主軸の現在の主軸側制御周期における位置偏差(FB位置(主軸)と指令位置(主軸)との偏差)の、時間に対する変化率が一定で継続する」と仮定して、「主軸の未来の主軸側制御周期における位置偏差」を算出する。
具体的には、コントローラ500は、「現在の主軸側制御周期における位置偏差の、時間に対する変化率が、未来においても一定で継続する」と仮定して、以下の処理を実行する。すなわち、コントローラ500は、現在および過去の各々の主軸側制御周期における位置偏差を、現在および過去の各々の主軸側制御周期における「FB位置(主軸)および指令位置(主軸)」を用いて算出する。そして、コントローラ500は、算出した「現在および過去の各々の主軸側制御周期における位置偏差」から、現在の主軸側制御周期における位置偏差変化率を演算する。
コントローラ500は、「現在の主軸側制御周期における位置偏差変化率」が一定で継続すると仮定して、「未来の主軸側制御周期における位置偏差」を算出する。すなわち、コントローラ500は、前記仮定の下で、主軸側制御周期に対応する時間間隔(周期時間)と、「現在の主軸側制御周期における、位置偏差および位置偏差変化率」とから、「未来の主軸側制御周期における位置偏差」を算出する。
そして、コントローラ500は、算出した「未来の主軸側制御周期における位置偏差」と、「未来の主軸側制御周期における指令位置(主軸)」とから、「未来の主軸側制御周期におけるFB位置(主軸)」を、つまり、主軸の未来のFB値を、予測する。
コントローラ500は、予測した主軸の未来のFB値(つまり、未来の周期におけるFB位置(主軸))に対応する、従軸の未来の指令値(つまり、未来の周期における指令位置(従軸)。つまり、対応従属位置)を演算する。コントローラ500は、演算した対応従属位置(=未来の周期における指令位置(従軸))を入力として、従軸サーボ系700の動特性モデルを用いたMPCを従軸の制御に適用し、つまり、従軸サーボ系700についてMPCを実行する。また、コントローラ500は、主軸サーボ系600の動特性モデルを用いたMPCを、主軸の制御に適用し、つまり、主軸サーボ系600についてMPCを実行する。
具体的には、コントローラ500は、主軸の位置に対して従軸の位置を追従させる制御装置であって、第2予測部530(予測部)と、カム演算部540(演算部)と、第2MPC部550(従軸指令部)と、を備えている。第2予測部530は、「主軸の目標軌道から生成される指令位置である指令位置(主軸)(つまり、主軸指令位置)と、FB位置(主軸)(つまり、主軸フィードバック位置)との偏差である位置偏差(「位置偏差(主軸)」とも称する)」の、現在における時間変化率が、所定期間にわたって一定のまま継続すると仮定して、未来におけるFB位置(主軸)を予測する。カム演算部540は、第2予測部530により予測された「未来におけるFB位置(主軸)」に対応する、「未来における従軸の位置」である対応従属位置を演算する。第2MPC部550は、従軸の位置をフィードバック制御する従軸サーボ系700の動特性モデルを用いて予測する「未来における従軸の予測位置」が、カム演算部540により演算された「未来における対応従属位置」に一致するように、従軸サーボ系700に対する現在における指令値である従軸指令値を生成する。
前記の構成によれば、コントローラ500は、「位置偏差(主軸)の、現在における時間変化率が、所定期間にわたって一定のまま継続する」と仮定して、未来におけるFB位置(主軸)を予測する。
特に、コントローラ500は、主軸サーボ系600の動特性モデルを用いずに予測した「未来のFB位置(主軸)」から、「未来のFB位置(主軸)」に対応する、「従軸の未来の位置」である対応従属位置を演算する。そして、コントローラ500は、演算した「対応従属位置(未来における従軸の位置)」を「従軸の未来の指令値(指令位置)」とする、従軸サーボ系700の動特性モデルを用いたMPCを、従軸の制御に適用する。つまり、コントローラ500は、未来におけるFB位置(主軸)を予測し、予測した「未来におけるFB位置(主軸)」に対応する「対応従属位置(従軸の未来の指令値、未来の周期における指令位置(従軸))」を用いたMPCを、従軸の制御に適用する。
したがって、コントローラ500は、従軸の位置制御について追従性を向上させ、従軸の位置制御を高速化・高精度化することができるとの効果を奏する。例えば、コントローラ500は、コントローラ500によって制御する機械等の動作をより高速化させて、これらの機械を用いた生産現場の生産性の向上に寄与するとの効果を奏する。
コントローラ500は、例えば、主軸の位置に対して従軸の位置を追従させる。コントローラ500において、第2予測部530は、「各周期(各主軸側制御周期)における指令位置(主軸)とFB位置(主軸)との偏差である位置偏差(つまり、位置偏差(主軸))の、時間に対する変化率が、複数の周期にわたって一定である」と仮定して、「現在および過去の各周期(各主軸側制御周期)におけるFB位置(主軸)」と、「過去、現在、および、未来の各周期(各主軸側制御周期)における指令位置(主軸)」と、を用いて、未来の周期(主軸側制御周期)におけるFB位置(主軸)を予測する。
前記の構成によれば、コントローラ500は、「現在および過去の各周期(各主軸側制御周期)におけるFB位置(主軸)」と、「過去、現在、および、未来の各周期(各主軸側制御周期)における指令位置(主軸)」と、を用いて、未来の周期(主軸側制御周期)におけるFB位置(主軸)を予測する。
例えば、コントローラ500は、現在の周期(主軸側制御周期)における指令位置(主軸)とFB位置(主軸)との差から、現在の周期(主軸側制御周期)における位置偏差(主軸)を算出する。また、コントローラ500は、現在から1周期前の周期(主軸側制御周期)における指令位置(主軸)とFB位置(主軸)との差から、現在から1周期前の周期(主軸側制御周期)における位置偏差(主軸)を算出する。
そして、コントローラ500は、現在の周期(主軸側制御周期)における位置偏差(主軸)と、現在から1周期前の周期(主軸側制御周期)における位置偏差(主軸)との差を、前記周期(主軸側制御周期)の時間間隔である周期時間で除して、「現在の周期(主軸側制御周期)における位置偏差(主軸)の、時間に対する変化(率)」を示す、「現在の周期(主軸側制御周期)における位置偏差変化率」を算出する。
コントローラ500は、算出した「現在の周期(主軸側制御周期)における位置偏差変化率」が未来の周期(主軸側制御周期)においても一定で継続すると仮定して、前記周期時間、「現在の周期(主軸側制御周期)における位置偏差変化率」、および、「現在の周期(主軸側制御周期)における位置偏差(主軸)」から、「未来の周期(主軸側制御周期)における位置偏差(主軸)」を算出する。
そして、コントローラ500は、「未来の周期(主軸側制御周期)における指令位置(主軸)」と、算出した「未来の周期(主軸側制御周期)における位置偏差(主軸)」との差から、「未来の周期(主軸側制御周期)におけるFB位置(主軸)」を予測する。
コントローラ500は、予測した「未来の周期におけるFB位置(主軸)」に対応する、未来の周期における従軸の位置(つまり、指令位置(従軸))である対応従属位置を演算する。コントローラ500は、演算した対応従属位置を「未来の従軸の指令値(指令位置(従軸))」とする、従軸サーボ系700の動特性モデルを用いたMPCを、従軸の制御に適用する。つまり、コントローラ500は、従軸の制御に適用するMPCに、「現在および過去のFB位置(主軸)」と、「過去、現在、および、未来の指令位置(主軸)」とを用いて予測した「未来のFB位置(主軸)」に対応する「未来の指令位置(従軸)(つまり、対応従属位置)」を用いる。
したがって、コントローラ500は、主軸の位置に対して従軸の位置を追従させる制御装置において、従軸の位置制御について追従性を向上させ、従軸の位置制御を高速化・高精度化することができるとの効果を奏する。
コントローラ500は、主軸サーボ系600の動特性モデルを用いて予測する「未来における主軸の予測位置」が、未来における指令位置(主軸)に一致するように、主軸サーボ系600に対する現在における指令値(指令主軸値。「指令速度(主軸)」とも称する)を生成する第1MPC部520(主軸指令部)を備えている。
前記の構成によれば、コントローラ500は、主軸サーボ系600の動特性モデルを用いて予測する「未来における主軸の予測位置」が、未来における指令位置(主軸)に一致するように、主軸サーボ系600に対する現在における指令値(指令速度(主軸))を生成する。
したがって、コントローラ500は、主軸サーボ系600の動特性モデルを用いたMPCを主軸の位置の制御に適用することによって、主軸の位置制御について、追従性を向上させることができるとの効果を奏する。
特に、「未来における指令位置(主軸)」を用いて「未来におけるFB位置(主軸)」を予測する場合、主軸の位置の制御には、高い追従性が求められる。そこで、コントローラ500は、主軸サーボ系600の動特性モデルを用いたMPCを主軸の位置の制御に適用することによって、主軸の位置制御について、追従性を向上させている。
したがって、コントローラ500は、MPCによって主軸の位置制御の追従性を向上させ、かつ、未来における指令位置(主軸)を用いて予測した未来におけるFB位置(主軸)を用いて、従軸の位置制御の追従性を向上させることができるとの効果を奏する。
制御システム2(コントローラ500)において、例えば、主軸は電子カムの主軸であり、従軸は前記電子カムの従軸である。カム演算部540は、例えば、第2予測部530により予測された「未来における電子カムの主軸の位相(位置)」に対応する、「未来における電子カムの従軸の位置」を演算する。
前記の構成によれば、コントローラ500は、予測した「未来における電子カムの主軸の位相」に対応する、「未来における電子カムの従軸の位置」を演算する。
ここで、コントローラ500は、「電子カムの主軸の目標軌道から生成される指令位置である指令位置(主軸)とFB位置(主軸)との偏差である位置偏差(主軸)の、現在における時間変化率が、所定期間にわたって一定のまま継続する」と仮定して、未来における電子カムの主軸のフィードバック位置(フィードバック位相)を予測する。
つまり、コントローラ500は、電子カムの未来の主軸の位置を主軸サーボ系600の動特性モデルを用いずに予測する。そして、コントローラ500は、予測した「電子カムの未来の主軸の位置」に対応する、「電子カムの未来の従軸の位置(対応従属位置)」を演算する。コントローラ500は、演算した対応従属位置を用いて、電子カムの従軸の位置を制御する(具体的には、電子カムの従軸の位置制御に、MPCを適用する)。コントローラ500は、未来におけるFB位置(主軸)を予測し、予測した「未来におけるFB位置(主軸)」に対応する「電子カムの従軸の未来の指令値」を用いたMPCを、従軸の制御に適用する。
したがって、コントローラ500は、電子カムの主軸の位置(位相)に対して電子カムの従軸の位置を追従させる制御装置において、従軸の位置制御について追従性を向上させ、従軸の位置制御を高速化・高精度化することができるとの効果を奏する。
特に、コントローラ500は、主軸サーボ系600の動特性モデルを用いずに予測した「電子カムの主軸の未来のフィードバック位置」から、対応する「電子カムの従軸の未来の位置である、対応従属位置」を演算する。そして、コントローラ500は、演算した「対応従属位置(未来における従軸の位置)」を「従軸の未来の指令値(指令位置)」とする、従軸サーボ系700の動特性モデルを用いたMPCを、従軸の制御に適用する。したがって、コントローラ500は、電子カムの従軸の位置制御について、追従性を向上させ、従軸の位置制御を高速化・高精度化することができるとの効果を奏する。
これまでに概要を整理してきたコントローラ500について、次に、その構成等の詳細について、図3を用いて説明していく。
(コントローラの詳細)
図3に示すように、コントローラ500は、機能ブロックとして、指令値生成部510、第1MPC部520、第2予測部530、カム演算部540、第2MPC部550、および、監視部560を備えている。なお、記載の簡潔性を担保するため、本実施の形態に直接関係のない構成は、説明およびブロック図から省略している。ただし、実施の実情に則して、コントローラ500は、当該省略された構成を備えてもよい。図3に例示した各機能ブロックは、例えば、CPU(central processing unit)などが、ROM(read only memory)、NVRAM(non-Volatile random access memory)等で実現された記憶装置(記憶部570)に記憶されているプログラムを不図示のRAM(random access memory)等に読み出して実行することで実現できる。以下、コントローラ500における各機能ブロックについて説明する。
(記憶部以外の機能ブロックの詳細)
指令値生成部510は、指令値生成部110と同様であり、外部から、主軸の目標軌道データを受け付け、受け付けた目標軌道データから主軸側制御周期ごとに指令値(具体的には、指令位置(主軸))を生成する。そして、指令値生成部510は、生成した指令位置(主軸)を、第1MPC部520および第2予測部530へと出力する。
第1MPC部520は、主軸サーボ系600の制御に、主軸サーボ系600の動特性モデルを用いるMPCを適用する。具体的には、第1MPC部520は、主軸サーボ系600の動特性モデル(主軸サーボドライバ610および機械630の動特性モデル)を用いて、主軸サーボ系600についてMPC(モデル予測制御)を行なう。具体的には、第1MPC部520は、指令値生成部510により生成された指令位置(主軸)と、主軸サーボ系600から取得するFB位置(主軸)とを用いて、主軸サーボ系600の動特性モデルを用いたMPCによって、指令速度(主軸)を生成する。
先ず、第1MPC部520は、主軸サーボドライバ610および機械630のモデル(つまり、主軸サーボ系600の動特性モデル)を内部モデルとして有し、この内部モデルを用いて、「未来の周期(主軸側制御周期)におけるFB位置(主軸)」を予測する。例えば、第1MPC部520は、主軸サーボ系600の動特性モデルによって、これまでに取得しているFB位置(主軸)を用いて、「未来の主軸側制御周期におけるFB位置(主軸)」を予測する。
そして、第1MPC部520は、予測した「未来の周期におけるFB位置(主軸)」が、指令値生成部510により生成された指令位置(主軸)に一致するように、主軸サーボ系600に対する現在の周期における指令値(例えば、指令速度(主軸))を生成する。第1MPC部520は、予測した「未来の周期におけるFB位置(主軸)」が、主軸の目標軌道データから生成された指令位置(主軸)に一致するよう、現在の主軸制御周期における指令速度(主軸)を生成する。第1MPC部520は、生成した「現在の主軸制御周期における指令速度(主軸)」を、現在の主軸制御周期において、主軸サーボ系600(具体的には、主軸サーボドライバ610)に出力する。
なお、主軸サーボ系600の動特性モデルを用いたMPCを主軸サーボ系600の制御に適用する第1MPC部520は、主軸サーボ系600の制御について動摩擦補償も適用するものとする。これまでに説明したMPC部140、および以下に説明する第2MPC部550についても、各々、従軸サーボ系300および従軸サーボ系700の各々に対する制御について動摩擦補償を適用してもよい。
例えば、第1MPC部520は、主軸サーボ系600の制御について、指令速度(主軸)を主軸サーボドライバ610に出力することにより、主軸サーボドライバ610の高速な(つまり、主軸側制御周期よりも高速な)演算ループによる摩擦補償を利用する。これに対して、実施形態1のコントローラ100における指令値生成部110は、主軸サーボ系200の制御にMPCも動摩擦補償も適用していない。なお、動摩擦補償は上述のようにサーボドライバ側で実行するだけでなく、コントローラ側で、つまり、コントローラ100およびコントローラ500側で実行してもよい。
第2予測部530は、主軸サーボ系600から、「主軸サーボ系600(特に、機械630)の出力である主軸の位置(=FB位置(主軸))」を、FB情報として、主軸側制御周期ごとに取得する。また、第2予測部530は、指令値生成部510から、指令値生成部510が目標軌道データから主軸側制御周期ごとに生成する指令値(具体的には、指令位置(主軸))を、特に、過去、現在、および、未来の主軸側制御周期の各々における指令値を取得する。
ここで、第2予測部530は、主軸(=主軸サーボ系600)への未来の指令値と、主軸の過去および現在の各々における制御偏差(例えば、指令位置(主軸)とFB位置(主軸)との位置偏差)を用いて、主軸の未来のFB値を予測する。具体的には、第2予測部530は、主軸の過去および現在のFB値と、過去、現在、および、未来の主軸(=主軸サーボ系600)への指令値を用いて、位置偏差変化率が複数の主軸側制御周期にわたって一定で継続すると仮定して、主軸の未来のFB値を予測する。例えば、
Figure 0007014062000003
として、第2予測部530は、
Figure 0007014062000004
を実行する。
すなわち、第2予測部530は、「現在の主軸側制御周期における主軸指令位置(上述の式におけるSP)」と「現在の主軸側制御周期におけるFB位置(主軸)(上述の式におけるPV)」との差から、「現在の主軸側制御周期における位置偏差(ER)」を算出する。
また、第2予測部530は、「現在から1周期前の主軸側制御周期における主軸指令位置(上述の式におけるSPn-1)」と「現在から1周期前の主軸側制御周期におけるFB位置(主軸)(上述の式におけるPVn-1)」との差から、「現在から1周期前の主軸側制御周期における位置偏差(ERn-1)」を算出する。
そして、第2予測部530は、「現在の主軸側制御周期における位置偏差(ER)」と、「現在から1周期前の主軸側制御周期における位置偏差(ERn-1)」との差を、主軸側制御周期の時間間隔である周期時間Tsで除して、「現在の主軸側制御周期における、位置偏差の時間に対する変化(率)」を示す、「現在の主軸側制御周期における位置偏差変化率(上述の式におけるERd)」を算出する。
第2予測部530は、算出した「現在の主軸側制御周期における位置偏差変化率ERd」が、未来の主軸側制御周期においても一定で継続すると仮定して、「未来の主軸側制御周期における位置偏差(ER)」を算出する。
具体的には、「未来の主軸側制御周期における位置偏差(ER)」が、「i周期後の位置偏差(「i=1 to H」とする)」であるとして、第2予測部530は、「i周期後の位置偏差(ER)」を、上述の式の通り予測する。すなわち、第2予測部530は、周期時間Ts、「現在の主軸側制御周期における位置偏差変化率(ERd)」、および、「現在の主軸側制御周期における位置偏差(ER)」から、「ER=ER+ERd*Ts*i」を演算する。
そして、第2予測部530は、「i周期後の主軸側制御周期における主軸指令位置(上述の式におけるSP)」と、演算した「i周期後の位置偏差(ER)」との差から、「i周期後の主軸側制御周期におけるFB位置(主軸)(上述の式におけるPVpr(i))」を予測する。
第2予測部530は、予測した主軸側制御周期ごとの「未来の主軸側制御周期におけるFB位置(主軸)」を、カム演算部540に通知し、また、記憶部570の予測主軸位置テーブル571に格納する。
カム演算部540は、第2予測部530から通知された「未来の主軸側制御周期におけるFB位置(主軸)」に対応する、「未来の従軸制御周期における指令位置(従軸)」を演算する。なお、以下では、カム演算部540が「未来の主軸側制御周期におけるFB位置(主軸)」から演算する「未来の従軸制御周期における指令位置(従軸)」を、「対応従属位置」とも称する。
カム演算部540は、例えば、「主軸の位置に対して、従軸の位置を対応付けた配列」である主従関係情報(例えば、いわゆる「カムテーブル」)を用いて、対応従属位置を演算する。カム演算部540は、「主軸の位置に対して、従軸の位置を対応付けた演算式(例えば、いわゆる「カム演算式」)」を用いて、対応従属位置を演算してもよい。カム演算部540は、周知の技術を用いて、対応従属位置を演算できればよく、対応従属位置を演算する方法は、特に限定されない。
カム演算部540は、「未来の主軸側制御周期におけるFB位置(主軸)」から演算した、「未来の主軸側制御周期におけるFB位置(主軸)」に対応する「未来の従軸制御周期における指令位置(従軸)」を、第2MPC部550に通知する。
第2MPC部550は、従軸サーボ系700の動特性モデルを用いて、従軸サーボ系700についてMPC(モデル予測制御)を行なう。具体的には、第2MPC部550は、カム演算部540により演算された対応従属位置と、従軸サーボ系700から取得するFB位置(従軸)とを用いて、従軸サーボ系700の動特性モデルを用いたMPCによって、指令速度(従軸)を生成する。
先ず、第2MPC部550は、従軸サーボドライバ710および機械730のモデル(つまり、従軸サーボ系700の動特性モデル)を内部モデルとして有し、この内部モデルを用いて、「未来の周期(従軸側制御周期)におけるFB位置(従軸)」を予測する。例えば、第2MPC部550は、従軸サーボ系700の動特性モデルによって、「これまでに取得しているFB位置(従軸)」および「これまでに従軸サーボドライバ710へ出力している指令値(従軸)」を用いて、「未来の従軸側制御周期におけるFB位置(従軸)」を予測する。
そして、第2MPC部550は、予測した「未来の周期におけるFB位置(従軸)」が、カム演算部540により演算された対応従属位置に一致するように、従軸サーボ系700に対する現在の周期における指令値(例えば、指令速度(従軸))を生成する。第2MPC部550は、予測した「未来の周期におけるFB位置(従軸)」が、「未来の主軸側制御周期におけるFB位置(主軸)」に対応する「未来の従軸制御周期における指令位置(従軸)」に一致するよう、現在の従軸制御周期における指令速度(従軸)を生成する。第2MPC部550は、生成した「現在の従軸制御周期における指令速度(従軸)」を、現在の従軸制御周期において、従軸サーボ系700(具体的には、従軸サーボドライバ710)に出力する。
監視部560は、監視部150と同様であるため、詳細は略記する。また、記憶部570、および、記憶部570に格納されている予測主軸位置テーブル571は、各々、記憶部160、および記憶部160に格納されている予測主軸位置テーブル161と同様であるため、詳細は略記する。すなわち、予測主軸位置テーブル571には、第2予測部530によって、第2予測部530が各主軸側制御周期において予測した、主軸側制御周期ごとの「未来の主軸側制御周期におけるFB位置(主軸)」が格納される。また、監視部560は、第2予測部530により予測された「未来の主軸側制御周期におけるFB位置(主軸)」を監視し、例えば、予測主軸位置テーブル571に格納されている複数周期分の「未来の主軸側制御周期におけるFB位置(主軸)」を監視する。監視部560は、「未来の主軸側制御周期におけるFB位置(主軸)」の経時変化を監視することによって、「未来の主軸側制御周期におけるFB位置(主軸)」の変動を検知し、例えば、変動にみられる傾向性および急激な変動の発生等を把握する。
(コントローラが実行する処理について)
図4は、コントローラ500が実行する処理の全体概要を示すフロー図である。コントローラ500は先ず初期処理を実行し(S810)、例えば、起動後、通常動作(主軸サーボ系600および従軸サーボ系700の各々への制御処理)を開始する前の初期イニシャライズ(初期処理、例えば、通常動作に必要な各種の設定処理等)を実行する。
コントローラ500は、主軸サーボ系600および従軸サーボ系700の各々から、主軸および従軸の各々のFB値(つまり、FB位置(主軸)およびFB位置(従軸))を入力として受け付ける(S820)。そして、指令値生成部510は、主軸の目標軌道データから、主軸側制御周期ごとの主軸サーボドライバ610への指令値(例、指令位置(主軸))を計算する(S830)。指令値生成部510は、生成した指令位置(主軸)を、第1MPC部520および第2予測部530へと出力する。指令値生成部510から指令位置(主軸)を通知された第1MPC部520は、主軸サーボ系600の動特性モデルを用いるMPCによって、主軸サーボドライバ610に対する指令値(例、指令速度(主軸))を計算する(S840)。
第2予測部530は、S820で受け付けたFB位置(主軸)と、指令値生成部510から取得する「過去、現在、および、未来の主軸側制御周期の各々における指令位置(主軸)」とから、主軸の未来のFB値を予測する(S850)。すなわち、第2予測部530は、過去および現在の主軸側制御周期の各々における位置偏差(=指令位置とFB位置との偏差)と、未来の主軸側制御周期における指令位置(主軸)とを用いて、未来の主軸側制御周期におけるFB位置(主軸)を、予測する。第2予測部530は、予測した「未来の主軸側制御周期におけるFB位置(主軸)」を、カム演算部540に通知する。
カム演算部540は、第2予測部530から通知された「未来の主軸側制御周期におけるFB位置(主軸)」に対応する、従軸の未来対応値(対応従属位置)を、つまり、「未来の従軸制御周期における指令位置(従軸)」を、計算する(S860)。カム演算部540は、「未来の主軸側制御周期におけるFB位置(主軸)」から計算した対応従属位置を、第2MPC部550に通知する。
第2MPC部550は、従軸サーボ系700の動特性モデルを用いて、従軸サーボドライバ710への指令値を計算し(S870)、つまり、従軸サーボ系700の動特性モデルを用いたMPCを従軸サーボ系700の制御に適用する。具体的には、第2MPC部550は、従軸サーボ系700の動特性モデルを用いて予測した「未来の周期(従軸側制御周期)におけるFB位置(従軸)」が、S860で計算した対応従属位置に一致するように、指令速度(従軸)を生成する。
コントローラ500(具体的には、第1MPC部520および第2MPC部550の各々)は、主軸側および従軸側のサーボドライバ(つまり、主軸サーボドライバ610および従軸サーボドライバ710)へ、指令値を出力する(S880)。すなわち、第1MPC部520は主軸サーボドライバ610に指令速度(主軸)を出力し、第2MPC部550は従軸サーボドライバ710に指令速度(従軸)を出力する。そして、コントローラ500は、制御が終了する(S890でYes)まで、S820からS880までの処理を、制御周期ごとに繰り返す。
これまでに図4を用いて説明してきた、コントローラ500の実行する制御方法は、以下のように整理することができる。すなわち、コントローラ500の実行する制御方法は、主軸の位置に対して従軸の位置を追従させる制御装置の制御方法であって、「主軸の目標軌道から生成される指令位置である指令位置(主軸)(つまり、主軸指令位置)と、FB位置(主軸)との偏差である位置偏差(つまり、位置偏差(主軸))」の、現在における時間変化率が、所定期間にわたって一定のまま継続すると仮定して、未来におけるFB位置(主軸)を予測する予測ステップ(S850)と、予測ステップにて予測された「未来におけるFB位置(主軸)」に対応する、「未来における従軸の位置」である対応従属位置を演算する演算ステップ(S860)と、従軸の位置をフィードバック制御する従軸サーボ系700の動特性モデルを用いて予測する「未来における従軸の予測位置」が、演算ステップにて演算された「未来における対応従属位置」に一致するように、従軸サーボ系700に対する現在における指令値である従軸指令値を生成する従軸指令ステップ(S870)と、を含んでいる。
前記の方法によれば、前記制御方法は、「位置偏差(主軸)の、現在における時間変化率が、所定期間にわたって一定のまま継続する」と仮定して、未来におけるFB位置(主軸)を予測する。
特に、前記制御方法は、主軸サーボ系600の動特性モデルを用いずに予測した「未来のFB位置(主軸)」から、「未来のFB位置(主軸)」に対応する、「従軸の未来の位置」である対応従属位置を演算する。そして、前記制御方法は、演算した「対応従属位置(未来における従軸の位置)」を「従軸の未来の指令値(指令位置)」とする、従軸サーボ系700の動特性モデルを用いたMPCを、従軸の制御に適用する。つまり、前記制御方法は、未来におけるFB位置(主軸)を予測し、予測した「未来におけるFB位置(主軸)」に対応する「対応従属位置(従軸の未来の指令値、未来の周期における指令位置(従軸))」を用いたMPCを、従軸の制御に適用する。
したがって、前記制御方法は、従軸の位置制御について追従性を向上させ、従軸の位置制御を高速化・高精度化することができるとの効果を奏する。例えば、前記制御方法は、前記制御方法によって制御する機械等の動作をより高速化させて、これらの機械を用いた生産現場の生産性の向上に寄与するとの効果を奏する。
〔実施形態3〕
本発明の実施形態3について、図5に基づいて、以下に説明する。なお、説明の便宜上、前記実施形態にて説明した部材と同じ機能を有する部材については、同じ符号を付記し、その説明を省略する。
図5は、実施形態3に係るコントローラ900等の要部構成を示すブロック図である。図5に示すように、コントローラ900は、実施形態2に係るコントローラ500と以下の1点において異なり、他の点においてはコントローラ500と同様である。すなわち、コントローラ900は、コントローラ500の第2予測部530に代えて、コントローラ100の第1予測部120を備え、その他の構成はコントローラ500と同様である。
ここで、コントローラ100の第1予測部120およびコントローラ500の各構成については既に説明しているから、詳細は略記する。すなわち、コントローラ900の第1予測部120は、主軸サーボ系600から、「主軸サーボ系600(特に、機械630)の出力である主軸の位置(=FB位置(主軸))」を、FB情報として、主軸側制御周期ごとに取得する。そして、第1予測部120は、主軸側制御周期ごとに取得したFB位置(主軸)から、「未来の主軸側制御周期におけるFB位置(主軸)」を主軸側制御周期ごとに予測する。第1予測部120は、予測した主軸側制御周期ごとの「未来の主軸側制御周期におけるFB位置(主軸)」を、カム演算部540に通知し、また、記憶部570の予測主軸位置テーブル571に格納する。カム演算部540は、第1予測部120から通知された「未来の主軸側制御周期におけるFB位置(主軸)」に対応する、「未来の従軸制御周期における指令位置(従軸)」を演算する。
「第2予測部530に代えて、第1予測部120を備えている」点を除いて、コントローラ900がコントローラ500と同様であるのに対応して、コントローラ900が実行する処理も、コントローラ500の実行する処理とほぼ同様である。
具体的には、図4のS850において、第2予測部530は、S820で受け付けたFB位置(主軸)と、指令値生成部510から取得する「過去、現在、および、未来の主軸側制御周期の各々における指令位置(主軸)」とから、主軸の未来のFB値を予測した。これに対して、コントローラ900は、図4のS810からS840までの処理を実行した後、以下の処理を実行する。
すなわち、コントローラ900の第1予測部120は、S820で受け付けたFB位置(主軸)から、主軸の未来FB値を、つまり、「未来の主軸側制御周期におけるFB位置(主軸)」を、予測する(S850’)。そして、第1予測部120は、予測した「未来の主軸側制御周期におけるFB位置(主軸)」を、カム演算部540に通知する。その後、コントローラ900は、図4のS860からS890までの処理を実行する。
〔各実施形態のコントローラが奏する効果〕
これまでに説明してきたコントローラ100、500、および900の各々が奏する効果について、以下に図6から図9を用いて説明していく。具体的には、主軸制御に外乱を印加するシミュレーション1およびシミュレーション2の各々において、従来のコントローラおよび各実施形態に係るコントローラが実現する従軸制御について、以下に詳細を説明していく。
(シミュレーション例1)
図6は、シミュレーション1において、主軸の制御(例えば、制御システム1における主軸サーボ系200、制御システム2における主軸サーボ系600、および、制御システム3における主軸サーボ系600)に印加する正弦波状のトルク外乱を示す図である。図6に例示するように、以下に説明するシミュレーション1において、主軸の制御に印加する外乱は、振幅50%、周波数10Hzの正弦波状のトルク外乱とする。
図7は、図6の外乱を印加した場合に、従来のコントローラおよび各実施形態に係るコントローラ(つまり、コントローラ100、500、および900)が実現する従軸制御について説明する図である。シミュレーション1において、従来のコントローラおよび各実施形態に係るコントローラは、主軸と従軸とに同一の動作をさせようとするものとし、図6に示す外乱を主軸の制御に印加したときの、各コントローラの従軸制御の結果を示すのが、図7である。
図7において(A)は、従来のコントローラ(つまり、「主軸の未来のフィードバック値」の予測を行なわないコントローラ)について、主軸の制御に図6の外乱を印加した場合の「指令位置」、「位置偏差」、および、「トルク」を順に示している。なお、従来のコントローラは、従軸の制御において、現在の指令値が予測区間継続するとみなして従軸の制御を行なうものとする。
同様に、図7において(B)は、コントローラ100について、主軸サーボ系200に図6の外乱を印加した場合の「指令位置」、「位置偏差」、および、「トルク」を順に示している。図7において(C)は、コントローラ900について、主軸サーボ系600に図6の外乱を印加した場合の「指令位置」、「位置偏差」、および、「トルク」を順に示している。図7において(D)は、コントローラ500について、主軸サーボ系200に図6の外乱を印加した場合の「指令位置」、「位置偏差」、および、「トルク」を順に示している。
ここで、図7の(A)から(D)の各々における「指令位置」は、従軸側への指令位置を示しており、具体的には主軸のFB位置(つまり、FB位置(主軸))を示している。また、図7の(A)から(D)の各々における「位置偏差」は、主軸のFB位置(つまり、FB位置(主軸)。言い換えれば、前述の従軸側への「指令位置」)と従軸のFB位置(つまり、FB位置(従軸))との偏差を示している。さらに、図7の(A)から(D)の各々における「トルク」は、従軸を制御するフィードバック制御系(例えば、従軸サーボ系300または従軸サーボ系700)の出力するトルクを示している。
なお、前述の通り、主軸サーボ系600の動特性モデルを用いたMPCを主軸サーボ系600の制御に適用するコントローラ500および900は、主軸サーボ系600の制御について動摩擦補償も適用するものとする。これに対して、コントローラ100は、主軸サーボ系200の制御にMPCも動摩擦補償も適用していない。
図7に示すように、従来のコントローラ(図7の(A)に対応)と比較して、コントローラ100、500、および900(各々、図7の(B)、(D)、および(C)に対応)はいずれも、追従性が大幅に向上している。具体的には、図7の(A)の「位置偏差」に比べて、図7の(B)、(D)、および(C)の各々における「位置偏差」は大幅に低減している。これは、未来のFB位置(主軸)の予測が、つまり、従軸側への未来の「指令位置」の予測が、従軸の制御に対して大きな効果を果たすことを示している。
ここで、時刻0sの「動作開始時」、および、動作開始から0.25s後、0.5s後、0.75s後における「動作方向反転時」は、摩擦の影響によって「位置偏差」が大きくなりやすい。図7の(A)においては「位置偏差」が全体的に大きく、グラフのレンジが大きいために確認できないが、図7の(B)、(D)、および(C)の各々において、「動作開始時」および「動作方向反転時」に、「位置偏差」が大きくなっていることが分かる。これは、「動作反転時(および動作開始時)」は、摩擦によって加速度が不連続に変化するため、予測値(つまり、「未来のFB位置(主軸)」。本シミュレーションでは、従軸側への未来の「指令位置」と一致)と実測値との誤差が大きくなることが原因である。
例えば、図7の(B)(コントローラ100に対応)と比べて、図7の(C)(コントローラ900に対応)において、「動作反転時(および動作開始時)」の「位置偏差」は抑制されている。これは、コントローラ900が主軸制御に動摩擦補償を適用しているために、主軸のFB値(具体的には、FB位置(主軸))の加速度変化が低減されているためである。
また、図7の(C)(コントローラ900に対応)と比べて、図7の(D)(コントローラ500に対応)において、「動作反転時(および動作開始時)」の「位置偏差」はさらに抑制されている。これは、予測値(つまり、「未来のFB位置(主軸)」。本シミュレーションでは、従軸側への未来の「指令位置」と一致)の予測方法におけるコントローラ900とコントローラ500との違いが影響しているものと考えられる。
つまり、未来のFB位置(主軸)(=従軸側への未来の「指令位置」)の予測に、FB位置(主軸)の加速度情報を用いるか、または、主軸の位置偏差(つまり、FB位置(主軸)と指令位置(主軸)との偏差)の変化率を用いるかの違いが主因と考えられる。
前述の通り、コントローラ900は、未来のFB位置(主軸)(=従軸側への未来の「指令位置」)の予測に、主軸のFB位置の加速度情報を用い、主軸の位置偏差の変化率を用いていない。コントローラ900は、コントローラ500の第2予測部530に代えて、コントローラ100の第1予測部120を備える。そして、コントローラ900の第1予測部120は、未来の主軸側制御周期におけるFB位置(主軸)の予測に、「現在および過去の各々の主軸側制御周期におけるFB位置(主軸)」を利用し、「主軸の位置偏差の変化率」を利用しない。
これに対して、コントローラ500の第2予測部530は、主軸の各主軸側制御周期における位置偏差の、時間に対する変化率が、複数の周期にわたって一定であると仮定して、未来の主軸側制御周期におけるFB位置(主軸)を予測する。
つまり、コントローラ900が未来のFB位置(主軸)の予測に「主軸の位置偏差の変化率」を用いないのに対し、コントローラ500は「主軸の位置偏差の変化率」を用いて未来のFB位置(主軸)を予測する。未来のFB位置(主軸)の予測方法についての、コントローラ500とコントローラ900との違いから、「動作反転時(および動作開始時)」の「位置偏差」は、図7の(C)に比べて図7の(D)において、より抑制されているものと考えられる。
さらに、図7の(D)(コントローラ500に対応)の「トルク」は、図7の(B)および図7の(C)の各々における「トルク」に比べて、ピーク値が抑制されていることが分かる。
(シミュレーション例2)
図8は、シミュレーション2において、主軸の制御(例えば、制御システム1における主軸サーボ系200、制御システム2における主軸サーボ系600、および、制御システム3における主軸サーボ系600)に印加するパルス状のトルク外乱を示す図である。図8に例示するように、以下に説明するシミュレーション2においては、時刻0.3sに、大きさ200%、時間幅50msのパルス状のトルク外乱を主軸の制御に印加するものとする。
図9は、図8の外乱を印加した場合に、従来のコントローラおよび各実施形態に係るコントローラ(つまり、コントローラ100、500、および900)が実現する従軸制御について説明する図である。シミュレーション2において、従来のコントローラおよび各実施形態に係るコントローラは、シミュレーション1と同様に、主軸と従軸とに同一の動作をさせようとするものとする。シミュレーション2において、図8に示す外乱を主軸の制御に印加したときの、各コントローラの従軸制御の結果を示すのが、図9である。
図9において(A)は、従来のコントローラ(つまり、「主軸の未来のフィードバック値」の予測を行なわないコントローラ)について、主軸の制御に図8の外乱を印加した場合の「指令位置」、「位置偏差」、および、「トルク」を順に示している。なお、従来のコントローラは、従軸の制御において、現在の指令値が予測区間継続するとみなして従軸の制御を行なうものとする。
同様に、図9において(B)は、コントローラ100について、主軸サーボ系200に図8の外乱を印加した場合の「指令位置」、「位置偏差」、および、「トルク」を順に示している。図9において(C)は、コントローラ900について、主軸サーボ系600に図8の外乱を印加した場合の「指令位置」、「位置偏差」、および、「トルク」を順に示している。図9において(D)は、コントローラ500について、主軸サーボ系200に図8の外乱を印加した場合の「指令位置」、「位置偏差」、および、「トルク」を順に示している。
ここで、図9の(A)から(D)の各々における「指令位置」は、従軸側への指令位置を示しており、具体的には主軸のFB位置(つまり、FB位置(主軸))を示している。また、図9の(A)から(D)の各々における「位置偏差」は、主軸のFB位置(つまり、FB位置(主軸)。言い換えれば、前述の従軸側への「指令位置」)と従軸のFB位置(つまり、FB位置(従軸))との偏差を示している。さらに、図9の(A)から(D)の各々における「トルク」は、従軸を制御するフィードバック制御系(例えば、従軸サーボ系300または従軸サーボ系700)の出力するトルクを示している。
なお、前述の通り、主軸サーボ系600の動特性モデルを用いたMPCを主軸サーボ系600の制御に適用するコントローラ500および900は、主軸サーボ系600の制御について動摩擦補償も適用するものとする。これに対して、コントローラ100は、主軸サーボ系200の制御にMPCも動摩擦補償も適用していない。
図9に示すように、従来のコントローラ(図9の(A)に対応)と比較して、コントローラ100、500、および900(各々、図9の(B)、(D)、および(C)に対応)はいずれも、追従性が大幅に向上している。具体的には、図9の(A)の「位置偏差」に比べて、図9の(B)、(D)、および(C)の各々における「位置偏差」は大幅に低減している。これは、未来のFB位置(主軸)の予測が、つまり、従軸側への未来の「指令位置」の予測が、従軸の制御に対して大きな効果を果たすことを示している。
ここで、時刻0.3sの「外乱印加開始時」と、時刻0.35sの「外乱印加終了時」とにおいて、図9の(B)、(D)、および(C)の各々における「位置偏差」は大きくなっている。なお実際には、図9の(A)においても、「外乱印加開始時」と「外乱印加終了時」とにおいて「位置偏差」は大きくなっているが、図9の(A)においては「位置偏差」が全体的に大きいために、目立たないだけである。
図9の(B)、(D)、および(C)の各々における「位置偏差」は、ほぼ等しい大きさである。ただし、図9の(D)(コントローラ500に対応)の「トルク」は、図9の(B)(コントローラ100に対応)および図9の(C)(コントローラ900に対応)の各々における「トルク」に比べて、ピーク値が抑制されている。この違いは、コントローラ500と、コントローラ100および900との、未来のFB位置(主軸)(=従軸側への未来の「指令位置」)の予測方法の違いに起因するものと考えられる。
すなわち、コントローラ500は、主軸の位置偏差の変化率(つまり、主軸のFB位置の速度情報)を用いて、未来のFB位置(主軸)(=従軸側への未来の「指令位置」)を予測している。これに対して、コントローラ100および900は、未来のFB位置(主軸)の予測に、FB位置(主軸)の加速度を用いて、主軸の位置偏差の変化率を用いない。
§4.変形例
これまで、コントローラ100、500、および900の各々が、従軸サーボドライバ310および従軸サーボドライバ710の各々に、指令速度(従軸)を送信する例を説明した。しかしながら、コントローラ100、500、および900の各々は、従軸サーボドライバ310および従軸サーボドライバ710の各々に、「従軸についての指令位置(つまり、指令位置(従軸))」を送信してもよい。この場合、従軸サーボドライバ310および従軸サーボドライバ710の各々について、速度制御部320および速度制御部720の各々が実行する速度制御ループの前に、位置制御ループが追加されることになる。
同様に、コントローラ500は、主軸サーボドライバ610に、「主軸についての指令位置(つまり、指令位置(主軸))」を送信してもよい。この場合、主軸サーボドライバ610について、速度制御部620が実行する速度制御ループの前に、位置制御ループが追加されることになる。
また、これまで、コントローラ100、500、および900の各々が、電子カム制御に適用される例を説明してきたが、コントローラ100、500、および900の各々の適用範囲は、電子カム制御に限られるものではない。コントローラ100、500、および900の各々の適用範囲は、主軸の位置に対して従軸の位置を追従させる制御であれば、特に限定されない。
〔ソフトウェアによる実現例〕
コントローラ100、500、および900の制御ブロック(特に、指令値生成部110、第1予測部120、カム演算部130、MPC部140、監視部150、指令値生成部510、第1MPC部520、第2予測部530、カム演算部540、第2MPC部550、および、監視部560)は、集積回路(ICチップ)等に形成された論理回路(ハードウェア)によって実現してもよいし、ソフトウェアによって実現してもよい。
後者の場合、コントローラ100、500、および900は、各機能を実現するソフトウェアであるプログラムの命令を実行するコンピュータを備えている。このコンピュータは、例えば1つ以上のプロセッサを備えていると共に、上記プログラムを記憶したコンピュータ読み取り可能な記録媒体を備えている。そして、上記コンピュータにおいて、上記プロセッサが上記プログラムを上記記録媒体から読み取って実行することにより、本発明の目的が達成される。上記プロセッサとしては、例えばCPU(Central Processing Unit)を用いることができる。上記記録媒体としては、「一時的でない有形の媒体」、例えば、ROM(Read Only Memory)等の他、テープ、ディスク、カード、半導体メモリ、プログラマブルな論理回路などを用いることができる。また、上記プログラムを展開するRAM(Random Access Memory)などをさらに備えていてもよい。また、上記プログラムは、該プログラムを伝送可能な任意の伝送媒体(通信ネットワークや放送波等)を介して上記コンピュータに供給されてもよい。なお、本発明の一態様は、上記プログラムが電子的な伝送によって具現化された、搬送波に埋め込まれたデータ信号の形態でも実現され得る。
本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
100 コントローラ(制御装置)
120 第1予測部(予測部)
130 カム演算部(演算部)
140 MPC部(従軸指令部)
150 監視部
500 コントローラ(制御装置)
520 第1MPC部(主軸指令部)
530 第2予測部(予測部)
540 カム演算部(演算部)
550 第2MPC部(従軸指令部)
560 監視部
900 コントローラ(制御装置)
S440 予測ステップ
S450 演算ステップ
S460 従軸指令ステップ
S850 予測ステップ
S860 演算ステップ
S870 従軸指令ステップ

Claims (9)

  1. 主軸の位置に対して従軸の位置を追従させる制御装置であって、
    (A)前記主軸の位置をフィードバック制御する第1サーボ制御系の、前記主軸のフィードバック位置である主軸フィードバック位置の現在における加速度が、所定期間にわたって一定のまま継続すると仮定して、または、(B)前記主軸の目標軌道から生成される指令位置である主軸指令位置と前記主軸フィードバック位置との偏差である位置偏差の、現在における時間変化率が、所定期間にわたって一定のまま継続すると仮定して、未来における前記主軸フィードバック位置を予測する予測部と、
    前記予測部により予測された未来における前記主軸フィードバック位置に対応する、前記従軸の位置である対応従属位置を演算する演算部と、
    前記従軸の位置をフィードバック制御する第2サーボ制御系の動特性モデルを用いて予測する、未来における前記従軸の予測位置が、前記演算部により演算された前記対応従属位置に一致するように、前記第2サーボ制御系に対する現在における指令値である従軸指令値を生成する従軸指令部と、
    を備えることを特徴とする制御装置。
  2. 前記制御装置は、前記主軸の位置に対して前記従軸の位置を追従させ、
    前記予測部は、各周期における前記主軸フィードバック位置の加速度が、複数の周期にわたって一定であると仮定して、現在および過去の各周期における前記主軸フィードバック位置を用いて、未来の周期における前記主軸フィードバック位置を予測する
    ことを特徴とする請求項1に記載の制御装置。
  3. 前記制御装置は、前記主軸の位置に対して前記従軸の位置を追従させ、
    前記予測部は、各周期における前記主軸指令位置と前記主軸フィードバック位置との偏差である前記位置偏差の、時間に対する変化率が、複数の周期にわたって一定であると仮定して、(C)現在および過去の各周期における前記主軸フィードバック位置と、(D)過去、現在、および、未来の各周期における前記主軸指令位置と、を用いて、未来の周期における前記主軸フィードバック位置を予測する
    ことを特徴とする請求項1に記載の制御装置。
  4. 前記第1サーボ制御系の動特性モデルを用いて予測する未来における前記主軸の予測位置が、未来における前記主軸指令位置に一致するように、前記第1サーボ制御系に対する現在における指令値である指令主軸値を生成する主軸指令部をさらに備える
    ことを特徴とする請求項1から3のいずれか1項に記載の制御装置。
  5. 前記予測部により予測された未来における前記主軸フィードバック位置を監視する監視部をさらに備える
    ことを特徴とする請求項1から4のいずれか1項に記載の制御装置。
  6. 前記主軸は電子カムの主軸であり、前記従軸は前記電子カムの従軸であり、
    前記演算部は、前記予測部により予測された未来における前記電子カムの主軸の位相に対応する、前記電子カムの従軸の位置を演算するカム演算部である
    ことを特徴とする請求項1から5のいずれか1項に記載の制御装置。
  7. 主軸の位置に対して従軸の位置を追従させる制御装置の制御方法であって、
    (A)前記主軸の位置をフィードバック制御する第1サーボ制御系の、前記主軸のフィードバック位置である主軸フィードバック位置の現在における加速度が、所定期間にわたって一定のまま継続すると仮定して、または、(B)前記主軸の目標軌道から生成される指令位置である主軸指令位置と前記主軸フィードバック位置との偏差である位置偏差の、現在における時間変化率が、所定期間にわたって一定のまま継続すると仮定して、未来における前記主軸フィードバック位置を予測する予測ステップと、
    前記予測ステップにて予測された未来における前記主軸フィードバック位置に対応する、前記従軸の位置である対応従属位置を演算する演算ステップと、
    前記従軸の位置をフィードバック制御する第2サーボ制御系の動特性モデルを用いて予測する、未来における前記従軸の予測位置が、前記演算ステップにて演算された前記対応従属位置に一致するように、前記第2サーボ制御系に対する現在における指令値である従軸指令値を生成する従軸指令ステップと、
    を含むことを特徴とする制御方法。
  8. 請求項1から6のいずれか一項に記載の制御装置としてコンピュータを機能させるための情報処理プログラムであって、前記各部としてコンピュータを機能させるための情報処理プログラム。
  9. 請求項8に記載の情報処理プログラムを記録したコンピュータ読み取り可能な記録媒体。
JP2018122039A 2018-06-27 2018-06-27 制御装置、制御装置の制御方法、情報処理プログラム、および記録媒体 Active JP7014062B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2018122039A JP7014062B2 (ja) 2018-06-27 2018-06-27 制御装置、制御装置の制御方法、情報処理プログラム、および記録媒体
PCT/JP2019/020770 WO2020003839A1 (ja) 2018-06-27 2019-05-24 制御装置、制御装置の制御方法、情報処理プログラム、および記録媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018122039A JP7014062B2 (ja) 2018-06-27 2018-06-27 制御装置、制御装置の制御方法、情報処理プログラム、および記録媒体

Publications (2)

Publication Number Publication Date
JP2020005385A JP2020005385A (ja) 2020-01-09
JP7014062B2 true JP7014062B2 (ja) 2022-02-01

Family

ID=68984800

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018122039A Active JP7014062B2 (ja) 2018-06-27 2018-06-27 制御装置、制御装置の制御方法、情報処理プログラム、および記録媒体

Country Status (2)

Country Link
JP (1) JP7014062B2 (ja)
WO (1) WO2020003839A1 (ja)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3551328B2 (ja) * 1994-10-28 2004-08-04 株式会社安川電機 同期制御装置
JPH10174479A (ja) * 1996-12-09 1998-06-26 Yaskawa Electric Corp 同期制御装置

Also Published As

Publication number Publication date
JP2020005385A (ja) 2020-01-09
WO2020003839A1 (ja) 2020-01-02

Similar Documents

Publication Publication Date Title
CN106873506B (zh) 校正装置、校正装置的控制方法、信息处理程序及记录介质
US10386794B2 (en) Control device, storage medium, and control system by creating internal model of control target
US10678222B2 (en) Data collection device and computer readable medium
CN107797446B (zh) 模型预测控制装置、控制方法及记录介质
CN106346304B (zh) 机床的热位移修正装置
JP5813058B2 (ja) 複合形固定サイクルの開始点経路短縮機能を有する数値制御装置
JP2018041150A (ja) モデル予測制御装置、モデル予測制御装置の制御方法、情報処理プログラム、および記録媒体
JP6888564B2 (ja) モデル予測制御装置、モデル予測制御装置の制御方法、情報処理プログラム、および記録媒体
CN104898577B (zh) S形曲线速度规划方法、装置及数控方法和数控机床
JP2016012221A (ja) 加工プログラム指令内容に応じてcpu負荷を分散可能な数値制御装置
JP7014062B2 (ja) 制御装置、制御装置の制御方法、情報処理プログラム、および記録媒体
JP2014123188A (ja) 分散制御装置及び分散制御方法
US10474117B2 (en) Control apparatus, control method for control apparatus, control program, and storage medium
US20190361421A1 (en) Servo control device
CN113852321B (zh) 指令生成装置、指令生成方法
JP5832382B2 (ja) 数値制御装置
US20200174436A1 (en) Automatic optimization of the parameterization of a movement controller
JP7024742B2 (ja) 制御装置、モデル作成方法および制御プログラム
JP3719044B2 (ja) 位置決め制御装置
WO2020003822A1 (ja) 制御装置、制御方法、情報処理プログラム、および記録媒体
WO2015177912A1 (ja) 指令生成装置および方法
WO2023026433A1 (ja) 診断装置、及びプログラムを記録した記録媒体
WO2024013896A1 (ja) 数値制御装置
JPS6364588A (ja) モ−タのデイジタル制御装置
JP4588367B2 (ja) 位置制御装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20201215

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20211221

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220103