智能控制技术实验报告汇总_第1页
智能控制技术实验报告汇总_第2页
智能控制技术实验报告汇总_第3页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

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

文档简介

1、智能控制技术实验报告书学院: 专业: 学号: 姓名:实验一:模糊控制与传统 PID 控制的性能比较一、实验目的通过本实验的学习,使学生了解传统 PID 控制、模糊控制等基本知识,掌 握传统 PID 控制器设计、模糊控制器设计等知识,训练学生设计控制器的能力, 培养他们利用 MATLAB 进行仿真的技能,为今后继续模糊控制理论研究以及控 制仿真等学习奠定基础。二、实验内容本实验主要是设计一个典型环节的传统 PID 控制器以及模糊控制器,并对 他们的控制性能进行比较。主要涉及自控原理、计算机仿真、智能控制、模糊控 制等知识。通常的工业过程可以等效成二阶系统加上一些典型的非线性环节,如死区、 饱和、

2、纯延迟等。这里,我们假设系统为: H(s)=20e0.02s/(1.6s2+4.4s+1) 控制执行机构具有 0.07 的死区和 0.7的饱和区,取样时间间隔 T=0.01。 设计系统的模糊控制,并与传统的 PID 控制的性能进行比较。三、实验原理、方法和手段1. 实验原理:1)对典型二阶环节,根据传统 PID 控制,设计 PID 控制器,选择合适的 PID 控制器参数 kp、ki 、kd;2)根据模糊控制规则,编写模糊控制器。2. 实验方法和手段:1)在PID 控制仿真中,经过仔细选择,我们取 kp=5,ki=0.1,kd=0.001;2)在模糊控制仿真中,我们取 ke=60,ki=0.01

3、,kd=2.5,ku=0.8;3)模糊控制器的输出为: u= ku×fuzzy(k e× e, kd×e')ki× edt 其中积分项用于消除控制系统的稳态误差。4)模糊控制规则如表 1-1 所示:在 MATLAB 程序中, Nd 用于表示系统的纯延迟( Nd=td/T),umin 用于表示 控制的死区电平, umax 用于表示饱和电平。当 Nd=0 时,表示系统不存在纯延 迟。5)根据上述给定内容,编写 PID 控制器、模糊控制器的 MATLAB 仿真程序, 并记录仿真结果,对结果进行分析表 1-1 FC 的模糊推理规则表e'e uNB

4、NSZRPSPBNBPBPBPSPSZRNSPBPSPSZRZRZRPSPSZRZRNSPSPSZRZRNSNSPBZRZRNSNSNB四、实验组织运行要求 根据本实验的综合性、设计性特点以及要求学生自主设计 MATLAB 仿真程序的要求以及我们实验室的具体实验条件, 本实验采用以学生自主训练为主的开 放模式组织教学。五、实验条件1. 装有 MATLAB6.5 的计算机;2. 智能控制技术教材;3. 模糊控制教材;4. 智能控制技术实验指导书。六、实验步骤1. 学生熟悉实验内容,并根据实验内容、实验要求,查阅、学习相关知识;2. 设计典型二阶环节的 PID 控制器以及模糊控制器;3. 编写 M

5、ATLAB 仿真程序4. 上机调试程序,修改程序修改控制器的参数等;5. 对实验程序仿真,并记录仿真结果;6. 对实验结果进行分析,书写实验报告书。七、实验程序num=20;den=1.6,4.4,1;a1,b,c,d=tf2ss(num,den);% x=0;0;T=0.01;h=T; %T umin=0.07;umax=0.7; td=0.02;Nd=td/T; %Nd N=500;R=1.5*ones(1,N);% e=0; de=0;ie=0;kp=5;ki=0.1;kd=0.001; %for k=1:Nuu1(1,k)= -(kp*e+ki*ie+kd*de);% if k<

6、=Nd % 纯延迟 u=0;elseu=uu1(1,k-Nd);endif abs(u)<=umin%u=0将传递函数转化为状态模型为采样时间延迟时间参考值设定的比例,积分,微分常数控制量生成死区和饱和环节elseif abs(u)>umax u=sign(u)*umax;end %龙格- 库塔算法求对象的输出 k1=a1*x+b*u; k2=a1*(x+h*k1/2)+b*u; k3=a1*(x+h*k2/2)+b*u; k4=a1*(x+h*k3)+b*u; x=x+(k1+2*k2+2*k3+k4)*h/6; y=c*x+d*u;%计算误差 . 微分和积分 e1=e; e=y

7、(1,1)-R(1,k);de=(e-e1)/T; ie=e*T+ie;yy1(1,k)=y;end;kk=1:N*T;figure(1);plot(kk,yy1); a=newfis('simple');% 建立模糊推理系统 a=addvar(a,'input','e',-6 6);% 增加第一个输入变量 e a=addmf(a,'input',1,'NB','trapmf',-6 -6 -5 -3);%添加隶属函数a=addmf(a,'input',1,'NS',

8、'trapmf',-5 -3 -2 0);a=addmf(a,'input',1,'ZR','trimf',-2 0 2); a=addmf(a,'input',1,'PS','trapmf',0 2 3 5); a=addmf(a,'input',1,'PB','trapmf',3 5 6 6);a=addvar(a,'input','de',-6 6);% 增加第二个输入变量 e a=addmf(a,

9、'input',2,'NB','trapmf',-6 -6 -5 -3); % 添加隶属函数 a=addmf(a,'input',2,'NS','trapmf',-5 -3 -2 0);a=addmf(a,'input',2,'ZR','trimf',-2 0 2); a=addmf(a,'input',2,'PS','trapmf',0 2 3 5); a=addmf(a,'input'

10、,2,'PB','trapmf',3 5 6 6);a=addvar(a,'output','u',-3 3);% 添加输出变量 u a=addmf(a,'output',1,'NB','trapmf',-3 -3 -2 -1);%添加隶属函数a=addmf(a,'output',1,'NS','trimf',-2 -1 0);a=addmf(a,'output',1,'ZR','trimf

11、9;,-1 0 1); a=addmf(a,'output',1,'PS','trimf',0 1 2);a=addmf(a,'output',1,'PB','trapmf',1 2 3 3); %建立模糊规则矩阵rr=5 5 4 4 3;5 4 4 3 3;4 4 3 3 2;4 3 3 2 2;3 3 2 2 1; r1=zeros(prod(size(rr),3);% 得到一个 25X3 的 0 阶矩阵 k=1;for i=1:size(rr,1)for j=1:size(rr,2) r1(k

12、,:)= i,j,rr(i,j); k=k+1;endendr,s=size(r1); r2=ones(r,2); rulelsit=r1,r2;a=addrule(a,rulelsit);%rulelist某一为 25X(2+1+2)矩阵, 每一行代表一个规则 ,%最后两列为控制所有均行的前 2 列为输入 , 接着一列为输出 ,%为1e=0;de=0;ie=0;x=0;0;ke=60;kd=2.5;ku=0.8;% 定义 e de u 的量化因子 for k=1:Ne1=ke*e; de1=kd*de; if e1>=6 e1=6;elseif e1<-6 e1=-6;endif

13、 de1>=6de1=6;elseif de1<-6de1=-6;end in=e1 de1;uu(1,k)=ku*evalfis(in,a);if k<=Ndu=0;elseu=uu(1,k-Nd);endif abs(u)<=uminu=0elseif abs(u)>umax u=sign(u)*umax;end%龙格- 库塔算法求对象的输出 k1=a1*x+b*u; k2=a1*(x+h*k1/2)+b*u; k3=a1*(x+h*k2/2)+b*u; k4=a1*(x+h*k3)+b*u; x=x+(k1+2*k2+2*k3+k4)*h/6; y=c*x+

14、d*u;e1=e;e=y-R(1,k);de=(e-e1)/T;ie=ie+e*T;yy(1,k)=y;end%绘制结果曲线kk=1:N*T;figure(1);plot(kk,R,'k',kk,yy,'r',kk,yy1,'b'); xlabel(' 时间 (0.01 秒)'); ylabel(' 输出 '); gtext(' 模糊控制 '); gtext('PID 控制 ');%end八、实验结果九、思考题1. 模糊控制器的控制性能是否一定优于传统 PID 控制器? 不一定,若要

15、求反应速度那么可以选择模糊控制方式。 若要求控制精度高则可以 选择 pid 方式2. 如果选用模糊控制工具箱,如何进行设计、仿真?答:在 matlab 的主窗口中输入 fuzzy 即可调出模糊工具箱界面,退出界面的时 候会提示保存,保存格式为 fis ,如果我们将文件保存为 njust.fis ,那么下次 使用这个文件的时候在主窗口中输入 fuzzy njust 即可。模糊控制器的建立过程如下:( 1)设定误差 E、误差变化率 EC和控制量 U 的论 域为,一般为 -6 6 。(2)设定 E、EC、 U的模糊集。一般可设为 NB、NM、 NS、 ZO、PS、PM、PB。(3)设定隶属度函数。有

16、高斯型隶属度函数、三角型隶属度 函数等。( 4)设定模糊控制规则。常用的模糊控制规则如图 1 所示,当然可以 根据特定的控制对象和要求进行相应的调整。实验二:神经元自适应 PID 控制仿真研究一、实验目的通过本实验的学习,使学生了解传统 PID 控制、神经元自适应控制等基本 知识,掌握传统 PID 控制器设计、掌握基于二次型性能指标学习算法的单神经 元自适应 PID 控制等知识,训练学生设计控制器的能力, 培养他们利用 MATLAB 进行仿真的技能,为今后继续神经网络控制理论的研究以及控制仿真等学习奠定 基础。二、实验内容 本实验主要是学习应用最优二次型性能指标学习算法进行控制器的设计仿 真研

17、究。主要涉及自控原理、计算机仿真、智能控制、神经网络控制等知识,综 合性较强。设被控对象过程模型为: yout(k)=0.368yout(k-1)+0.264yout(k-2)+u(k-d)+0.632u(k-d-1)+ (k) 应用最优二次型性能指标学习算法进行仿真研究, 最后要求得出神经元自适 应 PID 跟踪及中权值变化结果。三、实验原理、方法和手段1. 实验原理: 在最优控制理论中,采用二次型性能指标来计算控制律可以得到所期望的优 化效果。 在神经元学习算法中, 也可借助最优控制中二次型性能指标的思想, 在 加权系数的调整中引入二次型性能指标, 使输出误差和控制增量加权平方和为最 小来

18、调整加权系数, 从而间接实现对输出误差和控制增量加权平方和为最小来调 整加权系数,从而间接实现对输出误差和控制增量加权的约束控制。1设性能指标为: E(k) (P(rin(k) yout (k ) 2 Q 2u(k)式中, P, Q分别为输出误差和控制增量的加权系数, r(k)和 y(k)为k 时刻参考 输入和输出。3神经元的输出为: u(k) u(k 1) K wi(k)xi (k)i1(i 1,2,3)wi(k) wi(k)/ | wi(k) |i13w1(k) w1(k 1) IK(Pb0z(k)x1(k) QK (wi(k)xi (k)x1(k)i13w2(k) w2(k 1) PK(

19、Pb0z(k)x2(k) QK (wi(k)xi(k)x2(k)i13w3(k) w3(k 1) DK(Pb0z(k)x3(k) QK (wi(k)xi(k)x3(k) i1x1(k) e(k)x2(k) e(k) e(k 1)2x3(k) 2e(k) e(k) 2e(k 1) e(k 2)2. 实验方法和手段:1) 应用最优二次型性能指标学习算法进行仿真研究, (k)为在 100 个采样 时间的外加干扰, (100)=0.10,输入为阶跃响应信号 rin(k)=1.0 ;2) 启动时采用开环控制,取 u=0.1726, K=0.02,P=2,Q=1,d=6;3) 比例、积分、微分三部分加权系

20、数学习速率分别取 I=4,P=120, D=159,1(0)=0.34, 2(0)=0.32, 3(0)=0.33;4) 利用 MATLAB 编写仿真程序,得出神经元自适应 PID 跟踪及中权值变化 结果。四、实验组织运行要求 根据本实验的综合性、设计性特点以及要求学生自主设计 MATLAB 仿真程 序的要求以及我们实验室的具体实验条件, 本实验采用以学生自主训练为主的开 放模式组织教学。五、实验条件1.装有 MATLAB6.5 的计算机;2.智能控制技术教材;3. 神经网络控制教材;4. 智能控制技术实验指导书。六、实验步骤1.学生熟悉实验内容,并根据实验内容、实验要求,查阅、学习相关知识;

21、2.设计应用最优二次型性能指标学习算法进行仿真研究的单神经元自适应PID 控制器;3. 编写 MATLAB 仿真程序;4. 上机调试程序,修改程序、修改控制器的参数等;5. 对实验程序仿真,并记录仿真结果;6. 对实验结果进行分析,书写实验报告书。七、实验程序%Single Neural Net PID Controller based on %SecondT ype Learning Algorithm clear all; close all: xc=0,0,0'K=0.02;P=2;Q=1;d=6;xiteP=120;xiteI=4;xiteD=159;%Initializing

22、 kp, ki and kdwkp_1=rand;wki_1=rand;wkd_1=rand;wkp_1=0.34;wki_1=0.32;wkd_1=0.33;error_1=0;error_2=0;y_1=0;y_2=0;u_1=0.1726;u_2=0;u_3=0;u_4=0;u_5=0;u_6=0 ;u_7=0;ts=0.001; for k=1:1:250time(k)=k*ts;rin(k) =1.0; %Tracing Step Signalym(k)=0;if k=100ym(k)=0.10; %Disturbanceym(k)=0.10; %Disturbanceendyout

23、(k) =0.368*y_1+0.26*y_2+u_6+0.632*u_7 +ym(k); error(k)=rin(k)-yout(k); wx=wkp_1, wkd_1, wki_1; wx=wx*xc; b0=yout(1);K=0.0175; wkp(k)=wkp_1+xiteP*K*P*b0*error(k)*xc(1)-Q*K*wx*xc(1); wki(k)=wki_1+xiteI*K*P*b0*error(k)*xc(2)-Q*K*wx*xc(2); wkd(k)=wkd_1+xiteD*K*P*b0*error(k)*xc(3)-Q*K*wx*xc(3); xc(1)=err

24、or(k)-error_1;xc(2)=error(k); %I xc(3)=error(k)-2*error_1+error_2;%D wadd(k)=abs(wkp(k)+abs(wki(k) +abs(wkd(k); w11(k)=wkp(k)/wadd(k); w22(k)=wki(k)/wadd (k); w33 (k)=wkd(k)/wadd(k); w=w11(k),w22(k), w33(k);u(k)=u_1+K*w*xc; % Control lawif u(k)>10 u(k)=10;endif u(k)<-10 u(k)=-10;enderror_2=error_1;error_1=error(k);u_7=u_6;u_6=u_5;u_5=u_4;u_4=u_3; u_3=u_2; u_2=u_1; u_1=u (k);wkp_1=wkp(k);wkd_1=

温馨提示

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

评论

0/150

提交评论