通過完成一個(gè)具有一定復(fù)雜程度的機(jī)電閉環(huán)控制項(xiàng)目,進(jìn)行構(gòu)思、項(xiàng)目設(shè)計(jì),以51單片機(jī)為核心搭建控制系統(tǒng),驅(qū)動(dòng)垂直起降系統(tǒng)的螺旋槳,使垂直起降系統(tǒng)的懸臂升到期望的角度位置上。
技術(shù)條件
(1)51單片機(jī)開發(fā)板;(2)直流電機(jī),螺旋槳,懸臂;(3)電源;(4)計(jì)算機(jī)。
系統(tǒng)的建模與仿真 3.1建模建立 電機(jī)螺旋槳懸臂構(gòu)成了一組具有一定質(zhì)量的機(jī)械系統(tǒng),能夠在拉力的作用下,繞中心上下轉(zhuǎn)動(dòng),如圖一所示。為了簡(jiǎn)化分析,忽略懸臂質(zhì)量、忽略摩擦力。設(shè)l為懸臂長(zhǎng)度,m電機(jī)質(zhì)量, 懸臂角度,f為螺旋槳拉力,u電機(jī)電壓。 
圖一 受力分析 
圖二 電機(jī)螺旋槳懸臂系統(tǒng)工作原理 角度:定義水平方向?yàn)榱愣龋鏁r(shí)針方向?yàn)檎较颉?/font> 工作點(diǎn):懸臂受到螺旋槳拉力和重力的共同作用。拉力與電機(jī)電壓 有關(guān),始終垂直于懸臂與運(yùn)動(dòng)方向。重力在運(yùn)動(dòng)方向上的分量為 。若施加某個(gè)電壓 螺旋槳產(chǎn)生拉力 ,使懸臂穩(wěn)定停留在某個(gè)位置,則此時(shí) 。這時(shí)就構(gòu)成了一個(gè)工作點(diǎn) 。 3.1.1電機(jī)螺旋槳模型 給電機(jī)施加電壓u,電機(jī)帶動(dòng)螺旋槳旋轉(zhuǎn)產(chǎn)生拉力f,已知電機(jī)電壓和轉(zhuǎn)速的簡(jiǎn)化數(shù)學(xué)模型為一階線性微分方程。 (1)
其中T為時(shí)間常數(shù),表征了系統(tǒng)的響應(yīng)速度快慢。K為系統(tǒng)穩(wěn)態(tài)增益,表征了當(dāng)轉(zhuǎn)速穩(wěn)定不變時(shí),電壓和轉(zhuǎn)速成正比。 電機(jī)電壓和轉(zhuǎn)速之間的傳遞函數(shù)由式(1)可知為 (2)
這里假設(shè)在工作點(diǎn)附近螺旋槳拉力和電機(jī)轉(zhuǎn)速成正比,Kf是比例系數(shù)。那么拉力和電壓的傳遞函數(shù)可以得到 (3)
3.1.2懸臂系統(tǒng)數(shù)學(xué)模型 切線方向上的運(yùn)動(dòng)方程由牛頓第二定律可得 (4)
其中,b代表摩擦阻力。方程中存在難以分析的非線性項(xiàng) 。但是我們可以使用微小偏差法對(duì)其在某個(gè)特定的工作點(diǎn)附近進(jìn)行線性化。首先將力和轉(zhuǎn)角表達(dá)為工作點(diǎn)附近的增量形式, , 帶入上式得到 (5) (6)對(duì)非線性項(xiàng) 在工作點(diǎn) 處使用一階泰勒級(jí)數(shù)展開進(jìn)行局部線性化 (7)將式(7)代入式(6),并考慮到 ,得到近似后的線性方程 (8)為了簡(jiǎn)化表達(dá),去掉△符號(hào),并整理為標(biāo)準(zhǔn)形式 (9)傳遞函數(shù) (10)3.1.3電機(jī)螺旋槳懸臂系統(tǒng)數(shù)學(xué)模型 電機(jī)螺旋槳懸臂可以看作一個(gè)整體,則合并式(3)(10)、消去中間變量F(s),得到指令電壓和懸臂實(shí)際角度的傳遞函數(shù)為 (11)當(dāng)懸臂位于水平線下方時(shí), , ,則 是一個(gè)正數(shù)。此時(shí)分母多項(xiàng)式里沒有負(fù)系數(shù)。 懸臂系統(tǒng)為三階系統(tǒng),有3個(gè)極點(diǎn) 、 、 。如果電機(jī)的反應(yīng)速度非?,遠(yuǎn)快于懸臂的反應(yīng)速度,也就是說(shuō)對(duì)應(yīng)的極點(diǎn)遠(yuǎn)離虛軸,其他兩個(gè)極點(diǎn)是主導(dǎo)極點(diǎn)。則可以簡(jiǎn)化為2階系統(tǒng)。 (11)3.2 PID 控制以及MATLAB仿真 比例積分微分(PID)控制器 比例控制能夠提高系統(tǒng)響應(yīng)速度,減小穩(wěn)態(tài)誤差,但是穩(wěn)定性減弱、震蕩加劇。因此引入微分控制抑制震蕩改善穩(wěn)定性。如果希望消滅穩(wěn)態(tài)誤差,就需要引入積分環(huán)節(jié)提高系統(tǒng)穩(wěn)定性。 
仿真圖 
利用simulink中進(jìn)行仿真分析查看P、PD、PI、PID控制器的控制效果 
圖一 仿真原理 說(shuō)明:圖一為控制系統(tǒng)的simulink仿真模型。 PID 控制是工業(yè)控制實(shí)踐中最常見的控制算法(95%以上)?刂破饔杀壤龁卧≒, proportional)、積分單元(I,integral)和微分單元(Dderivative)組成,包含 Kp、Ki 和 Kd 三個(gè)需要設(shè)定的系數(shù)?刂圃砣鐖D 2所示,微分方程及傳遞函數(shù)如下式所示。 
PID控制原理圖 

PID 控制器的比例、積分和微分作用分別對(duì)應(yīng)當(dāng)前誤差、過去累計(jì)誤差及誤差變化速度(未來(lái)誤差)。若是不知道受控系統(tǒng)的特性,一般認(rèn)為 PID 控制器是最適用的控制器。借由 調(diào)整 PID 控制器的三個(gè)參數(shù),可以調(diào)整控制系統(tǒng),設(shè)法滿足設(shè)計(jì)需求?刂破鞯捻憫(yīng)可以用 控制器對(duì)誤差的反應(yīng)快慢、控制器超調(diào)程度及系統(tǒng)震蕩的程度、穩(wěn)態(tài)誤差大小來(lái)表示。 根據(jù)具體應(yīng)用場(chǎng)合可以使用PID 控制的各種組合,如P控制、PI控制、PD控制等。其中以PI控制最常用,I 控制能夠消除穩(wěn)態(tài)誤差。D 控制對(duì)反饋信號(hào)噪聲十分敏感,需要精心 設(shè)計(jì)。 3.2.1 數(shù)值計(jì)算 比例、積分、微分算法在沒有計(jì)算機(jī)的年代是使用模擬器件來(lái)實(shí)現(xiàn)的,F(xiàn)代工業(yè)中普遍 使用數(shù)字計(jì)算機(jī)實(shí)現(xiàn)。計(jì)算機(jī)以固定時(shí)間間隔????不斷的重復(fù)運(yùn)行 PID 控制算法,第 k 次的比 例控制項(xiàng)????(??)、微分控制項(xiàng)????(??)、積分控制項(xiàng)????(??)分別如下  

然后 合成控制器的總輸出  
PID算法流程圖 3.2.2 PID 控制算法實(shí)現(xiàn) 1. 微分控制對(duì)高頻擾動(dòng)十分敏感,需要設(shè)法抑制; 2. 積分控制存在積分飽和問題,對(duì)控制效果影響較大,需要解決; 4系統(tǒng)硬件電路設(shè)計(jì)和軟件編程 4.1電路設(shè)計(jì) 4.1.1硬件電路圖 總電路圖
 局部電路圖1(總開關(guān)) 局部電路圖2(晶振)  局部電路圖3(USB讀寫模塊) 
局部電路圖4(LED顯示屏模塊)   局部電路圖5(USB轉(zhuǎn)串口模塊) 局部電路圖6(ad轉(zhuǎn)換模塊) 
局部電路圖6(電機(jī)驅(qū)動(dòng)模塊模塊) 說(shuō)明:利用89C51單片機(jī)來(lái)實(shí)現(xiàn)對(duì)直流電機(jī)的PID控制以及實(shí)時(shí)狀態(tài)數(shù)據(jù)的顯示。 4.1.3 PCB電路圖
PCB圖 PCB三維圖 4.1.3 Proteus電路圖仿真  說(shuō)明:仿真符合預(yù)期效果。 4.1.4元件清單 單片機(jī)STC90C516RD+(1) PCF8591T ad轉(zhuǎn)換芯片——(1) CH340G USB轉(zhuǎn)串口芯片——(1) ULN2003電機(jī)驅(qū)動(dòng)芯片——(1) LED顯示屏LCM1602K-NSW-BBW——(1) Micro USB連接器——(1) 開關(guān)K2-1107ST-A4SW-06——(3) 排針X6511WV-04H-C30D60——(3) 晶振X49SD27MSD2SC——(2) 三極管2n3904S-RTK/PS——(1) 電阻:10KΩ——(2);200Ω——(1);4.7K——(1);10KΩ可變電阻VZ067TL1B103——(1);10K排阻C26615——(1) 電容:10u——(1);22p——(6);104——(2);0.1u——(1)22u——(2)電化學(xué)電容1u——(1) 4.2原理圖以及流程圖規(guī)劃 
原理圖 說(shuō)明: 我們用51單片機(jī)去控制電機(jī)轉(zhuǎn)到指定角度,并通過lcd顯示出來(lái)   系統(tǒng)的綜合測(cè)試和評(píng)估 5.1 PID測(cè)試實(shí)現(xiàn)過程 比例(P)控制 當(dāng)控制器的輸出與偏差成比例時(shí),稱之為比例控制(proportional control)。即  系統(tǒng)閉環(huán)傳遞函數(shù)為   利用終值定理求得單位階躍響應(yīng)的穩(wěn)態(tài)值 
分析可知 ,電機(jī)的指令電壓控制了電機(jī)轉(zhuǎn)速,即拉力。比例控制意味著拉力和誤差成正 比。因此: 1) 比例控制必然存在誤差。誤差是產(chǎn)生拉力的源泉,沒有誤差就沒有拉力。要維持一 定的拉力,????越大,所需的誤差就越。 2) 比例控制器的輸出只和誤差成正比,????越大,控制器反應(yīng)越靈敏。當(dāng)懸臂快速?zèng)_到 指定位置時(shí),誤差為 0,拉力也為 0,加速度為 0。雖然懸臂的加速度為 0,但可能 還會(huì)存在一定速度,產(chǎn)生過沖。 
圖一P控制的理論曲線 通過實(shí)驗(yàn)我們發(fā)現(xiàn)Kp較大時(shí)會(huì)加快響應(yīng)速度快速達(dá)到穩(wěn)定,能減少誤差但不能消除誤差,Kp越大時(shí)會(huì)很容易引起振蕩;Kp減小,發(fā)生振蕩的可能性減小,但調(diào)節(jié)速度變慢。 比例微分(PD)控制 一個(gè)控制系統(tǒng)的基本要求是穩(wěn)定、準(zhǔn)確、快速。增加比例控制系數(shù)能夠減小偏差提高準(zhǔn) 確性、減小反應(yīng)時(shí)間提高快速性。但是同時(shí)帶來(lái)的問題就是系統(tǒng)穩(wěn)定性減弱,表現(xiàn)為容易過 沖、產(chǎn)生震蕩。 當(dāng)控制器輸出不僅和偏差成比例,同時(shí)還與偏差的變化速度(微分)成比例時(shí),稱之為 比例微分控制(Proportional + Derivative control)。 即:  對(duì)應(yīng)傳遞函數(shù): PD控制中的比例項(xiàng)能夠減小偏差,微分項(xiàng)能夠減小偏差的變化速度、抑制振蕩。PD控制方框圖如下圖所示。 
如果懸臂能夠簡(jiǎn)化為標(biāo)準(zhǔn)二階系統(tǒng) ,則 PD 控制的閉環(huán)傳遞函數(shù)為 
從理論上分析,增加 Kd會(huì)增加阻尼比,抑制振蕩。單純的比例控制器增加Kp 能夠減小誤差、增加響應(yīng)速度,但是會(huì)增加超調(diào)、惡化穩(wěn)定性。產(chǎn)生超調(diào)的原因前面已經(jīng)簡(jiǎn)要說(shuō)明過,原因是當(dāng)偏差為0時(shí),偏差的速度不為0,這時(shí)引入微分控制作用可以抑制偏差的變化。理想情況是偏差為0時(shí),偏差的速度也為 0,達(dá)到穩(wěn)定狀態(tài)。 
圖五pd控制理論響應(yīng)曲線 經(jīng)過調(diào)節(jié)我們發(fā)現(xiàn)理論和實(shí)際有一些不吻合我們認(rèn)為是在現(xiàn)實(shí)系統(tǒng)中系統(tǒng)響應(yīng)速度慢,使微分環(huán)節(jié)作用削弱。微分控制可以改善動(dòng)態(tài)特性,如超調(diào)量減少,調(diào)節(jié)時(shí)間縮短,允許加大比例控制,使靜差減小,提高控制精度。但當(dāng)Kd偏大或偏小時(shí),超調(diào)量較大,調(diào)節(jié)時(shí)間較長(zhǎng),只有合話的時(shí)候,才可以得到比較滿意的過渡過程。 比例積分(PI)控制 在積分控制中,控制器的輸出與輸入誤差信號(hào)的積分成正比關(guān)系。對(duì)一個(gè)自動(dòng)控制系統(tǒng),如果在進(jìn)入穩(wěn)態(tài)后存在穩(wěn)態(tài)誤差,則稱這個(gè)控制系統(tǒng)是有穩(wěn)態(tài)誤差的或簡(jiǎn)稱有差系統(tǒng)(System with Steady-state Error)。為了消除穩(wěn)態(tài)誤差,在控制器中必須引入“積分項(xiàng)”。積分項(xiàng)對(duì)誤差取決于時(shí)間的積分,隨著時(shí)間的增加,積分項(xiàng)會(huì)增大。這樣,即便誤差很小,積分項(xiàng)也會(huì)隨著時(shí)間的增加而加大,它推動(dòng)控制器的輸出增大使穩(wěn)態(tài)誤差進(jìn)一步減小,直到等于零。因此,比例+積分(PI)控制器,可以使系統(tǒng)在進(jìn)入穩(wěn)態(tài)后無(wú)穩(wěn)態(tài)誤差。積分調(diào)節(jié)作用:是使系統(tǒng)消除穩(wěn)態(tài)誤差,提高無(wú)差度。因?yàn)橛姓`差,積分調(diào)節(jié)就進(jìn)行,直至無(wú)差,積分調(diào)節(jié)停止,積分調(diào)節(jié)輸出一常值。積分作用的強(qiáng)弱取決與積分時(shí)間常數(shù)Ti, Ti越小,積分作用就越強(qiáng)。反之Ti大則積分作用弱,加入積分調(diào)節(jié)可使系統(tǒng)穩(wěn)定性下降,動(dòng)態(tài)響應(yīng)變慢。積分作用常與另兩種調(diào)節(jié)規(guī)律結(jié)合,組成PI調(diào)節(jié)器。 
圖九 kp0.018 ki0.58理論響應(yīng)曲線 從圖中對(duì)比可以發(fā)現(xiàn)積分環(huán)節(jié)的作用是:只要系統(tǒng)存在誤差,積分控制作用就不斷地積累,輸出控制量以消除誤差。因此只要有足夠的時(shí)間,積分控制將能完全消除誤差,但是積分作用太強(qiáng)會(huì)使系統(tǒng)超調(diào)加大,甚至使系統(tǒng)出現(xiàn)振蕩。 PID 實(shí)際運(yùn)行 
圖二 kp=0.5 ki=0.6 kd=0.15響應(yīng)曲線 
圖三 kp=0.5 ki=0.6 kd=0.15響應(yīng)曲線理論響應(yīng)曲線 我們發(fā)現(xiàn)PID控制可以較好地實(shí)現(xiàn)系統(tǒng)穩(wěn)定通過PID算法的組合可有效地糾正被控制對(duì)象的偏差,從而使其達(dá)到一個(gè)穩(wěn)定的狀態(tài)。但實(shí)際系統(tǒng)和理論系統(tǒng)總存在不足無(wú)法達(dá)到想要的理論狀態(tài),我們?cè)趯?shí)際中發(fā)現(xiàn)該組pid可以很好的控制懸臂系統(tǒng)因此選用該組pid參數(shù)。
5.2綜合評(píng)估 在這次設(shè)計(jì)中我們首先將項(xiàng)目分成三部分:第一部分通過51單片機(jī)將角度讀出,第二部分實(shí)現(xiàn)按鍵能改變?cè)O(shè)定角度,第三部分實(shí)現(xiàn)可以通過pid控制螺旋槳懸停在特定角度。 在實(shí)現(xiàn)項(xiàng)目過程中我們遇到了一些困難,并通過組員的一起努力解決問題。 (1)在讀取電位器角度并將其顯示在LCD上時(shí),我們發(fā)現(xiàn)電位器讀到的數(shù)據(jù)并不能及時(shí)顯示在LCD上,有很長(zhǎng)的延時(shí)。我們通過查閱資料和咨詢老師最終發(fā)現(xiàn)在我們的庫(kù)函數(shù)里存在較長(zhǎng)時(shí)間延時(shí)從而導(dǎo)致數(shù)據(jù)不能被及時(shí)顯示,我們刪去了延時(shí),發(fā)現(xiàn)角度可以很好顯示在LCD上。 (2)在調(diào)試程序時(shí)我們發(fā)現(xiàn)讀取的角度和設(shè)定的角度并不能一起顯示在LCD上,我們把自己所寫的顯示函數(shù)封裝成函數(shù),并將顯示當(dāng)前角度的代碼放在設(shè)定角度代碼上面,通過這樣的調(diào)試我們的LCD可以很好顯示。 (3)在pid控制時(shí)我們發(fā)現(xiàn)單片機(jī)雖然可以實(shí)現(xiàn)對(duì)電機(jī)控制但是波動(dòng)周期和時(shí)間都很大,經(jīng)過查閱資料和討論我們發(fā)現(xiàn)應(yīng)該是定時(shí)器中斷時(shí)間和pwm周期存在問題,經(jīng)過試驗(yàn)我們把定時(shí)器中斷時(shí)間設(shè)置在10微秒,pwm周期為1毫秒, 這時(shí)的電機(jī)可以很好的控制。 (4)在調(diào)試過程中我們發(fā)現(xiàn)螺旋槳雖然可以轉(zhuǎn)到指定角度但是只會(huì)維持一定的時(shí)間并不能長(zhǎng)時(shí)間維持在指定角度,我們經(jīng)過討論,和查閱資料認(rèn)為是pid的計(jì)算存在問題,我們重新設(shè)計(jì)了pid的計(jì)算方法,最終解決了這些問題。 在整個(gè)系統(tǒng)調(diào)試過程中我們 (5)比例控制一定存在誤差。誤差是產(chǎn)生拉力的源泉,沒有誤差就沒有拉力。比例控制器的輸出只和誤差成正比,比例控制當(dāng)快速到指定位置時(shí),會(huì)發(fā)生過沖。 用比例微分控制時(shí),PD控制中的比例項(xiàng)能夠減小偏差,微分項(xiàng)能夠減小偏差的變化速度、抑制振蕩。微分控制可以改善動(dòng)態(tài)特性,如超調(diào)量減少,調(diào)節(jié)時(shí)間縮短,允許加大比例控制,使靜差減小,提高控制精度。但當(dāng)Kd偏大或偏小時(shí),超調(diào)量較大,調(diào)節(jié)時(shí)間較長(zhǎng),只有合話的時(shí)候,才可以得到比較滿意的過渡過程。 比例+積分(PI)控制器,積分環(huán)節(jié)可以使系統(tǒng)在進(jìn)入穩(wěn)態(tài)后無(wú)穩(wěn)態(tài)誤差,提高誤差度。 PID控制可以較好地實(shí)現(xiàn)系統(tǒng)穩(wěn)定通過PID算法的組合可有效地糾正被控制對(duì)象的偏差,從而使其達(dá)到一個(gè)穩(wěn)定的狀態(tài)。 (6)電路圖的繪制起初對(duì)整體電路圖不熟悉,導(dǎo)致在Proteus中仿真失敗,后來(lái)發(fā)現(xiàn)是硬件型號(hào)不對(duì),不同型號(hào)和規(guī)格的電容以及三極管對(duì)電路的影響會(huì)累積,導(dǎo)致最后的結(jié)果誤差極大,最后在多次更換調(diào)試后得以解決。 (7)PCB板的繪制最開始在AD上繪制,但各種元件庫(kù)還需要下載極其不方便,導(dǎo)致浪費(fèi)了很多時(shí)間,究其原因也是對(duì)軟件的不熟悉,之后用的eda在線繪圖,進(jìn)度就加快了很多,對(duì)應(yīng)的元器件也能看見實(shí)物圖以及對(duì)應(yīng)封裝,能夠?qū)υ懈羁痰挠∠蟆?/font> 1-31頭文件,端口等定義,為程序運(yùn)行做準(zhǔn)備 32-41 主函數(shù),對(duì)液晶初始化,執(zhí)行顯示函數(shù)和控制函數(shù) 42-45 顯示函數(shù),顯示出當(dāng)前角度和設(shè)定角度 46-53 讀取電位器數(shù)據(jù),顯示角度 54-58 鍵盤掃描函數(shù) 59-70 pid控制函數(shù),輸出計(jì)算后pid值 62-85 定時(shí)器輸出pwm 86-167 lcd1602庫(kù)文件 167-182 延時(shí)庫(kù)文件 183-238 i2c通信庫(kù)文件 239-251 鍵盤掃描庫(kù)文件
本文來(lái)自作者wc201314 :http://www.torrancerestoration.com/bbs/dpj-199699-1.html
|