2023年模糊控制PID设计大作业_第1页
2023年模糊控制PID设计大作业_第2页
2023年模糊控制PID设计大作业_第3页
2023年模糊控制PID设计大作业_第4页
2023年模糊控制PID设计大作业_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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

为:

4.23

Gp(s)=

(52+1.645+8.46)

采样时间为1ms,编写mat1ab仿真程序,拟定其在阶跃输入的响应结果,并与

经典PID控制仿真结果相比较。规定具体描述控制系统的设计,控制系统工作流程,

模糊系统中的输入输出的从属函数设计及其采用的模糊规则,分析仿真结果并进行

总结。

表1Akp的模糊规则表

NBNMNSZ0PSPMPB

NBPBPBPMPMPSZ0Z0

NMPBPBPMPSPSZ0NS

NSPMPMPMPSZ0NSNS

Z0PMPMPSZ0NSNMNM

PSPSPSZ0NSNSNMNM

PMPSZ0NSNMNMNMNB

PBZ0Z0NMNMNMNBNB

表2Aki的模糊规则表

^AkiX\ec^

NBNMNSzoPSPMPB

NBNBNBNMNMNSZOZO

NMNBNBNMNSNSZOzo

NSNBNMNSNSzoPSPS

zoNMNMNSZOPSPMPM

PSMNNSZOPsPSPMPB

PMZOZ0PSPSPMPBPB

PBZOzoPSPMPMPBPB

表3Akd的模糊规则表

NBNMNSZOPSPMPB

NBPSNSNBNBNBNMPS

NMPsNSNBNMNMNSZO

NSZ0NSNMNMNSNSZO

ZOZONSNSNSNSNSZO

PSZOZOZOZOZOZOZO

PMPBNSPSPSPSPSPB

PBPBPMPMPSPSPSPB

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,P

B},子集中元素分别代表负大,负中,负小,零,正小,正中,正大。应用模糊合成

推理设计PID参数的整定算法。第k个采样时间的整定为

Kp(k)=kpO+Akp(k)

Ki(k)=ki0+Aki(k)

Kd(k)=kdO+Akd(k)

在线运营过程中,控制系统通过对模糊逻辑规则的结果解决、查表和运算,

完毕对PID参数的在线自校正。其工作流程图如下图所示。

返回

MFigure1[o叵]]去

FileEditViewInsertToolsDesktopWindowHelp

-3-2-10123

e

图1误差的从属函数

QFigure2〜

FileEditViewInsertToolsDesktopWindowHelp

口巴。蛤|Q|久久已电要/」国|口用〔■口一

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

|o回次I

FileEditViewInsertToolsDesktopWindowHelp,

5m总出公;*、-、朽⑥^x•豆口因■0

-025-02-015-01-00500050101502025

kp

图3kp的从属函数

回应一

QFigure4|D1

FileEditViewInsertToolsDesktopWindowHelp

口已iu◎底+、-、争@唱X•皂口国■国

-0.06-0.04-0.0200.020.040.06

图4ki的从属函数

RJFigure5I。回辽I

FileEditViewInsertToolsDesktopWindowHelpa

口目a1诗[V话皂T□画—0

-3-2-10123

kd

图5kd的从属函数

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

PJRuleViev/er:fuzzpid=回S3

oeco

kp=-0.04

1

2

3

4

5

6

7

8

9

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

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

在程序PID_b.m中,运用所设计的模糊系统fuzzpid.fis进行PID控制

参数的整定,并运用模糊PID控制进行阶跃响应,在第300个采样时间时控

制器输出端加上L。的干扰,响应结果及PID控制参数的自适应变化如图8到

13所示。

图8模糊PID控制阶跃响应

图9模糊PID控制误差响应

图10控制器输入u

图11kp的自适应调整

图12ki的自适应调整

图13kd的自适应调整

在对三阶线性系统的控制中,运用稳定边界法进行参数整定的经典PID控

制的超调量比模糊PID控制的超调量要大,但模糊PID控制存在一定的稳态误

差。模糊控制用模糊集合和模糊概念描述过程系统的动态特性,根据模糊集和模

糊逻辑来做出控制决策,它在解决复杂控制问题方面有很大的潜力,可以动态地

适应外界环境的变化。

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

%FuzzyTurnningPIDControl

c1eara11;

closeall;

a=newfis(*fuzzpid');

z

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

11

a=addmf(a,inputzmf*t[-3,-1]);

z

a=addmf(a,'input*z1,NM',*trimf',[—3,-2Z0]);

11111

a=addmf(a,inputz1zNSz1rimf\[-3,-1,0]);

a=addmf(a,'input'z1,trimf\[-2z0z2]);

z

a=addmf(az»input,1/PS「trimf[-1,1,3]);

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

T111

a=addmf(az*inputf1,PBzsmf't[1,3]);

71

a=addvar(a,'inputf*ec>[-3,3]);

a=addmf(a,'input',2,'NB',,zmf,,[—3,-11);

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

,,/

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

1

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

1

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

11Tz

a=addmf(a,'input\2,PMztrimf,[0,2,3]);

a=addmf(a,rinput*,2,'PB*Jsmf',[1,3]);

a=addvar(af*output'z*kp',[—0.3,0,3]);

1

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

1Tz

a=addmf(azoutput,lzNM','trimf'z[-0.3,-0.2,0]);

a=addmf(a,*output',1,'NS',*trimf1,[—0.3,一0.1,0]);

111T

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

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

71

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

1z

a=addmf(a^output*,1fPB',*smf,[0.1,0.3]);

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

1Z1

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

17

a=addmf(a,'output2rNM','trimf,[—0.06,-0.04,0]);

Tf1z

a=addmf(a,output',2fNS,ztrimf,[-0.06,—0.02,0.02]);

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

11T

a=addmf(a,outputr2z*PS,'trim*,[-0.02,0.02z0.06]);

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

a=addmf(a,'output',2,'PBZ[O.02,0.06]);

1z

a=addvar(azoutput'kdI[-3,3]);

a=addmf(a,*output7,3,'NB','zmf',3,-11);

1111

a=addmf(az*output'z3,NMrtrimf,[-3,-2,。]);

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

17T

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

111

a=addmf(a,outPut*,3zPS,'trimf\[-1,1,3]);

1

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

f

a=addmf(a,*outputz3z'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];

aaddrule(a,rulelist);

a=setfis(a,*DefuzzMethod','centroid1);

writefis(a,'fuzzpid');

a=readfis('fuzzpid1);

figure(1);

plotmf(a,'input',1);

figure(2);

plotmf(a,'input',2);

figure(3);

f

plotmf(a,*outputz1);

figure(4);

1

plotmf(az*output,2);

figure(5);

rT

plotmf(azoutputz3);

figure(6);

plotfis(a);

fuzzyfuzzpid;

showrule(a);

ruleviewfuzzpid;

附录2模糊控制程序PID_b

%FuzzyPIDControl

closeall;

clearall;

a=readfis(*fuzzpid1);

ts=0.001;

sys=tf(4.23f[lf1.64,8.46]);

Tr

days=c2d(sys,tsztustin);

[num,den]=tfdata(days,'vf);

u_l=0.0;u_2=0.0;u_3=0.0;

y_l=0;y_2=0;y—3=0;

x=[0,0,03';

e_l=0;

ec_l=0;

kp0=0.40;

kd0=l.0;

ki0=0.0;

fork=l:1:3000;

time(k)=k*ts;

r(k)=1.0;

%UsingfuzzyinferencetotuningPID

k_pid=evalfis([e_l,ec_1]za);

kp(k)=kp0+k

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论