電機SpTA控制算法_第1頁
電機SpTA控制算法_第2頁
電機SpTA控制算法_第3頁
電機SpTA控制算法_第4頁
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡介

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

2、高錯"聲戈到引用源。.為了實現(xiàn)根據(jù)速度參數(shù)控制脈沖輸出頻率,需要定義以下變量:PosAccumulator位置累力口器PosAdd位置增加值A(chǔ)ctualPosition實際位置TargetPosition目標(biāo)位置,用戶輸入步進(jìn)電機運動的步數(shù)在時間片到來后進(jìn)行如下計算:PosAccumulator += ActualVelocity;位置累加器 + 實際速度PosAdd = PosAccumulator >> 17;/移位,判斷速度累加器是否溢出PosAccumulator = PosAdd 17;位置累加器去掉溢出部分if (PosAdd!=0)位置累加器溢出,產(chǎn)生一個不

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

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

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

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

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

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論