基于DSP的PID控制算法的實(shí)現(xiàn)_第1頁
基于DSP的PID控制算法的實(shí)現(xiàn)_第2頁
基于DSP的PID控制算法的實(shí)現(xiàn)_第3頁
基于DSP的PID控制算法的實(shí)現(xiàn)_第4頁
基于DSP的PID控制算法的實(shí)現(xiàn)_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、數(shù)字信號處理與DSP應(yīng)用課程論文題目: 基于DSP的PID控制算法的實(shí)現(xiàn) 學(xué) 號: 2011080911 姓 名: 蔡志威 班 級: 6班 專 業(yè): 電路與系統(tǒng) 課程老師: 黃鄉(xiā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è)過程中,由于控制對象的精確數(shù)學(xué)模型難以建立,系統(tǒng)的參數(shù)又經(jīng)常發(fā)生變化,運(yùn)用現(xiàn)代控制理論分析綜合要耗費(fèi)很大的代價進(jìn)行模型辨識,但往往不能得到預(yù)期的效果,所以人們常采用數(shù)字PID調(diào)節(jié)器,并根據(jù)經(jīng)驗(yàn)進(jìn)行在線整定

2、。這次課程設(shè)計將綜合用數(shù)字信號處理DSP以及自動控制方面的知識,使用CCS集成開發(fā)環(huán)境進(jìn)行代碼的編譯,仿真,才能完成了本次設(shè)計。關(guān)鍵詞:PID控制; DSP;仿真 ;CCSAbstrat: According to the proportion of deviation, integral and differential controls the regulator called the PID regulator, PID regulator is continuous system mature technology, the most widely used a regulator.

3、Its simple structure, easy to adjust the parameters, in the long-term of the application has accumulated a wealth of experience. Especially in the industrial process, because the controlled objects, accurate mathematical model is hard to develop, the parameters of the system and often changes, the u

4、se of modern control theory of comprehensive analysis to take a lot of cost model identification, but often can't get the desired effect, so people often uses the digital PID regulator, and according to the experience of online setting. The courses are designed to be integrated with the digital

5、signal processing DSP as well as the automatic control the knowledge of the respect, use CCS integrated development environment for the compilation of the code, simulation, to complete the design.Keywords: PID Control; DSP;simulation ;CCS前 言 在數(shù)字PID算法是目前一般控制領(lǐng)域中經(jīng)常使用的自動控制算法,它依據(jù)給定的設(shè)定值,反饋值,以及比例系數(shù),積分和微分時間

6、,計算出一定的控制量,使被控對象能保持在設(shè)定的工作范圍,并且可以自動的消除外部擾動。由于軟件系統(tǒng)的靈活性,經(jīng)計算出的PID參數(shù)可以在調(diào)試過程中隨時改變。能更精確的控制系統(tǒng)。得到較好的控制效果。PID 控制原理簡單、實(shí)現(xiàn)方便,并且適應(yīng)面廣、魯棒性強(qiáng),其控制品質(zhì)對被控對象特性的變化不是很敏感。隨著計算機(jī)技術(shù)的發(fā)展,在 PID 控制的基礎(chǔ)上,出現(xiàn)了很多改進(jìn)的數(shù)字 PID 控制方法 ,如微分先行 PID 控制、積分分離 PID 控制、帶死區(qū)的PID 控制等。對于數(shù)字PID 控制方法,又分為增量式 PID 控制算式和位置式 PID 控制算式。在絕大多數(shù)工業(yè)控制中,數(shù)字 PID 控制仍然是一種穩(wěn)定的、可靠

7、的、實(shí)現(xiàn)簡單的、使用廣泛的控制方法。本設(shè)計以TI公司的TMS320VC5509和外接 D/ A芯片,實(shí)現(xiàn)數(shù)字 PID 控制器,采用的 PID 控制算法是增量式 PID 控制算法。TMS320VC5509 具有較高的運(yùn)行速度和數(shù)據(jù)處理能力,能保證系統(tǒng)對多路模擬信號的實(shí)時采集和處理,提高系統(tǒng)的整體性能和集成度。在 DSP 內(nèi)部設(shè)置參考輸入量,通過DSP片上 10 位 A/ D 轉(zhuǎn)換器采樣,把控制對象的實(shí)際輸出量采集到 DSP 中,經(jīng)過DSP 的數(shù)字運(yùn)算處理后,通過外部的 D/ A AD7237 進(jìn)行數(shù)/ 模轉(zhuǎn)換,得到實(shí)際的模擬控制量去控制被控對象,使之按照系統(tǒng)的設(shè)置運(yùn)行工作。1、模擬PID調(diào)節(jié)器模

8、擬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)成控制量,對控制對象進(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 控制器的積分時間;Td 控制器的微分時間。1.1 PID調(diào)節(jié)器各校正環(huán)節(jié)的作用比例環(huán)節(jié):即時成比例地反應(yīng)控制系統(tǒng)的偏差信號e(t),偏差一旦產(chǎn)生,調(diào)節(jié)器立即產(chǎn)生控制作用以減小偏

9、差。對于大多數(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ù)TI,TI越大,積分作用越弱,反之則越強(qiáng)。調(diào)節(jié)器的積分作用就是為了消除自控系統(tǒng)的余差而設(shè)置的。所謂積分,就是隨時間進(jìn)行累積的意思,即當(dāng)有偏差輸入e存在時,積分調(diào)節(jié)器就要將偏差隨時間不斷累積起來,也就是積分累積的快慢與偏差e的大小和積分速度成正比。只要有偏差e存在,積分調(diào)節(jié)器的輸出就要改變,也就是說積分

10、作用總是起作用的,只有偏差不存在時,積分才會停止。微分環(huán)節(jié):能反應(yīng)偏差信號的變化趨勢(變化速率),并能在偏差信號的值變得太大之前,在系統(tǒng)中引入一個有效的早期修正信號,從而加快系統(tǒng)的動作速度,減小調(diào)節(jié)時間??梢?,微分分量對偏差的任何變化都會產(chǎn)生控制作用,以調(diào)整系統(tǒng)輸出,阻止偏差變化,預(yù)見隨后。偏差變化越快,則產(chǎn)生的阻止作用越大。對于一個固定不變的偏差e(t),不論其數(shù)值多大,根本不會有微分作用輸出。2、 數(shù)字PID控制器2.1 模擬PID控制規(guī)律的離散化模擬形式離散化形式根據(jù)上表和模擬PID的數(shù)學(xué)表達(dá)式,可以退出數(shù)字PID控制器的差分方程為:式中 稱為比例項(xiàng) 稱為積分項(xiàng) 稱為微分項(xiàng)常用的控制方式

11、有 P控制 PI控制 PD控制 PID控制 2.2 PID算法的兩種類型 位置型控制 基本PID控制器的理想算式為 式中u(t)控制器(也稱調(diào)節(jié)器)的輸出;e(t)控制器的輸入(常常是設(shè)定值與被控量之差,即e(t)=r(t)-c(t));Kp控制器的比例放大系數(shù);Ti 控制器的積分時間;Td控制器的微分時間。設(shè)u(k)為第k次采樣時刻控制器的輸出值,可得離散的PID算式 式中 , 。由于計算機(jī)的輸出u(k)直接控制執(zhí)行機(jī)構(gòu)(如閥門),u(k)的值與執(zhí)行機(jī)構(gòu)的位置(如閥門開度),所以通常稱上式為位置式PID控制算法。圖2 位置式PID控制器流程圖位置式PID控制算法的缺點(diǎn):當(dāng)前采樣時刻的輸出與過

12、去的各個狀態(tài)有關(guān),計算時要對e(k)進(jìn)行累加,運(yùn)算量大;而且控制器的輸出u(k)對應(yīng)的是執(zhí)行機(jī)構(gòu)的實(shí)際位置,如果計算機(jī)出現(xiàn)故障,u(k)的大幅度變化會引起執(zhí)行機(jī)構(gòu)位置的大幅度變化。增量型控制增量型PID算法的算式為:或者寫成 式中,增量式PID是指數(shù)字控制器的輸出只是控制量的增量u(k)。采用增量式算法時,計算機(jī)輸出的控制量u(k)對應(yīng)的是本次執(zhí)行機(jī)構(gòu)位置的增量,而不是對應(yīng)執(zhí)行機(jī)構(gòu)的實(shí)際位置,因此要求執(zhí)行機(jī)構(gòu)必須具有對控制量增量的累積功能,才能完成對被控對象的控制操作。執(zhí)行機(jī)構(gòu)的累積功能可以采用硬件的方法實(shí)現(xiàn);也可以采用軟件來實(shí)現(xiàn),如利用算式 程序化來完成。由上式可得增量式PID控制算式式中

13、進(jìn)一步可以改寫成式中 、 、 一般計算機(jī)控制系統(tǒng)的采樣周期T在選定后就不再改變,所以,一旦確定了Kp、Ti、Td,只要使用前后3次測量的偏差值即可求出控制增量。根據(jù)上述分析,其程序流程圖如下:圖3 增量型控制算法路程圖增量式算法優(yōu)點(diǎn):算式中不需要累加。控制增量u(k)的確定僅與最近3次的采樣值有關(guān),容易通過加權(quán)處理獲得比較好的控制效果;DSP每次只輸出控制增量,即對應(yīng)執(zhí)行機(jī)構(gòu)位置的變化量,故機(jī)器發(fā)生故障時影響范圍小、不會嚴(yán)重影響生產(chǎn)過程。經(jīng)過綜合比較,最終選擇了增量式控制算法。3.系統(tǒng)軟硬件設(shè)計3.1硬件設(shè)計為了實(shí)現(xiàn)上述控制算法,還需要硬件電路才行,設(shè)計電路原理圖如圖4所示:從圖4 中可以看出

14、,模擬量輸入,也即被控電機(jī)的實(shí)際輸出轉(zhuǎn)速,通過一個限流電阻 R 送到由 AD8041 構(gòu)成的電壓跟隨器里,經(jīng)過放大后,再經(jīng)二極管D1 和 D2嵌位以及電阻 R 限流,送到TMS320VC5509片上的 A/D 轉(zhuǎn)換其中使得 A/D 的輸入限制在 03 300 mV。TMS320VC5509 一共有16 路復(fù)用的片上 A/D 轉(zhuǎn)換器,本實(shí)例只采用第 0 通道的A/D轉(zhuǎn)換。由DSP計算出控制量,通過外部數(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)換器的輸出采

15、用AD7237 的A相輸出。TMS320VC5509 由外部提供復(fù)位信號,由無源晶振提供6 MHz時鐘。片上 A/D 轉(zhuǎn)換器的參考電壓高電平 V 接DSP電源+3.3 V 。圖4 DSP實(shí)現(xiàn)數(shù)字PID控制器的電路原理圖3.2 軟件設(shè)計本設(shè)計運(yùn)用了CCSV3.3軟件,它是一個完整的DSP集成開發(fā)環(huán)境,CCS支持軟仿真器、各種型號的硬仿真器、各種DSK和EVM板。11CCS主要特點(diǎn)有:集成可視化代碼編輯界面,可以方便地直接編寫C、匯編、.h文件、.cmd文件等;集成代碼生成工具,包括匯編器、優(yōu)化的C編譯器和連接器等;具有完整的基本調(diào)試工具,可以載入執(zhí)行文件(.out),查看寄存器窗口、存儲器窗口和

16、變量窗口、反匯編窗口等,支持在C源代碼級進(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),用于評估代碼執(zhí)行的時間;數(shù)據(jù)圖形顯示工具,可繪制時域/頻域波形、眼圖、星座圖等,并可以自動刷新;提供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ù)交換,具有開放式

17、的plug-ins技術(shù),支持其它第三方的ActiveX插件。提供DSP、BIOS工具,利用該工具可增強(qiáng)對代碼的實(shí)時分析能力,減少開發(fā)人員對硬件資源熟悉程度的依賴性。圖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; %采樣時間=0.001ssys=tf(2652,1,25,490); %建立被控對象傳遞函數(shù)dsys=c2d(sys,ts,'

18、z'); %把傳遞函數(shù)離散化 num,den=tfdata(dsys,'v'); %離散化后提取分子、分母e_1=0 %上一偏差 Ee=0; %偏差累計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:100time(k)=k*ts; %時間參數(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*E

19、e+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);endhold on;plot(time,r,'r',time,y,'b',time,u,'r');kp,ki,kd;程序調(diào)試好后,分別改變kp、ki和kd的參數(shù)值,看輸出圖形有何變化,理解PID控制中比例、積分和微分對控制系統(tǒng)的作用。 圖7 Matlab中仿真圖A圖8

20、Matlab中仿真圖B4 分析與結(jié)論通過本次課程設(shè)計的軟件仿真與調(diào)試,才更加深刻的領(lǐng)悟了數(shù)字PID控制算法的精髓,使得理論得到了很好的驗(yàn)證,從而是我鞏固了所學(xué)知識,得到了專業(yè)技能的鍛煉和提高。5 參考文獻(xiàn)1 胡壽松 自動控制原理 北京:科學(xué)出版社 2 童詩白、華成英 模擬電子技術(shù)基礎(chǔ) 北京:高等教育出版社3 黃忠霖 控制系統(tǒng)MATLAB設(shè)計與仿真 北京:國防工業(yè)出版社4 謝劍英、賈青 微型計算機(jī)控制技術(shù) 北京:國防工業(yè)出版社5趙洪亮.TMS320C55X DSP 應(yīng)用系統(tǒng)設(shè)計M.北京:北京航空航天大學(xué)出版社,2008.6王獻(xiàn)峰,石東.基于DSP的FIR數(shù)字濾波器設(shè)計與實(shí)現(xiàn)J.通信電源技術(shù),20

21、06,23(4):38-40.7張雄偉.DSP芯片的原理與開發(fā)應(yīng)用(第三版)M.北京:電子工業(yè)出版社,2003.8丁玉美.數(shù)字信號處理(第二版)M.西安:西安電子科技大學(xué)出版社,2005.9楊大柱.基于TMS320C5510的FIR濾波器設(shè)計與實(shí)現(xiàn)J.微計算機(jī)信息,2008,24(17). 10陳懷琛.MATLAB及其在理工課程中的應(yīng)用指南M.西安:西安電子科技大學(xué)出版社,2007.附錄:源程序代碼/*PID FunctionThe PID (比例、積分、微分) function is used in mainly

22、control applications. PIDCalc performs one iteration of the PIDalgorithm.While the PID function works, main is just a dummy program showinga typical usage.*/*頭文件*/ #include "DSP28_Device.h&q

23、uot;#include "System.h"#include "DSP28_Adc.h"typedef struct PID double SetPoint;   / 設(shè)定目標(biāo)Desired valuedouble Proportion;  / 比例常數(shù)Proportional Constdouble Integral; / 積分常數(shù)Integral Constdouble Derivative; 

24、60;/ 微分常數(shù)Derivative Constdouble LastError;  / Error-1double PrevError;  / Error-2double SumError;  / Sums of Errors PID; /*PID計算部分*/double PIDCalc( PID *pp, double NextPoint )double dError,Error;

25、Error = pp->SetPoint - NextPoint;  / 偏差pp->SumError += Error;  / 積分dError = pp->LastError - pp->PrevError;  / 當(dāng)前微分pp->PrevError = pp->LastError;pp->LastError = Error;return (

26、pp->Proportion * Error  / 比例項(xiàng)+ pp->Integral * pp->SumError  / 積分項(xiàng)+ pp->Derivative * dError ); / 微分項(xiàng)/*Initialize PID Structure*/void PIDInit (PID *pp)memset ( pp,0,sizeof(PID);/*Main&#

27、160;Program*/double sensor (void)  / Dummy Sensor Functionreturn 100.0;void actuator(double rDelta)  / Dummy Actuator Functionvoid InitAdc(void) unsigned int i; AdcRegs.ADCTRL1.bit.RESET=1; NOP; AdcRegs.ADCTRL1.bit.RESET=0; /重新設(shè)置AdcReg

28、s.ADCTRL1.bit.SUSMOD=3; /設(shè)置仿真掛起模式 3,AdcRegs.ADCTRL1.bit.ACQ_PS=0; AdcRegs.ADCTRL1.bit.CPS=0; /對高速時鐘 HSPCLK 分頻,=0 時,不分頻,=1 時,二分頻AdcRegs.ADCTRL1.bit.CONT_RUN=0; /開始-停止模式AdcRegs.ADCTRL1.bit.SEQ_CASC=1; /級聯(lián)模式,SEQ1 和 SEQ2 作為一個 16 狀態(tài)排序器工作。AdcRegs.ADCTRL3.bit.ADCBGRFDN=3; /帶隙和參考電路上電for(i=0;i<10000;i+) N

29、OP; AdcRegs.ADCTRL3.bit.ADCPWDN=1; /除帶隙和參考電路外的 ADC 其它模擬電路上電for(i=0;i<5000;i+) NOP; AdcRegs.ADCTRL3.bit.ADCCLKPS=15; /時鐘分頻 ADCCLKPS=HSPCLKPS/2*15*(ADCTRL17+1) AdcRegs.ADCTRL3.bit.SMODE_SEL=1; /選擇同步采樣模式 AdcRegs.MAX_CONV.bit.MAX_CONV=0; /設(shè)置轉(zhuǎn)換通道0AdcRegs.CHSELSEQ1.bit.CONV00=0; AdcRegs.ADC_ST_FLAG.bit

30、.INT_SEQ1_CLR=1; /清除 SEQ1 的中斷標(biāo)志位AdcRegs.ADC_ST_FLAG.bit.INT_SEQ2_CLR=1; /清除 SEQ2 的中斷標(biāo)志位AdcRegs.ADCTRL2.bit.EVB_SOC_SEQ=0; /無作用AdcRegs.ADCTRL2.bit.RST_SEQ1=0; /將排序器立即復(fù)位到 CONV00 狀態(tài)AdcRegs.ADCTRL2.bit.INT_ENA_SEQ1=1; /使能 INT_SEQ1 的中斷請求AdcRegs.ADCTRL2.bit.INT_MOD_SEQ1=0; /每個 SEQ1 序列結(jié)束時,INT_SEQ1 置位AdcReg

31、s.ADCTRL2.bit.EVA_SOC_SEQ1=0; /EVA 的觸發(fā)信號不啟動 SEQ1 AdcRegs.ADCTRL2.bit.EXT_SOC_SEQ1=0; /無操作AdcRegs.ADCTRL2.bit.RST_SEQ2=0; /無操作AdcRegs.ADCTRL2.bit.SOC_SEQ2=0; /清除一個掛起的 SOC 觸法AdcRegs.ADCTRL2.bit.INT_ENA_SEQ2=0; /禁止 INT_SEQ2 產(chǎn)生的中斷請求AdcRegs.ADCTRL2.bit.INT_MOD_SEQ2=0; /每個 SEQ2 結(jié)束時,INT_SEQ2 置位AdcRegs.ADCTRL2.bit.EVB_SOC_SEQ2=0; /EVB 的觸發(fā)信號不啟動 SEQ2 AdcRegs.ADCTRL2.bit.SOC_SEQ1=1; /軟件觸法,從當(dāng)前停止的位置啟動 SEQ1void main(void)PID sPID;  / PID Control Structuredouble rOut;  / PID Response

溫馨提示

  • 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

提交評論