模糊控制PID设计大作业.docx

上传人:b****7 文档编号:15837504 上传时间:2023-07-08 格式:DOCX 页数:18 大小:1.98MB
下载 相关 举报
模糊控制PID设计大作业.docx_第1页
第1页 / 共18页
模糊控制PID设计大作业.docx_第2页
第2页 / 共18页
模糊控制PID设计大作业.docx_第3页
第3页 / 共18页
模糊控制PID设计大作业.docx_第4页
第4页 / 共18页
模糊控制PID设计大作业.docx_第5页
第5页 / 共18页
模糊控制PID设计大作业.docx_第6页
第6页 / 共18页
模糊控制PID设计大作业.docx_第7页
第7页 / 共18页
模糊控制PID设计大作业.docx_第8页
第8页 / 共18页
模糊控制PID设计大作业.docx_第9页
第9页 / 共18页
模糊控制PID设计大作业.docx_第10页
第10页 / 共18页
模糊控制PID设计大作业.docx_第11页
第11页 / 共18页
模糊控制PID设计大作业.docx_第12页
第12页 / 共18页
模糊控制PID设计大作业.docx_第13页
第13页 / 共18页
模糊控制PID设计大作业.docx_第14页
第14页 / 共18页
模糊控制PID设计大作业.docx_第15页
第15页 / 共18页
模糊控制PID设计大作业.docx_第16页
第16页 / 共18页
模糊控制PID设计大作业.docx_第17页
第17页 / 共18页
模糊控制PID设计大作业.docx_第18页
第18页 / 共18页
亲,该文档总共18页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

模糊控制PID设计大作业.docx

《模糊控制PID设计大作业.docx》由会员分享,可在线阅读,更多相关《模糊控制PID设计大作业.docx(18页珍藏版)》请在冰点文库上搜索。

模糊控制PID设计大作业.docx

模糊控制PID设计大作业

参考教材中例子设计一包含了模糊技术与PID技术的混合智能控制器,其被控对象为:

采样时间为1ms,编写matlab仿真程序,确定其在阶跃输入的响应结果,并与经典PID控制仿真结果相比较。

要求详细描述控制系统的设计,控制系统工作流程,模糊系统中的输入输出的隶属函数设计及其采用的模糊规则,分析仿真结果并进行总结。

表1Δkp的模糊规则表

ec

Δkp

e

 

NB

NM

NS

ZO

PS

PM

PB

NB

PB

PB

PM

PM

PS

ZO

ZO

NM

PB

PB

PM

PS

PS

ZO

NS

NS

PM

PM

PM

PS

ZO

NS

NS

ZO

PM

PM

PS

ZO

NS

NM

NM

PS

PS

PS

ZO

NS

NS

NM

NM

PM

PS

ZO

NS

NM

NM

NM

NB

PB

ZO

ZO

NM

NM

NM

NB

NB

表2Δki的模糊规则表

Δki

ec

e

 

NB

NM

NS

ZO

PS

PM

PB

NB

NB

NB

NM

NM

NS

ZO

ZO

NM

NB

NB

NM

NS

NS

ZO

ZO

NS

NB

NM

NS

NS

ZO

PS

PS

ZO

NM

NM

NS

ZO

PS

PM

PM

PS

MN

NS

ZO

PS

PS

PM

PB

PM

ZO

ZO

PS

PS

PM

PB

PB

PB

ZO

ZO

PS

PM

PM

PB

PB

 

表3Δkd的模糊规则表

Δkd

ec

e

 

NB

NM

NS

ZO

PS

PM

PB

NB

PS

NS

NB

NB

NB

NM

PS

NM

PS

NS

NB

NM

NM

NS

ZO

NS

ZO

NS

NM

NM

NS

NS

ZO

ZO

ZO

NS

NS

NS

NS

NS

ZO

PS

ZO

ZO

ZO

ZO

ZO

ZO

ZO

PM

PB

NS

PS

PS

PS

PS

PB

PB

PB

PM

PM

PS

PS

PS

PB

Kp,ki,kd的模糊控制规则表建立好以后,可根据以下方法进行kp,ki,kd的自适应校正。

将系统误差e和误差变化ec变化范围定义为模糊集上的论域,即e,ec={-3,-2,-1,0,1,2,3},其模糊子集为e,ec={NB,NM,NS,ZO,PS,PM,PB},子集中元素分别代表负大,负中,负小,零,正小,正中,正大。

应用模糊合成推理设计PID参数的整定算法。

第k个采样时间的整定为

Kp(k)=kp0+Δkp(k)

Ki(k)=ki0+Δki(k)

Kd(k)=kd0+Δkd(k)

在线运行过程中,控制系统通过对模糊逻辑规则的结果处理、查表和运算,完成对PID参数的在线自校正。

其工作流程图如下图所示。

 

图1误差的隶属函数

图2误差变化率的隶属函数

图3kp的隶属函数

图4ki的隶属函数

图5kd的隶属函数

图6模糊系统fuzzpid.fis的结构

图7模糊推理系统的动态仿真环境

在程序PID_b.m中,利用所设计的模糊系统fuzzpid.fis进行PID控制参数的整定,并利用模糊PID控制进行阶跃响应,在第300个采样时间时控制器输出端加上1.0的干扰,响应结果及PID控制参数的自适应变化如图8到13所示。

图8模糊PID控制阶跃响应

图9模糊PID控制误差响应

图10控制器输入u

图11kp的自适应调整

图12ki的自适应调整

图13kd的自适应调整

在对三阶线性系统的控制中,利用稳定边界法进行参数整定的经典PID控制的超调量比模糊PID控制的超调量要大,但模糊PID控制存在一定的稳态误差。

模糊控制用模糊集合和模糊概念描述过程系统的动态特性,根据模糊集和模糊逻辑来做出控制决策,它在解决复杂控制问题方面有很大的潜力,可以动态地适应外界环境的变化。

 

附录1模糊系统设计程序PID_a

%FuzzyTurnningPIDControl

clearall;

closeall;

a=newfis('fuzzpid');

a=addvar(a,'input','e',[-3,3]);

a=addmf(a,'input',1,'NB','zmf',[-3,-1]);

a=addmf(a,'input',1,'NM','trimf',[-3,-2,0]);

a=addmf(a,'input',1,'NS','trimf',[-3,-1,0]);

a=addmf(a,'input',1,'Z','trimf',[-2,0,2]);

a=addmf(a,'input',1,'PS','trimf',[-1,1,3]);

a=addmf(a,'input',1,'PM','trimf',[0,2,3]);

a=addmf(a,'input',1,'PB','smf',[1,3]);

a=addvar(a,'input','ec',[-3,3]);

a=addmf(a,'input',2,'NB','zmf',[-3,-1]);

a=addmf(a,'input',2,'NM','trimf',[-3,-2,0]);

a=addmf(a,'input',2,'NS','trimf',[-3,-1,0]);

a=addmf(a,'input',2,'Z','trimf',[-2,0,2]);

a=addmf(a,'input',2,'PS','trimf',[-1,1,3]);

a=addmf(a,'input',2,'PM','trimf',[0,2,3]);

a=addmf(a,'input',2,'PB','smf',[1,3]);

a=addvar(a,'output','kp',[-0.3,0.3]);

a=addmf(a,'output',1,'NB','zmf',[-0.3,-0.1]);

a=addmf(a,'output',1,'NM','trimf',[-0.3,-0.2,0]);

a=addmf(a,'output',1,'NS','trimf',[-0.3,-0.1,0]);

a=addmf(a,'output',1,'Z','trimf',[-0.2,0,0.2]);

a=addmf(a,'output',1,'PS','trimf',[-0.1,0.1,0.3]);

a=addmf(a,'output',1,'PM','trimf',[0,0.2,0.3]);

a=addmf(a,'output',1,'PB','smf',[0.1,0.3]);

 

a=addvar(a,'output','ki',[-0.06,0.06]);

a=addmf(a,'output',2,'NB','zmf',[-0.06,-0.02]);

a=addmf(a,'output',2,'NM','trimf',[-0.06,-0.04,0]);

a=addmf(a,'output',2,'NS','trimf',[-0.06,-0.02,0.02]);

a=addmf(a,'output',2,'Z','trimf',[-0.04,0,0.04]);

a=addmf(a,'output',2,'PS','trimf',[-0.02,0.02,0.06]);

a=addmf(a,'output',2,'PM','trimf',[0,0.04,0.06]);

a=addmf(a,'output',2,'PB','smf',[0.02,0.06]);

a=addvar(a,'output','kd',[-3,3]);

a=addmf(a,'output',3,'NB','zmf',[-3,-1]);

a=addmf(a,'output',3,'NM','trimf',[-3,-2,0]);

a=addmf(a,'output',3,'NS','trimf',[-3,-1,0]);

a=addmf(a,'output',3,'Z','trimf',[-2,0,2]);

a=addmf(a,'output',3,'PS','trimf',[-1,1,3]);

a=addmf(a,'output',3,'PM','trimf',[0,2,3]);

a=addmf(a,'output',3,'PB','smf',[1,3]);

rulelist=[1171511;

1231311;

1362111;

1462111;

1553111;

1644211;

1744511;

2171511;

2271311;

2362111;

2453211;

2553211;

2644311;

2734411;

3161411;

3262311;

3363211;

3453211;

3544311;

3635311;

3735411;

4162411;

4262411;

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,'fuzzpid');

a=readfis('fuzzpid');

figure

(1);

plotmf(a,'input',1);

figure

(2);

plotmf(a,'input',2);

figure(3);

plotmf(a,'output',1);

figure(4);

plotmf(a,'output',2);

figure(5);

plotmf(a,'output',3);

figure(6);

plotfis(a);

fuzzyfuzzpid;

showrule(a);

ruleviewfuzzpid;

附录2模糊控制程序PID_b

%FuzzyPIDControl

closeall;

clearall;

a=readfis('fuzzpid');

ts=0.001;

sys=tf(4.23,[1,1.64,8.46]);

days=c2d(sys,ts,'tustin');

[num,den]=tfdata(days,'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]';

e_1=0;

ec_1=0;

kp0=0.40;

kd0=1.0;

ki0=0.0;

fork=1:

1:

3000;

time(k)=k*ts;

r(k)=1.0;

%UsingfuzzyinferencetotuningPID

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;

end

y(k)=-den

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

(1)*u(k)+num

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

e(k)=r(k)-y(k);

%%%%%%%%%%%%%%ReturnofPIDparameters%%%%%%%%%%%%%

u_3=u_2;

u_2=u_1;

u_1=u(k);

y_3=y_2;

y_2-y_1;

y_1=y(k);

x

(1)=e(k);%CalculatingP

x

(2)=e(k)-e_1;%CalculatingD

x(3)=x(3)+e(k)*ts%CalculatingI

ec_1=x

(2);

e_2=e_1;

e_1=e(k);

end

figure

(1);

plot(time,r,'b',time,y,'r');

xlabel('time(s)');ylabel('rin,yout');

figure

(2);

plot(time,e,'r');

xlabel('time(s)');ylabel('error');

figure(3);

plot(time,u,'r');

xlabel('time(s)');ylabel('u');

figure(4);

plot(time,kp,'r');

xlabel('time(s)');ylabel('kp');

figure(5);

plot(time,ki,'r');

xlabel('time(s)');ylabel('ki');

figure(6);

plot(time,kd,'r');

xlabel('time(s)');ylabel('kd');

 

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

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2