[go: up one dir, main page]

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

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

Info

Publication number
JP5326015B2
JP5326015B2 JP2012033897A JP2012033897A JP5326015B2 JP 5326015 B2 JP5326015 B2 JP 5326015B2 JP 2012033897 A JP2012033897 A JP 2012033897A JP 2012033897 A JP2012033897 A JP 2012033897A JP 5326015 B2 JP5326015 B2 JP 5326015B2
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.)
Expired - Fee Related
Application number
JP2012033897A
Other languages
English (en)
Other versions
JP2013171376A (ja
Inventor
俊明 大槻
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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
Expired - Fee Related 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/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
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/41Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by interpolation, e.g. the computation of intermediate points between programmed end points to define the path to be followed and the rate of travel along that path
    • G05B19/4103Digital interpolation
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/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)

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 0005326015
したがって、数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 0005326015
Figure 0005326015
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 0005326015
i(t)の求め方は次のようになる。fi(t)を数4式のように表した場合、fi’(t)は数5式のようになるので、数6式が成り立ち、数6式を解くことによってAfi,Bfi,Cfi,Dfiを求めれば関数fi(t)を求めることができる。
Figure 0005326015
Figure 0005326015
このようにして求められる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 0005326015
Figure 0005326015
ここで、t1〜t4は数8−2式のとおりである。
Figure 0005326015
なお、数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 0005326015
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 0005326015
Figure 0005326015
[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 0005326015
[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 0005326015
[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 0005326015
[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 0005326015
ここで、t1、t2は、数15−2式のとおりである。
Figure 0005326015
<s(k)+ns+2=nの場合(Ps(k)+ns+2が終点Pnでありそれを越えて指令点列は用意されていない場合)>(図14)
Figure 0005326015
ここで、t1、t2、t3は数16−2式のとおりである。
Figure 0005326015
[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 0005326015
Figure 0005326015
ここで、t1〜t4は数18−2式のとおりである。
Figure 0005326015
第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 0005326015
Figure 0005326015
ここで、t1〜t4は数20−2式のとおりである。
Figure 0005326015
その他は第1の実施形態と同様の処理なので説明を省略する。
次に、本発明の第3の実施形態を説明する。
第1の実施形態および第2の実施形態では、指令点列として加工プログラムにおいて指令される指令点の点列としたが、第3の実施形態では、前記指令点列は加工プログラムにおいて指令される指令点の点列に対して平滑化を行った点列とする。従来技術として様々な平滑化の技術があり、それらの平滑化の技術を組合わせるものである。
例えば、簡単な平滑化の方法は次のような方法である。加工プログラムにおいて指令される指令点列の始点P0および終点Pnを除く元の点列P1、、、Pn-1に対して数21式のようにPiおよび前後2点(Pi-1、Pi+1)を平均する平滑化を行い、新たに指令点列P0、P1、、、Pn-1、Pnとする。
Figure 0005326015
あるいは、次のような他の簡単な平滑化の方法もある。加工プログラムにおいて指令される元の点列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 0005326015
これらの簡単な平滑化の方法以外にも、従来技術として知られている様々な平滑化の方法と組合わせることができる。
<ブロック図>
次に図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軸サーボ

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 0005326015
    が全て成立する最も大きなnsを特定することを特徴とする請求項1乃至請求項4の何れか1つに記載の加工曲線作成機能を有する数値制御装置。
  6. 前記指令点列は加工プログラムにおいて指令される指令点の点列である、または前記指令点列は加工プログラムにおいて指令される指令点の点列に対して平滑化を行った点列であることを特徴とする請求項1乃至請求項5の何れか1つに記載の加工曲線作成機能を有する数値制御装置。
JP2012033897A 2012-02-20 2012-02-20 加工曲線作成機能を有する数値制御装置 Expired - Fee Related 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 JP2013171376A (ja) 2013-09-02
JP5326015B2 true JP5326015B2 (ja) 2013-10-30

Family

ID=48915303

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012033897A Expired - Fee Related 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)

Families Citing this family (30)

* 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
JP5845228B2 (ja) * 2013-10-23 2016-01-20 ファナック株式会社 工具経路曲線化装置
JP2015100867A (ja) * 2013-11-22 2015-06-04 トヨタ自動車株式会社 ロボットの3次元軌道生成方法
US9513623B2 (en) * 2014-01-21 2016-12-06 Mitsubishi Electric Research Laboratories, Inc. Method for generating trajectory for numerical control process
JP5850963B2 (ja) * 2014-02-13 2016-02-03 ファナック株式会社 指令経路圧縮機能を有する数値制御装置
JP6068414B2 (ja) 2014-10-23 2017-01-25 ファナック株式会社 曲率の小さな円弧・曲面の形状を指定可能な数値制御装置
JP5926358B1 (ja) 2014-11-28 2016-05-25 ファナック株式会社 形状誤差を保証する工具経路の曲線化方法および曲線化装置
DE102015202017A1 (de) * 2015-02-05 2016-08-11 Kuka Roboter Gmbh Manipulatorsystem zur koordinierten Steuerung von zumindest zwei Manipulatoren
WO2016148288A1 (ja) 2015-03-19 2016-09-22 クラレノリタケデンタル株式会社 被加工ユニット及びその製造方法
CN104898554A (zh) * 2015-04-30 2015-09-09 柳州宏开汽车科技有限公司 一种基于离散刀位点的复合刀具路径生成方法
JP6267156B2 (ja) * 2015-05-29 2018-01-24 ファナック株式会社 微小ブロックのコーナ制御を行うワイヤカット放電加工機用数値制御装置
US10459425B2 (en) * 2015-06-11 2019-10-29 Mitsubishi Electric Corporation Numerical control device
CN105425725B (zh) * 2015-12-09 2017-10-31 华中科技大学 一种离散刀具轨迹的曲线拟合方法
JP6444923B2 (ja) * 2016-03-30 2018-12-26 ファナック株式会社 数値制御装置
JP6386511B2 (ja) * 2016-10-28 2018-09-05 ファナック株式会社 工具経路生成装置、工具経路生成方法及び工具経路生成プログラム
JP6289765B1 (ja) * 2016-12-27 2018-03-07 三菱電機株式会社 数値制御装置、プログラム変換装置、数値制御方法およびプログラム変換方法
JP6816704B2 (ja) * 2017-11-09 2021-01-20 オムロン株式会社 指令値補間装置及びサーボドライバ
JP2019156040A (ja) * 2018-03-09 2019-09-19 日立オートモティブシステムズ株式会社 車両搭載機器の制御装置
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 ファナック株式会社 数値制御装置、数値制御方法及び数値制御プログラム
DE102018117245B3 (de) * 2018-07-17 2019-10-24 Lti Motion Gmbh Verfahren zum Ermitteln einer Grobbahn aus einer vorgegebenen Kontur
DE102018117244B3 (de) * 2018-07-17 2019-10-31 Lti Motion Gmbh Verfahren zum Ermitteln einer Grobbahn aus einer vorgegebenen Kontur
CN109032077B (zh) * 2018-09-05 2022-03-18 沈阳建筑大学 一种基于刀具姿态控制的五轴数控加工指令点插补方法
JP6823037B2 (ja) * 2018-11-09 2021-01-27 ファナック株式会社 数値制御装置、加工経路設定方法及びプログラム
CN111880484B (zh) * 2020-07-15 2021-09-21 中国科学院大学 一种数控机床加工前瞻处理方法及系统
CN111913441B (zh) * 2020-08-06 2021-11-09 南京工程学院 一种基于轨迹模式的拐角平滑过渡方法
CN114872035B (zh) * 2020-10-16 2023-08-22 深圳市华成工业控制股份有限公司 运动速度和路径的规划方法及减速控制和数据更新的方法
CN112269356B (zh) * 2020-10-27 2022-03-18 南京溧航仿生产业研究院有限公司 一种机器人nurbs轨迹插补方法
WO2022138843A1 (ja) 2020-12-25 2022-06-30 ファナック株式会社 数値制御装置
CN113001595B (zh) * 2021-02-04 2022-10-11 阳江市美珑美利刀具有限公司 柳叶型刀刃的刀具制备方法

Family Cites Families (16)

* 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
JPH01217607A (ja) * 1988-02-26 1989-08-31 Fanuc Ltd スプライン曲線生成方法
JPH02113305A (ja) 1988-10-24 1990-04-25 Fanuc Ltd スプライン補間方法
JP2935706B2 (ja) * 1988-12-07 1999-08-16 ファナック株式会社 加工プログラム修正方法
DE58909509D1 (de) 1989-02-28 1996-01-04 Siemens Ag 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 加工装置の制御パラメータ設定装置及び制御パラメータ設定方法
JP2007293478A (ja) 2006-04-24 2007-11-08 Fanuc Ltd 曲線補間方法
JP4168060B2 (ja) * 2006-04-24 2008-10-22 ファナック株式会社 円錐状の加工面の加工を可能にした数値制御装置
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

Also Published As

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

Similar Documents

Publication Publication Date Title
JP5326015B2 (ja) 加工曲線作成機能を有する数値制御装置
CN103092131B (zh) 进行基于指令路径速度条件的速度控制的数值控制装置
JP5653972B2 (ja) コーナ複数曲線挿入部を有する数値制御装置
JP6267156B2 (ja) 微小ブロックのコーナ制御を行うワイヤカット放電加工機用数値制御装置
CN108227630B (zh) 一种采用时间参数多项式插补的自由曲面数控加工方法
JP5149421B2 (ja) 加工時間予測部および加工誤差予測部を有する数値制御装置
JP5192578B2 (ja) 加工プログラムの移動経路を修正する機能を備えた数値制御装置
CN106054817A (zh) 局部最优小线段路径解析光顺的实时前瞻插补方法及系统
WO1996035980A1 (en) Method and device for interpolating free-form surface
JP6386511B2 (ja) 工具経路生成装置、工具経路生成方法及び工具経路生成プログラム
CN112865750A (zh) 基于fir滤波器的数控系统倍率变化平滑控制方法及装置
US20190086898A1 (en) Software module, precision machine, method and component
JP5850963B2 (ja) 指令経路圧縮機能を有する数値制御装置
JP5715189B2 (ja) オーバライドの変化時に送り速度を円滑に変更する機能を有する数値制御装置
JP6396273B2 (ja) ワークとの干渉を避ける位置決めを行う数値制御装置
JP2013069123A (ja) コーナ部の許容内回り量による速度制御を行う数値制御装置
JP2020077311A (ja) 数値制御装置、加工経路設定方法及びプログラム
JP5734336B2 (ja) ワークに対する相対的工具方向の表示および入力を可能とする数値制御装置
KR101743795B1 (ko) 위치제어 시스템에서 곡선보간 방법
JP2790643B2 (ja) 数値制御装置
Xi et al. Extended unit arc length increment interpolation for generalized NURBS curves in multi-axis EDM
CN115205457B (zh) 轨迹平滑方法、数控机床及计算机可读存储介质
Haas Set point optimisation for machine tools
US9454146B2 (en) Numerical controller enabling input of relative tool direction to workpiece
Moetakef Imani et al. Real-time PH-based interpolation algorithm for high speed CNC machining

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

LAPS Cancellation because of no payment of annual fees