電機(jī)SpTA控制算法_第1頁
電機(jī)SpTA控制算法_第2頁
電機(jī)SpTA控制算法_第3頁
免費(fèi)預(yù)覽已結(jié)束,剩余1頁可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、電機(jī) SpTA 控制算法SpTA即Steps per Time algorithm,它與步進(jìn)電機(jī) S形曲線控制算不同,S形曲線控制算法思想是根據(jù)電機(jī)的步數(shù)來計(jì)算時(shí)間,即所謂的Time per Steps,該控制算法先計(jì)算電機(jī)每一步運(yùn)行頻率,再根據(jù)運(yùn)動(dòng)曲線計(jì)算得到時(shí)間參數(shù),而SpTA算法則是以時(shí)間計(jì)算為中心,根據(jù)時(shí)間來計(jì)算運(yùn)動(dòng)步數(shù)相關(guān)參數(shù),它的做法是將電機(jī)的運(yùn)動(dòng)時(shí)間分割成若干個(gè)合適的小時(shí)間片,在每個(gè)時(shí)間片內(nèi)它都將速度參數(shù)加到位置參數(shù)上,如果位置參數(shù)溢出,它就會輸出一個(gè)脈沖,速度參數(shù)根據(jù)加速度參數(shù)和時(shí)間而改變,隨著時(shí)間推移,速度參數(shù)越來越大,位置參數(shù)溢出頻率越來越高,則電機(jī)的運(yùn)行頻率也越來越高錯(cuò)誤

2、!未找到引用源。為了實(shí)現(xiàn)根據(jù)速度參數(shù)控制脈沖輸出頻率,需要定義以下變量:PosAccumulator += Actualvelocity; PosAdd = PosAccumulator >> 17;PosAccumulator -= PosAdd << 17; if(PosAdd! =0)/位置累加器+實(shí)際速度/移位,判斷速度累加器是否溢出/位置累加器去掉溢出部分/位置累加器溢出,產(chǎn)生一個(gè)不進(jìn)脈沖PosAccumulator位置累加器PosAdd位置增加值A(chǔ)ctualPositi on實(shí)際位置TargetPositi on目標(biāo)位置,用戶輸入步進(jìn)電機(jī)運(yùn)動(dòng)的步數(shù)在時(shí)間片到

3、來后進(jìn)行如下計(jì)算:ActualPositi on+=1;產(chǎn)生一個(gè)步進(jìn)脈沖隨著實(shí)際速度減小而降低。這樣控制器輸出的脈沖頻率就隨著實(shí)際速度的增大而增高,為了根據(jù)時(shí)間實(shí)現(xiàn)實(shí)際速度的變化,需要定義以下變量:VelAccumulator速度累加器ActualAccelerati on實(shí)際加速度,用戶設(shè)定的加速度數(shù)值VelAdd速度增加值A(chǔ)ctualVelocity實(shí)際速度Targetvelocity目標(biāo)速度在時(shí)間片到來后進(jìn)行如下計(jì)算:if(ActualVelocity!=TargetVelocity)/如果實(shí)際速度!=目標(biāo)速度VelAccumulator+=ActualAcceleration;/ 速度

4、累加器 + 實(shí)際加速度VelAdd = VelAccumulator >> 17;/移位,判斷速度累加器是否溢出VelAccumulator -=VelAdd << 17;/速度累加器去掉溢出部分if(ActualVelocity<TargetVelocity)/如果實(shí)際速度 <目標(biāo)速度ActualVelocity=MIN(ActualVelocity+VelAdd, TargetVelocity); / 實(shí)際速度為兩者中小者else if(ActualVelocity>TargetVelocity)/如果實(shí)際速度 >大于目標(biāo)速度ActualVe

5、locity=MAX(ActualVelocity -VelAdd, TargetVelocity);/ 實(shí)際速度為兩者中大者else/實(shí)際速度=目標(biāo)速度,不需要執(zhí)行加加速算法VelAccumulator=0;VelAdd=0;這樣,就實(shí)現(xiàn)了通過時(shí)間和目標(biāo)速度改變電機(jī)實(shí)際速度參數(shù),進(jìn)而間接改變控制器輸出脈沖的頻率,時(shí)間參數(shù)是隨著電機(jī)運(yùn)行而遞增的,目標(biāo)速度參數(shù)數(shù)值是使用一個(gè)狀態(tài)機(jī)根據(jù)當(dāng)前的運(yùn)行狀態(tài)來確定的,該狀態(tài)機(jī)具有四種狀態(tài):0: RAMP_IDLE空閑狀態(tài)1: RAMP_ACCELERAT加速狀態(tài)2: RAMP_DRIVING-勻速狀態(tài)3: RAMP DECELERAT減速狀態(tài)狀態(tài)狀態(tài)切換及

6、其條件如圖 3-11所示:圖3-11 SpTA控制算法狀態(tài)機(jī)狀態(tài)切換圖SpTA算法同樣是通過定時(shí)器來實(shí)現(xiàn)的,與S形曲線算法不同的是它沒有使用定時(shí)器的PWM功能,僅僅是通過定時(shí)器定時(shí)中斷來產(chǎn)生一個(gè)時(shí)間片,在定時(shí)器中斷服務(wù)子程序中完 成上述算法,在需要時(shí),通過控制GPI0產(chǎn)生一個(gè)步進(jìn)脈沖。SpTA與S型算法的比較:從上面的兩種算法可以看出,傳統(tǒng)的 s形曲線控制算法實(shí)現(xiàn)比較簡單,但是它將要輸 出的脈沖頻率(周期)和脈沖個(gè)數(shù)存儲在 RAM里,占用了一定的內(nèi)存,且要想實(shí)現(xiàn)更好的 控制效果,S形曲線的離散化程度越高,占用的 RAM越大,如果要改變電機(jī)的運(yùn)行速度曲 線,需要重新計(jì)算每個(gè)階段脈沖頻率和脈沖個(gè)數(shù)

7、,計(jì)算時(shí)使用了浮點(diǎn)數(shù),運(yùn)算量較大。SpTA算法是根據(jù)用戶輸入的加速度和目標(biāo)速度以及設(shè)定的總脈沖數(shù),自行決定如何輸出達(dá)到最佳運(yùn)動(dòng)效果的脈沖,它不需要占用額外的RAM來存儲每個(gè)階段脈沖頻率和脈沖個(gè)數(shù),算法實(shí)現(xiàn)基本上都是MC“拿手”的加減法和移位運(yùn)算,算法效率高,但是該算法為了達(dá)到較好的運(yùn)動(dòng)控制, 需要一個(gè)時(shí)間片很小的定時(shí)中斷來調(diào)整數(shù)據(jù),這樣在輸出一個(gè)脈沖期間要頻繁產(chǎn)生中斷,尤其是在電機(jī)起步和停止的時(shí)候,脈沖頻率低,但是定時(shí)器中斷的次數(shù)很高,這樣CPU的效率就會被定時(shí)器中斷拉低。從算法計(jì)算量、占用RAM大小、控制效果和CPU效率上,兩種控制算法對比分析如表 所示,綜合考慮二者的優(yōu)缺點(diǎn),本系統(tǒng)中對于試劑盤、樣本盤、反應(yīng)盤等負(fù)載較大的電機(jī)使用SpTA控制算法,其它負(fù)載使用S形曲線控制算法。表 步進(jìn)電機(jī)S形曲線控制算法與 SpTA控制算法比較分析比較項(xiàng)S形曲線控制算法SpTA控制算法

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論