JP2013171376A - 加工曲線作成機能を有する数値制御装置 - Google Patents

加工曲線作成機能を有する数値制御装置 Download PDF

Info

Publication number
JP2013171376A
JP2013171376A JP2012033897A JP2012033897A JP2013171376A JP 2013171376 A JP2013171376 A JP 2013171376A JP 2012033897 A JP2012033897 A JP 2012033897A JP 2012033897 A JP2012033897 A JP 2012033897A JP 2013171376 A JP2013171376 A JP 2013171376A
Authority
JP
Japan
Prior art keywords
segment
point
curve
command
machining
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
JP2012033897A
Other languages
English (en)
Other versions
JP5326015B2 (ja
Inventor
Toshiaki Otsuki
俊明 大槻
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.)
Fanuc Corp
Original Assignee
Fanuc Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fanuc Corp filed Critical Fanuc Corp
Priority to JP2012033897A priority Critical patent/JP5326015B2/ja
Priority to US13/737,017 priority patent/US9268323B2/en
Priority to DE102013002516.8A priority patent/DE102013002516B4/de
Priority to CN201310054792.6A priority patent/CN103257614B/zh
Publication of JP2013171376A publication Critical patent/JP2013171376A/ja
Application granted granted Critical
Publication of JP5326015B2 publication Critical patent/JP5326015B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/41Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by interpolation, e.g. the computation of intermediate points between programmed end points to define the path to be followed and the rate of travel along that path
    • G05B19/4103Digital interpolation
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • 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
    • 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/34Director, elements to supervisory
    • G05B2219/34096Approximate, replace curve, surface with circle, linear segments, least error
    • 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/34Director, elements to supervisory
    • G05B2219/34138Cubic interpolation

Landscapes

  • Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Manufacturing & Machinery (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Numerical Control (AREA)

Abstract

【課題】できるだけ多くの指令点に対応した1個の3次曲線(区分曲線)を作成し、複数のそれらの3次曲線(区分曲線)を接続して加工用の曲線である加工曲線を作成し、その加工曲線を補間し補間した位置に前記駆動軸を駆動することによって加工を行なうことが可能な加工曲線作成機能を有する数値制御装置を提供すること。
【解決手段】指令読取り解析部2が加工プログラムの指令を読取り、加工曲線作成部4を起動する。加工曲線作成部4は区分曲線作成部6を起動し、加工曲線として1つの区分曲線を作成し補間用データにセットする。補間用データにセットされた区分曲線(加工曲線の一部)を補間部8で補間し補間した位置に各駆動軸(X,Y,Z軸サーボ10,12,14)を駆動する。これらの区分曲線を作成し補間データにセットすることとその補間は繰り返し連続して実行される。
【選択図】図17

Description

本発明は、少なくとも直線2軸を含む複数の駆動軸を有する工作機械に対して加工プログラムから得られる指令点列にもとづいて加工用の曲線である加工曲線を作成し該加工曲線を補間し補間した位置に前記駆動軸を駆動することによって加工を行う数値制御装置に関する。
従来から、工作機械を制御する数値制御装置において、与えられた点列から曲線や直線を作成し補間する方法が知られている。
<1>曲線作成
1−1.指令点列の始点における始点条件、終点における終点条件が指定される場合のスプライン曲線
一般に、図1のように点列P0、P1、P2、、、Pnとそれらの点列の始点における始点条件として1次微分ベクトルP0’ 、終点における終点条件としてPn’が与えられた時、各点での1次微分ベクトルと2次微分ベクトルが連続となるような各点間の3次曲線を表す3次関数は次のようにして求められる。
各点における1次微分ベクトル(P0’,P1’,P2’,,,Pn’)Tに対して数1式が成り立つ。「T」は転置を表すが、以降自明の場合省略する。ここで、t1、t2、、、tnは、作成される3次関数におけるパラメータ(3次関数の媒介変数t)について各P0、P1、P2、、、Pn間でのパラメータ値の差である。一般には作成される3次関数における各P0、P1、P2、、、Pn間の距離(曲線長さ)で表される。ただし、P0’、P1’、P2’、、、Pn’が求まらないと3次関数は求まらず、3次関数が求まらなければ3次関数の曲線における各P0、P1、P2、、、Pn間の距離(曲線長さ)も求まらない。そのため、各P0、P1、P2、、、Pn間の距離(曲線長さ)は各P0、P1、P2、、、Pn間の直線距離で近似することが多い。例えば、P01間の直線距離をt1とし、P12間の直線距離をt2とし、、、Pn-1n間の直線距離をtnとする。なお、1次微分ベクトル、2次微分ベクトルとは、後述の説明も含めて、3次関数のパラメータtによる1階微分、2階微分の各点(各点でのパラメータtの値)での値である。
ここで、P0、P1、P2、、、PnやP0’、P1’、P2’、、、Pn’は、少なくとも直線軸2軸の軸数分の要素を持ったベクトルである。機械構成に応じて、直線軸2軸以外にも3軸目、4軸目、、、の直線軸の要素や回転軸の要素を持っていてもよい。
Figure 2013171376
したがって、数1式においてP0’、Pn’、P0、P1、P2、、、Pnは与えられ、t1、t2、、、tnはP0、P1、P2、、、Pnから求まるので、P’=(P0’,P1’,P2’,,,Pn’)Tを求めることができる。つまり、数1式を数2式のように表すと、P’は数3式のように求められる。
Figure 2013171376
Figure 2013171376
P’が求められれば、P0、P1、P2、、、Pnとから、各点間の3次曲線の関数を求めることができる。つまり、Pi、Pi+1、Pi’、Pi+1’から、数4式のように表されるPi、Pi+1間の3次曲線の関数fi(t)(i=0,1,2,,,n−1;0≦t≦ti+1)を求めることができる。したがって、指令点列位置(P0、P1、P2、、、Pn)、始点条件(ここではP0’)、終点条件(ここではPn’)から、各点において1次微分、2次微分が連続である各点間の3次曲線の関数を求めることができる。ここで、Afi,Bfi,Cfi,Dfiは関数fi(t)の係数であり、それらの係数および関数fi(t)は、P0、P1、P2、、、Pnと同様、軸数分の要素を持ったベクトルである。
Figure 2013171376
i(t)の求め方は次のようになる。fi(t)を数4式のように表した場合、fi’(t)は数5式のようになるので、数6式が成り立ち、数6式を解くことによってAfi,Bfi,Cfi,Dfiを求めれば関数fi(t)を求めることができる。
Figure 2013171376
Figure 2013171376
このようにして求められる3次曲線群をスプライン曲線と言う。スプライン曲線は各点での1次微分ベクトルと2次微分ベクトルが連続なので、滑らかな加工形状と各駆動軸の加速度が連続である滑らかな動作が得られる。
しかし、この方法は、指令点列位置(P0、P1、P2、、、Pn)を全て読み込み計算を行う必要があり、指令点列が多くなると、マトリックス計算が膨大になり多くのメモリ領域と計算時間を必要とする。
なお、ここではP0’、Pn’が指定されることを条件としたが、次のような条件としても数1式とほぼ同様の式が導かれることが知られている。このような、P0における条件を始点条件、Pnにおける条件を終点条件と言う。
0、Pnでの2次微分ベクトルが0、つまりP0’’=0、Pn’’=0である。
0’が指定され、Pn’’=0である。
0’’=0としPn’が指定される。
したがって、そのような条件の場合でもほぼ同様に、Pi、Pi+1間の3次曲線の関数fi(t)(i=0,1,2,,,n−1;0≦t≦ti+1)を求めることができる。
1−2.順次指令点列を結ぶ3次関数の曲線を作成
特許文献1に開示される方式は、「始点を含む所定数の点から、一次微分ベクトルを求め、前記始点を含む所定の点の座標値、始点の端点条件及び前記一次微分ベクトルから前記始点と次の点間の3次式を求めて、前記始点と前記始点に続く点間のスプライン曲線を求め、前記始点の代わりに新しい次の点を加えて、順次点間の3次式を求めて」(請求項1)行く方式である。このことにより、全指令点列を読み込むことなく指令点列を順次読み込みながら3次スプライン曲線を作成する。この方式は、指令点列を順次読み込みながら1−1.で述べた理論的なスプライン曲線との誤差が拡大することなく実用上問題のないスプライン曲線を得る点で優れているが、次の問題点もある。
問題点:順次指令点列を読み込みながら各指令点列点列間に3次スプライン曲線を作成するため、指令点列間の間隔が微小であると、数値制御装置の3次スプライン曲線を作成し補間する能力が不足し、減速してしまうことがある。
指令点列の位置に目標曲線に対する誤差によるばらつきがあると作成される曲線もばらついてしまう。(図2参照)
<2>間引き
特許文献2には、指令点列に対して直線近似し、近似したところに対応する点列は間引く方法が開示されている。この方法は、直線で近似するため、滑らかな形状にならない問題がある。
<3>指令点位置の修正
特許文献3には、指令点がスムーズに並ぶように許容値の範囲内で指令点位置を修正する方法が開示されている。この方法は、点列間隔が微小である点列が指令されると、処理能力が不足し、減速することがある。指令点位置を修正する方法は、前後数点(例えば5点)から近似用曲線を作成しその曲線に向かって指令点位置を修正するので、図3のようにその近似曲線作成対象の指令点列の位置が目標曲線に対して同じような誤差を持っていると誤差の影響を受けて目標曲線に近づく修正がなされない。図3では、作成される各曲線の矢印先端が指令点列に対して修正した位置である。
特開平2−113305号公報 特許第3459155号公報 特許第3640754号公報
そこで、本発明は、できるだけ多くの指令点列に対応した1個の3次曲線(区分曲線)を作成し、複数のそれらの3次曲線(区分曲線)を接続して加工用の曲線である加工曲線を作成し、その加工曲線を補間し補間した位置に前記駆動軸を駆動することによって加工を行なうことが可能な加工曲線作成機能を有する数値制御装置を提供することを課題とする。
本発明は、できるだけ多くの指令点列に対応した1個の3次曲線(区分曲線)を作成し、複数のそれらの3次曲線(区分曲線)を接続して加工用の曲線である加工曲線を作成し、その加工曲線を補間し補間した位置に前記駆動軸を駆動することによって加工を行なうことが可能な加工曲線作成機能を有する数値制御装置であり、該数値制御装置において、各3次曲線(区分曲線)間は、各3次曲線(区分曲線)を表す3次関数の2次微分ベクトルが連続するように接続され、そのようにして作成した3次曲線群(スプライン曲線)として加工曲線が作成され、そのような加工曲線の作成が指令点列を全て読み込むことなく順次指令点列を読み込まれながら行われる。(図4参照)なお、ここの連続性は理論上の連続性ではなく実用上の連続性である。
そして、本願の請求項1に係る発明は、少なくとも直線2軸を含む複数の駆動軸を有する工作機械に対して加工プログラムから得られる指令点列にもとづいて加工用の曲線である加工曲線を作成し該加工曲線を補間し補間した位置に前記駆動軸を駆動することによって加工を行う数値制御装置において、前記指令点列を複数の区分に分割し、該区分ごとの区分指令点列に対応する曲線である区分曲線の作成において、前記区分指令点列からの距離が予め設定された許容値内であり、かつ前記区分指令点列の始点である区分始点と前記区分指令点列の終点である区分終点との間にできるだけ多くの指令点列を含むように前記区分曲線を作成する区分曲線作成部と、前記区分曲線作成部の処理を前記指令点列の始点から終点まで繰り返し実行して前記加工曲線を作成する加工曲線作成部を有し、前記加工曲線を補間し補間した位置に移動するよう前記駆動軸を駆動することを特徴とする加工曲線作成機能を有する数値制御装置である。
請求項2に係る発明は、前記区分曲線作成部は、前記指令点列の始点から始まる区分内における前記指令点列である区分指令点列に対して、該区分指令点列の終点を区分終点とし、前記始点、前記始点に対する条件である始点条件、前記区分終点および前記区分終点後の所定点数だけの指令点列にもとづいて前記始点および前記区分終点での前記加工曲線の1次微分ベクトルとして区分始点ベクトルおよび区分終点ベクトルを求め、前記始点、前記区分始点ベクトル、前記区分終点および前記区分終点ベクトルから前記区分曲線を作成するとともに、前記区分指令点列からの距離が予め設定された許容値内でありかつ前記始点と前記区分終点との間にできるだけ多くの指令点列を含むように第1区分曲線を作成し、該第1区分曲線作成後、前記指令点列のうち前記区分終点以降の区分内における区分指令点列に対して、当該区分の前の区分終点を新たな区分始点、当該区分の前の区分終点ベクトルを新たな区分始点ベクトル、該区分指令点列の終点を新たな区分終点とし、前記新たな区分始点、前記新たな区分始点ベクトル、前記新たな区分終点および前記新たな区分終点後の所定点数だけの指令点列にもとづいて前記区分終点での前記加工曲線の1次微分ベクトルとして新たな区分終点ベクトルを求め、前記新たな区分始点、前記新たな区分始点ベクトル、前記新たな区分終点、前記新たな区分終点ベクトルから前記区分曲線を作成するとともに、前記区分指令点列からの距離が予め設定された許容値内でありかつ前記区分始点と前記区分終点との間にできるだけ多くの指令点列を含むように前記区分曲線を作成することを特徴とする請求項1に記載の加工曲線作成機能を有する数値制御装置である。
請求項3に係る発明は、前記始点条件は、前記指令点列のうち始点、第2点および第3点を円弧で接続した時の始点での接線方向を前記加工曲線の1次微分ベクトルとする、前記指令点列のうち始点、第2点および第3点を2次曲線で接続した時の始点での接線方向を前記加工曲線の1次微分ベクトルとする、または前記指令点列のうち始点および第2点を直線で接続した時の始点での接線方向を前記加工曲線の1次微分ベクトルとすることを特徴とする請求項1乃至請求項2の何れか一つに記載の加工曲線作成機能を有する数値制御装置である。
請求項4に係る発明は、前記始点条件は、前記指令点列のうち始点での前記加工曲線の2次微分ベクトルを0とすることを特徴とする請求項1乃至請求項2の何れか一つに記載の加工曲線作成機能を有する数値制御装置である。
請求項5に係る発明は、前記区分始点と前記区分終点との間にできるだけ多くの指令点列を含むとは、スキップ数nsを増加または減少しながら後述する数13式が全て成立する最も大きなnsを特定することを特徴とする請求項1乃至請求項4の何れか1つに記載の加工曲線作成機能を有する数値制御装置である。
請求項6に係る発明は、前記指令点列は加工プログラムにおいて指令される指令点の点列である、または前記指令点列は加工プログラムにおいて指令される指令点の点列に対して平滑化を行った点列であることを特徴とする請求項1乃至請求項5の何れか1つに記載の加工曲線作成機能を有する数値制御装置である。
本発明により、できるだけ多くの指令点列に対応した1個の3次曲線(区分曲線)を作成し、複数のそれらの3次曲線(区分曲線)を接続して加工用の曲線である加工曲線を作成し、その加工曲線を補間し補間した位置に前記駆動軸を駆動することによって加工を行なうことが可能な加工曲線作成機能を有する数値制御装置を提供できる。
従来技術における、指令点列と曲線作成の一例を説明する図である。 従来技術において、指令点列の位置に目標曲線に対する誤差によるばらつきがあると作成される曲線もばらついてしまうことを説明する図である。 従来技術において、指令点列の位置が目標曲線に対する誤差を持っていると目標曲線に近づく修正がされないことを説明する図である。 本発明に係る加工曲線の作成方法を説明する図である。 3次曲線である区分曲線用の3次関数を作成する方法を説明する図である。 3次曲線である区分曲線用の3次関数を作成する方法を説明する図である。 3次曲線である区分曲線用の3次関数を作成する方法を説明する図である。 加工プログラムの指令例を説明する図である。 加工曲線作成部の処理を説明するフローチャートである。 区分曲線作成部の処理を説明するフローチャートである。 関数gk(t)を作成する処理を説明するフローチャートである。 終了判別の処理を説明するフローチャートである。 s(k)+ns+1が終点Pnでありそれを越えて指令点列は用意されていない場合を説明する図である。 s(k)+ns+2が終点Pnでありそれを越えて指令点列は用意されていない場合を説明する図である。 終点Pn直前における関数gk(t)を作成する処理を説明する図である。 平滑化の方法を説明する図である。 本発明に係る加工曲線作成機能を有する数値制御装置のブロック図である。
以下、本発明の実施形態を図面と共に説明する。
本発明においては、できるだけ多くの指令点列に対応した1個の3次曲線(区分曲線)を作成する。複数のそれらの3次曲線を接続して加工用の曲線である加工曲線を作成しその加工曲線を補間し補間した位置に前記駆動軸を駆動することによって加工を行なう。各3次曲線間は、各3次曲線を表す3次関数の2次微分ベクトルが連続するように接続させる。なお、ここの連続性は理論上の連続性ではなく実用上の連続性である。そのようにして作成した3次曲線群(スプライン曲線)として加工曲線を作成する。そのような加工曲線の作成を、指令点列を全て読み込むことなく順次指令点列を読み込みながら行っていく。(図4)
そのことによって、次の詳細課題を達成することができる。
(1)できるだけ多くの指令点列に対応した3次曲線(区分曲線)を作成することによって、指令点列間の間隔が微小であっても、数値制御装置の加工曲線を作成し補間する能力が不足することによって減速してしまうことがないようにする。
(2)指令点列が目標曲線に対して誤差によるばらつきを持っていてもより目標曲線に近い加工曲線を作成する。
(3)この加工曲線は、指令点列の各点において1次微分ベクトルは連続でありかつ2次微分ベクトルも実用上連続とする。また、この加工曲線は、指令点列からの誤差は許容値内とする。そのことによって、指令点列からの誤差が許容値内でありかつ滑らかな加工形状、および各駆動軸の加速度が連続である滑らかな加工動作を得る。
(4)指令点列を全て読み込むことなく順次指令点列を読み込みながら作成していくことによって、加工曲線の作成を多くのメモリや計算時間を必要とすることなく実現する。
なお、図4において、破線の目標曲線に対して誤差を持った黒丸の指令点列が指令されており、本願技術によってその指令点列のある区分における3次曲線である区分曲線(矢付実線)が作成されていくことを示す。3次曲線(区分曲線)を表す関数が3次関数であり、区分曲線を接続した曲線が加工用の曲線である加工曲線である。また、指令点列と加工曲線との間の距離が許容値内であることを示す。
以下、本発明の第1の実施形態を説明する。
<概要>
本発明の重要部である区分曲線作成部の処理の概要について説明する。つまり、P0が始点、Pnが終点である指令点列P0,P1,P2,,,Pnの中のある点Ps(k)とその点における1次微分ベクトルPs(k)’がすでに求められている場合、Ps(k)を始点とする3次曲線である区分曲線用の3次関数を作成する方法の概要について説明する。指令点列P0,P1,P2,,,Pnの添え字は指令点の番号である。
kは作成する区分曲線の番号を示す。P0から始まる第1区分曲線ではk=0、その次の区分曲線はk=1というように区分曲線ごとに1ずつ増加する。s(k)は第(k+1)区分曲線の開始点である区分始点の指令点の番号である。e(k)は第(k+1)区分曲線の終了点である区分終点の指令点の番号である。つまり、第(k+1)区分曲線は、指令点Ps(k)が区分始点であり指令点Pe(k)が区分終点である3次曲線である。
[1](Ps(k)以降スキップする指令点の数+1)をns(スキップ数)とする。その初期値nsi(初期スキップ数)は与えられているとする。ここで、指令点をスキップするとは、区分曲線作成においてその指令点を使用しないということである。
[2]Ps(k)+ns以降の点列で3次曲線作成に使用する点数を指定する所定点数をncとする。Ps(k)、Ps(k)+ns〜Ps(k)+ns+ncの点列とPs(k)’から、Ps(k)+nsにおいて前後の3次関数の2次微分ベクトルが実用上連続するようなPs(k)+nsでの1次微分ベクトルPs(k)+ns’を求める。ただし、ここでは簡単のためnc=3とする。一般にncを大きくするほど区分終点と区分始点での前後の3次曲線の2次微分ベクトルの連続性は良くなる。
s(k)は区分始点の位置、Ps(k)+nsは区分終点の位置、Ps(k)’は区分始点ベクトル(区分始点での区分曲線の1次微分ベクトル)、Ps(k)+ns’は区分終点ベクトル(区分終点での区分曲線の1次微分ベクトル)である。以降、Px(x=0,1,,,n;s(k),s(k)+nsなど)は点を指すとともにその位置も表す。
[3]図5のようにPs(k)、Ps(k)+ns〜Ps(k)+ns+3の点列とPs(k)’を表す。図5(後出の、図6、図7でも同様)では、Ps(k)、Ps(k)+ns〜Ps(k)+ns+3を大きい黒丸で、スキップする(Ps(k)+ns’を求めるにあたり使用しない)Ps(k)+1〜Ps(k)+ns-1を白抜き丸で表している。Ps(k)+ns+3での1次微分ベクトルPs(k)+ns+3’を求める。例えば、Ps(k)+ns+1、Ps(k)+ns+2、Ps(k)+ns+3の3点を通る円弧あるいは2次曲線(放物線)を作成しそのPs(k)+ns+3における接線方向をPs(k)+ns+3’とする、あるいはPs(k)+ns+2、Ps(k)+ns+3の2点を通る直線の接線方向をPs(k)+ns+3’とする。
なお、ここではPs(k)+ns+3での1次微分ベクトルPs(k)+ns+3’を使用するが、従来技術1−1.で記載したように、他の条件(2次微分ベクトルPs(k)+ns+3’’=0)とすることもできる。(第2実施形態の中で述べる。)
[4]Ps(k)、Ps(k)+ns、Ps(k)+ns+1、Ps(k)+ns+2、Ps(k)+ns+3、Ps(k)’、Ps(k)+ns’、Ps(k)+ns+1’、Ps(k)+ns+2’、Ps(k)+ns+3’に対して数1式を適用することにより数7式を作成し、それに対して数3式に対応する数8−1式によりPs(k)+ns’を求めることができる。
Figure 2013171376
Figure 2013171376
ここで、t1〜t4は数8−2式のとおりである。
Figure 2013171376
なお、数8−1式右辺の逆マトリックス全体を求める必要はない。数8−1式右辺の逆マトリックスの第2行を求めれば数8−1式によってPs(k)+ns’を求めることができる。
[5]数4式、数5式、数6式と同様に、Ps(k)、Ps(k)+ns、Ps(k)’ 、Ps(k)+ns’から数9式のようにPs(k)、Ps(k)+ns間の3次曲線を表す関数gk(t)(0≦t≦tk)を求める。Agk、Bgk、Cgk、Dgkは駆動軸分のベクトルであり関数の係数である。tkはPs(k)s(k)+ns間長さであり、数8−2式のt1に相当する。
Figure 2013171376
4個の係数Agk、Bgk、Cgk、Dgkは、数5式,数6式での説明と同様に4個の条件Ps(k)、Ps(k)+ns、Ps(k)’ 、Ps(k)+ns’から求めることができる。つまり、gk(t)を数9式のように表した場合、gk’(t)は数10式のようになるので、数11式が成り立ち、数11式を解くことによってAgk,Bgk,Cgk,Dgkを求めれば関数gk(t)を求めることができる。
Figure 2013171376
Figure 2013171376
[6]gk(t)における、Ps(k)+1、Ps(k)+2、、、Ps(k)+ns-1に対応する点としてQ1、Q2、、、Qns-1を数12式のように求める。つまり、Ps(k)+1、Ps(k)+2、、、Ps(k)+ns-1に対応するtとしてそれらの点列間の距離を加算し、gk(t)のtに代入して求める。
Figure 2013171376
[7]それらの点と対応するPs(k)+1、Ps(k)+2、、、Ps(k)+ns-1との間の距離を求め、数13式のようにそれらの距離全てに対して予め設定されている許容値Tol以下かどうか比較する。なお、ここではPs(k)+1、Ps(k)+2、、、Ps(k)+ns-1に対応する点Q1、Q2、、、Qns-1を数12式で求め、求めた点とPs(k)+1、Ps(k)+2、、、Ps(k)+ns-1との間の距離を求め許容値Tol以下かどうか比較しているが、さらにPs(k)、Ps(k)+1、Ps(k)+2、、、Ps(k)+ns-1、Ps(k)+nsの間の中途点(例えば中点)に対応する点を数12式と同様に求め、それらの点とPs(k)、Ps(k)+1、Ps(k)+2、、、Ps(k)+ns-1、Ps(k)+ns間の中途点(中点)との間の距離を求め許容値Tol以下かどうか比較してもよい。
Figure 2013171376
[8]数13式の全てが成立すれば(許容値内)、ns=ns+1とし、つまりPs(k)+nsを1個後の点とし、[3]〜[7]を繰り返す。(図6参照) 数13式のうちの1つでも成立しなくなれば、数13式の全てが成立していた最後のgk(t)が求めるPs(k)〜Pe(k)間の区分曲線用の3次関数fk(t)である。つまり、fk(t)=gk(t)とする。この時(通常は)e(k)=s(k)+ns−1である。fk(t)=gk(t)とするとは、数14式のようにfk(t)の関数形を求めることである。Afk、Bfk、Cfk、Dfkは駆動軸分のベクトルであり関数の係数である。この時fk(t)のtの範囲(0≦t≦tk)も確定する。(後述においても同様)
なお、このfk(t)は従来技術1−1.で記載したfi(t)とは相違する。
Figure 2013171376
[9]数13式のうち1つでも成立しなければ(許容値外)、ns=ns−1とし、つまりPs(k)+nsを1個前の点とし、[3]〜[7]を繰り返す。(図7参照) 数13式の全てが成立するようになればその時のgk(t)が求めるPs(k)〜Pe(k)間の区分曲線用の3次関数fk(t)である。つまり、fk(t)=gk(t)とする。この時e(k)=s(k)+nsである。ただし、ns=ns−1とした時ns=1となれば、それより前のnsは存在しないのでPs(k)、Ps(k)+1、Ps(k)’ 、Ps(k)+1’から数9式、数10式および数11式で求めるgk(t)が求めるPs(k)〜Ps(k)+1間(つまりPs(k)〜Pe(k)間)の区分曲線用の3次関数fk(t)である。この時e(k)=s(k)+1である。
ここで、[8]または[9]のように、初期スキップ数nsiを最初のnsとし、ns=ns+1またはns=ns−1と変更しながら、つまりnsを増加または減少しながら数13式が全て成立する最も大きなnsを特定して3次関数fk(t)を求めることが、区分指令点列からの距離が予め設定された許容値内であり、かつ区分指令点列の始点である区分始点と区分指令点列の終点である区分終点との間にできるだけ多くの指令点列を含むように区分曲線を作成することである。
なお、ここではnsiを最初のnsとし、ns=ns+1またはns=ns−1と変更しながら適切なnsを求めているが、ns=ns+1またはns=ns−1の代わりに2分法で大きくnsを変更しながら適切なnsを求めて区分曲線を求めることも可能である。例えば、ns=ns+1の代わりにns=2*ns、ns=ns−1の代わりにns=INT(ns/2)とする。ここでINTは整数化の意味である。あるいは、nsi=1としns=ns+1としながら1から順にnsを変更しながら適切なnsを求めてもよい。その他にも適切なnsを求める様々な方法がある。それらの方法は従来技術であるので詳述しない。
なお、ここでは区分曲線を数9式、数14式で示したような3次多項式による3次曲線としたが、より低次の2次曲線として本願技術を適用することもできるし、4次以上の曲線に対して本願技術を適用することも可能である。また、NURBS曲線やベジェ曲線などの他の曲線に対して本願技術を適用することも可能である。
<加工プログラム>
加工プログラムの指令例は図8のようになる。「G05.1 Q1」が本発明の開始指令であり、その時のX,Y,Z軸位置が始点P0である。他の軸(U,V,W,A,B,Cなど)も駆動軸であればP0はそれらの位置も含めた位置であり、X、Y軸のみが駆動軸であればその時のX,Y軸位置がP0である。ここでは駆動軸はX、Y、Z軸とする。したがって、以降の点列や曲線は(X,Y,Z)座標系上で表される。加工プログラムのN002以降のブロックで点列P1、P2、、、の位置が指令される。「G05.1 Q0」が本発明の終了指令であり、その時のX,Y,Z軸指令位置が終点Pnである。Fは指令速度である。ここでは、加工プログラムにおいて指令される指令点の点列P0、P1、P2、、、Pnそのものを本発明における指令点列とする。
フローチャート(図9〜図12)にもとづき、指令点列P0、P1、P2、、、Pnに対する処理の詳細を説明する。前述の<概要>[2]と同様nc=3としている。指令点列としては5点以上十分多数の点列が指令されているとする。
<加工曲線作成>
加工曲線作成部の処理(図9)について、詳細に説明する。
[SA01]第1区分曲線を作成するための、始点条件の作成、および初期値設定を行う。始点条件は、ここでは第1区分曲線を表す3次関数の1次微分ベクトルP0’とする。例えば、P0、P1、P2を円弧で接続した時のP0での接線方向をP0’とする、P0、P1、P2を2次曲線(放物線)で接続した時のP0での接線方向をP0’とする、またはP0、P1を直線で接続した時のP0での接線方向をP0’とするなどによって、P0’を作成する。ここで、P0は始点、P1は第2点、P2は第3点である。k=0、s(0)=0、nsi=1とする。k=0は第1区分曲線を作成する、s(0)=0は第1区分曲線の始点である区分始点をP0とする、nsi=1は初期スキップ数を1とすることである。
なお、始点条件としては、従来技術1―1.で述べたようにP0’’=0とすることもできる。(第2実施形態で述べる。)
[SA02]終了判別(後述)を呼び出し起動し、FE(終了フラグ)を得る。
[SA03]FEをチェックする。第1区分曲線作成においてはFE=0となるので、SA04の区分曲線作成に進む。ただし、第1区分曲線より後の区分曲線作成後で終了すべき場合はFE=1となり、終了する。
[SA04]区分曲線作成(後述)によって区分曲線(1回目は第1区分曲線)を作成する。
[SA05]作成した区分曲線を補間用データにセットする。つまり、作成した関数fk(t)を補間するためのデータ(Afk、Bfk、Cfk、Dfk、Ps(k)、Pe(k)、tk)を後述する補間用データにセットする。
[SA06]itemp=e(k)、dtemp=Pe(k)’とし、k=k+1、s(k)=itemp、Ps(k)’=dtempとする。このことにより、kを1増やし、作成した区分曲線(1回目は第1区分曲線)の終点である区分終点の指令点の番号e(k)を次の区分曲線の区分始点の指令点の番号s(k)とし、つまりPs(k)を新たな区分始点とし、区分終点での1次微分ベクトルを次の区分曲線の区分始点での1次微分ベクトル、つまり新たな区分始点ベクトルとする。そして、ステップSA02の終了判別に戻る。
<区分曲線作成>
区分曲線作成部の処理(図10、図5、図6、図7)について、詳細に説明する。
[SB01]ns=nsiとする。つまり、スキップ数nsは初期スキップ数nsiとする。第1区分曲線作成においては、nsi=1として与えられている。第1区分曲線作成後の区分曲線作成においては、前回の区分曲線作成時にnsiは求められている。Ps(k)、Ps(k)’、Ps(k)+ns〜Ps(k)+ns+3 を用意する。区分始点の指令点の番号s(k)について、第1区分曲線作成においてはs(k)=0としており、第1区分曲線作成後の区分曲線作成においては、前回の区分曲線作成時に今回のs(k)は求められている。したがって、指令点列Ps(k)、Ps(k)+ns〜Ps(k)+ns+3 は用意できる。ただし、終点Pnを越えては用意しない。Ps(k)’について、第1区分曲線作成においてはPs(k)’はすでに求められており(<加工曲線作成>[SA01]参照。)、第1区分曲線後の区分曲線作成においては前回の区分曲線作成時の区分終点ベクトルを今回の区分始点ベクトルPs(k)’としている。(<加工曲線作成>[5]参照。)
[SB02]関数gk(t)作成(後述)を呼び出し起動する。作成した関数gk(t)がPs(k)+1〜Ps(k)+ns-1において予め設定された許容値内かどうかのフラグ(FT)も作成される。
[SB03]FTをチェックし、許容値内かどうか判断する。YES(許容値内)であればSB04へ、NO(許容値外)であればSB08へ行く。
[SB04]fk(t)=gk(t)とすることにより、作成した関数gk(t)を今回の区分曲線の関数fk(t)として仮に受付ける。fk(t)=gk(t)とするとは、既述したように数14式のようにfk(t)の関数形を求めることである。e(k)=s(k)+nsにより、区分終点の指令点の番号e(k)を仮にセットし、Pe(k)=Ps(k)+ns、 Pe(k)’=Ps(k)+ns’とする。nsi=nsとして次の区分曲線作成における初期スキップ数を仮にセットする。Pe(k)が仮の区分終点、Pe(k)’が仮の区分終点ベクトルである。
[SB05]ns=ns+1とし、Ps(k)、Ps(k)’、Ps(k)+ns〜Ps(k)+ns+3を用意する。ただし、終点Pnを越えては用意しない。
[SB06]関数gk(t)作成(後述)を呼び出し起動する。
[SB07]FTをチェックし、許容値内かどうか判断する。許容値内であればSB04へ、許容値外であれば最後にSB04で行った結果を持って終了する。つまり、最後にSB04で得た、関数fk(t)が今回の区分曲線の関数、e(k)が区分終点の指令点の番号、Pe(k)が新たな区分終点、Pe(k)’が新たな区分終点ベクトルであり、nsiが次の区分曲線作成における初期スキップ数である。
[SB08]ns=ns−1とし、Ps(k)、Ps(k)’、Ps(k)+ns〜Ps(k)+ns+3を用意する。ただし、終点Pnを越えては用意しない。
[SB09]関数gk(t)作成(後述)を呼び出し起動する。
[SB10]FTをチェックし、許容値内かどうか判断する。YES(許容値内)であれば関数gk(t)が得られたのでSB11へ、NO(許容値外)であればSB08へ行く。
[SB11]fk(t)=gk(t)とすることにより、作成した関数gk(t)を今回の区分曲線の関数fk(t)とする。e(k)=s(k)+nsにより、区分終点の指令点の番号e(k)をセットし、Pe(k)=Ps(k)+ns、Pe(k)’=Ps(k)+ns’とする。nsi=nsとして次の区分曲線作成における初期スキップ数をセットし、終了する。Pe(k)が新たな区分終点、Pe(k)’が新たな区分終点ベクトルである。
<関数gk(t)作成>
区分曲線作成部の処理から呼び出され起動される関数gk(t)作成の処理(図11)について、詳細に説明する。
[SC01]s(k)+ns≧nなら、つまりスキップ数によって指令点列をスキップすると終点以降になる場合は、[SC02]以降の方法で関数gk(t)を作成することはできないので、SC10ヘ行く。最後の関数gk(t)は、終了判別(後述)内で作成する。
[SC02]用意されたPs(k)、Ps(k)’、Ps(k)+ns〜Ps(k)+ns+3 から、<概要>[3]、[4]で述べたように数8−1式,数8−2式によってPs(k)+ns’を計算する。ただし、特殊なケースなので図11には記載していないが、Ps(k)+ns〜Ps(k)+ns+3について終点Pnを越えて用意されていない場合、つまりs(k)+ns+3>nのためPs(k)+ns〜Ps(k)+ns+3の全ての指令点列が用意されていない場合、数8−1式,数8−2式の代わりに数15−1式,数15−2式または数16−1式,数16−2式のように計算する。ここで、Pn’は、<概要>[3]で述べたと同様の方法による。
なお、ここではnc=3としているので、Ps(k)+ns〜Ps(k)+ns+3 について終点を越えて用意されていないのは数15式−1式,数15−2式または数16−1式,数16−2式の2つの場合であるが、nc>3であっても同様に、Ps(k)+ns〜Ps(k)+ns+nc について終点を越えて用意されていない時の計算を行うことができる。
<s(k)+ns+1=nの場合(Ps(k)+ns+1が終点Pnでありそれを越えて指令点列は用意されていない場合)>(図13)
Figure 2013171376
ここで、t1、t2は、数15−2式のとおりである。
Figure 2013171376
<s(k)+ns+2=nの場合(Ps(k)+ns+2が終点Pnでありそれを越えて指令点列は用意されていない場合)>(図14)
Figure 2013171376
ここで、t1、t2、t3は数16−2式のとおりである。
Figure 2013171376
[SC03]Ps(k)、Ps(k)+ns、Ps(k)’および[SC02]で求めたPs(k)+ns’から数11式により、Ps(k)、Ps(k)+ns 間の数9式の3次関数gk(t)の係数,Agk,Bgk,Cgk,Dgkを求め、gk(t)を作成する。
[SC04]関数gk(t)について数13式のように許容値Tol内かどうかチェックするために、初期インデックスj=1とする。
[SC05]jとnsを比較する。j≧nsならSC09へ、j<nsならSC06へ行く。なお、ns=1の場合、必ずj≧nsである。
[SC06]数12式によりQjを作成する。
[SC07]|Qj−Ps(k)+j|と許容値Tolを比較する。|Qj−Ps(k)+j|≦TolならSC08へ、|Qj−Ps(k)+j|>TolならSC10へ行く。
[SC08]j=j+1としてSC05へ行く。
[SC09]許容値内フラグFT=1とし、関数gk(t)は許容値内であることを示し、終了する。
[SC10]許容値内フラグFT=0とし、関数gk(t)は許容値外であることを示し、終了する。
<終了判別>
加工曲線作成部の処理から呼び出され起動される終了判別の処理(図12)について、詳細に説明する。
[SD01]s(k)とn−1を比較する。s(k)≧n−1の場合、s(k)は終点直前でありSD02に行く。s(k)<n−1の場合、s(k)は終点直前ではなくSD05に行く。
[SD02]Ps(k)、Pn、Ps(k)’、Pn’から、Pn-1、Pn間の数9式の3次関数gk(t)の係数、Agk、Bgk、Cgk、Dgkを求め、gk(t)を作成する。ここで、Pn’は、<概要>[3]で述べたと同様の方法による。(図15参照)
[SD03]fk(t)=gk(t)とする。
[SD04]FE(終了フラグ)=1とし、最後の区分曲線であることを示す。そして、終了する。
[SD05]s(k)+nsiとn−1を比較する。s(k)+nsi≦n−1なら、つまり、区分始点の指令点の番号に初期スキップ数を加算しても終点の指令点番号には届かない場合(通常の場合)、SD07に行く。s(k)+nsi>n−1なら、つまり区分始点の指令点の番号に初期スキップ数を加算すると終点の指令点番号以降の番号になってしまう場合SD06に行く。
[SD06]nsi=(n−1)−s(k)とし、区分始点の指令点の番号に初期スキップ数を加算するとn−1となるようにする。
[SD07]FE(終了フラグ)=0とする。そして、終了する。
これらの処理によって、指令点列の区分ごとの区分指令点列に対応する曲線である区分曲線を作成する区分曲線作成部において、区分指令点列からの距離が予め設定された許容値内であり、かつ前記区分指令点列の始点である区分始点と前記区分指令点列の終点である区分終点との間にできるだけ多くの指令点列を含むように区分曲線を作成し、加工曲線作成部においてその区分曲線作成部の処理を指令点列の始点から終点まで繰り返し実行して加工曲線を作成することができる。
ここでは、駆動軸はX、Y、Z軸として加工曲線、区分曲線を作成したが、回転軸によって工具方向を制御できる多軸加工機において、回転軸も含めた駆動軸に対して加工曲線、区分曲線を作成することもできる。さらに、(I,J,K)などのベクトルで指令される工具方向を含めて駆動軸に準じて扱うことにより工具方向も含めて加工曲線、区分曲線を作成することもできる。つまり、(X,Y,Z)座標系上で点列や曲線を表したと同様に、(I,J,K)座標系上で工具方向を表して本実施例と同様の処理を行い、作成された(I,J,K)座標系上の加工曲線を補間して補間位置を(I,J,K)座標系上の工具方向とし、その補間された工具方向から工具方向を制御する回転軸位置に変換して回転軸を駆動すればよい。
次に、本発明の第2の実施形態を説明する。
第1の実施形態の<加工曲線作成>[1]で述べたように、始点条件として従来技術1−1.で述べたような始点での2次微分ベクトルP0’’=0とする例を第2の実施形態として説明する。なお、第2の実施形態では、第1の実施形態<概要>[3]で述べたように、Ps(k)+ns+3での条件として1次微分ベクトルPs(k)+ns+3’でなく従来技術1−1.で記載したような他の条件(2次微分ベクトルPs(k)+ns+3’’=0)とする。第1の実施形態で述べたような1次微分ベクトルPs(k)+ns+3’を使用しても良いが、従来技術1−1.で述べたように様々な始点条件、終点条件を組合わせることができることを示すため、第2の実施形態ではPs(k)+ns+3での条件として2次微分ベクトルPs(k)+ns+3’’=0とする。
この時、第1区分曲線作成における、第1の実施形態の数7式、数8−1式,数8−2式は次の数17式、数18−1,数18−2式のようになる。数17式は左辺マトリックスの第1行と最終行、および右辺ベクトルの第1要素と最終要素が数7式と相違する。数18−1式もそれらに対応して数8−1式と相違する。k=0であり、s(0)=0である。数18−1式,数18−2式からPs(0)’、Ps(0)+ns’を求め、Ps(0)’、Ps(0)+ns’およびPs(0)、Ps(0)+nsから数9式、数10式、数11式により関数g0(t)を求めることができる。これが、第1区分曲線を表す関数である。
Figure 2013171376
Figure 2013171376
ここで、t1〜t4は数18−2式のとおりである。
Figure 2013171376
第1区分曲線作成後の区分曲線作成における、第1の実施形態の数7式、数8−1,数8−2式は次の数19式、数20−1,数20−2式のようになる。数19式は左辺マトリックスの最終行、および右辺ベクトルの最終要素が数7式と相違する。数20−1式もそれらに対応して数8−1式と相違する。数20−1,数20−2式からPs(k)+ns’を求め、すでに前回区分曲線作成で求まっているPs(k)’およびPs(k)、Ps(k)+nsから数9式、数10式、数11式により関数gk(t)を求めることができる。これが第1区分曲線作成後の区分曲線を表す関数である。
Figure 2013171376
Figure 2013171376
ここで、t1〜t4は数20−2式のとおりである。
Figure 2013171376
その他は第1の実施形態と同様の処理なので説明を省略する。
次に、本発明の第3の実施形態を説明する。
第1の実施形態および第2の実施形態では、指令点列として加工プログラムにおいて指令される指令点の点列としたが、第3の実施形態では、前記指令点列は加工プログラムにおいて指令される指令点の点列に対して平滑化を行った点列とする。従来技術として様々な平滑化の技術があり、それらの平滑化の技術を組合わせるものである。
例えば、簡単な平滑化の方法は次のような方法である。加工プログラムにおいて指令される指令点列の始点P0および終点Pnを除く元の点列P1、、、Pn-1に対して数21式のようにPiおよび前後2点(Pi-1、Pi+1)を平均する平滑化を行い、新たに指令点列P0、P1、、、Pn-1、Pnとする。
Figure 2013171376
あるいは、次のような他の簡単な平滑化の方法もある。加工プログラムにおいて指令される元の点列P0、P1、、、Pm-1、Pmに対して数22式のように始点P0および終点Pmを除いて中点を作成する平滑化を行い、新たに指令点列P0、P1、、、Pn-1、Pnとする。ここでは元の点列P0、P1、、、Pm-1、Pmに対して1点多くなるため、n=m+1としている。図16下図では、元の指令点列P1、、、Pm-1を白抜き丸で表し、新たな指令点列P0、P1、、、Pn-1、Pnを黒丸としている。
Figure 2013171376
これらの簡単な平滑化の方法以外にも、従来技術として知られている様々な平滑化の方法と組合わせることができる。
<ブロック図>
次に図17を用いて本発明の第1の実施形態での数値制御装置を説明する。少なくとも直線2軸を含む複数の駆動軸を有する工作機械に対して加工プログラムから得られる指令点列にもとづいて加工用の曲線である加工曲線を作成し該加工曲線を補間し補間した位置に前記駆動軸を駆動することによって加工を行う数値制御装置は、指令読取り解析部2で加工プログラムの指令を読取るとともに解析して補間用データを作成し、補間部8で補間用データにもとづいて指令速度に従って補間を行い各軸の移動すべき位置を求め、その位置へ各軸のサーボを駆動する。
本発明では、指令読取り解析部2が加工プログラムの指令を読取り、加工曲線作成部4を起動する。加工曲線作成部4は区分曲線作成部6を起動し、加工曲線として1つの区分曲線を作成し補間用データにセットする。補間用データにセットされた区分曲線(加工曲線の一部)を補間部8で補間し補間した位置に各駆動軸(X,Y,Z軸サーボ10,12,14)を駆動する。これらの区分曲線を作成し補間データにセットすることとその補間は繰り返し連続して実行される。補間部8で加工曲線を補間する技術は従来技術なので特に説明しない。
次に、本発明の詳細効果について説明する。本発明によって、次のように効果を得る。
(1)数値制御装置は、前述のブロック図においても述べたように指令読取り解析部で補間用データを作成し補間部で補間用データにもとづいて補間を行う。間隔の微小な指令点列が指令されると、補間用データ作成とその補間を頻繁に繰り返す必要が生じ、その結果、加工曲線を作成し補間する能力が不足することによって減速してしまうことが発生する。本発明によって、できるだけ多くの指令点列に対応した3次曲線(区分曲線)を作成することができる、つまり多くの指令点列に対応した補間用データを作成できるため、補間用データ作成とその補間を頻繁に繰り返す必要が生じる可能性が小さくなる。そのことにより、指令点列間の間隔が微小であっても、数値制御装置の加工曲線を作成し補間する能力が不足することによって減速してしまうことを少なくできる。
(2)本発明によって、できるだけ多くの指令点列に対応した3次曲線(区分曲線)を作成することができるため、指令点列が目標曲線に達して誤差によるばらつきを持っていてもそれらの誤差の影響を小さくし、より目標極点に近い加工曲線を作成することができる。
(3)本発明によって作成される加工曲線は、各区分曲線の終点と次の区分曲線の始点において1次微分ベクトルは連続でありかつ2次微分ベクトルも実用上連続である。本文中でも述べたように所定点数ncを大きくすれば2次微分ベクトルの連続性は良くなる。また、この加工曲線は、指令点列からの誤差は許容値内である。したがって、本発明によって、指令点列からの誤差が許容値内でありかつ滑らかな加工形状、および各駆動軸の加速度が連続である滑らかな加工動作を得ることができる。
(4)本発明により、指令点列を全て読み込むことなく順次指令点列を読み込みながら作成していくことができるため、加工曲線の作成を多くのメモリや計算時間を必要とすることなく実現することができる。
2 指令読取り解析部
4 加工曲線作成部
6 区分曲線作成部
8 補間部
10 X軸サーボ
12 Y軸サーボ
14 Z軸サーボ
本発明は、少なくとも直線2軸を含む複数の駆動軸を有する工作機械に対して加工プログラムから得られる指令点列にもとづいて加工用の曲線である加工曲線を作成し該加工曲線を補間し補間した位置に前記駆動軸を駆動することによって加工を行う数値制御装置に関する。
従来から、工作機械を制御する数値制御装置において、与えられた点列から曲線や直線を作成し補間する方法が知られている。
<1>曲線作成
1−1.指令点列の始点における始点条件、終点における終点条件が指定される場合のスプライン曲線
一般に、図1のように点列P0、P1、P2、、、Pnとそれらの点列の始点における始点条件として1次微分ベクトルP0’ 、終点における終点条件としてPn’が与えられた時、各点での1次微分ベクトルと2次微分ベクトルが連続となるような各点間の3次曲線を表す3次関数は次のようにして求められる。
各点における1次微分ベクトル(P0’,P1’,P2’,,,Pn’)Tに対して数1式が成り立つ。「T」は転置を表すが、以降自明の場合省略する。ここで、t1、t2、、、tnは、作成される3次関数におけるパラメータ(3次関数の媒介変数t)について各P0、P1、P2、、、Pn間でのパラメータ値の差である。一般には作成される3次関数における各P0、P1、P2、、、Pn間の距離(曲線長さ)で表される。ただし、P0’、P1’、P2’、、、Pn’が求まらないと3次関数は求まらず、3次関数が求まらなければ3次関数の曲線における各P0、P1、P2、、、Pn間の距離(曲線長さ)も求まらない。そのため、各P0、P1、P2、、、Pn間の距離(曲線長さ)は各P0、P1、P2、、、Pn間の直線距離で近似することが多い。例えば、P01間の直線距離をt1とし、P12間の直線距離をt2とし、、、Pn-1n間の直線距離をtnとする。なお、1次微分ベクトル、2次微分ベクトルとは、後述の説明も含めて、3次関数のパラメータtによる1階微分、2階微分の各点(各点でのパラメータtの値)での値である。
ここで、P0、P1、P2、、、PnやP0’、P1’、P2’、、、Pn’は、少なくとも直線軸2軸の軸数分の要素を持ったベクトルである。機械構成に応じて、直線軸2軸以外にも3軸目、4軸目、、、の直線軸の要素や回転軸の要素を持っていてもよい。
Figure 2013171376
したがって、数1式においてP0’、Pn’、P0、P1、P2、、、Pnは与えられ、t1、t2、、、tnはP0、P1、P2、、、Pnから求まるので、P’=(P0’,P1’,P2’,,,Pn’)Tを求めることができる。つまり、数1式を数2式のように表すと、P’は数3式のように求められる。
Figure 2013171376
Figure 2013171376
P’が求められれば、P0、P1、P2、、、Pnとから、各点間の3次曲線の関数を求めることができる。つまり、Pi、Pi+1、Pi’、Pi+1’から、数4式のように表されるPi、Pi+1間の3次曲線の関数fi(t)(i=0,1,2,,,n−1;0≦t≦ti+1)を求めることができる。したがって、指令点列位置(P0、P1、P2、、、Pn)、始点条件(ここではP0’)、終点条件(ここではPn’)から、各点において1次微分、2次微分が連続である各点間の3次曲線の関数を求めることができる。ここで、Afi,Bfi,Cfi,Dfiは関数fi(t)の係数であり、それらの係数および関数fi(t)は、P0、P1、P2、、、Pnと同様、軸数分の要素を持ったベクトルである。
Figure 2013171376
i(t)の求め方は次のようになる。fi(t)を数4式のように表した場合、fi’(t)は数5式のようになるので、数6式が成り立ち、数6式を解くことによってAfi,Bfi,Cfi,Dfiを求めれば関数fi(t)を求めることができる。
Figure 2013171376
Figure 2013171376
このようにして求められる3次曲線群をスプライン曲線と言う。スプライン曲線は各点での1次微分ベクトルと2次微分ベクトルが連続なので、滑らかな加工形状と各駆動軸の加速度が連続である滑らかな動作が得られる。
しかし、この方法は、指令点列位置(P0、P1、P2、、、Pn)を全て読み込み計算を行う必要があり、その指令点列を構成する点の数が多くなると、マトリックス計算が膨大になり多くのメモリ領域と計算時間を必要とする。
なお、ここではP0’、Pn’が指定されることを条件としたが、次のような条件としても数1式とほぼ同様の式が導かれることが知られている。このような、P0における条件を始点条件、Pnにおける条件を終点条件と言う。
0、Pnでの2次微分ベクトルが0、つまりP0’’=0、Pn’’=0である。
0’が指定され、Pn’’=0である。
0’’=0としPn’が指定される。
したがって、そのような条件の場合でもほぼ同様に、Pi、Pi+1間の3次曲線の関数fi(t)(i=0,1,2,,,n−1;0≦t≦ti+1)を求めることができる。
1−2.指令点列を構成する点間を順次結ぶ3次関数の曲線を作成
特許文献1に開示される方式は、「始点を含む所定数の点から、一次微分ベクトルを求め、前記始点を含む所定の点の座標値、始点の端点条件及び前記一次微分ベクトルから前記始点と次の点間の3次式を求めて、前記始点と前記始点に続く点間のスプライン曲線を求め、前記始点の代わりに新しい次の点を加えて、順次点間の3次式を求めて」(請求項1)行く方式である。この方式により指令点列を構成するすべての点を読み込むことなく3次スプライン曲線を作成する。この方式は、指令点列を構成する点を順次読み込みながら1−1.で述べた理論的なスプライン曲線との誤差が拡大することなく実用上問題のないスプライン曲線を得る点で優れているが、次の問題点もある。
(a)指令点列を構成する点を読み込みながら順次点間に3次スプライン曲線を作成するため、点間の間隔が微小であると、数値制御装置の3次スプライン曲線を作成し補間する能力が不足し、減速してしまうことがある。
(b)指令点列の位置に目標曲線に対する誤差によるばらつきがあると作成される曲線もばらついてしまう。(図2参照)
<2>間引き
特許文献2には、指令点列に対して直線近似し、近似したところに対応する点は間引く方法が開示されている。この方法は、直線で近似するため、滑らかな形状にならない問題がある。
<3>指令点位置の修正
特許文献3には、指令点がスムーズに並ぶように許容値の範囲内で指令点位置を修正する方法が開示されている。この方法は、指令点間の間隔が微小である点列が指令されると、処理能力が不足し、減速することがある。指令点位置を修正する方法は、前後数点(例えば5点)から近似用曲線を作成しその曲線に向かって指令点位置を修正するので、図3のようにその近似曲線作成対象の指令点列の位置が目標曲線に対して同じような誤差を持っていると誤差の影響を受けて目標曲線に近づく修正がなされない。図3では、作成される各曲線の矢印先端が指令点列に対して修正した位置である。
特開平2−113305号公報 特許第3459155号公報 特許第3640754号公報
そこで、本発明は、できるだけ多くの指令点に対応した1個の3次曲線(区分曲線)を作成し、それらの3次曲線(区分曲線)を複数個接続して加工用の曲線である加工曲線を作成し、その加工曲線を補間し補間した位置に前記駆動軸を駆動することによって加工を行なうことが可能な加工曲線作成機能を有する数値制御装置を提供することを課題とする。
本発明は、できるだけ多くの指令点に対応した1個の3次曲線(区分曲線)を作成し、複数のそれらの3次曲線(区分曲線)を接続して加工用の曲線である加工曲線を作成し、その加工曲線を補間し補間した位置に前記駆動軸を駆動することによって加工を行なうことが可能な加工曲線作成機能を有する数値制御装置であり、該数値制御装置において、各3次曲線(区分曲線)間は、各3次曲線(区分曲線)を表す3次関数の2次微分ベクトルが連続するように接続され、そのようにして作成した3次曲線群(スプライン曲線)として加工曲線が作成され、そのような加工曲線の作成が指令点列を構成する点を全て読み込むことなく行われる。(図4参照)なお、ここの連続性は理論上の連続性ではなく実用上の連続性である。
そして、本願の請求項1に係る発明は、少なくとも直線2軸を含む複数の駆動軸を有する工作機械に対して加工プログラムから得られる指令点列にもとづいて加工用の曲線である加工曲線を作成し該加工曲線を補間し補間した位置に前記駆動軸を駆動することによって加工を行う数値制御装置において、前記指令点列を複数の区分に分割し、該区分ごとの区分指令点列に対応する曲線である区分曲線の作成において、前記区分指令点列からの距離が予め設定された許容値内であり、かつ前記区分指令点列の始点である区分始点と前記区分指令点列の終点である区分終点との間にできるだけ多くの指令点を含むように前記区分曲線を作成する区分曲線作成部と、前記区分曲線作成部の処理を前記指令点列の始点から終点まで繰り返し実行して前記加工曲線を作成する加工曲線作成部を有し、前記加工曲線を補間し補間した位置に移動するよう前記駆動軸を駆動することを特徴とする加工曲線作成機能を有する数値制御装置である。
請求項2に係る発明は、前記区分曲線作成部は、前記指令点列の始点から始まる区分内における前記指令点列である区分指令点列に対して、該区分指令点列の終点を区分終点とし、前記始点、前記始点に対する条件である始点条件、前記区分終点および前記区分終点後の所定点数だけの指令点列にもとづいて前記始点および前記区分終点での前記加工曲線の1次微分ベクトルとして区分始点ベクトルおよび区分終点ベクトルを求め、前記始点、前記区分始点ベクトル、前記区分終点および前記区分終点ベクトルから前記区分曲線を作成するとともに、前記区分指令点列からの距離が予め設定された許容値内でありかつ前記始点と前記区分終点との間にできるだけ多くの指令点を含むように第1区分曲線を作成し、該第1区分曲線作成後、前記指令点列のうち前記区分終点以降の区分内における区分指令点列に対して、当該区分の前の区分終点を新たな区分始点、当該区分の前の区分終点ベクトルを新たな区分始点ベクトル、該区分指令点列の終点を新たな区分終点とし、前記新たな区分始点、前記新たな区分始点ベクトル、前記新たな区分終点および前記新たな区分終点後の所定点数だけの指令点列にもとづいて前記区分終点での前記加工曲線の1次微分ベクトルとして新たな区分終点ベクトルを求め、前記新たな区分始点、前記新たな区分始点ベクトル、前記新たな区分終点、前記新たな区分終点ベクトルから前記区分曲線を作成するとともに、前記区分指令点列からの距離が予め設定された許容値内でありかつ前記区分始点と前記区分終点との間にできるだけ多くの指令点を含むように前記区分曲線を作成することを特徴とする請求項1に記載の加工曲線作成機能を有する数値制御装置である。
請求項3に係る発明は、前記始点条件は、前記指令点列のうち始点、第2点および第3点を円弧で接続した時の始点での接線方向を前記加工曲線の1次微分ベクトルとする、前記指令点列のうち始点、第2点および第3点を2次曲線で接続した時の始点での接線方向を前記加工曲線の1次微分ベクトルとする、または前記指令点列のうち始点および第2点を直線で接続した時の始点での接線方向を前記加工曲線の1次微分ベクトルとすることを特徴とする請求項1乃至請求項2の何れか一つに記載の加工曲線作成機能を有する数値制御装置である。
請求項4に係る発明は、前記始点条件は、前記指令点列のうち始点での前記加工曲線の2次微分ベクトルを0とすることを特徴とする請求項1乃至請求項2の何れか一つに記載の加工曲線作成機能を有する数値制御装置である。
請求項5に係る発明は、前記区分始点と前記区分終点との間にできるだけ多くの指令点を含むとは、スキップ数nsを増加または減少しながら後述する数13式が全て成立する最も大きなnsを特定することを特徴とする請求項1乃至請求項4の何れか1つに記載の加工曲線作成機能を有する数値制御装置である。
請求項6に係る発明は、前記指令点列は加工プログラムにおいて指令される指令点の点列である、または前記指令点列は加工プログラムにおいて指令される指令点の点列に対して平滑化を行った点列であることを特徴とする請求項1乃至請求項5の何れか1つに記載の加工曲線作成機能を有する数値制御装置である。
本発明により、できるだけ多くの指令点に対応した1個の3次曲線(区分曲線)を作成し、それらの3次曲線(区分曲線)を複数個接続して加工用の曲線である加工曲線を作成し、その加工曲線を補間し補間した位置に前記駆動軸を駆動することによって加工を行なうことが可能な加工曲線作成機能を有する数値制御装置を提供できる。
従来技術における、指令点列と曲線作成の一例を説明する図である。 従来技術において、指令点列の位置に目標曲線に対する誤差によるばらつきがあると作成される曲線もばらついてしまうことを説明する図である。 従来技術において、指令点列の位置が目標曲線に対する誤差を持っていると目標曲線に近づく修正がされないことを説明する図である。 本発明に係る加工曲線の作成方法を説明する図である。 3次曲線である区分曲線用の3次関数を作成する方法を説明する図である。 3次曲線である区分曲線用の3次関数を作成する方法を説明する図である。 3次曲線である区分曲線用の3次関数を作成する方法を説明する図である。 加工プログラムの指令例を説明する図である。 加工曲線作成部の処理を説明するフローチャートである。 区分曲線作成部の処理を説明するフローチャートである。 関数gk(t)を作成する処理を説明するフローチャートである。 終了判別の処理を説明するフローチャートである。 s(k)+ns+1が終点Pnでありそれを越えて指令点列は用意されていない場合を説明する図である。 s(k)+ns+2が終点Pnでありそれを越えて指令点列は用意されていない場合を説明する図である。 終点Pn直前における関数gk(t)を作成する処理を説明する図である。 平滑化の方法を説明する図である。 本発明に係る加工曲線作成機能を有する数値制御装置のブロック図である。
以下、本発明の実施形態を図面と共に説明する。
本発明においては、できるだけ多くの指令点を含む点列に対応した1個の3次曲線(区分曲線)を作成する。複数のそれらの3次曲線を接続して加工用の曲線である加工曲線を作成しその加工曲線を補間し補間した位置に前記駆動軸を駆動することによって加工を行なう。各3次曲線間は、各3次曲線を表す3次関数の2次微分ベクトルが連続するように接続させる。なお、ここの連続性は理論上の連続性ではなく実用上の連続性である。そのようにして作成した3次曲線群(スプライン曲線)として加工曲線を作成する。そのような加工曲線の作成を、指令点列を構成する点を全て読み込むことなく順次行っていく。(図4)
そのことによって、次の詳細課題を達成することができる。
(1)できるだけ多くの指令点に対応した3次曲線(区分曲線)を作成することによって、指令点間の間隔が微小であっても、数値制御装置の加工曲線を作成し補間する能力が不足することによって減速してしまうことがないようにする。
(2)指令点列が目標曲線に対して誤差によるばらつきを持っていてもより目標曲線に近い加工曲線を作成する。
(3)この加工曲線は、指令点列を構成する各点において1次微分ベクトルは連続でありかつ2次微分ベクトルも実用上連続とする。また、この加工曲線は、指令点列からの誤差は許容値内とする。そのことによって、指令点列からの誤差が許容値内でありかつ滑らかな加工形状、および各駆動軸の加速度が連続である滑らかな加工動作を得る。
(4)指令点列を構成する点の全て読み込むことなく指令点列を作成していくことによって、加工曲線の作成を多くのメモリや計算時間を必要とすることなく実現する。
なお、図4において、破線の目標曲線に対して誤差を持った黒丸の指令点列が指令されており、本願技術によってその指令点列のある区分における3次曲線である区分曲線(矢付実線)が作成されていくことを示す。3次曲線(区分曲線)を表す関数が3次関数であり、区分曲線を接続した曲線が加工用の曲線である加工曲線である。また、指令点列と加工曲線との間の距離が許容値内であることを示す。
以下、本発明の第1の実施形態を説明する。
<概要>
本発明の重要部である区分曲線作成部の処理の概要について説明する。つまり、P0が始点、Pnが終点である指令点列P0,P1,P2,,,Pnの中のある点Ps(k)とその点における1次微分ベクトルPs(k)’がすでに求められている場合、Ps(k)を始点とする3次曲線である区分曲線用の3次関数を作成する方法の概要について説明する。指令点列P0,P1,P2,,,Pnの添え字は指令点の番号である。
kは作成する区分曲線の番号を示す。P0から始まる第1区分曲線ではk=0、その次の区分曲線はk=1というように区分曲線ごとに1ずつ増加する。s(k)は第(k+1)区分曲線の開始点である区分始点の指令点の番号である。e(k)は第(k+1)区分曲線の終了点である区分終点の指令点の番号である。つまり、第(k+1)区分曲線は、指令点Ps(k)が区分始点であり指令点Pe(k)が区分終点である3次曲線である。
[1](Ps(k)以降スキップする指令点の数+1)をns(スキップ数)とする。その初期値nsi(初期スキップ数)は与えられているとする。ここで、指令点をスキップするとは、区分曲線作成においてその指令点を使用しないということである。
[2]Ps(k)+ns以降の点列で3次曲線作成に使用する点数を指定する所定点数をncとする。Ps(k)、Ps(k)+ns〜Ps(k)+ns+ncの点列とPs(k)’から、Ps(k)+nsにおいて前後の3次関数の2次微分ベクトルが実用上連続するようなPs(k)+nsでの1次微分ベクトルPs(k)+ns’を求める。ただし、ここでは簡単のためnc=3とする。一般にncを大きくするほど区分終点と区分始点での前後の3次曲線の2次微分ベクトルの連続性は良くなる。
s(k)は区分始点の位置、Ps(k)+nsは区分終点の位置、Ps(k)’は区分始点ベクトル(区分始点での区分曲線の1次微分ベクトル)、Ps(k)+ns’は区分終点ベクトル(区分終点での区分曲線の1次微分ベクトル)である。以降、Px(x=0,1,,,n;s(k),s(k)+nsなど)は点を指すとともにその位置も表す。
[3]図5のようにPs(k)、Ps(k)+ns〜Ps(k)+ns+3の点列とPs(k)’を表す。図5(後出の、図6、図7でも同様)では、Ps(k)、Ps(k)+ns〜Ps(k)+ns+3を大きい黒丸で、スキップする(Ps(k)+ns’を求めるにあたり使用しない)Ps(k)+1〜Ps(k)+ns-1を白抜き丸で表している。Ps(k)+ns+3での1次微分ベクトルPs(k)+ns+3’を求める。例えば、Ps(k)+ns+1、Ps(k)+ns+2、Ps(k)+ns+3の3点を通る円弧あるいは2次曲線(放物線)を作成しそのPs(k)+ns+3における接線方向をPs(k)+ns+3’とする、あるいはPs(k)+ns+2、Ps(k)+ns+3の2点を通る直線の接線方向をPs(k)+ns+3’とする。
なお、ここではPs(k)+ns+3での1次微分ベクトルPs(k)+ns+3’を使用するが、従来技術1−1.で記載したように、他の条件(2次微分ベクトルPs(k)+ns+3’’=0)とすることもできる。(第2実施形態の中で述べる。)
[4]Ps(k)、Ps(k)+ns、Ps(k)+ns+1、Ps(k)+ns+2、Ps(k)+ns+3、Ps(k)’、Ps(k)+ns’、Ps(k)+ns+1’、Ps(k)+ns+2’、Ps(k)+ns+3’に対して数1式を適用することにより数7式を作成し、それに対して数3式に対応する数8−1式によりPs(k)+ns’を求めることができる。
Figure 2013171376
Figure 2013171376
ここで、t1〜t4は数8−2式のとおりである。
Figure 2013171376
なお、数8−1式右辺の逆マトリックス全体を求める必要はない。数8−1式右辺の逆マトリックスの第2行を求めれば数8−1式によってPs(k)+ns’を求めることができる。
[5]数4式、数5式、数6式と同様に、Ps(k)、Ps(k)+ns、Ps(k)’ 、Ps(k)+ns’から数9式のようにPs(k)、Ps(k)+ns間の3次曲線を表す関数gk(t)(0≦t≦tk)を求める。Agk、Bgk、Cgk、Dgkは駆動軸分のベクトルであり関数の係数である。tkはPs(k)s(k)+ns間長さであり、数8−2式のt1に相当する。
Figure 2013171376
4個の係数Agk、Bgk、Cgk、Dgkは、数5式,数6式での説明と同様に4個の条件Ps(k)、Ps(k)+ns、Ps(k)’ 、Ps(k)+ns’から求めることができる。つまり、gk(t)を数9式のように表した場合、gk’(t)は数10式のようになるので、数11式が成り立ち、数11式を解くことによってAgk,Bgk,Cgk,Dgkを求めれば関数gk(t)を求めることができる。
Figure 2013171376
Figure 2013171376
[6]gk(t)における、Ps(k)+1、Ps(k)+2、、、Ps(k)+ns-1に対応する点としてQ1、Q2、、、Qns-1を数12式のように求める。つまり、Ps(k)+1、Ps(k)+2、、、Ps(k)+ns-1に対応するtとしてそれらの点間の距離を加算し、gk(t)のtに代入して求める。
Figure 2013171376
[7]それらの点と対応するPs(k)+1、Ps(k)+2、、、Ps(k)+ns-1との間の距離を求め、数13式のようにそれらの距離全てに対して予め設定されている許容値Tol以下かどうか比較する。なお、ここではPs(k)+1、Ps(k)+2、、、Ps(k)+ns-1に対応する点Q1、Q2、、、Qns-1を数12式で求め、求めた点とPs(k)+1、Ps(k)+2、、、Ps(k)+ns-1との間の距離を求め許容値Tol以下かどうか比較しているが、さらにPs(k)、Ps(k)+1、Ps(k)+2、、、Ps(k)+ns-1、Ps(k)+nsの間の中途点(例えば中点)に対応する点を数12式と同様に求め、それらの点とPs(k)、Ps(k)+1、Ps(k)+2、、、Ps(k)+ns-1、Ps(k)+ns間の中途点(中点)との間の距離を求め許容値Tol以下かどうか比較してもよい。
Figure 2013171376
[8]数13式の全てが成立すれば(許容値内)、ns=ns+1とし、つまりPs(k)+nsを1個後の点とし、[3]〜[7]を繰り返す。(図6参照) 数13式のうちの1つでも成立しなくなれば、数13式の全てが成立していた最後のgk(t)が求めるPs(k)〜Pe(k)間の区分曲線用の3次関数fk(t)である。つまり、fk(t)=gk(t)とする。この時(通常は)e(k)=s(k)+ns−1である。fk(t)=gk(t)とするとは、数14式のようにfk(t)の関数形を求めることである。Afk、Bfk、Cfk、Dfkは駆動軸分のベクトルであり関数の係数である。この時fk(t)のtの範囲(0≦t≦tk)も確定する。(後述においても同様)
なお、このfk(t)は従来技術1−1.で記載したfi(t)とは相違する。
Figure 2013171376
[9]数13式のうち1つでも成立しなければ(許容値外)、ns=ns−1とし、つまりPs(k)+nsを1個前の点とし、[3]〜[7]を繰り返す。(図7参照) 数13式の全てが成立するようになればその時のgk(t)が求めるPs(k)〜Pe(k)間の区分曲線用の3次関数fk(t)である。つまり、fk(t)=gk(t)とする。この時e(k)=s(k)+nsである。ただし、ns=ns−1とした時ns=1となれば、それより前のnsは存在しないのでPs(k)、Ps(k)+1、Ps(k)’ 、Ps(k)+1’から数9式、数10式および数11式で求めるgk(t)が求めるPs(k)〜Ps(k)+1間(つまりPs(k)〜Pe(k)間)の区分曲線用の3次関数fk(t)である。この時e(k)=s(k)+1である。
ここで、[8]または[9]のように、初期スキップ数nsiを最初のnsとし、ns=ns+1またはns=ns−1と変更しながら、つまりnsを増加または減少しながら数13式が全て成立する最も大きなnsを特定して3次関数fk(t)を求めることが、区分指令点列からの距離が予め設定された許容値内であり、かつ区分指令点列の始点である区分始点と区分指令点列の終点である区分終点との間にできるだけ多くの指令点を含むように区分曲線を作成することである。
なお、ここではnsiを最初のnsとし、ns=ns+1またはns=ns−1と変更しながら適切なnsを求めているが、ns=ns+1またはns=ns−1の代わりに2分法で大きくnsを変更しながら適切なnsを求めて区分曲線を求めることも可能である。例えば、ns=ns+1の代わりにns=2*ns、ns=ns−1の代わりにns=INT(ns/2)とする。ここでINTは整数化の意味である。あるいは、nsi=1としns=ns+1としながら1から順にnsを変更しながら適切なnsを求めてもよい。その他にも適切なnsを求める様々な方法がある。それらの方法は従来技術であるので詳述しない。
なお、ここでは区分曲線を数9式、数14式で示したような3次多項式による3次曲線としたが、より低次の2次曲線として本願技術を適用することもできるし、4次以上の曲線に対して本願技術を適用することも可能である。また、NURBS曲線やベジェ曲線などの他の曲線に対して本願技術を適用することも可能である。
<加工プログラム>
加工プログラムの指令例は図8のようになる。「G05.1 Q1」が本発明の開始指令であり、その時のX,Y,Z軸位置が始点P0である。他の軸(U,V,W,A,B,Cなど)も駆動軸であればP0はそれらの位置も含めた位置であり、X、Y軸のみが駆動軸であればその時のX,Y軸位置がP0である。ここでは駆動軸はX、Y、Z軸とする。
したがって、以降の点列や曲線は(X,Y,Z)座標系上で表される。加工プログラムのN002以降のブロックで点列P1、P2、、、の位置が指令される。「G05.1 Q0」が本発明の終了指令であり、その時のX,Y,Z軸指令位置が終点Pnである。Fは指令速度である。ここでは、加工プログラムにおいて指令される指令点の点列P0、P1、P2、、、Pnそのものを本発明における指令点列とする。
フローチャート(図9〜図12)にもとづき、指令点列P0、P1、P2、、、Pnに対する処理の詳細を説明する。前述の<概要>[2]と同様nc=3としている。指令点列としては十分多数の点(5点以上)が指令されているとする。
<加工曲線作成>
加工曲線作成部の処理(図9)について、詳細に説明する。
[SA01]第1区分曲線を作成するための、始点条件の作成、および初期値設定を行う。始点条件は、ここでは第1区分曲線を表す3次関数の1次微分ベクトルP0’とする。
例えば、P0、P1、P2を円弧で接続した時のP0での接線方向をP0’とする、P0、P1、P2を2次曲線(放物線)で接続した時のP0での接線方向をP0’とする、またはP0、P1を直線で接続した時のP0での接線方向をP0’とするなどによって、P0’を作成する。ここで、P0は始点、P1は第2点、P2は第3点である。k=0、s(0)=0、nsi=1とする。k=0は第1区分曲線を作成する、s(0)=0は第1区分曲線の始点である区分始点をP0とする、nsi=1は初期スキップ数を1とすることである。
なお、始点条件としては、従来技術1―1.で述べたようにP0’’=0とすることもできる。(第2実施形態で述べる。)
[SA02]終了判別(後述)を呼び出し起動し、FE(終了フラグ)を得る。
[SA03]FEをチェックする。第1区分曲線作成においてはFE=0となるので、SA04の区分曲線作成に進む。ただし、第1区分曲線より後の区分曲線作成後で終了すべき場合はFE=1となり、終了する。
[SA04]区分曲線作成(後述)によって区分曲線(1回目は第1区分曲線)を作成する。
[SA05]作成した区分曲線を補間用データにセットする。つまり、作成した関数fk(t)を補間するためのデータ(Afk、Bfk、Cfk、Dfk、Ps(k)、Pe(k)、tk)を後述する補間用データにセットする。
[SA06]itemp=e(k)、dtemp=Pe(k)’とし、k=k+1、s(k)=itemp、Ps(k)’=dtempとする。このことにより、kを1増やし、作成した区分曲線(1回目は第1区分曲線)の終点である区分終点の指令点の番号e(k)を次の区分曲線の区分始点の指令点の番号s(k)とし、つまりPs(k)を新たな区分始点とし、区分終点での1次微分ベクトルを次の区分曲線の区分始点での1次微分ベクトル、つまり新たな区分始点ベクトルとする。そして、ステップSA02の終了判別に戻る。
<区分曲線作成>
区分曲線作成部の処理(図10、図5、図6、図7)について、詳細に説明する。
[SB01]ns=nsiとする。つまり、スキップ数nsは初期スキップ数nsiとする。第1区分曲線作成においては、nsi=1として与えられている。第1区分曲線作成後の区分曲線作成においては、前回の区分曲線作成時にnsiは求められている。Ps(k)、Ps(k)’、Ps(k)+ns〜Ps(k)+ns+3 を用意する。区分始点の指令点の番号s(k)について、第1区分曲線作成においてはs(k)=0としており、第1区分曲線作成後の区分曲線作成においては、前回の区分曲線作成時に今回のs(k)は求められている。したがって、指令点列Ps(k)、Ps(k)+ns〜Ps(k)+ns+3 は用意できる。ただし、終点Pnを越えては用意しない。Ps(k)’について、第1区分曲線作成においてはPs(k)’はすでに求められており(<加工曲線作成>[SA01]参照。)、第1区分曲線後の区分曲線作成においては前回の区分曲線作成時の区分終点ベクトルを今回の区分始点ベクトルPs(k)’としている。(<加工曲線作成>[5]参照。)
[SB02]関数gk(t)作成(後述)を呼び出し起動する。作成した関数gk(t)がPs(k)+1〜Ps(k)+ns-1において予め設定された許容値内かどうかのフラグ(FT)も作成される。
[SB03]FTをチェックし、許容値内かどうか判断する。YES(許容値内)であればSB04へ、NO(許容値外)であればSB08へ行く。
[SB04]fk(t)=gk(t)とすることにより、作成した関数gk(t)を今回の区分曲線の関数fk(t)として仮に受付ける。fk(t)=gk(t)とするとは、既述したように数14式のようにfk(t)の関数形を求めることである。e(k)=s(k)+nsにより、区分終点の指令点の番号e(k)を仮にセットし、Pe(k)=Ps(k)+ns、 Pe(k)’=Ps(k)+ns’とする。nsi=nsとして次の区分曲線作成における初期スキップ数を仮にセットする。Pe(k)が仮の区分終点、Pe(k)’が仮の区分終点ベクトルである。
[SB05]ns=ns+1とし、Ps(k)、Ps(k)’、Ps(k)+ns〜Ps(k)+ns+3を用意する。ただし、終点Pnを越えては用意しない。
[SB06]関数gk(t)作成(後述)を呼び出し起動する。
[SB07]FTをチェックし、許容値内かどうか判断する。許容値内であればSB04へ、許容値外であれば最後にSB04で行った結果を持って終了する。つまり、最後にSB04で得た、関数fk(t)が今回の区分曲線の関数、e(k)が区分終点の指令点の番号、Pe(k)が新たな区分終点、Pe(k)’が新たな区分終点ベクトルであり、nsiが次の区分曲線作成における初期スキップ数である。
[SB08]ns=ns−1とし、Ps(k)、Ps(k)’、Ps(k)+ns〜Ps(k)+ns+3を用意する。ただし、終点Pnを越えては用意しない。
[SB09]関数gk(t)作成(後述)を呼び出し起動する。
[SB10]FTをチェックし、許容値内かどうか判断する。YES(許容値内)であれば関数gk(t)が得られたのでSB11へ、NO(許容値外)であればSB08へ行く。
[SB11]fk(t)=gk(t)とすることにより、作成した関数gk(t)を今回の区分曲線の関数fk(t)とする。e(k)=s(k)+nsにより、区分終点の指令点の番号e(k)をセットし、Pe(k)=Ps(k)+ns、Pe(k)’=Ps(k)+ns’とする。nsi=nsとして次の区分曲線作成における初期スキップ数をセットし、終了する。Pe(k)が新たな区分終点、Pe(k)’が新たな区分終点ベクトルである。
<関数gk(t)作成>
区分曲線作成部の処理から呼び出され起動される関数gk(t)作成の処理(図11)について、詳細に説明する。
[SC01]s(k)+ns≧nなら、つまりスキップ数によって指令点をスキップすると終点以降になる場合は、[SC02]以降の方法で関数gk(t)を作成することはできないので、SC10ヘ行く。最後の関数gk(t)は、終了判別(後述)内で作成する。
[SC02]用意されたPs(k)、Ps(k)’、Ps(k)+ns〜Ps(k)+ns+3 から、<概要>[3]、[4]で述べたように数8−1式,数8−2式によってPs(k)+ns’を計算する。
ただし、特殊なケースなので図11には記載していないが、Ps(k)+ns〜Ps(k)+ns+3について終点Pnを越えて用意されていない場合、つまりs(k)+ns+3>nのためPs(k)+ns〜Ps(k)+ns+3の全ての指令点が用意されていない場合、数8−1式,数8−2式の代わりに数15−1式,数15−2式または数16−1式,数16−2式のように計算する。ここで、Pn’は、<概要>[3]で述べたと同様の方法による。
なお、ここではnc=3としているので、Ps(k)+ns〜Ps(k)+ns+3 について終点を越えて用意されていないのは数15式−1式,数15−2式または数16−1式,数16−2式の2つの場合であるが、nc>3であっても同様に、Ps(k)+ns〜Ps(k)+ns+nc について終点を越えて用意されていない時の計算を行うことができる。
<s(k)+ns+1=nの場合(Ps(k)+ns+1が終点Pnでありそれを越えて指令点列は用意されていない場合)>(図13)
Figure 2013171376
ここで、t1、t2は、数15−2式のとおりである。
Figure 2013171376
<s(k)+ns+2=nの場合(Ps(k)+ns+2が終点Pnでありそれを越えて指令点列は用意されていない場合)>(図14)
Figure 2013171376
ここで、t1、t2、t3は数16−2式のとおりである。
Figure 2013171376
[SC03]Ps(k)、Ps(k)+ns、Ps(k)’および[SC02]で求めたPs(k)+ns’から数11式により、Ps(k)、Ps(k)+ns 間の数9式の3次関数gk(t)の係数,Agk,Bgk,Cgk,Dgkを求め、gk(t)を作成する。
[SC04]関数gk(t)について数13式のように許容値Tol内かどうかチェックするために、初期インデックスj=1とする。
[SC05]jとnsを比較する。j≧nsならSC09へ、j<nsならSC06へ行く。なお、ns=1の場合、必ずj≧nsである。
[SC06]数12式によりQjを作成する。
[SC07]|Qj−Ps(k)+j|と許容値Tolを比較する。|Qj−Ps(k)+j|≦TolならSC08へ、|Qj−Ps(k)+j|>TolならSC10へ行く。
[SC08]j=j+1としてSC05へ行く。
[SC09]許容値内フラグFT=1とし、関数gk(t)は許容値内であることを示し、終了する。
[SC10]許容値内フラグFT=0とし、関数gk(t)は許容値外であることを示し、終了する。
<終了判別>
加工曲線作成部の処理から呼び出され起動される終了判別の処理(図12)について、詳細に説明する。
[SD01]s(k)とn−1を比較する。s(k)≧n−1の場合、s(k)は終点直前でありSD02に行く。s(k)<n−1の場合、s(k)は終点直前ではなくSD05に行く。
[SD02]Ps(k)、Pn、Ps(k)’、Pn’から、Pn-1、Pn間の数9式の3次関数gk(t)の係数、Agk、Bgk、Cgk、Dgkを求め、gk(t)を作成する。ここで、Pn’は、<概要>[3]で述べたと同様の方法による。(図15参照)
[SD03]fk(t)=gk(t)とする。
[SD04]FE(終了フラグ)=1とし、最後の区分曲線であることを示す。そして、終了する。
[SD05]s(k)+nsiとn−1を比較する。s(k)+nsi≦n−1なら、つまり、区分始点の指令点の番号に初期スキップ数を加算しても終点の指令点番号には届かない場合(通常の場合)、SD07に行く。s(k)+nsi>n−1なら、つまり区分始点の指令点の番号に初期スキップ数を加算すると終点の指令点番号以降の番号になってしまう場合SD06に行く。
[SD06]nsi=(n−1)−s(k)とし、区分始点の指令点の番号に初期スキップ数を加算するとn−1となるようにする。
[SD07]FE(終了フラグ)=0とする。そして、終了する。
これらの処理によって、指令点列の区分ごとの区分指令点列に対応する曲線である区分曲線を作成する区分曲線作成部において、区分指令点列からの距離が予め設定された許容値内であり、かつ前記区分指令点列の始点である区分始点と前記区分指令点列の終点である区分終点との間にできるだけ多くの指令点列を含むように区分曲線を作成し、加工曲線作成部においてその区分曲線作成部の処理を指令点列の始点から終点まで繰り返し実行して加工曲線を作成することができる。
ここでは、駆動軸はX、Y、Z軸として加工曲線、区分曲線を作成したが、回転軸によって工具方向を制御できる多軸加工機において、回転軸も含めた駆動軸に対して加工曲線、区分曲線を作成することもできる。さらに、(I,J,K)などのベクトルで指令される工具方向を含めて駆動軸に準じて扱うことにより工具方向も含めて加工曲線、区分曲線を作成することもできる。つまり、(X,Y,Z)座標系上で点列や曲線を表したと同様に、(I,J,K)座標系上で工具方向を表して本実施例と同様の処理を行い、作成された(I,J,K)座標系上の加工曲線を補間して補間位置を(I,J,K)座標系上の工具方向とし、その補間された工具方向から工具方向を制御する回転軸位置に変換して回転軸を駆動すればよい。
次に、本発明の第2の実施形態を説明する。
第1の実施形態の<加工曲線作成>[1]で述べたように、始点条件として従来技術1−1.で述べたような始点での2次微分ベクトルP0’’=0とする例を第2の実施形態として説明する。なお、第2の実施形態では、第1の実施形態<概要>[3]で述べたように、Ps(k)+ns+3での条件として1次微分ベクトルPs(k)+ns+3’でなく従来技術1−1.で記載したような他の条件(2次微分ベクトルPs(k)+ns+3’’=0)とする。第1の実施形態で述べたような1次微分ベクトルPs(k)+ns+3’を使用しても良いが、従来技術1−1.で述べたように様々な始点条件、終点条件を組合わせることができることを示すため、第2の実施形態ではPs(k)+ns+3での条件として2次微分ベクトルPs(k)+ns+3’’=0とする。
この時、第1区分曲線作成における、第1の実施形態の数7式、数8−1式,数8−2式は次の数17式、数18−1,数18−2式のようになる。数17式は左辺マトリックスの第1行と最終行、および右辺ベクトルの第1要素と最終要素が数7式と相違する。数18−1式もそれらに対応して数8−1式と相違する。k=0であり、s(0)=0である。数18−1式,数18−2式からPs(0)’、Ps(0)+ns’を求め、Ps(0)’、Ps(0)+ns’およびPs(0)、Ps(0)+nsから数9式、数10式、数11式により関数g0(t)を求めることができる。これが、第1区分曲線を表す関数である。
Figure 2013171376
Figure 2013171376
ここで、t1〜t4は数18−2式のとおりである。
Figure 2013171376
第1区分曲線作成後の区分曲線作成における、第1の実施形態の数7式、数8−1,数8−2式は次の数19式、数20−1,数20−2式のようになる。数19式は左辺マトリックスの最終行、および右辺ベクトルの最終要素が数7式と相違する。数20−1式もそれらに対応して数8−1式と相違する。数20−1,数20−2式からPs(k)+ns’を求め、すでに前回区分曲線作成で求まっているPs(k)’およびPs(k)、Ps(k)+nsから数9式、数10式、数11式により関数gk(t)を求めることができる。これが第1区分曲線作成後の区分曲線を表す関数である。
Figure 2013171376
Figure 2013171376
ここで、t1〜t4は数20−2式のとおりである。
Figure 2013171376
その他は第1の実施形態と同様の処理なので説明を省略する。
次に、本発明の第3の実施形態を説明する。
第1の実施形態および第2の実施形態では、指令点列として加工プログラムにおいて指令される指令点の点列としたが、第3の実施形態では、前記指令点列は加工プログラムにおいて指令される指令点の点列に対して平滑化を行った点列とする。従来技術として様々な平滑化の技術があり、それらの平滑化の技術を組合わせるものである。
例えば、簡単な平滑化の方法は次のような方法である。加工プログラムにおいて指令される指令点列の始点P0および終点Pnを除く元の点列P1、、、Pn-1に対して数21式のようにPiおよび前後2点(Pi-1、Pi+1)を平均する平滑化を行い、新たに指令点列P0、P1、、、Pn-1、Pnとする。
Figure 2013171376
あるいは、次のような他の簡単な平滑化の方法もある。加工プログラムにおいて指令される元の点列P0、P1、、、Pm-1、Pmに対して数22式のように始点P0および終点Pmを除いて中点を作成する平滑化を行い、新たに指令点列P0、P1、、、Pn-1、Pnとする。ここでは元の点列P0、P1、、、Pm-1、Pmに対して1点多くなるため、n=m+1としている。図16下図では、元の指令点列P1、、、Pm-1を白抜き丸で表し、新たな指令点列P0、P1、、、Pn-1、Pnを黒丸としている。
Figure 2013171376
これらの簡単な平滑化の方法以外にも、従来技術として知られている様々な平滑化の方法と組合わせることができる。
<ブロック図>
次に図17を用いて本発明の第1の実施形態での数値制御装置を説明する。少なくとも直線2軸を含む複数の駆動軸を有する工作機械に対して加工プログラムから得られる指令点列にもとづいて加工用の曲線である加工曲線を作成し該加工曲線を補間し補間した位置に前記駆動軸を駆動することによって加工を行う数値制御装置は、指令読取り解析部2で加工プログラムの指令を読取るとともに解析して補間用データを作成し、補間部8で補間用データにもとづいて指令速度に従って補間を行い各軸の移動すべき位置を求め、その位置へ各軸のサーボを駆動する。
本発明では、指令読取り解析部2が加工プログラムの指令を読取り、加工曲線作成部4を起動する。加工曲線作成部4は区分曲線作成部6を起動し、加工曲線として1つの区分曲線を作成し補間用データにセットする。補間用データにセットされた区分曲線(加工曲線の一部)を補間部8で補間し補間した位置に各駆動軸(X,Y,Z軸サーボ10,12,14)を駆動する。これらの区分曲線を作成し補間データにセットすることとその補間は繰り返し連続して実行される。補間部8で加工曲線を補間する技術は従来技術なので特に説明しない。
次に、本発明の詳細効果について説明する。本発明によって、次のように効果を得る。
(1)数値制御装置は、前述のブロック図においても述べたように指令読取り解析部で補間用データを作成し補間部で補間用データにもとづいて補間を行う。間隔の微小な指令点が指令されると、補間用データ作成とその補間を頻繁に繰り返す必要が生じ、その結果、加工曲線を作成し補間する能力が不足することによって減速してしまうことが発生する。本発明によって、できるだけ多くの指令点に対応した3次曲線(区分曲線)を作成することができる、つまり多くの指令点を含む点列に対応した補間用データを作成できるため、補間用データ作成とその補間を頻繁に繰り返す必要が生じる可能性が小さくなる。そのことにより、指令点間の間隔が微小であっても、数値制御装置の加工曲線を作成し補間する能力が不足することによって減速してしまうことを少なくできる。
(2)本発明によって、できるだけ多くの指令点を含む点列に対応した3次曲線(区分曲線)を作成することができるため、指令点列が目標曲線に達して誤差によるばらつきを持っていてもそれらの誤差の影響を小さくし、より目標極点に近い加工曲線を作成することができる。
(3)本発明によって作成される加工曲線は、各区分曲線の終点と次の区分曲線の始点において1次微分ベクトルは連続でありかつ2次微分ベクトルも実用上連続である。本文中でも述べたように所定点数ncを大きくすれば2次微分ベクトルの連続性は良くなる。また、この加工曲線は、指令点列からの誤差は許容値内である。したがって、本発明によって、指令点列からの誤差が許容値内でありかつ滑らかな加工形状、および各駆動軸の加速度が連続である滑らかな加工動作を得ることができる。
(4)本発明により、指令点列を全て読み込むことなく順次加工曲線を作成していくことができるため、加工曲線の作成を多くのメモリや計算時間を必要とすることなく実現することができる。
2 指令読取り解析部
4 加工曲線作成部
6 区分曲線作成部
8 補間部
10 X軸サーボ
12 Y軸サーボ
14 Z軸サーボ
そして、本願の請求項1に係る発明は、少なくとも直線2軸を含む複数の駆動軸を有する工作機械に対して加工プログラムから得られる指令点列にもとづいて加工用の曲線である加工曲線を作成し該加工曲線を補間し補間した位置に前記駆動軸を駆動することによって加工を行う数値制御装置において、前記指令点列を複数の区分に分割し、該区分ごとの区分指令点列に対応する曲線である区分曲線の作成において、前記区分指令点列と前記区分曲線との距離が予め設定された許容値内である範囲内で、かつ前記区分指令点列の始点である区分始点と前記区分指令点列の終点である区分終点との間にできるだけ多くの指令点を含むように前記区分曲線を作成する区分曲線作成部と、前記区分曲線作成部の処理を前記指令点列の始点から終点まで繰り返し実行して前記加工曲線を作成する加工曲線作成部を有し、前記加工曲線を補間し補間した位置に移動するよう前記駆動軸を駆動することを特徴とする加工曲線作成機能を有する数値制御装置である。
請求項2に係る発明は、前記区分曲線作成部は、前記指令点列の始点から始まる区分内における前記指令点列である区分指令点列に対して、該区分指令点列の終点を区分終点とし、前記始点、前記始点に対する条件である始点条件、前記区分終点および前記区分終点後の所定点数だけの指令点列にもとづいて前記始点および前記区分終点での前記加工曲線の1次微分ベクトルとして区分始点ベクトルおよび区分終点ベクトルを求め、前記始点、前記区分始点ベクトル、前記区分終点および前記区分終点ベクトルから前記区分曲線を作成するとともに、前記区分指令点列からの距離が予め設定された許容値内でありかつ前記始点と前記区分終点との間にできるだけ多くの指令点を含むように第1区分曲線を作成し、該第1区分曲線作成後、前記指令点列のうち前記区分終点以降の区分内における区分指令点列に対して、当該区分の前の区分終点を新たな区分始点、当該区分の前の区分終点ベクトルを新たな区分始点ベクトル、該区分指令点列の終点を新たな区分終点とし、前記新たな区分始点、前記新たな区分始点ベクトル、前記新たな区分終点および前記新たな区分終点後の所定点数だけの指令点列にもとづいて前記区分終点での前記加工曲線の1次微分ベクトルとして新たな区分終点ベクトルを求め、前記新たな区分始点、前記新たな区分始点ベクトル、前記新たな区分終点、前記新たな区分終点ベクトルから前記区分曲線を作成するとともに、前記区分指令点列からの距離が予め設定された許容値内でありかつ前記区分始点と前記区分終点との間にできるだけ多くの指令点を含むように前記区分曲線を作成することを特徴とする請求項1に記載の加工曲線作成機能を有する数値制御装置である。

Claims (6)

  1. 少なくとも直線2軸を含む複数の駆動軸を有する工作機械に対して加工プログラムから得られる指令点列にもとづいて加工用の曲線である加工曲線を作成し該加工曲線を補間し補間した位置に前記駆動軸を駆動することによって加工を行う数値制御装置において、
    前記指令点列を複数の区分に分割し、該区分ごとの区分指令点列に対応する曲線である区分曲線の作成において、前記区分指令点列からの距離が予め設定された許容値内であり、かつ前記区分指令点列の始点である区分始点と前記区分指令点列の終点である区分終点との間にできるだけ多くの指令点列を含むように前記区分曲線を作成する区分曲線作成部と、
    前記区分曲線作成部の処理を前記指令点列の始点から終点まで繰り返し実行して前記加工曲線を作成する加工曲線作成部を有し、
    前記加工曲線を補間し補間した位置に移動するよう前記駆動軸を駆動することを特徴とする加工曲線作成機能を有する数値制御装置。
  2. 前記区分曲線作成部は、前記指令点列の始点から始まる区分内における前記指令点列である区分指令点列に対して、該区分指令点列の終点を区分終点とし、前記始点、前記始点に対する条件である始点条件、前記区分終点および前記区分終点後の所定点数だけの指令点列にもとづいて前記始点および前記区分終点での前記加工曲線の1次微分ベクトルとして区分始点ベクトルおよび区分終点ベクトルを求め、前記始点、前記区分始点ベクトル、前記区分終点および前記区分終点ベクトルから前記区分曲線を作成するとともに、前記区分指令点列からの距離が予め設定された許容値内でありかつ前記始点と前記区分終点との間にできるだけ多くの指令点列を含むように第1区分曲線を作成し、
    該第1区分曲線作成後、前記指令点列のうち前記区分終点以降の区分内における区分指令点列に対して、当該区分の前の区分終点を新たな区分始点、当該区分の前の区分終点ベクトルを新たな区分始点ベクトル、該区分指令点列の終点を新たな区分終点とし、前記新たな区分始点、前記新たな区分始点ベクトル、前記新たな区分終点および前記新たな区分終点後の所定点数だけの指令点列にもとづいて前記区分終点での前記加工曲線の1次微分ベクトルとして新たな区分終点ベクトルを求め、前記新たな区分始点、前記新たな区分始点ベクトル、前記新たな区分終点、前記新たな区分終点ベクトルから前記区分曲線を作成するとともに、前記区分指令点列からの距離が予め設定された許容値内でありかつ前記区分始点と前記区分終点との間にできるだけ多くの指令点列を含むように前記区分曲線を作成することを特徴とする請求項1に記載の加工曲線作成機能を有する数値制御装置。
  3. 前記始点条件は、前記指令点列のうち始点、第2点および第3点を円弧で接続した時の始点での接線方向を前記加工曲線の1次微分ベクトルとする、前記指令点列のうち始点、第2点および第3点を2次曲線で接続した時の始点での接線方向を前記加工曲線の1次微分ベクトルとする、または前記指令点列のうち始点および第2点を直線で接続した時の始点での接線方向を前記加工曲線の1次微分ベクトルとすることを特徴とする請求項1乃至請求項2の何れか一つに記載の加工曲線作成機能を有する数値制御装置。
  4. 前記始点条件は、前記指令点列のうち始点での前記加工曲線の2次微分ベクトルを0とすることを特徴とする請求項1乃至請求項2の何れか一つに記載の加工曲線作成機能を有する数値制御装置。
  5. 前記区分始点と前記区分終点との間にできるだけ多くの指令点列を含むとは、スキップ数nsを増加または減少しながら
    Figure 2013171376
    が全て成立する最も大きなnsを特定することを特徴とする請求項1乃至請求項4の何れか1つに記載の加工曲線作成機能を有する数値制御装置。
  6. 前記指令点列は加工プログラムにおいて指令される指令点の点列である、または前記指令点列は加工プログラムにおいて指令される指令点の点列に対して平滑化を行った点列であることを特徴とする請求項1乃至請求項5の何れか1つに記載の加工曲線作成機能を有する数値制御装置。
JP2012033897A 2012-02-20 2012-02-20 加工曲線作成機能を有する数値制御装置 Active JP5326015B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2012033897A JP5326015B2 (ja) 2012-02-20 2012-02-20 加工曲線作成機能を有する数値制御装置
US13/737,017 US9268323B2 (en) 2012-02-20 2013-01-09 Numerical controller with machining curve creating function
DE102013002516.8A DE102013002516B4 (de) 2012-02-20 2013-02-13 Numerische Steuerung mit Bearbeitungskurvenerzeugungsfunktion
CN201310054792.6A CN103257614B (zh) 2012-02-20 2013-02-20 具有加工曲线生成功能的数值控制装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012033897A JP5326015B2 (ja) 2012-02-20 2012-02-20 加工曲線作成機能を有する数値制御装置

Publications (2)

Publication Number Publication Date
JP2013171376A true JP2013171376A (ja) 2013-09-02
JP5326015B2 JP5326015B2 (ja) 2013-10-30

Family

ID=48915303

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012033897A Active JP5326015B2 (ja) 2012-02-20 2012-02-20 加工曲線作成機能を有する数値制御装置

Country Status (4)

Country Link
US (1) US9268323B2 (ja)
JP (1) JP5326015B2 (ja)
CN (1) CN103257614B (ja)
DE (1) DE102013002516B4 (ja)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102014015278A1 (de) 2013-10-23 2015-04-23 Fanuc Corporation Bearbeitungskurven-Erzeugungsvorrichtung und dazu gehöriges Bearbeitungskurven-Erzeugungsverfahren
JP2015100867A (ja) * 2013-11-22 2015-06-04 トヨタ自動車株式会社 ロボットの3次元軌道生成方法
JP2015138549A (ja) * 2014-01-21 2015-07-30 三菱電機株式会社 軌道を生成する方法およびシステム
DE102015001526A1 (de) 2014-02-13 2015-08-13 Fanuc Corp. Numerische Steuerung mit Befehlspfad-Komprimierungsfunktion
DE102015120118A1 (de) 2014-11-28 2016-06-02 Fanuc Corporation Werkzeugwegkurvenerzeugungsverfahren und Werkzeugwegkurvenerzeugungsvorrichtung
JP2016224642A (ja) * 2015-05-29 2016-12-28 ファナック株式会社 微小ブロックのコーナ制御を行うワイヤカット放電加工機用数値制御装置
JP2018073097A (ja) * 2016-10-28 2018-05-10 ファナック株式会社 工具経路生成装置、工具経路生成方法及び工具経路生成プログラム
WO2019171805A1 (ja) * 2018-03-09 2019-09-12 日立オートモティブシステムズ株式会社 車両搭載機器の制御装置
JP2020077311A (ja) * 2018-11-09 2020-05-21 ファナック株式会社 数値制御装置、加工経路設定方法及びプログラム
CN111880484A (zh) * 2020-07-15 2020-11-03 中国科学院大学 一种数控机床加工前瞻处理方法及系统
CN112276906A (zh) * 2020-10-16 2021-01-29 深圳市华成工业控制股份有限公司 一种运动速度的控制方法、系统、主机及存储介质
DE112021005488T5 (de) 2020-12-25 2023-08-10 Fanuc Corporation Numerische steuervorrichtung

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9153049B2 (en) * 2012-08-24 2015-10-06 International Business Machines Corporation Resource provisioning using predictive modeling in a networked computing environment
JP6068414B2 (ja) * 2014-10-23 2017-01-25 ファナック株式会社 曲率の小さな円弧・曲面の形状を指定可能な数値制御装置
DE102015202017A1 (de) * 2015-02-05 2016-08-11 Kuka Roboter Gmbh Manipulatorsystem zur koordinierten Steuerung von zumindest zwei Manipulatoren
CN104898554A (zh) * 2015-04-30 2015-09-09 柳州宏开汽车科技有限公司 一种基于离散刀位点的复合刀具路径生成方法
JP6000496B1 (ja) * 2015-06-11 2016-09-28 三菱電機株式会社 数値制御装置
CN105425725B (zh) * 2015-12-09 2017-10-31 华中科技大学 一种离散刀具轨迹的曲线拟合方法
JP6444923B2 (ja) * 2016-03-30 2018-12-26 ファナック株式会社 数値制御装置
WO2018122988A1 (ja) * 2016-12-27 2018-07-05 三菱電機株式会社 数値制御装置、プログラム変換装置、数値制御方法およびプログラム変換方法
JP6816704B2 (ja) 2017-11-09 2021-01-20 オムロン株式会社 指令値補間装置及びサーボドライバ
DE102018112650A1 (de) * 2018-05-25 2019-11-28 Franka Emika Gmbh Verfahren zum Bereitstellen von Sollgrößen für einen Regler eines Robotermanipulators
JP6795553B2 (ja) * 2018-07-06 2020-12-02 ファナック株式会社 数値制御装置、数値制御方法及び数値制御プログラム
DE102018117244B3 (de) * 2018-07-17 2019-10-31 Lti Motion Gmbh Verfahren zum Ermitteln einer Grobbahn aus einer vorgegebenen Kontur
DE102018117245B3 (de) * 2018-07-17 2019-10-24 Lti Motion Gmbh Verfahren zum Ermitteln einer Grobbahn aus einer vorgegebenen Kontur
CN109032077B (zh) * 2018-09-05 2022-03-18 沈阳建筑大学 一种基于刀具姿态控制的五轴数控加工指令点插补方法
CN111913441B (zh) * 2020-08-06 2021-11-09 南京工程学院 一种基于轨迹模式的拐角平滑过渡方法
CN112269356B (zh) * 2020-10-27 2022-03-18 南京溧航仿生产业研究院有限公司 一种机器人nurbs轨迹插补方法
CN113001595B (zh) * 2021-02-04 2022-10-11 阳江市美珑美利刀具有限公司 柳叶型刀刃的刀具制备方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01217607A (ja) * 1988-02-26 1989-08-31 Fanuc Ltd スプライン曲線生成方法

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6435605A (en) * 1987-07-30 1989-02-06 Fanuc Ltd Numerical controller
JPH02113305A (ja) 1988-10-24 1990-04-25 Fanuc Ltd スプライン補間方法
JP2935706B2 (ja) * 1988-12-07 1999-08-16 ファナック株式会社 加工プログラム修正方法
EP0384925B1 (de) * 1989-02-28 1995-11-22 Siemens Aktiengesellschaft Steuerungsverfahren bei einer numerischen Werkzeugmaschine oder einem Roboter
JPH0354610A (ja) * 1989-07-21 1991-03-08 Fanuc Ltd インボリュート補間誤差補正方式
JPH04333105A (ja) 1991-05-08 1992-11-20 Mitsubishi Heavy Ind Ltd ロボットの軌跡制御方法
JPH0736514A (ja) * 1993-07-20 1995-02-07 Fanuc Ltd 3次元工具径補正方式
JP3459155B2 (ja) 1996-07-29 2003-10-20 ローランドディー.ジー.株式会社 形状加工システムにおける加工形状データの圧縮処理方法
JP3640754B2 (ja) 1997-02-21 2005-04-20 三菱電機株式会社 数値制御装置および数値制御方法
US6922606B1 (en) 1999-11-19 2005-07-26 Siemens Energy & Automation, Inc. Apparatus and method for smooth cornering in a motion control system
JP2002172543A (ja) * 2000-09-29 2002-06-18 Toyoda Mach Works Ltd 加工装置の制御パラメータ設定装置及び制御パラメータ設定方法
JP4168060B2 (ja) * 2006-04-24 2008-10-22 ファナック株式会社 円錐状の加工面の加工を可能にした数値制御装置
JP2007293478A (ja) 2006-04-24 2007-11-08 Fanuc Ltd 曲線補間方法
CN101493687B (zh) 2009-03-02 2010-07-21 广西大学 实时前瞻全程加减速控制的nurbs曲线自适应分段插补方法
DE102011007183A1 (de) * 2011-04-12 2012-10-18 Wafios Ag Verfahren und System zur Programmierung der Steuerung einer mehrachsigen Umformmaschine sowie Umformmaschine

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01217607A (ja) * 1988-02-26 1989-08-31 Fanuc Ltd スプライン曲線生成方法

Cited By (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9696708B2 (en) 2013-10-23 2017-07-04 Fanuc Corporation Machining curve creating apparatus and machining curve creating method thereof
JP2015082251A (ja) * 2013-10-23 2015-04-27 ファナック株式会社 工具経路曲線化装置
DE102014015278B4 (de) 2013-10-23 2021-09-30 Fanuc Corporation Bearbeitungskurven-Erzeugungsvorrichtung und dazu gehöriges Bearbeitungskurven-Erzeugungsverfahren
DE102014015278A1 (de) 2013-10-23 2015-04-23 Fanuc Corporation Bearbeitungskurven-Erzeugungsvorrichtung und dazu gehöriges Bearbeitungskurven-Erzeugungsverfahren
JP2015100867A (ja) * 2013-11-22 2015-06-04 トヨタ自動車株式会社 ロボットの3次元軌道生成方法
JP2015138549A (ja) * 2014-01-21 2015-07-30 三菱電機株式会社 軌道を生成する方法およびシステム
DE102015001526A1 (de) 2014-02-13 2015-08-13 Fanuc Corp. Numerische Steuerung mit Befehlspfad-Komprimierungsfunktion
US9645568B2 (en) 2014-02-13 2017-05-09 Fanuc Corporation Numerical controller having command path compression function
JP2015153097A (ja) * 2014-02-13 2015-08-24 ファナック株式会社 指令経路圧縮機能を有する数値制御装置
CN105652800A (zh) * 2014-11-28 2016-06-08 发那科株式会社 工具路径曲线化方法以及工具路径曲线化装置
DE102015120118A1 (de) 2014-11-28 2016-06-02 Fanuc Corporation Werkzeugwegkurvenerzeugungsverfahren und Werkzeugwegkurvenerzeugungsvorrichtung
CN105652800B (zh) * 2014-11-28 2018-01-19 发那科株式会社 工具路径曲线化方法以及工具路径曲线化装置
US10088825B2 (en) 2014-11-28 2018-10-02 Fanuc Corporation Tool path curve generation method and tool path curve generation apparatus
DE102015120118B4 (de) 2014-11-28 2019-08-01 Fanuc Corporation Werkzeugmaschine mit einer Werkzeugwegkurvenerzeugungsvorrichtung
JP2016224642A (ja) * 2015-05-29 2016-12-28 ファナック株式会社 微小ブロックのコーナ制御を行うワイヤカット放電加工機用数値制御装置
US10549367B2 (en) 2015-05-29 2020-02-04 Fanuc Corporation Numerical controller for wire electrical discharge machine adapted for corner control of minute blocks
JP2018073097A (ja) * 2016-10-28 2018-05-10 ファナック株式会社 工具経路生成装置、工具経路生成方法及び工具経路生成プログラム
US10409256B2 (en) 2016-10-28 2019-09-10 Fanuc Corporation Tool-path generating device, tool-path generating method, and non-transitory recording medium storing tool-path generating program
WO2019171805A1 (ja) * 2018-03-09 2019-09-12 日立オートモティブシステムズ株式会社 車両搭載機器の制御装置
JP2020077311A (ja) * 2018-11-09 2020-05-21 ファナック株式会社 数値制御装置、加工経路設定方法及びプログラム
CN111880484A (zh) * 2020-07-15 2020-11-03 中国科学院大学 一种数控机床加工前瞻处理方法及系统
CN111880484B (zh) * 2020-07-15 2021-09-21 中国科学院大学 一种数控机床加工前瞻处理方法及系统
CN112276906A (zh) * 2020-10-16 2021-01-29 深圳市华成工业控制股份有限公司 一种运动速度的控制方法、系统、主机及存储介质
CN112276906B (zh) * 2020-10-16 2021-09-07 深圳市华成工业控制股份有限公司 一种运动速度的控制方法、系统、主机及存储介质
DE112021005488T5 (de) 2020-12-25 2023-08-10 Fanuc Corporation Numerische steuervorrichtung

Also Published As

Publication number Publication date
US9268323B2 (en) 2016-02-23
CN103257614A (zh) 2013-08-21
CN103257614B (zh) 2014-11-05
DE102013002516B4 (de) 2015-10-01
JP5326015B2 (ja) 2013-10-30
DE102013002516A1 (de) 2013-08-22
US20130218323A1 (en) 2013-08-22

Similar Documents

Publication Publication Date Title
JP5326015B2 (ja) 加工曲線作成機能を有する数値制御装置
JP6267156B2 (ja) 微小ブロックのコーナ制御を行うワイヤカット放電加工機用数値制御装置
JP5192578B2 (ja) 加工プログラムの移動経路を修正する機能を備えた数値制御装置
JP5149421B2 (ja) 加工時間予測部および加工誤差予測部を有する数値制御装置
JP5255108B2 (ja) 指令経路速度条件による速度制御を行う数値制御装置
CN108227630B (zh) 一种采用时间参数多项式插补的自由曲面数控加工方法
JP2014021759A (ja) コーナ複数曲線挿入部を有する数値制御装置
Bosetti et al. Feed-rate and trajectory optimization for CNC machine tools
WO1996035980A1 (fr) Procede et dispositif d'interpolation d'une surface de forme libre et appareil correspondant
US20190086897A1 (en) Software module, precision machine, method and component
JP2020077311A (ja) 数値制御装置、加工経路設定方法及びプログラム
JPWO2018042704A1 (ja) 指令値生成装置
Tang et al. Toolpath interpolation with novel corner smoothing technique
JP5715189B2 (ja) オーバライドの変化時に送り速度を円滑に変更する機能を有する数値制御装置
JP6396273B2 (ja) ワークとの干渉を避ける位置決めを行う数値制御装置
JP2013069123A (ja) コーナ部の許容内回り量による速度制御を行う数値制御装置
JP5734336B2 (ja) ワークに対する相対的工具方向の表示および入力を可能とする数値制御装置
JP6017509B2 (ja) 運転停止時に送り速度を円滑に変更する数値制御装置
JP5850963B2 (ja) 指令経路圧縮機能を有する数値制御装置
KR101743795B1 (ko) 위치제어 시스템에서 곡선보간 방법
CN112865750A (zh) 基于fir滤波器的数控系统倍率变化平滑控制方法及装置
Sencer et al. Curvature-continuous sharp corner smoothing scheme for Cartesian motion systems
JP2790643B2 (ja) 数値制御装置
US9454146B2 (en) Numerical controller enabling input of relative tool direction to workpiece
Haas Set point optimisation for machine tools

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130607

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130722

R150 Certificate of patent or registration of utility model

Ref document number: 5326015

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150