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

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

Info

Publication number
JP7024235B2
JP7024235B2 JP2017139648A JP2017139648A JP7024235B2 JP 7024235 B2 JP7024235 B2 JP 7024235B2 JP 2017139648 A JP2017139648 A JP 2017139648A JP 2017139648 A JP2017139648 A JP 2017139648A JP 7024235 B2 JP7024235 B2 JP 7024235B2
Authority
JP
Japan
Prior art keywords
control system
servo control
orbit
trajectory
command
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
JP2017139648A
Other languages
English (en)
Other versions
JP2019021086A (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 JP2017139648A priority Critical patent/JP7024235B2/ja
Priority to US15/894,958 priority patent/US10354683B2/en
Priority to CN201810148646.2A priority patent/CN109283888B/zh
Priority to EP18156741.3A priority patent/EP3432101A1/en
Publication of JP2019021086A publication Critical patent/JP2019021086A/ja
Application granted granted Critical
Publication of JP7024235B2 publication Critical patent/JP7024235B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/404Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by control arrangements for compensation, e.g. for backlash, overshoot, tool offset, tool wear, temperature, machine construction errors, load, inertia
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B5/00Recording by magnetisation or demagnetisation of a record carrier; Reproducing by magnetic means; Record carriers therefor
    • G11B5/48Disposition or mounting of heads or head supports relative to record carriers ; arrangements of heads, e.g. for scanning the record carrier to increase the relative speed
    • G11B5/58Disposition or mounting of heads or head supports relative to record carriers ; arrangements of heads, e.g. for scanning the record carrier to increase the relative speed with provision for moving the head for the purpose of maintaining alignment of the head relative to the record carrier during transducing operation, e.g. to compensate for surface irregularities of the latter or for track following
    • G11B5/596Disposition or mounting of heads or head supports relative to record carriers ; arrangements of heads, e.g. for scanning the record carrier to increase the relative speed with provision for moving the head for the purpose of maintaining alignment of the head relative to the record carrier during transducing operation, e.g. to compensate for surface irregularities of the latter or for track following for track following on disks
    • G11B5/59627Aligning for runout, eccentricity or offset compensation
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B13/00Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion
    • G05B13/02Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric
    • G05B13/04Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric involving the use of models or simulators
    • G05B13/048Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric involving the use of models or simulators using a predictor
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/408Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by data handling or data format, e.g. reading, buffering or conversion of data
    • G05B19/4086Coordinate conversions; Other special calculations
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/41Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by interpolation, e.g. the computation of intermediate points between programmed end points to define the path to be followed and the rate of travel along that path
    • G05B19/4103Digital interpolation
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/33Director till display
    • G05B2219/33086Interrupt frequency as function of rating of servomotor or desired control frequency
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/41Servomotor, servo controller till figures
    • G05B2219/41149Zero phase filter
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/41Servomotor, servo controller till figures
    • G05B2219/41195Cross coupled feedback, position change one axis effects control of other
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/42Servomotor, servo controller kind till VSS
    • G05B2219/42058General predictive controller GPC
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/42Servomotor, servo controller kind till VSS
    • G05B2219/42209Two slides, fine and quick, coarse and slow, piggyback, multirate positioner

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • General Physics & Mathematics (AREA)
  • Manufacturing & Machinery (AREA)
  • Human Computer Interaction (AREA)
  • Evolutionary Computation (AREA)
  • Software Systems (AREA)
  • Medical Informatics (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Artificial Intelligence (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Numerical Control (AREA)
  • Feedback Control In General (AREA)

Description

本発明は、サーボドライバ等のフィードバック制御系に指令値を出力する制御装置等に関する。
複数のサーボ制御系の各々について、目標軌道から前記サーボ制御系ごとの指令軌道を生成し、前記指令軌道から生成した指令値を前記複数のサーボ制御系の各々に対する制御周期ごとに出力して、前記複数のサーボ制御系を協調制御する制装置等が知られている。
例えば、下掲の特許文献1には、(1)目標軌道に対する逆運動学演算の結果にローパスフィルタ処理を行なって生成した第一軌道を第一サーボ制御系についての指令軌道とし、(2)前記第一軌道に対する順運動学演算の結果と目標軌道との誤差から、第二サーボ制御系についての指令軌道を生成する制御装置が開示されている。なお、以下の説明においては逆運動学を「インバースキネマティクス」と称し、順運動学を「フォワードキネマティクス」と称することがある。
米国特許出願公開第2012/0095599号(2012年4月19日公開)
しかしながら、上述のような従来技術は、前記第一サーボ制御系の追従性向上のために高周波成分を除去するローパスフィルタ処理によって前記第一軌道に位相遅れ(位相遅延)が発生し、発生した位相遅延を前記第二サーボ制御系に補償させることになる。つまり、上述のような従来技術は、前記第一サーボ制御系の追従性を向上させる代わりに、本来は前記第一サーボ制御系が実現すべき軌道の一部を前記第二サーボ制御系に実現させることになる。したがって、上述のような従来技術は、前記第二サーボ制御系の可動範囲を有効に利用することができないという問題がある。
本発明の一態様は、複数のサーボ制御系を協調させて制御する制御装置等において、前記第一サーボ制御系の追従性を維持しつつ、複数のサーボ制御系の各々について、その可動範囲を有効に利用することを目的とする。
上記の課題を解決するために、本発明の一態様に係る制御装置は、基準軌道から位相遅延が発生しないようにして高周波成分を除去した第一指令軌道を、第一サーボ制御系についての指令軌道とする第一軌道生成部と、第二サーボ制御系についての指令軌道として、前記高周波成分に対応する軌道を含む第二指令軌道を生成する第二軌道生成部と、を備えることを特徴としている。
前記の構成によれば、前記制御装置は、前記基準軌道からの位相遅延が発生しないようにして前記基準軌道から高周波成分を除去して、前記第一サーボ制御系についての指令軌道である前記第一指令軌道を生成する。
ここで、前記基準軌道からローパスフィルタによって高周波成分を除去した場合、高周波成分除去後の前記基準軌道は、高周波成分除去前の前記基準軌道に比べて位相遅れ(位相遅延)が発生することが知られている。そして、発生した位相遅延は前記第二サーボ制御系に補償させることになり、つまり、本来は前記第一サーボ制御系が実現すべき軌道の一部を前記第二サーボ制御系に実現させることになり、前記第二サーボ制御系の可動範囲を有効に利用することができない。
これに対して、前記制御装置は、前記基準軌道に対する位相遅延が発生しないようにして前記基準軌道から高周波成分を除去して前記第一指令軌道を生成するので、前記第一サーボ制御系は、高周波成分を除去した後の前記第一指令軌道に十分追従することができる。つまり、前記制御装置は、前記第一サーボ制御系の追従性を維持することができる。
また、前記制御装置は、前記高周波成分の除去に伴って従来発生していた位相遅延の発生を防ぐので、前記第一サーボ制御系が本来実現すべき軌道の一部を前記第二サーボ制御系に補償させる必要がない。つまり、前記制御装置は、前記第二サーボ制御系の可動範囲を有効に利用することができる。
以上に整理した通り、前記制御装置は、高周波成分の除去によって前記第一サーボ制御系の追従性を維持しつつ、位相遅延の発生を防ぐことで前記第二サーボ制御系の可動範囲を有効に利用することができる。したがって、前記制御装置は、前記第一サーボ制御系の追従性を維持しつつ、前記第一サーボ制御系および前記第二サーボ制御系の各々について、その可動範囲を有効に利用することができるという効果を奏する。
本発明に係る制御装置において、前記第一軌道生成部は、前記基準軌道に対し、時間軸の順方向と逆方向との両方向にローパスフィルタ処理を行なって前記第一指令軌道を生成してもよい。
前記の構成によれば、前記制御装置は、前記基準軌道に対し、時間軸の順方向と逆方向との両方向にローパスフィルタ処理を行なうことで、前記基準軌道からの位相遅延が発生しないようにして前記基準軌道から高周波成分を除去して前記第一指令軌道を生成する。つまり、前記制御装置は、前記基準軌道にローパスフィルタ処理を行なう場合と異なり、位相遅延を発生させないので、前記第一サーボ制御系が本来実現すべき軌道の一部を前記第二サーボ制御系に補償させる必要がない。
したがって、前記制御装置は、高周波成分の除去によって前記第一サーボ制御系の追従性を維持しつつ、位相遅延の発生を防ぐことで前記第二サーボ制御系の可動範囲を有効に利用することができる。つまり、前記制御装置は、前記第一サーボ制御系の追従性を維持しつつ、前記第一サーボ制御系および前記第二サーボ制御系の各々について、その可動範囲を有効に利用することができるという効果を奏する。
本発明に係る制御装置において、前記第一軌道生成部は、前記基準軌道に対し、時間軸の逆方向から順方向の順に前記ローパスフィルタ処理を行なって前記第一指令軌道を生成してもよい。
前記の構成によれば、前記制御装置は、前記基準軌道に対し、時間軸の逆方向から順方向の順に前記ローパスフィルタ処理を行なって前記第一指令軌道を生成する。
ここで、前記基準軌道に、時間軸の順方向から逆方向の順に前記ローパスフィルタ処理を行なった場合、前記第一指令軌道について、スタート時点(t=0の時点)において前記基準軌道に対するデータ飛びが発生する。
これに対して、前記制御装置は、前記基準軌道に、時間軸の逆方向から順方向の順に前記ローパスフィルタ処理を行なって前記第一指令軌道を生成する。したがって、前記制御装置は、前記第一指令軌道について、スタート時点(t=0の時点)において前記基準軌道に対するデータ飛びが発生することを防ぐことができるとの効果を奏する。
本発明に係る制御装置において、前記第一軌道生成部は、前記基準軌道を示す曲線の、上下の包絡線の平均から、前記第一指令軌道を生成してもよい。
前記の構成によれば、前記制御装置は、前記基準軌道を示す曲線の、上下の包絡線の平均から、前記第一指令軌道を生成することにより、前記基準軌道からの位相遅延が発生しないようにして高周波成分を除去して前記第一指令軌道を生成する。つまり、前記制御装置は、高周波成分の除去によって前記第一サーボ制御系の追従性を維持しつつ、位相遅延の発生を防ぐことで前記第二サーボ制御系の可動範囲を有効に利用することができる。
したがって、前記制御装置は、前記第一サーボ制御系の追従性を維持しつつ、前記第一サーボ制御系および前記第二サーボ制御系の各々について、その可動範囲を有効に利用することができるという効果を奏する。
本発明に係る制御装置は、前記第一サーボ制御系の動特性モデルを用いて、前記第一指令軌道に対応する前記第一サーボ制御系の応答を予測する予測部をさらに備えてもよい。
前記の構成によれば、前記制御装置は、前記第一サーボ制御系の動特性モデルを用いて、前記第一指令軌道に対応する前記第一サーボ制御系の応答を予測する。
したがって、前記制御装置は、前記第一サーボ制御系の動特性モデルを用いて、前記第一指令軌道に対応する前記第一サーボ制御系の応答を予測することができるとの効果を奏する。
本発明に係る制御装置において、前記予測部は、前記第一サーボ制御系の動特性モデルを用いて、前記第一指令軌道から生成する第一指令値に対する前記第一サーボ制御系の出力である制御量を予測し、本発明に係る制御装置は、前記予測部によって予測された制御量と、前記第一サーボ制御系からフィードバック情報として取得する前記第一サーボ制御系の制御量の実測値と、を用いたモデル予測制御によって補正した前記第一指令値を、前記第一サーボ制御系に出力する指示部をさらに備えてもよい。
前記の構成によれば、前記制御装置は、前記第一サーボ制御系の動特性モデルを用いて予測した制御量と、前記第一サーボ制御系の制御量の実測値と、を用いたモデル予測制御によって補正した前記第一指令値を、前記第一サーボ制御系に出力する。
したがって、前記制御装置は、前記第一サーボ制御系の前記第一指令軌道への追従性能を向上させることができ、さらに、前記第一サーボ制御系および前記第二サーボ制御系の全体の追従性能を向上させることができるとの効果を奏する。
本発明に係る制御装置において、前記第二軌道生成部は、前記予測部によって予測された前記第一サーボ制御系の応答を用いて生成する中間軌道と、前記基準軌道と、の誤差に対応する軌道を含む前記第二指令軌道を生成してもよい。
前記の構成によれば、前記制御装置は、前記予測部によって予測された前記第一サーボ制御系の応答を用いて生成する中間軌道と、前記基準軌道と、の誤差に対応する軌道を含む前記第二指令軌道を生成する。
したがって、前記制御装置は、前記第一サーボ制御系の応答遅れを前記第二サーボ制御系によって補償することができ、前記第一サーボ制御系および前記第二サーボ制御系の全体の追従性能を向上させることができるとの効果を奏する。
上記の課題を解決するために、本発明に係る制御方法は、基準軌道から位相遅延が発生しないようにして高周波成分を除去した第一指令軌道を、第一サーボ制御系についての指令軌道とする第一軌道生成ステップと、第二サーボ制御系についての指令軌道として、前記高周波成分に対応する軌道を含む第二指令軌道を生成する第二軌道生成ステップと、を含むことを特徴としている。
前記の方法によれば、前記制御方法は、前記基準軌道からの位相遅延が発生しないようにして前記基準軌道から高周波成分を除去して、前記第一サーボ制御系についての指令軌道である前記第一指令軌道を生成する。
ここで、前記基準軌道からローパスフィルタによって高周波成分を除去した場合、高周波成分除去後の前記基準軌道は、高周波成分除去前の前記基準軌道に比べて位相遅れが発生することが知られている。そして、発生した位相遅延は前記第二サーボ制御系に補償させることになり、つまり、本来は前記第一サーボ制御系が実現すべき軌道の一部を前記第二サーボ制御系に実現させることになり、前記第二サーボ制御系の可動範囲を有効に利用することができない。
これに対して、前記制御方法は、前記基準軌道に対する位相遅延が発生しないようにして前記基準軌道から高周波成分を除去して前記第一指令軌道を生成するので、前記第一サーボ制御系は、高周波成分を除去した後の前記第一指令軌道に十分追従することができる。つまり、前記制御方法は、前記第一サーボ制御系の追従性を維持することができる。
また、前記制御方法は、前記高周波成分の除去に伴って従来発生していた位相遅延の発生を防ぐので、前記第一サーボ制御系が本来実現すべき軌道の一部を前記第二サーボ制御系に補償させる必要がない。つまり、前記制御方法は、前記第二サーボ制御系の可動範囲を有効に利用することができる。
以上に整理した通り、前記制御方法は、高周波成分の除去によって前記第一サーボ制御系の追従性を維持しつつ、位相遅延の発生を防ぐことで前記第二サーボ制御系の可動範囲を有効に利用することができる。したがって、前記制御方法は、前記第一サーボ制御系の追従性を維持しつつ、前記第一サーボ制御系および前記第二サーボ制御系の各々について、その可動範囲を有効に利用することができるという効果を奏する。
本発明の一態様によれば、複数のサーボ制御系を協調させて制御する制御装置等において、前記第一サーボ制御系の追従性を維持しつつ、複数のサーボ制御系の各々について、その可動範囲を有効に利用することができるという効果を奏する。
本発明の実施形態1に係るコントローラ等の要部構成等を示すブロック図である。 図1のコントローラを含む制御システムの全体概要を示す図である。 図1のコントローラが実行する処理の概要を示すフロー図である。 高周波成分の除去方法に応じて発生する位相遅延およびデータ飛びについて説明する図である。 図2の制御システム等を用いて実施する制御テストの内容を示す図である。 図5に示す制御テストについて、図1のコントローラによって制御された第一アクチュエータおよび第二アクチュエータの各々の位置、位置偏差、およびトルクの変化を示す図である。 図5に示す制御テストについて、図1のコントローラによって制御された第一アクチュエータおよび第二アクチュエータの合計の位置および位置偏差の変化を示す図である。 本発明の実施形態2に係るコントローラ等の要部構成等を示すブロック図である。 図8のコントローラが、目標軌道に逆運動学演算を行なって生成した第一演算軌道を示す曲線の上下包絡線の平均から指令軌道を生成する方法を説明する図である。 本発明の実施形態3に係るコントローラ等の要部構成等を示すブロック図である。 図10のコントローラを含む制御システムの全体概要を示す図である。 図10のコントローラが実行する処理の概要を示すフロー図である。 図5に示す制御テストについて、図10のコントローラによって制御された第一アクチュエータおよび第二アクチュエータの各々の位置、位置偏差、モデル予測誤差、およびトルクの変化を示す図である。 図5に示す制御テストについて、図10のコントローラによって制御された第一アクチュエータおよび第二アクチュエータの合計の位置および位置偏差の変化を示す図である。 本発明の実施形態4に係るコントローラ等の要部構成等を示すブロック図である。 図15のコントローラを含む制御システムの全体概要を示す図である。 図15のコントローラが実行する処理の概要を示すフロー図である。 図5に示す制御テストについて、従来の協調制御コントローラによって制御された第一アクチュエータおよび第二アクチュエータの各々の位置、位置偏差、およびトルクの変化を示す図である。 図5に示す制御テストについて、従来の協調制御コントローラによって制御された第一アクチュエータおよび第二アクチュエータの合計の位置および位置偏差の変化を示す図である。
〔実施形態1〕
以下、本発明の実施形態1について、図1から図7、図18、および図19に基づいて詳細に説明する。図中同一または相当部分には同一符号を付してその説明は繰返さない。本発明の一態様に係るコントローラ10(制御装置)についての理解を容易にするため、先ず、コントローラ10を含む制御システム1の概要を、図2を用いて説明する。
(制御システムの概要)
図2は、コントローラ10を含む制御システム1の概要を示す図である。図2に例示する制御システム1は、上位コントローラであるコントローラ10と、コントローラ10により協調制御される第一サーボ制御系20および第二サーボ制御系30と、を含む。第一サーボ制御系20は、第一サーボドライバ21と、第一サーボドライバ21によって駆動を制御される第一アクチュエータ22と、を含むフィードバック制御系である。同様に、第二サーボ制御系30は、第二サーボドライバ31と、第二サーボドライバ31によって駆動を制御される第二アクチュエータ32と、を含むフィードバック制御系である。
コントローラ10と、第一サーボドライバ21および第二サーボドライバ31の各々とは通信可能に接続されており、その接続方式は、任意の有線接続方式または無線接続方式である。
第一サーボドライバ21は、軸ごとの指令値Pc(i)をコントローラ10から受信し、制御対象である第一アクチュエータ22の軸ごとの出力(つまり、軸ごとの制御量)が軸ごとの指令値Pc(i)に追従するように、フィードバック制御を行う。第一サーボドライバ21の制御周期は、例えば1/12msである。
第一アクチュエータ22は、第二アクチュエータ32よりも可動範囲は広いが、第二アクチュエータ32の動作速度よりも動作速度が低速なアクチュエータであり、例えば、サーボモータまたはステッピングモータである。第一サーボドライバ21は、コントローラ10からの指令値Pcに従って第一アクチュエータ22を駆動する。第一サーボドライバ21は、コントローラ10からの指令値Pcを目標値に設定し、実測値をフィードバック値として、第一アクチュエータ22に対しフィードバック制御を行う。すなわち、第一サーボドライバ21は、実測値が目標値に近づくように第一アクチュエータ22を駆動するための電流を調整する。なお、第一サーボドライバ21は、サーボモータアンプと称されることもある。
第二サーボドライバ31は、軸ごとの指令値Sc(i)をコントローラ10から受信し、制御対象である第二アクチュエータ32の軸ごとの出力(つまり、軸ごとの制御量)が軸ごとの指令値Sc(i)に追従するように、フィードバック制御を行う。第二サーボドライバ31の制御周期は、例えば1/12msである。ただし、1/12msという制御周期は単なる例示に過ぎず、第二サーボドライバ31の制御周期はより短く(速く)てもよく、例えば、10μsであってもよい。
第二アクチュエータ32は、第一アクチュエータ22よりも高速な動作が可能だが、第一アクチュエータ22よりも可動範囲が狭いアクチュエータであり、例えば、ピエゾアクチュエータまたはガルバノスキャナである。第二サーボドライバ31は、コントローラ10からの指令値Scに従って第二アクチュエータ32を駆動する。第二サーボドライバ31は、コントローラ10からの指令値Scを目標値に設定し、実測値をフィードバック値として、第二アクチュエータ32に対しフィードバック制御を行う。すなわち、第二サーボドライバ31は、実測値が目標値に近づくように第二アクチュエータ32を駆動するための電流を調整する。なお、第二サーボドライバ31は、サーボモータアンプと称されることもある。
なお、上述の通り、第二アクチュエータ32は、第一アクチュエータ22よりも高速な動作が可能であり、以下の説明においては、第二アクチュエータ32を「高速アクチュエータ」と称し、第一アクチュエータ22を「低速アクチュエータ」と称することがある。
コントローラ10は、第一サーボ制御系20および第二サーボ制御系30を含む制御システム1の全体を制御し、例えば、プログラマブルコントローラ(PLC、Programmable Logic Controller)である。コントローラ10は、(1)コントローラ10は、低速アクチュエータ(第一アクチュエータ22)についての指令軌道から高周波成分を除去することにより、低速アクチュエータの追従性を向上させる。また、(2)コントローラ10は、低速アクチュエータについての指令軌道に位相遅延が発生するのを防ぐことにより、高速アクチュエータ(第二アクチュエータ32)の動作範囲を節約する。具体的には、コントローラ10は、以下の(処理1)および(処理2)を実行することにより、第一サーボ制御系20と第二サーボ制御系30とを協調させて制御する。
(処理1)コントローラ10は、第一サーボ制御系20および第二サーボ制御系30の各々について、目標軌道Ttを用いて指令軌道を生成する。具体的には、コントローラ10は、逆運動学演算および順運動学演算を用いて、目標軌道Ttから「第一サーボ制御系20についての指令軌道」と「第二サーボ制御系30についての指令軌道」とを生成する。すなわち、コントローラ10は、目標軌道Ttに逆運動学演算を行なって第一サーボ制御系20の軸ごとに生成した第一逆運動学軌道SP(i)(不図示)から高周波成分を除去して、「第一サーボ制御系20についての指令軌道」として補正後軌道SPf(i)(不図示)を生成する。なお、図2においては図示していない第一逆運動学軌道SP(i)および補正後軌道SPf(i)について、詳細は図1等を用いて後述する。
また、コントローラ10は、「第一サーボ制御系20についての指令軌道」に対する順運動学演算の演算結果と目標軌道Ttとの誤差に逆運動学演算を行なって生成した第二逆運動学軌道IKt(i)(不図示)を、「第二サーボ制御系30についての指令軌道」とする。なお、図2においては図示していない第二逆運動学軌道IKt(i)について、第一逆運動学軌道SP(i)および補正後軌道SPf(i)と同様に、詳細は図1等を用いて後述する。
ここで、コントローラ10は、第一逆運動学軌道SP(i)から、位相遅延が発生しないようにして高周波成分を除去して、補正後軌道SPf(i)を生成する。具体的には、コントローラ10は、第一逆運動学軌道SP(i)に対し、時間軸の順方向と逆方向との両方向にローパスフィルタ処理を行なって、つまり、ゼロ位相フィルタ処理を行なって、補正後軌道SPf(i)を生成する。コントローラ10は、生成した補正後軌道SPf(i)をメモリ(具体的には、後述する記憶部160の第一指示軌道テーブル161)に格納する。
(処理2)コントローラ10は、第一サーボ制御系20および第二サーボ制御系30の各々についての指令軌道から、第一サーボ制御系20および第二サーボ制御系30の各々に出力する指令値(第一指令値Pc(i)および第二指令値Sc(i))を生成する。具体的には、コントローラ10は、補正後軌道SPf(i)から第一指令値Pc(i)を生成し、第二逆運動学軌道IKt(i)から第二指令値Sc(i)を生成する。コントローラ10は、第一指令値Pc(i)および第二指令値Sc(i)の各々を、第一サーボ制御系20および第二サーボ制御系30の各々に対する制御周期ごとに、第一サーボ制御系20および第二サーボ制御系30の各々に出力する。
ここで、コントローラ10の第二サーボ制御系30に対する制御周期は、コントローラ10の第一サーボ制御系20に対する制御周期よりも短い(速い)。具体的には、コントローラ10の第一サーボ制御系20に対する制御周期、すなわち、コントローラ10が第一サーボドライバ21に出力する第一指令値Pc(i)の更新周期は、例えば1msである。また、コントローラ10の第二サーボ制御系30に対する制御周期、すなわち、コントローラ10が第二サーボドライバ31に出力する第二指令値Sc(i)の更新周期は、例えば1/12msである。
例えば、コントローラ10は、補正後軌道SPf(i)から1msごとに生成した第一指令値Pc(i)を第一サーボドライバ21に出力する。また、例えば、コントローラ10は、第二逆運動学軌道IKt(i)から1/12msごとに生成した第二指令値Sc(i)を第二サーボドライバ31に出力する。ここで、前述の通り、第一サーボドライバ21と第二サーボドライバ31との制御周期は、例えば、共に1/12msである。したがって、第一サーボドライバ21は、コントローラ10によって1msごとに更新される第一指令値Pc(i)を用いて、1/12msの制御周期で、第一アクチュエータ22をフィードバック制御する。第二サーボドライバ31は、コントローラ10によって1/12msごとに更新される第二指令値Sc(i)を用いて、1/12msの制御周期で、第二アクチュエータ32をフィードバック制御する。
なお、上述の通り、コントローラ10の第二サーボ制御系30に対する制御周期は、コントローラ10の第一サーボ制御系20に対する制御周期よりも短い(速い)。そこで、以下の説明においては、第一サーボ制御系20を「低速サーボ制御系(低速サーボシステム)」と称し、第二サーボ制御系30を「高速サーボ制御系(高速サーボシステム)」と称することがある。
また、以下の説明においては、「逆運動学演算」は「インバースキネマティクス処理」と称することがあり、「順運動学演算」は「フォワードキネマティクス処理」と称することがある。さらに、第一逆運動学軌道SP、補正後軌道SPf、および指令値Pcの各々について、第一アクチュエータ22の「軸」ごとの値である場合、第一逆運動学軌道SP(i)、補正後軌道SPf(i)、および指令値Pc(i)と記すことがある。第一アクチュエータ22の軸数は「1~n」であり、つまり、指令軌道SP(i)および指令値Pc(i)について、「i=1~n」である。同様に、第二逆運動学軌道IKtおよび指令値Scの各々について、第二アクチュエータ32の「軸」ごとの値である場合、第二逆運動学軌道IKt(i)および指令値Sc(i)と記すことがある。第二アクチュエータ32の軸数は「1~m」であり、つまり、第二逆運動学軌道IKt(i)および指令値Sc(i)について、「i=1~m」である。第一逆運動学軌道SP(i)、補正後軌道SPf(i)、指令値Pc(i)、第二逆運動学軌道IKt(i)、および指令値Sc(i)について、軸ごとの値であることを特に説明する必要がない場合、「(i)」を略記することがある。
(制御装置の概要)
これまで図2を用いて概要を説明してきた制御システム1に含まれるコントローラ10について、次に、その構成および処理の内容等を、図1等を用いて説明していく。図1を参照して詳細を説明する前に、コントローラ10についての理解を容易にするため、その概要について以下のように整理しておく。
コントローラ10は、第一逆運動学軌道SP(基準軌道)から位相遅延が発生しないようにして高周波成分を除去した補正後軌道SPf(第一指令軌道)を、第一サーボ制御系20についての指令軌道とするゼロ位相フィルタ部130(第一軌道生成部)と、第二サーボ制御系30についての指令軌道として、前記高周波成分に対応する軌道を含む第二逆運動学軌道IKt(第二指令軌道)を生成する第二逆運動学演算部150(第二軌道生成部)と、を備えている。
前記の構成によれば、コントローラ10は、第一逆運動学軌道SPからの位相遅延が発生しないようにして第一逆運動学軌道SPから高周波成分を除去して、「第一サーボ制御系20についての指令軌道」である補正後軌道SPfを生成する。
ここで、第一逆運動学軌道SPからローパスフィルタによって高周波成分を除去した場合、高周波成分除去後の第一逆運動学軌道SPは、高周波成分除去前の第一逆運動学軌道SPに比べて位相遅れ(位相遅延)が発生することが知られている。そして、発生した位相遅延は第二サーボ制御系30に補償させることになり、つまり、本来は第一サーボ制御系20が実現すべき軌道の一部を第二サーボ制御系30に実現させることになり、第二サーボ制御系30の可動範囲を有効に利用することができない。
これに対して、コントローラ10は、第一逆運動学軌道SPに対する位相遅延が発生しないようにして第一逆運動学軌道SPから高周波成分を除去して補正後軌道SPfを生成する。そのため、第一サーボ制御系20は、高周波成分を除去した後の補正後軌道SPfに十分追従することができる。つまり、コントローラ10は、第一サーボ制御系20の追従性を維持することができる。
また、コントローラ10は、前記高周波成分の除去に伴って従来発生していた位相遅延の発生を防ぐので、第一サーボ制御系20が本来実現すべき軌道の一部を第二サーボ制御系30に補償させる必要がない。つまり、コントローラ10は、第二サーボ制御系30の可動範囲を有効に利用することができる。
以上に整理した通り、コントローラ10は、高周波成分の除去によって第一サーボ制御系20の追従性を維持しつつ、位相遅延の発生を防ぐことで第二サーボ制御系30の可動範囲を有効に利用することができる。したがって、コントローラ10は、第一サーボ制御系20の追従性を維持しつつ、第一サーボ制御系20および第二サーボ制御系30の各々について、その可動範囲を有効に利用することができるという効果を奏する。
コントローラ10において、ゼロ位相フィルタ部130は、第一逆運動学軌道SPに対し、時間軸の順方向と逆方向との両方向にローパスフィルタ処理を行なって補正後軌道SPfを生成する。
前記の構成によれば、コントローラ10は、第一逆運動学軌道SPに対し、時間軸の順方向と逆方向との両方向にローパスフィルタ処理を行なうことで、第一逆運動学軌道SPからの位相遅延が発生しないようにして第一逆運動学軌道SPから高周波成分を除去して補正後軌道SPfを生成する。つまり、コントローラ10は、第一逆運動学軌道SPにローパスフィルタ処理を行なう場合と異なり、第一サーボ制御系20の軌道の位相遅延を発生させないので、前記第一サーボ制御系が本来実現すべき軌道の一部を前記第二サーボ制御系に補償させる必要がない。
したがって、コントローラ10は、高周波成分の除去によって第一サーボ制御系20の追従性を維持しつつ、位相遅延の発生を防ぐことで第二サーボ制御系30の可動範囲を有効に利用することができる。つまり、コントローラ10は、第一サーボ制御系20の追従性を維持しつつ、第一サーボ制御系20および第二サーボ制御系30の各々について、その可動範囲を有効に利用することができるという効果を奏する。
コントローラ10において、ゼロ位相フィルタ部130は、第一逆運動学軌道SPに対し、時間軸の逆方向から順方向の順に前記ローパスフィルタ処理を行なって補正後軌道SPfを生成する。
前記の構成によれば、コントローラ10は、第一逆運動学軌道SPに対し、時間軸の逆方向から順方向の順に前記ローパスフィルタ処理を行なって補正後軌道SPfを生成する。
ここで、詳細は図4を用いて後述するが、第一逆運動学軌道SPに、時間軸の順方向から逆方向の順に前記ローパスフィルタ処理を行なった場合、補正後軌道SPfについて、スタート時点(t=0の時点)において第一逆運動学軌道SPに対するデータ飛びが発生する。
これに対して、コントローラ10は、第一逆運動学軌道SPに、時間軸の逆方向から順方向の順に前記ローパスフィルタ処理を行なって補正後軌道SPfを生成する。したがって、コントローラ10は、補正後軌道SPfについて、スタート時点(t=0の時点)において第一逆運動学軌道SPに対するデータ飛びが発生することを防ぐことができるとの効果を奏する。
以上を整理すれば、コントローラ10は、目標軌道Ttに逆運動学演算を行なって生成した軌道に遅延補償付きのローパスフィルタ処理を実施したものを、第一アクチュエータ22についての指令軌道とする。具体的には、コントローラ10は、ゼロ位相フィルタを使用する。ゼロ位相フィルタは、フィルタ処理を時間軸の順方向と逆方向との2回(1往復)実行することで、位相遅れ(位相遅延)を相殺する。さらに、コントローラ10は、スタート時のデータ飛びをなくすために、逆方向から順方向の順に、ゼロ位相フィルタ処理を実行する。
コントローラ10は、低速アクチュエータ(第一アクチュエータ22)についての軌道(指令軌道)の位相遅れ(位相遅延)を低減させることにより、高速アクチュエータ(第二アクチュエータ32)の動作範囲を節約することができる。したがって、コントローラ10は、より高速の軌道に対応できる。また、コントローラ10は、ローパスフィルタの効果を強めて、低速アクチュエータの追従性を向上させることができ、トータル(第一サーボ制御系20および第二サーボ制御系30の全体)の制御精度を向上することができる。さらに、コントローラ10は、制御システム1において採用する高速アクチュエータについて選択肢を広がることができ、採用する高速アクチュエータについての選定を容易にすることができる。これまでに概要を整理してきたコントローラ10について、次に、その構成等の詳細について、図1等を用いて説明していく。
(制御装置の詳細)
図1は、本発明の実施形態1に係るコントローラ10等の要部構成を示すブロック図である。図1に示すように、コントローラ10は、機能ブロックとして、目標軌道取得部110、第一逆運動学演算部120、ゼロ位相フィルタ部130、順運動学演算部140、第二逆運動学演算部150、記憶部160、および指示部170を備えている。なお、記載の簡潔性を担保するため、本実施の形態に直接関係のない構成は、説明およびブロック図から省略している。ただし、実施の実情に則して、コントローラ10は、当該省略された構成を備えてもよい。図1に例示した各機能ブロックは、例えば、CPU(central processing unit)などが、ROM(read only memory)、NVRAM(non-Volatile random access memory)等で実現された記憶装置(記憶部160)に記憶されているプログラムを不図示のRAM(random access memory)等に読み出して実行することで実現できる。以下、コントローラ10における各機能ブロックについて説明する。
(記憶部以外の機能ブロックの詳細)
目標軌道取得部110は、外部(例えばユーザ)から目標軌道データ(目標軌道Tt)を受け付け、受け付けた目標軌道Ttを、第一逆運動学演算部120および第二逆運動学演算部150に出力する。
第一逆運動学演算部120は、目標軌道取得部110から取得した目標軌道Ttに逆運動学演算を行なって、第一サーボ制御系20の軸ごとの第一逆運動学軌道SP(i)を生成する。第一逆運動学演算部120は、生成した第一逆運動学軌道SP(i)をゼロ位相フィルタ部130に出力する。
ゼロ位相フィルタ部130は、第一逆運動学演算部120から取得した第一逆運動学軌道SP(i)から、位相遅延が発生しないようにして高周波成分を除去して、第一サーボ制御系20の軸ごとの補正後軌道SPf(i)を生成する。具体的には、ゼロ位相フィルタ部130は、第一逆運動学軌道SP(i)にゼロ位相フィルタ処理を行なって補正後軌道SPf(i)を生成する。
ここで、ゼロ位相フィルタ処理とは、フィルタリング処理(本実施形態では、ローパスフィルタ処理)を、順方向と逆方向との両方向で(例えば、時間軸の順方向と逆方向との各々について1回ずつ、計2回)、実行することをいう。具体的には、第一逆運動学軌道SP(i)に対して行う、時間軸の順方向と逆方向との両方向でのローパスフィルタ処理を「ゼロ位相フィルタ処理」と称する。なお、ローパスフィルタ処理はローパスフィルタリングと称することがあり、ゼロ位相フィルタ処理はゼロ位相フィルタリングと称することがある。
特に、ゼロ位相フィルタ部130は、第一逆運動学軌道SP(i)に対し、時間軸の逆方向から順方向の順にローパスフィルタ処理を行なって、つまり、時間軸について逆方向(逆順)にゼロ位相フィルタ処理を行なって、補正後軌道SPf(i)を生成する。時間軸の逆方向から順方向の順にローパスフィルタ処理を行なうことにより、ゼロ位相フィルタ部130は、スタート時点(t=0の時点)において第一逆運動学軌道SP(i)に対するデータ飛びの無い補正後軌道SPf(i)を生成することができる。ゼロ位相フィルタ部130の用いるローパスフィルタ(ゼロ位相フィルタ)のフィルタ特性は、例えば、カットオフ周波数10Hzの2次バターワース(Butterworth)型である。ゼロ位相フィルタ部130が実行するゼロ位相フィルタ処理の詳細について、図4を用いて後述する。
ゼロ位相フィルタ部130は、生成した補正後軌道SPf(i)を、「第一サーボ制御系20についての指令軌道」として、記憶部160の第一指示軌道テーブル161に格納する。また、ゼロ位相フィルタ部130は、生成した補正後軌道SPf(i)を、順運動学演算部140に出力する。
ゼロ位相フィルタ部130は、オフラインで事前に軌道計算を実行し、実行した軌道計算の結果をメモリに格納する。つまり、ゼロ位相フィルタ部130は、第一逆運動学軌道SP(i)に対してゼロ位相フィルタ処理を行なって生成した補正後軌道SPf(i)を、第一指示軌道テーブル161に格納する。
順運動学演算部140は、ゼロ位相フィルタ部130から取得する「i=1~n」である補正後軌道SPf(i)の全てに対する順運動学演算から、順運動学軌道FKt(中間軌道)を生成する。順運動学演算部140は、生成した順運動学軌道FKtを第二逆運動学演算部150に出力する。
第二逆運動学演算部150は、「第二サーボ制御系30についての指令軌道」として、ゼロ位相フィルタ部130により第一逆運動学軌道SP(i)から除去された高周波成分に対応する軌道を含む第二逆運動学軌道IKt(第二指令軌道)を生成する。
具体的には、第二逆運動学演算部150は、「補正後軌道SPfと、第二逆運動学軌道IKtとの合成軌道が、目標軌道Ttに一致する」ようにして、第一逆運動学軌道SPと補正後軌道SPfとの誤差に対応する軌道を含む第二逆運動学軌道IKtを生成する。第二逆運動学演算部150は、「第二サーボ制御系30についての指令軌道」として、ゼロ位相フィルタ部130により第一逆運動学軌道SP(i)から除去された高周波成分に対応する軌道を含む第二逆運動学軌道IKt(第二指令軌道)を生成する。例えば、第二逆運動学演算部150は、「順運動学演算部140から取得する順運動学軌道FKtと、目標軌道Ttと、の誤差」に逆運動学演算を行なって、第二サーボ制御系30の軸ごとの指令軌道である第二逆運動学軌道IKt(i)を生成してもよい。第二逆運動学演算部150は、生成した第二逆運動学軌道IKt(i)を、「第二サーボ制御系30についての指令軌道」として、記憶部160の第二指示軌道テーブル162に格納する。
第二サーボ制御系30の指令軌道である第二逆運動学軌道IKt(第二指令軌道)は、ゼロ位相フィルタ部130により第一逆運動学軌道SP(i)から除去された高周波成分を含んでいる。また、第二逆運動学軌道IKt(第二指令軌道)は、「第一サーボ制御系20の指令軌道(補正後軌道SPf)と、第二サーボ制御系30の指令軌道(第二逆運動学軌道IKt)との合成軌道が、目標軌道Ttに一致する」との条件を満たしている。すなわち、第二逆運動学演算部150は、「補正後軌道SPfと、第二逆運動学軌道IKtとの合成軌道が、目標軌道Ttに一致する」ようにして、第一逆運動学軌道SPと補正後軌道SPfとの誤差に対応する軌道を含む第二逆運動学軌道IKtを生成すればよい。
指示部170は、第一サーボ制御系20に第一指令値Pc(i)を出力する第一指示部171と、第二サーボ制御系30に第二指令値Sc(i)を出力する第二指示部172と、を含んでいる。
第一指示部171は、第一サーボ制御系20に対する制御周期ごとに、「第一サーボ制御系20についての指令軌道」から第一サーボ制御系20の軸ごとの第一指令値Pc(i)を生成し、生成した第一指令値Pc(i)を第一サーボ制御系20に出力する。具体的には、第一指示部171は、記憶部160の第一指示軌道テーブル161を参照して、「第一サーボ制御系20についての指令軌道」として、補正後軌道SPf(i)を取得する。そして、第一指示部171は、例えば1msごとに、補正後軌道SPf(i)から第一サーボ制御系20の軸ごとの第一指令値Pc(i)を生成し、生成した第一指令値Pc(i)を第一サーボ制御系20に出力する。
第二指示部172は、第二サーボ制御系30に対する制御周期ごとに、「第二サーボ制御系30についての指令軌道」から、第二サーボ制御系30の軸ごとの第二指令値Sc(i)を生成し、生成した第二指令値Sc(i)を第二サーボ制御系30に出力する。具体的には、第二指示部172は、記憶部160の第二指示軌道テーブル162を参照して、「第二サーボ制御系30についての指令軌道」として、第二逆運動学軌道IKt(i)を取得する。そして、第二指示部172は、例えば1/12msごとに、第二逆運動学軌道IKt(i)から第二サーボ制御系30の軸ごとの第二指令値Sc(i)を生成し、生成した第二指令値Sc(i)を第二サーボ制御系30に出力する。
(記憶部の詳細)
記憶部160は、コントローラ10が使用する各種データを格納する記憶装置である。なお、記憶部160は、コントローラ10が実行する(1)制御プログラム、(2)OSプログラム、(3)コントローラ10が有する各種機能を実行するためのアプリケーションプログラム、および、(4)該アプリケーションプログラムを実行するときに読み出す各種データを非一時的に記憶してもよい。上記の(1)~(4)のデータは、例えば、ROM(read only memory)、フラッシュメモリ、EPROM(Erasable Programmable ROM)、EEPROM(登録商標)(Electrically EPROM)、HDD(Hard Disc Drive)等の不揮発性記憶装置に記憶される。コントローラ10は、図示しない一時記憶部を備えていてもよい。一時記憶部は、コントローラ10が実行する各種処理の過程で、演算に使用するデータおよび演算結果等を一時的に記憶するいわゆるワーキングメモリであり、RAM(Random Access Memory)などの揮発性記憶装置で構成される。どのデータをどの記憶装置に記憶するのかについては、コントローラ10の使用目的、利便性、コスト、または、物理的な制約などから適宜決定される。記憶部160はさらに、第一指示軌道テーブル161および第二指示軌道テーブル162を格納している。第一指示軌道テーブル161には、「第一サーボ制御系20についての指令軌道」が格納され、具体的には、ゼロ位相フィルタ部130によって、補正後軌道SPf(i)が格納される。第二指示軌道テーブル162には、「第二サーボ制御系30についての指令軌道」が格納され、具体的には、第二逆運動学演算部150によって、第二逆運動学軌道IKt(i)が格納される。
コントローラ10は、第一指示軌道テーブル161をオフライン処理で予め作成しておき、つまり、「第一サーボ制御系20についての指令軌道」を予め算出しておく。コントローラ10は、全ての処理をオフラインで実行しておき、第二指示軌道テーブル162についても予め作成しておいてもよく、つまり、「第二サーボ制御系30についての指令軌道」を予め算出しておいてもよい。なお、図1には、コントローラ10が、全ての処理をオフラインで予め実行しておき、第二指示軌道テーブル162を作成しておく例が示されている。ただし、コントローラ10が、「第二サーボ制御系30についての指令軌道」を予め算出しておくことは必須ではなく、つまり、第二指示軌道テーブル162を予め作成しておくことは必須ではない。
(コントローラが実行する処理について)
図3は、コントローラ10が実行する処理の概要を示すフロー図である。図3に示すように、第一逆運動学演算部120は、目標軌道Ttから低速アクチュエータ(第一アクチュエータ22)の軸毎の軌道を生成し、つまり、目標軌道Ttに逆運動学演算を行なって第一逆運動学軌道SP(i)を生成する(S110)。
ゼロ位相フィルタ部130は、軸毎の軌道(つまり、第一逆運動学軌道SP(i))に対して、ゼロ位相フィルタリングを実行し、生成した補正後軌道SPf(i)を、記憶部160の第一指示軌道テーブル161に格納する(S120)。
コントローラ10は、ゼロ位相フィルタリング後の軌道と目標軌道Ttとの差分を計算する。具体的には、順運動学演算部140が、順運動学演算により、ゼロ位相フィルタリング後の軌道(つまり、補正後軌道SPf(i))から中間軌道(つまり、順運動学軌道FKt)を生成する(S130)。そして、第二逆運動学演算部150は、中間軌道と目標軌道Ttとの差分(誤差)を計算する(S140)。
第二逆運動学演算部150は、計算した誤差(差分)を用いて、高速アクチュエータ(第二アクチュエータ32)の軸毎の軌道を計算し、記憶部160の第二指示軌道テーブル162に格納する(S150)。具体的には、第二逆運動学演算部150は、「中間軌道(つまり、順運動学軌道FKt)と、目標軌道Ttと、の誤差」に逆運動学演算を行なって、第二サーボ制御系30の軸ごとの指令軌道である第二逆運動学軌道IKt(i)を生成する。そして、第二逆運動学演算部150は、生成した第二逆運動学軌道IKt(i)を、記憶部160の第二指示軌道テーブル162に格納する。
第二逆運動学演算部150は、第一逆運動学軌道SPと補正後軌道SPfとの誤差に対応する軌道を含む第二逆運動学軌道IKtを生成する。具体的には、第二逆運動学演算部150は、「補正後軌道SPfと、第二逆運動学軌道IKtとの合成軌道が、目標軌道Ttに一致する」ようにして、第一逆運動学軌道SPと補正後軌道SPfとの誤差に対応する軌道を含む第二逆運動学軌道IKtを生成する。
指示部170は、格納している軸毎の軌道から、現時刻の指令値を、低速サーボシステム(つまり、第一サーボ制御系20)および高速サーボシステム(つまり、第二サーボ制御系30)へ出力する(S160)。具体的には、第一指示部171は、第一指示軌道テーブル161に格納されている補正後軌道SPf(i)から、第一サーボ制御系20に対する制御周期ごとに、第一指令値Pc(i)を生成し、生成した第一指令値Pc(i)を第一サーボ制御系20に出力する。また、第二指示部172は、第二指示軌道テーブル162に格納されている第二逆運動学軌道IKt(i)から、第二サーボ制御系30に対する制御周期ごとに、第二指令値Sc(i)を生成し、生成した第二指令値Sc(i)を第二サーボ制御系30に出力する。コントローラ10は、軌道終点に到達したかを判定しながら(S170)、制御周期ごとに、S140~S160の処理を、または、S160の処理を、繰り返す。具体的には、コントローラ10は、「S140~S160の処理、または、S160の処理」のうち、「第一サーボ制御系20のみに係る処理」を、軌道終点に到達したかを判定しながら(S170)、第一サーボ制御系20に対する制御周期で繰り返し実行する。また、コントローラ10は、「S140~S160の処理、または、S160の処理」のうち、「第一サーボ制御系20のみに係る処理」以外の処理(例えば、第二サーボ制御系30に係る処理)を、軌道終点に到達したかを判定しながら(S170)、第二サーボ制御系30に対する制御周期で繰り返し実行する。
これまで説明してきた、コントローラ10の実行する制御方法は、以下のように整理することができる。すなわち、コントローラ10の実行する制御方法は、第一逆運動学軌道SPから位相遅延が発生しないようにして高周波成分を除去した補正後軌道SPfを、「第一サーボ制御系20についての指令軌道」とする第一軌道生成ステップ(S120)と、「第二サーボ制御系30についての指令軌道」として、前記高周波成分に対応する軌道を含む第二逆運動学軌道IKt(第二指令軌道)を生成する第二軌道生成ステップ(S150)と、を含んでいる。
前記の方法によれば、前記制御方法は、第一逆運動学軌道SPからの位相遅延が発生しないようにして第一逆運動学軌道SPから高周波成分を除去して、第一サーボ制御系20についての指令軌道である補正後軌道SPfを生成する。
ここで、第一逆運動学軌道SPからローパスフィルタによって高周波成分を除去した場合、高周波成分除去後の第一逆運動学軌道SPは、高周波成分除去前の第一逆運動学軌道SPに比べて位相遅れ(位相遅延)が発生することが知られている。そして、発生した位相遅延は第二サーボ制御系30に補償させることになり、つまり、本来は第一サーボ制御系20が実現すべき軌道の一部を第二サーボ制御系30に実現させることになり、第二サーボ制御系30の可動範囲を有効に利用することができない。
これに対して、前記制御方法は、第一逆運動学軌道SPに対する位相遅延が発生しないようにして第一逆運動学軌道SPから高周波成分を除去して補正後軌道SPfを生成する。そのため、第一サーボ制御系20は、高周波成分を除去した後の補正後軌道SPfに十分追従することができる。つまり、前記制御方法は、第一サーボ制御系20の追従性を維持することができる。
また、前記制御方法は、前記高周波成分の除去に伴って従来発生していた位相遅延の発生を防ぐので、第一サーボ制御系20が本来実現すべき軌道の一部を第二サーボ制御系30に補償させる必要がない。つまり、前記制御方法は、第二サーボ制御系30の可動範囲を有効に利用することができる。
以上に整理した通り、前記制御方法は、高周波成分の除去によって第一サーボ制御系20の追従性を維持しつつ、位相遅延の発生を防ぐことで第二サーボ制御系30の可動範囲を有効に利用することができる。したがって、前記制御方法は、第一サーボ制御系20の追従性を維持しつつ、第一サーボ制御系20および第二サーボ制御系30の各々について、その可動範囲を有効に利用することができるという効果を奏する。
(ゼロ位相フィルタ処理について)
ここで、ゼロ位相フィルタ部130が行うゼロ位相フィルタ処理(ゼロ位相フィルタリング)について、詳細を説明しておく。前述の通り、ゼロ位相フィルタ部130は、第一逆運動学軌道SP(i)に対し、時間軸の逆方向から順方向の順に(つまり時間軸について逆方向(逆順)に)、ローパスフィルタ処理を行なって、補正後軌道SPf(i)を生成する。
ゼロ位相フィルタ部130は、予め、1次遅れフィルタ計算の係数を求めておく。具体的には、ゼロ位相フィルタ部130は、予め、「a=Ts/(T+Ts)」および「b=T/(T+Ts)」を求めておく。ここで、Tsはサンプリング周期であり、Tはフィルタ時定数である。
ゼロ位相フィルタ部130は、第一逆運動学軌道SP(i)について時間軸を逆転させた、仮の軌道データSPr(i)を作成し、「SPr(i)=SP(n-i)」を求める。ゼロ位相フィルタ部130は、フィルタリング計算(ローパスフィルタ処理)の1回目(時間軸の逆方向)を実行し、すなわち、「SPfr(i)=a×SPr(i)+b×SPr(i-1)」を求める。ただし、「SPr(-1)=SPr(0)」とする。
ゼロ位相フィルタ部130は、時間軸を再度逆転させて元に戻し、すなわち、「SPfn(i)=SPfr(n-i)」を求める。ゼロ位相フィルタ部130は、フィルタリング計算2回目(順方向)を実行して、ゼロ位相フィルリング後の補正後軌道SPf(i)を求める。すなわち、ゼロ位相フィルタ部130は、「SPf(i)=a×SPfn(i)+b×SPfn(i-1)」を求める。ただし、「SPfn(-1)=SP(0)」とする。ここで、「SPfn(-1)=SPfn(0)」ではなく、「SPfn(-1)=SP(0)」とすることにより、ゼロ位相フィルタ部130は、スタート時のSPに飛びが生じないようにすることができる。
ゼロ位相フィルタ部130が、時間軸の逆順にゼロ位相フィルタ処理を行なう(つまり、ローパスフィルタ処理を時間軸の逆方向から順方向への1往復行なう)ことにより、スタート時のデータ飛びの発生を防ぐ点について、図4を用いて説明する。
(高周波成分の除去方法について)
図4は、第一逆運動学軌道SP(i)から高周波成分の除去する方法に応じて補正後軌道SPf(i)に発生する位相遅延およびデータ飛びについて説明する図である。図4において、縦軸は位置、横軸は時間(t)であり、図4の(A)、(B)、(C)の各々について、上段のスタート時点(t=0)付近を拡大して示すのが下段の図である。図4の(A)は、第一逆運動学軌道SP(i)に通常のローパスフィルタ処理(ローパスフィルタリング)を行なった時の、第一逆運動学軌道SP(i)および補正後軌道SPf(i)を示している。図4の(A)において、ローパスフィルタ特性は、カットオフ周波数10Hzの4次バターワース型である。図4の(B)は、第一逆運動学軌道SP(i)にローパスフィルタ処理を時間軸の順方向から逆方向への1往復実行した時の、第一逆運動学軌道SP(i)および補正後軌道SPf(i)を示している。図4の(C)は、第一逆運動学軌道SP(i)にローパスフィルタ処理を時間軸の逆方向から順方向への1往復実行した時の、第一逆運動学軌道SP(i)および補正後軌道SPf(i)を示している。図4の(B)および(C)において、ゼロ位相フィルタのフィルタ特性は、カットオフ周波数10Hzの2次バターワース型である。
図4の(A)に示すように、通常のローパスフィルタ処理(フィルタリング処理)を行った場合、このフィルタリング処理により、補正後軌道SPf(i)について、第一逆運動学軌道SP(i)からの位相遅れ(位相遅延)が発生している。
これに対し、図4の(B)および(C)に示すように、ゼロ位相フィルタ処理を実行することで、言い換えれば、「フィルタリング処理を時間軸の順方向と逆方向との両方向に1回ずつ計2回実行する(1往復実行する)」ことで、位相遅れを除去できる。
ただし、「フィルタリング処理を時間軸の順方向から逆方向への1往復実行した(つまり、フィルタリング処理を時間軸の順方向から逆方向の順に実行した)」場合、図4の(B)に示されているように、スタート時点(t=0)でデータ飛びが発生する。
そこで、ゼロ位相フィルタ処理を「時間軸の逆方向から順方向へ」の順で実行することにより、言い換えれば「フィルタリング処理を、時間軸の逆方向から順方向への1往復実行する」ことにより、スタート時点でのデータ飛びを回避することができる。図4の(C)において、ゼロ位相フィルタ処理を「時間軸の逆方向から順方向へ」の順で実行することにより、スタート時点(t=0)でのデータ飛びを回避することができている。
(コントローラが奏する効果について)
コントローラ10が、第一サーボドライバ21および第二サーボドライバ31を介して、第一アクチュエータ22および第二アクチュエータ32を実際にどのように制御するかを、図5等を用いて説明していく。
図5は、制御システム1においてコントローラ10を用いて実施する制御テスト(制御シミュレーション)の内容を示す図である。コントローラ10と従来までのコントローラとについて、複雑な2次元軌跡のX軸成分について、制御性能(位置偏差)と第二アクチュエータ32の動作範囲とを比較する。なお、「従来までのコントローラ」とは、第一逆運動学演算部120から取得した第一逆運動学軌道SP(i)に対して、ローパスフィルタ処理を行なって、「第一サーボ制御系20についての指令軌道」を生成する協調制御コントローラである。すなわち、コントローラ10は、第一逆運動学軌道SP(i)に「ゼロ位相フィルタ処理」を行なって、「第一サーボ制御系20についての指令軌道」を生成する。これに対し、「従来までのコントローラ」は、第一逆運動学軌道SP(i)に「ローパスフィルタ処理」を行なって、「第一サーボ制御系20についての指令軌道」を生成する。その他の点については、コントローラ10と従来までのコントローラとに違いはないものとする。
制御テストに用いた2次元軌跡は以下の2つの曲線1および曲線2を合成したものであり、すなわち、「曲線1:円、1秒で1周、半径10mm」であり、「曲線2:正葉線、0.1秒で1周、葉数9、葉の長さ2mm」とする。図5の(A)には、曲線1+曲線2のXY軌跡が示されている。図5の(A)において、縦軸はY軸位置、横軸はX軸位置である。図5の(B)には、図5の(A)のXY軌跡のX軸指令値が示されており、図5の(B)において、縦軸はX軸指令値(位置)、横軸は時間(t)である。なお、開始直後の0.02s間は一定加速度で滑らかに加速するものとする。
第一アクチュエータ22および第二アクチュエータ32は共にXY2軸の構成とする。第一サーボドライバ21および第二サーボドライバ31の各々の制御周期は共に1/12msとする。つまり、第一サーボドライバ21の第一アクチュエータ22に対する制御周期は1/12msであり、第二サーボドライバ31の第二アクチュエータ32に対する制御周期は1/12msである。また、コントローラ10の制御周期、つまり、コントローラ10の第一サーボドライバ21(低速サーボ制御系)および第二サーボドライバ31(高速サーボ制御系)の各々に対する指令値の更新周期は、低速側:1ms、高速側:1/12msとする。
(従来のコントローラによる位置等の制御)
図18は、図5に示す制御テストについて、従来のコントローラによって制御された第一アクチュエータ22および第二アクチュエータ32の各々の位置、位置偏差、およびトルクの変化を示す図である。図18の(A)には、上から順に、従来のコントローラによって制御された第一アクチュエータ22の位置、位置偏差、およびトルクの変化が示されている。図18の(B)には、上から順に、従来のコントローラによって制御された第二アクチュエータ32の位置、位置偏差、およびトルクの変化が示されている。図18に示す各図において、横軸はいずれも時間(t)である。
図19は、図5に示す制御テストについて、従来のコントローラによって制御された第一アクチュエータ22および第二アクチュエータ32の合計の位置(図19の(A))および位置偏差(図19の(B))の変化を示す図である。図19に示す各図において、横軸はいずれも時間(t)である。なお、図19の(A)において、指令値と低速高速合成制御量(第一アクチュエータ22の制御量の実測値と第二アクチュエータ32の制御量の実測値とを合計(合成)した値)とは、ほぼ重なっている。
図18および図19に制御テスト(制御シミュレーション)の結果を示した「従来のコントローラ」について、ローパスフィルタ特性は、カットオフ周波数10Hzの4次バターワース型である。前述の通り、「従来までのコントローラ」は、第一逆運動学軌道SP(i)に「ゼロ位相フィルタ処理」の代わりに「ローパスフィルタ処理」を行なって「第一サーボ制御系20についての指令軌道」を生成する点以外は、コントローラ10と同様である。図18および図19に示されているように、「従来までのコントローラ」を用いた場合、高速アクチュエータ(第二アクチュエータ32)の動作範囲は、約プラスマイナス4.5mmである(図18の(B)の最上段に示す軌跡)。「従来までのコントローラ」を用いた場合、「ローパスフィルタ処理」による位相遅れ(位相遅延)分が、高速アクチュエータ側の動作範囲を広げている。
(コントローラ10による位置等の制御)
図6は、図5に示す制御テストについて、コントローラ10によって制御された第一アクチュエータ22および第二アクチュエータ32の各々の位置、位置偏差、およびトルクの変化を示す図である。図6の(A)には、上から順に、コントローラ10によって制御された第一アクチュエータ22の位置、位置偏差、およびトルクの変化が示されている。図6の(B)には、上から順に、コントローラ10によって制御された第二アクチュエータ32の位置、位置偏差、およびトルクの変化が示されている。図6に示す各図において、横軸はいずれも時間(t)である。
図7は、図5に示す制御テストについて、コントローラ10によって制御された第一アクチュエータ22および第二アクチュエータ32の合計(総合)の位置(図7の(A))および位置偏差(図7の(B))の変化を示す図である。図7に示す各図において、横軸はいずれも時間(t)である。なお、図7の(A)において、指令値と低速高速合成制御量(第一アクチュエータ22の制御量の実測値と第二アクチュエータ32の制御量の実測値とを合計(合成)した値)とは、ほぼ重なっている。
コントローラ10は、第一逆運動学軌道SP(i)に、「時間軸の逆方向から順方向へ」の順にローパスフィルタを一往復実行して、「第一サーボ制御系20についての指令軌道」を生成する。つまり、コントローラ10は、第一逆運動学軌道SP(i)に、「時間軸の逆方向から順方向へ」の順にゼロ位相フィルタ処理を実行して、「第一サーボ制御系20についての指令軌道」を生成する。コントローラ10の用いたローパスフィルタのローパスフィルタ特性は、カットオフ周波数10Hzの2次バターワース型である。
低速アクチュエータ(第一アクチュエータ22)、高速アクチュエータ(第二アクチュエータ32)、および総合(第一アクチュエータ22と第二アクチュエータ32との合計)のいずれの偏差も、「従来までのコントローラ」を用いた場合と同等である。
ただし、コントローラ10を用いた場合、図6および図7に示されているように、高速アクチュエータの動作範囲は約プラスマイナス2.0mmとなっている(図6の(B)の最上段に示す軌跡)。したがって、コントローラ10を用いた場合、高速アクチュエータの動作範囲を、「従来までのコントローラ」を用いた場合の「約プラスマイナス4.5mm(図18の(B)の最上段に示す軌跡)」と比べて、1/2以下に低減することができている。
以上に説明した通り、コントローラ10は、低速アクチュエータ(第一アクチュエータ22)についての軌道(指令軌道)の位相遅れを低減させることにより、高速アクチュエータ(第二アクチュエータ32)の動作範囲を節約することができている。
〔実施形態2〕
本発明の実施形態2について、図8および図9に基づいて説明すれば、以下のとおりである。なお、説明の便宜上、前記実施形態にて説明した部材と同じ機能を有する部材については、同じ符号を付記し、その説明を省略する。本実施形態における制御システム2が、上述の実施形態1における制御システム1と異なるのは、本実施形態に係る制御装置であるコントローラ11が、コントローラ10のゼロ位相フィルタ部130に代えて、包絡線平均取得部131を備えている点である。「ゼロ位相フィルタ部130に代えて包絡線平均取得部131を備える」点以外の点においては、コントローラ11の構成は、コントローラ10の構成と同様である。
(制御装置の概要)
コントローラ11(制御装置)は、第一逆運動学軌道SP(基準軌道)から位相遅延が発生しないようにして高周波成分を除去した補正後軌道SPf(第一指令軌道)を、第一サーボ制御系20についての指令軌道とする包絡線平均取得部131と、第二サーボ制御系30についての指令軌道として、前記高周波成分に対応する軌道を含む第二逆運動学軌道IKt(第二指令軌道)を生成する第二逆運動学演算部150(第二軌道生成部)と、を備えている。
前記の構成によれば、コントローラ11は、第一逆運動学軌道SPからの位相遅延が発生しないようにして第一逆運動学軌道SPから高周波成分を除去して、第一サーボ制御系20についての指令軌道である補正後軌道SPfを生成する。
ここで、第一逆運動学軌道SPからローパスフィルタによって高周波成分を除去した場合、高周波成分除去後の第一逆運動学軌道SPは、高周波成分除去前の第一逆運動学軌道SPに比べて位相遅れ(位相遅延)が発生することが知られている。そして、発生した位相遅延は第二サーボ制御系30に補償させることになり、つまり、本来は第一サーボ制御系20が実現すべき軌道の一部を第二サーボ制御系30に実現させることになり、第二サーボ制御系30の可動範囲を有効に利用することができない。
これに対して、コントローラ11は、第一逆運動学軌道SPに対する位相遅延が発生しないようにして第一逆運動学軌道SPから高周波成分を除去して補正後軌道SPfを生成する。そのため、第一サーボ制御系20は、高周波成分を除去した後の補正後軌道SPfに十分追従することができる。つまり、コントローラ11は、第一サーボ制御系20の追従性を維持することができる。
また、コントローラ11は、前記高周波成分の除去に伴って従来発生していた位相遅延の発生を防ぐので、第一サーボ制御系20が本来実現すべき軌道の一部を第二サーボ制御系30に補償させる必要がない。つまり、コントローラ11は、第二サーボ制御系30の可動範囲を有効に利用することができる。
以上に整理した通り、コントローラ11は、高周波成分の除去によって第一サーボ制御系20の追従性を維持しつつ、位相遅延の発生を防ぐことで第二サーボ制御系30の可動範囲を有効に利用することができる。したがって、コントローラ11は、第一サーボ制御系20の追従性を維持しつつ、第一サーボ制御系20および第二サーボ制御系30の各々について、その可動範囲を有効に利用することができるという効果を奏する。
コントローラ11において、包絡線平均取得部131は、第一逆運動学軌道SPを示す曲線の、上下の包絡線の平均から、補正後軌道SPfを生成する。
前記の構成によれば、コントローラ11は、第一逆運動学軌道SPを示す曲線の、上下の包絡線の平均から、補正後軌道SPfを生成することにより、第一逆運動学軌道SPからの位相遅延が発生しないようにして高周波成分を除去して補正後軌道SPfを生成する。つまり、コントローラ11は、高周波成分の除去によって第一サーボ制御系20の追従性を維持しつつ、位相遅延の発生を防ぐことで第二サーボ制御系30の可動範囲を有効に利用することができる。
したがって、コントローラ11は、第一サーボ制御系20の追従性を維持しつつ、第一サーボ制御系20および第二サーボ制御系30の各々について、その可動範囲を有効に利用することができるとの効果を奏する。
これまでに概要を整理してきたコントローラ11について、次に、その構成等の詳細について、図8等を用いて説明していく。
(制御装置の詳細)
図8は、本発明の実施形態2に係るコントローラ等の要部構成等を示すブロック図である。上述の通り、「ゼロ位相フィルタ部130に代えて包絡線平均取得部131を備える」点以外は、コントローラ11の構成は、コントローラ10の構成と同様であるため、包絡線平均取得部131についてのみ、説明する。
包絡線平均取得部131は、第一逆運動学演算部120から取得した第一逆運動学軌道SP(i)を示す曲線の、上下の包絡線の平均から、補正後軌道SPf(i)を生成する。包絡線平均取得部131が第一逆運動学軌道SP(i)からどのように補正後軌道SPf(i)を生成するのかを図9を用いて説明する。
図9は、コントローラ11が、目標軌道Ttに逆運動学演算を行なって生成した第一逆運動学軌道SP(i)を示す曲線の上下包絡線の平均から補正後軌道SPf(i)を生成する方法を説明する図である。図9において、縦軸は位置、横軸は時間(t)である。なお、図9において、第一逆運動学軌道SP(i)は「演算軌道」と略記し、第一逆運動学軌道SP(i)を示す曲線の上包絡線を「上包絡線」と、第一逆運動学軌道SP(i)を示す曲線の下包絡線を「下包絡線」と、略記している。さらに、「上包絡線」と「下包絡線」との平均を示す曲線を「平均線」と略記している。
包絡線平均取得部131は、「第一逆運動学軌道SP(i)を示す、時間軸を横軸とする曲線」について上下の包絡線を求め、その上下の包絡線の平均を示す線(図9における「平均線」)を、補正後軌道SPf(i)を示す曲線とする。包絡線平均取得部131は、「第一逆運動学軌道SP(i)を示す、時間軸を横軸とする曲線」の上下包絡線の平均から補正後軌道SPf(i)を生成することにより、第一逆運動学軌道SP(i)から、位相遅延が発生しないようにして高周波成分を除去する。
以上を整理すれば、コントローラ11は、目標軌道Ttに逆運動学演算を行なって生成した軌道から位相遅延が発生しないようにして高周波成分を除去した軌道、第一アクチュエータ22についての指令軌道とする。具体的には、コントローラ10は、第一逆運動学軌道SP(i)を示す曲線の上下包絡線の平均を使用する。
コントローラ11は、低速アクチュエータ(第一アクチュエータ22)についての軌道(指令軌道)の位相遅れ(位相遅延)を低減させることにより、高速アクチュエータ(第二アクチュエータ32)の動作範囲を節約することができる。したがって、コントローラ11は、より高速の軌道に対応できる。また、コントローラ11は、ローパスフィルタの効果を強めて、低速アクチュエータの追従性を向上させることができ、トータル(第一サーボ制御系20および第二サーボ制御系30の全体)の制御精度を向上することができる。さらに、コントローラ11は、制御システム2において採用する高速アクチュエータについて選択肢を広がることができ、採用する高速アクチュエータについての選定を容易にすることができる。
〔実施形態3〕
本発明の実施形態3について、図10~図14に基づいて説明すれば、以下のとおりである。なお、説明の便宜上、前記実施形態にて説明した部材と同じ機能を有する部材については、同じ符号を付記し、その説明を省略する。本実施形態における制御システム3が、上述の実施形態1における制御システム1と異なるのは、本実施形態に係る制御装置であるコントローラ12が、コントローラ10の指示部170に代えて、MPC指令部180を備えている点である。「指示部170に代えてMPC指令部180を備える」点以外の点においては、コントローラ11の構成は、コントローラ10の構成と同様である。なお、MPCは、「モデル予測制御(Model Predictive Control)」を意味しており、以下の説明においては、「モデル予測制御」を適宜、「MPC」と略記することがある。
(制御システムの概要)
図11は、コントローラ12を含む制御システム3の全体概要を示す図である。制御システム3のコントローラ12には、予め作成されていた低速サーボシステム(第一サーボ制御系20)の動特性モデルが設定される。コントローラ12は、第一サーボ制御系20の動特性モデルを用いて、第一サーボ制御系20についてモデル予測制御を行なう。具体的には、コントローラ12は、補正後軌道SPf(i)から第一サーボ制御系20に対する制御周期ごとに生成する第一指令値Pc(i)を、第一サーボ制御系20の動特性モデルを用いたMPCによって補正する。そして、コントローラ12は、補正した第一指令値Pc(i)を第一サーボ制御系20に出力する。コントローラ12は、第二サーボ制御系30の動特性モデルを用いて、第二サーボ制御系30についてMPCを行なってもよい。
コントローラ12は、MPCによる位置補正制御によって、低速アクチュエータ(第一アクチュエータ22)側の応答遅れを低減させることにより、追従性能を向上させる。
(制御装置の概要)
コントローラ12(制御装置)は、第一サーボ制御系20の動特性モデルを用いて、補正後軌道SPfに対応する第一サーボ制御系20の応答を予測する第一応答予測部183(予測部)を備えている。
前記の構成によれば、コントローラ12は、第一サーボ制御系20の動特性モデルを用いて、補正後軌道SPfに対応する第一サーボ制御系20の応答を予測する。したがって、コントローラ12は、第一サーボ制御系20の動特性モデルを用いて、補正後軌道SPfに対応する第一サーボ制御系20の応答を予測することができるとの効果を奏する。
コントローラ12において、第一応答予測部183は、第一サーボ制御系20の動特性モデルを用いて、補正後軌道SPfから生成する第一指令値Pcに対する第一サーボ制御系20の出力である制御量を予測する。コントローラ12は、第一応答予測部183によって予測された制御量と、第一サーボ制御系20からフィードバック情報として取得する「第一サーボ制御系20の制御量の実測値」と、を用いたモデル予測制御によって補正した第一指令値Pcを、第一サーボ制御系20に出力する第一MPC位置指令部181(指示部)を備えている。
前記の構成によれば、コントローラ12は、「第一サーボ制御系20の動特性モデルを用いて予測した制御量」と、「第一サーボ制御系20の制御量の実測値」と、を用いたモデル予測制御によって補正した第一指令値Pcを、第一サーボ制御系20に出力する。
したがって、コントローラ12は、第一サーボ制御系20の補正後軌道SPfへの追従性能を向上させることができ、さらに、第一サーボ制御系20および第二サーボ制御系30の全体の追従性能を向上させることができるとの効果を奏する。
コントローラ12は、第一サーボ制御系20の動特性モデルを使用して応答遅れを予測し、予測した応答遅れを第一サーボ制御系20において取り戻す協調制御コントローラである。すなわち、コントローラ12は、第一サーボ制御系20の動特性モデルを用いたモデル予測制御による位置補正制御によって、低速アクチュエータ(第一アクチュエータ22)の軌道追従性を向上させる。
また、コントローラ12は、第二サーボ制御系30の動特性モデルを用いたモデル予測制御による位置補正制御によって、高速アクチュエータ(第二アクチュエータ32)の軌道追従性を向上させる。
これまでに概要を整理してきたコントローラ12について、次に、その構成等の詳細について、図10等を用いて説明していく。
(制御装置の詳細)
図10は、コントローラ12等の要部構成等を示すブロック図である。上述の通り、「指示部170に代えてMPC指令部180を備える」点以外は、コントローラ12の構成は、コントローラ10の構成と同様であるため、MPC指令部180についてのみ、説明する。
MPC指令部180は、第一サーボ制御系20に第一指令値Pc(i)を出力する第一MPC位置指令部181と、第二サーボ制御系30に第二指令値Sc(i)を出力する第二MPC位置指令部182と、を含んでいる。
第一MPC位置指令部181は第一応答予測部183を含み、第一応答予測部183には、予め作成された第一サーボ制御系20の動特性モデルが設定されている。第一応答予測部183は、第一サーボ制御系20の動特性モデルを予め作成しておき、作成した第一サーボ制御系20の動特性モデルを自身に設定しておいてもよい。
第一MPC位置指令部181は、以下の2つの処理を実行する。第一に、第一MPC位置指令部181は、第一サーボ制御系20に対する制御周期ごとに、「第一サーボ制御系20についての指令軌道」から第一サーボ制御系20の軸ごとの第一指令値Pc(i)を生成する。例えば、第一MPC位置指令部181は、記憶部160の第一指示軌道テーブル161を参照して、「第一サーボ制御系20についての指令軌道」として、補正後軌道SPf(i)を取得する。そして、第一MPC位置指令部181は、例えば1msごとに、補正後軌道SPf(i)から第一サーボ制御系20の軸ごとの第一指令値Pc(i)を生成する。
第二に、第一MPC位置指令部181は、補正後軌道SPf(i)から第一サーボ制御系20に対する制御周期ごとに生成する第一指令値Pc(i)を、モデル予測制御によって補正し、補正した第一指令値Pc(i)を第一サーボ制御系20に出力する。
具体的には、第一応答予測部183は、設定されている第一サーボ制御系20の動特性モデルを用いて、第一指令値Pc(i)に対する第一サーボ制御系20の出力である制御量を予測する。第一MPC位置指令部181は、第一応答予測部183によって予測された制御量と、第一サーボ制御系20からフィードバック情報として取得する第一サーボ制御系20の制御量の実測値と、を用いたモデル予測制御を実行する。すなわち、第一MPC位置指令部181は、第一応答予測部183が第一サーボ制御系20の動特性モデルを用いて予測した「第一サーボ制御系20の出力である制御量」と、第一サーボ制御系20の制御量の実測値と、を用いて第一指令値Pc(i)を補正する。そして、第一MPC位置指令部181は、モデル予測制御を用いて補正した第一指令値Pc(i)を、第一サーボ制御系20に対する制御周期ごとに、第一サーボ制御系20に出力する。第一MPC位置指令部181は、例えば1msごとに、補正した第一指令値Pc(i)を第一サーボ制御系20に出力する。
第二MPC位置指令部182は第二応答予測部184を含み、第二応答予測部184には、予め作成された第二サーボ制御系30の動特性モデルが設定されている。第二応答予測部184は、第二サーボ制御系30の動特性モデルを予め作成しておき、作成した第二サーボ制御系30の動特性モデルを自身に設定しておいてもよい。
第二MPC位置指令部182は、以下の2つの処理を実行する。第一に、第二MPC位置指令部182は、第二サーボ制御系30に対する制御周期ごとに、「第二サーボ制御系30についての指令軌道」から第二サーボ制御系30の軸ごとの第二指令値Sc(i)を生成する。例えば、第二MPC位置指令部182は、記憶部160の第二指示軌道テーブル162を参照して、「第二サーボ制御系30についての指令軌道」として、第二逆運動学軌道IKt(i)を取得する。そして、第二MPC位置指令部182は、例えば、1/12msごとに、第二逆運動学軌道IKt(i)から第二サーボ制御系30の軸ごとの第二指令値Sc(i)を生成する。
第二に、第二MPC位置指令部182は、第二逆運動学軌道IKt(i)から第二サーボ制御系30に対する制御周期ごとに生成する第二指令値Sc(i)を、モデル予測制御によって補正し、補正した第二指令値Sc(i)を第二サーボ制御系30に出力する。
具体的には、第二応答予測部184は、設定されている第二サーボ制御系30の動特性モデルを用いて、第二指令値Sc(i)に対する第二サーボ制御系30の出力である制御量を予測する。第二MPC位置指令部182は、第二応答予測部184によって予測された制御量と、第二サーボ制御系30からフィードバック情報として取得する第二サーボ制御系30の制御量の実測値と、を用いたモデル予測制御を実行する。すなわち、第二MPC位置指令部182は、第二応答予測部184が第二サーボ制御系30の動特性モデルを用いて予測した「第二サーボ制御系30の出力である制御量」と、第二サーボ制御系30の制御量の実測値と、を用いて第二指令値Sc(i)を補正する。そして、第二MPC位置指令部182は、モデル予測制御を用いて補正した第二指令値Sc(i)を、第二サーボ制御系30に対する制御周期ごとに、第二サーボ制御系30に出力する。第二MPC位置指令部182は、例えば1/12msごとに、補正した第二指令値Sc(i)を第二サーボ制御系30に出力する。
(動特性モデルについて)
第一サーボ制御系20および第二サーボ制御系30の各々の動特性モデルは、例えば、次の(式1)に示す離散時間伝達関数のように表される。(式1)において、uは入力を表し、yは出力(制御量の予測、つまり、制御量についての予測値)を表し、d、a~aおよびb~bは特性パラメータを表し、z-1は遅延演算子を表している。
Figure 0007024235000001
コントローラ12において、第一サーボ制御系20および第二サーボ制御系30の各々について、(式1)に例示するような動特性モデルが予め作成され、作成された各々の動特性モデルは第一応答予測部183および第二応答予測部184の各々に設定される。
なお、MPC指令部180が第二MPC位置指令部182および第二応答予測部184を備えることは必須ではなく、コントローラ12は少なくとも第一MPC位置指令部181および第一応答予測部183を備えればよい。すなわち、コントローラ12は、第一サーボ制御系20の動特性モデルを用いたモデル予測制御によって、低速アクチュエータ(第一アクチュエータ22)側の応答遅れを低減させることができればよい。第二アクチュエータ32にも追従性改善の余地がある場合、コントローラ12は、第二サーボ制御系30の動特性モデルを用いたモデル予測制御によって第二指令値Sc(i)を補正して、第二アクチュエータ32の追従性能を向上させてもよい。
(コントローラが実行する処理について)
図12は、コントローラ12が実行する処理の概要を示すフロー図である。コントローラ12は、第一サーボ制御系20の動特性モデルを予め作成しておき、作成しておいた第一サーボ制御系20の動特性モデルを用いて、低速アクチュエータ(第一アクチュエータ22)側のMPC位置補正制御を実行する。具体的には、コントローラ12は、第一サーボ制御系20の動特性モデルを用いたMPCによって第一指令値Pc(i)を補正し、補正した第一指令値Pc(i)を第一サーボ制御系20に出力する。高速アクチュエータ(第二アクチュエータ32)にも追従性改善の余地がある場合、コントローラ12は、第二アクチュエータ32に対する制御についても、MPC位置補正制御を適用してもよい。言い換えれば、コントローラ12は、第二アクチュエータ32に対する制御についてもMPC位置補正制御を適用することにより、第二アクチュエータ32の応答遅れに起因する追従誤差を低減することができる。以下、コントローラ12が第一アクチュエータ22および第二アクチュエータ32についてMPC位置補正制御を実行する場合の、コントローラ12が実行する処理の詳細について、図12を用いて説明していく。
コントローラ12は、低速サーボシステム(第一サーボ制御系20)および高速サーボシステム(第二サーボ制御系30)の各々について、動特性モデルを予め作成しておき、第一応答予測部183および第二応答予測部184に設定しておく(S210)。
第一逆運動学演算部120は、目標軌道Ttから第一アクチュエータ22の軸毎の指令値を生成し、つまり、目標軌道Ttに逆運動学演算を行なって第一逆運動学軌道SP(i)を生成する(S220)。
ゼロ位相フィルタ部130は、軸毎の軌道(つまり、第一逆運動学軌道SP(i))に対して、ゼロ位相フィルタリングを実行し、生成した補正後軌道SPf(i)を、記憶部160の第一指示軌道テーブル161に格納する(S230)。
コントローラ12は、「ゼロ位相フィルタリング後の指令軌道から生成される指令値と、目標軌道の指令値と、の差分」を計算し、計算した差分から高速アクチュエータ(第二アクチュエータ32)の軸毎の指令値を生成する。
例えば、順運動学演算部140は、順運動学演算により、ゼロ位相フィルタリング後の軌道(つまり、補正後軌道SPf(i))から中間軌道(つまり、順運動学軌道FKt)を生成する(S240)。そして、第二逆運動学演算部150は、中間軌道と目標軌道Ttとの差分(誤差)を計算する(S250)。そして、第二逆運動学演算部150は、S250で計算した誤差(差分)を用いて、第二アクチュエータ32の軸毎の軌道を計算し、記憶部160の第二指示軌道テーブル162に格納する(S260)。具体的には、第二逆運動学演算部150は、「中間軌道(つまり、順運動学軌道FKt)と、目標軌道Ttと、の誤差」に逆運動学演算を行なって、第二サーボ制御系30の軸ごとの指令軌道である第二逆運動学軌道IKt(i)を生成する。そして、第二逆運動学演算部150は、生成した第二逆運動学軌道IKt(i)を、記憶部160の第二指示軌道テーブル162に格納する。
第二逆運動学演算部150は、第一逆運動学軌道SPと補正後軌道SPfとの誤差に対応する軌道を含む第二逆運動学軌道IKtを生成する。具体的には、第二逆運動学演算部150は、「補正後軌道SPfと、第二逆運動学軌道IKtとの合成軌道が、目標軌道Ttに一致する」ようにして、第一逆運動学軌道SPと補正後軌道SPfとの誤差に対応する軌道を含む第二逆運動学軌道IKtを生成する。
コントローラ12は、MPC位置補正制御により、低速サーボシステムおよび高速サーボシステムの各々への補正後指令値を計算し、計算した補正後指令値を低速サーボシステムおよび高速サーボシステムの各々に出力する(S270)。具体的には、MPC指令部180は、第一指令値Pc(i)と第二指令値Sc(i)との各々を、第一サーボ制御系20および第二サーボ制御系30の動特性モデルを用いたMPCにより補正し、補正した第一指令値Pc(i)と第二指令値Sc(i)とを出力する。
第一MPC位置指令部181は、第一指示軌道テーブル161に格納されている補正後軌道SPf(i)から第一サーボ制御系20に対する制御周期ごとに生成される第一指令値Pc(i)を、第一サーボ制御系20の動特性モデルを用いたMPCにより補正する。そして、第一MPC位置指令部181は、補正した第一指令値Pc(i)を第一サーボ制御系20に出力する。
第二MPC位置指令部182は、第二指示軌道テーブル162に格納されている第二逆運動学軌道IKt(i)から第二サーボ制御系30に対する制御周期ごとに生成される第二指令値Sc(i)を、第二サーボ制御系30の動特性モデルを用いたMPCにより補正する。そして、第二MPC位置指令部182は、補正した第二指令値Sc(i)を第二サーボ制御系30に出力する。そして、コントローラ12は、軌道終点に到達したかを判定しながら(S280)、制御周期ごとに、S250~S270の処理を、または、S270の処理を、繰り返す。具体的には、コントローラ12は、「S250~S270の処理、または、S270の処理」のうち、「第一サーボ制御系20のみに係る処理」を、軌道終点に到達したかを判定しながら(S280)、第一サーボ制御系20に対する制御周期で繰り返し実行する。また、コントローラ12は、「S250~S270の処理、または、S270の処理」のうち、「第一サーボ制御系20のみに係る処理」以外の処理(例えば、第二サーボ制御系30に係る処理)を、軌道終点に到達したかを判定しながら(S280)、第二サーボ制御系30に対する制御周期で繰り返し実行する。
(コントローラが奏する効果について)
図13は、図5に示す制御テストについて、コントローラ12によって制御された第一アクチュエータ22および第二アクチュエータ32の各々の位置、位置偏差、モデル予測誤差、およびトルクの変化を示す図である。図13の(A)には、上から順に、コントローラ12によって制御された第一アクチュエータ22の位置、位置偏差、モデル予測誤差、およびトルクの変化が示されている。図13の(B)には、上から順に、コントローラ12によって制御された第二アクチュエータ32の位置、位置偏差、モデル予測誤差、およびトルクの変化が示されている。図13に示す各図において、横軸はいずれも時間(t)である。
図14は、図5に示す制御テストについて、コントローラ12によって制御された第一アクチュエータ22および第二アクチュエータ32の合計の位置(図14の(A))および位置偏差(図14の(B))の変化を示す図である。図14に示す各図において、横軸はいずれも時間(t)である。なお、図14の(A)において、指令値と低速高速合成制御量(第一アクチュエータ22の制御量の実測値と第二アクチュエータ32の制御量の実測値とを合計(合成)した値)とは、ほぼ重なっている。
コントローラ12は、第一逆運動学軌道SP(i)に、「時間軸の逆方向から順方向へ」の順にローパスフィルタを一往復実行して、「第一サーボ制御系20についての指令軌道」を生成する。つまり、コントローラ12は、第一逆運動学軌道SP(i)に、「時間軸の逆方向から順方向へ」の順にゼロ位相フィルタ処理を実行して、「第一サーボ制御系20についての指令軌道」を生成する。コントローラ12の用いたローパスフィルタのローパスフィルタ特性は、カットオフ周波数10Hzの2次バターワース型である。コントローラ12は、さらに、第一サーボ制御系20および第二サーボ制御系30の動特性モデルを用いたMPCにより第一指令値Pc(i)と第二指令値Sc(i)との各々を補正し、追従性能を向上させている。
コントローラ12は、コントローラ10と同様に、図18および図19に制御結果を示した従来のコントローラと比べて、低速アクチュエータについての指令軌道の位相遅れを低減させることにより、高速アクチュエータの動作範囲を節約することができている。また、図14の(B)に例示する位置偏差は、図7の(B)に例示する位置偏差よりも格段に小さくなっている。
〔実施形態4〕
本発明の実施形態4について、図15~図17に基づいて説明すれば、以下のとおりである。なお、説明の便宜上、前記実施形態にて説明した部材と同じ機能を有する部材については、同じ符号を付記し、その説明を省略する。本実施形態における制御システム4が、上述の実施形態1における制御システム1と異なるのは、本実施形態に係る制御装置であるコントローラ13が、コントローラ10の構成に加えて、応答予測部190を備えている点である。「応答予測部190をさらに備える」点以外の点においては、コントローラ13の構成は、コントローラ10の構成と同様である。
(制御システムの概要)
図16は、コントローラ13を含む制御システム4の全体概要を示す図である。制御システム4のコントローラ13には、予め作成されていた低速サーボシステム(第一サーボ制御系20)の動特性モデルが設定される。コントローラ13は、ゼロ位相フィルタ処理後の補正後軌道SPf(i)に対応する低速サーボ(つまり、第一サーボ制御系20)の応答を、設定されている低速サーボシステムの動特性モデルを用いて、予測する。
ここで、前述のコントローラ12とコントローラ13とは、第一サーボ制御系20の動特性モデルを使用して応答遅れを予測する点において共通している。コントローラ12とコントローラ13とは、予測した応答遅れをどこで取り戻すかが異なっている。コントローラ12が予測した応答遅れを第一サーボ制御系20において取り戻すのに対して、コントローラ13は、予測した応答遅れを第二サーボ制御系30(第二アクチュエータ32)において取り戻す。
コントローラ13は、第一アクチュエータ22の応答を予測し、応答遅れ分を第二アクチュエータ32についての指令軌道に反映することによって、応答遅れ分を第二サーボ制御系30(第二アクチュエータ32)において取り戻す。具体的には、コントローラ13は、「予測した第一サーボ制御系20の応答に順運動学演算を行なって生成した中間軌道と、目標軌道Ttと、の誤差」に逆運動学演算を行なって、第二サーボ制御系30についての指令軌道を生成する。
上述の方法により、コントローラ13は、「予測した第一サーボ制御系20(第一アクチュエータ22)の応答」を反映させた「第二サーボ制御系30についての指令軌道」を生成する。そして、コントローラ13は、「予測した第一サーボ制御系20の応答」を反映させた「第二サーボ制御系30についての指令軌道」から、「第二サーボ制御系30に対する指令値」である第二指令値Sc(i)を生成する。コントローラ13は、生成した第二指令値Sc(i)を第二サーボ制御系30に出力することにより、第一サーボ制御系20および第二サーボ制御系30の全体の追従性能を向上することができる。
つまり、コントローラ13は、第一アクチュエータ22側の応答遅れ分を第二アクチュエータ32側でカバーさせることにより、第一アクチュエータ22と第二アクチュエータ32との合計(総合)の追従性能を向上させる。ただし、コントローラ13による制御は、コントローラ12による制御に比べて、第二アクチュエータ32の動作範囲を広くする傾向がある。
(制御装置の概要)
コントローラ13(制御装置)は、第一サーボ制御系20の動特性モデルを用いて、補正後軌道SPfに対応する第一サーボ制御系20の応答を予測する応答予測部190(予測部)を備えている。
前記の構成によれば、コントローラ13は、第一サーボ制御系20の動特性モデルを用いて、補正後軌道SPfに対応する第一サーボ制御系20の応答を予測する。したがって、コントローラ13は、第一サーボ制御系20の動特性モデルを用いて、補正後軌道SPfに対応する第一サーボ制御系20の応答を予測することができるとの効果を奏する。
コントローラ13において、第二逆運動学演算部150(第二軌道生成部)は、応答予測部190によって予測された第一サーボ制御系20の応答を用いて生成する順運動学軌道FKt(中間軌道)と、第一逆運動学軌道SP(または、目標軌道Tt)と、の誤差に対応する軌道を含む第二逆運動学軌道IKt(第二指令軌道)を生成する。
すなわち、第二逆運動学演算部150は、「第二サーボ制御系30についての指令軌道」として、「ゼロ位相フィルタ部130により第一逆運動学軌道SP(i)から除去された高周波成分」に対応する軌道を含む第二逆運動学軌道IKtを生成する。具体的には、第二逆運動学演算部150は、第一逆運動学軌道SPと、応答予測部190によって予測された第一サーボ制御系20の応答から生成される中間軌道と、の誤差に対応する軌道を含む第二逆運動学軌道IKtを生成する。第二逆運動学演算部150は、「中間軌道と、第二逆運動学軌道IKtとの合成軌道が、目標軌道Ttに一致する」ようにして、第一逆運動学軌道SPと中間軌道との誤差に対応する軌道を含む第二逆運動学軌道IKtを生成する。
また第二逆運動学演算部150は、例えば、目標軌道Ttと、中間軌道と、の誤差を用いて、第二逆運動学軌道IKtを生成してもよい。すなわち、第二逆運動学演算部150は、「中間軌道と、第二逆運動学軌道IKtとの合成軌道が、目標軌道Ttに一致する」ようにして、目標軌道Ttと中間軌道との誤差を用いて、第二逆運動学軌道IKtを生成してもよい。
前記の構成によれば、コントローラ13は、応答予測部190によって予測された第一サーボ制御系20の応答を用いて生成する順運動学軌道FKtと、第一逆運動学軌道SP(または、目標軌道Tt)と、の誤差に対応する軌道を含む第二逆運動学軌道IKtを生成する。
したがって、コントローラ13は、第一サーボ制御系20の応答遅れを第二サーボ制御系30によって補償することができ、第一サーボ制御系20および第二サーボ制御系30の全体の追従性能を向上させることができるとの効果を奏する。
これまでに概要を整理してきたコントローラ13について、次に、その構成等の詳細について、図15等を用いて説明していく。
(制御装置の詳細)
図15は、本発明の実施形態4に係るコントローラ13等の要部構成等を示すブロック図である。上述の通り、「応答予測部190をさらに備える」点以外は、コントローラ13の構成は、コントローラ10の構成と同様であるため、応答予測部190についてのみ、説明する。
応答予測部190は、低速サーボシステム(つまり、第一サーボ制御系20)の動特性モデルを予め作成し、作成しておいた動特性モデルを用いて、ゼロ位相フィルタ部130が生成した補正後軌道SPf(i)に対応する第一サーボ制御系20の応答を予測する。応答予測部190は、予測した第一サーボ制御系20の応答を、順運動学演算部140に出力し、順運動学演算部140は、応答予測部190により予測された第一サーボ制御系20の応答に対する順運動学演算から、順運動学軌道FKt(中間軌道)を生成する。応答予測部190が用いる「第一サーボ制御系20の動特性モデル」は、例えば、前述の(式1)に示す離散時間伝達関数のように表されてもよい。
(コントローラが実行する処理について)
図17は、コントローラ13が実行する処理の概要を示すフロー図である。先ず、低速サーボシステム(第一サーボ制御系20)の動特性モデルを作成して、低速サーボ応答予測部(つまり、応答予測部190)に設定しておく(S310)。
第一逆運動学演算部120は、目標軌道Ttから第一アクチュエータ22の軸毎の指令値を生成し、つまり、目標軌道Ttに逆運動学演算を行なって第一逆運動学軌道SP(i)を生成する(S320)。
ゼロ位相フィルタ部130は、軸毎の軌道(つまり、第一逆運動学軌道SP(i))に対して、ゼロ位相フィルタリングを実行し、生成した補正後軌道SPf(i)を、記憶部160の第一指示軌道テーブル161に格納する(S330)。
応答予測部190は、第一サーボ制御系20の動特性モデルを用いて、補正後軌道SPf(i)に対する低速サーボシステムの軸毎の応答を予測計算し、つまり、補正後軌道SPf(i)に対応する第一サーボ制御系20の応答を予測する(S340)。
コントローラ13は、「予測応答(第一サーボ制御系20の制御量についての予測値)と、目標軌道の指令値と、の差分」を計算し、計算した差分から高速アクチュエータ(第二アクチュエータ32)の軸毎の指令値を生成する。
例えば、順運動学演算部140は、応答予測部190によって予測された第一サーボ制御系20の応答(第一サーボ制御系20の制御量についての予測値)に、順運動学演算を行なって、中間軌道(つまり、順運動学軌道FKt)を生成する(S350)。そして、第二逆運動学演算部150は、中間軌道と目標軌道Ttとの差分(誤差)を計算する(S360)。そして、第二逆運動学演算部150は、S360で計算した誤差(差分)を用いて、第二アクチュエータ32の軸毎の軌道を計算し、記憶部160の第二指示軌道テーブル162に格納する(S370)。具体的には、第二逆運動学演算部150は、「中間軌道(つまり、順運動学軌道FKt)と、目標軌道Ttと、の誤差」に逆運動学演算を行なって、第二サーボ制御系30の軸ごとの指令軌道である第二逆運動学軌道IKt(i)を生成する。そして、第二逆運動学演算部150は、生成した第二逆運動学軌道IKt(i)を、記憶部160の第二指示軌道テーブル162に格納する。第二逆運動学演算部150は、第一逆運動学軌道SPと「応答予測部190によって予測された第一サーボ制御系20の応答から生成した中間軌道」との誤差に対応する軌道を含む、第二逆運動学軌道IKtを生成する。
指示部170は、格納している軸毎の軌道から、現時刻の指令値を、低速サーボシステム(つまり、第一サーボ制御系20)および高速サーボシステム(つまり、第二サーボ制御系30)へ出力する(S380)。具体的には、第一指示部171は、第一指示軌道テーブル161に格納されている補正後軌道SPf(i)から、第一サーボ制御系20に対する制御周期ごとに、第一指令値Pc(i)を生成し、生成した第一指令値Pc(i)を第一サーボ制御系20に出力する。また、第二指示部172は、第二指示軌道テーブル162に格納されている第二逆運動学軌道IKt(i)から、第二サーボ制御系30に対する制御周期ごとに、第二指令値Sc(i)を生成し、生成した第二指令値Sc(i)を第二サーボ制御系30に出力する。コントローラ13は、軌道終点に到達したかを判定しながら(S390)、制御周期ごとに、S360~S380の処理を、または、S380の処理を、繰り返す。具体的には、コントローラ13は、「S360~S380の処理、または、S380の処理」のうち、「第一サーボ制御系20のみに係る処理」を、軌道終点に到達したかを判定しながら(S390)、第一サーボ制御系20に対する制御周期で繰り返し実行する。また、コントローラ13は、「S360~S380の処理、または、S380の処理」のうち、「第一サーボ制御系20のみに係る処理」以外の処理(例えば、第二サーボ制御系30に係る処理)を、軌道終点に到達したかを判定しながら(S390)、第二サーボ制御系30に対する制御周期で繰り返し実行する。
〔変形例〕
こでまで、コントローラ10、11、12、および13が第一サーボ制御系20および第二サーボ制御系30という2つのサーボ制御系を協調制御する例について説明してきた。しかしながら、コントローラ10、11、12、および13が協調制御するサーボ制御系が2つであることは必須ではない。コントローラ10、11、12、および13は、複数のサーボ制御系の各々に、目標軌道Ttを用いて生成した指令値を出力して、前記複数のサーボ制御系を協調制御できればよい。
〔ソフトウェアによる実現例〕
コントローラ10、11、12、および13の制御ブロック(特に、目標軌道取得部110、第一逆運動学演算部120、ゼロ位相フィルタ部130、包絡線平均取得部131、順運動学演算部140、第二逆運動学演算部150、指示部170、第一指示部171、第二指示部172、MPC指令部180、第一MPC位置指令部181、第二MPC位置指令部182、第一応答予測部183、第二応答予測部184、および、応答予測部190)は、集積回路(ICチップ)等に形成された論理回路(ハードウェア)によって実現してもよいし、ソフトウェアによって実現してもよい。
後者の場合、コントローラ10、11、12、および13は、各機能を実現するソフトウェアであるプログラムの命令を実行するコンピュータを備えている。このコンピュータは、例えば1つ以上のプロセッサを備えていると共に、上記プログラムを記憶したコンピュータ読み取り可能な記録媒体を備えている。そして、上記コンピュータにおいて、上記プロセッサが上記プログラムを上記記録媒体から読み取って実行することにより、本発明の目的が達成される。上記プロセッサとしては、例えばCPU(Central Processing Unit)を用いることができる。上記記録媒体としては、「一時的でない有形の媒体」、例えば、ROM(Read Only Memory)等の他、テープ、ディスク、カード、半導体メモリ、プログラマブルな論理回路などを用いることができる。また、上記プログラムを展開するRAM(Random Access Memory)などをさらに備えていてもよい。また、上記プログラムは、該プログラムを伝送可能な任意の伝送媒体(通信ネットワークや放送波等)を介して上記コンピュータに供給されてもよい。なお、本発明の一態様は、上記プログラムが電子的な伝送によって具現化された、搬送波に埋め込まれたデータ信号の形態でも実現され得る。
本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
10 コントローラ(制御装置)
11 コントローラ(制御装置)
12 コントローラ(制御装置)
13 コントローラ(制御装置)
20 第一サーボ制御系
30 第二サーボ制御系
130 ゼロ位相フィルタ部(第一軌道生成部)
131 包絡線平均取得部(第一軌道生成部)
150 第二逆運動学演算部(第二軌道生成部)
181 第一MPC位置指令部(指示部)
183 第一応答予測部(予測部)
190 応答予測部(予測部)
FKt 順運動学軌道(中間軌道)
IKt 第二逆運動学軌道(第二指令軌道)
Pc 第一指令値
SP 第一逆運動学軌道(基準軌道)
SPf 補正後軌道(第一指令軌道)
S120 第一軌道生成ステップ
S150 第二軌道生成ステップ

Claims (5)

  1. 目標軌道に逆運動学演算を行なって第一サーボ制御系の軸ごとの基準軌道を生成する逆運動学演算部と、
    前記基準軌道から位相遅延が発生しないようにして高周波成分を除去した第一指令軌道を、前記第一サーボ制御系についての軸ごとの指令軌道とする第一軌道生成部と、
    前記第一サーボ制御系の動特性モデルを用いて、前記第一指令軌道に対応する前記第一サーボ制御系の応答を予測する予測部と、
    前記予測部によって予測された前記第一サーボ制御系の応答を用いて、前記第一サーボ制御系の軸ごとの第一指令軌道の全てに対する順運動学演算から中間軌道を生成する順運動学演算部と、
    第二サーボ制御系についての軸ごとの指令軌道として、前記高周波成分に対応する軌道を含む第二指令軌道を、前記中間軌道と前記目標軌道との誤差に逆運動学演算を行なって生成する第二軌道生成部と、を備え、
    前記第一軌道生成部は、前記基準軌道に対し、時間軸の順方向と逆方向との両方向にローパスフィルタ処理を行なって前記第一指令軌道を生成することを特徴とする制御装置。
  2. 前記第一軌道生成部は、前記基準軌道に対し、時間軸の逆方向から順方向の順に前記ローパスフィルタ処理を行なって前記第一指令軌道を生成することを特徴とする請求項1に記載の制御装置。
  3. 目標軌道に逆運動学演算を行なって第一サーボ制御系の軸ごとの基準軌道を生成する逆運動学演算ステップと、
    前記基準軌道から位相遅延が発生しないようにして高周波成分を除去した第一指令軌道を、前記第一サーボ制御系についての軸ごとの指令軌道とする第一軌道生成ステップと、
    前記第一サーボ制御系の動特性モデルを用いて、前記第一指令軌道に対応する前記第一サーボ制御系の応答を予測する予測ステップと、
    前記予測ステップによって予測された前記第一サーボ制御系の応答を用いて、前記第一サーボ制御系の軸ごとの第一指令軌道の全てに対する順運動学演算から中間軌道を生成する順運動学演算ステップと、
    第二サーボ制御系についての軸ごとの指令軌道として、前記高周波成分に対応する軌道を含む第二指令軌道を、前記中間軌道と前記目標軌道との誤差に逆運動学演算を行なって生成する第二軌道生成ステップと、を含み、
    前記第一軌道生成ステップは、前記基準軌道に対し、時間軸の順方向と逆方向との両方向にローパスフィルタ処理を行なって前記第一指令軌道を生成することを特徴とする制御装置の制御方法。
  4. 請求項1または2に記載の制御装置としてコンピュータを機能させるための情報処理プログラムであって、前記各部としてコンピュータを機能させるための情報処理プログラム。
  5. 請求項に記載の情報処理プログラムを記録したコンピュータ読み取り可能な記録媒体。
JP2017139648A 2017-07-19 2017-07-19 制御装置、制御装置の制御方法、情報処理プログラム、および記録媒体 Active JP7024235B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2017139648A JP7024235B2 (ja) 2017-07-19 2017-07-19 制御装置、制御装置の制御方法、情報処理プログラム、および記録媒体
US15/894,958 US10354683B2 (en) 2017-07-19 2018-02-13 Servo control method having first and second trajectory generation units
CN201810148646.2A CN109283888B (zh) 2017-07-19 2018-02-13 控制装置、控制方法及记录介质
EP18156741.3A EP3432101A1 (en) 2017-07-19 2018-02-14 Control device, method of controlling control device, information processing program, and recording medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017139648A JP7024235B2 (ja) 2017-07-19 2017-07-19 制御装置、制御装置の制御方法、情報処理プログラム、および記録媒体

Publications (2)

Publication Number Publication Date
JP2019021086A JP2019021086A (ja) 2019-02-07
JP7024235B2 true JP7024235B2 (ja) 2022-02-24

Family

ID=61226414

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017139648A Active JP7024235B2 (ja) 2017-07-19 2017-07-19 制御装置、制御装置の制御方法、情報処理プログラム、および記録媒体

Country Status (4)

Country Link
US (1) US10354683B2 (ja)
EP (1) EP3432101A1 (ja)
JP (1) JP7024235B2 (ja)
CN (1) CN109283888B (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109690441A (zh) * 2017-04-12 2019-04-26 三菱电机株式会社 同步控制系统及控制装置

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020156541A1 (en) 1999-04-16 2002-10-24 Yutkowitz Stephen J. Method and apparatus for tuning compensation parameters
JP2004311904A (ja) 2003-04-10 2004-11-04 Nikon Corp ステージ制御装置及び露光装置
US20070194955A1 (en) 2004-12-20 2007-08-23 Azizi Seyed A Sample rate converter
JP2008139702A (ja) 2006-12-04 2008-06-19 Matsushita Electric Ind Co Ltd 音響符号化装置
JP2008544357A (ja) 2005-06-14 2008-12-04 シーメンス アクチエンゲゼルシヤフト 制御行程において位置調節される複数の追従軸のための制御方法
JP2010170635A (ja) 2009-01-26 2010-08-05 Sharp Corp 光ピックアップの検査装置、検査方法、検査プログラムおよびコンピュータ読み取り可能な記録媒体、ならびに光ピックアップの自動調整装置
US20120095599A1 (en) 2010-10-14 2012-04-19 Delta Tau Data Systems, Inc. Hybrid machine control incorporating fast-tool servos
WO2015125747A1 (en) 2014-02-21 2015-08-27 Mitsubishi Electric Corporation Method for computing reference trajectory to position machine
JP2017102617A (ja) 2015-11-30 2017-06-08 オムロン株式会社 補正装置、補正装置の制御方法、情報処理プログラム、および記録媒体

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7120484B2 (en) * 2002-01-14 2006-10-10 Medtronic, Inc. Methods and apparatus for filtering EGM signals detected by an implantable medical device
JP2006110702A (ja) * 2004-10-18 2006-04-27 Fanuc Ltd 学習制御機能を備えたロボット及びロボットの制御方法
EP1854037B1 (en) * 2005-02-25 2014-12-31 Abb Research Ltd. Method of and apparatus for automated path learning
SG160423A1 (en) * 2005-03-23 2010-04-29 Hurco Co Inc Method of tolerance-based trajectory planning and control
US8120302B2 (en) * 2006-05-26 2012-02-21 Kabushiki Kaisha Yaskawa Denki Servo control apparatus
JP4850956B2 (ja) * 2010-02-19 2012-01-11 ファナック株式会社 学習制御機能を備えたロボット
KR101809972B1 (ko) * 2010-12-21 2017-12-18 삼성전자주식회사 보행 로봇 및 그 제어방법
KR20130049029A (ko) * 2011-11-03 2013-05-13 삼성전자주식회사 보행 로봇 및 그 제어 방법
JP6347595B2 (ja) * 2013-11-25 2018-06-27 キヤノン株式会社 ロボット制御方法、及びロボット制御装置
US9630318B2 (en) * 2014-10-02 2017-04-25 Brain Corporation Feature detection apparatus and methods for training of robotic navigation
US9744620B2 (en) * 2015-04-06 2017-08-29 Mitsubishi Electric Research Laboratories, Inc. Control of processing machines with redundant actuators

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020156541A1 (en) 1999-04-16 2002-10-24 Yutkowitz Stephen J. Method and apparatus for tuning compensation parameters
JP2004311904A (ja) 2003-04-10 2004-11-04 Nikon Corp ステージ制御装置及び露光装置
US20070194955A1 (en) 2004-12-20 2007-08-23 Azizi Seyed A Sample rate converter
JP2008544357A (ja) 2005-06-14 2008-12-04 シーメンス アクチエンゲゼルシヤフト 制御行程において位置調節される複数の追従軸のための制御方法
JP2008139702A (ja) 2006-12-04 2008-06-19 Matsushita Electric Ind Co Ltd 音響符号化装置
JP2010170635A (ja) 2009-01-26 2010-08-05 Sharp Corp 光ピックアップの検査装置、検査方法、検査プログラムおよびコンピュータ読み取り可能な記録媒体、ならびに光ピックアップの自動調整装置
US20120095599A1 (en) 2010-10-14 2012-04-19 Delta Tau Data Systems, Inc. Hybrid machine control incorporating fast-tool servos
WO2015125747A1 (en) 2014-02-21 2015-08-27 Mitsubishi Electric Corporation Method for computing reference trajectory to position machine
JP2017102617A (ja) 2015-11-30 2017-06-08 オムロン株式会社 補正装置、補正装置の制御方法、情報処理プログラム、および記録媒体

Also Published As

Publication number Publication date
CN109283888B (zh) 2021-09-21
US10354683B2 (en) 2019-07-16
CN109283888A (zh) 2019-01-29
JP2019021086A (ja) 2019-02-07
EP3432101A1 (en) 2019-01-23
US20190027170A1 (en) 2019-01-24

Similar Documents

Publication Publication Date Title
US11000949B2 (en) Robot for controlling learning in view of operation in production line, and method of controlling the same
JP6347595B2 (ja) ロボット制御方法、及びロボット制御装置
TWI604287B (zh) 用於控制加工機之操作的方法及控制系統,以及加工機
JP2017102617A (ja) 補正装置、補正装置の制御方法、情報処理プログラム、および記録媒体
JP2019021087A (ja) 制御装置、制御装置の制御方法、情報処理プログラム、および記録媒体
JP2018041150A (ja) モデル予測制御装置、モデル予測制御装置の制御方法、情報処理プログラム、および記録媒体
JP6386516B2 (ja) 学習機能を備えたロボット装置
CN108628188A (zh) 控制系统、控制器以及控制方法
JP5931289B2 (ja) 指令値生成装置
US9983560B2 (en) Positioning device and PLC system
JP7024235B2 (ja) 制御装置、制御装置の制御方法、情報処理プログラム、および記録媒体
KR102323069B1 (ko) 로봇 제어 장치, 로봇 제어 방법, 프로그램
KR102297735B1 (ko) 로봇 제어 장치, 로봇 제어 방법, 프로그램
CN110023857B (zh) 伺服控制装置
EP3316059A1 (en) Locus generation apparatus, control method for locus generation apparatus, control program, and storage medium
US11230003B2 (en) Robot system configured to perform learning control
JP6823032B2 (ja) プログラム修正装置
JP7095436B2 (ja) 制御装置、制御方法、情報処理プログラム、および記録媒体
JP6792184B1 (ja) シミュレーションシステム、シミュレーション方法、シミュレーションプログラム、ロボットの製造方法、およびロボットシステム
JP7429807B2 (ja) 経路生成装置、経路生成方法及び経路生成プログラム
JP7031624B2 (ja) 制御装置および制御プログラム
JP2021122907A (ja) ロボット制御装置、ロボットシステム及びロボット制御方法
CN116940906A (zh) 机器人控制装置及机器人控制方法
CN118043750A (zh) 控制装置以及记录有程序的计算机可读取的记录介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200304

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210127

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210202

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210216

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210615

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210803

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: 20220111

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220124

R150 Certificate of patent or registration of utility model

Ref document number: 7024235

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150