先进控制实验报告_第1页
先进控制实验报告_第2页
先进控制实验报告_第3页
先进控制实验报告_第4页
先进控制实验报告_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

1、先进控制实验报告班级:自121姓名:张伟琦学号:120941项目预习操作报告总评得分实验一、Matlab M文件基本编程与常规PID实验(一) 实验目的:1、掌握Matlab M文件基本编程方法以及基本函数的使用。2、掌握利用Matlab M文件建立常规系统的线性建模。3、掌握利用Matlab M文件编写PID控制程序。4、针对以上编写的PID程序进行PID参数的调整,理解PID三个参数对系统性 能的影响。(二) 实验内容:1、线性系统建模实验。2、增量式PID的编程实验。(三) 实验程序:clear all;close all;ts=O.OO1;% 采样时间sys=tf(5.235e005,

2、1,87.35,1.047e004,0);% 定义 括号里有几个数就有几阶连续系统 dsys=c2d(sys,ts,z);%连续到离散num,den=tfdata(dsys,v);%分子分母取值把上边系数存DATA里Kp=0.45;Ki=0.00001;Kd=0.001;U_1=0;U_2=0;U_3=0;Y_1=0;Y_2=0;Y_3=0;e_仁 0;e_2=0;A=Kp+Ki+Kd;B=-Kp-2*Kd;C=Kd;for k=1:1:1500%k=1 以 1 为增量增到 1500rin(k)=1;% 信号time(k)=k*ts;yout(k)=-de n(2)*Y_1-de n( 3)*

3、Y_2-de n(4)*Y_3+num(2)*U_1+ num(3) *U_2+num(4)*U_3;error(k)=ri n(k)-yout(k);u(k)=A*error(k)+B*e_1+C*e_2;u(k)=U_1+u(k);U_3=U_2;U_2=U_1;U_1=u(k);Y_3=Y_2;Y_2=Y_1;Y_ 仁yout(k);e_2=e_1;e_1=error(k);endfigure(1);%画图开图框plot(time,rin,b,time,yout,r);% 是颜色 time 是变量横坐标 time 和 rin 长度要一样xlabel(time(s),ylabel(ri n

4、, yout);(四) 实验结果:(五) 实验总结:经过这次实验,我不但复习了Matlab的基础知识并且学会了通过编写M文件来实现常规及增量式PID控制器的设计,针对不同的控制对象选择设定不同的控 制参数,来完成控制目标,使得控制系统达到理想的超调,稳态误差等。同时经 过老师的讲解,我不仅复习了 PID控制三个参数的意义还了解了增量式PID的原理与建模与推导过程,并通过 Matlab实现了此类PID控制,绘制了增量式PID 的阶跃响应曲线,得知了此类PID的优缺点。与书本上的知识相对应使得我对PID控制的认知更加深刻。实验二、模糊控制实验(一) 实验目的:1、掌握模糊控制基本原理并编程实现。2

5、、理解模糊PID控制基本原理并编程实现。(二) 实验内容:1、模糊控制编程实验。2、模糊PID控制编程实验。(三) 实验程序:clear all;clear all;a=n ewfis(fuzz_ljk);f1=1.0;a=addvar(a,input,e,-3*f1,3*f1); a=addmf(a,input,1,NB,zmf,-3*f1,-1*f1); a=addmf(a,input,1,NM,trimf,-3*f1,-2*f1,0); a=addmf(a,input,1,NS,trimF,-3*f1,-1*f1,1*f1); a=addmf(a,input,1,Z,trimf,-2*f

6、1,0,2*f1); a=addmf(a,input,1,PS,trimf,-1*f1,1*f1,3*f1); a=addmf(a,input,1,PM,trimf,0,2*f1,3*f1); a=addmf(a,input,1,PB,smf,1*f1,3*f1);f2=1.0;a=addvar(a, inp ut,ec,-3*f2,3*f2); a=addmf(a,input,2,NB,zmf,-3*f2,-1*f2); a=addmf(a,input,2,NM,trimf,-3*f2,-2*f2,0); a=addmf(a,input,2,NS,trimf,-3*f2,-1*f2,1*f2

7、); a=addmf(a,input,2, Z,trimf,-2*f2,0,2*f2); a=addmf(a,input,2,PS,trimf,-1*f2,1*f2,3*f2); a=addmf(a,input,2,PM,trimf,0,2*f2,3*f2); a=addmf(a,input,2,PB,smf,1*f2,3*f2);f3=0.1;a=addvar(a,output,kp,-3*f1,3*f1); a=addmf(a,output,1,NB,zmf,-3*f1,-1*f1); a=addmf(a,output,1,NM,trimf,-3*f1,-2*f1,0); a=addmf(

8、a,output,1,NS,trimf,-3*f1,-1*f1,1*f1); a=addmf(a,output,1,Z,trimf,-2*f1,0,2*f1); a=addmf(a,output,1,PS,trimf,-1*f1,1*f1,3*f1); a=addmf(a,output,1,PM,trimf,0,2*f1,3*f1); a=addmf(a,output,1,PB,smf,1*f1,3*f1);f4=0.02a=addvar(a,output,ki,-3*f2,3*f2); a=addmf(a,output,2,NB,zmf,-3*f2,-1*f2); a=addmf(a,out

9、put,2,NM,trimf,-3*f2,-2*f2,0); a=addmf(a,output,2,NS,trimf,-3*f2,-1*f2,1*f2); a=addmf(a,output,2, Z,trimf,-2*f2,0,2*f2); a=addmf(a,output,2,PS,trimf,-1*f2,1*f2,3*f2); a=addmf(a,output,2,PM,trimf,0,2*f2,3*f2); a=addmf(a,output,2,PB,smf,1*f2,3*f2);f5=1a=addvar(a,output,kd,-3*f2,3*f2); a=addmf(a,output

10、,3,NB,zmf,-3*f2,-1*f2);a=addmf(a,output,3,NM,trimf,-3*f2,-2*f2,0); a=addmf(a,output,3,NS,trimf,-3*f2,-1*f2,1*f2); a=addmf(a,output,3, Z,trimf,-2*f2,0,2*f2); a=addmf(a,output,3,PS,trimf,-1*f2,1*f2,3*f2); a=addmf(a,output,3,PM,trimf,0,2*f2,3*f2); a=addmf(a,output,3,PB,smf,1*f2,3*f2); rulelist=1 1 7 1

11、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 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;1 1;1 1;1 1;1

12、1;1 1;1 1;1 1;1 1;1 1;1 1;1 1;1 1;1 1;1 1;1 1;1 1;1 1;1 1;1 1;1 1;1 1;1 1;1 1;1 1;1 1;4 1 6 2 44 2 6 2 34 3 5 3 34 4 4 4 34 5 3 5 34 6 2 6 347 2 6 451 5 2 45 2 5 3 45 3 4 4 45 4 3 5 45 5 3 5 45 6 2 6 457 2 7 461 5 4 76 2 4 4 56 3 3 5 56 4 2 5 56 5 2 6 56 6 2 7 567 1 7 771 4 4 77 2 4 4 67 3 2 5 67 4

13、2 6 67 5 2 6 5 1 1;7 6 1 7 5 1 1;7 7 1 7 7 1 1;a=addrule(a,rulelist);a1= setfis(a,DefuzzMethod,centroid);ts=0.001;%采 样时间sys=tf(5.235e005,1,87.35,1.047e004,0);定义 括号里有几个数就有几阶连续系统dsys=c2d(sys,ts,z)连续到离散num,den=tfdata(dsys,v);分子分母取值把上边系数存DATA里Kp=0.50;Ki=0.001;Kd=0.0001;U_1=0; U_2=0;U_3=0;Y_1=0;Y_2=0;Y_3

14、=0;e_仁0; e_2=0; ec_仁0;pid=0,0,0;kp0=0.3;ki0=0.06;kd0=3;A=Kp+Ki+Kd; B=-Kp-2*Kd; C=Kd;for k=1:1:2000%k=1 以 1 为增量增到 1500pid=evalfis(e_1 ec_1,a);kp=kp0+pid(1); ki=ki0+pid(2); kd=kd0+pid(3); rin(k)=1*sign(sin(1*2*pi*k*ts);time(k)=k*ts;yout(k)=-den(2)*Y_1-den(3)*Y_2-den(4)*Y_3+num(2)*U_1+num(3)*U_2+num(4)

15、*U _3;error(k)=rin(k)-yout(k);u(k)=A*error(k)+B*e_1+C*e_2;u(k)=U_1+u(k);U_3=U_2;U_2=U_1;U_1=u(k);Y_3=Y_2;Y_2=Y_1;Y_ 仁y out(k);e_2=e_1;e_1=error(k); ec_1=error(k)-e_1;Endfigure(1);%画图开图框plot(time,rin,b,time,yout,r);%time是变量横坐标 time 和 rin 长度要一样 xlabel(time(s),ylabel(rin,yout);(四) 实验结果:J File- Edit Vie

16、w Inscrt TqqIstopi Window HelpaI U 3 滋歌虫聆毎題 0 | a Q五)实验总结:通过该实验的练习让我对模糊控制有了深入的了解,知道了模糊控制的基 本思想和原理,熟悉了各种模糊控制系统工具箱函数的用法,加深了对模糊控制的理解和编程方法,对各种隶属度函数有了进一步的理解,对模糊控制的应 用也有了更加直观的理解,也熟悉了 matlab软件的功能实验三、BP神经网络控制实验(一)实验目的:1、掌握BP神经网络基本原理2、掌握基于BP神经网络的PID控制算法原理并编程实现(二)实验内容:1、BP神经网络分类编程实验。2、基于BP神经网络的PID控制算法编程实验。(三)

17、实验程序:clear all;close all;clc;xite=0.25;alfa=0.05;S=1;IN=4;H=5;Out=3;if S=1wi=-0.6394 -0.2696 -0.3756 -0.7023;-0.8603 -0.2013 -0.5024 -0.2594;-1.0749 0.5543 -1.6820 -0.5437;-0.3625 -0.0724 -0.6463 -0.2859;0.1425 0.0279 -0.5406 -0.7660;wi_1=wi;wi_2=wi;wi_3=wi;wo=0.7576 0.2616 0.5820 -0.1416 -0.1325;-0

18、.1146 0.2949 0.8352 0.2205 0.4508;0.7201 0.4566 0.7672 0.4962 0.3632;wo_1=wo;wo_2=wo;wo_3=wo;endif S=2wi=-0.2846 0.2193 -0.5097 -1.0668;-0.7484 -0.1210 -0.4708 0.0988;-0.7176 0.8297 -1.6000 0.2049;-0.0858 0.佃25 -0.6346 0.0347;0.4358 0.2369 -0.4564 -0.1324;wi_1=wi;wi_2=wi;wi_3=wi;wo=1.0438 0.5478 0.8

19、682 0.1446 0.1537;0.1716 0.5811 1.1214 0.5067 0.7370;1.0063 0.7428 1.0534 0.7824 0.6494;wo_1=wo;wo_2=wo;wo_3=wo;endx=0,0,0;u_仁0; u_2=0;u_3=0;u_4=0;u_5=0;yj= 0;y_2=0;y_3=o;Oh=zeros(H,1);error_2=0;error_ 仁 0;ts=0.001;for k=1:1:1000time(k)=k*ts;if S=1rin(k)=1.0;elseif S=2;rin(k)=sin(1*2*pi*k*ts);enda(k

20、)=1.2*(1-0.8*(exp(-0.1*k)A3;yout(k)=a(k)*y_*/(1+y_1A2)+u_1;error(k)=rin(k)-yout(k);xi=rin(k),yout(k),error(k),1;x(1)=error(k)-error_1;x(2)=error(k);x(3)=error(k)-2*error_1+error_2;epid=x(1);x(2);x(3);I=xi*wi;for i=1:5oh(i)=(exp(l(i)-exp(-l(i)/(exp(l(i)+exp(-l(i);end%oh隐层输出Kl=wo*oh; %K输出层的输入for i=1:3

21、K(i)=exp(KI(i)/(exp(KI(i)+exp(-KI(i); end kp(k)=K(1);ki(k)=K(2);kd(k)=K(3); Kpid=kp(k),ki(k),kd(k); du(k)=Kpid*epid;u(k)=u_1+du(k);if u(k)=10u(k)=10;endif u(k)=-10u(k)=-10;endfor i=1:3d_f(i)=2(exp(KI(i)+exp(-KI(i)八2); enddelta3=error(k)*d_f; d_wo=-delta3*oh; wo_1=wo;wo=wo_1+d_wo; for i=1:1:HdO(i)=4(

22、exp(I(i)+exp(-I(i)八2;endsegma=delta3*wo;for i=1:1:Hdelta2(i)=dO(i)*segma(i);end d_wi=xite*delta2*xi;wi=wi_1+d_wi+alfa*(wi_1-wi_2);u_5=u_4;u_4=u_3;u_3=u_2;u_2=u_1;u_1=u(k); y_2=y_i;y_i=yout(k); wo_3=wo_2;wo_2=wo_1;wo_1=wo;wi_3=wi_2;wi_2=wi_1;wi_1=wi;error_2=error_1;error_1=error(k);endfigure(1);plot(time,rin,r,time,yout,b);xlabel(time(s);ylabel

温馨提示

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

评论

0/150

提交评论