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

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

Info

Publication number
JP2019021087A
JP2019021087A JP2017139649A JP2017139649A JP2019021087A JP 2019021087 A JP2019021087 A JP 2019021087A JP 2017139649 A JP2017139649 A JP 2017139649A JP 2017139649 A JP2017139649 A JP 2017139649A JP 2019021087 A JP2019021087 A JP 2019021087A
Authority
JP
Japan
Prior art keywords
trajectory
control system
servo control
command
controller
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.)
Pending
Application number
JP2017139649A
Other languages
English (en)
Inventor
正樹 浪江
Masaki Namie
正樹 浪江
幸生 稲目
Yukio Iname
幸生 稲目
美樹子 真鍋
Mikiko Manabe
美樹子 真鍋
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
Omron Tateisi Electronics Co
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, Omron Tateisi Electronics Co filed Critical Omron Corp
Priority to JP2017139649A priority Critical patent/JP2019021087A/ja
Priority to CN201810151490.3A priority patent/CN109283882A/zh
Priority to US15/894,953 priority patent/US20190022861A1/en
Priority to EP18156743.9A priority patent/EP3432102A1/en
Publication of JP2019021087A publication Critical patent/JP2019021087A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1664Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
    • 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/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • G05B19/054Input/output
    • 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/19Numerical 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 positioning or contouring control systems, e.g. to control position from one programmed point to another or to control movement along a programmed continuous path
    • G05B19/33Numerical 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 positioning or contouring control systems, e.g. to control position from one programmed point to another or to control movement along a programmed continuous path using an analogue measuring device
    • G05B19/35Numerical 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 positioning or contouring control systems, e.g. to control position from one programmed point to another or to control movement along a programmed continuous path using an analogue measuring device for point-to-point control
    • G05B19/351Numerical 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 positioning or contouring control systems, e.g. to control position from one programmed point to another or to control movement along a programmed continuous path using an analogue measuring device for point-to-point control the positional error is used to control continuously the servomotor according to its magnitude
    • G05B19/358Numerical 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 positioning or contouring control systems, e.g. to control position from one programmed point to another or to control movement along a programmed continuous path using an analogue measuring device for point-to-point control the positional error is used to control continuously the servomotor according to its magnitude with a combination of feedback covered by G05B19/353 - G05B19/356
    • 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
    • G05B2219/00Program-control systems
    • G05B2219/10Plc systems
    • G05B2219/11Plc I-O input output
    • G05B2219/1103Special, intelligent I-O processor, also plc can only access via processor
    • 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/41Servomotor, servo controller till figures
    • G05B2219/41405Inverse kinematic, dynamic
    • 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

Abstract

【課題】複数のサーボ制御系の全体の追従性能を向上させる。【解決手段】コントローラ(10)は、補正後軌道(SPf)に対応する第一サーボ制御系(20)の応答を予測し、予測した応答を用いて、第一指令値(Pc)の補正、または、第二逆運動学軌道(IKt)の生成を実行する。【選択図】図1

Description

本発明は、サーボドライバ等のフィードバック制御系に指令値を出力する制御装置等に関する。
複数のサーボ制御系の各々について、目標軌道から前記サーボ制御系ごとの指令軌道を生成し、前記指令軌道から生成した指令値を前記複数のサーボ制御系の各々に対する制御周期ごとに出力して、前記複数のサーボ制御系を協調制御する制装置等が知られている。
例えば、下掲の特許文献1には、(1)目標軌道に対する逆運動学演算の結果にローパスフィルタ処理を行なって生成した第一軌道を第一サーボ制御系についての指令軌道とし、(2)前記第一軌道に対する順運動学演算の結果と目標軌道との誤差から、第二サーボ制御系についての指令軌道を生成する制御装置が開示されている。なお、以下の説明においては逆運動学を「インバースキネマティクス」と称し、順運動学を「フォワードキネマティクス」と称することがある。
米国特許出願公開第2012/0095599号(2012年4月19日公開)
しかしながら、上述のような従来技術は、前記第一サーボ制御系がローパスフィルタ処理後の軌道に十分に追従できない場合、前記複数のサーボ制御系の全体の追従性能(追従精度)が低下することがあるという問題がある。具体的には、上述のような従来技術は、前記第一サーボ制御系がローパスフィルタ処理後の軌道に十分に追従できることを前提にしている。上述のような従来技術について、前記第一サーボ制御系がローパスフィルタ処理後の軌道に十分に追従できるとの前提を満足しない場合、前記第一サーボ制御系および前記第二サーボ制御系の全体の追従性能においても、十分な性能が得られないという問題がある。
本発明の一態様は、複数のサーボ制御系を協調させて制御する制御装置等において、前記複数のサーボ制御系の全体の追従性能を向上させることを目的とする。
上記の課題を解決するために、本発明の一態様に係る制御装置は、第一サーボ制御系についての指令軌道として、基準軌道からローパスフィルタ処理により高周波成分を除去した第一指令軌道を生成し、第二サーボ制御系についての指令軌道として、前記高周波成分に対応する軌道を含む第二指令軌道を生成する制御装置であって、前記第一サーボ制御系の動特性モデルを用いて、前記第一指令軌道に対応する前記第一サーボ制御系の応答を予測する予測部と、前記予測部によって予測された前記第一サーボ制御系の応答を用いて、(1)前記第一指令軌道から生成する第一指令値の補正、または、(2)前記第二指令軌道の生成を実行する生成部と、を備えることを特徴としている。
前記の構成によれば、前記制御装置は、前記ローパスフィルタ処理後の値である前記第一指令軌道に対応する、前記第一サーボ制御系の応答を、前記第一サーボ制御系の動特性モデルを用いて予測する。そして、前記制御装置は、予測した前記第一サーボ制御系の応答を用いて、(1)前記第一指令値の補正、または、(2)前記第二指令軌道の生成を実行する。
ここで、前記第一サーボ制御系がローパスフィルタ処理後の軌道に十分に追従できない場合、結果として、前記第一サーボ制御系および前記第二サーボ制御系の全体の追従性能が低下することになる。
これに対して、前記制御装置は、前記第一指令軌道に対応する前記第一サーボ制御系の応答を予測し、予測した前記第一サーボ制御系の応答を用いて、(1)前記第一指令値の補正、または、(2)前記第二指令軌道の生成を実行する。
例えば、前記制御装置は、予測した前記第一サーボ制御系の応答を用いて補正した前記第一指令値を前記第一サーボ制御系に出力することにより、前記第一サーボ制御系の前記第一指令軌道への追従性能を向上させる。
また例えば、前記制御装置は、予測した前記第一サーボ制御系の応答を用いて生成した前記第二指令軌道から生成する第二指令値を前記第二サーボ制御系に出力することにより、前記第一サーボ制御系の追従遅れを前記第二サーボ制御系に補償させる。
したがって、前記制御装置は、前記第一サーボ制御系および前記第二サーボ制御系の全体の追従性能を向上させることができるとの効果を奏する。例えば、前記制御装置は、予測した前記第一サーボ制御系の応答を用いて補正した前記第一指令値を前記第一サーボ制御系に出力することで、前記第一サーボ制御系の追従性能を向上させることができる。また例えば、前記制御装置は、予測した前記第一サーボ制御系の応答を用いて生成した前記第二指令軌道から生成する第二指令値を前記第二サーボ制御系に出力することで、前記第一サーボ制御系が前記第一指令軌道に追従できない場合にも、前記第一サーボ制御系が追従できない分を前記第二サーボ制御系に補償させることができる。したがって、前記制御装置は、前記第一サーボ制御系および前記第二サーボ制御系の全体の追従性能を向上させることができるとの効果を奏する。
本発明に係る制御装置において、前記予測部は、前記第一サーボ制御系の動特性モデルを用いて、前記第一指令値に対する前記第一サーボ制御系の出力である制御量を予測し、前記生成部は、前記予測部によって予測された制御量と、前記第一サーボ制御系からフィードバック情報として取得する前記第一サーボ制御系の制御量の実測値と、を用いたモデル予測制御によって、前記第一指令値を補正してもよい。
前記の構成によれば、前記制御装置は、前記第一サーボ制御系の動特性モデルを用いて予測した前記第一サーボ制御系の制御量と、前記第一サーボ制御系の制御量の実測値と、を用いた前記モデル予測制御によって、第一指令値を補正する。
したがって、前記制御装置は、前記モデル予測制御を用いて補正した前記第一指令値を前記第一サーボ制御系に出力することで、前記第一サーボ制御系の、前記ローパスフィルタ処理後の前記第一指令軌道への追従性能を向上させることができる。つまり、前記制御装置は、前記第一サーボ制御系および前記第二サーボ制御系の全体の追従性能を向上させることができるとの効果を奏する。
本発明に係る制御装置において、前記生成部は、前記予測部によって予測された前記第一サーボ制御系の応答を用いて生成する中間軌道と、前記基準軌道と、の誤差に対応する軌道を含む前記第二指令軌道を生成してもよい。
前記の構成によれば、前記制御装置は、前記第一サーボ制御系の、前記第一指令軌道に対応する応答について予測し、予測した応答を用いて生成する中間軌道と、前記基準軌道と、の誤差に対応する軌道を含む前記第二指令軌道を生成する。そして、前記制御装置は、前記第二指令軌道から生成した指令値(前記第二指令値)を、第二サーボ制御系に出力する。
したがって、前記制御装置は、予測した前記第一サーボ制御系の応答を用いて生成した前記第二指令軌道から生成する第二指令値を前記第二サーボ制御系に出力することにより、前記第一サーボ制御系の追従遅れを前記第二サーボ制御系に補償させることができる。つまり、前記制御装置は、前記第一サーボ制御系および前記第二サーボ制御系の全体の追従性能を向上させることができるとの効果を奏する。
本発明に係る制御装置は、前記基準軌道に対し、時間軸の順方向と逆方向との両方向に前記ローパスフィルタ処理を行なって前記第一指令軌道を生成するフィルタ部をさらに備えてもよい。
前記の構成によれば、前記制御装置は、前記基準軌道に対し、時間軸の順方向と逆方向との両方向に前記ローパスフィルタ処理を行なって前記第一指令軌道を生成する。例えば、前記制御装置は、前記基準軌道に対し、時間軸の逆方向から順方向の順に前記ローパスフィルタ処理を行なって前記第一指令軌道を生成する。
ここで、フィルタリング処理(例えば、ローパスフィルタ処理)について、「時間軸の順方向と逆方向とに1回ずつ実行する」ことにより、フィルタリング処理による位相遅れを除去することができることが知られている。つまり、ゼロ位相フィルタ処理によって位相遅れを除去することができることが知られている。
そこで、前記制御装置は、前記基準軌道に対し、時間軸の順方向と逆方向との両方向にローパスフィルタ処理を行なって、つまり、ゼロ位相フィルタ処理を行なって、前記第一指令軌道から位相遅れを除去する。前記制御装置は、前記ローパスフィルタに起因して従来発生していた「前記基準軌道からの位相遅れ」を発生させずに、前記第一指令軌道を生成する。
従来、前記第一サーボ制御系の追従性を向上させるためのローパスフィルタ処理の際に、前記ローパスフィルタ処理に起因して前記第一軌道に位相遅れ(位相遅延)が発生し、発生した位相遅延を前記第二サーボ制御系に補償させていた。したがって、従来、前記第一サーボ制御系の追従性を向上させる代わりに、本来は前記第一サーボ制御系が実現すべき軌道の一部を前記第二サーボ制御系に実現させることになり、前記第二サーボ制御系の可動範囲を有効に利用することができなかった。
これに対し、前記制御装置は、前記高周波成分の除去に伴って従来発生していた「前記基準軌道からの位相遅れ」の発生を防ぐことにより、前記第一サーボ制御系が本来実現すべき軌道の一部を前記第二サーボ制御系に補償させる必要がない。つまり、前記制御装置は、高周波成分の除去によって前記第一サーボ制御系の追従性を維持しつつ、位相遅延の発生を防ぐことで前記第二サーボ制御系の可動範囲を有効に利用することができる。前記制御装置は、前記第一サーボ制御系の追従性を維持しつつ、前記第一サーボ制御系および前記第二サーボ制御系の各々について、その可動範囲を有効に利用することができるという効果を奏する。
本発明に係る制御装置において、前記フィルタ部は、前記基準軌道に対し、時間軸の逆方向から順方向の順に前記ローパスフィルタ処理を行なって前記第一指令軌道を生成してもよい。
前記の構成によれば、前記制御装置は、前記基準軌道に対し、時間軸の逆方向から順方向の順に前記ローパスフィルタ処理を行なって前記第一指令軌道を生成する。
ここで、前記基準軌道に対し、時間軸の順方向から逆方向の順に前記ローパスフィルタ処理(前記ゼロ位相フィルタ処理)を行なった場合、前記第一指令軌道について、スタート時点(t=0の時点)において、前記基準軌道に対するデータ飛びが発生する。
これに対して、前記制御装置は、前記基準軌道に対し、時間軸の逆方向から順方向の順に前記ローパスフィルタ処理を行なって前記第一指令軌道を生成する。したがって、前記制御装置は、前記第一指令軌道について、スタート時点(t=0の時点)において、前記基準軌道に対するデータ飛びが発生することを防ぐことができるとの効果を奏する。
上記の課題を解決するために、本発明の一態様に係る制御方法は、第一サーボ制御系についての指令軌道として、基準軌道からローパスフィルタ処理により高周波成分を除去した第一指令軌道を生成し、第二サーボ制御系についての指令軌道として、前記高周波成分に対応する軌道を含む第二指令軌道を生成する制御装置の制御方法であって、前記第一サーボ制御系の動特性モデルを用いて、前記第一指令軌道に対応する前記第一サーボ制御系の応答を予測する予測ステップと、前記予測ステップにて予測した前記第一サーボ制御系の応答を用いて、(1)前記第一指令軌道から生成する第一指令値の補正、または、(2)前記第二指令軌道の生成を実行する生成ステップと、を含むことを特徴としている。
前記の方法によれば、前記制御方法は、前記ローパスフィルタ処理後の値である前記第一指令軌道に対応する、前記第一サーボ制御系の応答を、前記第一サーボ制御系の動特性モデルを用いて予測する。そして、前記制御方法は、予測した前記第一サーボ制御系の応答を用いて、(1)前記第一指令値の補正、または、(2)前記第二指令軌道の生成を実行する。
ここで、前記第一サーボ制御系がローパスフィルタ処理後の軌道に十分に追従できない場合、結果として、前記第一サーボ制御系および前記第二サーボ制御系の全体の追従性能が低下することになる。
これに対して、前記制御方法は、前記第一指令軌道に対応する前記第一サーボ制御系の応答を予測し、予測した前記第一サーボ制御系の応答を用いて、(1)前記第一指令値の補正、または、(2)前記第二指令軌道の生成を実行する。
例えば、前記制御方法は、予測した前記第一サーボ制御系の応答を用いて補正した前記第一指令値を前記第一サーボ制御系に出力することにより、前記第一サーボ制御系の前記第一指令軌道への追従性能を向上させる。
また例えば、前記制御方法は、予測した前記第一サーボ制御系の応答を用いて生成した前記第二指令軌道から生成する第二指令値を前記第二サーボ制御系に出力することにより、前記第一サーボ制御系の追従遅れを前記第二サーボ制御系に補償させる。
したがって、前記制御方法は、前記第一サーボ制御系および前記第二サーボ制御系の全体の追従性能を向上させることができるとの効果を奏する。例えば、前記制御方法は、予測した前記第一サーボ制御系の応答を用いて補正した前記第一指令値を前記第一サーボ制御系に出力することで、前記第一サーボ制御系の追従性能を向上させることができる。また例えば、前記制御方法は、予測した前記第一サーボ制御系の応答を用いて生成した前記第二指令軌道から生成する第二指令値を前記第二サーボ制御系に出力することで、前記第一サーボ制御系が前記第一指令軌道に追従できない場合にも、前記第一サーボ制御系が追従できない分を前記第二サーボ制御系に補償させることができる。したがって、前記制御方法は、前記第一サーボ制御系および前記第二サーボ制御系の全体の追従性能を向上させることができるとの効果を奏する。
本発明の一態様によれば、複数のサーボ制御系を協調させて制御する制御装置等において、前記複数のサーボ制御系の全体の追従性能を向上させることができるという効果を奏する。
本発明の実施形態1に係るコントローラ等の要部構成等を示すブロック図である。 図1のコントローラを含む制御システムの全体概要を示す図である。 図1のコントローラが実行する処理の概要を示すフロー図である。 図2の制御システム等を用いて実施する制御テストの内容を示す図である。 図4に示す制御テストについて、図1のコントローラによって制御された第一アクチュエータおよび第二アクチュエータの各々の位置、位置偏差、およびトルクの変化を示す図である。 図4に示す制御テストについて、図1のコントローラによって制御された第一アクチュエータおよび第二アクチュエータの合計の位置および位置偏差の変化を示す図である。 本発明の実施形態2に係るコントローラ等の要部構成等を示すブロック図である。 図7のコントローラを含む制御システムの全体概要を示す図である。 図7のコントローラが実行する処理の概要を示すフロー図である。 図4に示す制御テストについて、図7のコントローラによって制御された第一アクチュエータおよび第二アクチュエータの各々の位置、位置偏差、およびトルクの変化を示す図である。 図4に示す制御テストについて、図7のコントローラによって制御された第一アクチュエータおよび第二アクチュエータの合計の位置および位置偏差の変化を示す図である。 本発明の実施形態3に係るコントローラ等の要部構成等を示すブロック図である。 図12のコントローラを含む制御システムの全体概要を示す図である。 図12のコントローラが実行する処理の概要を示すフロー図である。 図4に示す制御テストについて、図12のコントローラによって制御された第一アクチュエータおよび第二アクチュエータの各々の位置、位置偏差、モデル予測誤差、およびトルクの変化を示す図である。 図4に示す制御テストについて、図12のコントローラによって制御された第一アクチュエータおよび第二アクチュエータの合計の位置および位置偏差の変化を示す図である。 本発明の実施形態4に係るコントローラ等の要部構成等を示すブロック図である。 図17のコントローラを含む制御システムの全体概要を示す図である。 図17のコントローラが実行する処理の概要を示すフロー図である。 高周波成分の除去方法に応じて発生する位相遅延およびデータ飛びについて説明する図である。 図4に示す制御テストについて、図17のコントローラによって制御された第一アクチュエータおよび第二アクチュエータの各々の位置、位置偏差、モデル予測誤差、およびトルクの変化を示す図である。 図4に示す制御テストについて、図17のコントローラによって制御された第一アクチュエータおよび第二アクチュエータの合計の位置および位置偏差の変化を示す図である。 図4に示す制御テストについて、従来の協調制御コントローラによって制御された第一アクチュエータおよび第二アクチュエータの各々の位置、位置偏差、およびトルクの変化を示す図である。 図4に示す制御テストについて、従来の協調制御コントローラによって制御された第一アクチュエータおよび第二アクチュエータの合計の位置および位置偏差の変化を示す図である。
〔実施形態1〕
以下、本発明の実施形態1について、図1から図6、図23、および図24に基づいて詳細に説明する。図中同一または相当部分には同一符号を付してその説明は繰返さない。本発明の一態様に係るコントローラ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と第二アクチュエータ32とは通信可能に接続されており、その接続方式は、任意の有線接続方式または無線接続方式であり、第二サーボドライバ31と第二アクチュエータ32とは、例えば、専用ケーブルによって接続されていてもよい。第二サーボドライバ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)および(処理2)を実行することにより、第一サーボ制御系20と第二サーボ制御系30とを協調させて制御する。
(処理1)コントローラ10は、第一サーボ制御系20および第二サーボ制御系30の各々について、目標軌道Ttを用いて指令軌道を生成する。具体的には、コントローラ10は、逆運動学演算および順運動学演算を用いて、目標軌道Ttから「第一サーボ制御系20についての指令軌道」と「第二サーボ制御系30についての指令軌道」とを生成する。すなわち、コントローラ10は、目標軌道Ttに逆運動学演算を行なって第一サーボ制御系20の軸ごとに生成した第一逆運動学軌道SP(i)(不図示)から高周波成分を除去して、「第一サーボ制御系20についての指令軌道」として補正後軌道SPf(i)(不図示)を生成する。具体的には、コントローラ10は、第一逆運動学軌道SP(i)に対してローパスフィルタ処理を行なって補正後軌道SPf(i)を生成する。なお、図2において図示していない第一逆運動学軌道SP(i)および補正後軌道SPf(i)について、詳細は図1等を用いて後述する。
また、コントローラ10は、「第一サーボ制御系20についての指令軌道」に対する順運動学演算の演算結果と目標軌道Ttとの誤差に逆運動学演算を行なって生成した第二逆運動学軌道IKt(i)(不図示)を、「第二サーボ制御系30についての指令軌道」とする。なお、図2において図示していない第二逆運動学軌道IKt(i)について、第一逆運動学軌道SP(i)および補正後軌道SPf(i)と同様に、詳細は図1等を用いて後述する。
(処理2)コントローラ10は、第一サーボ制御系20および第二サーボ制御系30の各々についての指令軌道から、第一サーボ制御系20および第二サーボ制御系30の各々に出力する指令値(第一指令値Pc(i)および第二指令値Sc(i))を生成する。具体的には、コントローラ10は、補正後軌道SPf(i)から第一指令値Pc(i)を生成し、第二逆運動学軌道IKt(i)から第二指令値Sc(i)を生成する。
ここで、コントローラ10は、第一サーボ制御系20の動特性モデルを用いて、第一サーボ制御系20についてモデル予測制御(MPC、Model Predictive Control)を行なう。具体的には、コントローラ10は、補正後軌道SPf(i)から第一サーボ制御系20に対する制御周期ごとに生成する第一指令値Pc(i)を、第一サーボ制御系20の動特性モデルを用いたMPCによって補正する。そして、コントローラ10は、補正した第一指令値Pc(i)を第一サーボ制御系20に出力する。
また、コントローラ10は、第二指令値Sc(i)を、第二サーボ制御系30に対する制御周期ごとに、第二サーボ制御系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)を、第一サーボ制御系20の動特性モデルを用いたMPCによって補正し、補正後の第一指令値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(制御装置)は、第一サーボ制御系20についての指令軌道として、第一逆運動学軌道SP(基準軌道)からローパスフィルタ処理により高周波成分を除去した補正後軌道SPf(第一指令軌道)を生成し、第二サーボ制御系30についての指令軌道として、前記高周波成分に対応する軌道を含む第二逆運動学軌道IKt(第二指令軌道)を生成する制御装置であって、第一サーボ制御系20の動特性モデルを用いて、補正後軌道SPfに対応する第一サーボ制御系20の応答を予測する第一応答予測部172(予測部)と、第一応答予測部172によって予測された第一サーボ制御系20の応答を用いて、(1)補正後軌道SPfから生成する第一指令値Pcの補正、または、(2)第二逆運動学軌道IKtの生成を実行する第一MPC位置指令部171(生成部)と、を備えている。
前記の構成によれば、コントローラ10は、前記ローパスフィルタ処理後の値である補正後軌道SPfに対応する、第一サーボ制御系20の応答を、第一サーボ制御系20の動特性モデルを用いて予測する。そして、コントローラ10は、予測した第一サーボ制御系20の応答を用いて、(1)第一指令値Pcの補正、または、(2)第二逆運動学軌道IKtの生成を実行する。具体的には、コントローラ10は、予測した第一サーボ制御系20の応答を用いて第一指令値Pcの補正を実行し、言い換えれば、予測した第一サーボ制御系20の応答を用いたMPCにより第一指令値Pcを生成する。
ここで、従来のコントローラを用いた場合、第一サーボ制御系20がローパスフィルタ処理後の軌道(つまり、補正後軌道SPf)に十分に追従できないことがあり、その場合、第一サーボ制御系20および第二サーボ制御系30の全体の追従性能が低下することになる。
これに対して、コントローラ10は、補正後軌道SPfに対応する第一サーボ制御系20の応答を予測し、予測した第一サーボ制御系20の応答を用いて、第一指令値Pcの補正を実行する。具体的には、コントローラ10は、予測した第一サーボ制御系20の応答を用いて、第一指令値Pcの補正(生成)を実行する。
例えば、コントローラ10は、予測した第一サーボ制御系20の応答を用いて補正した第一指令値Pcを第一サーボ制御系20に出力することにより、第一サーボ制御系20の補正後軌道SPfへの追従性能を向上させる。
したがって、コントローラ10は、第一サーボ制御系20および第二サーボ制御系30の全体の追従性能を向上させることができるとの効果を奏する。例えば、コントローラ10は、予測した第一サーボ制御系20の応答を用いて補正した第一指令値Pcを第一サーボ制御系20に出力することで、第一サーボ制御系20の追従性能を向上させることができる。したがって、コントローラ10は、第一サーボ制御系20および第二サーボ制御系30の全体の追従性能を向上させることができるとの効果を奏する。
コントローラ10において、第一応答予測部172は、第一サーボ制御系20の動特性モデルを用いて、第一指令値Pcに対する第一サーボ制御系20の出力である制御量を予測し、第一MPC位置指令部171は、第一応答予測部172によって予測された制御量と、第一サーボ制御系20からフィードバック情報として取得する第一サーボ制御系20の制御量の実測値と、を用いたモデル予測制御によって、第一指令値Pcを補正する。
前記の構成によれば、コントローラ10は、第一サーボ制御系20の動特性モデルを用いて予測した第一サーボ制御系20の制御量と、第一サーボ制御系20の制御量の実測値と、を用いた前記モデル予測制御によって、第一指令値Pcを補正する。
したがって、コントローラ10は、前記モデル予測制御を用いて補正した第一指令値Pcを第一サーボ制御系20に出力することで、第一サーボ制御系20の、前記ローパスフィルタ処理後の補正後軌道SPfへの追従性能を向上させることができる。つまり、コントローラ10は、第一サーボ制御系20および第二サーボ制御系30の全体の追従性能を向上させることができるとの効果を奏する。
コントローラ10は、第一サーボ制御系20の動特性モデル(第一サーボドライバ21および第一アクチュエータ22の動特性モデル)を使用して、第一アクチュエータ22(第一サーボ制御系20)の応答を予測する。そして、コントローラ10は、補正後軌道SPf(i)に対する応答遅れ分を計算し、計算した応答遅れ分を、第一サーボ制御系20において補償する。具体的には、コントローラ10は、第一サーボ制御系20の動特性モデルを用いたモデル予測制御による位置補正制御によって、第一サーボ制御系20について発生する応答遅れを、第一サーボ制御系20において補償する。コントローラ10は、第一サーボ制御系20について発生する応答遅れの補償を、第一サーボ制御系20において完結することができる。コントローラ10は、モデル予測制御による位置補正制御によって第一サーボ制御系20の追従性能を向上させることにより、トータル(第一サーボ制御系20および第二サーボ制御系30の全体)の追従性能を向上させることができる。
(制御装置の詳細)
図1は、本発明の実施形態1に係るコントローラ10等の要部構成を示すブロック図である。図1に示すように、コントローラ10は、機能ブロックとして、目標軌道取得部110、第一逆運動学演算部120、ローパスフィルタ部130、順運動学演算部140、第二逆運動学演算部150、MPC指令部170、および、位置指令部173を備えている。
なお、記載の簡潔性を担保するため、本実施の形態に直接関係のない構成は、説明およびブロック図から省略している。ただし、実施の実情に則して、コントローラ10は、当該省略された構成を備えてもよい。図1に例示した各機能ブロックは、例えば、CPU(central processing unit)などが、ROM(read only memory)、NVRAM(non-Volatile random access memory)等で実現された記憶装置(不図示の記憶部)に記憶されているプログラムを不図示の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)を生成する。ローパスフィルタ部130が用いるローパスフィルタのフィルタ特性は、例えば、カットオフ周波数10Hzの4次バターワース(Butterworth)型である。
ローパスフィルタ部130は、生成した補正後軌道SPf(i)を、「第一サーボ制御系20についての指令軌道」として、MPC指令部170(特に、第一MPC位置指令部171)に通知する。ローパスフィルタ部130は、生成した補正後軌道SPf(i)を、不図示の記憶部に格納してもよい。また、ローパスフィルタ部130は、生成した補正後軌道SPf(i)を、順運動学演算部140に出力する。
順運動学演算部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)を生成する。
第二サーボ制御系30の指令軌道である第二逆運動学軌道IKt(第二指令軌道)は、ローパスフィルタ部130により第一逆運動学軌道SP(i)から除去された高周波成分を含んでいる。また、第二逆運動学軌道IKt(第二指令軌道)は、「第一サーボ制御系20の指令軌道(補正後軌道SPf)と、第二サーボ制御系30の指令軌道(第二逆運動学軌道IKt)との合成軌道が、目標軌道Ttに一致する」との条件を満たしている。すなわち、第二逆運動学演算部150は、「補正後軌道SPfと、第二逆運動学軌道IKtとの合成軌道が、目標軌道Ttに一致する」ようにして、第一逆運動学軌道SPと補正後軌道SPfとの誤差に対応する軌道を含む第二逆運動学軌道IKtを生成すればよい。
第二逆運動学演算部150は、生成した第二逆運動学軌道IKt(i)を、位置指令部173に通知する。第二逆運動学演算部150は、生成した第二逆運動学軌道IKt(i)を、「第二サーボ制御系30についての指令軌道」として、不図示の記憶部に格納してもよい。
MPC指令部170は、第一サーボ制御系20に第一指令値Pc(i)(特に、補正後の第一指令値Pc(i))を出力する第一MPC位置指令部171を含んでいる。
第一MPC位置指令部171は、第一応答予測部172を含み、第一応答予測部172には、予め作成された第一サーボ制御系20の動特性モデルが設定されている。第一応答予測部172は、第一サーボ制御系20の動特性モデルを予め作成しておき、作成した第一サーボ制御系20の動特性モデルを自身に設定しておいてもよい。
第一MPC位置指令部171は、以下の2つの処理を実行する。第一に、第一MPC位置指令部171は、第一サーボ制御系20に対する制御周期ごとに、「第一サーボ制御系20についての指令軌道」から第一サーボ制御系20の軸ごとの第一指令値Pc(i)を生成する。例えば、第一MPC位置指令部171は、「第一サーボ制御系20についての指令軌道」として、ローパスフィルタ部130から補正後軌道SPf(i)を取得する。そして、第一MPC位置指令部171は、例えば1msごとに、補正後軌道SPf(i)から第一サーボ制御系20の軸ごとの第一指令値Pc(i)を生成する。
第二に、第一MPC位置指令部171は、補正後軌道SPf(i)から第一サーボ制御系20に対する制御周期ごとに生成する第一指令値Pc(i)を、モデル予測制御によって補正し、補正した第一指令値Pc(i)を第一サーボ制御系20に出力する。
具体的には、第一応答予測部172が、設定されている第一サーボ制御系20の動特性モデルを用いて、第一指令値Pc(i)に対する第一サーボ制御系20の出力である制御量を予測する。そして、第一MPC位置指令部171は、第一応答予測部172の予測した制御量と、第一サーボ制御系20からフィードバック情報として取得する第一サーボ制御系20の制御量の実測値と、を用いたモデル予測制御を実行する。すなわち、第一MPC位置指令部171は、第一応答予測部172が第一サーボ制御系20の動特性モデルを用いて予測した「第一サーボ制御系20の出力である制御量」と、第一サーボ制御系20の制御量の実測値と、を用いて第一指令値Pc(i)を補正する。そして、第一MPC位置指令部171は、モデル予測制御を用いて補正した第一指令値Pc(i)を、第一サーボ制御系20に対する制御周期ごとに、第一サーボ制御系20に出力する。第一MPC位置指令部171は、例えば1msごとに、補正した第一指令値Pc(i)を第一サーボ制御系20に出力する。
なお、モデル予測制御(MPC)による位置補正制御を適用しない場合にも、第一指令値Pc(i)は、補正後軌道SPf(i)から第一サーボ制御系20に対する制御周期ごとに生成され、つまり、第一指令値Pc(i)と補正後軌道SPf(i)とは異なる。第一MPC位置指令部171は、第一応答予測部172が予測した「第一サーボ制御系20の出力である制御量」と、第一サーボ制御系20の制御量の実測値と、を用いたモデル予測制御によって、第一指令値Pc(i)を生成する。言い換えれば、第一MPC位置指令部171は、「MPCによる位置補正制御を適用しなかった場合に補正後軌道SPf(i)から生成されるであろう第一指令値Pc(i)」を、MPCによる位置補正制御を適用することによって、補正する。本実施の形態において、第一MPC位置指令部171が「第一指令値Pc(i)を補正する」とは、以下の事態を指している。すなわち、「MPCによる位置補正制御を適用しなかった場合に補正後軌道SPf(i)から生成されるであろう第一指令値Pc(i)」を、第一MPC位置指令部171が、MPCによる位置補正制御を適用することによって、補正することを指している。以下では、第一応答予測部172の予測した「第一サーボ制御系20の出力である制御量」と、第一サーボ制御系20の制御量の実測値と、を用いたMPCにより第一指令値Pc(i)を生成することを、「第一指令値Pc(i)を補正する」と表現することがある。
位置指令部173は、第二サーボ制御系30に対する制御周期ごとに、「第二サーボ制御系30についての指令軌道」から、第二サーボ制御系30の軸ごとの第二指令値Sc(i)を生成し、生成した第二指令値Sc(i)を第二サーボ制御系30に出力する。具体的には、位置指令部173は、「第二サーボ制御系30についての指令軌道」として、第二逆運動学演算部150から第二逆運動学軌道IKt(i)を取得する。そして、位置指令部173は、例えば1/12msごとに、第二逆運動学軌道IKt(i)から第二サーボ制御系30の軸ごとの第二指令値Sc(i)を生成し、生成した第二指令値Sc(i)を第二サーボ制御系30に出力する。
(記憶部の詳細)
コントローラ10は、不図示の記憶部を備えている。記憶部は、コントローラ10が使用する各種データを格納する記憶装置である。なお、記憶部は、コントローラ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の使用目的、利便性、コスト、または、物理的な制約などから適宜決定される。
(動特性モデルについて)
第一サーボ制御系20の動特性モデルは、例えば、次の(式1)に示す離散時間伝達関数のように表される。(式1)において、uは入力を表し、yは出力(制御量の予測、つまり、制御量についての予測値)を表し、d、a〜aおよびb〜bは特性パラメータを表し、z−1は遅延演算子を表している。
Figure 2019021087
コントローラ10において、(式1)に例示するような第一サーボ制御系20の動特性モデルが予め作成され、作成された動特性モデルは第一応答予測部172に設定される。
(コントローラが実行する処理について)
図3は、コントローラ10が実行する処理の概要を示すフロー図である。コントローラ10は、第一サーボ制御系20の動特性モデルを予め作成しておき、作成しておいた第一サーボ制御系20の動特性モデルを用いて、低速アクチュエータ(第一アクチュエータ22)側のMPC位置補正制御を実行する。具体的には、コントローラ10は、第一サーボ制御系20の動特性モデルを用いたMPCによって第一指令値Pc(i)を補正し、補正した第一指令値Pc(i)を第一サーボ制御系20に出力する。以下、コントローラ10が実行する処理の詳細について、図3を用いて説明していく。
コントローラ10は、低速サーボシステム(第一サーボ制御系20)について、動特性モデルを予め作成しておき、第一応答予測部172に設定しておく(S110)。第一逆運動学演算部120は、目標軌道Ttから第一アクチュエータ22の軸毎の指令値を生成し、つまり、目標軌道Ttに逆運動学演算を行なって第一逆運動学軌道SP(i)を生成する(S120)。ローパスフィルタ部130は、軸毎の軌道(つまり、第一逆運動学軌道SP(i))に対して、ローパスフィルタリングを実行し(S130)、補正後軌道SPf(i)を生成する。ローパスフィルタ部130は、生成した補正後軌道SPf(i)を、MPC指令部170(特に、第一MPC位置指令部171)に通知する。
コントローラ10は、「ローパスフィルタリング後の指令軌道から生成される指令値と、目標軌道の指令値と、の差分」を計算し、計算した差分から高速アクチュエータ(第二アクチュエータ32)の軸毎の指令値を生成する。
例えば、順運動学演算部140は、順運動学演算により、ローパスフィルタリング後の軌道(つまり、補正後軌道SPf(i))から中間軌道(つまり、順運動学軌道FKt)を生成する(S140)。そして、第二逆運動学演算部150は、中間軌道と目標軌道Ttとの差分(誤差)を計算する(S150)。そして、第二逆運動学演算部150は、S150で計算した誤差(差分)を用いて、第二アクチュエータ32の軸毎の軌道を生成する(S160)。具体的には、第二逆運動学演算部150は、「中間軌道(つまり、順運動学軌道FKt)と、目標軌道Ttと、の誤差」に逆運動学演算を行なって、第二サーボ制御系30の軸ごとの指令軌道である第二逆運動学軌道IKt(i)を生成する。第二逆運動学演算部150は、生成した第二逆運動学軌道IKt(i)を、位置指令部173に通知する。
なお、前述の通り、第二逆運動学演算部150は、第一逆運動学軌道SPと補正後軌道SPfとの誤差に対応する軌道を含む第二逆運動学軌道IKtを生成する。具体的には、第二逆運動学演算部150は、「補正後軌道SPfと、第二逆運動学軌道IKtとの合成軌道が、目標軌道Ttに一致する」ようにして、第一逆運動学軌道SPと補正後軌道SPfとの誤差に対応する軌道を含む第二逆運動学軌道IKtを生成すればよい。第二逆運動学演算部150は、「第二サーボ制御系30についての指令軌道」として、ローパスフィルタ部130により第一逆運動学軌道SP(i)から除去された高周波成分に対応する軌道を含む第二逆運動学軌道IKt(第二指令軌道)を生成する。
コントローラ10は、第一サーボ制御系20の動特性モデルを用いたMPC位置補正制御により、低速サーボシステム(第一サーボ制御系20)への補正後指令値を計算し、計算した補正後指令値を低速サーボシステムに出力する。また、コントローラ10は、高速サーボシステム(第二サーボ制御系30)への指令値を計算し、計算した指令値を高速サーボシステムに出力する(S170)。
具体的には、第一MPC位置指令部171は、補正後軌道SPf(i)から第一サーボ制御系20に対する制御周期ごとに生成される第一指令値Pc(i)を、第一サーボ制御系20の動特性モデルを用いたMPCにより補正する。すなわち、第一MPC位置指令部171は、第一応答予測部172が第一サーボ制御系20の動特性モデルを用いて予測した「第一サーボ制御系20の出力である制御量」と、第一サーボ制御系20の制御量の実測値と、を用いて、第一指令値Pc(i)を補正する。そして、第一MPC位置指令部171は、補正した第一指令値Pc(i)を第一サーボ制御系20に出力する。
位置指令部173は、第二サーボ制御系30に対する制御周期ごとに、「第二サーボ制御系30についての指令軌道」である第二逆運動学軌道IKt(i)から第二指令値Sc(i)を生成し、生成した第二指令値Sc(i)を第二サーボ制御系30に出力する。
そして、コントローラ10は、軌道終点に到達したかを判定しながら(S180)、制御周期ごとに、S120〜S170の処理を繰り返す。具体的には、コントローラ10は、S120〜S170の処理のうち、「第一サーボ制御系20のみに係る処理」を、軌道終点に到達したかを判定しながら(S180)、第一サーボ制御系20に対する制御周期で繰り返し実行する。また、コントローラ10は、S120〜S170の処理のうち、「第一サーボ制御系20のみに係る処理」以外の処理(例えば、第二サーボ制御系30に係る処理)を、軌道終点に到達したかを判定しながら(S180)、第二サーボ制御系30に対する制御周期で繰り返し実行する。
これまで図3を用いて説明してきた、コントローラ10の実行する制御方法は、以下のように整理することができる。すなわち、コントローラ10の実行する制御方法は、第一サーボ制御系20についての指令軌道として、第一逆運動学軌道SP(基準軌道)からローパスフィルタ処理により高周波成分を除去した補正後軌道SPf(第一指令軌道)を生成し、第二サーボ制御系30についての指令軌道として、前記高周波成分に対応する軌道を含む第二逆運動学軌道IKt(第二指令軌道)を生成する制御装置の制御方法であって、第一サーボ制御系20の動特性モデルを用いて、補正後軌道SPfに対応する第一サーボ制御系20の応答を予測する予測ステップ(S170における、第一サーボ制御系20の動特性モデルを用いた、第一応答予測部172による「第一サーボ制御系20の出力である制御量」の予測)と、前記予測ステップにて予測した第一サーボ制御系20の応答を用いて、(1)補正後軌道SPfから生成する第一指令値Pcの補正、または、(2)第二逆運動学軌道IKtの生成を実行する生成ステップ(S170における、第一MPC位置指令部171によるMPCを用いた第一指令値Pc(i)の補正)と、を含んでいる。
前記の方法によれば、前記制御方法は、前記ローパスフィルタ処理後の値である補正後軌道SPfに対応する、第一サーボ制御系20の応答を、第一サーボ制御系20の動特性モデルを用いて予測する。そして、前記制御方法は、予測した第一サーボ制御系20の応答を用いて、(1)第一指令値Pcの補正、または、(2)第二逆運動学軌道IKtの生成を実行する。
ここで、第一サーボ制御系20がローパスフィルタ処理後の軌道に十分に追従できない場合、結果として、第一サーボ制御系20および第二サーボ制御系30の全体の追従性能が低下することになる。
これに対して、前記制御方法は、補正後軌道SPfに対応する第一サーボ制御系20の応答を予測し、予測した第一サーボ制御系20の応答を用いて、(1)第一指令値Pcの補正、または、(2)第二逆運動学軌道IKtの生成を実行する。
例えば、前記制御方法は、予測した第一サーボ制御系20の応答を用いて補正した第一指令値Pcを第一サーボ制御系20に出力することにより、第一サーボ制御系20の補正後軌道SPfへの追従性能を向上させる。
また例えば、前記制御方法は、予測した第一サーボ制御系20の応答を用いて生成した第二逆運動学軌道IKtから生成する第二指令値Scを第二サーボ制御系30に出力することにより、第一サーボ制御系20の追従遅れを第二サーボ制御系30に補償させる。
したがって、前記制御方法は、第一サーボ制御系20および第二サーボ制御系30の全体の追従性能を向上させることができるとの効果を奏する。例えば、前記制御方法は、予測した第一サーボ制御系20の応答を用いて補正した第一指令値Pcを第一サーボ制御系20に出力することで、第一サーボ制御系20の追従性能を向上させることができる。また例えば、前記制御方法は、予測した第一サーボ制御系20の応答を用いて生成した第二逆運動学軌道IKtから生成する第二指令値Scを第二サーボ制御系30に出力することで、第一サーボ制御系20が補正後軌道SPfに追従できない場合にも、第一サーボ制御系20が追従できない分を第二サーボ制御系30に補償させることができる。したがって、前記制御方法は、第一サーボ制御系20および第二サーボ制御系30の全体の追従性能を向上させることができるとの効果を奏する。
(コントローラが奏する効果について)
コントローラ10が、第一サーボドライバ21および第二サーボドライバ31を介して、第一アクチュエータ22および第二アクチュエータ32を実際にどのように制御するかを、図4等を用いて説明していく。
図4は、制御システム1においてコントローラ10を用いて実施する制御テスト(制御シミュレーション)の内容を示す図である。コントローラ10と従来までのコントローラとについて、複雑な2次元軌跡のX軸成分について、制御性能(位置偏差)を比較する。
なお、「従来までのコントローラ」とは、サーボ制御系の動特性モデルを用いたMPCを行なわない協調制御コントローラである。すなわち、コントローラ10は、補正後軌道SPf(i)から生成する第一指令値Pc(i)を第一サーボ制御系20の動特性モデルを用いたMPCによって補正し、補正した第一指令値Pc(i)を第一サーボ制御系20に出力する。これに対し、「従来までのコントローラ」は、補正後軌道SPf(i)から第一サーボ制御系20に対する制御周期ごとに生成する第一指令値Pc(i)を、MPCによって補正せずにそのまま第一サーボ制御系20に出力する。その他の点については、コントローラ10と従来までのコントローラとに違いはないものとする。
制御テストに用いた2次元軌跡は以下の2つの曲線1および曲線2を合成したものであり、すなわち、「曲線1:円、1秒で1周、半径10mm」であり、「曲線2:正葉線、0.1秒で1周、葉数9、葉の長さ2mm」とする。図4の(A)には、曲線1+曲線2のXY軌跡が示されている。図4の(A)において、縦軸はY軸位置、横軸はX軸位置である。図4の(B)には、図4の(A)のXY軌跡のX軸指令値が示されており、図4の(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とする。
(従来のコントローラによる位置等の制御)
図23は、図4に示す制御テストについて、従来の協調制御コントローラによって制御された第一アクチュエータ22および第二アクチュエータ32の各々の位置、位置偏差、およびトルクの変化を示す図である。図23の(A)には、上から順に、従来のコントローラによって制御された第一アクチュエータ22の位置、位置偏差、およびトルクの変化が示されている。図23の(B)には、上から順に、従来のコントローラによって制御された第二アクチュエータ32の位置、位置偏差、およびトルクの変化が示されている。図23に示す各図において、横軸はいずれも時間(t)である。
図24は、図4に示す制御テストについて、従来の協調制御コントローラによって制御された第一アクチュエータ22および第二アクチュエータ32の合計の位置(図24の(A))および位置偏差(図24の(B))の変化を示す図である。図24に示す各図において、横軸はいずれも時間(t)である。なお、図24の(A)において、指令値と低速高速合成制御量(第一アクチュエータ22の制御量の実測値と第二アクチュエータ32の制御量の実測値とを合計(合成)した値)とは、ほぼ重なっている。
図23および図24に制御テスト(制御シミュレーション)の結果を示した「従来の協調制御コントローラ」について、ローパスフィルタ特性は、カットオフ周波数10Hzの4次バターワース型である。前述の通り、「従来までの協調制御コントローラ」は、「補正後軌道SPf(i)から生成する第一指令値Pc(i)を、MPCによって補正せずにそのまま第一サーボ制御系20に出力する」点以外は、コントローラ10と同様である。図24の(B)に示されているように、「従来までのコントローラ」を用いた場合、ピーク偏差(第一アクチュエータ22および第二アクチュエータ32の合計(総合)の追従誤差のピーク)が約プラスマイナス0.5mmである。
(コントローラ10による位置等の制御)
図5は、図4に示す制御テストについて、コントローラ10によって制御された第一アクチュエータ22および第二アクチュエータ32の各々の位置、位置偏差、およびトルクの変化を示す図である。図5の(A)には、上から順に、コントローラ10によって制御された第一アクチュエータ22の位置、位置偏差、モデル予測誤差、およびトルクの変化が示されている。図5の(B)には、上から順に、コントローラ10によって制御された第二アクチュエータ32の位置、位置偏差、モデル予測誤差、およびトルクの変化が示されている。図5に示す各図において、横軸はいずれも時間(t)である。
図6は、図4に示す制御テストについて、コントローラ10によって制御された第一アクチュエータ22および第二アクチュエータ32の合計の位置(図6の(A))および位置偏差(図6の(B))の変化を示す図である。図6に示す各図において、横軸はいずれも時間(t)である。なお、図6の(A)において、指令値と低速高速合成制御量(第一アクチュエータ22の制御量の実測値と第二アクチュエータ32の制御量の実測値とを合計(合成)した値)とは、ほぼ重なっている。
前述の通り、コントローラ10は、第一逆運動学軌道SP(i)に対してローパスフィルタ処理を行なって補正後軌道SPf(i)を生成する。コントローラ10の用いるローパスフィルタのフィルタ特性は、例えば、カットオフ周波数10Hzの4次バターワース型である。そして、コントローラ10は、補正後軌道SPf(i)から生成する第一指令値Pc(i)を第一サーボ制御系20の動特性モデルを用いたMPCによって補正し、補正した第一指令値Pc(i)を第一サーボ制御系20に出力する。コントローラ10は、第一サーボ制御系20の動特性モデルを用いたMPCを第一サーボ制御系20の制御に適用することにより、第一サーボ制御系20の追従性能を向上させている。
したがって、図6の(B)に示すピーク偏差(第一アクチュエータ22および第二アクチュエータ32の合計(総合)の追従誤差のピーク)は、図24の(B)に示すピーク偏差の1/2程度に低減している。具体的には、図24の(B)においてピーク偏差は約プラスマイナス0.5mmであるのに対し、図6の(B)においてピーク偏差は約プラスマイナス0.25mmである。また、図5の(A)の2段目に示す低速側のピーク偏差(第一アクチュエータ22の位置偏差のピーク)は、図23の(A)の2段目に示すピーク偏差の1/100以下に低減している。
〔実施形態2〕
本発明の実施形態2について、図7から図11に基づいて説明すれば、以下のとおりである。なお、説明の便宜上、前記実施形態にて説明した部材と同じ機能を有する部材については、同じ符号を付記し、その説明を省略する。本実施形態における制御システム2が、上述の実施形態1における制御システム1と異なるのは、本実施形態に係る制御装置であるコントローラ11が、コントローラ10の位置指令部173に代えて、第二MPC位置指令部175を備えている点である。「位置指令部173に代えて第二MPC位置指令部175を備える」点以外の点においては、コントローラ11の構成は、コントローラ10の構成と同様である。
(制御システムの概要)
図8は、コントローラ11を含む制御システム2の全体概要を示す図である。制御システム2のコントローラ11は、低速アクチュエータ(第一サーボ制御系20)側にMPC位置補正制御を適用するだけでなく、高速アクチュエータ(第二アクチュエータ32)側にもMPC位置補正制御を適用する。コントローラ11は、高速アクチュエータ側にMPC位置補正制御を適用することにより、高速アクチュエータの応答遅れに起因する追従誤差を低減する。
具体的には、コントローラ11には、予め作成されていた低速サーボシステム(第一サーボ制御系20)の動特性モデルが設定される。コントローラ11は、第一サーボ制御系20の動特性モデルを用いて、第一サーボ制御系20についてMPCを行なう。
また、コントローラ11には、予め作成されていた高速サーボシステム(第二サーボ制御系30)の動特性モデルが設定される。コントローラ11は、第二サーボ制御系30の動特性モデルを用いて、第二サーボ制御系30についてMPCを行なう。すなわち、コントローラ11は、第二逆運動学軌道IKt(i)から第二サーボ制御系30に対する制御周期ごとに生成する第二指令値Sc(i)を、第二サーボ制御系30の動特性モデルを用いたMPCによって補正する。そして、コントローラ11は、補正した第二指令値Sc(i)を第二サーボ制御系30に出力する。
コントローラ11は、第一サーボ制御系20の動特性モデルを用いて第一サーボ制御系20の応答遅れを予測し、予測した応答遅れを第一サーボ制御系20において取り戻す。すなわち、コントローラ11は、第一サーボ制御系20の動特性モデルを用いたMPCによる位置補正制御によって、低速アクチュエータ(第一アクチュエータ22)の軌道追従性を向上させる。
また、コントローラ11は、第二サーボ制御系30の動特性モデルを用いて第二サーボ制御系30の応答遅れを予測し、予測した応答遅れを第二サーボ制御系30において取り戻す。すなわち、コントローラ11は、第二サーボ制御系30の動特性モデルを用いたMPCによる位置補正制御によって、高速アクチュエータ(第二アクチュエータ32)の軌道追従性を向上させる。
(制御装置の詳細)
図7は、本発明の実施形態2に係るコントローラ11等の要部構成等を示すブロック図である。上述の通り、「位置指令部173に代えて第二MPC位置指令部175を備える」点以外は、コントローラ11の構成は、コントローラ10の構成と同様であるため、第二MPC位置指令部175についてのみ、説明する。
第二MPC位置指令部175は第二応答予測部176を含み、第二応答予測部176には、予め作成された第二サーボ制御系30の動特性モデルが設定されている。第二応答予測部176は、第二サーボ制御系30の動特性モデルを予め作成しておき、作成した第二サーボ制御系30の動特性モデルを自身に設定しておいてもよい。
第二MPC位置指令部175は、以下の2つの処理を実行する。第一に、第二MPC位置指令部175は、第二サーボ制御系30に対する制御周期ごとに、「第二サーボ制御系30についての指令軌道」から第二サーボ制御系30の軸ごとの第二指令値Sc(i)を生成する。例えば、第二MPC位置指令部175は、「第二サーボ制御系30についての指令軌道」として、第二逆運動学演算部150から第二逆運動学軌道IKt(i)を取得する。そして、第二MPC位置指令部175は、例えば1/12msごとに、第二逆運動学軌道IKt(i)から第二サーボ制御系30の軸ごとの第二指令値Sc(i)を生成する。
第二に、第二MPC位置指令部175は、第二逆運動学軌道IKt(i)から第二サーボ制御系30に対する制御周期ごとに生成する第二指令値Sc(i)を、モデル予測制御によって補正し、補正した第二指令値Sc(i)を第二サーボ制御系30に出力する。
具体的には、第二応答予測部176は、設定されている第二サーボ制御系30の動特性モデルを用いて、第二指令値Sc(i)に対する第二サーボ制御系30の出力である制御量を予測する。第二MPC位置指令部175は、第二応答予測部176によって予測された制御量と、第二サーボ制御系30からフィードバック情報として取得する第二サーボ制御系30の制御量の実測値と、を用いたモデル予測制御を実行する。すなわち、第二MPC位置指令部175は、第二応答予測部176が第二サーボ制御系30の動特性モデルを用いて予測した「第二サーボ制御系30の出力である制御量」と、第二サーボ制御系30の制御量の実測値と、を用いて第二指令値Sc(i)を補正する。そして、第二MPC位置指令部175は、モデル予測制御を用いて補正した第二指令値Sc(i)を、第二サーボ制御系30に対する制御周期ごとに、第二サーボ制御系30に出力する。第二MPC位置指令部175は、例えば1/12msごとに、補正した第二指令値Sc(i)を第二サーボ制御系30に出力する。
(動特性モデルについて)
第二サーボ制御系30の動特性モデルは、上述の(式1)に示される離散時間伝達関数のように表される。コントローラ11において、(式1)に例示するような第二サーボ制御系30の動特性モデルが予め作成され、作成された動特性モデルは第二応答予測部176に設定される。
(コントローラが実行する処理について)
図9は、コントローラ11が実行する処理の概要を示すフロー図である。図9に例示するコントローラ11の実行する処理について、S220からS260までの処理は、図3に例示したコントローラ10の実行するS120からS160までの処理と同様であり、また、図9のS280の処理は図3のS180の処理と同様である。したがって、S220からS260までの処理、および、S280の処理についての説明は略記し、S210およびS270の処理について説明する。
コントローラ11は、低速サーボシステム(第一サーボ制御系20)の動特性モデル、および高速サーボシステム(第二サーボ制御系30)を予め作成しておき、各々を、第一応答予測部172および第二応答予測部176に設定しておく(S210)。
コントローラ11は、低速サーボシステム(第一サーボ制御系20)の動特性モデルを用いたMPC位置補正制御により、低速サーボシステムへの補正後指令値を計算し、計算した補正後指令値を低速サーボシステムに出力する。また、コントローラ11は、高速サーボシステム(第二サーボ制御系30)の動特性モデルを用いたMPC位置補正制御により、高速サーボシステムへの補正後指令値を計算し、計算した補正後指令値を高速サーボシステムに出力する(S270)。
具体的には、第一MPC位置指令部171は、補正後軌道SPf(i)から第一サーボ制御系20に対する制御周期ごとに生成される第一指令値Pc(i)を、第一サーボ制御系20の動特性モデルを用いたMPCにより補正する。すなわち、第一MPC位置指令部171は、第一応答予測部172が第一サーボ制御系20の動特性モデルを用いて予測した「第一サーボ制御系20の出力である制御量」と、第一サーボ制御系20の制御量の実測値と、を用いて、第一指令値Pc(i)を補正する。そして、第一MPC位置指令部171は、補正した第一指令値Pc(i)を第一サーボ制御系20に出力する。
また、第二MPC位置指令部175は、第二逆運動学軌道IKt(i)から第二サーボ制御系30に対する制御周期ごとに生成する第二指令値Sc(i)を、第二サーボ制御系30の動特性モデルを用いたMPCにより補正する。すなわち、第二MPC位置指令部175は、第二応答予測部176が第二サーボ制御系30の動特性モデルを用いて予測した「第二サーボ制御系30の出力である制御量」と、第二サーボ制御系30の制御量の実測値と、を用いて第二指令値Sc(i)を補正する。そして、第二MPC位置指令部175は、モデル予測制御を用いて補正した第二指令値Sc(i)を、補正した第二指令値Sc(i)を第二サーボ制御系30に出力する。
(コントローラが奏する効果について)
図10は、図4に示す制御テストについて、コントローラ11によって制御された第一アクチュエータ22および第二アクチュエータ32の各々の位置、位置偏差、およびトルクの変化を示す図である。図10の(A)には、上から順に、コントローラ11によって制御された第一アクチュエータ22の位置、位置偏差、およびトルクの変化が示されている。図10の(B)には、上から順に、コントローラ11によって制御された第二アクチュエータ32の位置、位置偏差、およびトルクの変化が示されている。図10に示す各図において、横軸はいずれも時間(t)である。
図11は、図4に示す制御テストについて、コントローラ11によって制御された第一アクチュエータ22および第二アクチュエータ32の合計の位置(図11の(A))および位置偏差(図11の(B))の変化を示す図である。なお、図11の(A)において、指令値と低速高速合成制御量(第一アクチュエータ22の制御量の実測値と第二アクチュエータ32の制御量の実測値とを合計(合成)した値)とは、ほぼ重なっている。
前述の通り、コントローラ11は、第一逆運動学軌道SP(i)に対してローパスフィルタ処理を行なって補正後軌道SPf(i)を生成する。コントローラ11の用いるローパスフィルタのフィルタ特性は、例えば、カットオフ周波数10Hzの4次バターワース型である。そして、コントローラ11は、補正後軌道SPf(i)から生成する第一指令値Pc(i)を第一サーボ制御系20の動特性モデルを用いたMPCによって補正し、補正した第一指令値Pc(i)を第一サーボ制御系20に出力する。また、コントローラ11は、第二逆運動学軌道IKt(i)から生成する第二指令値Sc(i)を、第二サーボ制御系30の動特性モデルを用いたMPCにより補正し、補正した第二指令値Sc(i)を第二サーボ制御系30に出力する。
コントローラ11は、第一サーボ制御系20の動特性モデルを用いたMPCを第一サーボ制御系20の制御に適用することにより、第一サーボ制御系20の追従性能を向上させている。また、コントローラ11は、第二サーボ制御系30の動特性モデルを用いたMPCを第二サーボ制御系30の制御に適用することにより、第二サーボ制御系30の追従性能を向上させている。
図10および図11の各々を図5および図6の各々と比べると、コントローラ11は高速サーボ制御システム(第二サーボ制御系30)側の応答遅れ分も補償できるため、コントローラ10と比べても制御性能を格段に向上させることができることが示されている。
〔実施形態3〕
本発明の実施形態3について、図12から図16に基づいて説明すれば、以下のとおりである。なお、説明の便宜上、前記実施形態にて説明した部材と同じ機能を有する部材については、同じ符号を付記し、その説明を省略する。本実施形態における制御システム3が、上述の実施形態1における制御システム1と異なるのは、本実施形態に係る制御装置であるコントローラ12が、コントローラ10のMPC指令部170および位置指令部173に代えて指示部180を備えている点である。コントローラ12はさらに、コントローラ10が備えていない応答予測部190を備えている。「MPC指令部170および位置指令部173に代えて指示部180を備え、さらに応答予測部190を備える」点以外の点においては、コントローラ12の構成は、コントローラ10の構成と同様である。
(制御システムの概要)
図13は、コントローラ12を含む制御システム3の全体概要を示す図である。制御システム3のコントローラ12には、予め作成されていた低速サーボシステム(第一サーボ制御系20)の動特性モデルが設定される。コントローラ12は、ローパスフィルタ処理後の補正後軌道SPf(i)に対応する低速サーボ(つまり、第一サーボ制御系20)の応答を、設定されている低速サーボシステムの動特性モデルを用いて、予測する。
なお、コントローラ12は、低速サーボシステム(第一サーボ制御系20)の応答を予測する際、低速サーボシステムの動特性モデルに加えて、低速サーボシステムからのフィードバック制御量を用いることによって、低速サーボシステムの応答に係る予測の精度を改善してもよい。
ここで、前述のコントローラ10とコントローラ12とは、第一サーボ制御系20の動特性モデルを使用して応答遅れを予測する点において共通している。コントローラ10とコントローラ12とは、予測した応答遅れをどこで取り戻すかが異なっている。コントローラ10が予測した応答遅れを第一サーボ制御系20において取り戻すのに対して、コントローラ12は、予測した応答遅れを第二サーボ制御系30(第二アクチュエータ32)において取り戻す。
コントローラ12は、第一アクチュエータ22の応答を予測し、応答遅れ分を第二アクチュエータ32についての指令軌道に反映することによって、応答遅れ分を第二サーボ制御系30(第二アクチュエータ32)において取り戻す。具体的には、コントローラ12は、「予測した第一サーボ制御系20の応答に順運動学演算を行なって生成した中間軌道と、目標軌道Ttと、の誤差」に逆運動学演算を行なって、第二サーボ制御系30についての指令軌道を生成する。
上述の方法により、コントローラ12は、「予測した第一サーボ制御系20(第一アクチュエータ22)の応答」を反映させた「第二サーボ制御系30についての指令軌道」を生成する。そして、コントローラ12は、「予測した第一サーボ制御系20の応答」を反映させた「第二サーボ制御系30についての指令軌道」から、「第二サーボ制御系30に対する指令値」である第二指令値Sc(i)を生成する。コントローラ12は、生成した第二指令値Sc(i)を第二サーボ制御系30に出力することにより、第一サーボ制御系20および第二サーボ制御系30の全体の追従性能を向上することができる。
つまり、コントローラ12は、第一アクチュエータ22側の応答遅れ分を第二アクチュエータ32側でカバーさせることにより、第一アクチュエータ22と第二アクチュエータ32との合計(総合)の追従性能を向上させる。ただし、コントローラ12による制御は、コントローラ10による制御に比べて、第二アクチュエータ32の動作範囲を広くする傾向がある。
(制御装置の概要)
これまで図13を用いて概要を説明してきた制御システム3に含まれるコントローラ12について、次に、その構成および処理の内容等を、図12等を用いて説明していく。図12を参照して詳細を説明する前に、コントローラ12についての理解を容易にするため、その概要について以下のように整理しておく。
コントローラ12(制御装置)は、第一サーボ制御系20についての指令軌道として、第一逆運動学軌道SP(基準軌道)からローパスフィルタ処理により高周波成分を除去した補正後軌道SPf(第一指令軌道)を生成し、第二サーボ制御系30についての指令軌道として、前記高周波成分に対応する軌道を含む第二逆運動学軌道IKt(第二指令軌道)を生成する制御装置であって、第一サーボ制御系20の動特性モデルを用いて、補正後軌道SPfに対応する第一サーボ制御系20の応答を予測する応答予測部190(予測部)と、応答予測部190によって予測された第一サーボ制御系20の応答を用いて、(1)補正後軌道SPfから生成する第一指令値Pcの補正、または、(2)第二逆運動学軌道IKtの生成を実行する第二逆運動学演算部150(生成部)と、を備えている。
前記の構成によれば、コントローラ12は、前記ローパスフィルタ処理後の値である補正後軌道SPfに対応する、第一サーボ制御系20の応答を、第一サーボ制御系20の動特性モデルを用いて予測する。そして、コントローラ12は、予測した第一サーボ制御系20の応答を用いて、(1)第一指令値Pcの補正、または、(2)第二逆運動学軌道IKtの生成を実行する。具体的には、コントローラ12は、予測した第一サーボ制御系20の応答を用いて第二逆運動学軌道IKtを生成する。
ここで、従来のコントローラを用いた場合、第一サーボ制御系20がローパスフィルタ処理後の軌道(つまり、補正後軌道SPf)に十分に追従できないことがあり、その場合、第一サーボ制御系20および第二サーボ制御系30の全体の追従性能が低下することになる。
これに対して、コントローラ12は、補正後軌道SPfに対応する第一サーボ制御系20の応答を予測し、予測した第一サーボ制御系20の応答を用いて、第二逆運動学軌道IKtの生成を実行する。具体的には、コントローラ12は、予測した第一サーボ制御系20の応答を用いて、第二逆運動学軌道IKtの生成を実行する。
例えば、コントローラ12は、予測した第一サーボ制御系20の応答を用いて生成した第二逆運動学軌道IKtから生成する第二指令値Scを第二サーボ制御系30に出力することにより、第一サーボ制御系20の追従遅れを第二サーボ制御系30に補償させる。
したがって、コントローラ12は、第一サーボ制御系20および第二サーボ制御系30の全体の追従性能を向上させることができるとの効果を奏する。例えば、コントローラ12は、予測した第一サーボ制御系20の応答を用いて生成した第二逆運動学軌道IKtから生成する第二指令値Scを第二サーボ制御系30に出力することで、第一サーボ制御系20が補正後軌道SPfに追従できない場合にも、第一サーボ制御系20が追従できない分を第二サーボ制御系30に補償させることができる。したがって、コントローラ12は、第一サーボ制御系20および第二サーボ制御系30の全体の追従性能を向上させることができるとの効果を奏する。
コントローラ12において、第二逆運動学演算部150は、応答予測部190によって予測された第一サーボ制御系20の応答を用いて生成する順運動学軌道FKt(中間軌道)と、第一逆運動学軌道SPと、の誤差に対応する軌道を含む第二逆運動学軌道IKtを生成する。
前述の通り、第二逆運動学演算部150は、「第二サーボ制御系30についての指令軌道」として、ローパスフィルタ部130により第一逆運動学軌道SP(i)から除去された高周波成分に対応する軌道を含む第二逆運動学軌道IKt(第二指令軌道)を生成する。コントローラ12において第二逆運動学演算部150は、「応答予測部190の予測した第一サーボ制御系20の応答」を用いて生成した順運動学軌道FKtと、第一逆運動学軌道SPと、の誤差に対応する軌道を含む第二逆運動学軌道IKtを生成する。例えば、第二逆運動学演算部150は、順運動学演算部140が「応答予測部190の予測した第一サーボ制御系20の応答」に順運動学演算を行なって生成した順運動学軌道FKtと、目標軌道Ttと、の差分(誤差)から第二逆運動学軌道IKtを生成する。
第二逆運動学演算部150は、「順運動学軌道FKt(中間軌道)と、第二逆運動学軌道IKtとの合成軌道が、目標軌道Ttに一致する」ようにして、目標軌道Ttと順運動学軌道FKt(中間軌道)との誤差に対応する軌道を含む第二逆運動学軌道IKtを生成してもよい。第二逆運動学演算部150は、「中間軌道と、第二逆運動学軌道IKtとの合成軌道が、目標軌道Ttに一致する」ようにして、第一逆運動学軌道SPと中間軌道との誤差に対応する軌道を含む第二逆運動学軌道IKtを生成する。
前記の構成によれば、コントローラ12は、第一サーボ制御系20の、補正後軌道SPfに対応する応答について予測し、予測した応答を用いて生成する順運動学軌道FKtと、第一逆運動学軌道SPと、の誤差に対応する軌道を含む第二逆運動学軌道IKtを生成する。そして、コントローラ12は、第二逆運動学軌道IKtから生成した指令値(第二指令値Sc)を、第二サーボ制御系30に出力する。
したがって、コントローラ12は、予測した第一サーボ制御系20の応答を用いて生成した第二逆運動学軌道IKtから生成する第二指令値Scを第二サーボ制御系30に出力することにより、第一サーボ制御系20の追従遅れを第二サーボ制御系30に補償させることができる。つまり、コントローラ12は、第一サーボ制御系20および第二サーボ制御系30の全体の追従性能を向上させることができるとの効果を奏する。
(制御装置の詳細)
図12は、本発明の実施形態3に係るコントローラ12等の要部構成等を示すブロック図である。上述の通り、「MPC指令部170および位置指令部173に代えて指示部180を備え、さらに応答予測部190を備える」点以外は、コントローラ12の構成は、コントローラ10の構成と同様であるため、指示部180および応答予測部190についてのみ、説明する。
指示部180は、第一サーボ制御系20に第一指令値Pc(i)を出力する第一指示部181と、第二サーボ制御系30に第二指令値Sc(i)を出力する第二指示部182と、を含んでいる。
第一指示部181は、第一サーボ制御系20に対する制御周期ごとに、「第一サーボ制御系20についての指令軌道」から第一サーボ制御系20の軸ごとの第一指令値Pc(i)を生成し、生成した第一指令値Pc(i)を第一サーボ制御系20に出力する。具体的には、第一指示部181は、「第一サーボ制御系20についての指令軌道」として、ローパスフィルタ部130から補正後軌道SPf(i)を取得する。そして、第一指示部181は、例えば1msごとに、補正後軌道SPf(i)から第一サーボ制御系20の軸ごとの第一指令値Pc(i)を生成し、生成した第一指令値Pc(i)を第一サーボ制御系20に出力する。
第二指示部182は、第二サーボ制御系30に対する制御周期ごとに、「第二サーボ制御系30についての指令軌道」から、第二サーボ制御系30の軸ごとの第二指令値Sc(i)を生成し、生成した第二指令値Sc(i)を第二サーボ制御系30に出力する。具体的には、第二指示部182は、「第二サーボ制御系30についての指令軌道」として、第二逆運動学演算部150から第二逆運動学軌道IKt(i)を取得する。そして、第二指示部182は、例えば1/12msごとに、第二逆運動学軌道IKt(i)から第二サーボ制御系30の軸ごとの第二指令値Sc(i)を生成し、生成した第二指令値Sc(i)を第二サーボ制御系30に出力する。
応答予測部190は、低速サーボシステム(つまり、第一サーボ制御系20)の動特性モデルを予め作成し、作成しておいた動特性モデルを用いて、ローパスフィルタ部130が生成した補正後軌道SPf(i)に対応する第一サーボ制御系20の応答を予測する。応答予測部190は、予測した第一サーボ制御系20の応答を、順運動学演算部140に出力し、順運動学演算部140は、応答予測部190により予測された第一サーボ制御系20の応答に対する順運動学演算から、順運動学軌道FKt(中間軌道)を生成する。応答予測部190が用いる「第一サーボ制御系20の動特性モデル」は、例えば、前述の(式1)に示す離散時間伝達関数のように表されてもよい。
(コントローラが実行する処理について)
図14は、コントローラ12が実行する処理の概要を示すフロー図である。先ず、低速サーボシステム(第一サーボ制御系20)の動特性モデルを作成して、低速サーボ応答予測部(つまり、応答予測部190)に設定しておく(S310)。
第一逆運動学演算部120は、目標軌道Ttから第一アクチュエータ22の軸毎の指令値を生成し、つまり、目標軌道Ttに逆運動学演算を行なって第一逆運動学軌道SP(i)を生成する(S320)。
ローパスフィルタ部130は、軸毎の軌道(つまり、第一逆運動学軌道SP(i))に対してローパスフィルタリングを実行し(S330)、生成した補正後軌道SPf(i)を、「第一サーボ制御系20についての指令軌道」として応答予測部190に通知する。
応答予測部190は、第一サーボ制御系20の動特性モデルを用いて、補正後軌道SPf(i)に対する低速サーボシステムの軸毎の応答を予測計算し、つまり、補正後軌道SPf(i)に対応する第一サーボ制御系20の応答を予測する(S340)。
コントローラ12は、「予測応答(第一サーボ制御系20の制御量についての予測値)と、目標軌道の指令値と、の差分」を計算し、計算した差分から高速アクチュエータ(第二アクチュエータ32)の軸毎の指令値を生成する。
例えば、順運動学演算部140は、応答予測部190によって予測された第一サーボ制御系20の応答(第一サーボ制御系20の制御量についての予測値)に、順運動学演算を行なって、中間軌道(つまり、順運動学軌道FKt)を生成する(S350)。そして、第二逆運動学演算部150は、中間軌道と目標軌道Ttとの差分(誤差)を計算する(S360)。そして、第二逆運動学演算部150は、S360で計算した誤差(差分)を用いて、第二アクチュエータ32の軸毎の軌道を計算し(S370)、つまり、第二逆運動学軌道IKt(i)を生成する。具体的には、第二逆運動学演算部150は、「中間軌道(つまり、順運動学軌道FKt)と、目標軌道Ttと、の誤差」に逆運動学演算を行なって、第二サーボ制御系30の軸ごとの指令軌道である第二逆運動学軌道IKt(i)を生成する。第二逆運動学演算部150は、「応答予測部190の予測した第一サーボ制御系20の応答」から生成した順運動学軌道FKtと、第一逆運動学軌道SPと、の誤差に対応する軌道を含む第二逆運動学軌道IKtを生成する。例えば、第二逆運動学演算部150は、順運動学軌道FKt(中間軌道)と、第一逆運動学軌道SPと、の誤差に対応する軌道を含む第二逆運動学軌道IKtを、「中間軌道と第二逆運動学軌道IKtとの合成軌道が目標軌道Ttに一致する」ように、生成する。
第二逆運動学演算部150は、生成した第二逆運動学軌道IKt(i)を、「第二サーボ制御系30についての指令軌道」として、第二指示部182に通知する。
指示部180は、軸毎の軌道(補正後軌道SPf(i)および第二逆運動学軌道IKt(i))から、現時刻の指令値を、低速サーボシステム(つまり、第一サーボ制御系20)および高速サーボシステム(つまり、第二サーボ制御系30)へ出力する(S380)。具体的には、第一指示部181は、ローパスフィルタ部130から通知された補正後軌道SPf(i)から、第一サーボ制御系20に対する制御周期ごとに、第一指令値Pc(i)を生成し、生成した第一指令値Pc(i)を第一サーボ制御系20に出力する。
また、第二指示部182は、第二逆運動学演算部150から通知された第二逆運動学軌道IKt(i)から、第二サーボ制御系30に対する制御周期ごとに、第二指令値Sc(i)を生成し、生成した第二指令値Sc(i)を第二サーボ制御系30に出力する。
コントローラ12は、軌道終点に到達したかを判定しながら(S390)、制御周期ごとに、S320〜S380の処理を繰り返す。具体的には、コントローラ12は、S320〜S380の処理のうち、「第一サーボ制御系20のみに係る処理」を、軌道終点に到達したかを判定しながら(S390)、第一サーボ制御系20に対する制御周期で繰り返し実行する。また、コントローラ12は、S320〜S380の処理のうち、「第一サーボ制御系20のみに係る処理」以外の処理(例えば、第二サーボ制御系30に係る処理)を、軌道終点に到達したかを判定しながら(S390)、第二サーボ制御系30に対する制御周期で繰り返し実行する。
これまで図14を用いて説明してきた、コントローラ12の実行する制御方法は、以下のように整理することができる。すなわち、コントローラ12の実行する制御方法は、第一サーボ制御系20についての指令軌道として、第一逆運動学軌道SP(基準軌道)からローパスフィルタ処理により高周波成分を除去した補正後軌道SPf(第一指令軌道)を生成し、第二サーボ制御系30についての指令軌道として、前記高周波成分に対応する軌道を含む第二逆運動学軌道IKt(第二指令軌道)を生成する制御装置の制御方法であって、第一サーボ制御系20の動特性モデルを用いて、補正後軌道SPfに対応する第一サーボ制御系20の応答を予測する予測ステップ(S340)と、前記予測ステップにて予測した第一サーボ制御系20の応答を用いて、(1)補正後軌道SPfから生成する第一指令値Pcの補正、または、(2)第二逆運動学軌道IKtの生成を実行する生成ステップ(S370)と、を含んでいる。
前記の方法によれば、前記制御方法は、前記ローパスフィルタ処理後の値である補正後軌道SPfに対応する、第一サーボ制御系20の応答を、第一サーボ制御系20の動特性モデルを用いて予測する。そして、前記制御方法は、予測した第一サーボ制御系20の応答を用いて、(1)第一指令値Pcの補正、または、(2)第二逆運動学軌道IKtの生成を実行する。
ここで、第一サーボ制御系20がローパスフィルタ処理後の軌道に十分に追従できない場合、結果として、第一サーボ制御系20および第二サーボ制御系30の全体の追従性能が低下することになる。
これに対して、前記制御方法は、補正後軌道SPfに対応する第一サーボ制御系20の応答を予測し、予測した第一サーボ制御系20の応答を用いて、(1)第一指令値Pcの補正、または、(2)第二逆運動学軌道IKtの生成を実行する。
例えば、前記制御方法は、予測した第一サーボ制御系20の応答を用いて補正した第一指令値Pcを第一サーボ制御系20に出力することにより、第一サーボ制御系20の補正後軌道SPfへの追従性能を向上させる。
また例えば、前記制御方法は、予測した第一サーボ制御系20の応答を用いて生成した第二逆運動学軌道IKtから生成する第二指令値Scを第二サーボ制御系30に出力することにより、第一サーボ制御系20の追従遅れを第二サーボ制御系30に補償させる。
したがって、前記制御方法は、第一サーボ制御系20および第二サーボ制御系30の全体の追従性能を向上させることができるとの効果を奏する。例えば、前記制御方法は、予測した第一サーボ制御系20の応答を用いて補正した第一指令値Pcを第一サーボ制御系20に出力することで、第一サーボ制御系20の追従性能を向上させることができる。また例えば、前記制御方法は、予測した第一サーボ制御系20の応答を用いて生成した第二逆運動学軌道IKtから生成する第二指令値Scを第二サーボ制御系30に出力することで、第一サーボ制御系20が補正後軌道SPfに追従できない場合にも、第一サーボ制御系20が追従できない分を第二サーボ制御系30に補償させることができる。したがって、前記制御方法は、第一サーボ制御系20および第二サーボ制御系30の全体の追従性能を向上させることができるとの効果を奏する。
(コントローラが奏する効果について)
図15は、図4に示す制御テストについて、コントローラ12によって制御された第一アクチュエータ22および第二アクチュエータ32の各々の位置、位置偏差、モデル予測誤差、およびトルクの変化を示す図である。図15の(A)には、上から順に、コントローラ12によって制御された第一アクチュエータ22の位置、位置偏差、モデル予測誤差、およびトルクの変化が示されている。図15の(B)には、上から順に、コントローラ12によって制御された第二アクチュエータ32の位置、位置偏差、モデル予測誤差、およびトルクの変化が示されている。図15に示す各図において、横軸はいずれも時間(t)である。
図16は、図4に示す制御テストについて、コントローラ12によって制御された第一アクチュエータ22および第二アクチュエータ32の合計の位置(図16の(A))および位置偏差(図16の(B))の変化を示す図である。図16に示す各図において、横軸はいずれも時間(t)である。なお、図16の(A)において、指令値と低速高速合成制御量(第一アクチュエータ22の制御量の実測値と第二アクチュエータ32の制御量の実測値とを合計(合成)した値)とは、ほぼ重なっている。
前述の通り、コントローラ12は、第一逆運動学軌道SP(i)に対してローパスフィルタ処理を行なって補正後軌道SPf(i)を生成する。コントローラ12の用いるローパスフィルタのフィルタ特性は、例えば、カットオフ周波数10Hzの4次バターワース型である。なお、応答予測の精度を優先して、低速サーボ制御系(第一サーボ制御系20)側の速度FF(フィードフォワード)ゲイン=0%とした。
そして、コントローラ12は、補正後軌道SPf(i)に対応する第一サーボ制御系20の応答を、第一サーボ制御系20の動特性モデルを用いて予測し、予測した第一サーボ制御系20の応答を用いて、第二逆運動学軌道IKt(i)を生成する。コントローラ12は、第一アクチュエータ22側の応答遅れ分を反映した第二逆運動学軌道IKt(i)を、「第二アクチュエータ32についての指令軌道」とすることにより、第一アクチュエータ22側の応答遅れ分を第二アクチュエータ32側でカバーさせる。
したがって、図16の(B)に示すピーク偏差(第一アクチュエータ22および第二アクチュエータ32の合計(総合)の追従誤差のピーク)は、図24の(B)に示すピーク偏差の1/2程度に低減している。具体的には、図24の(B)においてピーク偏差は約プラスマイナス0.5mmであるのに対し、図16の(B)においてピーク偏差は約プラスマイナス0.25mmである。
〔実施形態4〕
本発明の実施形態4について、図17から図22に基づいて説明すれば、以下のとおりである。なお、説明の便宜上、前記実施形態にて説明した部材と同じ機能を有する部材については、同じ符号を付記し、その説明を省略する。本実施形態における制御システム4が、上述の実施形態2における制御システム2と異なるのは、本実施形態に係る制御装置であるコントローラ13が、コントローラ11のローパスフィルタ部130に代えて、ゼロ位相フィルタ部131を備えている点である。さらに、コントローラ13は、記憶部160を備えている。「ローパスフィルタ部130に代えてゼロ位相フィルタ部131を備える」点、および、「記憶部160を備える」点以外の点においては、コントローラ13の構成は、コントローラ11の構成と同様である。
(制御システムの概要)
図18は、コントローラ13を含む制御システム4の全体概要を示す図である。ここで、コントローラ13は、第一逆運動学軌道SP(i)から、位相遅延が発生しないようにして高周波成分を除去して、補正後軌道SPf(i)を生成する。具体的には、コントローラ13は、第一逆運動学軌道SP(i)に対し、時間軸の順方向と逆方向との両方向にローパスフィルタ処理を行なって、つまり、ゼロ位相フィルタ処理を行なって、補正後軌道SPf(i)を生成する。コントローラ13は、生成した補正後軌道SPf(i)をメモリ(具体的には、後述する記憶部160の第一指示軌道テーブル161)に格納する。
また、コントローラ13は、第一サーボ制御系20の動特性モデルを使用して第一サーボ制御系20の応答遅れを予測し、予測した応答遅れを第一サーボ制御系20において取り戻す協調制御コントローラである。すなわち、コントローラ13は、第一サーボ制御系20の動特性モデルを用いたモデル予測制御による位置補正制御によって、低速アクチュエータ(第一アクチュエータ22)の軌道追従性を向上させる。
さらに、コントローラ13は、第二サーボ制御系30の動特性モデルを用いたモデル予測制御による位置補正制御によって、高速アクチュエータ(第二アクチュエータ32)の軌道追従性を向上させる。
(制御装置の概要)
コントローラ13は、第一逆運動学軌道SPに対し、時間軸の順方向と逆方向との両方向に前記ローパスフィルタ処理を行なって補正後軌道SPfを生成するローパスフィルタ部130(フィルタ部)を備えている。
前記の構成によれば、コントローラ13は、第一逆運動学軌道SPに対し、時間軸の順方向と逆方向との両方向に前記ローパスフィルタ処理を行なって補正後軌道SPfを生成する。例えば、コントローラ13は、第一逆運動学軌道SPに対し、時間軸の逆方向から順方向の順に前記ローパスフィルタ処理を行なって補正後軌道SPfを生成する。
ここで、フィルタリング処理(例えば、ローパスフィルタ処理)について、「時間軸の順方向と逆方向とに1回ずつ実行する」ことにより、フィルタリング処理による位相遅れを除去することができることが知られている。つまり、ゼロ位相フィルタ処理によって位相遅れを除去することができることが知られている。
そこで、コントローラ13は、第一逆運動学軌道SPに対し、時間軸の順方向と逆方向との両方向にローパスフィルタ処理を行なって、つまり、ゼロ位相フィルタ処理を行なって、補正後軌道SPfから位相遅れを除去する。コントローラ13は、前記ローパスフィルタに起因して従来発生していた「第一逆運動学軌道SPからの位相遅れ」を発生させずに、補正後軌道SPfを生成する。
従来、第一サーボ制御系20の追従性を向上させるためのローパスフィルタ処理の際に、前記ローパスフィルタ処理に起因して補正後軌道SPfに位相遅れ(位相遅延)が発生し、発生した位相遅延を第二サーボ制御系30に補償させていた。したがって、従来、第一サーボ制御系20の追従性を向上させる代わりに、本来は第一サーボ制御系20が実現すべき軌道の一部を第二サーボ制御系30に実現させることになり、第二サーボ制御系30の可動範囲を有効に利用することができなかった。
これに対し、コントローラ13は、前記高周波成分の除去に伴って従来発生していた「第一逆運動学軌道SPからの位相遅れ」の発生を防ぐことにより、第一サーボ制御系20が本来実現すべき軌道の一部を第二サーボ制御系30に補償させる必要がない。つまり、コントローラ13は、高周波成分の除去によって第一サーボ制御系20の追従性を維持しつつ、位相遅延の発生を防ぐことで第二サーボ制御系30の可動範囲を有効に利用することができる。コントローラ13は、第一サーボ制御系20の追従性を維持しつつ、第一サーボ制御系20および第二サーボ制御系30の各々について、その可動範囲を有効に利用することができるという効果を奏する。
コントローラ13において、ローパスフィルタ部130は、第一逆運動学軌道SPに対し、時間軸の逆方向から順方向の順に前記ローパスフィルタ処理を行なって補正後軌道SPfを生成する。
前記の構成によれば、コントローラ13は、第一逆運動学軌道SPに対し、時間軸の逆方向から順方向の順に前記ローパスフィルタ処理を行なって補正後軌道SPfを生成する。
ここで、第一逆運動学軌道SPに対し、時間軸の順方向から逆方向の順に前記ローパスフィルタ処理(前記ゼロ位相フィルタ処理)を行なった場合、補正後軌道SPfについて、スタート時点(t=0の時点)において、第一逆運動学軌道SPに対するデータ飛びが発生する。
これに対して、コントローラ13は、第一逆運動学軌道SPに対し、時間軸の逆方向から順方向の順に前記ローパスフィルタ処理を行なって補正後軌道SPfを生成する。したがって、コントローラ13は、補正後軌道SPfについて、スタート時点(t=0の時点)において、第一逆運動学軌道SPに対するデータ飛びが発生することを防ぐことができるとの効果を奏する。
以上を整理すれば、コントローラ13は、目標軌道Ttに逆運動学演算を行なって生成した軌道に遅延補償付きのローパスフィルタ処理を実施したものを、第一アクチュエータ22についての指令軌道とする。具体的には、コントローラ13は、ゼロ位相フィルタを使用する。ゼロ位相フィルタは、フィルタ処理を時間軸の順方向と逆方向との2回(1往復)実行することで、位相遅れを相殺する。さらに、コントローラ13は、スタート時のデータ飛びをなくすために、逆方向から順方向の順に、ゼロ位相フィルタ処理を実行する。
コントローラ13は、低速アクチュエータ(第一アクチュエータ22)についての軌道(指令軌道)の位相遅れを低減させることにより、高速アクチュエータ(第二アクチュエータ32)の動作範囲を節約することができる。したがって、コントローラ13は、より高速の軌道に対応できる。また、コントローラ13は、ローパスフィルタの効果を強めて、低速アクチュエータの追従性を向上させることができ、トータル(第一サーボ制御系20および第二サーボ制御系30の全体)の制御精度を向上することができる。さらに、コントローラ13は、制御システム1において採用する高速アクチュエータについて選択肢を広がることができ、採用する高速アクチュエータについての選定を容易にすることができる。これまでに概要を整理してきたコントローラ13について、次に、その構成等の詳細について、図17等を用いて説明していく。
(制御装置の詳細)
図17は、本発明の実施形態4に係るコントローラ13等の要部構成等を示すブロック図である。上述の通り、「ローパスフィルタ部130に代えてゼロ位相フィルタ部131を備える」点、および、「記憶部160を備える」点以外は、コントローラ13の構成は、コントローラ11の構成と同様である。そこで、以下では、記憶部160およびゼロ位相フィルタ部131についてのみ、説明する。
コントローラ13は、各種データを格納する記憶装置としての記憶部160を備え、記憶部160に、第一指示軌道テーブル161および第二指示軌道テーブル162を格納している。第一指示軌道テーブル161には、「第一サーボ制御系20についての指令軌道」が格納され、具体的には、ローパスフィルタ部130によって、補正後軌道SPf(i)が格納される。第二指示軌道テーブル162には、「第二サーボ制御系30についての指令軌道」が格納され、具体的には、第二逆運動学演算部150によって、第二逆運動学軌道IKt(i)が格納される。
ゼロ位相フィルタ部131は、第一逆運動学演算部120から取得した第一逆運動学軌道SP(i)から、位相遅延が発生しないようにして高周波成分を除去して、第一サーボ制御系20の軸ごとの補正後軌道SPf(i)を生成する。具体的には、ゼロ位相フィルタ部131は、第一逆運動学軌道SP(i)にゼロ位相フィルタ処理を行なって補正後軌道SPf(i)を生成する。
ここで、ゼロ位相フィルタ処理とは、フィルタリング処理(本実施形態では、ローパスフィルタ処理)を、順方向と逆方向との両方向で(例えば、時間軸の順方向と逆方向との各々について1回ずつ、計2回)、実行することをいう。具体的には、第一逆運動学軌道SP(i)に対して行う、時間軸の順方向と逆方向との両方向でのローパスフィルタ処理を「ゼロ位相フィルタ処理」と称する。なお、ローパスフィルタ処理はローパスフィルタリングと称することがあり、ゼロ位相フィルタ処理はゼロ位相フィルタリングと称することがある。
特に、ゼロ位相フィルタ部131は、第一逆運動学軌道SP(i)に対し、時間軸の逆方向から順方向の順にローパスフィルタ処理を行なって、つまり、時間軸について逆方向(逆順)にゼロ位相フィルタ処理を行なって、補正後軌道SPf(i)を生成する。時間軸の逆方向から順方向の順にローパスフィルタ処理を行なうことにより、ゼロ位相フィルタ部131は、スタート時点(t=0の時点)において第一逆運動学軌道SP(i)に対するデータ飛びの無い補正後軌道SPf(i)を生成することができる。ゼロ位相フィルタ部131の用いるローパスフィルタ(ゼロ位相フィルタ)のフィルタ特性は、例えば、カットオフ周波数10Hzの2次バターワース型である。ゼロ位相フィルタ部131が実行するゼロ位相フィルタ処理の詳細について、図20を用いて後述する。
ゼロ位相フィルタ部131は、生成した補正後軌道SPf(i)を、「第一サーボ制御系20についての指令軌道」として、記憶部160の第一指示軌道テーブル161に格納する。また、ゼロ位相フィルタ部131は、生成した補正後軌道SPf(i)を、順運動学演算部140に出力する。
ゼロ位相フィルタ部131は、オフラインで事前に軌道計算を実行し、実行した軌道計算の結果をメモリに格納する。つまり、ゼロ位相フィルタ部131は、第一逆運動学軌道SP(i)に対してゼロ位相フィルタ処理を行なって生成した補正後軌道SPf(i)を、第一指示軌道テーブル161に格納する。
コントローラ13(ゼロ位相フィルタ部131)は、第一指示軌道テーブル161をオフライン処理で予め作成しておき、つまり、「第一サーボ制御系20についての指令軌道」を予め算出しておく。コントローラ13は、全ての処理をオフラインで実行しておき、第二指示軌道テーブル162についても予め作成しておいてもよく、つまり、「第二サーボ制御系30についての指令軌道」を予め算出しておいてもよい。なお、図17には、コントローラ13が、全ての処理をオフラインで予め実行しておき、第二指示軌道テーブル162を作成しておく例が示されている。ただし、コントローラ13が、「第二サーボ制御系30についての指令軌道」を予め算出しておくことは必須ではなく、つまり、第二指示軌道テーブル162を予め作成しておくことは必須ではない。
なお、これまでに説明してきたコントローラ10、11、および12については、ゼロ位相処理を行なわないので、第一サーボ制御系20についての指令軌道(補正後軌道SPf)を予め生成し、第一指示軌道テーブル161に格納しておく必要はない。そのため、コントローラ10、11、および12は、第一指示軌道テーブル161および第二指示軌道テーブル162を備えていない。しかしながら、コントローラ10、11、および12、不図示の記憶部を備え、当該記憶部に第一指示軌道テーブル161および第二指示軌道テーブル162を格納していてもよい。
(コントローラが実行する処理について)
図19は、コントローラ13が実行する処理の概要を示すフロー図である。コントローラ13は、第一逆運動学軌道SP(i)に「時間軸の逆方向から順方向へ」の順にゼロ位相フィルタ処理を実行することにより、補正後軌道SPf(i)について、位相遅れの発生を抑制する。
また、コントローラ13は、第一サーボ制御系20および第二サーボ制御系30の動特性モデルを予め作成しておき、作成しておいた動特性モデルを用いて、第一サーボ制御系20および第二サーボ制御系30についてMPC位置補正制御を実行する。具体的には、コントローラ13は、第一サーボ制御系20の動特性モデルを用いたMPCによって第一指令値Pc(i)を補正し、補正した第一指令値Pc(i)を第一サーボ制御系20に出力する。また、コントローラ13は、第二サーボ制御系30の動特性モデルを用いたMPCによって第二指令値Sc(i)を補正し、補正した第二指令値Sc(i)を第二サーボ制御系30に出力する。コントローラ13は、第一サーボ制御系20および第二サーボ制御系30に対する制御についてもMPC位置補正制御を適用することにより、第一サーボ制御系20および第二サーボ制御系30の応答遅れに起因する追従誤差を低減することができる。以下、コントローラ13の実行する処理の詳細について、図19を用いて説明していく。
コントローラ13は、低速サーボシステム(第一サーボ制御系20)および高速サーボシステム(第二サーボ制御系30)の各々について、動特性モデルを予め作成しておき、第一応答予測部172および第二応答予測部176に設定しておく(S410)。
第一逆運動学演算部120は、目標軌道Ttから第一アクチュエータ22の軸毎の指令値を生成し、つまり、目標軌道Ttに逆運動学演算を行なって第一逆運動学軌道SP(i)を生成する(S420)。
ゼロ位相フィルタ部131は、軸毎の軌道(つまり、第一逆運動学軌道SP(i))に対して、ゼロ位相フィルタリングを実行し、生成した補正後軌道SPf(i)を、記憶部160の第一指示軌道テーブル161に格納する(S430)。
コントローラ13は、「ゼロ位相フィルタリング後の指令軌道から生成される指令値と、目標軌道の指令値と、の差分」を計算し、計算した差分から高速アクチュエータ(第二アクチュエータ32)の軸毎の指令値を生成する。
例えば、順運動学演算部140は、順運動学演算により、ゼロ位相フィルタリング後の軌道(つまり、補正後軌道SPf(i))から中間軌道(つまり、順運動学軌道FKt)を生成する(S440)。そして、第二逆運動学演算部150は、中間軌道と目標軌道Ttとの差分(誤差)を計算する(S450)。そして、第二逆運動学演算部150は、S450で計算した誤差(差分)を用いて、第二アクチュエータ32の軸毎の軌道を計算し、記憶部160の第二指示軌道テーブル162に格納する(S460)。具体的には、第二逆運動学演算部150は、「中間軌道(つまり、順運動学軌道FKt)と、目標軌道Ttと、の誤差」に逆運動学演算を行なって、第二サーボ制御系30の軸ごとの指令軌道である第二逆運動学軌道IKt(i)を生成する。そして、第二逆運動学演算部150は、生成した第二逆運動学軌道IKt(i)を、記憶部160の第二指示軌道テーブル162に格納する。
第二逆運動学演算部150は、「順運動学軌道FKt(中間軌道)と、第二逆運動学軌道IKtとの合成軌道が、目標軌道Ttに一致する」ようにして、目標軌道Ttと順運動学軌道FKtとの誤差に対応する軌道を含む第二逆運動学軌道IKtを生成する。第二逆運動学演算部150は、「中間軌道と、第二逆運動学軌道IKtとの合成軌道が、目標軌道Ttに一致する」ようにして、第一逆運動学軌道SPと中間軌道との誤差に対応する軌道を含む第二逆運動学軌道IKtを生成してもよい。第二逆運動学演算部150は、「第二サーボ制御系30についての指令軌道」として、ゼロ位相フィルタ部131により第一逆運動学軌道SP(i)から除去された高周波成分に対応する軌道を含む第二逆運動学軌道IKt(第二指令軌道)を生成する。
コントローラ13は、MPC位置補正制御により、低速サーボシステムおよび高速サーボシステムの各々への補正後指令値を計算し、計算した補正後指令値を低速サーボシステムおよび高速サーボシステムの各々に出力する(S470)。具体的には、MPC指令部174は、第一指令値Pc(i)と第二指令値Sc(i)との各々を、第一サーボ制御系20および第二サーボ制御系30の動特性モデルを用いたMPCにより補正し、補正した第一指令値Pc(i)と第二指令値Sc(i)とを出力する。
第一MPC位置指令部171は、第一指示軌道テーブル161に格納されている補正後軌道SPf(i)から第一サーボ制御系20に対する制御周期ごとに生成される第一指令値Pc(i)を、第一サーボ制御系20の動特性モデルを用いたMPCにより補正する。そして、第一MPC位置指令部171は、補正した第一指令値Pc(i)を第一サーボ制御系20に出力する。
第二MPC位置指令部175は、第二指示軌道テーブル162に格納されている第二逆運動学軌道IKt(i)から第二サーボ制御系30に対する制御周期ごとに生成される第二指令値Sc(i)を、第二サーボ制御系30の動特性モデルを用いたMPCにより補正する。そして、第二MPC位置指令部175は、補正した第二指令値Sc(i)を第二サーボ制御系30に出力する。そして、コントローラ13は、軌道終点に到達したかを判定しながら(S480)、制御周期ごとに、S450〜S470の処理を、または、S470の処理を、繰り返す。具体的には、コントローラ13は、「S450〜S470の処理、または、S470の処理」のうち、「第一サーボ制御系20のみに係る処理」を、軌道終点に到達したかを判定しながら(S480)、第一サーボ制御系20に対する制御周期で繰り返し実行する。また、コントローラ13は、「S450〜S470の処理、または、S470の処理」のうち、「第一サーボ制御系20のみに係る処理」以外の処理(例えば、第二サーボ制御系30に係る処理)を、軌道終点に到達したかを判定しながら(S480)、第二サーボ制御系30に対する制御周期で繰り返し実行する。
(ゼロ位相フィルタ処理について)
ここで、ゼロ位相フィルタ部131が行うゼロ位相フィルタ処理(ゼロ位相フィルタリング)について、詳細を説明しておく。前述の通り、ゼロ位相フィルタ部131は、第一逆運動学軌道SP(i)に対し、時間軸の逆方向から順方向の順に(つまり時間軸について逆方向(逆順)に)、ローパスフィルタ処理を行なって、補正後軌道SPf(i)を生成する。
ゼロ位相フィルタ部131は、予め、1次遅れフィルタ計算の係数を求めておく。具体的には、ゼロ位相フィルタ部131は、予め、「a=Ts/(T+Ts)」および「b=T/(T+Ts)」を求めておく。ここで、Tsはサンプリング周期であり、Tはフィルタ時定数である。
ゼロ位相フィルタ部131は、第一逆運動学軌道SP(i)について時間軸を逆転させた、仮の軌道データSPr(i)を作成し、「SPr(i)=SP(n−i)」を求める。ゼロ位相フィルタ部131は、フィルタリング計算(ローパスフィルタ処理)の1回目(時間軸の逆方向)を実行し、すなわち、「SPfr(i)=a×SPr(i)+b×SPr(i−1)」を求める。ただし、「SPr(−1)=SPr(0)」とする。
ゼロ位相フィルタ部131は、時間軸を再度逆転させて元に戻し、すなわち、「SPfn(i)=SPfr(n−i)」を求める。ゼロ位相フィルタ部131は、フィルタリング計算2回目(順方向)を実行して、ゼロ位相フィルリング後の補正後軌道SPf(i)を求める。すなわち、ゼロ位相フィルタ部131は、「SPf(i)=a×SPfn(i)+b×SPfn(i−1)」を求める。ただし、「SPfn(−1)=SP(0)」とする。ここで、「SPfn(−1)=SPfn(0)」ではなく、「SPfn(−1)=SP(0)」とすることにより、ゼロ位相フィルタ部131は、スタート時のSPに飛びが生じないようにすることができる。
ゼロ位相フィルタ部131が、時間軸の逆順にゼロ位相フィルタ処理を行なう(つまり、ローパスフィルタ処理を時間軸の逆方向から順方向への1往復行なう)ことにより、スタート時のデータ飛びの発生を防ぐ点について、図20を用いて説明する。
(高周波成分の除去方法について)
図20は、第一逆運動学軌道SP(i)から高周波成分の除去する方法に応じて補正後軌道SPf(i)に発生する位相遅延およびデータ飛びについて説明する図である。図20において、縦軸は位置、横軸は時間(t)であり、図20の(A)、(B)、(C)の各々について、上段のスタート時点(t=0)付近を拡大して示すのが下段の図である。図20の(A)は、第一逆運動学軌道SP(i)に通常のローパスフィルタ処理(ローパスフィルタリング)を行なった時の、第一逆運動学軌道SP(i)および補正後軌道SPf(i)を示している。図20の(A)において、ローパスフィルタ特性は、カットオフ周波数10Hzの4次バターワース型である。図20の(B)は、第一逆運動学軌道SP(i)にローパスフィルタ処理を時間軸の順方向から逆方向への1往復実行した時の、第一逆運動学軌道SP(i)および補正後軌道SPf(i)を示している。図20の(C)は、第一逆運動学軌道SP(i)にローパスフィルタ処理を時間軸の逆方向から順方向への1往復実行した時の、第一逆運動学軌道SP(i)および補正後軌道SPf(i)を示している。図20の(B)および(C)において、ゼロ位相フィルタのフィルタ特性は、カットオフ周波数10Hzの2次バターワース型である。
図20の(A)に示すように、通常のローパスフィルタ処理(フィルタリング処理)を行った場合、このフィルタリング処理により、補正後軌道SPf(i)について、第一逆運動学軌道SP(i)からの位相遅れが発生している。
これに対し、図20の(B)および(C)に示すように、ゼロ位相フィルタ処理を実行することで、言い換えれば、「フィルタリング処理を時間軸の順方向と逆方向との両方向に1回ずつ計2回実行する(1往復実行する)」ことで、位相遅れを除去できる。
ただし、「フィルタリング処理を時間軸の順方向から逆方向への1往復実行した(つまり、フィルタリング処理を時間軸の順方向から逆方向の順に実行した)」場合、図20の(B)に示されているように、スタート時点(t=0)でデータ飛びが発生する。
そこで、ゼロ位相フィルタ処理を「時間軸の逆方向から順方向へ」の順で実行することにより、言い換えれば「フィルタリング処理を、時間軸の逆方向から順方向への1往復実行する」ことにより、スタート時点でのデータ飛びを回避することができる。図20の(C)において、ゼロ位相フィルタ処理を「時間軸の逆方向から順方向へ」の順で実行することにより、スタート時点(t=0)でのデータ飛びを回避することができている。
(コントローラが奏する効果について)
図21は、図4に示す制御テストについて、コントローラ13によって制御された第一アクチュエータ22および第二アクチュエータ32の各々の位置、位置偏差、モデル予測誤差、およびトルクの変化を示す図である。図21の(A)には、上から順に、コントローラ13によって制御された第一アクチュエータ22の位置、位置偏差、モデル予測誤差、およびトルクの変化が示されている。図21の(B)には、上から順に、コントローラ13によって制御された第二アクチュエータ32の位置、位置偏差、モデル予測誤差、およびトルクの変化が示されている。図21に示す各図において、横軸はいずれも時間(t)である。
図22は、図4に示す制御テストについて、コントローラ13によって制御された第一アクチュエータ22および第二アクチュエータ32の合計の位置(図22の(A))および位置偏差(図22の(B))の変化を示す図である。図22に示す各図において、横軸はいずれも時間(t)である。なお、図22の(A)において、指令値と低速高速合成制御量(第一アクチュエータ22の制御量の実測値と、第二アクチュエータ32の制御量の実測値と、を合計(合成)した値)とは、ほぼ重なっている。
コントローラ13は、第一逆運動学軌道SP(i)に、「時間軸の逆方向から順方向へ」の順にローパスフィルタを一往復実行して、「第一サーボ制御系20についての指令軌道」を生成する。つまり、コントローラ13は、第一逆運動学軌道SP(i)に、「時間軸の逆方向から順方向へ」の順にゼロ位相フィルタ処理を実行して、「第一サーボ制御系20についての指令軌道」を生成する。コントローラ13の用いたローパスフィルタのローパスフィルタ特性は、カットオフ周波数10Hzの2次バターワース型である。コントローラ13は、さらに、第一サーボ制御系20および第二サーボ制御系30の動特性モデルを用いたMPCにより第一指令値Pc(i)と第二指令値Sc(i)との各々を補正し、追従性能を向上させている。
図21の(B)と図5の(B)とを比較すれば分かるように、コントローラ13は、コントローラ10に比べて、高速アクチュエータ(第二アクチュエータ32)の動作範囲を抑制することができている。
〔補足〕
図6の(B)および図16の(B)に示す第一アクチュエータ22および第二アクチュエータ32の合計(総合)のピーク偏差(追従精度)が、0.2mm強にまでしか低減できていない要因として、以下の点を挙げることができる。すなわち、制御偏差をコントローラ10およびコントローラ12で評価していることが原因となって、「ピーク偏差(追従精度)が、0.2mm強にまでしか低減できていない」。
言い換えれば、「ピーク偏差(追従精度)が、0.2mm強にまでしか低減できていない」ことの原因は、以下の2点にある。すなわち、第一に、コントローラ10およびコントローラ12から「第一サーボ制御系20および第二サーボ制御系30」への指令位置の伝送に要する時間が原因となって、「ピーク偏差(追従精度)が、0.2mm強にまでしか低減できていない」。また、第二に、「第一サーボ制御系20および第二サーボ制御系30」からコントローラ10およびコントローラ12へのフィードバック位置(実測位置)の伝送に要する時間が原因となって、「ピーク偏差(追従精度)が、0.2mm強にまでしか低減できていない」。
したがって、高速側(つまり、第二サーボ制御系30)の、上記第1および上記第2の伝送に要する時間を短縮できる場合、図6の(B)および図16の(B)に示す合計(総合)のピーク偏差(追従精度)をさらに低減できる。その場合、図6の(B)および図16の(B)に示す合計(総合)のピーク偏差(追従精度)について、図11の(B)に示す合計(総合)のピーク偏差(追従精度)との差は小さくなる。
コントローラ11および13の各々は、第二サーボ制御系30(高速サーボシステム)にMPCを適用することによって、コントローラ11および13の各々と、第二サーボ制御系30との間の伝送遅れを補償することができる。そのため、図11(B)および図22(B)に示す合計(総合)のピーク偏差は、小さくなっている。
〔変形例〕
こでまで、コントローラ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、MPC指令部170、第一MPC位置指令部171、第一応答予測部172、位置指令部173、第二MPC位置指令部175、第二応答予測部176、指示部180、第一指示部181、第二指示部182、および、応答予測部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 第二サーボ制御系
150 第二逆運動学演算部(生成部)
172 第一応答予測部(予測部)
171 第一MPC位置指令部(生成部)
190 応答予測部(予測部)
FKt 順運動学軌道(中間軌道)
IKt 第二逆運動学軌道(第二指令軌道)
Pc 第一指令値
SP 第一逆運動学軌道(基準軌道)
SPf 補正後軌道(第一指令軌道)
S170 予測ステップ、生成ステップ
S340 予測ステップ
S370 生成ステップ

Claims (8)

  1. 第一サーボ制御系についての指令軌道として、基準軌道からローパスフィルタ処理により高周波成分を除去した第一指令軌道を生成し、第二サーボ制御系についての指令軌道として、前記高周波成分に対応する軌道を含む第二指令軌道を生成する制御装置であって、
    前記第一サーボ制御系の動特性モデルを用いて、前記第一指令軌道に対応する前記第一サーボ制御系の応答を予測する予測部と、
    前記予測部によって予測された前記第一サーボ制御系の応答を用いて、
    (1)前記第一指令軌道から生成する第一指令値の補正、
    または、
    (2)前記第二指令軌道の生成を実行する生成部と、を備えることを特徴とする制御装置。
  2. 前記予測部は、前記第一サーボ制御系の動特性モデルを用いて、前記第一指令値に対する前記第一サーボ制御系の出力である制御量を予測し、
    前記生成部は、前記予測部によって予測された制御量と、前記第一サーボ制御系からフィードバック情報として取得する前記第一サーボ制御系の制御量の実測値と、を用いたモデル予測制御によって、前記第一指令値を補正することを特徴とする請求項1に記載の制御装置。
  3. 前記生成部は、前記予測部によって予測された前記第一サーボ制御系の応答を用いて生成する中間軌道と、前記基準軌道と、の誤差に対応する軌道を含む前記第二指令軌道を生成することを特徴とする請求項1に記載の制御装置。
  4. 前記基準軌道に対し、時間軸の順方向と逆方向との両方向に前記ローパスフィルタ処理を行なって前記第一指令軌道を生成するフィルタ部をさらに備えることを特徴とする請求項1から3のいずれか1項に記載の制御装置。
  5. 前記フィルタ部は、前記基準軌道に対し、時間軸の逆方向から順方向の順に前記ローパスフィルタ処理を行なって前記第一指令軌道を生成することを特徴とする請求項4に記載の制御装置。
  6. 第一サーボ制御系についての指令軌道として、基準軌道からローパスフィルタ処理により高周波成分を除去した第一指令軌道を生成し、第二サーボ制御系についての指令軌道として、前記高周波成分に対応する軌道を含む第二指令軌道を生成する制御装置の制御方法であって、
    前記第一サーボ制御系の動特性モデルを用いて、前記第一指令軌道に対応する前記第一サーボ制御系の応答を予測する予測ステップと、
    前記予測ステップにて予測した前記第一サーボ制御系の応答を用いて、
    (1)前記第一指令軌道から生成する第一指令値の補正、
    または、
    (2)前記第二指令軌道の生成を実行する生成ステップと、を含むことを特徴とする制御方法。
  7. 請求項1から5のいずれか1項に記載の制御装置としてコンピュータを機能させるための情報処理プログラムであって、前記各部としてコンピュータを機能させるための情報処理プログラム。
  8. 請求項7に記載の情報処理プログラムを記録したコンピュータ読み取り可能な記録媒体。
JP2017139649A 2017-07-19 2017-07-19 制御装置、制御装置の制御方法、情報処理プログラム、および記録媒体 Pending JP2019021087A (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2017139649A JP2019021087A (ja) 2017-07-19 2017-07-19 制御装置、制御装置の制御方法、情報処理プログラム、および記録媒体
CN201810151490.3A CN109283882A (zh) 2017-07-19 2018-02-13 控制装置和其控制方法以及记录介质
US15/894,953 US20190022861A1 (en) 2017-07-19 2018-02-13 Control device, method of controlling control device, and recording medium
EP18156743.9A EP3432102A1 (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
JP2017139649A JP2019021087A (ja) 2017-07-19 2017-07-19 制御装置、制御装置の制御方法、情報処理プログラム、および記録媒体

Publications (1)

Publication Number Publication Date
JP2019021087A true JP2019021087A (ja) 2019-02-07

Family

ID=61226415

Family Applications (1)

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

Country Status (4)

Country Link
US (1) US20190022861A1 (ja)
EP (1) EP3432102A1 (ja)
JP (1) JP2019021087A (ja)
CN (1) CN109283882A (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7003623B2 (ja) * 2017-12-15 2022-01-20 オムロン株式会社 制御システム
JP7024752B2 (ja) * 2019-03-20 2022-02-24 オムロン株式会社 制御システムおよび制御プログラム
JP7024751B2 (ja) * 2019-03-20 2022-02-24 オムロン株式会社 制御装置および制御プログラム
CN111958602B (zh) * 2020-08-20 2022-05-20 华中科技大学 一种手腕偏置型6轴机器人实时逆解算法

Family Cites Families (13)

* 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
US7792604B2 (en) * 2005-03-23 2010-09-07 Hurco Companies, Inc. Method of performing additive lookahead for adaptive cutting feedrate control
DK2306899T3 (da) * 2008-06-12 2014-11-10 Amygdala Pty Ltd Påvisning af hypokinetiske og/eller hyperkinetiske tilstande
US8392002B2 (en) 2010-10-14 2013-03-05 Delta Tau Data Systems, Inc. Hybrid machine control incorporating fast-tool servos
US9261872B2 (en) * 2012-01-19 2016-02-16 Mitsubishi Electric Research Laboratories, Inc. System and method for controlling redundant actuators of a machine
CN104143832B (zh) * 2013-05-07 2016-08-24 通用电气公司 用于电压崩溃状况检测和控制的系统和方法
US9696709B2 (en) * 2014-02-21 2017-07-04 Mitsubishi Electric Research Laboratories, Inc. Method and system for computing reference signals for machines with redundant positioning
US10139311B2 (en) * 2014-09-26 2018-11-27 Palo Alto Research Center Incorporated Computer-implemented method and system for machine tool damage assessment, prediction, and planning in manufacturing shop floor
US9744620B2 (en) * 2015-04-06 2017-08-29 Mitsubishi Electric Research Laboratories, Inc. Control of processing machines with redundant actuators
WO2016203546A1 (ja) * 2015-06-16 2016-12-22 三菱電機株式会社 指令値生成装置
CN105021198B (zh) * 2015-07-09 2017-09-22 中国航空无线电电子研究所 一种基于多传感器综合导航的位置估计方法
CN105182415B (zh) * 2015-09-02 2018-02-13 中国石油化工股份有限公司 一种基于分频处理的断层识别方法
JP6519457B2 (ja) * 2015-11-30 2019-05-29 オムロン株式会社 補正装置、補正装置の制御方法、情報処理プログラム、および記録媒体

Also Published As

Publication number Publication date
CN109283882A (zh) 2019-01-29
EP3432102A1 (en) 2019-01-23
US20190022861A1 (en) 2019-01-24

Similar Documents

Publication Publication Date Title
TWI604287B (zh) 用於控制加工機之操作的方法及控制系統,以及加工機
JP2019021087A (ja) 制御装置、制御装置の制御方法、情報処理プログラム、および記録媒体
JP6519457B2 (ja) 補正装置、補正装置の制御方法、情報処理プログラム、および記録媒体
JP6386516B2 (ja) 学習機能を備えたロボット装置
JP5231935B2 (ja) ロボット制御装置
JP2018149606A (ja) 生産ラインにおける運用を考慮した学習制御を行うロボット及びその制御方法
CN108628188A (zh) 控制系统、控制器以及控制方法
US10507581B2 (en) Robot system
US9983560B2 (en) Positioning device and PLC system
WO2015159390A1 (ja) 指令値生成装置
US20200257252A1 (en) Machine learning device, control device, and machine learning search range setting method
JP2018033205A (ja) モータ制御装置、モータ制御方法及びモータ制御用プログラム
KR102323069B1 (ko) 로봇 제어 장치, 로봇 제어 방법, 프로그램
KR102297735B1 (ko) 로봇 제어 장치, 로봇 제어 방법, 프로그램
CN110023857B (zh) 伺服控制装置
JP7024235B2 (ja) 制御装置、制御装置の制御方法、情報処理プログラム、および記録媒体
US10684594B2 (en) Machine learning device, servo motor controller, servo motor control system, and machine learning method
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
JP7095436B2 (ja) 制御装置、制御方法、情報処理プログラム、および記録媒体
JP2022007022A (ja) 指令生成装置、指令生成方法
KR20210106542A (ko) 제어 장치, 모델 작성 방법 및 제어 프로그램
KR102499201B1 (ko) 가변구조를 기반으로 하는 제어기 및 제어 방법, 이 제어 방법을 수행하기 위한 기록 매체
JP2021122907A (ja) ロボット制御装置、ロボットシステム及びロボット制御方法
JP2017102883A (ja) 制御装置、制御方法、情報処理プログラム、および記録媒体