PID控制實驗報告,DOC.doc_第1頁
PID控制實驗報告,DOC.doc_第2頁
PID控制實驗報告,DOC.doc_第3頁
PID控制實驗報告,DOC.doc_第4頁
PID控制實驗報告,DOC.doc_第5頁
已閱讀5頁,還剩31頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

海量資源,歡迎共閱實驗二數(shù)字PID控制計算機控制是一種采樣控制,它只能根據(jù)采樣時刻的偏差值計算控制量。因此連續(xù)PID控制算法不能直接使用,需要采用離散化方法。在計算機PID控制中,使用的是數(shù)字PID控制器。1、 位置式PID控制算法按模擬PID控制算法,以一系列的采樣時刻點kT代表連續(xù)時間t,以矩形法數(shù)值積分近似代替積分,以一階后向差分近似代替微分,可得離散PID位置式表達式:式中,e為誤差信號(即PID控制器的輸入),u為控制信號(即控制器的輸出)。在仿真過程中,可根據(jù)實際情況,對控制器的輸出進行限幅。2、 連續(xù)系統(tǒng)的數(shù)字PID控制仿真連續(xù)系統(tǒng)的數(shù)字PID控制可實現(xiàn)D/A及A/D的功能,符合數(shù)字實時控制的真實情況,計算機及DSP的實時PID控制都屬于這種情況。1 Ex3設被控對象為一個電機模型傳遞函數(shù),式中J=0.0067,B=0.1。輸入信號為,采用PD控制,其中。采用ODE45方法求解連續(xù)被控對象方程。因為,所以,另,則,因此連續(xù)對象微分方程函數(shù)ex3f.m如下functiondy=ex3f(t,y,flag,para)u=para;J=0.0067;B=0.1;dy=zeros(2,1);dy(1)=y(2);dy(2)=-(B/J)*y(2)+(1/J)*u;控制主程序ex3.mclearall;closeall;ts=0.001;%采樣周期xk=zeros(2,1);%被控對象經(jīng)A/D轉換器的輸出信號y的初值e_1=0;%誤差e(k-1)初值u_1=0;%控制信號u(k-1)初值fork=1:1:2000%k為采樣步數(shù)time(k)=k*ts;%time中存放著各采樣時刻rin(k)=0.50*sin(1*2*pi*k*ts);%計算輸入信號的采樣值para=u_1;%D/AtSpan=0ts;tt,xx=ode45(ex3f,tSpan,xk,para);%ode45解系統(tǒng)微分方程%xx有兩列,第一列為tt時刻對應的y,第二列為tt時刻對應的y導數(shù)xk=xx(end,:);%A/D,提取xx中最后一行的值,即當前y和y導數(shù)yout(k)=xk(1);%xk(1)即為當前系統(tǒng)輸出采樣值y(k)e(k)=rin(k)-yout(k);%計算當前誤差de(k)=(e(k)-e_1)/ts;%計算u(k)中微分項輸出u(k)=20.0*e(k)+0.50*de(k);%計算當前u(k)的輸出%控制信號限幅ifu(k)10.0u(k)=10.0;endifu(k)=10u(k)=10;endifu(k)=-10u(k)=-10;end%根據(jù)差分方程計算系統(tǒng)當前輸出y(k)yout(k)=-den(2)*y_1-den(3)*y_2-den(4)*y_3+num(2)*u_1+num(3)*u_2+num(4)*u_3;error(k)=rin(k)-yout(k);%當前誤差%更新u(k-1)、u(k-2)、u(k-3)、y(k-1)、y(k-2)、y(k-3)u_3=u_2;u_2=u_1;u_1=u(k);y_3=y_2;y_2=y_1;y_1=yout(k);x(1)=error(k);%比例輸出x(2)=(error(k)-error_1)/ts;%微分輸出x(3)=x(3)+error(k)*ts;%積分輸出error_1=error(k);%更新e(k-1)endfigure(1);%作圖plot(time,rin,r,time,yout,b);xlabel(time(s),ylabel(rin,yout);其程序運行結果如表3所示。kp=0.50;ki=0.001;kd=0.001;kp=1.50;ki=0.001;kd=0.001;S=1階躍跟蹤S=2方波跟蹤S=3正弦跟蹤2 Ex6針對于Ex5被控對象所對應的離散系統(tǒng),設計針對三角波、鋸齒波和隨機信號的位置式響應。仿真程序:ex6.m。程序中當S=1時為三角波,S=2時為鋸齒波,S=3時為隨機信號。如果D=1,則通過pause命令實現(xiàn)動態(tài)演示仿真。%PIDControllerclearall;closeall;ts=0.001;sys=tf(5.235e005,1,87.35,1.047e004,0);dsys=c2d(sys,ts,z);num,den=tfdata(dsys,v);u_1=0.0;u_2=0.0;u_3=0.0;r_1=rand;y_1=0;y_2=0;y_3=0;x=0,0,0;error_1=0;disp(S=1-Triangle,S=2-Sawtooth,S=3-Random)%S=1三角,S=2鋸齒,S=3隨機S=input(NumberofinputsignalS:)%接收輸入信號代號disp(D=1-Dynamicdisplay,D=1-Directdisplay)%D=1動畫顯示,D=1直接顯示D=input(D=)fork=1:1:3000time(k)=k*ts;kp=1.0;ki=2.0;kd=0.01;ifS=1%TriangleSignalifmod(time(k),2)=5.0rin(k)=rand;vr(k)=abs(rin(k)-r_1)/ts);endendu(k)=kp*x(1)+kd*x(2)+ki*x(3);%PIDController%Restrictingtheoutputofcontrollerifu(k)=10u(k)=10;endifu(k)=10u(k)=10;endifu(k)0;2) 當時,采用PD控制,可避免產(chǎn)生過大的超調(diào),又使系統(tǒng)有較快的響應;3) 當時,采用PID控制,以保證系統(tǒng)的控制精度。積分分離算法可表示為:式中,T為采樣時間,為積分項的開關系數(shù),Ex9設備控對象為一個延遲對象,采樣周期為20s,延遲時間為4個采樣周期,即80s。輸入信號r(k)=40,控制器輸出限制在-110,110。被控對象離散化為仿真方法一:仿真程序:ex9_1.m。當M=1時采用分段積分分離法,M=2時采用普通PID控制。%IntegrationSeparationPIDControllerclearall;closeall;ts=20;%Delayplantsys=tf(1,60,1,inputdelay,80);dsys=c2d(sys,ts,zoh);num,den=tfdata(dsys,v);u_1=0;u_2=0;u_3=0;u_4=0;u_5=0;y_1=0;y_2=0;y_3=0;error_1=0;error_2=0;ei=0;%M=1分段積分分離,M=2普通PIDdisp(M=1-Usingintegrationseparation,M=2-Notusingintegrationseparation)M=input(whetherornotuseintegrationseparationmethod:)fork=1:1:200time(k)=k*ts;%輸出信號yout(k)=-den(2)*y_1+num(2)*u_5;rin(k)=40;error(k)=rin(k)-yout(k);ei=ei+error(k)*ts;%積分項輸出ifM=1%使用分段積分分離ifabs(error(k)=30&abs(error(k)=20&abs(error(k)=10&abs(error(k)=110%控制信號限幅u(k)=110;endifu(k)umax,則只累加負偏差;若u(k-1)=umu(k)=um;endifu(k)=umiferror(k)0alpha=0;elsealpha=1;endelseifu(k)0alpha=1;elsealpha=0;endelsealpha=1;endelseifM=2%Notusingintergrationsturationalpha=1;end%ReturnofPIDparametersu_3=u_2;u_2=u_1;u_1=u(k);y_3=y_2;y_2=y_1;y_1=yout(k);error_1=error(k);x(1)=error(k);%計算比例項x(2)=(error(k)-error_1)/ts;%計算微分項x(3)=x(3)+alpha*error(k)*ts;%計算積分項xi(k)=x(3);endfigure(1);subplot(311);plot(time,rin,b,time,yout,r);xlabel(time(s);ylabel(Positiontracking);subplot(312);plot(time,u,r);xlabel(time(s);ylabel(Controlleroutput);subplot(313);plot(time,xi,r);xlabel(time(s);ylabel(Integration);其運行結果如表3所示。表3例10仿真結果M=1時采用抗積分飽和算法M=2時采用抗積分飽和算法分析:比較仿真結果知,采用普通的算法時,積分項的存在,有時可能會引起積分飽和,增加系統(tǒng)的調(diào)整時間和超調(diào)量,而采用了抗積分飽和的方法,可以消除靜態(tài)誤差,使控制量不易進入飽和區(qū),即使進入了,也能較快,系統(tǒng)的輸出特性得到了一定改善。3、 不完全微分PID控制算法在PID控制中,微分信號的引入可改善系統(tǒng)的動態(tài)特性,但也易引入高頻干擾,在誤差擾動突變時尤其顯出微分項的不足。若在控制算法中加入低通濾波器,則可使系統(tǒng)性能得到改善。具體做法就是在PID算法中加入一個一階慣性環(huán)節(jié)(低通濾波器),Tf為濾波器系數(shù)??傻么藭r的微分項輸出為,其中,Ts為采樣時間,TD為微分時間常數(shù)。Ex11被控對象為時滯系統(tǒng)傳遞函數(shù),在對象的輸出端加幅值為0.01的隨機信號。采樣周期為20ms。采用不完全微分算法,。所加的低通濾波器為仿真程序:ex11.m。M=1時采用不完全微分,M=2時采用普通PID%PIDControlerwithPartialdifferentialclearall;closeall;ts=20;sys=tf(1,60,1,inputdelay,80);dsys=c2d(sys,ts,zoh);num,den=tfdata(dsys,v);u_1=0;u_2=0;u_3=0;u_4=0;u_5=0;%控制信號初值ud_1=0;%uD(k-1)初值y_1=0;y_2=0;y_3=0;%輸出信號初值error_1=0;ei=0;fork=1:1:100time(k)=k*ts;rin(k)=1.0;yout(k)=-den(2)*y_1+num(2)*u_5;%輸出信號差分方程D(k)=0.01*rands(1);%干擾信號yout(k)=yout(k)+D(k);%加入干擾后的輸出信號error(k)=rin(k)-yout(k);ei=ei+error(k)*ts;%矩形面積求和計算的積分項輸出kp=0.30;ki=0.0055;TD=140;kd=kp*TD/ts;Tf=180;%Q的濾波器系數(shù)Q=tf(1,Tf,1);%低通濾波器%M=1選擇不完全微分,M=2選擇普通PIDdisp(M=1UsingPartialdifferentialPID,M=2-UsingPIDControlerwithoutPartialdifferential)M=input(whetherornotusePartialdifferentialPID:)ifM=1%M=1時用不完全微分alfa=Tf/(ts+Tf);ud(k)=kd*(1-alfa)*(error(k)-error_1)+alfa*ud_1;u(k)=kp*error(k)+ud(k)+ki*ei;ud_1=ud(k);elseifM=2%M=2時用普通PIDu(k)=kp*error(k)+kd*(error(k)-error_1)+ki*ei;end%輸出限幅ifu(k)=10u(k)=10;endifu(k)=110u(k)=110;endifu(k)=-110u(k)=-110;end%Updateparametersu_5=u_4;u_4=u_3;u_3=u_2;u_2=u_1;u_1=u(k);y_3=y_2;y_2=y_1;y_1=yout(k);error_2=error_1;error_1=error(k);endfigure(1);plot(time,rin,r,time,yout,b);xlabel(time(s);ylabel(rin,yout);figure(2);plot(time,u,r);xlabel(time(s);ylabel(u);其運行結果如表5所示。分析:微分先行PID算法將微分算法放在前面,適用于給定量頻繁升降的場合,可以避免給定值升降時引起的系統(tǒng)振蕩,從而改善系統(tǒng)的動態(tài)特性。表5例12仿真結果M=1時使用微分先行PIDM=2使用普通PID輸入輸出圖采樣圖5、 帶死區(qū)的PID控制算法某些系統(tǒng)為了避免控制作用過于頻繁,消除由于頻繁動作所引起的振蕩,可采用帶死區(qū)的PID控制算法,控制算法為:,式中e(k)為位置跟蹤偏差,B為可調(diào)的死區(qū)參數(shù),具體可根據(jù)實際控制對象由試驗確定。若B太小,會使控制動作過于頻繁,達不到穩(wěn)定被控對象的目的;若B太大,則系統(tǒng)將產(chǎn)生較大的滯后。Ex13設被控對象為,采樣周期為1ms,對象輸出上有一個幅值為0.5的正態(tài)分布的隨機干擾信號。采用積分分離式PID控制算法進行階躍響應,取=0.2,死區(qū)參數(shù)B=0.1,采用低通濾波器對對象輸出信號進行濾波,濾波器為。仿真程序:ex13.m。M=1時,采用一般積分分離式PID控制算法,M=2時采用帶死區(qū)的積分分離式PID控制算法。%PIDControlerwithdeadzoneclearall;closeall;ts=0.001;sys=tf(5.235e005,1,87.35,1.047e004,0);dsys=c2d(sys,ts,z);num,den=tfdata(dsys,v)u_1=0;u_2=0;u_3=0;u_4=0;u_5=0;y_1=0;y_2=0;y_3=0;yy_1=0;error_1=0;error_2=0;ei=0;sys1=tf(1,0.04,1);%LowFreqSignalFilterdsys1=c2d(sys1,ts,tucsin);num1,den1=tfdata(dsys1,v);f_1=0;%M=1選擇普通積分分離式PID,M=2選擇帶死區(qū)的積分分離式PID算法disp(M=1-UsingcommonintegrationseperationPIDControler,M=2-UsingintegrationseperationPIDControlerwithdeadzone)M=input(whetherornotuseintegrationseperationPIDControlerwithdeadzone:);fork=1:1:2000time(k)=k*ts;rin(k)=1;%StepSignal%Linearmodelyout(k)=-den(2)*y_1-den(3)*y_2-den(4)*y_3+num(2)*u_1+.num(3)*u_2+num(4)*u_3D(k)=0.50*rands(1);%Disturbancesignalyyout(k)=yout(k)+D(k);%Lowfrequencyfilterfilty(k)=-den1(2)*f_1+num1(1)*(yyout(k)+yy_1);error(k)=rin(k)-filty(k);ifabs(error(k)=0.20ei=ei+error(k)*ts;elseei=0;endkp=0.50;ki=0.10;kd=0.020;u(k)=kp*error(k)+ki*ei+kd*(error(k)-error_1)/ts;ifM=1u(k)=u(k);elseifM=2%UsingDeadzoneifabs(error(k)=10u(k)=10;endifu(k)=-10u(k)=-10;end%-ReturnofPIDparameters-rin_1=rin(k);u_3=u_2;u_2=u_1;u_1=u(k);y_3=y_2;y_2=y_1;y_1=yout(k);f_1=filty(k);yy_1=yyout(k);error_2=error_1;error_1=error(k);endfigure(1);subplot(211);plot(time,rin,r,time,filty,b);xlabel(time(s);ylabel(rin,yout);subplot(212);plot(time,u,r);xlabel(time(s);ylabel(u);figure(2);plot(time,D,r);xlabel(time(s);ylabel(Disturbancesignal);其運行結果如表6所示。表6例13仿真結果M=1選擇普通積分分離式PID算法M=2選擇帶死區(qū)的積分分離式PID算法ifabs(error(k)=0.10u(k)=0干擾信號D(k)分析:在控制精度要求不太高,控制過程要求盡量平穩(wěn)的場合,為了避免控制動作過于頻繁,消除由此產(chǎn)生的震蕩,可以認為設置一靈敏區(qū)。死區(qū)是一可調(diào)參數(shù),參數(shù)太小,調(diào)節(jié)動作過于頻繁,達不到穩(wěn)定控制的目的,參數(shù)太大,又會產(chǎn)生很大的純滯后。實驗四純滯后系統(tǒng)的控制算法1、 純滯后系統(tǒng)的Smith控制算法在工業(yè)過程控制中,許多被控對象具有純滯后的性質(zhì)。Smith提出了一中純滯后補償模型,其原理為,與PID控制器并接一個補償環(huán)節(jié),該補償環(huán)節(jié)稱為Smith預估器。被控對象傳遞函數(shù)為,模擬調(diào)節(jié)器的傳遞函數(shù)為,則系統(tǒng)的閉環(huán)傳遞函數(shù)為??梢?,閉環(huán)特征方程中出現(xiàn)了純滯后環(huán)節(jié),使系統(tǒng)穩(wěn)定性降低,如果滯后時間足夠大,系統(tǒng)將不穩(wěn)定,這就是大延遲過程難于控制的本質(zhì)。針對這一問題,Smith提出在調(diào)節(jié)器上反向并聯(lián)一個預估模型,Smith預估控制系統(tǒng)等效圖如圖4-1所示。圖4-1帶Smith預估器的控制系統(tǒng)Ex14設被控對象為,采用Smith控制方法,在PI控制中,取,輸入階躍信號幅值為100。仿真程序:ex14.mdl其運行結果如表1所示。分析:純滯后性質(zhì)常引起系統(tǒng)產(chǎn)生超調(diào)或者振蕩,使系統(tǒng)的穩(wěn)定性降低。項在閉環(huán)控制回路之外,不影響系統(tǒng)的穩(wěn)定性,僅將控制作用在時間坐標軸上推遲了一個時間,控制系統(tǒng)的過渡過程及其他性能指標都與對象特征為的完全相同,消除了純滯后部分對控制系統(tǒng)的影響。表1例14運行結果2、 大林控制算法早在1968年,美國IBM公司的大林就提出了一種不同常規(guī)PID控制規(guī)律的新型算法,即大林控制算法,該算法的最大特點是,將期望的閉環(huán)響應設計成一階慣性加延遲,然后反過來得到能滿足這種閉環(huán)響應的控制器。對于單回路控制系統(tǒng),D(z)為數(shù)字控制器,G(z)為被控對象廣義傳遞函數(shù),則閉環(huán)系統(tǒng)傳遞函數(shù)為:則有。如果能事先設定系統(tǒng)的閉環(huán)響應,則可得到控制器D(z)。大林之處,通常的期望閉環(huán)響應是一階慣性加純延遲形式,其延遲時間等于對象的純延遲時間:式中,為閉環(huán)系統(tǒng)的時間常數(shù),由此得到的控制率稱為大林控制算法。Ex15設被控對象為,采樣時間為0.5s。期望的閉環(huán)響應設計為:仿真程序:ex15.m。M=1時為采用大林控制算法,M=2時為采用普通PID算法。%DelayControlwithDalinAlgorithmclearall;closeall;ts=0.5;%Plantsys1=tf(1,0.4,1,inputdelay,0.76);dsys1=c2d(sys1,ts,zoh);num1,den1=tfdata(dsys1,v);%Idealclosedloopsys2=tf(1,0.15,1,inputdelay,0.76);dsys2=c2d(sys2,ts,zoh);%DesignDalincontrollerdsys=dsys2/(dsys1*(1-dsys2);num,den=tfdata(dsys,v);u_1=

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論