




下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、%Cal增量式PID控制算法Matlab仿真程序設(shè)一被控對象 G( s)=50/(0.125sA2+7s), 用增量式PID控制算法編寫仿真程序(輸入分別為單位階躍、正弦信號, 采樣時間為1ms,控制器輸出限幅: -5,5,仿真曲線包括系統(tǒng)輸出及誤差 曲線,并加上注釋、圖例)。程序如下 clear all;close all;ts=0.001;sys=tf(50,0.125,7, 0); dsys=c2d(sys,ts,z);nu m,de n=tfdata(dsys,v); u_1=0.0;u_2=0.0;y_1=0.0;y_2=0.0; x=0,0,0;error_1=0;error_2=
2、0;for k=1:1:1000time(k)=k*ts;S=2;if S=1kp=10;ki=0.1;kd=15;rin (k)=1;Ste p Sig nal elseif S=2end%Lin ear model yout(k)=-de n(2)*y_1-de n( 3)*y_2+num( 2)*u_1+ num(3) *u_2;error(k)=ri n(k)-yout(k);%Retur n of p arameters u_2=u_1;u_1=u(k); y_2=y_1;y_1=yout(k); x(1)=error(k)-error_1; culati ng P x(2)=err
3、or(k)-2*error_1+error_2; %C alculati ng Dx(3)=error(k);%Calculati ng Ierror_2=error_1;error_1=error(k);endfigure(1); plot(time,ri n, b,time,yout,r); xlabel(time(s),ylabel(ri n,yout);figure(2); plot(time,error,r) xlabel(time(s);ylabel(error);微分先行PID算法Matlab仿真程序%PID Controler with differential in adva
4、neeclear all;close all;5%Si nekp=10;ki=0.1;kd=15;Sig nalrin (k)=0.5*s in(2*pi *k*ts);enddu(k)=k p*x(1)+kd*x (2)+ki*x(3);PID Con trolleru(k)=u_1+du(k);%Restricti ng the out put of con troller if u(k)=5 u(k)=5;endif u(k)=110 u(k)=110;endif u(k)=10u(k)=10;endif u(k)=-10u(k)=-10;endfigure(2); plot(time,
5、u,r); xlabel(time(s);ylabel(u);figure (3);plot(time,ri n-yout,r); xlabel(time(s);ylabel(error); figure(4);bode(Q,r);dcga in( Q);C語言PID演示程序#in clude #in clude typ edef struct P IDdouble Comma nd; /輸入指令double Proportion; /比例系數(shù) double In tegral;/ 積分系數(shù)double Derivative; / 微分系數(shù) double p reErr;/ 前一拍誤差doub
6、le sumErr;/ 誤差累積P ID;doubleP IDCale( PID*p ,doublefeedback)double dErr,Err;Err=p-Comma nd-feedback; / 當(dāng)前 誤差p-sumErr+=Err;/ 誤差累加dErr=Err- p-p reErr; / 誤差微分 p-p reErr=Err;return( p-Prop ortio n*Err / 比例項+p-Derivative*dErr微分項+p-ln tegral* p-sumErr);/ 積分項u_5=u_4;u_4=u_3;u_3=u_2;u_2=u_1;u1=u(k);y_3=y_2;y
7、_2=y_1;y_1=yout(k); error_1=error(k);endfigure(1);plot(time,ri n,b,time,yout,r); xlabel(time(s);ylabel(ri n, yout);void PIDI nit (P ID *p)memset(p,0,sizeof(PID); /初始化typ edef struct motor double lastY;double p reY; double lastU; double p reU;motor;void motorI nit(motor *m)memset(m,O,sizeof(motor); d
8、ouble motorCal(motor *m,double u)doubley=1.9753*m-lastY-0.9753*m- preY+0 .00003284*u+0.00006568*m-lastU+0. 00003284*m- preU;/ 二階系統(tǒng)m-preY=m-lastY;m-lastY=y;m- preU=m-lastU;m-lastU=u;return y;=%fn,k,s PID.Comma nd,y,s PID .Comma nd-y,u);u=P IDCale(&sP ID,y); y=motorCal(&m_motor,u); k+;prin tf(%fn,y);f
9、close(fp);增量式PID控制C語言代碼增量式PID控制C語言代碼/ /定義PID參數(shù)結(jié)構(gòu)體/typedef struct PID void mai n()FILE *fp=fo pen( data.txt,w+); PID sP ID;motor m_motor;int k=0;double u;double y=0;PIDI nit(&sP ID);sP ID. Prop ortio n=2;sP ID.Derivative=1;sP ID.I ntegral=0.00001;sP ID.Comma nd=10;/結(jié)構(gòu)體定義intSet Poi nt/設(shè)定值intProp orti
10、on;/Prop orti on比例系數(shù)intIn tegral;/In tegral積分系數(shù)intDerivative;/Derivative微分系數(shù)intLastError;/Error-1前一拍誤差intP reError;/Error-2前兩拍誤差 PID;motorl nit(&m _motor);while(k=1000)=%f控量fprin tf(fp,%d設(shè)定值被控量=%f 偏差=%f 制mai n()PID vPID;/定義結(jié)構(gòu)變量名PIDInit ( &VPID );/Initialize Structureor;/體名VerrvP ID. Prop ortio n = 1
11、0;/Set PID Coefficients vP ID.I ntegral = 10; / Set PID Integral vP ID.Derivative = 10; / Set PID Derivative vPID. Set Poi nt = 根據(jù)實際情況設(shè)定while(1) Verror=Measure();得到AD的輸出值Error =vPID. SetPoint-/與設(shè)定值比較,得到誤差值 tempi=P IDCal(&vP ID, Error;laser.Value+=te mpi;Value與Num2為共同體,共同 laserLASERH=laser.Num0;LASER
12、L=laser.Num1;/Title:PID參數(shù)初始化/Descri pti on: Prop orti on=0/In tegral=0/LastError=0/Input: PID的P、I控制常數(shù)和之前的誤差量(PID *pp)/Return:/ /void PIDInit (PID *pp)/PID參數(shù)初始化,都置0/ memset()函數(shù)在 mem.h頭文件中 聲明,它把數(shù)組的起始地址作為其第 一個參數(shù),/第二個參數(shù)是設(shè)置數(shù)組每個字節(jié)的 值,第三個參數(shù)是數(shù)組的長度(字節(jié)數(shù), 不是元素個數(shù))。/其函數(shù)原型為:void *memset(void*, int,unsigned);/ 頭文件
13、 /Title:增量式PID算法程序/Description:給出一個誤差增量/Input: PID的P、I控制常數(shù)和之前 的誤差量(PID *pp) &當(dāng)前誤差量(T hisError)/Return:誤差增量 tempi/ /int PIDCal( PID *pp, int ThisError ) /增量式PID算法(需要控制的不是 控制量的絕對值,而是控制量的增量)int PError,dError,iError;long tempi;p Error = ThisError- pp-LastError;iError = ThisError;dError = ThisError-2* (pp-LastError)+pp-P reError;增量計算temp 1=pp-Prop orti
溫馨提示
- 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)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 中外建筑史知到課后答案智慧樹章節(jié)測試答案2025年春吉林電子信息職業(yè)技術(shù)學(xué)院
- 中西醫(yī)結(jié)合耳鼻咽喉科學(xué)知到課后答案智慧樹章節(jié)測試答案2025年春湖南中醫(yī)藥大學(xué)
- 2017-2018學(xué)年高中化學(xué)必修2課時訓(xùn)練第二章第一節(jié)化學(xué)能與熱能
- 2017-2018學(xué)年人教A版高中數(shù)學(xué)選修2-2課后提升訓(xùn)練二十二321復(fù)數(shù)代數(shù)形式的加減運算及其幾何意義
- 2025年拖拉機及農(nóng)林牧漁用掛車項目發(fā)展計劃
- 2017-2018學(xué)年人教A版高中數(shù)學(xué)選修2-3檢測第三章統(tǒng)計案例能力深化提升
- 2025年原油降凝降粘劑項目合作計劃書
- 天線近場測試儀系統(tǒng)總控軟件2
- 乙方提供材料合同范例
- 板模板施工方案
- 安全生產(chǎn)責(zé)任體系重點崗位履職清單
- 四川省成都市2024年中考道德與法治真題試卷(含答案)
- 大學(xué)物理實驗(緒論)學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- 不合格產(chǎn)品處置管理制度
- 《現(xiàn)代家政導(dǎo)論》電子教案 2.2模塊二項目二家庭制度認(rèn)知
- 商務(wù)禮儀課件教學(xué)課件
- 2024年資格考試-良好農(nóng)業(yè)規(guī)范認(rèn)證檢查員考試近5年真題集錦(頻考類試題)帶答案
- 2024年普通高等學(xué)校招生全國統(tǒng)一考試·新課標(biāo)卷(生物)附試卷分析
- 2024中國軟件供應(yīng)鏈安全分析報告-2024.08-56正式版
- 優(yōu)化熱處理工藝的機器學(xué)習(xí)
- 2024年1月時政熱點題庫及答案
評論
0/150
提交評論