专家PID控制Word下载.docx

上传人:b****5 文档编号:19377247 上传时间:2023-01-05 格式:DOCX 页数:11 大小:95.91KB
下载 相关 举报
专家PID控制Word下载.docx_第1页
第1页 / 共11页
专家PID控制Word下载.docx_第2页
第2页 / 共11页
专家PID控制Word下载.docx_第3页
第3页 / 共11页
专家PID控制Word下载.docx_第4页
第4页 / 共11页
专家PID控制Word下载.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

专家PID控制Word下载.docx

《专家PID控制Word下载.docx》由会员分享,可在线阅读,更多相关《专家PID控制Word下载.docx(11页珍藏版)》请在冰豆网上搜索。

专家PID控制Word下载.docx

当式中,—————误差e的第k个极值;

)ke(m—-分别为第k次和第k-1次控制器输出;

)1(),uku(k=2——————增益放大系数,;

1kk11=0.6—————增益抑制系数,;

10kk22——设定的误差界限,,MM,M0.05M2121其中可取0.8,0.4,0.2,0.01四值;

M1=0.001—————任意小正实数。

三、实验过程:

3500)(sGp离散取样,选取采样时间间隔为1ms;

1、对传递函数

250ss1.52、PID控制算法的关键问题是其三个参数Kp,Ti,Td的设定,选取初始值为:

kp=0.6;

ki=0.03;

kd=0.01;

3、取阶跃信号;

1(k)rin4、写出线性模型及当前采样时刻的误差值:

y(k)den

(2)y(k1)den(3)y(k2)den(4)y(k3)num

(1)u(k)num

(2)u(k

1)num(3)u(k2)num(4)u(k3)e(k)rin(k)y(k)

5、循环第3和第4步;

6、通过Matlab仿真出专家PID控制的阶跃响应曲线图和误差响应曲线图。

四、实验结果:

图1阶跃响应曲线

 

误差响应曲线2图

附录:

仿真程序

%ExpertPIDControllerclearall;

closeall;

ts=0.001;

sys=tf(3.5e003,[1.5,50,0]);

dsys=c2d(sys,ts,'

z'

);

[num,den]=tfdata(dsys,'

v'

u_1=0.0;

u_2=0.0;

u_3=0.0;

y_1=0;

y_2=0;

y_3=0;

x=[0,0,0]'

;

x2_1=0;

kp=0.6;

ki=0.03;

kd=0.01;

error_1=0;

fork=1:

1:

500

time(k)=k*ts;

rin(k)=1.0;

%TracingJieyueSignal

u(k)=kp*x

(1)+kd*x

(2)+ki*x(3);

%PIDController

%Expertcontrolrule

ifabs(x

(1))>

0.8%Rule1:

Unclosedcontrolfirstly

u(k)=0.45;

elseifabs(x

(1))>

0.40

u(k)=0.40;

0.20

u(k)=0.12;

0.01

u(k)=0.10;

end

ifx

(1)*x

(2)>

0|(x

(2)==0)%Rule2

=0.05u(k)=u_1+2*kp*x

(1);

else

u(k)=u_1+0.4*kp*x

(1);

if(x

(1)*x

(2)<

0&

x

(2)*x2_1>

0)|(x

(1)==0)%Rule3u(k)=u(k);

ifx

(1)*x

(2)<

x

(2)*x2_1<

0%Rule4

=0.05u(k)=u_1+2*kp*error_1;

u(k)=u_1+0.6*kp*error_1;

ifabs(x

(1))<

=0.001%Rule5:

IntegrationseparationPIcontrol

u(k)=0.5*x

(1)+0.010*x(3);

end%Restrictingtheoutputofcontrollerifu(k)>

=10

u(k)=10;

endifu(k)<

=-10u(k)=-10;

%Linearmodel

yout(k)=-den

(2)*y_1-den(3)*y_2+num

(1)*u(k)+num

(2)*u_1+num(3)*u_2;

error(k)=rin(k)-yout(k);

%ReturnofPIDparameters%

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);

%CalculatingPx2_1=x

(2);

x

(2)=(error(k)-error_1)/ts;

%CalculatingDx(3)=x(3)+error(k)*ts;

%CalculatingI

error_1=error(k);

endfigure

(1);

plot(time,rin,'

b'

time,yout,'

r'

xlabel('

time(s)'

ylabel('

rin,yout'

figure

(2);

plot(time,rin-yout,'

error'

%FuzzyTunningPIDControlclearall;

a=newfis('

fuzzpid'

%Parametere

a=addvar(a,'

input'

'

e'

[-3,3]);

a=addmf(a,'

1,'

NB'

zmf'

[-3,-1]);

NM'

trimf'

[-3,-2,0]);

NS'

[-3,-1,1]);

Z'

[-2,0,2]);

PS'

[-1,1,3]);

PM'

[0,2,3]);

PB'

smf'

[1,3]);

ec'

%Parametereca=addmf(a,'

2,'

a=addmf(a,'

%Parameterkpa=addvar(a,'

output'

kp'

[-0.3,0.3]);

[-0.3,-0.1]);

[-0.3,-0.2,0]);

[-0.3,-0.1,0.1]);

[-0.2,0,0.2]);

[-0.1,0.1,0.3]);

[0,0.2,0.3]);

[0.1,0.3]);

%Parameterkia=addvar(a,'

ki'

[-0.06,0.06]);

[-0.06,-0.02]);

[-0.06,-0.04,0]);

[-0.06,-0.02,0.02]);

[-0.04,0,0.04]);

[-0.02,0.02,0.06]);

[0,0.04,0.06]);

[0.02,0.06]);

kd'

3,'

rulelist=[1171511;

1271311;

1362111;

1462111;

1553111;

1644211;

1744511;

2171511;

2271311;

2362111;

2453211;

2553211;

2644311;

2734411;

3161411;

3262311;

3363211;

3453211;

3544311;

3635311;

3735411;

4162411;

4262311;

4353311;

4444311;

4535311;

4626311;

4726411;

5152411;

5253411;

5344411;

5435411;

5535411;

5626411;

5727411;

6154711;

6244511;

6335511;

6425511;

6526511;

6627511;

6717711;

7144711;

7244611;

7325611;

7426611;

7526511;

7617511;

7717711];

a=addrule(a,rulelist);

a=setfis(a,'

DefuzzMethod'

centroid'

writefis(a,'

a=readfis('

%PIDController

sys=tf(3500,[1.5,50,0]);

dsys=c2d(sys,ts,'

tustin'

y_1=0;

e_1=0.0;

ec_1=0.0;

kp0=0.40;

kd0=1.0;

ki0=0.0;

rin(k)=1;

%UsingfuzzyinferencetotunningPID

k_pid=evalfis([e_1,ec_1],a);

kp(k)=kp0+k_pid

(1);

ki(k)=ki0+k_pid

(2);

kd(k)=kd0+k_pid(3);

u(k)=kp(k)*x

(1)+kd(k)*x

(2)+ki(k)*x(3);

ifk==300%Addingdisturbance(1.0vattime0.3s)u(k)=u(k)+1.0;

ifu(k)>

ifu(k)<

=-10

u(k)=-10;

endyout(k)=-den

(2)*y_1-den(3)*y_2+num

(1)*u(k)+num

(2)*u_1+num(3)*u_2;

%%%%%%%%%%%%%%ReturnofPIDparameters%%%%%%%%%%%%%%%u_3=u_2;

%CalculatingP

%CalculatingD

%CalculatingI

x

(2)=error(k)-error_1;

x(3)=x(3)+error(k);

e_1=x

(1);

ec_1=x

(2);

error_2=error_1;

endshowrule(a)figure

(1);

plot(time,rin,'

plot(time,error,'

figure(3);

plot(time,u,'

xlabel('

u'

figure(4);

plot(time,kp,'

figure(5);

plot(time,ki,'

figure(6);

plot(time,kd,'

figure(7);

plotmf(a,'

1);

figure(8);

2);

figure(9);

figure(10);

figure(11);

3);

plotfis(a);

time(s}

time(s)

1.4

I

-TII

III

1.2

≡*

1

-

0.8

n0.6

0.4

0.2

-0.2(

U∖

IL

∖∖

]

IIII

11I

0.05

0.10.150.20.250.30.350.40.450.5

的隶属度函数曲线ki2图

图3kp的隶属度函数曲线

图4ec的隶属度函数曲线

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 电子电路

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1