本發(fā)明涉及一種基于多約束條件的正反雙向nurbs曲線插補(bǔ)方法。
背景技術(shù):
高速高精加工不僅要求數(shù)控系統(tǒng)具備實(shí)時(shí)的插補(bǔ)算法,而且控制精度必須達(dá)到亞微米級(jí),插補(bǔ)算法的實(shí)時(shí)性甚至決定著高速加工實(shí)現(xiàn)的可能性。非均勻有理b樣條(non-uniformrationa1b-spline,nurbs)曲線具有良好的形狀表達(dá)能力,在汽車、飛機(jī)、造船等型面零件造型設(shè)計(jì)和加工制造方面應(yīng)用越來越廣,已成為step-nc中表達(dá)自由曲線曲面的唯一形式。以nurbs形式表示的加工文件代碼簡(jiǎn)練,而且沒有精度損失,其代碼量只有傳統(tǒng)nc代碼的
nurbs曲線插補(bǔ)會(huì)受到各方面因素的影響:首先,實(shí)際插補(bǔ)步長(zhǎng)應(yīng)小于插補(bǔ)周期t內(nèi)以指令速度插補(bǔ)的最大進(jìn)給步長(zhǎng);其次,nurbs曲線插補(bǔ)時(shí)所有插補(bǔ)點(diǎn)均在曲線上,沒有徑向誤差(忽略舍去誤差),但存在以進(jìn)給步長(zhǎng)為單位的短直線逼近實(shí)際曲線所引起的輪廓誤差,實(shí)際進(jìn)給步長(zhǎng)形成的短直線應(yīng)使輪廓誤差在允許范圍內(nèi);另外,由于曲線曲率的存在,當(dāng)進(jìn)行高速加工時(shí),還會(huì)在法向引起較大的加速度(簡(jiǎn)稱法向加速度),若法向加速度過大而超過機(jī)床進(jìn)給系統(tǒng)動(dòng)態(tài)剛度的設(shè)計(jì)承受能力,就會(huì)對(duì)進(jìn)給系統(tǒng)、工件的加工質(zhì)量,甚至整個(gè)機(jī)床造成嚴(yán)重的影響。由以上問題可知,當(dāng)滿足多種約束條件時(shí),插補(bǔ)過程中進(jìn)給速度和加速度的變化可能與所采用的加減速模式不一致。同時(shí),傳統(tǒng)加減速都是沿著插補(bǔ)曲線單方向進(jìn)行,曲線余下部分插補(bǔ)約束信息無從獲知,加速過程無法跟后面的減速關(guān)聯(lián)起來,不知道應(yīng)該加速到多大才又開始進(jìn)行減速。
對(duì)比文件:
1)對(duì)比文件1:速度敏感點(diǎn)分段nurbs曲線的s型加減速控制插補(bǔ)算法
申請(qǐng)?zhí)枺?01410177337.x;
對(duì)比文件1中:以曲線速度敏感點(diǎn)的集合為分段點(diǎn)對(duì)nurbs曲線進(jìn)行分段,計(jì)算各分段曲線的軌跡長(zhǎng)度,采用s行加減速控制方法對(duì)各曲線段進(jìn)行速度規(guī)劃,按s型加減速控制方法位移公式,根據(jù)初步周期t分別對(duì)加速和減速階段進(jìn)行速度規(guī)劃,得到各分段曲線在每一個(gè)初步周期內(nèi)的進(jìn)給速度,將獲得的進(jìn)給速度代入插補(bǔ)公式計(jì)算出插補(bǔ)點(diǎn)參數(shù)u,再將插補(bǔ)點(diǎn)參數(shù)u代入nurbs曲線的矩陣表達(dá)式,得到各插補(bǔ)點(diǎn)的坐標(biāo)值。
對(duì)比文件1中采用s曲線加減速控制方法對(duì)分段曲線進(jìn)行速度規(guī)劃,該規(guī)劃方法是采用單向規(guī)劃方法,根據(jù)初步周期t分別對(duì)加速和減速階段進(jìn)行速度規(guī)劃,得到各分段曲線在每一個(gè)初步周期內(nèi)的進(jìn)給速度。
2)對(duì)比文件2《實(shí)時(shí)前瞻全程加減速控制的nurbs曲線自適應(yīng)分段插補(bǔ)方法》
申請(qǐng)?zhí)枺?00910113894.4;
對(duì)比文件2中采用矩陣形式表示nurbs曲線,在曲線曲率各極大值處將曲線分段,采用s曲線加減速控制方法對(duì)各曲線進(jìn)行速度規(guī)劃,得到速度曲線各加減速階段變化時(shí)間,根據(jù)插補(bǔ)周期進(jìn)給速度和對(duì)應(yīng)插補(bǔ)點(diǎn)坐標(biāo),生成控制信號(hào)給定值。
對(duì)比文件2中采用s曲線加減速控制方法對(duì)分段曲線進(jìn)行速度規(guī)劃,該規(guī)劃方法是采用單向規(guī)劃方法,得到速度曲線各加減速階段變化時(shí)間。
3)對(duì)比文件3:《一種基于nurbs曲線插補(bǔ)的速度平滑控制方法》
申請(qǐng)?zhí)枺?01210571959.1
對(duì)比文件3公開一種基于nurbs曲線插補(bǔ)的速度平滑控制方法,包括:對(duì)待加工零件的輪廓參數(shù)進(jìn)行獲取,根據(jù)獲取的輪廓參數(shù)進(jìn)行而得到刀具的加工路徑,采用五段s曲線法和空間矢量轉(zhuǎn)接法對(duì)刀具的加工路徑中的加工段進(jìn)行加減速規(guī)劃和平滑轉(zhuǎn)接處理后對(duì)將段進(jìn)行插補(bǔ)處理,從而生成刀具的加工路徑控制信號(hào),根據(jù)生成的刀具的加工路徑控制信號(hào)對(duì)待加工零件進(jìn)行加工。
對(duì)比文件3中采用五段s曲線法和空間矢量轉(zhuǎn)接法對(duì)刀具的加工路徑中的加工段進(jìn)行加減速規(guī)劃和平滑轉(zhuǎn)接處理后對(duì)將段進(jìn)行插補(bǔ)處理,該規(guī)劃方法是采用單向規(guī)劃方法。
4)對(duì)比文件4:《基于機(jī)床動(dòng)力學(xué)和曲線特性的nurbs插補(bǔ)方法》
申請(qǐng)?zhí)枺?01010546987.9
對(duì)比文件4公開一種基于機(jī)床動(dòng)力學(xué)和曲線特性的nurbs插補(bǔ)方法,方法由三個(gè)環(huán)節(jié)組成:預(yù)插補(bǔ)、前瞻信息處理和實(shí)時(shí)插補(bǔ),按照對(duì)應(yīng)的速度模式進(jìn)行三角函數(shù)速度平滑處理,保存三角函數(shù)速度平滑處理后的相應(yīng)數(shù)據(jù),若進(jìn)入加減速區(qū),則根據(jù)前瞻信息,采用三角函數(shù)速度平滑處理;若沒有進(jìn)入加減速區(qū),則采用速度自適應(yīng)法進(jìn)行計(jì)算,從而最終獲得插補(bǔ)點(diǎn)的坐標(biāo)和進(jìn)給速度。
對(duì)比文件4中根據(jù)前瞻信息判斷是否進(jìn)入加減速區(qū),如果進(jìn)入加減速區(qū)則采用三角函數(shù)速度平滑處理,將三角函數(shù)速度平滑處理分成三種速度規(guī)劃模式來進(jìn)行處理,將速度變化區(qū)分別歸類,按照對(duì)應(yīng)的規(guī)劃模式進(jìn)行處理,得到插補(bǔ)點(diǎn)速度序列,該規(guī)劃方法是采用單向規(guī)劃方法。
5)對(duì)比文件5:《一種考慮加工特性的nurbs直接插補(bǔ)方法及裝置》
申請(qǐng)?zhí)枺?01410582776.9
對(duì)比文件5公開了一種考慮加工特性的nurbs直接插補(bǔ)方法及裝置,采用考慮機(jī)床運(yùn)動(dòng)學(xué)和動(dòng)力學(xué)特性,以及刀具路徑工況,建立多約束條件方程,完成預(yù)插補(bǔ)處理,得到進(jìn)給速度序列,離線速度規(guī)劃模塊尋找并確定切向加速度超差區(qū)域的,并采用s型加減速模式對(duì)超差區(qū)域的速度進(jìn)行重新調(diào)整,利用調(diào)整好的速度序列對(duì)每個(gè)插補(bǔ)周期進(jìn)行實(shí)時(shí)插補(bǔ),插補(bǔ)裝置利用動(dòng)態(tài)鏈接庫技術(shù),將插補(bǔ)點(diǎn)的位置信息經(jīng)過伺服控制器,驅(qū)動(dòng)伺服電機(jī),完成實(shí)時(shí)在線插補(bǔ)。
對(duì)比文件5中采用s型加減速模式對(duì)預(yù)處理進(jìn)給速度序列中超差區(qū)域的速度進(jìn)行重新調(diào)整,該規(guī)劃方法是采用單向規(guī)劃方法。
6)對(duì)比文件6:《一種針對(duì)嵌入式系統(tǒng)的nurbs插補(bǔ)進(jìn)給速度規(guī)劃方法》
申請(qǐng)?zhí)枺?01210511324.2
對(duì)比文件6公開了一種針對(duì)嵌入式系統(tǒng)的nurbs插補(bǔ)進(jìn)給速度規(guī)劃方法,方法首先對(duì)插補(bǔ)進(jìn)給速度進(jìn)行模態(tài)值規(guī)定,然后根據(jù)nurbs曲線的轉(zhuǎn)折點(diǎn)來劃段規(guī)劃進(jìn)給速度。
對(duì)比文件6以曲線控制點(diǎn)為分割點(diǎn),對(duì)nurbs曲線進(jìn)行分割成多個(gè)子分段,把每一曲線子分段平均分為五部分,分別對(duì)應(yīng)為五種速度模態(tài)值。該方法中每一曲線子分段平均分為五部分,每一部分對(duì)應(yīng)五種速度模態(tài)值中的一種,即慢加速、急加速、最高速、加減速、慢減速,但方法中并未給出具體規(guī)劃過程。
7)對(duì)比文件7:《一種基于arm9嵌入式系統(tǒng)和fpga的nurbs曲線分段插補(bǔ)方法》
申請(qǐng)?zhí)枺?01310003017.8
對(duì)比文件7公開了一種基于arm9嵌入式系統(tǒng)和fpga的nurbs曲線分段插補(bǔ)方法,采用arm9嵌入式系統(tǒng)對(duì)nurbs曲線進(jìn)行粗插補(bǔ),完成對(duì)nurbs曲線的分段預(yù)處理,采用fpga對(duì)分段曲線進(jìn)行精插補(bǔ),最后外圍電路將各軸運(yùn)動(dòng)分量以脈沖形式輸出到電動(dòng)機(jī)的信號(hào)控制端口,實(shí)習(xí)電動(dòng)機(jī)伺服控制。
對(duì)比文件7中精插補(bǔ)過程是fpga讀取fifo隊(duì)列中曲線段數(shù)據(jù),采用s型加減速方法進(jìn)行減加速處理,根據(jù)nurbs曲線定義式實(shí)時(shí)生成插補(bǔ)點(diǎn)坐標(biāo)。加減速處理是單向的,是從曲線段起點(diǎn)開始,按照s加減速運(yùn)動(dòng)方程進(jìn)行速度規(guī)劃,直至曲線段終點(diǎn)。
8)對(duì)比文件8:《一種基于nurbs曲線速度規(guī)劃方法、裝置及其數(shù)控加工路徑數(shù)據(jù)處理方法》
申請(qǐng)?zhí)枺?01510072415.4
對(duì)比文件8公開一種基于nurbs曲線速度規(guī)劃方法、裝置及其數(shù)控加工路徑數(shù)據(jù)處理方法,方法包括:獲取具有nurbs曲線的數(shù)控加工路徑數(shù)據(jù),獲取所述nurbs曲線上參數(shù)步長(zhǎng)δui內(nèi)的加速度ai,將各加速度與最大允許加速度比較確定加速度敏感點(diǎn)和敏感區(qū),確定加速度區(qū)間的中間點(diǎn)作為加減速分界點(diǎn),計(jì)算中間點(diǎn)的速度值作為目標(biāo)速度,根據(jù)目標(biāo)速度對(duì)加速度敏感區(qū)間進(jìn)行加速和減速的規(guī)劃,以得到規(guī)劃后的nurbs曲線的數(shù)控加工路徑數(shù)據(jù)。
對(duì)比文件8中獲取具有nurbs曲線的數(shù)控加工路徑數(shù)據(jù),獲取所述nurbs曲線上參數(shù)步長(zhǎng)δui內(nèi)的加速度ai,將各加速度與最大允許加速度比較確定加速度敏感點(diǎn)和敏感區(qū),確定加速度區(qū)間的中間點(diǎn)作為加減速分界點(diǎn),計(jì)算中間點(diǎn)的速度值作為目標(biāo)速度,根據(jù)目標(biāo)速度對(duì)加速度敏感區(qū)間進(jìn)行加速和減速的規(guī)劃,該速度規(guī)劃是單向的,從曲線一端單向向另一端進(jìn)行速度規(guī)劃。
9)對(duì)比文件9《一種連續(xù)多類型曲線段混合插補(bǔ)三次多項(xiàng)式進(jìn)給速度前瞻規(guī)劃方法》
申請(qǐng)?zhí)枺?01410280826.8
對(duì)比文件9公開了一種連續(xù)多類型曲線段混合插補(bǔ)三次多項(xiàng)式進(jìn)給速度前瞻規(guī)劃方法,分為五大步驟:步驟1:連續(xù)多類型曲線段生成;步驟2:段間銜接點(diǎn)臨界速度求解;步驟3:?jiǎn)味吻€進(jìn)給速度規(guī)劃;步驟4:?jiǎn)味嗡俣纫?guī)劃殘差補(bǔ)償;步驟5:進(jìn)給速度曲線生成。
對(duì)比文件9中單段曲線進(jìn)給速度規(guī)劃時(shí),將單段曲線分為常規(guī)長(zhǎng)段、常規(guī)短段、加速短段和減速短段4種速度曲線類型,判斷單段曲線進(jìn)給速度類型后,按對(duì)應(yīng)的類型進(jìn)行單向速度規(guī)劃。
10)對(duì)比文件10:《nurbs曲線s形加減速雙向?qū)?yōu)插補(bǔ)算法研究》
羅福源,游有鵬,尹涓.nurbs曲線s形加減速雙向?qū)?yōu)插補(bǔ)算法研究[j].機(jī)械工程學(xué)報(bào),2012,48(5):147-156.
對(duì)比文件10提出運(yùn)動(dòng)路程未知情況下不依賴弧長(zhǎng)精確計(jì)算的正向和反向同步加速的插補(bǔ)新算法,實(shí)時(shí)動(dòng)態(tài)地求解曲線段內(nèi)最大進(jìn)給速度和正反向插補(bǔ)匯合點(diǎn),從而實(shí)現(xiàn)處處滿足全部速度約束條件的最優(yōu)插補(bǔ)。
對(duì)比文件10簡(jiǎn)單的以每個(gè)插補(bǔ)周期速度規(guī)劃中的速度作為約束條件,對(duì)nurbs曲線進(jìn)行雙向?qū)?yōu)插補(bǔ),得到匯合點(diǎn),但是nurbs曲線插補(bǔ)會(huì)受到各方面因素的影響。首先,實(shí)際插補(bǔ)步長(zhǎng)應(yīng)小于插補(bǔ)周期t內(nèi)以指令速度插補(bǔ)的最大進(jìn)給步長(zhǎng);其次,nurbs曲線插補(bǔ)時(shí)所有插補(bǔ)點(diǎn)均在曲線上,沒有徑向誤差(忽略舍去誤差),但存在以進(jìn)給步長(zhǎng)為單位的短直線逼近實(shí)際曲線所引起的輪廓誤差,實(shí)際進(jìn)給步長(zhǎng)形成的短直線應(yīng)使輪廓誤差在允許范圍內(nèi);另外,由于曲線曲率的存在,當(dāng)進(jìn)行高速加工時(shí),還會(huì)在法向引起較大的加速度(簡(jiǎn)稱法向加速度),若法向加速度過大而超過機(jī)床進(jìn)給系統(tǒng)動(dòng)態(tài)剛度的設(shè)計(jì)承受能力,就會(huì)對(duì)進(jìn)給系統(tǒng)、工件的加工質(zhì)量,甚至整個(gè)機(jī)床造成嚴(yán)重的影響。
nurbs曲線插補(bǔ)會(huì)受到各方面因素的影響,對(duì)nurbs曲線進(jìn)行插補(bǔ)時(shí),需要對(duì)曲線進(jìn)行預(yù)處理工作。目前,nurbs曲線預(yù)處理通常的處理方法為,采用速度自適應(yīng)調(diào)整算法,根據(jù)弓高誤差來調(diào)整插補(bǔ)點(diǎn)的進(jìn)給速度,使插補(bǔ)點(diǎn)滿足最大弓高誤差限制要求,并采用單向加減速控制方法,對(duì)插補(bǔ)點(diǎn)進(jìn)行速度平滑處理,這種nurbs曲線預(yù)處理方式存在以下問題:
首先,實(shí)際插補(bǔ)步長(zhǎng)應(yīng)小于插補(bǔ)周期t內(nèi)以指令速度插補(bǔ)的最大進(jìn)給步長(zhǎng);其次,nurbs曲線插補(bǔ)時(shí)所有插補(bǔ)點(diǎn)均在曲線上,沒有徑向誤差(忽略舍去誤差),但存在以進(jìn)給步長(zhǎng)為單位的短直線逼近實(shí)際曲線所引起的輪廓誤差,實(shí)際進(jìn)給步長(zhǎng)形成的短直線應(yīng)使輪廓誤差在允許范圍內(nèi);另外,由于曲線曲率的存在,當(dāng)進(jìn)行高速加工時(shí),還會(huì)在法向引起較大的加速度(簡(jiǎn)稱法向加速度),若法向加速度過大而超過機(jī)床進(jìn)給系統(tǒng)動(dòng)態(tài)剛度的設(shè)計(jì)承受能力,就會(huì)對(duì)進(jìn)給系統(tǒng)、工件的加工質(zhì)量,甚至整個(gè)機(jī)床造成嚴(yán)重的影響。
由上面的問題可知,當(dāng)滿足多種約束條件時(shí),插補(bǔ)過程中進(jìn)給速度和加速度的變化可能與所采用的加減速模式不一致。同時(shí),傳統(tǒng)加減速都是沿著插補(bǔ)曲線單方向進(jìn)行,曲線余下部分插補(bǔ)約束信息無從獲知,加速過程無法跟后面的減速關(guān)聯(lián)起來,不知道應(yīng)該加速到多大才又開始進(jìn)行減速。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明要解決的技術(shù)問題,在于提供一種基于多約束條件的正反雙向nurbs曲線插補(bǔ)方法,保證了加工效率又提高了插補(bǔ)精度。
本發(fā)明是這樣實(shí)現(xiàn)的:一種基于多約束條件的正反雙向nurbs曲線插補(bǔ)方法,其特征在于:
步驟1、從預(yù)處理曲線段集按順序取出當(dāng)前需要處理的曲線段,從正反兩個(gè)方向同時(shí)計(jì)算最大進(jìn)給步長(zhǎng);
步驟2、根據(jù)最大進(jìn)給步長(zhǎng)得到當(dāng)前插補(bǔ)點(diǎn)位置信息,將正向插補(bǔ)點(diǎn)存儲(chǔ)到插補(bǔ)數(shù)據(jù)隊(duì)列,將反向插補(bǔ)點(diǎn)存至lifo緩沖區(qū);
步驟3、當(dāng)雙向插補(bǔ)至交匯區(qū)時(shí),調(diào)整交匯點(diǎn)加速度值,使速度平滑過渡;當(dāng)正向插補(bǔ)結(jié)束后,將暫存在lifo緩沖區(qū)的反向插補(bǔ)點(diǎn)存儲(chǔ)到插補(bǔ)數(shù)據(jù)隊(duì)列;
步驟4、接續(xù)到正向插補(bǔ)點(diǎn)之后,完成一個(gè)曲線段的插補(bǔ)預(yù)處理,隨后將插補(bǔ)點(diǎn)數(shù)據(jù)下達(dá)給伺服控制系統(tǒng),驅(qū)動(dòng)電機(jī)實(shí)現(xiàn)各軸進(jìn)給。
進(jìn)一步地,所述步驟1進(jìn)一步包括:
多約束條件是指進(jìn)給步長(zhǎng)受指令速度約束、輪廓誤差約束、法向加速度約束,可設(shè)對(duì)應(yīng)的約束進(jìn)給步長(zhǎng)為:
令指令速度下最大允許進(jìn)給步長(zhǎng)為li1、最大輪廓誤差約束下的進(jìn)給步長(zhǎng)為li2、最大法向加速度約束下的進(jìn)給步長(zhǎng)為li3,則第i個(gè)插補(bǔ)點(diǎn)約束進(jìn)給步長(zhǎng)li可表示為:
li=min(li1,li2,li3)(1)
1)指令速度約束進(jìn)給步長(zhǎng)
設(shè)加工進(jìn)給速度為f,插補(bǔ)周期為t,則單個(gè)插補(bǔ)周期進(jìn)給步長(zhǎng)δl=f·t,因δl為只考慮進(jìn)給速度的無約束進(jìn)給步長(zhǎng),所以還需使其符合加減速要求,設(shè)經(jīng)加減速約束后的進(jìn)給約束步長(zhǎng)為li1,令最大切向加速度為atan_max,前一個(gè)插補(bǔ)段的進(jìn)給步長(zhǎng)為li-1,則有:
li1=li-1+atan_max·t2(2)
2)最大輪廓誤差約束進(jìn)給步長(zhǎng)
插補(bǔ)的輪廓誤差δi與插補(bǔ)的步長(zhǎng)δli及曲線曲率半徑ρi之間存在如下關(guān)系:
在最大輪廓誤差δmax約束下的約束進(jìn)給步長(zhǎng)li2理論值為:
由式(3)、(4),插補(bǔ)步長(zhǎng)δli即為li1,可得:
設(shè)nurbs曲線段c(ui)c(ui+1)的中點(diǎn)n,與弦
則最大輪廓誤差約束進(jìn)給步長(zhǎng)為:
3)法向加速度約束進(jìn)給步長(zhǎng)
在最大法向加速度anor_max約束下的進(jìn)給步長(zhǎng)為:
其中ρi為曲線曲率半徑;
由式(4)可知:
故
由此,可以得到指令速度約束進(jìn)給步長(zhǎng)li1、輪廓誤差約束進(jìn)給步長(zhǎng)li2和法向加速度約束進(jìn)給步長(zhǎng)li3,把這幾個(gè)值代入式(1)即可得到約束進(jìn)給步長(zhǎng)li。
進(jìn)一步地,所述步驟2進(jìn)一步包括:
從預(yù)處理曲線段集按順序取出當(dāng)前需要處理的曲線段,得到曲線首尾端點(diǎn)參數(shù)矢量坐標(biāo)[ui,uj],曲線長(zhǎng)度l,正反起始點(diǎn)速度vs、ve,指令速度vmax,最大輪廓誤差δmax,最大法向加速度anor_max,采用s型曲線加減速方法,對(duì)曲線段進(jìn)行插補(bǔ)預(yù)處理,
具體步驟為:
step1:初始化
step2:loopwhileub<uf;
step3:根據(jù)s加減速算法獲得正反向當(dāng)前加速度
step4:基于多約束條件得到最大進(jìn)給步長(zhǎng);
step5:計(jì)算正反插補(bǔ)點(diǎn)參數(shù)
step6:正向插補(bǔ)點(diǎn)存入插補(bǔ)數(shù)據(jù)隊(duì)列;
step7:反向插補(bǔ)點(diǎn)存入lifo緩沖區(qū);
step8:endofloop。
進(jìn)一步地,所述步驟3中交匯區(qū)判斷方法為:
當(dāng)正反雙向插補(bǔ)從曲線段兩端向曲線段中間進(jìn)行插補(bǔ)處理,最終兩個(gè)方向的插補(bǔ)會(huì)出現(xiàn)匯合,設(shè)從曲線段左邊端點(diǎn)往右為正向插補(bǔ),從曲線段右邊端點(diǎn)往左為反向插補(bǔ),令un、um分別為正向和反向插補(bǔ)終點(diǎn),其對(duì)應(yīng)多約束條件下的約束速度為v(un)、v(um),如果滿足下式:
即認(rèn)為參數(shù)區(qū)間[unum]為插補(bǔ)匯合區(qū)。
進(jìn)一步地,所述對(duì)正向插補(bǔ)終點(diǎn)加速度進(jìn)行調(diào)整的調(diào)整方法為:
本發(fā)明具有如下優(yōu)點(diǎn):本發(fā)明一種基于多約束條件的正反雙向nurbs曲線插補(bǔ)方法,基于多種約束條件的曲線段正反雙向插補(bǔ)預(yù)處理過程中,正反雙向預(yù)插補(bǔ)剛好是兩個(gè)逆過程,反向預(yù)處理過程為正向預(yù)處理過程提供了原來難以獲取的多種約束信息,使得正向加速過程可以在完整的約束條件下獲得最優(yōu)的進(jìn)給速度,既保證了加工效率又提高了插補(bǔ)精度。
附圖說明
下面參照附圖結(jié)合實(shí)施例對(duì)本發(fā)明作進(jìn)一步的說明。
圖1是一種基于多約束條件的正反雙向nurbs曲線插補(bǔ)方法的流程框圖。
圖2是一種基于多約束條件的正反雙向nurbs曲線插補(bǔ)方法的正反雙向插補(bǔ)處理流程圖。
圖3是一種基于多約束條件的正反雙向nurbs曲線插補(bǔ)方法的正反雙向插補(bǔ)匯合示意圖。
具體實(shí)施方式
本發(fā)明基于多約束條件的正反雙向nurbs曲線插補(bǔ)方法,其特征在于:
步驟1、從預(yù)處理曲線段集按順序取出當(dāng)前需要處理的曲線段,從正反兩個(gè)方向同時(shí)計(jì)算最大進(jìn)給步長(zhǎng),進(jìn)一步具體為:
多約束條件是指進(jìn)給步長(zhǎng)受指令速度約束、輪廓誤差約束、法向加速度約束,可設(shè)對(duì)應(yīng)的約束進(jìn)給步長(zhǎng)為:
令指令速度下最大允許進(jìn)給步長(zhǎng)為li1、最大輪廓誤差約束下的進(jìn)給步長(zhǎng)為li2、最大法向加速度約束下的進(jìn)給步長(zhǎng)為li3,則第i個(gè)插補(bǔ)點(diǎn)約束進(jìn)給步長(zhǎng)li可表示為:
li=min(li1,li2,li3)(1)
1)指令速度約束進(jìn)給步長(zhǎng)
設(shè)加工進(jìn)給速度為f,插補(bǔ)周期為t,則單個(gè)插補(bǔ)周期進(jìn)給步長(zhǎng)δl=f·t,因δl為只考慮進(jìn)給速度的無約束進(jìn)給步長(zhǎng),所以還需使其符合加減速要求,設(shè)經(jīng)加減速約束后的進(jìn)給約束步長(zhǎng)為li1,令最大切向加速度為atan_max,前一個(gè)插補(bǔ)段的進(jìn)給步長(zhǎng)為li-1,則有:
li1=li-1+atan_max·t2(2)
2)最大輪廓誤差約束進(jìn)給步長(zhǎng)
插補(bǔ)的輪廓誤差δi與插補(bǔ)的步長(zhǎng)δli及曲線曲率半徑ρi之間存在如下關(guān)系:
在最大輪廓誤差δmax約束下的約束進(jìn)給步長(zhǎng)li2理論值為:
由式(3)、(4),插補(bǔ)步長(zhǎng)δli即為li1,可得:
設(shè)nurbs曲線段c(ui)c(ui+1)的中點(diǎn)n,與弦
則最大輪廓誤差約束進(jìn)給步長(zhǎng)為:
3)法向加速度約束進(jìn)給步長(zhǎng)
在最大法向加速度anor_max約束下的進(jìn)給步長(zhǎng)為:
其中ρi為曲線曲率半徑;
由式(4)可知:
故
由此,可以得到指令速度約束進(jìn)給步長(zhǎng)li1、輪廓誤差約束進(jìn)給步長(zhǎng)li2和法向加速度約束進(jìn)給步長(zhǎng)li3,把這幾個(gè)值代入式(1)即可得到約束進(jìn)給步長(zhǎng)li;
步驟2、根據(jù)最大進(jìn)給步長(zhǎng)得到當(dāng)前插補(bǔ)點(diǎn)位置信息,將正向插補(bǔ)點(diǎn)存儲(chǔ)到插補(bǔ)數(shù)據(jù)隊(duì)列,將反向插補(bǔ)點(diǎn)存至lifo緩沖區(qū),進(jìn)一步包括:
從預(yù)處理曲線段集按順序取出當(dāng)前需要處理的曲線段,得到曲線首尾端點(diǎn)參數(shù)矢量坐標(biāo)[ui,uj],曲線長(zhǎng)度l,正反起始點(diǎn)速度vs、ve,指令速度vmax,最大輪廓誤差δmax,最大法向加速度anor_max,采用s型曲線加減速方法,對(duì)曲線段進(jìn)行插補(bǔ)預(yù)處理,
具體步驟為:
step1:初始化
step2:loopwhileub<uf;
step3:根據(jù)s加減速算法獲得正反向當(dāng)前加速度
step4:基于多約束條件得到最大進(jìn)給步長(zhǎng);
step5:計(jì)算正反插補(bǔ)點(diǎn)參數(shù)
step6:正向插補(bǔ)點(diǎn)存入插補(bǔ)數(shù)據(jù)隊(duì)列;
step7:反向插補(bǔ)點(diǎn)存入lifo緩沖區(qū);
step8:endofloop;
步驟3、當(dāng)雙向插補(bǔ)至交匯區(qū)時(shí),調(diào)整交匯點(diǎn)加速度值,使速度平滑過渡;當(dāng)正向插補(bǔ)結(jié)束后,將暫存在lifo緩沖區(qū)的反向插補(bǔ)點(diǎn)存儲(chǔ)到插補(bǔ)數(shù)據(jù)隊(duì)列,所述交匯區(qū)判斷方法為:
當(dāng)正反雙向插補(bǔ)從曲線段兩端向曲線段中間進(jìn)行插補(bǔ)處理,最終兩個(gè)方向的插補(bǔ)會(huì)出現(xiàn)匯合,設(shè)從曲線段左邊端點(diǎn)往右為正向插補(bǔ),從曲線段右邊端點(diǎn)往左為反向插補(bǔ),令un、um分別為正向和反向插補(bǔ)終點(diǎn),其對(duì)應(yīng)多約束條件下的約束速度為v(un)、v(um),如果滿足下式:
即認(rèn)為參數(shù)區(qū)間[unum]為插補(bǔ)匯合區(qū)。
所述對(duì)正向插補(bǔ)終點(diǎn)加速度進(jìn)行調(diào)整的調(diào)整方法為:
步驟4、接續(xù)到正向插補(bǔ)點(diǎn)之后,完成一個(gè)曲線段的插補(bǔ)預(yù)處理,隨后將插補(bǔ)點(diǎn)數(shù)據(jù)下達(dá)給伺服控制系統(tǒng),驅(qū)動(dòng)電機(jī)實(shí)現(xiàn)各軸進(jìn)給。
本發(fā)明提出一種基于多約束條件的正反雙向nurbs曲線插補(bǔ)方法,從曲線段首尾端點(diǎn)同時(shí)開始,在正反兩個(gè)方向同時(shí)向曲線段中間以插補(bǔ)周期t對(duì)曲線段進(jìn)行插補(bǔ)預(yù)處理,獲得滿足最大進(jìn)給速約束、最大輪廓誤差約束、法向加速度約束以及s曲線加減速約束等多種約束條件的進(jìn)給步長(zhǎng),進(jìn)一步由約束進(jìn)給步長(zhǎng)得到對(duì)應(yīng)的每個(gè)插補(bǔ)點(diǎn)的速度、參數(shù)矢量、坐標(biāo)位置等信息;隨后,將正向插補(bǔ)點(diǎn)存儲(chǔ)到插補(bǔ)數(shù)據(jù)隊(duì)列,將反向插補(bǔ)點(diǎn)暫存到lifo緩沖區(qū);當(dāng)雙向插補(bǔ)至交匯區(qū)時(shí),調(diào)整交匯點(diǎn)加速度值,使速度平滑過渡;當(dāng)正向插補(bǔ)結(jié)束后,將暫存在lifo緩沖區(qū)的反向插補(bǔ)點(diǎn)存儲(chǔ)到插補(bǔ)數(shù)據(jù)隊(duì)列,接續(xù)到正向插補(bǔ)點(diǎn)之后,完成一個(gè)曲線段的插補(bǔ)預(yù)處理過程;正式插補(bǔ)時(shí),則以插補(bǔ)周期t為時(shí)間間隔,從插補(bǔ)數(shù)據(jù)隊(duì)列取出經(jīng)過預(yù)處理后的插補(bǔ)點(diǎn)信息,由機(jī)床完成實(shí)際加工過程。
本發(fā)明為一種基于多約束條件的正反雙向nurbs曲線插補(bǔ)方法。在該方法中,從預(yù)處理曲線段集按順序取出當(dāng)前需要處理的曲線段,得到曲線首尾端點(diǎn)參數(shù)矢量坐標(biāo)[ui,uj],曲線段長(zhǎng)度l,曲線段兩端點(diǎn)速度vs、ve,多約束條件為:指令速度vmax、最大輪廓誤差δmax、最大法向加速度anor_max,采用s型曲線加減速方法,在每個(gè)插補(bǔ)周期計(jì)算當(dāng)前正向或方向插補(bǔ)點(diǎn)的加速度值,并入約束條件集。
正反雙向插補(bǔ)以nurbs曲線預(yù)讀曲線段為基本處理單元,從正反兩個(gè)方向同時(shí)以多約束條件計(jì)算最大進(jìn)給步長(zhǎng),并由最大進(jìn)給步長(zhǎng)得到當(dāng)前插補(bǔ)點(diǎn)位置信息,將正向插補(bǔ)點(diǎn)存儲(chǔ)到插補(bǔ)數(shù)據(jù)隊(duì)列,將反向插補(bǔ)點(diǎn)暫存到lifo緩沖區(qū);當(dāng)雙向插補(bǔ)至交匯區(qū)時(shí),調(diào)整交匯點(diǎn)加速度值,使速度平滑過渡;當(dāng)正向插補(bǔ)結(jié)束后,將暫存在lifo緩沖區(qū)的反向插補(bǔ)點(diǎn)存儲(chǔ)到插補(bǔ)數(shù)據(jù)隊(duì)列,接續(xù)到正向插補(bǔ)點(diǎn)之后,完成一個(gè)曲線段的插補(bǔ)預(yù)處理,隨后將插補(bǔ)點(diǎn)數(shù)據(jù)下達(dá)給伺服控制系統(tǒng),驅(qū)動(dòng)電機(jī)實(shí)現(xiàn)各軸進(jìn)給。
如圖1所示,其中詳細(xì)展示了基于多約束條件的正反雙向nurbs曲線插補(bǔ)方法所包括的五個(gè)部分,其中每個(gè)部分產(chǎn)生的結(jié)果作為下一個(gè)部分?jǐn)?shù)據(jù)處理的對(duì)象。
第一個(gè)部分對(duì)以nurbs曲線表述的加工文件進(jìn)行加工信息提取,得到nurbs曲線特征(控制點(diǎn)、節(jié)點(diǎn)矢量、權(quán)值、參考進(jìn)給速度);第二部分,識(shí)別出nurbs曲線曲率極值點(diǎn),并以這些點(diǎn)為端點(diǎn)將nurbs曲線進(jìn)行分段,構(gòu)成預(yù)處理曲線段集;第三部分,對(duì)曲線段集進(jìn)行多約束條件下的正反雙向預(yù)處理,得的正反雙向預(yù)處理后的數(shù)據(jù)集;第四部分,將反向處理的數(shù)據(jù)集接續(xù)到正向處理的數(shù)據(jù)集后,形成插補(bǔ)點(diǎn)數(shù)據(jù)集;第五部分,按插補(bǔ)周期從插補(bǔ)點(diǎn)數(shù)據(jù)集取出當(dāng)前插補(bǔ)點(diǎn)位置信息,生成插補(bǔ)點(diǎn)脈沖下達(dá)給伺服系統(tǒng),并驅(qū)動(dòng)機(jī)床各軸實(shí)現(xiàn)加工。
多約束條件下最大進(jìn)給步長(zhǎng)計(jì)算:
進(jìn)給步長(zhǎng)受指令速度約束、輪廓誤差約束、法向加速度約束、s型加減速約束,可設(shè)對(duì)應(yīng)的約束進(jìn)給步長(zhǎng)為:
令指令速度下最大允許進(jìn)給步長(zhǎng)為li1、最大輪廓誤差約束下的進(jìn)給步長(zhǎng)為li2、最大法向加速度約束下的進(jìn)給步長(zhǎng)為li3,則第i個(gè)插補(bǔ)點(diǎn)約束進(jìn)給步長(zhǎng)li可表示為:
lc=min(li1,li2,li3)(1)
(1)指令速度約束進(jìn)給步長(zhǎng)
設(shè)加工進(jìn)給速度為f,插補(bǔ)周期為t,則單個(gè)插補(bǔ)周期進(jìn)給步長(zhǎng)δl=f·t。因δl為只考慮進(jìn)給速度的無約束進(jìn)給步長(zhǎng),所以還需使其符合所采用的s型加減速要求,設(shè)經(jīng)s型加減速約束后的進(jìn)給約束步長(zhǎng)為li1,令最大切向加速度為atan_max,前一個(gè)插補(bǔ)段的進(jìn)給步長(zhǎng)為li-1,則有:
li1=li-1+atan_max·t2(2)
(2)最大輪廓誤差約束進(jìn)給步長(zhǎng)
插補(bǔ)的輪廓誤差δi與插補(bǔ)的步長(zhǎng)δli及曲線曲率半徑ρi之間存在如下關(guān)系:
在最大輪廓誤差δmax約束下,約束進(jìn)給步長(zhǎng)li為:
由式(3)、(4)可得:
為簡(jiǎn)化nurbs插補(bǔ)點(diǎn)輪廓誤差計(jì)算,設(shè)nurbs曲線段c(ui)c(ui+1)的中點(diǎn)n,與弦
則最大輪廓誤差約束進(jìn)給步長(zhǎng)為:
(3)法向加速度約束進(jìn)給步長(zhǎng)
在最大法向加速度anor_max約束下的進(jìn)給步長(zhǎng)為:
其中ρi為曲線曲率半徑。
輪廓誤差由曲線曲率決定,計(jì)算如下式:
由式(9)、(7)可知:
故
由此,可以得到指令速度約束進(jìn)給步長(zhǎng)li1、輪廓誤差約束進(jìn)給步長(zhǎng)li2和法向加速度約束進(jìn)給步長(zhǎng)li3,把這幾個(gè)值代入式(1)即可得到約束進(jìn)給步長(zhǎng)li。
如圖2所示,從預(yù)處理曲線段集按順序取出當(dāng)前需要處理的曲線段,得到曲線首尾端點(diǎn)參數(shù)矢量坐標(biāo)[ui,uj],曲線段長(zhǎng)度l,曲線段兩端點(diǎn)速度vs、ve,多約束條件為:指令速度vmax、最大輪廓誤差δmax、最大法向加速度anor_max,采用s型曲線加減速方法,在每個(gè)插補(bǔ)周期計(jì)算當(dāng)前正向或方向插補(bǔ)點(diǎn)的加速度值,并入約束條件集。
正反雙向插補(bǔ)以nurbs曲線預(yù)讀曲線段為基本處理單元,從正反兩個(gè)方向同時(shí)以多約束條件計(jì)算最大進(jìn)給步長(zhǎng),并由最大進(jìn)給步長(zhǎng)得到當(dāng)前插補(bǔ)點(diǎn)位置信息,將正向插補(bǔ)點(diǎn)存儲(chǔ)到插補(bǔ)數(shù)據(jù)隊(duì)列,將反向插補(bǔ)點(diǎn)暫存到lifo緩沖區(qū);當(dāng)雙向插補(bǔ)至交匯區(qū)時(shí),調(diào)整交匯點(diǎn)加速度值,使速度平滑過渡;當(dāng)正向插補(bǔ)結(jié)束后,將暫存在lifo緩沖區(qū)的反向插補(bǔ)點(diǎn)存儲(chǔ)到插補(bǔ)數(shù)據(jù)隊(duì)列,接續(xù)到正向插補(bǔ)點(diǎn)之后,完成一個(gè)曲線段的插補(bǔ)預(yù)處理,隨后將插補(bǔ)點(diǎn)數(shù)據(jù)下達(dá)給伺服控制系統(tǒng),驅(qū)動(dòng)電機(jī)實(shí)現(xiàn)各軸進(jìn)給。
對(duì)曲線段進(jìn)行正反雙向插補(bǔ)預(yù)處理的具體步驟為:
step1:初始化
step2:loopwhileub<uf;
step3:根據(jù)s加減速算法獲得正反向當(dāng)前加速度
step4:基于多約束條件得到最大進(jìn)給步長(zhǎng);
step5:計(jì)算正反插補(bǔ)點(diǎn)參數(shù)
step6:正向插補(bǔ)點(diǎn)存入插補(bǔ)數(shù)據(jù)隊(duì)列;
step7:反向插補(bǔ)點(diǎn)存入lifo;
step8:反向插補(bǔ)點(diǎn)接續(xù)到fifo,所述fifo即為插補(bǔ)數(shù)據(jù)隊(duì)列;
step9:endofloop;
step10:插補(bǔ)點(diǎn)數(shù)據(jù)下達(dá)給伺服控制系統(tǒng),驅(qū)動(dòng)電機(jī)實(shí)現(xiàn)各軸進(jìn)給。
如圖3所示,當(dāng)正反雙向插補(bǔ)從曲線段兩端向曲線段中間進(jìn)行插補(bǔ)處理,最終兩個(gè)反向的插補(bǔ)會(huì)出現(xiàn)匯合。
設(shè)從曲線段左邊端點(diǎn)往右為正向插補(bǔ),從曲線段右邊端點(diǎn)往左為反向插補(bǔ),令un、um分別為正向和反向插補(bǔ)終點(diǎn),其對(duì)應(yīng)多約束條件下的約束速度為v(un)、v(um)。如果滿足下式:
即認(rèn)為參數(shù)區(qū)間[unum]為插補(bǔ)匯合區(qū)。
當(dāng)正反雙向插補(bǔ)進(jìn)行到匯合區(qū)時(shí),為保證速度平滑過渡,應(yīng)對(duì)正向插補(bǔ)終點(diǎn)加速度進(jìn)行調(diào)整,使得正反向插補(bǔ)在匯合區(qū)過渡點(diǎn)的速度相等且加速度為零。調(diào)整方法為:
雖然以上描述了本發(fā)明的具體實(shí)施方式,但是熟悉本技術(shù)領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,我們所描述的具體的實(shí)施例只是說明性的,而不是用于對(duì)本發(fā)明的范圍的限定,熟悉本領(lǐng)域的技術(shù)人員在依照本發(fā)明的精神所作的等效的修飾以及變化,都應(yīng)當(dāng)涵蓋在本發(fā)明的權(quán)利要求所保護(hù)的范圍內(nèi)。