模糊PID控制器设计_第1页
模糊PID控制器设计_第2页
模糊PID控制器设计_第3页
模糊PID控制器设计_第4页
模糊PID控制器设计_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

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

文档简介

1、模糊PID控制器参数自整定报告0引言:PID控制作为一种典型的传统反馈控制器,以其结构简单,易于实现和鲁棒性好等特点在工业过程控制中广泛应用。但是传统PID控制器的参数需要被控对象的数学模型来进行调整,而控制过程中的滞后性、控制参数的非线性和高阶陛增加了对Kp、Ki、Kd三个参数的调整难度。所以对确定的控制系统通过复杂的计算后,其三个参数的值在控制运行中一般是固定的,不易进行在线的调整。而在实际的工业生产过程中,许多被控对象受到负荷变化和干扰因素的作用,其对象参数的特征和结构易发生改变,这就需要对参数进行动态的调整。同样因为被控系统的复杂性和不确定性,其精确的数学模型难以建立,甚至无法建立模型

2、,所以需要利用模糊控制技术等方法来解决。模糊PID无需考虑被控系统的模型,而只根据其误差e和误差变化ec等检测数据来自适应调整Kp、Ki、Kd的值,最终使被控系统处于稳定工作态。1、PID控制器:PID参数模糊自整定是找出PID中3个参数与e和ec之间的模糊关系,在运行中通过不断检测e和ec,根据模糊控制原理来对3个参数进行在线修改,以满足不同e和ec时对控制参数的不同要求,而使被控对象有良好的动稳态性能。从系统的稳定性、响应速度、超调量和稳态精度等方面来考虑Kp,Ki,Kd的作用如下:(1)比例系数Kp的作用是:加快系统的响应速度,提高系统的调节精度。Kp越大,系统的响应速度越快,系统的调节

3、精度越高,但易产生超调,甚至导致系统不稳定;Kp取值过小,则会降低调节精度,使响应速度缓慢,从而延长调节时间,使系统静态、动态特性变坏。(2)积分作用系数Ki的作用是:消除系统的稳态误差。Ki越大,系统的稳态误差消除越快,但Ki过大,在响应过程的初期会产生积分饱和现象,从而引起响应过程的较大超调;若Ki过小,将使系统稳态误差难以消除,影响系统的调节精度。(3)微分作用系数Kd的作用是:改善系统的动态特性。其作用主要是能反应偏差信号的变化趋势,并能在偏差信号值变得太大之前,在系统中引入一个有效的早期修正信号,从而加快系统的动作速度,减少调节时间。2、 模糊PID参数自整定控制器设计2.1控制器结

4、构:2.2模糊化由PID各个参数对系统的影响得到:(a)当误差|e|较大时,说明误差的绝对值较大,不论误差的变化趋势如何,都应该考虑控制器的Kp取较大值,以提高响应的快速性;而为防止因为|ec|瞬时过大,kd应该取较小的值;为控制超调,ki也应该取值很小。(b)当误差|e|在中等大小时,为保证系统的相应速度并控制超调,应减小Kp,Ki值应增大,Kd应适中。(c)当误差|e|较小时,为保证系统具有良好的稳态特性,应加大Kp、Ki的取值,同时为避免产生振荡,Kd的取值应该和|ec|联系起来。模糊PID控制根据系统运行的不同状态,考虑Kp、Ki、Kd三者的关联,根据工程经验设计模糊整定这三个参数,选

5、择输入语言变量为误差e和偏差变化率ec,语言变量值取NB,NM,NS,0,PS,PM,PB七个模糊值;选择输出语言变量为Kp,Ki,Kd语言变量值也取NB,NM,NS,0,PS,PM,PB七个模糊值,建立Kp,Ki,Kd的模糊规则表如下表1、表2、表3。 2.3设计模糊控制器 在MATLAB命令空间输入fuzzy,弹出对话框,然后进行设置,如图:设置为两输入三输出结构。根据经验设置输入输出的隶属度函数都为:设置完隶属度函数后,按照上述三个模糊规则表格设置模糊规则,如图设置完毕后,保存文件“zhinengkongz.fis”至磁盘,留给仿真调用,生成的文件为:SystemName=zhineng

6、kongzType=mamdaniVersion=2.0NumInputs=2NumOutputs=3NumRules=49AndMethod=minOrMethod=maxImpMethod=minAggMethod=maxDefuzzMethod=centroidInput1Name=eRange=-3 3NumMFs=7MF1=nb:zmf,-3 -1MF2=nm:trimf,-3 -2 0MF3=ns:trimf,-3 -1 1MF4=zo:trimf,-2 0 2MF5=ps:trimf,-1 1 3MF6=pm:trimf,0 2 3MF7=pb:smf,1 3Input2Name

7、=ecRange=-3 3NumMFs=7MF1=nb:zmf,-3 -1MF2=nm:trimf,-3 -2 0MF3=ns:trimf,-3 -1 1MF4=zo:trimf,-2 0 2MF5=ps:trimf,-1 1 3MF6=pm:trimf,0 2 3MF7=pb:smf,1 3Output1Name=kpRange=-3 3NumMFs=7MF1=nb:zmf,-3 -1MF2=nm:trimf,-3 -2 0MF3=ns:trimf,-3 -1 1MF4=zo:trimf,-2 0 2MF5=ps:trimf,-1 1 3MF6=pm:trimf,0 2 3MF7=pb:sm

8、f,1 3Output2Name=kiRange=-3 3NumMFs=7MF1=nb:zmf,-3 -1MF2=nm:trimf,-3 -2 0MF3=ns:trimf,-3 -1 1MF4=zo:trimf,-2 0 2MF5=ps:trimf,-1 1 3MF6=pm:trimf,0 2 3MF7=pb:smf,1 3Output3Name=kdRange=-3 3NumMFs=7MF1=nb:zmf,-3 -1MF2=nm:trimf,-3 -2 0MF3=ns:trimf,-3 -1 1MF4=zo:trimf,-2 0 2MF5=ps:trimf,-1 1 3MF6=pm:trim

9、f,0 2 3MF7=pb:smf,1 3Rules1 1, 7 1 5 (1) : 11 2, 7 1 3 (1) : 11 3, 6 2 1 (1) : 11 4, 6 5 1 (1) : 11 5, 5 3 1 (1) : 11 6, 4 4 2 (1) : 11 7, 4 4 5 (1) : 12 1, 7 1 5 (1) : 12 2, 7 1 3 (1) : 12 3, 6 2 1 (1) : 12 4, 5 3 2 (1) : 12 5, 5 3 2 (1) : 12 6, 4 4 3 (1) : 12 7, 3 4 4 (1) : 13 1, 6 1 4 (1) : 13 2,

10、 6 2 3 (1) : 13 3, 6 3 2 (1) : 13 4, 5 3 2 (1) : 13 5, 4 4 3 (1) : 13 6, 3 5 3 (1) : 13 7, 3 5 4 (1) : 14 1, 6 2 4 (1) : 14 2, 6 2 3 (1) : 14 3, 5 3 3 (1) : 14 4, 4 4 3 (1) : 14 5, 3 5 3 (1) : 14 6, 2 6 3 (1) : 14 7, 2 6 4 (1) : 15 1, 5 2 4 (1) : 15 2, 5 3 4 (1) : 15 3, 4 4 4 (1) : 15 4, 3 5 4 (1) :

11、 15 5, 3 5 4 (1) : 15 6, 2 6 4 (1) : 15 7, 2 7 4 (1) : 16 1, 5 4 7 (1) : 16 2, 4 4 3 (1) : 16 3, 3 5 5 (1) : 16 4, 2 5 5 (1) : 16 5, 2 6 5 (1) : 16 6, 2 7 5 (1) : 16 7, 1 7 7 (1) : 17 1, 4 4 7 (1) : 17 2, 4 4 6 (1) : 17 3, 2 5 6 (1) : 17 4, 2 6 6 (1) : 17 5, 2 6 5 (1) : 17 6, 1 7 5 (1) : 17 7, 1 7 7

12、 (1) : 13、 系统仿真设控制对象为:G(s)=25/s2+6s+25通过程序(含注释)仿真如下:clear all;clc;a=readfis(zhinengkongz); %读取设定的FIS模糊控制器ts=0.001; %抽样时间为1MSsys=tf(25,1,6,25); %构造系统G(s)=25/s2+6s+25dsys=c2d(sys,ts,z); %离散化num,den=tfdata(dsys,v); %得到系数%设置系统初值u1=0;u2=0;y1=0;y2=0;x=0,0,0;e1=0;ec1=0;Kp0=0.3;Ki0=2;Kd0=1;for k=1:5000; %仿真

13、5Stime(k)=k*ts;r(k)=1; %输入阶跃信号fpid=evalfis(e1,ec1,a); %模糊推理Kp(k)=Kp0+fpid(1); %得到新的参数Ki(k)=Ki0+fpid(2);Kd(k)=Kd0+fpid(3);u(k)=Kp(k)*x(1)+Ki(k)*x(2)+Kd(k)*x(3); %PID输出y(k)=-den(2)*y1-den(3)*y2+num(1)*u(k)+num(2)*u1+num(3)*u2;%系统输出e(k)=r(k)-y(k); %计算误差u2=u1;u1=u(k); %更新数据y2=y1;y1=y(k);x(1)=e(k); %对应KP

14、x(2)=x(2)+e(k)*ts; %对应KIx(3)=e(k)-e1; %对应KDec1=e(k)-e1; %重新计算ece1=e(k); %重新计算eend%打印输出figure(1);plot(time,y,g,time,r,r);grid on;xlabel(time(s);ylabel( y );figure(2)plot(time,Kp,r);xlabel(time(s);ylabel( Kp );grid on;figure(3)plot(time,Ki,b);grid on;xlabel(time(s);ylabel( Ki );figure(4)plot(time,Kd,g);xlabel(time(s);ylabel( Kd );grid on;结果显示: 输入输出对比图 Kp自动调整曲线 Ki自动调整曲线 Kd自动调整曲线可以看出,系统输出具有较好的超调量和调节时间,没有稳态误差,达到了理想的效果

温馨提示

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

评论

0/150

提交评论