《數(shù)字信號(hào)處理與DSP應(yīng)用》
課程論文
題目: 基于DSP的PID控制算法的實(shí)現(xiàn)
學(xué) 號(hào): 2011080911
姓 名: 蔡*威
班 級(jí): 6班
專 業(yè): 電路與系統(tǒng)
課程老師: 黃*生
二零一二年二月二十日 摘 要:按偏差的比例、積分和微分進(jìn)行控制的調(diào)節(jié)器稱為PID調(diào)節(jié)器,PID調(diào)節(jié)器是連續(xù)系統(tǒng)中技術(shù)成熟、應(yīng)用最為廣泛的一種調(diào)節(jié)器。它構(gòu)簡單,參數(shù)易于調(diào)整,在長期的應(yīng)用中已積累了豐富的經(jīng)驗(yàn)。特別在工業(yè)過程中,由于控制對(duì)象的精確數(shù)學(xué)模型難以建立,系統(tǒng)的參數(shù)又經(jīng)常發(fā)生變化,運(yùn)用現(xiàn)代控制理論分析綜合要耗費(fèi)很大的代價(jià)進(jìn)行模型辨識(shí),但往往不能得到預(yù)期的效果,所以人們常采用數(shù)字PID調(diào)節(jié)器,并根據(jù)經(jīng)驗(yàn)進(jìn)行在線整定。這次課程設(shè)計(jì)將綜合用數(shù)字信號(hào)處理DSP以及自動(dòng)控制方面的知識(shí),使用CCS集成開發(fā)環(huán)境進(jìn)行代碼的編譯,仿真,才能完成了本次設(shè)計(jì)。
前言在數(shù)字PID算法是目前一般控制領(lǐng)域中經(jīng)常使用的自動(dòng)控制算法,它依據(jù)給定的設(shè)定值,反饋值,以及比例系數(shù),積分和微分時(shí)間,計(jì)算出一定的控制量,使被控對(duì)象能保持在設(shè)定的工作范圍,并且可以自動(dòng)的消除外部擾動(dòng)。由于軟件系統(tǒng)的靈活性,經(jīng)計(jì)算出的PID參數(shù)可以在調(diào)試過程中隨時(shí)改變。能更精確的控制系統(tǒng)。得到較好的控制效果。PID 控制原理簡單、實(shí)現(xiàn)方便,并且適應(yīng)面廣、魯棒性強(qiáng),其控制品質(zhì)對(duì)被控對(duì)象特性的變化不是很敏感。隨著計(jì)算機(jī)技術(shù)的發(fā)展,在 PID 控制的基礎(chǔ)上,出現(xiàn)了很多改進(jìn)的數(shù)字 PID 控制方法 ,如微分先行 PID 控制、積分分離 PID 控制、帶死區(qū)的PID 控制等。對(duì)于數(shù)字PID 控制方法,又分為增量式 PID 控制算式和位置式 PID 控制算式。在絕大多數(shù)工業(yè)控制中,數(shù)字 PID 控制仍然是一種穩(wěn)定的、可靠的、實(shí)現(xiàn)簡單的、使用廣泛的控制方法。
本設(shè)計(jì)以TI公司的TMS320VC5509和外接 D/ A芯片,實(shí)現(xiàn)數(shù)字 PID 控制器,采用的 PID 控制算法是增量式 PID 控制算法。TMS320VC5509 具有較高的運(yùn)行速度和數(shù)據(jù)處理能力,能保證系統(tǒng)對(duì)多路模擬信號(hào)的實(shí)時(shí)采集和處理,提高系統(tǒng)的整體性能和集成度。在 DSP 內(nèi)部設(shè)置參考輸入量,通過DSP片上 10 位 A/ D 轉(zhuǎn)換器采樣,把控制對(duì)象的實(shí)際輸出量采集到 DSP 中,經(jīng)過DSP 的數(shù)字運(yùn)算處理后,通過外部的 D/ A AD7237 進(jìn)行數(shù)/ 模轉(zhuǎn)換,得到實(shí)際的模擬控制量去控制被控對(duì)象,使之按照系統(tǒng)的設(shè)置運(yùn)行工作。 1、模擬PID調(diào)節(jié)器 模擬PID控制系統(tǒng)組成如圖1所示: 圖1 模擬PID控制系統(tǒng)原理框圖 PID調(diào)節(jié)器是一種線性調(diào)節(jié)器,它將給定值r(t)與實(shí)際輸出值c(t)的偏差的比例(P)、積分(I)、微分(D)通過線性組合構(gòu)成控制量,對(duì)控制對(duì)象進(jìn)行控制。根據(jù)圖1,可以推導(dǎo)出PID調(diào)節(jié)器的微分方程為:
式中
u(t)——控制器(也稱調(diào)節(jié)器)的輸出; e(t)——控制器的輸入(常常是設(shè)定值與被控量之差,即e(t)=r(t)-c(t)); Kp——控制器的比例放大系數(shù); Ti ——控制器的積分時(shí)間; Td —— 控制器的微分時(shí)間。 1.1 PID調(diào)節(jié)器各校正環(huán)節(jié)的作用 比例環(huán)節(jié):即時(shí)成比例地反應(yīng)控制系統(tǒng)的偏差信號(hào)e(t),偏差一旦產(chǎn)生,調(diào)節(jié)器立即產(chǎn)生控制作用以減小偏差。對(duì)于大多數(shù)調(diào)節(jié)器而言,都不采用比例增益kc作為刻度,而是用比例度來刻度,即δ=1/kc*100%. 也就是說比例度與調(diào)節(jié)器的放大倍數(shù)的倒數(shù)成比例。調(diào)節(jié)器的比例度越小,它的放大倍數(shù)越大,它把偏差放大的能力越大,反之亦然。 積分環(huán)節(jié):主要用于消除靜差,提高系統(tǒng)的無差度。積分作用的強(qiáng)弱取決于積分時(shí)間常數(shù)TI,TI越大,積分作用越弱,反之則越強(qiáng)。調(diào)節(jié)器的積分作用就是為了消除自控系統(tǒng)的余差而設(shè)置的。所謂積分,就是隨時(shí)間進(jìn)行累積的意思,即當(dāng)有偏差輸入e存在時(shí),積分調(diào)節(jié)器就要將偏差隨時(shí)間不斷累積起來,也就是積分累積的快慢與偏差e的大小和積分速度成正比。只要有偏差e存在,積分調(diào)節(jié)器的輸出就要改變,也就是說積分作用總是起作用的,只有偏差不存在時(shí),積分才會(huì)停止。 微分環(huán)節(jié):能反應(yīng)偏差信號(hào)的變化趨勢(變化速率),并能在偏差信號(hào)的值變得太大之前,在系統(tǒng)中引入一個(gè)有效的早期修正信號(hào),從而加快系統(tǒng)的動(dòng)作速度,減小調(diào)節(jié)時(shí)間?梢姡⒎址至繉(duì)偏差的任何變化都會(huì)產(chǎn)生控制作用,以調(diào)整系統(tǒng)輸出,阻止偏差變化,預(yù)見隨后。偏差變化越快,則產(chǎn)生的阻止作用越大。對(duì)于一個(gè)固定不變的偏差e(t),不論其數(shù)值多大,根本不會(huì)有微分作用輸出。 2、 數(shù)字PID控制器 2.1 模擬PID控制規(guī)律的離散化 根據(jù)上表和模擬PID的數(shù)學(xué)表達(dá)式,可以退出數(shù)字PID控制器的差分方程為: 式中
稱為比例項(xiàng)
稱為積分項(xiàng)
稱為微分項(xiàng) 常用的控制方式有 P控制
PI控制
PD控制
PID控制
2.2 PID算法的兩種類型 2.2.1 位置型控制 基本PID控制器的理想算式為 式中
u(t)——控制器(也稱調(diào)節(jié)器)的輸出; e(t)——控制器的輸入(常常是設(shè)定值與被控量之差,即e(t)=r(t)-c(t)); Kp——控制器的比例放大系數(shù); Ti ——控制器的積分時(shí)間; Td——控制器的微分時(shí)間。 設(shè)u(k)為第k次采樣時(shí)刻控制器的輸出值,可得離散的PID算式
式中
,
。 由于計(jì)算機(jī)的輸出u(k)直接控制執(zhí)行機(jī)構(gòu)(如閥門),u(k)的值與執(zhí)行機(jī)構(gòu)的位置(如閥門開度),所以通常稱上式為位置式PID控制算法。
圖2 位置式PID控制器流程圖 位置式PID控制算法的缺點(diǎn):當(dāng)前采樣時(shí)刻的輸出與過去的各個(gè)狀態(tài)有關(guān),計(jì)算時(shí)要對(duì)e(k)進(jìn)行累加,運(yùn)算量大;而且控制器的輸出u(k)對(duì)應(yīng)的是執(zhí)行機(jī)構(gòu)的實(shí)際位置,如果計(jì)算機(jī)出現(xiàn)故障,u(k)的大幅度變化會(huì)引起執(zhí)行機(jī)構(gòu)位置的大幅度變化。 2.2.2增量型控制 增量型PID算法的算式為: 或者寫成 增量式PID是指數(shù)字控制器的輸出只是控制量的增量Δu(k)。采用增量式算法時(shí),計(jì)算機(jī)輸出的控制量Δu(k)對(duì)應(yīng)的是本次執(zhí)行機(jī)構(gòu)位置的增量,而不是對(duì)應(yīng)執(zhí)行機(jī)構(gòu)的實(shí)際位置,因此要求執(zhí)行機(jī)構(gòu)必須具有對(duì)控制量增量的累積功能,才能完成對(duì)被控對(duì)象的控制操作。執(zhí)行機(jī)構(gòu)的累積功能可以采用硬件的方法實(shí)現(xiàn);也可以采用軟件來實(shí)現(xiàn),如利用算式
程序化來完成。 由上式可得增量式PID控制算式
式中
進(jìn)一步可以改寫成
式中
、
、
一般計(jì)算機(jī)控制系統(tǒng)的采樣周期T在選定后就不再改變,所以,一旦確定了Kp、Ti、Td,只要使用前后3次測量的偏差值即可求出控制增量。 根據(jù)上述分析,其程序流程圖如下:
圖3 增量型控制算法路程圖 增量式算法優(yōu)點(diǎn):①算式中不需要累加。控制增量Δu(k)的確定僅與最近3次的采樣值有關(guān),容易通過加權(quán)處理獲得比較好的控制效果;②DSP每次只輸出控制增量,即對(duì)應(yīng)執(zhí)行機(jī)構(gòu)位置的變化量,故機(jī)器發(fā)生故障時(shí)影響范圍小、不會(huì)嚴(yán)重影響生產(chǎn)過程。 經(jīng)過綜合比較,最終選擇了增量式控制算法。 3.系統(tǒng)軟硬件設(shè)計(jì) 3.1硬件設(shè)計(jì) 為了實(shí)現(xiàn)上述控制算法,還需要硬件電路才行,設(shè)計(jì)電路原理圖如圖4所示: 從圖4 中可以看出,模擬量輸入,也即被控電機(jī)的實(shí)際輸出轉(zhuǎn)速,通過一個(gè)限流電阻 R 送到由 AD8041 構(gòu)成的電壓跟隨器里,經(jīng)過放大后,再經(jīng)二極管D1 和 D2嵌位以及電阻 R 限流,送到TMS320VC5509片上的 A/D 轉(zhuǎn)換其中使得 A/D 的輸入限制在 0~3 300 mV。TMS320VC5509 一共有16 路復(fù)用的片上 A/D 轉(zhuǎn)換器,本實(shí)例只采用第 0 通道的A/D轉(zhuǎn)換。由DSP計(jì)算出控制量,通過外部數(shù)據(jù)總線送給D/ A 轉(zhuǎn)換器,采用 AD 公司的 AD7237 芯片,他是 8 位 D/ A 轉(zhuǎn)換器,由DSP的外部地址總線A2 ,A1 ,A0 構(gòu)成D/ A轉(zhuǎn)換器的譯碼電路,D/ A轉(zhuǎn)換器的輸出采用AD7237 的A相輸出。TMS320VC5509 由外部提供復(fù)位信號(hào),由無源晶振提供6 MHz時(shí)鐘。片上 A/D 轉(zhuǎn)換器的參考電壓高電平 V 接DSP電源+3.3 V 。 圖4 DSP實(shí)現(xiàn)數(shù)字PID控制器的電路原理圖 3.2 軟件設(shè)計(jì) 本設(shè)計(jì)運(yùn)用了CCSV3.3軟件,它是一個(gè)完整的DSP集成開發(fā)環(huán)境,CCS支持軟仿真器、各種型號(hào)的硬仿真器、各種DSK和EVM板。 [11]CCS主要特點(diǎn)有:集成可視化代碼編輯界面,可以方便地直接編寫C、匯編、.h文件、.cmd文件等;集成代碼生成工具,包括匯編器、優(yōu)化的C編譯器和連接器等;具有完整的基本調(diào)試工具,可以載入執(zhí)行文件(.out),查看寄存器窗口、存儲(chǔ)器窗口和變量窗口、反匯編窗口等,支持在C源代碼級(jí)進(jìn)行調(diào)試;支持多片DSP聯(lián)合調(diào)試; 斷點(diǎn)工具,支持硬件斷點(diǎn)、數(shù)據(jù)空間讀/寫斷點(diǎn)、條件斷點(diǎn)等;探針工具(probe points),用于進(jìn)行算法仿真,數(shù)據(jù)監(jiān)視等;剖析工具(profile pionts),用于評(píng)估代碼執(zhí)行的時(shí)間;數(shù)據(jù)圖形顯示工具,可繪制時(shí)域/頻域波形、眼圖、星座圖等,并可以自動(dòng)刷新;提供GEI二工具,用戶可以根據(jù)需要編寫自己的控制面板/菜單,從而方便直觀地修改變量,配置參數(shù)。支持RTDX(Real time date exchange)技術(shù),利用該技術(shù)可以在不中斷目標(biāo)系統(tǒng)運(yùn)行的情況下,實(shí)現(xiàn)DSP與其它應(yīng)用程序(OLE)實(shí)現(xiàn)數(shù)據(jù)交換,具有開放式的plug-ins技術(shù),支持其它第三方的ActiveX插件。提供DSP、BIOS工具,利用該工具可增強(qiáng)對(duì)代碼的實(shí)時(shí)分析能力,減少開發(fā)人員對(duì)硬件資源熟悉程度的依賴性。
圖5 代碼調(diào)試與編譯 為了驗(yàn)證算法的可行性,現(xiàn)建立數(shù)字PID直流電機(jī)控制模型,然后用Matlab的LTI狀態(tài)分析工具箱進(jìn)行仿真,并繪制轉(zhuǎn)速及控制電壓變化圖形。 圖6 數(shù)字PID仿真模型 利用Matlab軟件和 LTI工具箱函數(shù),仿真源程序代碼如下: clear all; close all; ts=0.01; %采樣時(shí)間=0.001s sys=tf(2652,[1,25,490]); %建立被控對(duì)象傳遞函數(shù) dsys=c2d(sys,ts,'z'); %把傳遞函數(shù)離散化 [num,den]=tfdata(dsys,'v'); %離散化后提取分子、分母 e_1=0 %上一偏差 Ee=0; %偏差累計(jì) u_1=0.0; %上一狀態(tài)電壓 u_2=0.0; y_1=0; %上一狀態(tài)輸出 y_2=0; kp=2.5; %PID參數(shù) ki=0.04; kd=0.28; for k=1:100 time(k)=k*ts; %時(shí)間參數(shù) r(k)=500; %給定值 y(k)=-1*den(2)*y_1-den(3)*y_2+num(2)*u_1+num(3)*u_2; e(k)=r(k)-y(k); %偏差 u(k)=kp*e(k)+ki*Ee+kd*(e(k)-e_1); if u(k)>220 u(k)=220; end if u(k)<=0 u(k)=0; end Ee=Ee+e(k); u_2=u_1; u_1=u(k); y_2=y_1; y_1=y(k); e_2=e_1; e_1=e(k); end hold on; plot(time,r,'r',time,y,'b',time,u,'r'); [kp,ki,kd]; 程序調(diào)試好后,分別改變kp、ki和kd的參數(shù)值,看輸出圖形有何變化,理解PID控制中比例、積分和微分對(duì)控制系統(tǒng)的作用。 圖7 Matlab中仿真圖A 圖8 Matlab中仿真圖B 4 分析與結(jié)論 通過本次課程設(shè)計(jì)的軟件仿真與調(diào)試,才更加深刻的領(lǐng)悟了數(shù)字PID控制算法的精髓,使得理論得到了很好的驗(yàn)證,從而是我鞏固了所學(xué)知識(shí),得到了專業(yè)技能的鍛煉和提高。 5 參考文獻(xiàn) [1] 胡壽松 自動(dòng)控制原理 北京:科學(xué)出版社 [2] 童詩白、華成英 模擬電子技術(shù)基礎(chǔ) 北京:高等教育出版社 [3] 黃忠霖 控制系統(tǒng)MATLAB設(shè)計(jì)與仿真 北京:國防工業(yè)出版社 [4] 謝劍英、賈青 微型計(jì)算機(jī)控制技術(shù) 北京:國防工業(yè)出版社 [5]趙洪亮.TMS320C55X DSP 應(yīng)用系統(tǒng)設(shè)計(jì)[M].北京:北京航空航天大學(xué)出版社,2008. [6]王獻(xiàn)峰,石東.基于DSP的FIR數(shù)字濾波器設(shè)計(jì)與實(shí)現(xiàn)[J].通信電源技術(shù),2006,23(4):38-40. [7]張雄偉.DSP芯片的原理與開發(fā)應(yīng)用(第三版)[M].北京:電子工業(yè)出版社,2003. [8]丁玉美.數(shù)字信號(hào)處理(第二版)[M].西安:西安電子科技大學(xué)出版社,2005. [9]楊大柱.基于TMS320C5510的FIR濾波器設(shè)計(jì)與實(shí)現(xiàn)[J].微計(jì)算機(jī)信息,2008,24(17). [10]陳懷琛.MATLAB及其在理工課程中的應(yīng)用指南[M].西安:西安電子科技大學(xué)出版社,2007.
附錄:源程序代碼 |