隨著運動控制系統的發展,現代控制系統的功能越來越強大,一些相對復雜的控制算法相繼在控制加工系統中得到應用,使得軌跡運動的速度和精度不斷的提高。在高速運行過程中,要求控制系統對軌跡運動進行平滑的控制,以防止較大的沖擊影響加工質量,本文提出了一種新型的具有“前瞻”準直線功能的速度平滑算法,可以有效地減少沖擊,提高加工速度和精度。所謂“前瞻”就是在加工過程中向前觀察一段距離,通過拐彎點以及速度允許條件判斷其是否是準直線,然后根據s型速度曲線進行粗插補、精插補計算。
基本原理
拐點判別
[align=center]

圖1 曲率半徑[/align]
如圖1,假設p1、p2、p3為一條軌跡中的三個點,這三個點可以確定一個圓,該圓的半徑作為p2點曲率半徑,可以根據三點的坐標然后根據半徑和最大加速度(作為向心加速度),求該曲率半徑下的允許速度:
aa=(vc’/delt_t)2/r;v’c=sqrt(raa)delt_t
在拐點允許速度、vh、曲率半徑允許速度中取最小值,作為該點的速度。向心加速度也可以分解為x、y兩個方向上的分加速度。
θ是和之間的夾角,ci=1/ri是pi點的曲率,給出判斷高曲率點的標準如下,此處的高曲率點作為第一類速度拐點[1](在拐點的位置處需要降速):
(a)ci>ci-1和ci>ci+1;
(b)θ≤90°;
(c)θ>90°。
如果點pi同時滿足標準(a)和(b),可以判定此點是一個尖銳拐點;如果pi同時滿足標準(a)和(c),可以判定此點是一個高曲率點但不是尖銳拐點。非尖銳拐點有可能包含在準直線段內,而尖銳拐點一定是降速點。
[align=center]

圖2 拐點和準直線[/align]
準直線概念
準直線段的定義:兩拐點(或起始點與拐點)之間各線段的組合。在準直線段內,所有兩條線段的交點速度都小于允許速度,因此,可以作為一條直線來看待和計算。描述準直線的重要參數:起始速度v0、末速度ve、長度(直線內各線段長度之和),當這三個參數確定后,可以唯一確定與其對應的s型速度曲線。如圖2中p1~p4就是一條準直線,其長度l=l1+l2+l3。直線段是準直線段的特例。
準直線段的安全性:當一條準直線段的末速度為最小速度v0時,則這條準直線是安全的,不會因為后續的準直線銜接不上導致沖擊,至多會引起停頓。
準直線段的合并:前一條準直線段的末速度等于后一條準直線段的初速度。對后一條準直線段來說,若其長度l不能滿足從其初速度v’o 按照降速模型降至其末速度v’e ,則改準直線段必須與前一條準直線段合并成一條新的準直線段。若l4不能滿足從其初速度v’o 降速到其末速度v’e,則p4p5與前一條準直線段p1~p4合并成一條新的準直線段p1~p5,該準直線段的初速度vo、末速度為v’e、長度l’=l1+l2+l3+l4。
任意一條準直線段,只要其末速度ve>v0,都有可能與后一條準直線段合并。合并過程是一個倒推過程,直到滿足降速模型。該倒推過程是針對準直線段,與以前的算法相比,大大提高效率。
計算vt,在pi點處速度大小不變,方向發生了變化即產生了δv,δv=vtsin(θ/2)2,可得:

=

將aa帶入at,求出vt,δt=1ms;
判斷:if vt≤vh,那么vt為該點的許用速度vc=vt,該點為拐點;
else vt>vh該交點不是拐點,通過曲率半徑計算出許用速度,兩者取最小值作為該點的許用速度vc。
當兩直線段交點處的允許速度vc大于或等于最大速度vh,則該交點不是拐點,如圖2中p2和p3;根據初速度vo(或當前速度v1)、及兩直線段交點的允許速度(vc
插補算法
定時插補算法
定時插補(粗插補)算法是通過對加速度,速度的遞推計算出當前段的速度,根據定時delta_t,得出來delta_l=v×delta_t,對準直線用剩余距離來驗算降速觸發點,降速點的觸發過程如圖3所示。
[align=center]
圖3 用剩余距離來驗算降速觸發點[/align]
粗插補算法
粗插補算法即為等長分割,就是處理通過定時分割后得到的距離li(δxi, δyi),準直線長度為l=σli,就是對li進行m等分,每段定長為l的話,
(即對x方向進行了mx等分,對y方向進行了my等分)。li= vi δt,如圖4所示,定時分割完以后形成v1,v2,v3…的速度圖,定長分割后將v1和v2之間也進行了細分,細分后的速度記為v11,v12,…,v1m。根據公式
,根據公式求出:
計算v2,v3之間的速度值。
[align=center]
圖4 粗插補速度圖[/align]
結語
實驗結果如圖5所示,實驗中采用的參考數據為aa = 1000;ad = -1000; vsa = 2000; vsd = 2000;delt_t = 0.001;vh = 5000;ja = aa×aa/(2×vsa) ;jd = ad×ad/(2×vsd) ;編程使用c/c++基于vc6.0的環境,通過軟件生成g代碼下載到mpc05卡。
[align=center]
圖5 速度曲線[/align]
從圖5中明顯看出速度達到了很好的平滑,圖5中有六條準直線,因此就存在六條s型速度曲線。通過在電機齒輪上的測試,機械振動有了很明顯的改善,無明顯沖擊。實驗證明該算法能夠很好的減小機械振動,提高機械切割的精度和質量,在算法的誤差分析方面還有待進一步的研究。