模糊自适应PID控制器.docx

上传人:b****1 文档编号:1985889 上传时间:2023-05-02 格式:DOCX 页数:21 大小:125.44KB
下载 相关 举报
模糊自适应PID控制器.docx_第1页
第1页 / 共21页
模糊自适应PID控制器.docx_第2页
第2页 / 共21页
模糊自适应PID控制器.docx_第3页
第3页 / 共21页
模糊自适应PID控制器.docx_第4页
第4页 / 共21页
模糊自适应PID控制器.docx_第5页
第5页 / 共21页
模糊自适应PID控制器.docx_第6页
第6页 / 共21页
模糊自适应PID控制器.docx_第7页
第7页 / 共21页
模糊自适应PID控制器.docx_第8页
第8页 / 共21页
模糊自适应PID控制器.docx_第9页
第9页 / 共21页
模糊自适应PID控制器.docx_第10页
第10页 / 共21页
模糊自适应PID控制器.docx_第11页
第11页 / 共21页
模糊自适应PID控制器.docx_第12页
第12页 / 共21页
模糊自适应PID控制器.docx_第13页
第13页 / 共21页
模糊自适应PID控制器.docx_第14页
第14页 / 共21页
模糊自适应PID控制器.docx_第15页
第15页 / 共21页
模糊自适应PID控制器.docx_第16页
第16页 / 共21页
模糊自适应PID控制器.docx_第17页
第17页 / 共21页
模糊自适应PID控制器.docx_第18页
第18页 / 共21页
模糊自适应PID控制器.docx_第19页
第19页 / 共21页
模糊自适应PID控制器.docx_第20页
第20页 / 共21页
亲,该文档总共21页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

模糊自适应PID控制器.docx

《模糊自适应PID控制器.docx》由会员分享,可在线阅读,更多相关《模糊自适应PID控制器.docx(21页珍藏版)》请在冰点文库上搜索。

模糊自适应PID控制器.docx

模糊自适应PID控制器

 

模糊自适应PID控制器

的设计

 

模糊自适应PID控制器的设计

一、模糊自适应原理

模糊控制是以模糊集合论、模糊语言变量和模糊逻辑推理为基础的一种计算机控制方法,作为智能控制的一个重要分支,在控制领域获得了广泛应用,模糊控制与传统控制方式相比具有以下突出优点:

·不需要精确的被控对象的数学模型;

·使用自然语言方法,控制方法易于掌握;

·鲁棒性好,能够较大范围的适应参数变化;

·与常规PID控制相比,动态响应品质优良。

常规模糊控制器的原理如图1所示:

图1模糊控制系统框图

PID控制规律:

式中:

---比例系数;

---积分时间常数;

---微分时间常数。

在工业生产中过程中,许多被控对象随着负荷变化或干扰因素影响,其对象特性参数或结构发生改变。

自适应控制运用现代控制理论在线辨识对象特征参数,实时改变其控制策略,使控制系统品质指标保持在最佳范围内,但其控制效果的好坏取决于辨识模型的精确度,这对于复杂系统是非常困难的。

因此,在工业生产中过程中,大量采用的仍然是PID算法,PID参数的整定方法很多,但大多数都以对象特性为基础。

随着计算机技术的以展,人们利用人工智能的方法将操作人员的调整经验作为知识存入计算机中,根据现场实际情况,计算机能自动调整PID参数,这样就出现了智能PID.这种控制器把古典的PID控制与先进的专家系统相结合,实现系统的最佳控制。

这种控制必须精确地确定模型,首先将操作人员长期实践积累的经验知识用控制然后运用推理便可对PID参数实现最佳调整。

由于操作者经验不易精确描述,控制过程中各种信号量及评价指标不易定量表示,模糊理念是解决这一问题的有效途径,所以人们运用学的基本理论和方法,把规则的条件、操作用模糊集表示,并把这些模糊有关信息作为知识存入计算机知识库中,然后计算机根据控制系统的实际响应情况,运用模糊推理,即可自动实现对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

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

表2ki模糊控制规则表

kiec

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

PS

NS

ZO

PS

PS

ZO

NM

NM

NS

ZO

PS

PM

PM

PS

NM

NS

ZO

PS

PS

PM

PB

PM

ZO

ZO

PS

PS

PM

PB

PB

PB

ZO

ZO

PS

PM

PM

PB

PB

表3kd模糊控制规则表

kdec

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

PM

NS

PS

PS

PS

PS

PB

PB

PB

PM

PM

PM

PS

PS

PB

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,'input',1,'NB','zmf',[-3,-1]);

%第1个输入模糊语言名称NB,隶属度函数是zmf,范围为-3到-1

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

a=addmf(a,'input',1,'NS','trimf',[-3,-1,1]);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]);%第2个输入模糊变量eca=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,1]);

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]);%第1个输出变量kp

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.1]);

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]);%第2个输出变量ki

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]);%第3个输出变量kd

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,1]);

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

%模糊规则,每行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;

7244611;

7325611;

7426611;

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

当前位置:首页 > 总结汇报 > 学习总结

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

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