JP5983181B2 - 数値制御装置と制御方法 - Google Patents

数値制御装置と制御方法 Download PDF

Info

Publication number
JP5983181B2
JP5983181B2 JP2012183719A JP2012183719A JP5983181B2 JP 5983181 B2 JP5983181 B2 JP 5983181B2 JP 2012183719 A JP2012183719 A JP 2012183719A JP 2012183719 A JP2012183719 A JP 2012183719A JP 5983181 B2 JP5983181 B2 JP 5983181B2
Authority
JP
Japan
Prior art keywords
line segment
command
segment length
command point
cpu
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.)
Active
Application number
JP2012183719A
Other languages
English (en)
Other versions
JP2014041499A (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.)
Brother Industries Ltd
Original Assignee
Brother Industries Ltd
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 Brother Industries Ltd filed Critical Brother Industries Ltd
Priority to JP2012183719A priority Critical patent/JP5983181B2/ja
Publication of JP2014041499A publication Critical patent/JP2014041499A/ja
Application granted granted Critical
Publication of JP5983181B2 publication Critical patent/JP5983181B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Numerical Control (AREA)

Description

本発明は数値制御装置と制御方法に関する。
数値制御装置はNCプログラムを使用し、モータ制御でテーブルと主軸等を移動回転しワークを加工する。数値制御装置は滑らかな曲線又は曲面を加工する場合、CAM装置を用いる。CAM装置は複数の指令点を結んだ複数の微小ブロック(微小線分)を作成する。数値制御装置はCAM装置が作成した複数の指令点をスプライン曲線等で近似し曲線補間を行う。CAM装置は微小ブロックのデータが所定公差に収まるように微小線分を作成する。しかし、CAM装置が作成する指令点は所定公差の幅付近に位置する傾向があり、スプライン曲線はその指令点付近を通る傾向にあるので、期待した経路からずれた経路を作成してしまう。
特許文献1が開示する曲線補間方法は、微小ブロック間に内挿点を挿入し、指令点と内挿点に基づき、最小二乗法を用いて近似曲線を求める。しかし、各指令点と隣接する内挿点との間の距離、及び内挿点同士の間の距離は短くなる。指令点と内挿点の座標データ量は大幅に増加する。CPUの処理負荷は増大し処理時間がかかるという問題があった。特許文献2が開示する数値制御装置は、複数の指令点の指令点座標データから移動平均値を演算し、演算した移動平均値の集合である平均化指令点座標データを各指令点の指令点座標データに置換する。
特開2004−78516号公報 特開2011−204096号公報
特許文献2の数値制御装置では、加工形状が円に近い場合、近似曲線はNCプログラムの指令経路よりも内側にずれる場合があった。複数の指令点から最小二乗法で近似曲線を求めた場合、線分長が不揃いであると、経路に乱れを生じることがあった。
本発明の目的は、線文長が不揃いの経路であっても、滑らかな経路を作成できる数値制御装置と制御方法を提供することである。
本発明の請求項1に係る発明の数値制御装置は、工作機械の制御位置座標を表す複数の指令点の指令点座標データを結んだ経路を、最小二乗法を用いて近似した二次曲線を用いて平滑化する平滑化処理手段を有する数値制御装置において、前記平滑化処理手段は、各指令点のうち対象となる対象点の前後の線分長を夫々演算する前後線分長演算手段と、前記前後線分長演算手段が演算した前記前後の線分長のうち一方の線分長に所定倍を乗じて拡大線分長を算出する拡大線分長算出手段と、前記複数の指令点のうち、前記対象点を含む所定範囲内に含まれる各指令点の前記指令点座標データ、及び前記各指令点間の線分長の情報を含む指令点情報を演算する指令点情報演算手段と、前記指令点情報演算手段が演算した前記指令点情報のうち、前記拡大線分長算出手段が算出した前記拡大線分長よりも長い前記線分長を、前記拡大線分長に置換する置換手段と、前記置換手段が置換した前記拡大線分長に基づき、前記二次曲線を決定する為に用いられる前記指令点情報の前記指令点座標データを前記経路上において修正する指令点情報修正手段と、前記指令点情報修正手段が修正した前記指令点情報が含む前記指令点間を結ぶ経路を前記二次曲線に近似する近似手段と、前記近似手段が近似した前記二次曲線に基づき、前記対象点の前記指令点座標データを修正する対象点座標修正手段とを備えたことを特徴とする。故に数値制御装置は複数の指令点から最小二乗法で二次曲線を求める際に、線分長が不揃いであっても経路を滑らかにできる。
請求項2に係る発明の数値制御装置は、請求項1に記載の発明の構成に加え、前記拡大線分長算出手段は、前記前後の線分長のうち長い方の線分長に前記所定倍を乗じて前記拡大線分長を算出することを特徴とする。故に数値制御装置はより滑らかな経路を得ることができる。
請求項3に係る発明の制御方法は、工作機械の制御位置座標を表す複数の指令点の指令点座標データを結んだ経路を、最小二乗法を用いて近似した二次曲線を用いて平滑化する平滑化処理工程を有する数値制御装置の制御方法において、前記平滑化処理工程は、各指令点のうち対象となる対象点の前後の線分長を夫々演算する前後線分長演算工程と、前記前後線分長演算工程で演算した前記前後の線分長のうち一方の線分長に所定倍を乗じて拡大線分長を算出する拡大線分長算出工程と、前記複数の指令点のうち、前記対象点を含む所定範囲内に含まれる各指令点の前記指令点座標データ、及び前記各指令点間の線分長の情報を含む指令点情報を演算する指令点情報演算工程と、前記指令点情報演算工程で演算した前記指令点情報のうち、前記拡大線分長算出工程で算出した前記拡大線分長よりも長い前記線分長を、前記拡大線分長に置換する置換工程と、前記置換工程で置換した前記拡大線分長に基づき、前記二次曲線を決定する為に用いられる前記指令点情報の前記指令点座標データを前記経路上において修正する指令点情報修正工程と、前記指令点情報修正工程で修正した前記指令点情報が含む前記指令点間を結ぶ経路を前記二次曲線に近似する近似工程と、前記近似工程で近似した前記二次曲線に基づき、前記対象点の前記指令点座標データを修正する対象点座標修正工程とを備えたことを特徴とする。故に数値制御装置は制御方法を行うことによって、複数の指令点から最小二乗法で二次曲線を求める際に、線分長が不揃いであっても経路を滑らかにできる。

数値制御装置1と工作機械2の電気的構成を示すブロック図。 指令経路R1と二次曲線R2の図。 NCプログラムの一例。 メイン処理の流れ図。 平滑化処理の流れ図。 指令経路R1と対象点(k=4)を基準とした修正経路の比較図。 経路A、経路B、経路Cの比較図。 修正指令点演算処理の流れ図。
以下本発明の一実施形態を説明する。図1に示す数値制御装置1は、NCプログラムが指令する指令点を結んだ経路を平滑化し、該平滑化した経路に従い、工作機械2の軸移動を制御する。
図1を参照し、工作機械2の構成を簡単に説明する。工作機械2の左右方向、前後方向、上下方向は、夫々X軸方向、Y軸方向、Z軸方向である。工作機械2は図示しない主軸機構、主軸移動機構、工具交換装置等を備える。主軸機構は主軸モータ32を備え、工具を装着した主軸を回転する。主軸移動機構は、Z軸モータ31、X軸モータ33、Y軸モータ34を備え、テーブル(図示略)上面に支持したワークに対し相対的に主軸をXYZの各軸方向に夫々移動する。
工具交換装置は、マガジンモータ35を備え、複数の工具を保持する工具マガジン(図示略)を駆動し、主軸に装着した工具を他の工具と交換する。工作機械2は操作パネル(図示略)を更に備える。操作パネルは入力装置17と表示装置18を備える。入力装置17は各種入力、設定等を行う為の機器である。表示装置18は各種表示画面、設定画面等を表示する。入力装置17と表示装置18は数値制御装置1の後述する入出力部15に接続する。
Z軸モータ31はエンコーダ41を備える。主軸モータ32はエンコーダ42を備える。X軸モータ33はエンコーダ43を備える。Y軸モータ34はエンコーダ44を備える。マガジンモータ35はエンコーダ45を備える。エンコーダ41〜45は数値制御装置1の後述する駆動回路21〜25に各々接続する。
図1を参照し、数値制御装置1の電気的構成を説明する。数値制御装置1は、CPU11、ROM12、RAM13、不揮発性記憶装置14、入出力部15、駆動回路21〜25等を備える。CPU11は数値制御装置1を統括制御する。ROM12はメイン処理プログラム等の各種プログラムを記憶する。メイン処理プログラムは後述するメイン処理(図4参照)を実行するプログラムである。RAM13は各種処理実行中の各種データを一時的に記憶する。不揮発性記憶装置14は作業者が入力装置17で入力して登録した複数のNCプログラム等を記憶する。NCプログラムは各種制御指令を含む複数のブロックで構成し、工作機械2の軸移動、工具交換等を含む各種動作をブロック単位で制御するものである。
駆動回路21はZ軸モータ31とエンコーダ41に接続する。駆動回路22は主軸モータ32とエンコーダ42に接続する。駆動回路23はX軸モータ33とエンコーダ43に接続する。駆動回路24はY軸モータ34とエンコーダ44に接続する。駆動回路25はマガジンモータ35とエンコーダ45に接続する。駆動回路21〜25はCPU11から指令信号を受け、対応する各モータ31〜35に駆動電流を夫々出力する。駆動回路21〜25はエンコーダ41〜45からフィードバック信号を受け、位置と速度のフィードバック制御を行う。入出力部15は入力装置17と表示装置18に夫々接続する。
使用者は複数のNCプログラムの中から一のNCプログラムを入力装置17で選択可能である。CPU11は選択したNCプログラムを表示装置18に表示する。CPU11は表示装置18に表示したNCプログラムに基づき、工作機械2の動作を制御する。
数値制御装置1が行う経路の平滑化処理を説明する。平滑化処理は、NCプログラムが指令する工作機械2のワークに対して移動する主軸の経路(以下単に経路と呼ぶ)を平滑化する処理である。なお本実施形態では、工作機械2の経路を紙面上で説明する都合上、(x,y,z)座標のうちz座標を省略し、二次元であるxy平面で処理した場合を説明する。
図2に示す如く、プログラム指令経路R1(以下指令経路R1と呼ぶ)は、NCプログラムが指令する指令点P〜Pを線分で結んだ経路であり、逆放物線状である。二次曲線R2は指令経路R1を最小二乗法で近似したものである。P〜Pのx,y座標は以下の通りである。
・P=(x,y)=(0,50)
・P=(x,y)=(1,20)
・P=(x,y)=(2,3)
・P=(x,y)=(3,0)
・P=(x,y)=(4,1.5)
・P=(x,y)=(5,2)
・P=(x、y)=(6,3)
・P=(x,y)=(7,11)
・P=(x,y)=(8,5)
図3は指令経路R1を平滑化処理するNCプログラムの一例である。NCプログラムは、工作機械2の動作モード(各種位置決定、移動等)を指令するGコード、動作以外の補助的な機能を指令するMコード等を主体に構成する。「G0」は、位置決めを指令する指令コード、「G1」は、直線補間を指令する指令コード、「M260」は、平滑開始を指令する指令コード、「M269」は、平滑終了を指令する指令コードである。「M30」はプログラム終了の指令コードである。
図4の流れ図を参照し、CPU11が実行するメイン処理を説明する。使用者が動作開始の操作を入力装置17で行うと、CPU11はROM12に記憶したメイン処理プログラムを読み込み、本処理を実行する。なお本処理で用いるパラメータは以下の通りである。
・修正前の指令点P:x,y,z(k番目のx,y,z座標)
・修正後の指令点Q:X,Y,Z(k番目のX,Y,Z座標)
・計算ポイント数:n
・補正倍数:m
本実施形態は、n=4、m=3とし、図3に示すNCプログラムを実行した場合を説明する。上記理由により、z座標とZ座標の演算は省略して説明する。
先ず、CPU11はNCプログラムを1ブロック解釈する(S1)。CPU11は解釈した1ブロックがプログラム終了指令か、平滑開始指令か判断する(S2,S3)。最初の1ブロック目はG0の位置決め指令であるので(S2:NO、S3:NO)、1ブロック動作を実行する(S4)。CPU11は主軸等を位置決め指令による初期の指令点P0(0,50)に位置決めを行った後、S1へ戻り、処理を繰り返す。
CPU11は2ブロック目を解釈する(S1)。2ブロック目はM260の平滑開始指令であるので(S2:NO、S3:YES)、CPU11はカウンタk=0,カウンタj=0,フラグ=0にセットする(S5)。カウンタk,カウンタj、フラグはRAM13に記憶する。CPU11は平滑化処理の計算に必要な数のブロック(M260のブロックからn番目まで)を読み込む(S6)。本実施形態はn=4である。故にCPU11はM260のブロックから4番目(6ブロック目)までを読み込む。次にCPU11は(k+n+1)番目、即ち5番目(7ブロック目)を読み込み(S7)、kに1加算する(S8)。
[k=1]
CPU11はk+n−jブロック目が平滑終了指令か否か判断する(S9)。k+n−j=1+4−0であるので、5番目である。5番目はG1の直線補間指令であるので(S9:NO)、CPU11は平滑化処理を実行する(S11)。
図5の流れ図を参照し、平滑化処理を説明する。先ず、CPU11は各指令点のうち対象となる対象点の前後の線分長LA、LBを夫々演算する(S21)。現在k=1であるので対象点はPである。P前後の線分長は、P−P間の線分長LAと、P−P間の線分長LBである。更にCPU11は線分長LA、LBのうち長い方の線分長に補正倍数mを乗じて拡大線分長LCを算出する(S22)。S21、S22の各処理は下記(1)式で算出する。
Figure 0005983181
…(1)式
LA=30.017、LB=17.029である。LAはLBよりも長い。故にLAに補正倍数mを乗じることにより、拡大線分長LC=30.017×3=90.051となる。
CPU11は計算表(下記表1参照)を作成する(S23)。計算表は指令点情報を含む。指令点情報は、P〜Pのうち、対象点前後n個の各指令点の座標データと、各指令点間の線分長の情報である。CPU11は作成した計算表をRAM13に記憶する。k=1、n=4であるので、前後各4個の指令点は、k−4〜k−1、k+1〜k+4の計8個である。CPU11は表1につき、i、x、y、Lを夫々設定する。iは指令点の番号を示す。i<0の場合、CPU11はi=0の値(k−1の値)を使用する。故にk−2〜k−4の(x,y)は(0,50)となる。
Figure 0005983181
CPU11は拡大線分長LCよりも長い線分長Lがあるか否か判断する(S24)。表1では、拡大線分長LCよりも長い線分長Lは存在しない(S24:NO)。故にCPU11は、各指令点間の線分長Lをそのまま確定線分長(確定L)とし、各指令点Pk−4〜k+4の座標データ(x,y)を、修正後の指令点Qk−4〜k+4の座標データ(X、Y)に設定する(S25)。CPU11は修正後の9つの指令点Qk−4〜k+4の座標データ(X,Y)に基づき、各指令点間を結ぶ経路を最小二乗法を用いて二次曲線に近似する(S28)。CPU11は近似した二次曲線に基づき、対象点の指令点座標データ(X',Y')を算出し、修正する(S29)。CPU11は算出した対象点(X',Y')に主軸等を移動する(S30)。CPU11は本処理を終了し、処理を図4のS12に戻す。
CPU11はフラグが0か否か判断する(S12)。現在フラグは0であるので(S12:YES)、CPU11はS7に戻る。CPU11は(k+n+1)番目、即ち6番目(8ブロック目)を読み込む(S7)。CPU11はkに1加算する(S8)。
[k=2]
CPU11はk+n−jブロック目が平滑終了指令か否か判断する(S9)。k+n−j=2+4−0であるので、6番目である。6番目もG1の直線補間指令であるので(S9:NO)、CPU11は平滑化処理を実行する(S11)。
図5に示す如く、CPU11は対象点の前後の線分長LA、LBを夫々演算する(S21)。現在k=2であるので対象点はPである。P前後の線分長は、P−P間の線分長LAと、P−P間の線分長LBである。更にCPU11は線分長LA、LBのうち長い方の線分長に補正倍数mを乗じて拡大線分長LCを算出する(S22)。S21、S22の各処理は上記(1)式で算出する。LA=17.029、LB=3.162である。LAはLBよりも長い。故にLAに補正倍数mを乗じることによって、拡大線分長LC=17.029×3=51.087となる。
CPU11は計算表(下記表2参照)を作成する(S23)。CPU11は表2につき、i、x、y、Lを夫々設定する。i<0の場合、CPU11はi=0の値(k=2の値)を使用する。故にk−3、k−4の各(x,y)は(0,50)となる。
Figure 0005983181
表2でも、拡大線分長LCよりも長い線分長Lは存在しない(S24:NO)。故にCPU11は、各指令点間の線分長Lをそのまま確定線分長(確定L)とし、各指令点Pk−4〜k+4の座標データ(x,y)を、修正後の指令点Qk−4〜k+4の座標データ(X、Y)に設定する(S25)。CPU11は修正後の9つの指令点Qk−4〜k+4の座標データ(X,Y)に基づき、各指令点間を結ぶ経路を最小二乗法を用いて二次曲線に近似する(S28)。CPU11は近似した二次曲線に基づき、対象点の指令点座標データ(X',Y')を算出し、修正する(S29)。CPU11は算出した対象点(X',Y')に主軸等を移動する(S30)。CPU11は本処理を終了し、処理を図4のS12に戻す。
CPU11はフラグが0か否か判断する(S12)。現在フラグは0であるので(S12:YES)、CPU11はS7に戻る。CPU11は(k+n+1)番目、即ち7番目(9ブロック目)を読み込む(S7)。CPU11はkに1加算する(S8)。
[k=3]
CPU11はk+n−jブロック目が平滑終了指令か否か判断する(S9)。k+n−j=3+4−0であるので、7番目である。7番目もG1の直線補間指令であるので(S9:NO)、CPU11は平滑化処理を実行する。
図5に示す如く、CPU11は対象点の前後の線分長LA、LBを夫々演算する(S21)。現在k=3であるので対象点はPである。P前後の線分長は、P−P間の線分長LAと、P−P間の線分長LBである。更にCPU11は線分長LA、LBに補正倍数mを乗じて拡大線分長LCを夫々算出する(S22)。S21、S22の各処理は上記(1)式で算出する。LA=3.162、LB=1.803である。LAはLBよりも長い。故にLAに補正倍数mを乗じることによって、拡大線分長LC=3.162×3=9.486となる。
CPU11は計算表(下記表3参照)を作成する(S23)。CPU11は表3につき、i、x、y、Lを夫々設定する。i<0の場合、CPU11はi=0の値(k―3の値)を使用する。故にk−4の(x,y)は(0,50)となる。
Figure 0005983181
表3では、L=30.017、17.029が存在する。拡大線分長LCよりも長い線分長Lが存在するので(S24:YES)、CPU11は、表3のうち、拡大線分長LCよりも長い線分長Lを、拡大線分長LC(9.486)に置換し(S26)、確定線分長(確定L)とする。拡大線分長LCよりも短い線分長Lはそのまま確定線分長(確定L)とする。CPU11は確定線分長Lに基づき、修正後の指令点Qk−4〜k+4の座標データ(X、Y)を再計算する(S27)。例えばk−3の線分長Lは拡大線分長LCに置換したので、修正後の指令点Qk−3(X、Y)=(0.935,21.943)となる。CPU11は修正後の9つの指令点Qk−4〜k+4の座標データ(X,Y)に基づき、各指令点間を結ぶ経路を最小二乗法を用いて二次曲線に近似する(S28)。CPU11は近似した二次曲線に基づき、対象点の指令点座標データ(X',Y')を算出し、修正する(S29)。CPU11は算出した対象点(X',Y')に主軸等を移動する(S30)。
CPU11はフラグが0か否か判断する(S12)。現在フラグは0であるので(S12:YES)、CPU11はS7に戻る。CPU11は(k+n+1)番目、即ち8番目(10ブロック目)を読み込む(S7)。CPU11はkを1加算する(S8)。
[k=4]
CPU11はk+n−jブロック目が平滑終了指令か否か判断する(S9)。k+n−j=4+4−0であるので、8番目である。8番目もG1の直線補間指令であるので(S9:NO)、CPU11は平滑化処理を実行する。
図5に示す如く、CPU11は対象点の前後の線分長LA、LBを夫々演算する(S21)。現在k=4であるので対象点はPである。P前後の線分長は、P−P間の線分長LAと、P−P間の線分長LBである。更にCPU11は線分長LA、LBに補正倍数mを乗じて拡大線分長LCを夫々算出する(S22)。S21、S22は上記(1)式で算出する。LA=1.803、LB=1.118である。LAはLBよりも長い。故にLAに補正倍数mを乗じることによって、拡大線分長LC=1.803×3=5.408となる。
CPU11は計算表(下記表4参照)を作成する(S23)。CPU11は表4につき、i、x、y、Lを夫々設定する。
Figure 0005983181
表4では、L=30.017、17.029、8.062、6.083が存在する。拡大線分長LCよりも長い線分長Lが存在するので(S24:YES)、CPU11は、表4のうち、原則、拡大線分長LCよりも長い線分長Lを、拡大線分長LC(5.408)に置換し(S26)、確定線分長(確定L)とする。拡大線分長LCよりも短い線分長Lはそのまま確定線分長(確定L)とする。
ここで、図6に示す如く、修正前の指令点P(Pk+4)を修正後の指令点Qk+4に修正する方法を説明する。修正後の指令点Qk+3からPまでの線文長はLCより短い。そこで、修正後の指令点Qk+3から修正前の指令点Pを経由し、修正前の指令点Pへの経路で拡大線分長LC移動した位置を修正後の指令点Qk+4とする。
修正後の指令点Qk+3からPまでの線分長をL1、Pから修正後の指令点Qk+4までの線分長をL2とし、L1+L2=5.408となるように、修正後の(k+4)の指令点の座標データ(X,Y)を算出する。即ち以下の経路を想定する。
k+3(6.671,8.367)→P7(7,11)→Qk+4(7.453,8.283)
故に指令点Qk+3からQk+4までの確定線分長Lは1.119となる。
CPU11は修正後の9つの指令点k−4〜k+4の座標データ(X,Y)に基づき、各指令点間を結ぶ修正経路Sを最小二乗法を用いて二次曲線に近似する(S28)。CPU11は近似した二次曲線に基づき、対象点の指令点座標データ(X',Y')を算出し、修正する(S29)。CPU11は算出した対象点(X',Y')に主軸等を移動する(S30)。
CPU11はフラグが0か否か判断する(S12)。現在フラグは0であるので(S12:YES)、CPU11はS7に戻る。CPU11は(k+n+1)番目、即ち8番目(10ブロック目)を読み込む(S7)。CPU11はkを1加算する(S8)。以下、k=5以降はk=4と同様に、S7〜S9、S11、S12の各処理を繰り返す。
CPU11はk+n−jブロック目が平滑終了指令(M269)であると判断した場合(S9:YES)、jに1加算し、フラグを1に設定する(S10)。CPU11は上述と同様に、平滑化処理を実行する(S11)。平滑化処理が終了すると、現在フラグは1であるので(S12:NO)、jはn−1であるか否か判断する(S13)。n=4であるので、jが3に達していない場合(S13:NO)、CPU11はS8に戻り、処理を同様に繰り返す。jが3に達した場合(S13:YES)、最終指令点までの平滑化が終了したので、S1に戻り、次ブロックを解釈する。解釈したブロックが終了指令である場合(S2:YES)、メイン処理を終了する。
次に、本発明の効果を確認する為に比較試験を行った。図7を参照し、比較試験の結果を説明する。図7に示すグラフは、経路A、B、Cを示す。経路AはNCプログラムの指令経路(黒色菱形シンボル)である。経路Bは経路Aを最小二乗法のみで近似した経路(黒色長方形シンボル)である(従来例)。経路Cは本発明の方法で近似した経路(白抜き三角形シンボル)である。経路Aは各指令点間の線分長が不揃いである。故に最小二乗法のみで近似する従来法では、経路Bの頂上付近で乱れが生じる。これに対し、経路Cは、経路Bに比べ、頂上付近においても乱れることなく、滑らかな円弧を形成している。従って、本発明の方法を用いることによって、従来の最小二乗法のみで近似した経路と比較して、より滑らかな経路にできる。
以上説明にて、S21の処理を実行するCPU11は本発明の前後線分長演算手段に相当し、S22の処理を実行するCPU11は本発明の拡大線分長算出手段に相当し、S23の処理を実行するCPU11は本発明の指令点情報演算手段に相当し、S26の処理を実行するCPU11は本発明の置換手段に相当し、S27の処理を実行するCPU11は本発明の指令点情報修正手段に相当し、S28の処理を実行するCPU11は本発明の近似手段に相当し、S29の処理を実行するCPU11は本発明の対象点座標修正手段に相当する。
また、S21のステップは本発明の前後線分長演算工程に相当し、S22のステップは本発明の拡大線分長算出工程に相当し、S23のステップは本発明の指令点情報演算工程に相当し、S26のステップは本発明の置換工程に相当し、S27のステップは本発明の指令点情報修正工程に相当し、S28のステップは本発明の近似工程に相当し、S29のステップは本発明の対象点座標修正工程に相当する。
以上説明したように、本実施形態の数値制御装置1は、NCプログラムの指令点の座標データを結んだ経路を平滑化処理できる。CPU11は各指令点のうち対象となる対象点の前後の線分長LA、LBを夫々演算する。次いで、CPU11は演算した前後の線分長LA、LBのうち大きい方の線分長に補正倍数mを乗じて拡大線分長LCを算出する。CPU11は、各指令点のうち、対象点の前後n個の各指令点間の線分長を夫々演算し、各指令点の座標データと各指令点間の線分長の情報を示す計算表を作成する。CPU11は、計算表のうち、拡大線分長LCよりも長い線分長Lを、拡大線分長LCに置換する。CPU11は置換した拡大線分長LCに基づき、計算表の座標データを修正する。CPU11は修正した計算表に基づき、各指令点間を結ぶ経路を最小二乗法を用いて二次曲線に近似する。CPU11は近似した二次曲線に基づき、対象点の座標データを修正する。故に複数の指令点から最小二乗法で近似曲線を求める際に、各指令点間の線分長が不揃いであっても経路を滑らかにできる。
なお本発明は上記実施の形態に限定されず、様々な変形が可能である。上記実施形態のCPU11は、図5に示す平滑化処理において、拡大線分長LCを算出し(S22)、計算表を作成(S23)した後は、S24〜S27の処理を実行することにより、修正後の指令点Qの座標データ(X、Y)を求めている。例えば、CPU11は、S24〜S27の処理の代わりに、例えば図8に示す修正指令点演算処理を実行してもよい。
図6と図8を参照し、修正指令点演算処理を説明する。ここではk=4の場面を想定して説明する。計算ポイント数n=4とする。
CPU11は以下のパラメータを設定する(S41)。上記実施形態と同様に、Pは指令点、Qは修正指令点である。pはkからのブロック数である。
・Q=P
・Qk+1=Pk+1
・Qk−1=Pk−1
・p=2
現在k=4であるので、
・Q=P
・Q=P
・Q=P
CPU11は、Qk+p−1からPk+p方向へ、経路に沿って拡大線分長LC離れた位置Wk+pを求める(S42)。図6に示す如く、QからP方向へ、経路に沿って拡大線分長LC離れた位置Wは、PとPの間に位置する。CPU11は、Wk+pの位置がPk+pの位置よりもQ側にあるか否か判断する(S43)。Wの位置は、Pの位置よりもQ側にはないので(S43:NO)、Qk+p=Pk+p、即ち、Pの位置をそのままQとする(S45)。
CPU11は、Qk−p+1からPk−p方向へ、経路に沿って拡大線分長LC離れた位置Wk−pを求める(S46)。図6に示す如く、QからP方向へ、経路に沿って拡大線分長LC離れた位置Wは、PとPの間に位置する。CPU11は、Wk−pの位置がPk−pの位置よりもQ側にあるか否か判断する(S47)。Wの位置は、Pの位置よりもQ側にはないので(S47:NO)、Qk−p=Pk−p、即ち、Pの位置をそのままQ2とする(S49)。
CPU11は、pに1加算し(S50)、pがnより大きいか否か判断する(S51)。pは3、nは4である。pはnより大きくはないので(S51:NO)、CPU11は、S42に戻り、上記処理を繰り返す。
次いで、CPU11は、QからP方向へ、経路に沿って拡大線分長LC離れた位置Wを求める(S42)。図6に示す如く、Wは、PとPの間に位置する。CPU11は、Wの位置がPの位置よりもQ側にあるか否か判断する(S43)。Wの位置は、Pの位置よりもQ側にあるので(S43:YES)、Qk+p=Wk+p、即ち、Wの位置をQとする(S44)。
CPU11は、QからP方向へ、経路に沿って拡大線分長LC離れた位置Wを求める(S46)。図6に示す如く、Wは、PとPの間に位置する。Wの位置は、Pの位置よりもQ側にあるので(S47:YES)、Qk−p=Wk−p、即ち、Wの位置をQとする(S48)。
CPU11は、pに1加算し(S50)、pがnより大きいか否か判断する(S51)。pは4、nは4である。pはnより大きくはないので(S51:NO)、CPU11は、S42に戻り、上記処理を繰り返す。
次いで、CPU11は、QからP方向へ、経路に沿って拡大線分長LC離れた位置Wを求める(S42)。図6に示す如く、Wは、PとPの間に位置する。CPU11は、Wの位置がPの位置よりもQ側にあるか否か判断する(S43)。Wの位置は、Pの位置よりもQ側にあるので(S43:YES)、Qk+p=Wk+p、即ち、Wの位置をQとする(S44)。
CPU11は、QからP方向へ、経路に沿って拡大線分長LC離れた位置Wを求める(S46)。図6に示す如く、QからP方向へ、経路に沿って拡大線分長LC離れた位置Wは、PとPの間に位置する。Wの位置は、Pの位置よりもQ側にあるので(S47:YES)、Qk−p=Wk−p、即ち、Wの位置をQとする(S48)。
CPU11は、pに1加算し(S50)、pがnより大きいか否か判断する(S51)。pは5、nは4である。pはnより大きいので(S51:YES)、CPU11は、k=4について、本処理を終了し、図5に示す平滑化処理のS28の処理に戻る。このような修正指令点演算処理を実行することにより、上記実施形態と同様の効果を得ることができる。
また上記実施形態は、テーブルが固定で、主軸がテーブルに対してXYZの各軸方向に移動可能であるが、例えば、主軸をZ軸方向に移動可能とし、テーブルをXY軸方向に移動可能としてもよい。主軸とテーブルが相対的にXYZの各軸方向に移動可能であればよい。
また上記実施形態の工作機械2は、XYZ空間において、ワークを立体的に加工できるものであるが、例えばXY平面上でワークの切断加工を行う工作機械にも適用可能である。
また上記実施形態は、平滑化処理のS22にて、線分長LA、LBのうち長い方に補正倍数を乗じ、拡大線分長LCを算出したが、例えば、短い方の線分長に補正倍数を乗じ、拡大線分長LCを算出してもよい。また、長い方と短い方を交互に選択し、補正倍数を乗じてもよい。少なくとも何れか一方の線分長を選択すればよいが、好ましくは、上記実施形態のように、長い方の線分長を採用するのがよい。
1 数値制御装置
2 工作機械
11 CPU
14 不揮発性記憶装置

Claims (3)

  1. 工作機械の制御位置座標を表す複数の指令点の指令点座標データを結んだ経路を、最小二乗法を用いて近似した二次曲線を用いて平滑化する平滑化処理手段を有する数値制御装置において、
    前記平滑化処理手段は、
    各指令点のうち対象となる対象点の前後の線分長を夫々演算する前後線分長演算手段と、
    前記前後線分長演算手段が演算した前記前後の線分長のうち一方の線分長に所定倍を乗じて拡大線分長を算出する拡大線分長算出手段と、
    前記複数の指令点のうち、前記対象点を含む所定範囲内に含まれる各指令点の前記指令点座標データ、及び前記各指令点間の線分長の情報を含む指令点情報を演算する指令点情報演算手段と、
    前記指令点情報演算手段が演算した前記指令点情報のうち、前記拡大線分長算出手段が算出した前記拡大線分長よりも長い前記線分長を、前記拡大線分長に置換する置換手段と、
    前記置換手段が置換した前記拡大線分長に基づき、前記二次曲線を決定する為に用いられる前記指令点情報の前記指令点座標データを前記経路上において修正する指令点情報修正手段と、
    前記指令点情報修正手段が修正した前記指令点情報が含む前記指令点間を結ぶ経路を前記二次曲線に近似する近似手段と、
    前記近似手段が近似した前記二次曲線に基づき、前記対象点の前記指令点座標データを修正する対象点座標修正手段と
    を備えたことを特徴とする数値制御装置。
  2. 前記拡大線分長算出手段は、前記前後の線分長のうち長い方の線分長に前記所定倍を乗じて前記拡大線分長を算出することを特徴とする請求項1に記載の数値制御装置。
  3. 工作機械の制御位置座標を表す複数の指令点の指令点座標データを結んだ経路を、最小二乗法を用いて近似した二次曲線を用いて平滑化する平滑化処理工程を有する数値制御装置の制御方法において、
    前記平滑化処理工程は、
    各指令点のうち対象となる対象点の前後の線分長を夫々演算する前後線分長演算工程と、
    前記前後線分長演算工程で演算した前記前後の線分長のうち一方の線分長に所定倍を乗じて拡大線分長を算出する拡大線分長算出工程と、
    前記複数の指令点のうち、前記対象点を含む所定範囲内に含まれる各指令点の前記指令点座標データ、及び前記各指令点間の線分長の情報を含む指令点情報を演算する指令点情報演算工程と、
    前記指令点情報演算工程で演算した前記指令点情報のうち、前記拡大線分長算出工程で算出した前記拡大線分長よりも長い前記線分長を、前記拡大線分長に置換する置換工程と、
    前記置換工程で置換した前記拡大線分長に基づき、前記二次曲線を決定する為に用いられる前記指令点情報の前記指令点座標データを前記経路上において修正する指令点情報修正工程と、
    前記指令点情報修正工程で修正した前記指令点情報が含む前記指令点間を結ぶ経路を前記二次曲線に近似する近似工程と、
    前記近似工程で近似した前記二次曲線に基づき、前記対象点の前記指令点座標データを修正する対象点座標修正工程と
    を備えたことを特徴とする制御方法。
JP2012183719A 2012-08-23 2012-08-23 数値制御装置と制御方法 Active JP5983181B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012183719A JP5983181B2 (ja) 2012-08-23 2012-08-23 数値制御装置と制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012183719A JP5983181B2 (ja) 2012-08-23 2012-08-23 数値制御装置と制御方法

Publications (2)

Publication Number Publication Date
JP2014041499A JP2014041499A (ja) 2014-03-06
JP5983181B2 true JP5983181B2 (ja) 2016-08-31

Family

ID=50393700

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012183719A Active JP5983181B2 (ja) 2012-08-23 2012-08-23 数値制御装置と制御方法

Country Status (1)

Country Link
JP (1) JP5983181B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016085650A (ja) * 2014-10-28 2016-05-19 ブラザー工業株式会社 数値制御装置と制御方法
CN112859734B (zh) * 2019-11-27 2022-01-25 西安交通大学 一种Airthoid曲线及基于Airthoid曲线的运动规划平顺方法
CN112346406B (zh) * 2020-11-03 2022-03-01 西北工业大学 五轴数控机床刀具轨迹的光顺方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4800873B2 (ja) * 2006-08-04 2011-10-26 オークマ株式会社 近似点群データからの近似曲線生成プログラム及び方法
WO2012056588A1 (ja) * 2010-10-26 2012-05-03 株式会社牧野フライス製作所 工具経路の生成方法および生成装置

Also Published As

Publication number Publication date
JP2014041499A (ja) 2014-03-06

Similar Documents

Publication Publication Date Title
JP6435872B2 (ja) 数値制御装置と制御方法
JP6450732B2 (ja) 数値制御装置
US9851709B2 (en) Numerical control device
JP5079165B2 (ja) 数値制御装置及び数値制御方法
JP6331225B2 (ja) モータ制御装置、位置制御システム、及びモータ制御方法
CN108375957B (zh) 数值控制装置和控制方法
JP5983181B2 (ja) 数値制御装置と制御方法
JP6380119B2 (ja) 数値制御装置と制御方法
WO2013179366A1 (ja) 数値制御装置
JP6880853B2 (ja) 処理装置、パラメータ調整方法、及びパラメータ調整プログラム
JP2016087755A (ja) 産業用ロボットのプログラム修正装置及びプログラム修正方法
JP5785224B2 (ja) 5軸加工機を制御する数値制御装置
JP2008046899A (ja) 数値制御装置
JP2009230552A (ja) 数値制御装置
JP5573664B2 (ja) 数値制御装置、移動制御方法、移動制御プログラム及び記憶媒体
JP6435962B2 (ja) 制御装置、工作機械及びコンピュータプログラム
JP5875740B1 (ja) 数値制御装置
JP5375703B2 (ja) 数値制御装置
JP5005366B2 (ja) ロボット制御装置
JP5659666B2 (ja) 数値制御装置、移動経路修正方法、移動経路修正プログラム、及び記憶媒体
WO2024009484A1 (ja) 制御装置及び制御方法
JP6281315B2 (ja) 数値制御装置と移動経路修正方法
JP6068614B2 (ja) 工具先端点制御中に生じるバックラッシを抑制することを特徴とする数値制御装置
CN117255975A (zh) 控制装置
JP2013215862A (ja) アーク溶接用プログラムのプログラム変換方法、及びアーク溶接用プログラムのプログラム変換装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150602

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160225

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160308

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160425

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160718

R150 Certificate of patent (=grant) or registration of utility model

Ref document number: 5983181

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150