JP2013171376A - 加工曲線作成機能を有する数値制御装置 - Google Patents
加工曲線作成機能を有する数値制御装置 Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/18—Numerical 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/41—Numerical 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/4103—Digital interpolation
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/18—Numerical 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/19—Numerical 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
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/34—Director, elements to supervisory
- G05B2219/34096—Approximate, replace curve, surface with circle, linear segments, least error
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/34—Director, elements to supervisory
- G05B2219/34138—Cubic 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
【解決手段】指令読取り解析部2が加工プログラムの指令を読取り、加工曲線作成部4を起動する。加工曲線作成部4は区分曲線作成部6を起動し、加工曲線として1つの区分曲線を作成し補間用データにセットする。補間用データにセットされた区分曲線(加工曲線の一部)を補間部8で補間し補間した位置に各駆動軸(X,Y,Z軸サーボ10,12,14)を駆動する。これらの区分曲線を作成し補間データにセットすることとその補間は繰り返し連続して実行される。
【選択図】図17
Description
<1>曲線作成
1−1.指令点列の始点における始点条件、終点における終点条件が指定される場合のスプライン曲線
一般に、図1のように点列P0、P1、P2、、、Pnとそれらの点列の始点における始点条件として1次微分ベクトルP0’ 、終点における終点条件としてPn’が与えられた時、各点での1次微分ベクトルと2次微分ベクトルが連続となるような各点間の3次曲線を表す3次関数は次のようにして求められる。
しかし、この方法は、指令点列位置(P0、P1、P2、、、Pn)を全て読み込み計算を行う必要があり、指令点列が多くなると、マトリックス計算が膨大になり多くのメモリ領域と計算時間を必要とする。
P0、Pnでの2次微分ベクトルが0、つまりP0’’=0、Pn’’=0である。
P0’が指定され、Pn’’=0である。
P0’’=0としPn’が指定される。
したがって、そのような条件の場合でもほぼ同様に、Pi、Pi+1間の3次曲線の関数fi(t)(i=0,1,2,,,n−1;0≦t≦ti+1)を求めることができる。
特許文献1に開示される方式は、「始点を含む所定数の点から、一次微分ベクトルを求め、前記始点を含む所定の点の座標値、始点の端点条件及び前記一次微分ベクトルから前記始点と次の点間の3次式を求めて、前記始点と前記始点に続く点間のスプライン曲線を求め、前記始点の代わりに新しい次の点を加えて、順次点間の3次式を求めて」(請求項1)行く方式である。このことにより、全指令点列を読み込むことなく指令点列を順次読み込みながら3次スプライン曲線を作成する。この方式は、指令点列を順次読み込みながら1−1.で述べた理論的なスプライン曲線との誤差が拡大することなく実用上問題のないスプライン曲線を得る点で優れているが、次の問題点もある。
問題点:順次指令点列を読み込みながら各指令点列点列間に3次スプライン曲線を作成するため、指令点列間の間隔が微小であると、数値制御装置の3次スプライン曲線を作成し補間する能力が不足し、減速してしまうことがある。
指令点列の位置に目標曲線に対する誤差によるばらつきがあると作成される曲線もばらついてしまう。(図2参照)
特許文献2には、指令点列に対して直線近似し、近似したところに対応する点列は間引く方法が開示されている。この方法は、直線で近似するため、滑らかな形状にならない問題がある。
<3>指令点位置の修正
特許文献3には、指令点がスムーズに並ぶように許容値の範囲内で指令点位置を修正する方法が開示されている。この方法は、点列間隔が微小である点列が指令されると、処理能力が不足し、減速することがある。指令点位置を修正する方法は、前後数点(例えば5点)から近似用曲線を作成しその曲線に向かって指令点位置を修正するので、図3のようにその近似曲線作成対象の指令点列の位置が目標曲線に対して同じような誤差を持っていると誤差の影響を受けて目標曲線に近づく修正がなされない。図3では、作成される各曲線の矢印先端が指令点列に対して修正した位置である。
請求項2に係る発明は、前記区分曲線作成部は、前記指令点列の始点から始まる区分内における前記指令点列である区分指令点列に対して、該区分指令点列の終点を区分終点とし、前記始点、前記始点に対する条件である始点条件、前記区分終点および前記区分終点後の所定点数だけの指令点列にもとづいて前記始点および前記区分終点での前記加工曲線の1次微分ベクトルとして区分始点ベクトルおよび区分終点ベクトルを求め、前記始点、前記区分始点ベクトル、前記区分終点および前記区分終点ベクトルから前記区分曲線を作成するとともに、前記区分指令点列からの距離が予め設定された許容値内でありかつ前記始点と前記区分終点との間にできるだけ多くの指令点列を含むように第1区分曲線を作成し、該第1区分曲線作成後、前記指令点列のうち前記区分終点以降の区分内における区分指令点列に対して、当該区分の前の区分終点を新たな区分始点、当該区分の前の区分終点ベクトルを新たな区分始点ベクトル、該区分指令点列の終点を新たな区分終点とし、前記新たな区分始点、前記新たな区分始点ベクトル、前記新たな区分終点および前記新たな区分終点後の所定点数だけの指令点列にもとづいて前記区分終点での前記加工曲線の1次微分ベクトルとして新たな区分終点ベクトルを求め、前記新たな区分始点、前記新たな区分始点ベクトル、前記新たな区分終点、前記新たな区分終点ベクトルから前記区分曲線を作成するとともに、前記区分指令点列からの距離が予め設定された許容値内でありかつ前記区分始点と前記区分終点との間にできるだけ多くの指令点列を含むように前記区分曲線を作成することを特徴とする請求項1に記載の加工曲線作成機能を有する数値制御装置である。
請求項4に係る発明は、前記始点条件は、前記指令点列のうち始点での前記加工曲線の2次微分ベクトルを0とすることを特徴とする請求項1乃至請求項2の何れか一つに記載の加工曲線作成機能を有する数値制御装置である。
請求項5に係る発明は、前記区分始点と前記区分終点との間にできるだけ多くの指令点列を含むとは、スキップ数nsを増加または減少しながら後述する数13式が全て成立する最も大きなnsを特定することを特徴とする請求項1乃至請求項4の何れか1つに記載の加工曲線作成機能を有する数値制御装置である。
請求項6に係る発明は、前記指令点列は加工プログラムにおいて指令される指令点の点列である、または前記指令点列は加工プログラムにおいて指令される指令点の点列に対して平滑化を行った点列であることを特徴とする請求項1乃至請求項5の何れか1つに記載の加工曲線作成機能を有する数値制御装置である。
本発明においては、できるだけ多くの指令点列に対応した1個の3次曲線(区分曲線)を作成する。複数のそれらの3次曲線を接続して加工用の曲線である加工曲線を作成しその加工曲線を補間し補間した位置に前記駆動軸を駆動することによって加工を行なう。各3次曲線間は、各3次曲線を表す3次関数の2次微分ベクトルが連続するように接続させる。なお、ここの連続性は理論上の連続性ではなく実用上の連続性である。そのようにして作成した3次曲線群(スプライン曲線)として加工曲線を作成する。そのような加工曲線の作成を、指令点列を全て読み込むことなく順次指令点列を読み込みながら行っていく。(図4)
(1)できるだけ多くの指令点列に対応した3次曲線(区分曲線)を作成することによって、指令点列間の間隔が微小であっても、数値制御装置の加工曲線を作成し補間する能力が不足することによって減速してしまうことがないようにする。
(2)指令点列が目標曲線に対して誤差によるばらつきを持っていてもより目標曲線に近い加工曲線を作成する。
(3)この加工曲線は、指令点列の各点において1次微分ベクトルは連続でありかつ2次微分ベクトルも実用上連続とする。また、この加工曲線は、指令点列からの誤差は許容値内とする。そのことによって、指令点列からの誤差が許容値内でありかつ滑らかな加工形状、および各駆動軸の加速度が連続である滑らかな加工動作を得る。
(4)指令点列を全て読み込むことなく順次指令点列を読み込みながら作成していくことによって、加工曲線の作成を多くのメモリや計算時間を必要とすることなく実現する。
<概要>
本発明の重要部である区分曲線作成部の処理の概要について説明する。つまり、P0が始点、Pnが終点である指令点列P0,P1,P2,,,Pnの中のある点Ps(k)とその点における1次微分ベクトルPs(k)’がすでに求められている場合、Ps(k)を始点とする3次曲線である区分曲線用の3次関数を作成する方法の概要について説明する。指令点列P0,P1,P2,,,Pnの添え字は指令点の番号である。
[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次微分ベクトルの連続性は良くなる。
[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’を求めることができる。
なお、このfk(t)は従来技術1−1.で記載したfi(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)作成の処理(図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 について終点を越えて用意されていない時の計算を行うことができる。
[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とする。そして、終了する。
第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の実施形態および第2の実施形態では、指令点列として加工プログラムにおいて指令される指令点の点列としたが、第3の実施形態では、前記指令点列は加工プログラムにおいて指令される指令点の点列に対して平滑化を行った点列とする。従来技術として様々な平滑化の技術があり、それらの平滑化の技術を組合わせるものである。
例えば、簡単な平滑化の方法は次のような方法である。加工プログラムにおいて指令される指令点列の始点P0および終点Pnを除く元の点列P1、、、Pn-1に対して数21式のようにPiおよび前後2点(Pi-1、Pi+1)を平均する平滑化を行い、新たに指令点列P0、P1、、、Pn-1、Pnとする。
次に図17を用いて本発明の第1の実施形態での数値制御装置を説明する。少なくとも直線2軸を含む複数の駆動軸を有する工作機械に対して加工プログラムから得られる指令点列にもとづいて加工用の曲線である加工曲線を作成し該加工曲線を補間し補間した位置に前記駆動軸を駆動することによって加工を行う数値制御装置は、指令読取り解析部2で加工プログラムの指令を読取るとともに解析して補間用データを作成し、補間部8で補間用データにもとづいて指令速度に従って補間を行い各軸の移動すべき位置を求め、その位置へ各軸のサーボを駆動する。
(1)数値制御装置は、前述のブロック図においても述べたように指令読取り解析部で補間用データを作成し補間部で補間用データにもとづいて補間を行う。間隔の微小な指令点列が指令されると、補間用データ作成とその補間を頻繁に繰り返す必要が生じ、その結果、加工曲線を作成し補間する能力が不足することによって減速してしまうことが発生する。本発明によって、できるだけ多くの指令点列に対応した3次曲線(区分曲線)を作成することができる、つまり多くの指令点列に対応した補間用データを作成できるため、補間用データ作成とその補間を頻繁に繰り返す必要が生じる可能性が小さくなる。そのことにより、指令点列間の間隔が微小であっても、数値制御装置の加工曲線を作成し補間する能力が不足することによって減速してしまうことを少なくできる。
(2)本発明によって、できるだけ多くの指令点列に対応した3次曲線(区分曲線)を作成することができるため、指令点列が目標曲線に達して誤差によるばらつきを持っていてもそれらの誤差の影響を小さくし、より目標極点に近い加工曲線を作成することができる。
4 加工曲線作成部
6 区分曲線作成部
8 補間部
10 X軸サーボ
12 Y軸サーボ
14 Z軸サーボ
<1>曲線作成
1−1.指令点列の始点における始点条件、終点における終点条件が指定される場合のスプライン曲線
一般に、図1のように点列P0、P1、P2、、、Pnとそれらの点列の始点における始点条件として1次微分ベクトルP0’ 、終点における終点条件としてPn’が与えられた時、各点での1次微分ベクトルと2次微分ベクトルが連続となるような各点間の3次曲線を表す3次関数は次のようにして求められる。
しかし、この方法は、指令点列位置(P0、P1、P2、、、Pn)を全て読み込み計算を行う必要があり、その指令点列を構成する点の数が多くなると、マトリックス計算が膨大になり多くのメモリ領域と計算時間を必要とする。
P0、Pnでの2次微分ベクトルが0、つまりP0’’=0、Pn’’=0である。
P0’が指定され、Pn’’=0である。
P0’’=0としPn’が指定される。
したがって、そのような条件の場合でもほぼ同様に、Pi、Pi+1間の3次曲線の関数fi(t)(i=0,1,2,,,n−1;0≦t≦ti+1)を求めることができる。
特許文献1に開示される方式は、「始点を含む所定数の点から、一次微分ベクトルを求め、前記始点を含む所定の点の座標値、始点の端点条件及び前記一次微分ベクトルから前記始点と次の点間の3次式を求めて、前記始点と前記始点に続く点間のスプライン曲線を求め、前記始点の代わりに新しい次の点を加えて、順次点間の3次式を求めて」(請求項1)行く方式である。この方式により、指令点列を構成するすべての点を読み込むことなく3次スプライン曲線を作成する。この方式は、指令点列を構成する点を順次読み込みながら1−1.で述べた理論的なスプライン曲線との誤差が拡大することなく実用上問題のないスプライン曲線を得る点で優れているが、次の問題点もある。
(a)指令点列を構成する点を読み込みながら順次点間に3次スプライン曲線を作成するため、点間の間隔が微小であると、数値制御装置の3次スプライン曲線を作成し補間する能力が不足し、減速してしまうことがある。
(b)指令点列の位置に目標曲線に対する誤差によるばらつきがあると作成される曲線もばらついてしまう。(図2参照)
特許文献2には、指令点列に対して直線近似し、近似したところに対応する点は間引く方法が開示されている。この方法は、直線で近似するため、滑らかな形状にならない問題がある。
<3>指令点位置の修正
特許文献3には、指令点がスムーズに並ぶように許容値の範囲内で指令点位置を修正する方法が開示されている。この方法は、指令点間の間隔が微小である点列が指令されると、処理能力が不足し、減速することがある。指令点位置を修正する方法は、前後数点(例えば5点)から近似用曲線を作成しその曲線に向かって指令点位置を修正するので、図3のようにその近似曲線作成対象の指令点列の位置が目標曲線に対して同じような誤差を持っていると誤差の影響を受けて目標曲線に近づく修正がなされない。図3では、作成される各曲線の矢印先端が指令点列に対して修正した位置である。
請求項2に係る発明は、前記区分曲線作成部は、前記指令点列の始点から始まる区分内における前記指令点列である区分指令点列に対して、該区分指令点列の終点を区分終点とし、前記始点、前記始点に対する条件である始点条件、前記区分終点および前記区分終点後の所定点数だけの指令点列にもとづいて前記始点および前記区分終点での前記加工曲線の1次微分ベクトルとして区分始点ベクトルおよび区分終点ベクトルを求め、前記始点、前記区分始点ベクトル、前記区分終点および前記区分終点ベクトルから前記区分曲線を作成するとともに、前記区分指令点列からの距離が予め設定された許容値内でありかつ前記始点と前記区分終点との間にできるだけ多くの指令点を含むように第1区分曲線を作成し、該第1区分曲線作成後、前記指令点列のうち前記区分終点以降の区分内における区分指令点列に対して、当該区分の前の区分終点を新たな区分始点、当該区分の前の区分終点ベクトルを新たな区分始点ベクトル、該区分指令点列の終点を新たな区分終点とし、前記新たな区分始点、前記新たな区分始点ベクトル、前記新たな区分終点および前記新たな区分終点後の所定点数だけの指令点列にもとづいて前記区分終点での前記加工曲線の1次微分ベクトルとして新たな区分終点ベクトルを求め、前記新たな区分始点、前記新たな区分始点ベクトル、前記新たな区分終点、前記新たな区分終点ベクトルから前記区分曲線を作成するとともに、前記区分指令点列からの距離が予め設定された許容値内でありかつ前記区分始点と前記区分終点との間にできるだけ多くの指令点を含むように前記区分曲線を作成することを特徴とする請求項1に記載の加工曲線作成機能を有する数値制御装置である。
請求項4に係る発明は、前記始点条件は、前記指令点列のうち始点での前記加工曲線の2次微分ベクトルを0とすることを特徴とする請求項1乃至請求項2の何れか一つに記載の加工曲線作成機能を有する数値制御装置である。
請求項5に係る発明は、前記区分始点と前記区分終点との間にできるだけ多くの指令点を含むとは、スキップ数nsを増加または減少しながら後述する数13式が全て成立する最も大きなnsを特定することを特徴とする請求項1乃至請求項4の何れか1つに記載の加工曲線作成機能を有する数値制御装置である。
請求項6に係る発明は、前記指令点列は加工プログラムにおいて指令される指令点の点列である、または前記指令点列は加工プログラムにおいて指令される指令点の点列に対して平滑化を行った点列であることを特徴とする請求項1乃至請求項5の何れか1つに記載の加工曲線作成機能を有する数値制御装置である。
本発明においては、できるだけ多くの指令点を含む点列に対応した1個の3次曲線(区分曲線)を作成する。複数のそれらの3次曲線を接続して加工用の曲線である加工曲線を作成しその加工曲線を補間し補間した位置に前記駆動軸を駆動することによって加工を行なう。各3次曲線間は、各3次曲線を表す3次関数の2次微分ベクトルが連続するように接続させる。なお、ここの連続性は理論上の連続性ではなく実用上の連続性である。そのようにして作成した3次曲線群(スプライン曲線)として加工曲線を作成する。そのような加工曲線の作成を、指令点列を構成する点を全て読み込むことなく順次行っていく。(図4)
(1)できるだけ多くの指令点に対応した3次曲線(区分曲線)を作成することによって、指令点間の間隔が微小であっても、数値制御装置の加工曲線を作成し補間する能力が不足することによって減速してしまうことがないようにする。
(2)指令点列が目標曲線に対して誤差によるばらつきを持っていてもより目標曲線に近い加工曲線を作成する。
(3)この加工曲線は、指令点列を構成する各点において1次微分ベクトルは連続でありかつ2次微分ベクトルも実用上連続とする。また、この加工曲線は、指令点列からの誤差は許容値内とする。そのことによって、指令点列からの誤差が許容値内でありかつ滑らかな加工形状、および各駆動軸の加速度が連続である滑らかな加工動作を得る。
(4)指令点列を構成する点の全て読み込むことなく指令点列を作成していくことによって、加工曲線の作成を多くのメモリや計算時間を必要とすることなく実現する。
<概要>
本発明の重要部である区分曲線作成部の処理の概要について説明する。つまり、P0が始点、Pnが終点である指令点列P0,P1,P2,,,Pnの中のある点Ps(k)とその点における1次微分ベクトルPs(k)’がすでに求められている場合、Ps(k)を始点とする3次曲線である区分曲線用の3次関数を作成する方法の概要について説明する。指令点列P0,P1,P2,,,Pnの添え字は指令点の番号である。
[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次微分ベクトルの連続性は良くなる。
[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’を求めることができる。
なお、このfk(t)は従来技術1−1.で記載したfi(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)作成の処理(図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 について終点を越えて用意されていない時の計算を行うことができる。
[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とする。そして、終了する。
第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の実施形態および第2の実施形態では、指令点列として加工プログラムにおいて指令される指令点の点列としたが、第3の実施形態では、前記指令点列は加工プログラムにおいて指令される指令点の点列に対して平滑化を行った点列とする。従来技術として様々な平滑化の技術があり、それらの平滑化の技術を組合わせるものである。
例えば、簡単な平滑化の方法は次のような方法である。加工プログラムにおいて指令される指令点列の始点P0および終点Pnを除く元の点列P1、、、Pn-1に対して数21式のようにPiおよび前後2点(Pi-1、Pi+1)を平均する平滑化を行い、新たに指令点列P0、P1、、、Pn-1、Pnとする。
次に図17を用いて本発明の第1の実施形態での数値制御装置を説明する。少なくとも直線2軸を含む複数の駆動軸を有する工作機械に対して加工プログラムから得られる指令点列にもとづいて加工用の曲線である加工曲線を作成し該加工曲線を補間し補間した位置に前記駆動軸を駆動することによって加工を行う数値制御装置は、指令読取り解析部2で加工プログラムの指令を読取るとともに解析して補間用データを作成し、補間部8で補間用データにもとづいて指令速度に従って補間を行い各軸の移動すべき位置を求め、その位置へ各軸のサーボを駆動する。
(1)数値制御装置は、前述のブロック図においても述べたように指令読取り解析部で補間用データを作成し補間部で補間用データにもとづいて補間を行う。間隔の微小な指令点が指令されると、補間用データ作成とその補間を頻繁に繰り返す必要が生じ、その結果、加工曲線を作成し補間する能力が不足することによって減速してしまうことが発生する。本発明によって、できるだけ多くの指令点に対応した3次曲線(区分曲線)を作成することができる、つまり多くの指令点を含む点列に対応した補間用データを作成できるため、補間用データ作成とその補間を頻繁に繰り返す必要が生じる可能性が小さくなる。そのことにより、指令点間の間隔が微小であっても、数値制御装置の加工曲線を作成し補間する能力が不足することによって減速してしまうことを少なくできる。
(2)本発明によって、できるだけ多くの指令点を含む点列に対応した3次曲線(区分曲線)を作成することができるため、指令点列が目標曲線に達して誤差によるばらつきを持っていてもそれらの誤差の影響を小さくし、より目標極点に近い加工曲線を作成することができる。
4 加工曲線作成部
6 区分曲線作成部
8 補間部
10 X軸サーボ
12 Y軸サーボ
14 Z軸サーボ
請求項2に係る発明は、前記区分曲線作成部は、前記指令点列の始点から始まる区分内における前記指令点列である区分指令点列に対して、該区分指令点列の終点を区分終点とし、前記始点、前記始点に対する条件である始点条件、前記区分終点および前記区分終点後の所定点数だけの指令点列にもとづいて前記始点および前記区分終点での前記加工曲線の1次微分ベクトルとして区分始点ベクトルおよび区分終点ベクトルを求め、前記始点、前記区分始点ベクトル、前記区分終点および前記区分終点ベクトルから前記区分曲線を作成するとともに、前記区分指令点列からの距離が予め設定された許容値内でありかつ前記始点と前記区分終点との間にできるだけ多くの指令点を含むように第1区分曲線を作成し、該第1区分曲線作成後、前記指令点列のうち前記区分終点以降の区分内における区分指令点列に対して、当該区分の前の区分終点を新たな区分始点、当該区分の前の区分終点ベクトルを新たな区分始点ベクトル、該区分指令点列の終点を新たな区分終点とし、前記新たな区分始点、前記新たな区分始点ベクトル、前記新たな区分終点および前記新たな区分終点後の所定点数だけの指令点列にもとづいて前記区分終点での前記加工曲線の1次微分ベクトルとして新たな区分終点ベクトルを求め、前記新たな区分始点、前記新たな区分始点ベクトル、前記新たな区分終点、前記新たな区分終点ベクトルから前記区分曲線を作成するとともに、前記区分指令点列からの距離が予め設定された許容値内でありかつ前記区分始点と前記区分終点との間にできるだけ多くの指令点を含むように前記区分曲線を作成することを特徴とする請求項1に記載の加工曲線作成機能を有する数値制御装置である。
Claims (6)
- 少なくとも直線2軸を含む複数の駆動軸を有する工作機械に対して加工プログラムから得られる指令点列にもとづいて加工用の曲線である加工曲線を作成し該加工曲線を補間し補間した位置に前記駆動軸を駆動することによって加工を行う数値制御装置において、
前記指令点列を複数の区分に分割し、該区分ごとの区分指令点列に対応する曲線である区分曲線の作成において、前記区分指令点列からの距離が予め設定された許容値内であり、かつ前記区分指令点列の始点である区分始点と前記区分指令点列の終点である区分終点との間にできるだけ多くの指令点列を含むように前記区分曲線を作成する区分曲線作成部と、
前記区分曲線作成部の処理を前記指令点列の始点から終点まで繰り返し実行して前記加工曲線を作成する加工曲線作成部を有し、
前記加工曲線を補間し補間した位置に移動するよう前記駆動軸を駆動することを特徴とする加工曲線作成機能を有する数値制御装置。 - 前記区分曲線作成部は、前記指令点列の始点から始まる区分内における前記指令点列である区分指令点列に対して、該区分指令点列の終点を区分終点とし、前記始点、前記始点に対する条件である始点条件、前記区分終点および前記区分終点後の所定点数だけの指令点列にもとづいて前記始点および前記区分終点での前記加工曲線の1次微分ベクトルとして区分始点ベクトルおよび区分終点ベクトルを求め、前記始点、前記区分始点ベクトル、前記区分終点および前記区分終点ベクトルから前記区分曲線を作成するとともに、前記区分指令点列からの距離が予め設定された許容値内でありかつ前記始点と前記区分終点との間にできるだけ多くの指令点列を含むように第1区分曲線を作成し、
該第1区分曲線作成後、前記指令点列のうち前記区分終点以降の区分内における区分指令点列に対して、当該区分の前の区分終点を新たな区分始点、当該区分の前の区分終点ベクトルを新たな区分始点ベクトル、該区分指令点列の終点を新たな区分終点とし、前記新たな区分始点、前記新たな区分始点ベクトル、前記新たな区分終点および前記新たな区分終点後の所定点数だけの指令点列にもとづいて前記区分終点での前記加工曲線の1次微分ベクトルとして新たな区分終点ベクトルを求め、前記新たな区分始点、前記新たな区分始点ベクトル、前記新たな区分終点、前記新たな区分終点ベクトルから前記区分曲線を作成するとともに、前記区分指令点列からの距離が予め設定された許容値内でありかつ前記区分始点と前記区分終点との間にできるだけ多くの指令点列を含むように前記区分曲線を作成することを特徴とする請求項1に記載の加工曲線作成機能を有する数値制御装置。 - 前記始点条件は、前記指令点列のうち始点、第2点および第3点を円弧で接続した時の始点での接線方向を前記加工曲線の1次微分ベクトルとする、前記指令点列のうち始点、第2点および第3点を2次曲線で接続した時の始点での接線方向を前記加工曲線の1次微分ベクトルとする、または前記指令点列のうち始点および第2点を直線で接続した時の始点での接線方向を前記加工曲線の1次微分ベクトルとすることを特徴とする請求項1乃至請求項2の何れか一つに記載の加工曲線作成機能を有する数値制御装置。
- 前記始点条件は、前記指令点列のうち始点での前記加工曲線の2次微分ベクトルを0とすることを特徴とする請求項1乃至請求項2の何れか一つに記載の加工曲線作成機能を有する数値制御装置。
- 前記指令点列は加工プログラムにおいて指令される指令点の点列である、または前記指令点列は加工プログラムにおいて指令される指令点の点列に対して平滑化を行った点列であることを特徴とする請求項1乃至請求項5の何れか1つに記載の加工曲線作成機能を有する数値制御装置。
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)
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)
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01217607A (ja) * | 1988-02-26 | 1989-08-31 | Fanuc Ltd | スプライン曲線生成方法 |
Family Cites Families (15)
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 |
-
2012
- 2012-02-20 JP JP2012033897A patent/JP5326015B2/ja active Active
-
2013
- 2013-01-09 US US13/737,017 patent/US9268323B2/en active Active
- 2013-02-13 DE DE102013002516.8A patent/DE102013002516B4/de active Active
- 2013-02-20 CN CN201310054792.6A patent/CN103257614B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01217607A (ja) * | 1988-02-26 | 1989-08-31 | Fanuc Ltd | スプライン曲線生成方法 |
Cited By (25)
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 |