王 慧,黃 帥
(中國電子科技集團公司第四十五研究所,北京 100176)
插補模式或者PVT 通常被應(yīng)用于伺服控制系統(tǒng)的軌跡規(guī)劃。伺服驅(qū)動器通過CAN 總線接收一系列的PVT點,每一個PVT點都由位置、速度、時間組成,伺服驅(qū)動器在這些點之間進行插補,以得到所需要的運動軌跡。PVT 控制最為關(guān)鍵的是分割時間的選擇,和分割時間內(nèi)相應(yīng)的速度設(shè)置,以及如何確定軌跡規(guī)劃時間。
對于PVTPoints 要仔細(xì)考慮所使用的PVT點的數(shù)量,太少的點電機無法準(zhǔn)確跟隨速度曲線規(guī)劃,太多的點會導(dǎo)致CAN 總線網(wǎng)絡(luò)阻塞。最大數(shù)量的PVT 間隔取決于所應(yīng)用的網(wǎng)絡(luò)類型,對于CanOpen,間隔不能超過255 ms。
關(guān)于PVT 時間分割,較小的分段時間可以減少誤差,但是,整個過程必然會有一個誤差最小的分割間隔,如果想通過計算獲得系統(tǒng)誤差允許范圍內(nèi)最小的時間分割是非常困難的。通常最好的辦法就是系統(tǒng)最高頻率(位置環(huán))的1/10~1/20(由數(shù)字采樣系統(tǒng)理論推出),此外,當(dāng)速度較小時,即位移變化較慢時,PVT點的時間間隔較長一點比較好,相反,當(dāng)速度較大時,即位移變化較快時,PVT點的時間間隔較短一點比較好。
針對不同的控制器,他們都有自己的PVT點數(shù)設(shè)置方法,用戶只是應(yīng)用已存在的設(shè)置方法來完成自己的需要。
事實上,比分割時間段更為重要的就是在設(shè)定的分割時間內(nèi),給出滿足其設(shè)定要求的準(zhǔn)確速度。
以T曲線為例,速度線性變化至目標(biāo)值,T型曲線軌跡規(guī)劃可分為三段,如圖1所示。
圖1 T型曲線軌跡
A1段加速度為確定值,即速度的變化規(guī)律。A2段加速度為0,速度達(dá)到目標(biāo)值;A3段為勻減速段。以此類推,當(dāng)給出確定的速度、加速度、減速度,就可以演化出S曲線波形,典型的S曲線如圖2所示。
圖2 S曲線位置軌跡
當(dāng)給出確定的速度、加速度、減速度,則完成該運動所需要的時間就可以計算出來。將速度分解成3 段,加速段、勻速段、減速段,完成運動所需要的時間為T總。
Ta:加速段時間,Td:加速段時間,Tc:加速段時間,Aa為加速段的加速度,Ad為減速段的減速度。由圖1 可得:
同理:
勻速段加速度為0,則:
其中:Vt為目標(biāo)速度,Pt為目標(biāo)位置,Aa為加速度,Ad為減速度。
運動所需的時間是用于確定PVT點的間隔,所以:
其中:I為PVT點的時間間隔,Np為PVT 分割點數(shù)目。
由圖1 可得加速段的位移是對速度的積分獲得。
其中:A1同為加速度段的位移,V0為初始速度。
當(dāng)其時速度為0,加速度不變時,該式可演化為:
即:
此刻的速度計算為:
勻速段的位移A2為:
此處的初始位移P0:
由于勻速段加速度為0,所以
減速段的位移A3計算公式為:
由此三個階段的總位移Pt:
將上式簡化為:
其中目標(biāo)位置就是將目標(biāo)速度對時間積分所得與加速度(或者減速度)對時間的積分所得和初始位置累加而得來的。積分的過程就是N個這樣時間點對應(yīng)的位置的累加,每個軸在設(shè)置上都采用同樣的速度,加速度,相同的目標(biāo)位置,從而在每個相同時間點上達(dá)到相同的位置,繼而實現(xiàn)理論上的同步。
下圖是某設(shè)備的爐內(nèi)機械手,其機械結(jié)構(gòu)圖3所示。
在圖3 中,機械手前爪1、2 在機械結(jié)構(gòu)上由一個電機驅(qū)動,機械手后爪1、2 在機械結(jié)構(gòu)上由另一個電機驅(qū)動,兩個電機的可控行程完全一致,通過控制兩個電機的行走位置來完成具體的抓片動作。在硅片抓取過程中不允許硅片晃動,如果兩個電機速度不同步都會引起夾碎硅片,所以同步性非常重要。
圖3 機械手機構(gòu)圖
Copley CanOpen 直接集成了PVT的軌跡算法,下面簡要介紹一下PVT 函數(shù)的設(shè)置方法。
首先引入SDO(主從對象字典,master →slave,一對一),PDO(過程對象字典master→master,master →slave,一對多)。
對于Copley 驅(qū)動器來說,它的PVT 使用方法較為簡單,主要是通過Link 類來實現(xiàn)的,該函數(shù)主要適用于多軸聯(lián)動。
該函數(shù)中,目標(biāo)位置的維數(shù)必須等于Linkage所控制的軸數(shù),即作N 軸插補,則PVT點的坐標(biāo)維數(shù)為N。
這種方法使Link 函數(shù)規(guī)劃出一種N 維的點對點直線運動,運動中的速度、加減速度、和加加速度都將被限定在設(shè)定的范圍內(nèi)。MoveTo 函數(shù)得到聯(lián)動指令會立即觸發(fā)運動。
該函數(shù)觸發(fā)一系列經(jīng)過計算的PVT點組成的運動軌跡,該計算值是浮點型的,所以在定義變量庫時要進行浮點型定義。
其中:
參數(shù)pN 維位置坐標(biāo)點
參數(shù)maxvel 速度最大限制
參數(shù)maxacc 加速度最大限制
參數(shù)maxdec 減速度最大限制
參數(shù)maxjrk 加加速最大限制
參數(shù)start 如果為真,link 類中的軸開始聯(lián)動,如果為假,規(guī)劃點將上傳,直到得到聯(lián)動指令。
我們對基本函數(shù)進行封裝后,得到多軸聯(lián)動所需的模塊函數(shù)組:
long MC_LinkInit(int NodeID);Link 類初始化
long MC_LinkHome(int NodeID);同步回初始位
long MC_LinkEnable (int NodeID,bool bEnable);同步驅(qū)動器初始化
long MC_LinkAmpAbsMove (int NodeID,double Pos);Link 絕對位移運動
longMC_SetLinkParam(doublevelLimit,double accelLimit,double decelLimit,double jerkLimit);
long MC_LinkAbsMoveDone(double Pos1,double Pos2);
long MC_LinkWaitMoveDone(int NodeID);
long MC_LinkSetSoftLimit (int NodeID,double dPos,double dNeg,double dAcc);
當(dāng)執(zhí)行兩個軸的同步運動時,直接調(diào)用以上函數(shù)就可達(dá)到控制所需的運動效果。在Copley 驅(qū)動器的軟件介紹中,這種PVT 控制的同步誤差幾乎只有1~2個脈沖。
PVT 是一種簡單的適用于任意位置軌跡規(guī)劃的計算規(guī)則,在不大量丟失精確數(shù)據(jù)的情況下,分段時間可以相應(yīng)的大一些,PVT 數(shù)據(jù)點既可以儲存在本地工作表中,也可以通過網(wǎng)絡(luò)通訊的方式下傳至各個軸。PVT 模式主要應(yīng)用于非高速網(wǎng)絡(luò)通訊的多軸控制系統(tǒng)。
[1]Calle Tecate.ADVANCED Motion Controls[Z].March 2001.
[2]Doxygen.Copley MotionLibrary Reference Manual[Z].Sep 2006.