




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Fuzzy PID Controller2 模糊控制器的设计2.1 模糊控制器的基本原理2.1.1 模糊控制器的原理模糊控制(Fuzzy Control)是以模糊集理论、模糊语言变量和模糊逻辑推理为基础的一种智能控制方法,它从行为上模仿人的模糊推理和决策过程。模糊控制是先将操作人员或专家经验编成模糊规则,然后将来自传感器的实时信号通过模糊规则模糊化,将模糊化后的信号作为模糊规则的输入,完成模糊推理,进行解模糊化,最后将解模糊后得到的输出量加到执行器上。图2-1是模糊控制原理框图。图2-1 模糊控制原理框图2.1.2 模糊控制器的组成在整个控制器中,模糊控制器是整个控制系统的核心,所采用的模糊规
2、则、合成推理算法和模糊决策的方法等都是决定整个控制器优劣的因素。其组成如图2-2: 图2-2 模糊控制器的组成框图模糊化接口是模糊控制器的输入借口,主要作用是将真实的确定量输入转换为一个模糊矢量。数据库和规则库共同组成了控制器的知识库,数据库中存放的是所有输入、输出变的的全部模糊子集的隶属度矢量值(即经过论域等级离散化以后对应值的集合)。在规则推理的模糊关系方程求解过程中,向推理机提供数据。规则库是对人类长期经验的总结,将其转化成模糊控制算法,为推理机提供控制规则。推理是模糊控制器中,根据输入模糊量,模仿人类判断时的模糊概念,运用模糊逻辑和模糊推论法进行推论,而得到模糊控制讯号。此部分是模糊控
3、制器的精髓所在。解模糊借口是将推论所得到的模糊值转换为明确的控制讯号,做为系统的输入值。2.2 模糊控制器的设计步骤通过对模糊控制器原理的研究,得出设计模糊控制器主要包括以下几项内容:(1) 确定模糊控制器的输入变量和输出变量(即控制量)。输入变量为误差e以及误差变化ec,输出变量为控制量u。e,ec,u的模糊集均为:NB,NM,NS,ZO,PS,PM,PB。e,ec的论域均为:-3,-2,-1,0,1,2,3。u的论域为:-4.5,-3,-1.5,0,1,3,4.5。(2) 定义输入、输出隶属函数。(3) 建立模糊控制规则。(4) 建立模糊控制表。(5) 模糊推理。(6) 反模糊化。2.3
4、模糊控制器的程序仿真2.3.1 输入量和输出量的程序及仿真设定e的范围、隶属度函数的程序: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,1);a=addmf(a,'
5、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);仿真的图形:图2-3 e的隶属度函数设定ec的范围、隶属度函数的程序:a=addvar(a,'input',
6、'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,1);a=addmf(a,'input',2,'Z','trimf',-2,0,2);a=addmf(a,'input
7、39;,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); 仿真后的图形:图2-4 ec的隶属度函数设定kp的范围、隶属度函数的程序:a=addvar(a,'output','kp',-0.3,0.3); a=addmf(a,'output',1,'NB',&
8、#39;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,
9、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); 仿真后的图形:图2-5 kp的隶属度函数设定ki的范围、隶属度函数:a=addvar(a,'output','ki',-0.06,0.06); a=addmf(a,'output',2,'NB','zmf',-0.06,-0.02)
10、;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=ad
11、dmf(a,'output',2,'PM','trimf',0,0.04,0.06);a=addmf(a,'output',2,'PB','smf',0.02,0.06); 仿真后的图形:图2-6 ki的隶属度函数设定kd的范围、隶属度函数:a=addvar(a,'output','kd',-3,3); a=addmf(a,'output',3,'NB','zmf',-3,-1);a=addmf(a,'outpu
12、t',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
13、9;,0,2,3);a=addmf(a,'output',3,'PB','smf',1,3); 仿真后的图形:图2-7 kd的隶属度函数 由此,我们得出了整个模糊控制系统的结构:图2-8 整个模糊控制系统的结构模糊推理的动态仿真环境:图2-9 模糊推理的动态仿真环境程序中rulelist部分是对模糊规则的描述。程序中a=addrule(a,rulelist);a=setfis(a,'DefuzzMethod','centroid');writefis(a,'fuzzpid');部分是解模糊程序,采用
14、的是重心法。3 PID控制器的设计3.1 PID控制器的基本原理在实际工业控制过程中,由于被动对象中的储能元件的影响以及管道和传输等原因,会引入一些时间上的滞后,从而造成的系统的不稳定。为了改善系统的调节品质,通常会加入偏差的比例调节,来保证系统的快速性,加入偏差的积分调节以提高控制精度,引入偏差的微分调节来消除系统的惯性影响。图3-1表示的就是PID控制器系统。图3-1 PID控制系统比例系数积分系数,=微分系数,=,为采样周期积分时间微分时间4 模糊PID控制器的设计4.1 模糊PID控制器的原理4.1.1 模糊PID控制器的基本原理模糊PID控制器是在一般PID控制系统的基础上,加上一个
15、模糊控制规则环节,利用模糊控制规则在线对PID参数进行修改的一种自适应控制系统。以误差e和误差变化ec作为输入,可以满足不同时刻的e和ec对参数自整定的要求。它将模糊控制和PID控制器两者结合起来,扬长避短,既具有模糊控制灵活而适应性强的优点,又具有PID控制精度高的特点。图4.1是模糊PID控制器结构图。图4.1模糊PID控制器结构图4.1.2 模糊PID控制器的工作流程根据图4.1可以知道,PID参数模糊自整定是找出PID3个参数与e和ec之间的模糊关系,在允许中通过不断检测e和ec,根据模糊控制原理来对3个参数进行修改,并将3个参数返回给PID控制器,PID控制器输出控制信号以满足不同e
16、和ec时对控制参数的不同要求,而使被控对象有良好的动、静态性能。根据上述过程,模糊PID控制器的工作流程,可总结为图4.2。图4-2 模糊PID控制器的工作流程图4.2 模糊PID控制器的主要程序及仿真实例4.2.1 模糊PID控制器主要程序解释程序分为两部分,一部分是模糊控制器程序,另一部分是PID控制器的程序。模糊控制程序已经在上文介绍并且仿真过,现具体对PID控制程序做介绍。利用语句a=readfis('fuzzpid')读取模糊控制器程序。以3阶系统为例,通过语句sys=tf(5.235e005,1,87.35,1.047e004,0);在程序中对系统进行描述,调节时间
17、ts=0.001,e,ec,ki,kd初始设为0,kp初值设为0.4。利用语句for k=1:1:3000time(k)=k*ts;设定循环长度。通过语句if k=300 在0.3s加入干扰信号,用以观察控制器的控制效果。输入信号采用方波信号,采用语句为r(k)=sign(sin(2*pi*k*ts)。在程序中,需要对被控对象的传递函数采用z变换进行离散化,在程序中为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;通过仿真,得到的波形如下:图4-3 模糊PID控制误差响应图4
18、-4 控制器输入u图4-5 kp的自适应调整图4-6 ki的自适应调整图4-7 kd的自适应调整模糊PID控制的方波响应,即整个控制器的输出:图4-8 整个控制器的方波响应通过对控制器输出的观察,可知控制器可以适应方波信号输入,并且对干扰有一定的适应作用。4.2.2 不同系统在不同输入信号下的仿真结果为了验证该控制器可以应用于多种系统,并且在不同的输入信号下也能稳定的工作,对1阶2阶3阶系统在方波和斜坡输入信号下(其中斜坡信号为r(k)=k*ts),都做一下仿真,结果如下:图4-9 某1阶系统的方波响应图4-11 某2阶系统的方波响应图4-12 某2阶系统的斜坡响应图4-13 某3阶系统的斜坡
19、响应以上结果证明,该模糊PID控制器对于不同类型的系统,都有一定的适用性。附录A 部分代码模糊部分%Fuzzy Tunning PID Controlclear all;close all;a=newfis('fuzzpid');a=addvar(a,'input','e',-3,3); %Parameter e 设定e的范围、隶属度函数a=addmf(a,'input',1,'NB','zmf',-3,-1);a=addmf(a,'input',1,'NM',
20、9;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,'inpu
21、t',1,'PB','smf',1,3);a=addvar(a,'input','ec',-3,3); %Parameter ec设定ec的范围、隶属度函数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',-
22、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'
23、;,-0.3,0.3); %Parameter kp设定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','trim
24、f',-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); %Parameter ki 设定ki的范围
25、、隶属度函数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=add
26、mf(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); %Parameter kp 设定kp的范围、隶属度函数a=addmf(a,'ou
27、tput',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
28、9;,-1,1,3);a=addmf(a,'output',3,'PM','trimf',0,2,3);a=addmf(a,'output',3,'PB','smf',1,3);rulelist=1 1 7 1 5 1 1; 设定模糊规则 1 2 7 1 3 1 1; 1 3 6 2 1 1 1; 1 4 6 2 1 1 1; 1 5 5 3 1 1 1; 1 6 4 4 2 1 1; 1 7 4 4 5 1 1; 2 1 7 1 5 1 1; 2 2 7 1 3 1 1; 2 3 6 2 1 1
29、1; 2 4 5 3 2 1 1; 2 5 5 3 2 1 1; 2 6 4 4 3 1 1; 2 7 3 4 4 1 1; 3 1 6 1 4 1 1; 3 2 6 2 3 1 1; 3 3 6 3 2 1 1; 3 4 5 3 2 1 1; 3 5 4 4 3 1 1; 3 6 3 5 3 1 1; 3 7 3 5 4 1 1; 4 1 6 2 4 1 1; 4 2 6 2 3 1 1; 4 3 5 3 3 1 1; 4 4 4 4 3 1 1; 4 5 3 5 3 1 1; 4 6 2 6 3 1 1; 4 7 2 6 4 1 1; 5 1 5 2 4 1 1; 5 2 5 3 4 1
30、1; 5 3 4 4 4 1 1; 5 4 3 5 4 1 1; 5 5 3 5 4 1 1; 5 6 2 6 4 1 1; 5 7 2 7 4 1 1; 6 1 5 4 7 1 1; 6 2 4 4 5 1 1; 6 3 3 5 5 1 1; 6 4 2 5 5 1 1; 6 5 2 6 5 1 1; 6 6 2 7 5 1 1; 6 7 1 7 7 1 1; 7 1 4 4 7 1 1; 7 2 4 4 6 1 1; 7 3 2 5 6 1 1; 7 4 2 6 6 1 1; 7 5 2 6 5 1 1; 7 6 1 7 5 1 1; 7 7 1 7 7 1 1;a=addrule(a,r
31、ulelist);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,'
32、output',3);figure(6);plotfis(a);fuzzy fuzzpid;showrule(a);ruleview fuzzpid;PID部分%Fuzzy PID Controlclose all;clear all;a=readfis('fuzzpid'); %Load fuzzpid.fis 模糊控制器ts=0.001;sys=tf(5.235e005,1,87.35,1.047e004,0); dsys=c2d(sys,ts,'tustin');num,den=tfdata(dsys,'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; 初值for k=1:1:3000time(k)=k*ts;r(k)=sign(sin(2*pi*
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论