模糊控制PID设计大作业--.docx
- 文档编号:136170
- 上传时间:2022-10-04
- 格式:DOCX
- 页数:15
- 大小:2.23MB
模糊控制PID设计大作业--.docx
《模糊控制PID设计大作业--.docx》由会员分享,可在线阅读,更多相关《模糊控制PID设计大作业--.docx(15页珍藏版)》请在冰豆网上搜索。
参考教材中例子设计一包含了模糊技术与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参数的在线自校正。
其工作流程图如下图所示。
入口
e(k),ec(k)模糊化
e(k-1)=e(k)
PID控制器输出
计算当前kp,ki,kd
模糊整定Δkp,Δki,Δkd
ec(k)=e(k)-e(k-1)
e(k)=r(k)-y(k)
取当前采样值
返回
图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(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 模糊 控制 PID 设计 作业