模糊自适应PID控制器Word格式文档下载.docx
- 文档编号:19138287
- 上传时间:2023-01-04
- 格式:DOCX
- 页数:19
- 大小:230.43KB
模糊自适应PID控制器Word格式文档下载.docx
《模糊自适应PID控制器Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《模糊自适应PID控制器Word格式文档下载.docx(19页珍藏版)》请在冰豆网上搜索。
由于操作者经验不易精确描述,控制过程中各种信号量及评价指标不易定量表示,模糊理念是解决这一问题的有效途径,所以人们运用学的基本理论和方法,把规则的条件、操作用模糊集表示,并把这些模糊有关信息作为知识存入计算机知识库中,然后计算机根据控制系统的实际响应情况,运用模糊推理,即可自动实现对PID参数的最佳调整,这就是模糊自适应PID控制,目前模糊自适应PID控制器有多种结构,但其工作原理基本一致。
自适应模糊PID以误差e和误差变化率ec作为输入,可以满足不同时刻的e和ec对PID参数自整定的要求,利用模糊控制规则在线对PID参数进行修改,便构成了自适应模糊PID控制器,其结构如图2所示.
图2自适应模糊控制器结构
PID参数模糊自整定是找出PID三个参数与e和ec之间的模糊关系,在运行中通过不断检测e和ec,根据模糊控制原理对三个参数进行在线修改,以满足不同e和ec对控制参数的不同要求,而使被控对象有良好的动、静态性能。
从系统的稳定性、响应速度、超调量和精度等各方面来考虑,kp.ki,kd的作用如下:
(1)比例系数kp的作用是加快系统的响应速度,提高系统的调节精度。
kp越大,系统的响应速度越快,系统的调节精度越高,但易产生超调,甚至会导致系统不稳定。
kp取值过小,则会降低调节精度,使响应速度缓慢,从而延长调节时间,使系统的动态静态特性变坏。
(2)积分作用系数ki的作用是消除系统的稳态误差。
ki越大,的静态误差消除越快,但ki过大,在响应过程的初期会产生积分饱和现象,从而引起响应过程的较大超调。
若ki过小,将使系统静态误差难以消除,影响系统的调节精度。
(3)微分作用系数kd的作用是改善系统的动态特性,其作用主要是在响应过程中抑制偏差向任何方向的变化,对偏差变化进行提前预报。
但kd过大,会使响应过程提前制动,从而延长调节时间,而且会降低系统的抗干扰性能
二、自适应模糊PID控制的设计思路
PID参数的整定必须考虑到在不同时刻三个参数的作用及相互之间的关系。
在线实时模糊自整定PID算法的基础上,通过计算当前系统e和误差变化率ec,利用模糊规则进行模糊推理,查询模糊矩阵表进行参数调整。
核心是总结工程设计人员的技术知识和实际操作经验,建立合适的模糊规则表,得到针对kp,ki,kd三个参数分别整定的模糊控制表(表1,表2,和表3)。
表1kp模糊控制规则表
kpec
e
NB
NM
NS
ZO
PS
PM
PB
表2ki模糊控制规则表
kiec
表3kd模糊控制规则表
kdec
kp,ki,kd的控制规则表建立好后,可根据如下方法kp,ki,kd的自适应校正。
将系统e和误差变化率ec变化范围定义为模糊集上的论域。
e,ec={-5,-4,-3,-2,-1,0,1,2,3,4,5}
其模糊子集为e,ec={NB,NM,NS,ZO,PS,PM,PB}子集中元素分别代表负大,负中,负小,零,正小,正中,正大。
根据各模糊子集的隶属度赋值表和各参数模糊控制模型,应用模糊合成推理设计PID参数的模糊矩阵表,查出修正参数,代入下式计算:
在线运行过程中,控制系统通过模糊逻辑规则的结果处理、查表和运算,完成对PID参数的在线自校正。
其工作流程如图3所示:
图3在线自校正工作流程图
三、仿真结果
被控对象为:
采样时间为1ms,采用模糊PID控制进行跃响应,在第300个采样时间控制器输出加1.0的干扰,相应的响应结果如图所示:
a)模糊PID控制阶跃响应b)模糊PID控制误差响应
c)控制器输出ud)kp的自适应调整
e)ki的自适应控制调整e)kd的自适应控制调整
图4仿真结果
其中,e,de,kp,ki,kd的隶属度函数:
a)误差的隶属度函数b)误差变化率的隶属度函数
c)kp的隶属度函数d)ki的隶属度函数
e)kd的隶属度函数
图5各变量的隶属度函数
图6模糊PID控制系统构成
得到的模糊规则有以下49条:
MATLAB下运行showrule(a),可得到以下49条模糊规则:
1.If(eisNB)and(ecisNB)then(kpisPB)(kiisNB)(kdisPS)
(1)
2.If(eisNB)and(ecisNM)then(kpisPB)(kiisNB)(kdisNS)
(1)
3.If(eisNB)and(ecisNS)then(kpisPM)(kiisNM)(kdisNB)
(1)
4.If(eisNB)and(ecisZ)then(kpisPM)(kiisNM)(kdisNB)
(1)
5.If(eisNB)and(ecisPS)then(kpisPS)(kiisNS)(kdisNB)
(1)
6.If(eisNB)and(ecisPM)then(kpisZ)(kiisZ)(kdisNM)
(1)
7.If(eisNB)and(ecisPB)then(kpisZ)(kiisZ)(kdisPS)
(1)
8.If(eisNM)and(ecisNB)then(kpisPB)(kiisNB)(kdisPS)
(1)
9.If(eisNM)and(ecisNM)then(kpisPB)(kiisNB)(kdisNS)
(1)
10.If(eisNM)and(ecisNS)then(kpisPM)(kiisNM)(kdisNB)
(1)
11.If(eisNM)and(ecisZ)then(kpisPS)(kiisNS)(kdisNM)
(1)
12.If(eisNM)and(ecisPS)then(kpisPS)(kiisNS)(kdisNM)
(1)
13.If(eisNM)and(ecisPM)then(kpisZ)(kiisZ)(kdisNS)
(1)
14.If(eisNM)and(ecisPB)then(kpisNS)(kiisZ)(kdisZ)
(1)
15.If(eisNS)and(ecisNB)then(kpisPM)(kiisNB)(kdisZ)
(1)
16.If(eisNS)and(ecisNM)then(kpisPM)(kiisNM)(kdisNS)
(1)
17.If(eisNS)and(ecisNS)then(kpisPM)(kiisNS)(kdisNM)
(1)
18.If(eisNS)and(ecisZ)then(kpisPS)(kiisNS)(kdisNM)
(1)
19.If(eisNS)and(ecisPS)then(kpisZ)(kiisZ)(kdisNS)
(1)
20.If(eisNS)and(ecisPM)then(kpisNS)(kiisPS)(kdisNS)
(1)
21.If(eisNS)and(ecisPB)then(kpisNS)(kiisPS)(kdisZ)
(1)
22.If(eisZ)and(ecisNB)then(kpisPM)(kiisNM)(kdisZ)
(1)
23.If(eisZ)and(ecisNM)then(kpisPM)(kiisNM)(kdisNS)
(1)
24.If(eisZ)and(ecisNS)then(kpisPS)(kiisNS)(kdisNS)
(1)
25.If(eisZ)and(ecisZ)then(kpisZ)(kiisZ)(kdisNS)
(1)
26.If(eisZ)and(ecisPS)then(kpisNS)(kiisPS)(kdisNS)
(1)
27.If(eisZ)and(ecisPM)then(kpisNM)(kiisPM)(kdisNS)
(1)
28.If(eisZ)and(ecisPB)then(kpisNM)(kiisPM)(kdisZ)
(1)
29.If(eisPS)and(ecisNB)then(kpisPS)(kiisNM)(kdisZ)
(1)
30.If(eisPS)and(ecisNM)then(kpisPS)(kiisNS)(kdisZ)
(1)
31.If(eisPS)and(ecisNS)then(kpisZ)(kiisZ)(kdisZ)
(1)
32.If(eisPS)and(ecisZ)then(kpisNS)(kiisPS)(kdisZ)
(1)
33.If(eisPS)and(ecisPS)then(kpisNS)(kiisPS)(kdisZ)
(1)
34.If(eisPS)and(ecisPM)then(kpisNM)(kiisPM)(kdisZ)
(1)
35.If(eisPS)and(ecisPB)then(kpisNM)(kiisPB)(kdisZ)
(1)
36.If(eisPM)and(ecisNB)then(kpisPS)(kiisZ)(kdisPB)
(1)
37.If(eisPM)and(ecisNM)then(kpisZ)(kiisZ)(kdisPS)
(1)
38.If(eisPM)and(ecisNS)then(kpisNS)(kiisPS)(kdisPS)
(1)
39.If(eisPM)and(ecisZ)then(kpisNM)(kiisPS)(kdisPS)
(1)
40.If(eisPM)and(ecisPS)then(kpisNM)(kiisPM)(kdisPS)
(1)
41.If(eisPM)and(ecisPM)then(kpisNM)(kiisPB)(kdisPS)
(1)
42.If(eisPM)and(ecisPB)then(kpisNB)(kiisPB)(kdisPB)
(1)
43.If(eisPB)and(ecisNB)then(kpisZ)(kiisZ)(kdisPB)
(1)
44.If(eisPB)and(ecisNM)then(kpisZ)(kiisZ)(kdisPM)
(1)
45.If(eisPB)and(ecisNS)then(kpisNM)(kiisPS)(kdisPM)
(1)
46.If(eisPB)and(ecisZ)then(kpisNM)(kiisPM)(kdisPM)
(1)
47.If(eisPB)and(ecisPS)then(kpisNM)(kiisPM)(kdisPS)
(1)
48.If(eisPB)and(ecisPM)then(kpisNB)(kiisPB)(kdisPS)
(1)
49.If(eisPB)and(ecisPB)then(kpisNB)(kiisPB)(kdisPB)
(1)
四、小结
人们利用人工智能的方法将操作人员的调整经验作为知识存入计算机中,根据实际情况,计算机能自动调整PID参数,这样就实现了模糊自适应PID控制器。
但是,通过实验表明,这种方法对操作人员的调整经验有很高的要求,如果初值的加入和控制规则建立的不正确,将会给校正带来很大的不便,甚至很难达到稳定。
五、仿真程序清单
%=====================================
%模糊自适应PID控制器程序
clearall;
%清除所有变量
closeall;
%关闭所有窗口
clc;
%清屏
%-------------------------------
%模糊控PID控制系统
a=newfis('
fuzzpid'
);
%创建一个FIS(FuzzyInferenceSystem)对象a=addvar(a,'
input'
'
e'
[-3,3]);
%第1个输入型模糊变量e;
a=addmf(a,'
1,'
NB'
zmf'
[-3,-1]);
%第1个输入模糊语言名称NB,隶属度函数是zmf,范围为-3到-1
NM'
trimf'
[-3,-2,0]);
NS'
[-3,-1,1]);
a=addmf(a,'
Z'
[-2,0,2]);
PS'
[-1,1,3]);
PM'
[0,2,3]);
PB'
smf'
[1,3]);
a=addvar(a,'
ec'
%第2个输入模糊变量eca=addmf(a,'
2,'
output'
kp'
[-0.3,0.3]);
%第1个输出变量kp
[-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]);
ki'
[-0.06,0.06]);
%第2个输出变量ki
[-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个输出变量kd
3,'
%模糊规则,每行7个元素:
2个输入变量和3个输出变量的语言名称的索引,
%以及该条规则的权重和条件的关系(1表AND,2表示OR)
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;
724461
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 模糊 自适应 PID 控制器