電機控制算法_第1頁
電機控制算法_第2頁
電機控制算法_第3頁
已閱讀5頁,還剩8頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、電機控制算法 電機控制算法的作用是接受指令速度值,通過運算向電機提供適當(dāng)?shù)尿?qū)動電壓,盡快地和 盡快平穩(wěn)地使電機轉(zhuǎn)速達到指令速度值,并維持這個速度值。換言之,一旦電機轉(zhuǎn)速達到 了指令速度值, 即使在各種不利因素 (如斜坡、 碰撞之類等使電機轉(zhuǎn)速發(fā)生變化的因素 )的干 擾下也應(yīng)該保持速度值不變。為了提高機器人小車控制系統(tǒng)的控制精度,選用合適的控制 算法顯得十分必要??刂扑惴ㄊ侨魏伍]環(huán)系統(tǒng)控制方案的核心,然而并非越復(fù)雜、精度越 高的算法越好,因為比賽要求非常高的實時性,機器人必須在非常短的時間內(nèi)作出靈敏的 反應(yīng),所以現(xiàn)代的一些先進控制算法,比如模糊控制、神經(jīng)元網(wǎng)絡(luò)控制等就不能應(yīng)用到小 車控制系統(tǒng)里。

2、本系統(tǒng)選用了最常規(guī)、最經(jīng)典的 PID 控制算法,通過實際應(yīng)用取得了很好 的效果。1 比例項控制回路中的第一個偏差轉(zhuǎn)換環(huán)節(jié)就是比例項。 這一環(huán)節(jié)簡單地將偏差信號乘以常數(shù) K 得 到新的 CV 值(值域為 -100100)?;镜谋壤刂扑惴ㄈ缦拢簂oop:PV=ReadMotorSpeed()Error=SP-PVCV=Error*KpropSetpwm(cv) 上一段程序中的 SetPWM()函數(shù)并非將 CV 值作為絕對的 PWM 占空比來對待。否則,不斷 降低的偏差值會使輸出值接近零,而且由于電機工作時需要持續(xù)的 PWM 信號,控制系統(tǒng) 將會使電機穩(wěn)定在低速運轉(zhuǎn)狀態(tài)上,從而導(dǎo)致控制系統(tǒng)策略失

3、敗。相反,CV 值一般被取作當(dāng)前 PWM占空比的改變量,并被附加到當(dāng)前的 PWM占空比上。 這也要求 SetPWM()函數(shù)必須將相加后得到的 PWM 占空比限制在 0%100%。正的 CV 值將 使電機兩端電壓增加。負的 CV 值將使電機兩端電壓降低。如果 CV 值等于 0,則無需改變 但前占空比。較低的 K 值會使電機的速度響應(yīng)緩慢,但是卻很平穩(wěn)。較高的 K 值會使速 度響應(yīng)更快,但是卻可能導(dǎo)致超調(diào),即達到穩(wěn)定輸出前在期望值附近振蕩。過高的 K 值會 導(dǎo)致系統(tǒng)的不穩(wěn)定,即輸出不斷震蕩且不會趨于期望值。2 微分項任何變量的微分項被用來描述該變量是如何相對于另一個變量(多位時間 )變化的。換句話

4、說,任何變量的微分項就是它隨時間的變化率。如位移隨時間的變化率是速度。速度相對 于時間的微分是加速度。在 PID 控制器中,值得關(guān)心的是偏差信號相對于時間的微分,或稱變化率。絕大多數(shù)控制 器將微分項定義為:Rate=(E-E )/T式中, E 為當(dāng)前偏差, E 為前次偏差值, T 為兩次測量的時間間隔。負的變化率表明偏差 信號的改善。當(dāng)微分項被具體應(yīng)用于控制器中時,將一個常數(shù)乘以該微分項,并將它加到比例項上,就可以得到最終的 CV 值計算公式:CV=( K E)+( K Rate)當(dāng)偏差信號接近零時, CV 值將為負,所以當(dāng)偏差信號開始改善時,微分項的作用將逐漸減 弱校正輸出量。在某些場合下,

5、微分項還有利于超調(diào)量的消除,并可以允許使用較大的 K 值,從而可以改善響應(yīng)的快速性。微分環(huán)節(jié)還預(yù)示了偏差信號的變化趨勢。當(dāng)控制對象對 控制器的輸出響應(yīng)遲緩時,微分環(huán)節(jié)的作用尤為明顯。含有微分項的控制算法的偽代碼實現(xiàn)如下:loop:PV=ReadMotorSpeed()LastError=ErrorError=SP-PVRate=Error-LastErrorCV=Error*Kprop+Krate*RateSetPWM(CV)Goto loop3 積分項積分正好與微分相對。 假如有一個描述變化率 (微分)的表達式, 那么對該表達式的積分就將 得到隨時間變化的原物理量。如加速度的積分是速度,速度

6、的積分是位移。在 PID 控制回路中,偏差的積分代表從控制開始時算起所有偏差積累的總和。該總和被常數(shù) K 所乘后再添加到回路輸出中。在回路中,如果沒有積分環(huán)節(jié),盡管控制系統(tǒng)也會趨于 穩(wěn)定,但是由于某種原因輸出值可能最終也無法達到 SP值。一個簡單但完全的 PID 控制器地偽代碼實現(xiàn)如下:loop:PV=ReadMotorSpeed()LastError=ErrorIsum=Isum+ErrorError=SP-PVRate=Error-LastErrorCV=Error*Kprop+Krate*Rate+Kint*IsumSetPWM(CV)Goto loop由于積分項會越來越大,這就會使控制

7、回路在 SP 值的改變時響應(yīng)變慢,某些應(yīng)用場合在CV 值達到取值邊界 (如為:-100100)時會停止累加 Isum。在 SP值改變時, 也可以除去 Isum項。通過測試,發(fā)現(xiàn)計數(shù)器 0初值范圍在 16230 以內(nèi),可控硅能正常工作,且能夠?qū)崿F(xiàn)調(diào)節(jié) 電機從不能起動到全速運行的全過程。程序中定時器 0工作在方式 1,用 To 表示定時器 0計數(shù)初值的十進制值,定時器 0 置入的初值計算方法為:TH 0=(65536-To )/ 256TL 0=(65536-To) % 256這樣,通過外部函數(shù)改變 To 的值就可以調(diào)節(jié)電機的轉(zhuǎn)速了。1. P1控制算法系統(tǒng)中控制器采用 P1 控制算法,其離散增量算

8、式為:u(k)=Kpe(k)+Kie(k),式中,u(k)、e(k)、e(k)分別為第 k 步控制信號增量、偏差 信號增量和偏差信號; kp、Ki 分別為比例增益和積分增益。為克服積分飽和, 本文采用積分分離 P1控制算法, 當(dāng)誤差信號小于給定誤差時計算積 分控制量。由于被控電機通過 To起作用,同時,To 的變化范圍設(shè)定為 16230,而速度的變 化范圍為 O60,因此比例系數(shù)為: Kp=6230/60=103.8,本文取 Kp=100,積分增益 K1 的 值通常取得很小。2. 同速過程分析將目標(biāo)電機和被控電機的測速中斷計數(shù)分別用 N1、N2 表示,則目標(biāo)電機和被控電機 的轉(zhuǎn)速分別為: Vm

9、=6000/N1,Vs=6000/N2 ,式中, Vm,Vs 分別為目標(biāo)電機和被控電機的 轉(zhuǎn)速。如果 VmVs ,且 To-100(Vm-Vs)1,那么 To-=100(Vm-Vs);如果 VmVs, 且 To+100(Vs-Vm)6230,那么 To+=100(Vs-Vm) 。同時須注意到山值的調(diào)節(jié)依賴于兩個電機都能正常轉(zhuǎn)動的情況, 即N1 和 N2都不為零; 目標(biāo)電機是無需擔(dān)心,因為它完全受人為控制,一般是不會將其速度調(diào)節(jié)至零;對于被控 電機而言,其初始速度很可能為零,或者為其它某一接近零的值,這就意味著可能需要很 長一段時間,才能檢測到它旋轉(zhuǎn)一圈,針對此情況,可在軟件中設(shè)置強行轉(zhuǎn)動,即當(dāng)

10、 To 的值在 6230附近時,強行將 To 值變小,從而提前開始同速的時間。雙電機同速時特點為: To 值對應(yīng)于目標(biāo)電機速度,因此開始的時候應(yīng)盡量使 To 的值 向最終值貼近,這里可使用一個巧妙算法,目標(biāo)電機速度對額定速度百分比 PERC=Vm/60=100/N1 ,則被控電機 To 值大致為 To=6230(1-PERC)由于控制被控電機的 電流含有諧波分量信號,因此所計算的 To 值與最終 To 值會有一 些偏差 (一般偏小 ),但是通過這樣計算之后,電機速度同步過程時間會縮短很多。3. 同相措施本設(shè)計要求兩個電機不但同速,而且同相,同速是同相的基礎(chǔ),實現(xiàn)同速之后方能實 現(xiàn)同相。當(dāng)兩個電

11、機達到同速后,所產(chǎn)生 相位差是恒定的,對 N1 計數(shù)完畢到 N2 開始計數(shù)這段時間進行計時,假設(shè)計數(shù)值為 N3,要使兩個電機同相,可以簡單理解為使 N3 值變?yōu)榱恪?若不考慮相差一個 360 度相位角,增大或減小被控電機速度都可以達到同相效果,我們選擇速度在 30轉(zhuǎn)/ 分以上用減小速度來達到同 相,反之則選擇增加速度來達到同相。具體措施是:(1) 速度大于 30轉(zhuǎn)/分的區(qū)間,將被控電機速度設(shè)為零,即To=6230,等待時間計數(shù) (N1-N3) 后,再將速度值恢復(fù)為同速時的值,兩個電機即實現(xiàn)同相。(2) 速度小于 30轉(zhuǎn)/ 分的區(qū)間,將被控電機速度設(shè)為最大值,即 To=1,等待時間 VmN3/(60-Vm) 后,再將速度值恢復(fù)為同速時的值,兩個電機即達到同相。但是以上方法限于理想狀況,事實上,由于慣性作用,電機速度不可能會有瞬間變化, 也就并不能這么簡單的達到同相,對于同相控制,積分起到關(guān)鍵作用。利用比例積分思想 的同相算法如下:(3) 速度大于 30轉(zhuǎn)/分,減小被控電機的速度,并且 To 變化值與 (N1-N3)/N1 成比例, 同時與 (6230-To)成比例,因此 To+=(6230-To)(N1-N3)/N1 。(3)速度小于 30轉(zhuǎn)/分,增大被控電機速度, To 的變化值與 N3/

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論