先进控制实验报告_第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=0.001;%采样时间sys=tf(5.235e005,1,8

2、7.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_1=0;e_2=0; A=Kp+Ki+Kd; B=-Kp-2*Kd; C=Kd;for k=1:1:1500 %k=1 以1为增量增到1500 rin(k)=1;%信号 time(k)=k*ts; yout(

3、k)=-den(2)*Y_1-den(3)*Y_2-den(4)*Y_3+num(2)*U_1+num(3)*U_2+num(4)*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_1=yout(k); e_2=e_1;e_1=error(k); endfigure(1);%画图 开图框plot(time,rin,'b',time,yout,'r');%是颜色time是变量 横坐

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

5、应使得我对PID控制的认知更加深刻。实验二、模糊控制实验(一)实验目的:1、掌握模糊控制基本原理并编程实现。2、理解模糊PID控制基本原理并编程实现。(二)实验内容:1、模糊控制编程实验。2、模糊PID控制编程实验。(三)实验程序:clear all;clear all;a=newfis('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

6、,'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*f1,0,2*f1);a=addmf(a,'input',1,'PS,','trimf',-1*f1,1*f1,3*f1);a=addmf(a,'

7、;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,'input','ec',-3*f2,3*f2);a=addmf(a,'input',2,'NB','zmf',-3*f2,-1*f2);a=addmf(a,'input',2,'NM,','tr

8、imf',-3*f2,-2*f2,0);a=addmf(a,'input',2,'NS,','trimf',-3*f2,-1*f2,1*f2);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&#

9、39;,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(a,

10、9;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,'o

11、utput',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,'output',2,'NM,','trimf',-3*f2,-2*f2,0);a=addmf(a,'output',2,'NS,',&#

12、39;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,','

13、smf',1*f2,3*f2);f5=1a=addvar(a,'output','kd',-3*f2,3*f2);a=addmf(a,'output',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=a

14、ddmf(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

15、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 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

16、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 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

17、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,rulelist); a1=setfis(a,'DefuzzMethod','centroid'); ts=0.001;%采样时间sys=tf(5.235e005,1,87.35,1.047e004,0);%定义 括号里有几个数就有几阶连续系统dsys=c2d(sys,ts,'

18、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=0; e_1=0;e_2=0; ec_1=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为增量增到1500 pid=evalfis(e_1 ec_1,a); kp=kp0+pid(1); ki=ki0+p

19、id(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)*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_1=yout(k); e_2=e_1;e_1=error(k); ec_1=error

20、(k)-e_1;Endfigure(1);%画图 开图框plot(time,rin,'b',time,yout,'r');%time是变量 横坐标 time 和rin长度要一样xlabel('time(s)'),ylabel('rin,yout'); (四)实验结果:5) 实验总结: 通过该实验的练习让我对模糊控制有了深入的了解,知道了模糊控制的基本思想和原理,熟悉了各种模糊控制系统工具箱函数的用法,加深了对模糊控制的理解和编程方法,对各种隶属度函数有了进一步的理解,对模糊控制的应用也有了更加直观的理解,也熟悉了matlab软件的

21、功能实验三、BP神经网络控制实验(一)实验目的:1、掌握BP神经网络基本原理。2、掌握基于BP神经网络的PID控制算法原理并编程实现。(二)实验内容:1、BP神经网络分类编程实验。2、基于BP神经网络的PID控制算法编程实验。(三)实验程序:clear all;close all;clc;xite=0.25;alfa=0.05;S=1;IN=4;H=5;Out=3;if S=1 wi=-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

22、-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.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=2 wi=-0.2846 0.2193 -0.5097 -1.0668; -0.7484 -0.1210 -0.4708 0.0988; -0.7

23、176 0.8297 -1.6000 0.2049; -0.0858 0.1925 -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.8682 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_1=0;u_2=0;u_3=0;u_4=0;u_5=0;y_1=0;y_2=

24、0;y_3=0;Oh=zeros(H,1);error_2=0;error_1=0;ts=0.001;for k=1:1:1000 time(k)=k*ts;if S=1 rin(k)=1.0;elseif S=2; rin(k)=sin(1*2*pi*k*ts);enda(k)=1.2*(1-0.8*(exp(-0.1*k)3;yout(k)=a(k)*y_1/(1+y_12)+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

25、*error_1+error_2;epid=x(1);x(2);x(3);I=xi*wi'for i=1:5 oh(i)=(exp(I(i)-exp(-I(i)/(exp(I(i)+exp(-I(i);end %oh隐层输出KI=wo*oh' %KI输出层的输入for i=1:3 K(i)=exp(KI(i)/(exp(KI(i)+exp(-KI(i);endkp(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)>=10 u(k)=10;e

26、ndif u(k)<=-10 u(k)=-10;endfor i=1:3 d_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:H dO(i)=4/(exp(I(i)+exp(-I(i)2;end segma=delta3'*wo;for i=1:1:H delta2(i)=dO(i)*segma(i);endd_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_1;y_1=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

温馨提示

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

最新文档

评论

0/150

提交评论