JP2019087128A - 指令値補間装置及びサーボドライバ - Google Patents

指令値補間装置及びサーボドライバ Download PDF

Info

Publication number
JP2019087128A
JP2019087128A JP2017216317A JP2017216317A JP2019087128A JP 2019087128 A JP2019087128 A JP 2019087128A JP 2017216317 A JP2017216317 A JP 2017216317A JP 2017216317 A JP2017216317 A JP 2017216317A JP 2019087128 A JP2019087128 A JP 2019087128A
Authority
JP
Japan
Prior art keywords
command value
interpolation
interpolation function
kth
value
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.)
Granted
Application number
JP2017216317A
Other languages
English (en)
Other versions
JP6816704B2 (ja
Inventor
守 恵木
Mamoru Egi
守 恵木
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 JP2017216317A priority Critical patent/JP6816704B2/ja
Priority to EP18876860.0A priority patent/EP3709117A4/en
Priority to CN201880054565.4A priority patent/CN111052029B/zh
Priority to PCT/JP2018/040891 priority patent/WO2019093246A1/ja
Priority to US16/644,526 priority patent/US11494465B2/en
Publication of JP2019087128A publication Critical patent/JP2019087128A/ja
Application granted granted Critical
Publication of JP6816704B2 publication Critical patent/JP6816704B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/17Function evaluation by approximation methods, e.g. inter- or extrapolation, smoothing, least mean square method
    • G06F17/175Function evaluation by approximation methods, e.g. inter- or extrapolation, smoothing, least mean square method of multidimensional data
    • 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
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/17Function evaluation by approximation methods, e.g. inter- or extrapolation, smoothing, least mean square method
    • 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/39Robotics, robotics to robotics hand
    • G05B2219/39358Time optimal control along path for singular points, having veloctiy constraints

Abstract

【課題】時系列的に入力される指令値を、Jerkが大きくならず、且つ、指令に対する追従遅れが少ない形で補間できる内挿技術を提供する。【解決手段】サーボドライバ20の制御部10は、第k(≧3)時間区間内の指令値を算出するための第k補間関数を、x(k−2)からx(k+1)までの4指令値に基づき順次生成する機能であって、第k補間関数として、第k時間区間の開始時間、終了時間における関数値が、それぞれ、x(k)、x(k+1)と一致し、且つ、第k時間区間の開始時間における2階導関数値が、第k−1補間関数の第k−1時間区間の終了時間における2階導関数値と一致する、時間の5次式を生成する機能を有する。【選択図】図1

Description

本発明は、指令値補間装置とサーボドライバとに関する。
数値制御工作機械のより滑らかな制御を可能とするために、与えられている複数の指令値に基づき、1階導関数及び2階導関数が連続するように、各指令値間の指令値を補間(算出)するための補間関数を生成し、生成した各補間関数を用いて指令値を補間することが行われている(例えば、特許文献1参照)。
特開2008−225825号公報
補間対象となる複数の指令値が既に存在している場合、補間関数の生成に必要とされる指令値数は特に限定されない。ただし、指令値が順次入力される場合には、補間関数の生成に必要とされる指令値数が少ない程、各指令値からなる指令に対する追従遅れを少なくすることができる。そのため、指令値が順次入力される場合には、補間関数の生成に必要とされる指令値数は少ない方がよい。そして、指令値が順次入力される場合にも、Jerk(加加速度)が大きくなるのを防ぐために、各補間関数の2階導関数が連続していることが望まれる。
本発明は、上記事情に鑑みてなされたものであり、時系列的に入力される指令値を、Jerkが大きくならず、且つ、指令に対する追従遅れが少ない形で補間できる内挿技術を提供することを目的とする。
上記目的を達成するために、本発明の、所定周期tで順次入力される指令値x(k)(kは、何番目に入力された指令値であるかを示す整数値)を補間する指令値補間装置は、第k時間区間の開始時間、終了時間における関数値が、それぞれ、指令値x(k)、指令値x(k+1)と一致する第k補間関数を、"1"以上のk値のそれぞれについてk値の昇順に生成する補間関数生成手段と、前記補間関数生成手段により生成される前記第k補間関数を用いて前記第k時間区間内の複数の指令値を算出する処理を、k値の昇順に繰り返す補間手段と、を備え、 前記補間関数生成手段が、前記第k(≧3)補間関数を指令値x(
k−2)から指令値x(k+1)までの4指令値に基づき生成する手段であると共に、前記
第k(≧3)補間関数として、前記第k時間区間の開始時間、終了時間における関数値が、それぞれ、指令値x(k)、指令値x(k+1)と一致し、且つ、前記第k時間区間の開始時間における2階導関数値が、第k−1補間関数の第k−1時間区間の終了時間における2階導関数値と一致する、時間の5次式を生成する手段である構成を有する。
すなわち、本発明の指令値補間装置の補間関数生成手段は、k≧3である場合、指令値x(k−2)から指令値x(k+1)までの4指令値に基づき、第k指令区間内の指令値を算出するための第k補間関数として、時間の5次式を生成する。そして、補間関数生成手段が生成する第k(≧3)補間関数は、第k時間区間の開始時間、終了時間における関数値が、それぞれ、指令値x(k)、指令値x(k+1)と一致し、且つ、第k時間区間の開始時間における2階導関数値が、第k−1補間関数の第k−1時間区間の終了時間における2
階導関数値と一致する関数である。従って、補間関数生成手段が生成する各補間関数によれば、Jerk(加加速度)が小さくなる形で指令値を補間できる。そして、補間関数生成手段は、各補間関数を少量(4個)の指令値から生成するのであるから、本発明に係る指令値補間装置によれば、各指令値からなる指令に対する追従遅れを少なくすることも可能となる。
1次導関数も連続していた方が、Jerkの抑制効果は向上する。従って、本発明の指令値補間装置に、『前記補間関数生成手段は、前記第k(≧3)補間関数として、前記第k時間区間の開始時間、終了時間における関数値が、それぞれ、指令値x(k)、指令値x(k+1)と一致し、且つ、前記第k時間区間の終了時間における1階導関数値、2階導関数値が、それぞれ、前記第k−1補間関数の第k−1時間区間の開始時間における1階導関数値、2階導関数値と一致する、時間の5次式を、生成する』構成を採用しておいてもよい。なお、当該構成は、例えば、第k補間関数が、『以下の式を満たすa〜aを、それぞれ、0次〜5次の係数とした、第k時間区間の開始時間からの経過時間tの5次式』となるようにしておくことにより実現できる。
本発明の指令値補間装置には、通常、『前記補間関数生成手段は、前記第k(≧1)補間関数を生成するための生成処理を、指令値x(k+1)が入力されたときに実行し、前記補間手段は、前記第k補間関数が生成されたときに、前記第k時間区間内の指令値を算出する処理を開始する』構成が採用される。ただし、本発明の指令値補間装置に、補間関数生成手段による第k補間関数の生成タイミングや、補間手段による“第k時間区間内の指令値を算出する処理”の開始タイミングが、上記したものとは異なる構成を採用しておいてもよい。
また、本発明の指令値補間装置の補間関数生成手段としては、第1,第2補間関数の具体的な生成手順が異なる様々なものを採用することが出来る。具体的には、補間関数生成手段として、例えば、『x(−1)、x(0)の値が、それぞれ、"3・x(1)−2・x(2)"、"2・x(1)−x(2)"であると仮定して、前記(1)式により、第1補間関数を生成し、x(0)の値が、"2・x(1)−x(2)"であると仮定して、前記(1)式により、第2補間関数を生成する』ものを採用してもよい。また、補間関数生成手段として、『x(−1)、x(0)の値として、いずれも、x(1)であると仮定して、前記(1)式により、第1補間関数を生成し、x(0)の値が、x(1)であると仮定して、前記(1)式により、第2補間関数を生成する』ものを採用してもよい。
また、或る指令値が入力されなくても補間を続行できるようにするために、本発明の指
令値補間装置に、『指令値x(k+1)(k≧3)が入力されるべき入力タイミングで指令値x(k+1)が入力されなかった場合、前記補間手段は、第k−1補間関数を用いて第k時間区間内の指令値を算出する』構成や、『指令値x(k+1)(k≧3)が入力されるべき入力タイミングで指令値x(k+1)が入力されなかった場合、前記補間関数生成手段は、第k−1補間関数を用いて指令値x(k+1)を推定し、推定した指令値x(k+1)を用いて第k補間関数を生成する』構成を採用しておいてもよい。
また、本発明の、所定周期で順次入力される指令値x(k)(kは、何番目に入力された指令値であるかを示す整数値)に基づきサーボモータを駆動するサーボドライバは、前記サーボモータを駆動するためのパワー回路と、指令値x(k+1)(k≧1)が入力されたときに、第k時間区間の開始時間、終了時間における関数値が、それぞれ、指令値x(k)、指令値x(k+1)と一致する第k補間関数を生成する補間関数生成手段と、前記補間関数生成手段により生成される前記第k補間関数を用いて前記第k時間区間内の複数の指令値を算出する補間手段と、前記補間手段により算出された各指令値に基づき前記パワー回路を制御する駆動制御手段と、を備え、前記補間関数生成手段が、前記第k(≧3)補間関数を指令値x(k−2)から指令値x(k+1)までの4指令値に基づき生成する手段であると共に、前記第k(≧3)補間関数として、前記第k時間区間の開始時間、終了時間における関数値が、それぞれ、指令値x(k)、指令値x(k+1)と一致し、且つ、前記第k時間区間の開始時間における2階導関数値が、第k−1補間関数の第k−1時間区間の終了時間における2階導関数値と一致する、時間の5次式を、生成する手段である構成を有する。
すなわち、本発明のサーボドライバは、本発明の指令値補間装置と同様に、第k(≧3)指令区間内の指令値を算出するための第k補間関数(時間の5次式)を、指令値x(k
−2)から指令値x(k+1)までの4指令値に基づき生成する補間関数生成手段を備える
。また、この補間関数生成手段が生成する第k(≧3)補間関数は、第k時間区間の開始時間、終了時間における関数値が、それぞれ、指令値x(k)、指令値x(k+1)と一致し、且つ、第k時間区間の開始時間における2階導関数値が、第k−1補間関数の第k−1時間区間の終了時間における2階導関数値と一致する関数である。従って、補間関数生成手段が生成する各補間関数によれば、Jerk(加加速度)が小さくなる形で指令値を補間できる。そして、補間関数生成手段は、各補間関数を少量(4個)の指令値から生成するのであるから、本発明のサーボドライバによれば、指令に対する追従遅れが少ない形でパワー回路の制御できることになる。
本発明によれば、時系列的に入力される指令値を、Jerkが大きくならず、且つ、指令に対する追従遅れが少ない形で、補間することが可能となる。
図1は、本発明の一実施形態に係るサーボドライバの概略構成及び使用形態の説明図である。 図2は、実施形態に係るサーボドライバが備える制御部の機能ブロック図である。 図3は、補間関数y(t)を説明するための図である。 図4は、制御部内の補間関数生成部が実行する補間関数生成処理の流れ図である。 図5は、パラメータ算出処理の具体例の説明図である。 図6は、パラメータ算出処理の他の具体例の説明図である。 図7は、図5のパラメータ算出処理を採用した場合におけるモータの位置及びトルクの時間変化パターンの説明図である。 図8は、図6のパラメータ算出処理を採用した場合におけるモータの位置及びトルクの時間変化パターンの説明図である。 図9は、補間関数生成処理のステップS106の処理の説明図である。 図10は、同一入力に対して、1次補間、2次補間、制御部による5次補間を行った場合のJerk値のシミュレーション結果の説明図である。 図11は、実施形態に係るサーボドライバの制御部による補間結果の説明図である。
以下、本発明の実施の形態を、図面を参照して説明する。
図1に、本発明の一実施形態に係るサーボドライバ20の概略構成及び使用形態を示す。
本実施形態に係るサーボドライバ20は、モータ(三相モータ)40を駆動するための装置である。図示してあるように、サーボドライバ20は、パワー回路21、制御部10、及び、パワー回路21内のインバータ回路24(詳細は後述)の各レグの入出力電流値を測定するための電流センサ25を備える。
パワー回路21は、モータ40に供給する三相交流を生成するための回路である。パワー回路21は、三相電源50からの三相交流を整流するための整流回路22、及び、平滑コンデンサ23を備える。さらに、パワー回路21は、平滑コンデンサ23により平滑化された整流回路22の出力電圧を、三相交流に変換するためのインバータ回路24を備える。
制御部10は、プロセッサ、フラッシュROM、RAM、ゲートドライバ等から構成されたユニットである。図示してあるように、この制御部10には、各電流センサ25からの信号と、モータ40に取り付けられたエンコーダ41(アブソリュートエンコーダやインクリメンタルエンコーダ)からの信号とが、入力されている。
また、制御部10のフラッシュROMには、サーボドライバ20用のものとして開発されたプログラムが記憶されている。制御部10は、当該プログラムをプロセッサがRAM上に読み出して実行することにより、後述する各種機能を有するユニットとして動作する。
以下、制御部10の機能を説明する。
制御部10は、基本的には、PLC(Programmable logic controller)等の上位装置
30から所定の周期t(例えば、4ms)で周期的に入力される指令値(本実施形態では、電流指令値)に従ってインバータ回路24を制御するユニットである。以下、上位装置30からのk番目(k≧1;先頭が1番目)の指令値のことを、x(k)と表記する。また、k番目の指令値が入力されてからk+1番目の指令値が入力されるまでの時間区間、及び、k番目の指令値が出力されてからk+1番目の指令値が出力されるまでの時間区間のことを、第k指令区間と表記する。
図2に、制御部10の機能ブロック図を示す。図示してあるように、制御部10は、補間関数生成部11、補間部12及び駆動部13として動作する。
補間関数生成部11は、指令区間毎に、その指令区間用の補間関数を生成するユニット(機能ブロック)である。詳細については後述するが、この補間関数生成部11は、第k
(≧1)指令区間用の補間関数y(t)として、時間tの5次式を生成する。
(t)=a+at+a+a+a+a
なお、この5次式におけるtは、図3に模式的に示してあるように、第k指令区間の開始時間(開始時刻)からの経過時間である。すなわち、指令値(指令値の補間値)を算出すべき第k時間区間内の時刻をttgtと表記し、第k指令区間の開始時刻をtと表記すると、上記5次式は、tに、“ttgt−t”を代入することにより、時刻ttgtにおける指令値が算出される式となっている。
補間部12(図2)は、基本的には、補間関数生成部11により生成された最新の補間関数による指令値の算出を、周期tよりも短い周期t(例えば、0.125ms)で繰り返すユニットである。ただし、補間部12は、第k−1指令区間用の補間式yk−1(t)から、第k指令区間内の指令値を算出する機能(詳細は後述)を有している。
駆動部13は、各センサ25からの電流値が、補間部12により算出された指令値に応じた値となるように、インバータ回路24を制御するユニットである。
以下、制御部10の機能を、さらに具体的に説明する。
制御部10の補間関数生成部11は、1番目(最初)の指令値x(1)が入力されたときに、図4に示した手順の補間関数生成処理を開始する。なお、この図4及び以下の説明において、kとは、初期値が“1”で、ステップS101の処理(判断)にて“YES”側への分岐が行われる度に、“1”カウントアップされる変数のことである。
すなわち、指令値x(1)が入力されたため、この補間関数生成処理を開始した補間関数生成部11は、まず、ステップS101にて、次の指令値の入力タイミングとなるのを待機する。換言すれば、補間関数生成部11は、今回の指令値の入力時刻から、指令値の入力周期tが経過するのを待機する。
指令値の入力タイミングとなった場合(ステップS101;YES)、補間関数生成部11は、指令値が入力されたか否かを判断する(ステップS102)。そして、補間関数生成部11は、指令値が入力された場合(ステップS102;YES)には、k値が4以上であるか(今回入力された指令値が4番目以降の指令値であるか)否かを判断する(ステップS103)。
k値が4未満であった場合(ステップS103;NO)、すなわち、今回入力された指令値が2番目又は3番目の指令値であった場合、補間関数生成部11は、パラメータ算出処理(ステップS104)を行ってから、関数生成処理(ステップS105)を行う。一方、今回入力された指令値が4番目以降の指令値であった場合(ステップS103;YES)、補間関数生成部11は、パラメータ算出処理を行うことなく、関数生成処理(ステップS105)を行う。
関数生成処理は、第k指令区間用の補間関数“y(t)=a+at+a+a+a+a”の係数a〜aを、以下の(1)式により算出して算出結果を補間部12に通知する処理である。
以下、(1)式の導出手順を説明する。なお、以下の説明では、関数f(y(t)等)のn階導関数のことを、f(n)と表記する。
上記した(1)式は、1階導関数、2階導関数が区間境界において連続する指令値補間用の関数の生成法を鋭意研究した結果として得られたものである。
具体的には、指令区間境界における関数値が指令値と一致し、指令区間境界における1階導関数、2階導関数が連続する補間関数は、6つの境界条件を満たす必要がある。従って、6つの係数を有する以下の(2)式(時間tの5次式)を用いれば、指令区間境界における関数値が指令値と一致し、指令区間境界における1階導関数、2階導関数が連続する補間関数を得ることができる。
(2)式の6つの係数の値を決定するためには、原則として、6つの指令値が必要とされる。ただし、係数a〜aの値の算出に要する指令値数が多いと、指令に対する追従遅れが大きくなる。そこで、上記(1)式の開発時には、指令に対する追従遅れを少なくするために、第k補間関数の第k指令区間の各境界(開始時間“0”、終了時間“t”)における1階導関数値、2階導関数値を、以下の(3)〜(6)式で近似している。
(3)式は、第k補間関数の第k指令区間の終了時間における1階導関数値の近似式で
あり、(4)式は、第k補間関数の第k指令区間の終了時間における2階導関数値の近似式である。これらの式は、(2)式のテイラー展開等により導出したものとなっている。
具体的には、(2)式を点t回りでテイラー展開すると以下の(7)式が得られる。

この(7)式の右辺の“t−t”の3次以上の各項を、無視する(“0”と見做す)と、以下の(8)式を得ることができる。
(8)式のtに、−t、0を代入すると、それぞれ、以下の(9)、(10)式が得られる。
これらの式を、y (1)(t)、y (2)(t)の連立方程式として解くと、以下の(11)式と(12)式とを得ることができる。
上記した(3)式は、(11)式の右辺を、y(−t)=x(k−1)、y(0)=x(k)、y(t)=x(k+1)という関係式を用いて、xの式に変更したものであり、上記した(4)式は、同じ関係式を用いて、(12)式の右辺をxの式に変更したものである。
上記した(5)、(6)式は、それぞれ、第k補間関数の第k指令区間の開始時間における1階導関数値、2階導関数値の近似式である。これらの式は、以下の手順で導出したものとなっている。
求めたい第k補間関数は、第k指令区間の開始時間における1階、2階導関数値が、それぞれ、第k−1補間関数の第k−1指令区間の終了時間(=第k指令区間の開始時間)
における1階、2階導関数値と一致する関数である。従って、第k補間関数は、以下の2条件を満たす必要がある。
ここで、上記した(3)、(4)式の“k”に、“k−1”を代入すると以下の(15)、(16)式を得ることができる。
そして、(13)式を用いて(15)式を変形すれば、(5)式が得られ、(14)式を用いて(16)式を変形すれば、(6)式が得られる。従って、(5)、(6)式を満たすようにすれば、第k指令区間の開始時間における1階、2階導関数値が、それぞれ、第k−1補間関数の第k−1指令区間の終了時間(=第k指令区間の開始時間)における1階、2階導関数値と一致する第k補間関数を得ることができる。
以上、説明したように、(3)、(4)式は、それぞれ、第k補間関数の第k指令区間の終了時間における1階導関数値、2階導関数値の近似式として使用できるものである。また、(5)式は、第k補間関数の第k指令区間の開始時間における1階導関数値の近似式、及び、第k補間関数の第k指令区間の開始時間における1階階導関数の連続条件式として使用できるものである。さらに、(6)式は、第k補間関数の第k指令区間の開始時間における2階導関数値の近似式、及び、第k補間関数の第k指令区間の開始時間における2階階導関数の連続条件式として使用できるものである。そして、y(0)=x(k)、y(t)=x(k+1)であるから、結局、以下の(17)式が成立することになる。
すなわち、以下のように、行列Y、K、Xを定義すると、Y=K・Xが成立することになる。
また、(1)式(tの5次式)の両辺をtで微分すると、以下の(18)式を得ることができ、(18)式の両辺をtで微分すると、以下の(19)式を得ることができる。
さらに、(1)式から、y(0)=aが得られ、(18)式、(19)式から、それぞれ、y (1)(0)=a、y (2)(0)=2aが得られる。
従って、以下の(20)式が成立することになる。
この(20)式中の右辺の6行6列行列、1行6列行列のことを、それぞれ、K、Aと表記すると、Y=K・Aが成立していることになるが、既に説明したように、Y=K・Xが成立している((17)式参照)。
そして、KX、A、Xの要素は、全て既知数であるため、K −1・K・Xにより、Aを求めることができる。Aを求めるために、K −1・Kを実際に計算すると、以下の行列が得られる。
従って、A(a〜a)を、上記した(1)式により算出できることになる。
図4に戻って説明を続ける。
上記説明から明らかなように、関数生成処理は、本来は、連続的に入力された4つ指令値を必要とする処理である。ただし、関数生成処理をそのような処理としておいた場合、4番目の指令値が入力されるまで、パワー回路21の制御(モータ40の駆動制御)を開始できないことになる。
2番目の指令値が入力された段階で、パワー回路21の制御を開始できるようにするために用意されている処理が、ステップS104のパラメータ算出処理である。
具体的には、上記内容の関数生成処理は、連続した4つの指令値があれば実行可能である。従って、第1補間関数の生成時には、指令値x(−1)、指令値x(0)が算出(推定)されて関数生成処理が行われ、第2補間関数の生成時には、指令値x(0)が算出されて関数生成処理が行われるようにしておけば、2番目の指令値が入力された段階でパワー回路21の制御を開始することが可能となる。なお、指令値x(−1)とは、指令値x(1)の2つ前の指令値の推定値のことであり、指令値x(0)とは、指令値x(1)の1つ前の指令値の推定値のことである。
ただし、指令値x(−1)や指令値x(0)の値が適正でない場合には、パワー回路21に対して好ましくない制御が行われてしまうことになる。そのような不具合の発生を防止するために、ステップS104では、既に入力されている指令値に基づき、指令値x(−1)及びx(0)、又は、指令値x(0)を算出するパラメータ算出処理が行われる。
以下、パラメータ算出処理の具体例を説明する。
パラメータ算出処理としては、k=2である場合には、以下の(21)及び(22)式により、x(−1)とx(0)とを算出(推定)し、k=3である場合には、以下の(22)式により、x(0)を算出するものを採用することが出来る。
x(−1)=3・x(1)−2・x(2) …(21)
x(0)=2・x(1)−x(2) …(22)
すなわち、このパラメータ算出処理では、図5に模式的に示したように、指令値の変化速度が一定であると仮定して、x(−1)及びx(0)、又はx(0)を算出する。
また、パラメータ算出処理として、図6に模式的に示したように、k=2である場合に
は、指令値x(1)と同じ値を、x(−1)とx(0)として算出し、k=2である場合には、指令値x(1)と同じ値を、x(0)として算出する処理を採用することもできる。
なお、前者のパラメータ算出処理(図5)を採用した場合、モータ40の位置、トルクは、それぞれ、図7に示したように変化する。また、後者のパラメータ算出処理(図6)を採用した場合、モータ40の位置、トルクは、それぞれ、図8に示したように変化する。
すなわち、変化速度一定を仮定して指令値x(−1)、x(0)を算出する前者のパラメータ算出処理を採用しておけば(図7)、指令値x(−1)、x(0)をx(1)と同じ値とする後者のパラメータ算出処理を採用した場合(図8)よりも、軌道再現性を向上させることができる。ただし、後者のパラメータ算出処理を採用しておけば(図8)、動作開始点のトルクのピークを、前者のパラメータ算出処理を採用した場合(図7)よりも小さくすることができる。従って、動作開始点のトルクのピークを小さくしたい場合には、前者のパラメータ算出処理が行われるようにしておけば良く、良好な軌道再現性を得たい場合には、後者のパラメータ算出処理が行われるようにしておけば良い。
図4に戻って説明を続ける。
関数生成処理を終えた補間関数生成部11は、ステップS101に戻って次の指令値の入力タイミングとなるのを待機する。
補間関数生成部11は、通常は、上記のような処理を繰り返す。ただし、指令値の入力タイミングとなったにも拘わらず、指令値が入力されなかった場合(ステップS102;NO)、補間関数生成部11は、補間部12に、前指令区間用の5次補間式での補間を指示する(ステップS106)。
すなわち、上位装置30からは、通常、なだらかに時間変化する指令値が入力される。従って、図9に模式的に示したように、第k−1指令値から入力されなかった第k指令値(図では、欠落指令値)までの第k指令区間の補間を、第k−1指令区間用の5次補間式yk−1(t)で行うことができる。なお、第k−1指令区間用の5次補間式yk−1(t)におけるtは、第k−1指令区間の開始時刻tk−1からの経過時間である。そのため、ステップS106の処理による指示を受けた補間部12は、指令値を算出すべき時刻ttgtの第k時間区間の開始時刻からの経過時間をΔtと表記すると、yk−1(t)のtに、“t+Δt”を代入することにより、時刻ttgtにおける指令値を算出する。
以上、説明したように、本実施形態に係るサーボドライバ20の制御部10は、指令値x(k−2)から指令値x(k+1)までの4指令値に基づき、指令値x(k)から指令値x(
k+1)までの第k指令区間内の指令値を算出するための第k補間関数(時間の5次式)
を生成する。そして、制御部10の生成する第k補間関数は、第k時間区間の開始時間、終了時間における関数値が、それぞれ、指令値x(k)、指令値x(k+1)と一致し、且つ、第k時間区間の開始時間における1階導関数値、2階導関数値が、それぞれ、第k−1補間関数の第k−1時間区間の終了時間における1階導関数値、2階導関数値と一致する関数である。従って、制御部10が生成する各補間関数によれば、オリジナル軌道(補間対象指令値の時間変化パターン)への追従性が高く、Jerk(加加速度)も大きくならない形で指令値を補間できる。
具体的には、図10に、同一入力(同一の指令値群)に対して、1次補間、2次補間、制御部10による5次補間を行った場合のJerk値のシミュレーション結果を示す。図示してあるように、1次補間を行った場合(図10(a))には、指令値の入力毎に、比較的に大きなJerkが発生する。また、2次補間を行った場合(図10(b))にも、
指令値の入力毎に、比較的に大きなJerkが発生するが、制御部10の5次補間によれば、図10(c)に示してあるように、Jerk値を極めて小さな値に抑えることができる。
さらに、制御部10は、4指令値が揃わない第1補間関数、第2補間関数を、指令値x(0)等の推定値を用いて生成する機能を有している。従って、本実施形態に係るサーボドライバ20(制御部10)によれば、図11に示したように、1次補間と同様に、2番目の指令値の入力時点から、指令値の補間を開始できることにもなる。
《変形形態》
上記した実施形態に係るサーボドライバ20(制御部10)は、各種の変形を行えるものである。例えば、上記技術に基づき、モータ40用のものではない指令値を補正する装置を製造しても良い。また、補間関数生成処理(図4)を、指令値の入力タイミングで指令値が入力されなかった場合(ステップS102;NO)に、第k−1指令区間用の5次補間式yk−1(t)のtに2tを代入することによりx(k+1)を算出(推定)する処理が行われてから、ステップS105の処理が行われる処理に変形しても良い。
2次導関数が連続していれば(第k時間区間の開始時間における2階導関数値が、第k−1補間関数の第k−1時間区間の終了時間における2階導関数値と一致していれば)、1次導関数が連続していなくても、Jerkは小さくなる。従って、(5)式の代わりに他の式が用いられてa〜aが算出されるようにしておいてもよい。ただし−1次導関数及び2次導関数の双方が連続していた方がJerkは小さくなるので、(5)式を用いておく((1)式によりa〜aが算出されるようにしておく)ことが好ましい。
なお、(5)式の代わりに使用できる式としては、以下の(23)式を例示できる。
この(23)式を(5)式の代わりに用いた場合、a〜aは、以下の(24)式にて算出されることになる。
10 サーボドライバ
11 補間関数生成部
12 補間部
13 駆動部
21 パワー回路
22 整流回路
23 平滑コンデンサ
24 インバータ回路
25 電流センサ
30 上位装置
40 モータ
41 エンコーダ
50 三相電源

Claims (9)

  1. 所定周期tで順次入力される指令値x(k)(kは、何番目に入力された指令値であるかを示す整数値)を補間する指令値補間装置において、
    第k時間区間の開始時間、終了時間における関数値が、それぞれ、指令値x(k)、指令値x(k+1)と一致する第k補間関数を、“1”以上のk値のそれぞれについてk値の昇順に生成する補間関数生成手段と、
    前記補間関数生成手段により生成される前記第k補間関数を用いて前記第k時間区間内の複数の指令値を算出する処理を、k値の昇順に繰り返す補間手段と、
    を備え、
    前記補間関数生成手段が、前記第k(≧3)補間関数を指令値x(k−2)から指令値x(k+1)までの4指令値に基づき生成する手段であると共に、前記第k(≧3)補間関数として、前記第k時間区間の開始時間、終了時間における関数値が、それぞれ、指令値x(k)、指令値x(k+1)と一致し、且つ、前記第k時間区間の開始時間における2階導関数値が、第k−1補間関数の第k−1時間区間の終了時間における2階導関数値と一致する、時間の5次式を生成する手段である、
    ことを特徴とする指令値補間装置。
  2. 前記補間関数生成手段は、前記第k(≧3)補間関数として、前記第k時間区間の開始時間、終了時間における関数値が、それぞれ、指令値x(k)、指令値x(k+1)と一致し、且つ、前記第k時間区間の終了時間における1階導関数値、2階導関数値が、それぞれ、前記第k−1補間関数の第k−1時間区間の開始時間における1階導関数値、2階導関数値と一致する、時間の5次式を、生成する、
    ことを特徴とする請求項1に記載の指令値補間装置。
  3. 前記第k(≧3)補間関数が、以下の式を満たすa〜aを、それぞれ、0次〜5次の係数とした、第k時間区間の開始時間からの経過時間tの5次式である、
    ことを特徴とする請求項2に記載の指令値補間装置。
  4. 前記補間関数生成手段は、前記第k(≧1)補間関数を生成するための生成処理を、指令値x(k+1)が入力されたときに実行し、
    前記補間手段は、前記第k補間関数が生成されたときに、前記第k時間区間内の指令値を算出する処理を開始する、
    ことを特徴とする請求項1から3のいずれか一項に記載の指令値補間装置。
  5. 前記補間関数生成手段は、
    x(−1)、x(0)の値が、それぞれ、“3・x(1)−2・x(2)”、“2・x(1)−x(2)”であると仮定して、前記(1)式により、前記第1補間関数を生成し、
    x(0)の値が、“2・x(1)−x(2)”であると仮定して、前記(1)式により、前記第2補間関数を生成する、
    ことを特徴とする請求項3に記載の指令値補間装置。
  6. 前記補間関数生成手段は、
    x(−1)、x(0)の値が、いずれも、x(1)であると仮定して、前記(1)式により、前記第1補間関数を生成し、
    x(0)の値が、x(1)であると仮定して、前記(1)式により、前記第2補間関数を生成する、
    ことを特徴とする請求項3に記載の指令値補間装置。
  7. 指令値x(k+1)(k≧3)が入力されるべき入力タイミングで指令値x(k+1)が入力されなかった場合、前記補間手段は、第k−1補間関数を用いて第k時間区間内の指令値を算出する、
    ことを特徴とする請求項1から6のいずれか一項に記載の指令値補間装置。
  8. 指令値x(k+1)(k≧3)が入力されるべき入力タイミングで指令値x(k+1)が入力されなかった場合、前記補間関数生成手段は、第k−1補間関数を用いて指令値x(k
    +1)を推定し、推定した指令値x(k+1)を用いて第k補間関数を生成する
    ことを特徴とする請求項1から6のいずれか一項に記載の指令値補間装置。
  9. 所定周期で順次入力される指令値x(k)(kは、何番目に入力された指令値であるかを示す整数値)に基づきサーボモータを駆動するサーボドライバにおいて、
    前記サーボモータを駆動するためのパワー回路と、
    指令値x(k+1)(k≧1)が入力されたときに、第k時間区間の開始時間、終了時間における関数値が、それぞれ、指令値x(k)、指令値x(k+1)と一致する第k補間関数を生成する補間関数生成手段と、
    前記補間関数生成手段により生成される前記第k補間関数を用いて前記第k時間区間内の複数の指令値を算出する補間手段と、
    前記補間手段により算出された各指令値に基づき前記パワー回路を制御する駆動制御手段と、
    を備え、
    前記補間関数生成手段が、前記第k(≧3)補間関数を指令値x(k−2)から指令値x(k+1)までの4指令値に基づき生成する手段であると共に、前記第k(≧3)補間関数として、前記第k時間区間の開始時間、終了時間における関数値が、それぞれ、指令値x(k)、指令値x(k+1)と一致し、且つ、前記第k時間区間の開始時間における2階導関数値が、第k−1補間関数の第k−1時間区間の終了時間における2階導関数値と一致する、時間の5次式を、生成する手段である、
    ことを特徴とするサーボドライバ。
JP2017216317A 2017-11-09 2017-11-09 指令値補間装置及びサーボドライバ Active JP6816704B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2017216317A JP6816704B2 (ja) 2017-11-09 2017-11-09 指令値補間装置及びサーボドライバ
EP18876860.0A EP3709117A4 (en) 2017-11-09 2018-11-02 INSTRUCTIONAL VALUE INTERPOLATION AND SERVO-PILOT DEVICE
CN201880054565.4A CN111052029B (zh) 2017-11-09 2018-11-02 指令值插值装置和伺服驱动器
PCT/JP2018/040891 WO2019093246A1 (ja) 2017-11-09 2018-11-02 指令値補間装置及びサーボドライバ
US16/644,526 US11494465B2 (en) 2017-11-09 2018-11-02 Command value interpolation apparatus and servo driver

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017216317A JP6816704B2 (ja) 2017-11-09 2017-11-09 指令値補間装置及びサーボドライバ

Publications (2)

Publication Number Publication Date
JP2019087128A true JP2019087128A (ja) 2019-06-06
JP6816704B2 JP6816704B2 (ja) 2021-01-20

Family

ID=66438401

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017216317A Active JP6816704B2 (ja) 2017-11-09 2017-11-09 指令値補間装置及びサーボドライバ

Country Status (5)

Country Link
US (1) US11494465B2 (ja)
EP (1) EP3709117A4 (ja)
JP (1) JP6816704B2 (ja)
CN (1) CN111052029B (ja)
WO (1) WO2019093246A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113093716A (zh) * 2019-12-19 2021-07-09 广州极飞科技股份有限公司 一种运动轨迹规划方法、装置、设备及存储介质

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3882304A (en) * 1973-05-04 1975-05-06 Allen Bradley Co Parametric interpolation of three-dimensional surfaces
JP2897333B2 (ja) * 1990-04-11 1999-05-31 ブラザー工業株式会社 サーボ制御装置
JP5009010B2 (ja) 2007-03-13 2012-08-22 新日本工機株式会社 数値制御装置
JP2011086099A (ja) 2009-10-15 2011-04-28 Toyota Motor Corp 移動体の移動経路データの生成方法
JP5417392B2 (ja) 2011-07-29 2014-02-12 新日本工機株式会社 数値制御装置
JP5326015B2 (ja) 2012-02-20 2013-10-30 ファナック株式会社 加工曲線作成機能を有する数値制御装置
JP5896789B2 (ja) 2012-03-07 2016-03-30 キヤノン株式会社 ロボット制御装置、ロボット装置、ロボット制御方法、プログラム及び記録媒体
US9211806B2 (en) * 2012-04-23 2015-12-15 GM Global Technology Operations LLC Methods, systems and apparatus for generating voltage commands used to control operation of a permanent magnet machine
US9517556B2 (en) * 2012-06-29 2016-12-13 Mitsubishi Electric Corporation Robot control apparatus and robot control method
US8890460B2 (en) 2012-10-25 2014-11-18 Mitsubishi Electric Corporation Servo control device
JP2015051469A (ja) * 2013-09-05 2015-03-19 キヤノン株式会社 ロボット制御装置、ロボット装置、ロボット制御方法、プログラム及び記録媒体
US9923444B2 (en) * 2014-06-02 2018-03-20 Ats Automation Tooling Systems Inc. Linear motor system with powered curvilinear track sections
CN106826829B (zh) * 2017-02-22 2019-05-03 武汉工程大学 一种可控误差的工业机器人光顺运动轨迹生成方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113093716A (zh) * 2019-12-19 2021-07-09 广州极飞科技股份有限公司 一种运动轨迹规划方法、装置、设备及存储介质
CN113093716B (zh) * 2019-12-19 2024-04-30 广州极飞科技股份有限公司 一种运动轨迹规划方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN111052029B (zh) 2023-03-07
EP3709117A4 (en) 2021-07-28
US20200285689A1 (en) 2020-09-10
JP6816704B2 (ja) 2021-01-20
WO2019093246A1 (ja) 2019-05-16
EP3709117A1 (en) 2020-09-16
US11494465B2 (en) 2022-11-08
CN111052029A (zh) 2020-04-21

Similar Documents

Publication Publication Date Title
CN106873506B (zh) 校正装置、校正装置的控制方法、信息处理程序及记录介质
JP5650814B1 (ja) フィードフォワード制御を備えたモータ制御装置
JP3185857B2 (ja) モータ制御装置
JP6088604B1 (ja) 磁束制御部を有する電動機制御装置、ならびに機械学習装置およびその方法
JP2004288164A (ja) 同期制御装置
JP6544219B2 (ja) 制御装置
JP5269158B2 (ja) 制御方法及び制御装置
WO2011101915A1 (ja) 指令生成装置
JP2010281315A (ja) グロープラグの温度を制御する方法及びグロープラグ制御ユニット
JP6597544B2 (ja) 信号発生回路及び電源装置
WO2019093246A1 (ja) 指令値補間装置及びサーボドライバ
US11106184B2 (en) Control system
CN110161973B (zh) 模型预测控制装置、控制方法、信息处理程序及记录介质
WO2019092852A1 (ja) サーボ制御装置
JP2017102693A (ja) 制御装置および制御方法、制御装置を用いたコンピュータプログラム
JP6769246B2 (ja) 電動機制御装置
JP4485896B2 (ja) Pid制御装置
KR20110132640A (ko) 비선형 구동기에 적용가능한 입력성형기 및 입력성형방법
JP2010218007A (ja) 外乱推定装置、制御対象モデル推定装置、フィードフォワード量推定装置および制御装置
JP4604636B2 (ja) 電力変換制御装置
JP2023067330A (ja) 温度制御装置及び温度制御方法
JP2010130852A (ja) 電動機制御装置と予測制御方法
JP4496545B2 (ja) デジタルサーボ制御装置及びその制御方法
JPH1189267A (ja) 制御定数調整装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200305

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20201207

R150 Certificate of patent or registration of utility model

Ref document number: 6816704

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150