[智能控制理论]智能控制理论的研究与进展.docx

上传人:yyf 文档编号:6342274 上传时间:2020-10-28 格式:DOCX 页数:17 大小:20.48KB
返回 下载 相关 举报
[智能控制理论]智能控制理论的研究与进展.docx_第1页
第1页 / 共17页
[智能控制理论]智能控制理论的研究与进展.docx_第2页
第2页 / 共17页
[智能控制理论]智能控制理论的研究与进展.docx_第3页
第3页 / 共17页
[智能控制理论]智能控制理论的研究与进展.docx_第4页
第4页 / 共17页
[智能控制理论]智能控制理论的研究与进展.docx_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《[智能控制理论]智能控制理论的研究与进展.docx》由会员分享,可在线阅读,更多相关《[智能控制理论]智能控制理论的研究与进展.docx(17页珍藏版)》请在三一文库上搜索。

1、智能控制理论智能控制理论的研究与进展智能控制实验报告(xx 学年 春季 学期)课程名称: 任课教师:杜尚丰 班 级:自动061 学 号:0608140612 姓 名:孙倩实验题目1: SISO PID神经网络控制姓名: 孙倩 班级: 自动化061 学号: 0608140612一、仿真模型描述单变量P I D神经网络的结构形式如下:单变量神经网络的结构图本实验用PID 神经网络实现单输入单输出解耦系统的模型仿真,用到的仿真模型为:y(k+1)=0.8sin(y(k)+1.2u(k), k系统输入: r(k)=1(k)二、仿真参数说明系统的输入向量是:r(k)=1;输出向量是:y(k+1);系统的

2、控制向量为:u(k);准则函数为:E 1(k ) =12r 1(k ) -y 1(k )2权系地训练(取1=2=0.8)方式:W(k+1)=W(k)- 可得:w i (k+1)=w i (k)+ e(k+1)oi (k)+w i (k)-w i (k-1)1w j (k+1)=1w j (k)+ e(k+1)fxj (k)2w j (k)y(k)+ 1w j (k)-1w j (k-1)2222+W(k)=W(k-1)三、仿真结果分析以下四幅图分别是系统输入r ,系统输出y ,系统控制量u ,以及系统误差error.2系统输出y 1系统输入r 11.51.510.5010.500.20.40.

3、6时间(秒)0.800.20.40.6时间(秒)0.80.80.60.40.20系统误差e r r o r 1系统控制量u 110.500.20.40.6时间(秒)0.8-0.500.20.40.6时间(秒)0.81、从图中我们可以看得到:当对象特性变化(k40) 时,由于PID 神经网络控制 器权系值地不断调整,使控制量u(k)变化,从而系统地输出经过很短的时间跟踪输入。2、通过PID 控制算法,在系统控制量的作用下我们最终实现了跟踪控制,动态响应性能非常好,达到了输出量y 稳态误差为零的效果。四、仿真程序:%PID神经网络单输入单输出解耦模型仿真 %输入为1%输入层单独成神经网,输出成一个

4、神经网 clear all; close all; s=1;if s=1 %初始化 y1_1=0.0;u1_1=0.0;u1_2=0.0;error1_1=0.0;error1_2=0.0;wo_111=0.1*rand(1);wo_111_1=wo_111; wo_112=0.1*rand(1);wo_112_1=wo_112; wo_113=0.1*rand(1);wo_113_1=wo_113; wo_121=0.1*rand(1);wo_121_1=wo_121; wo_122=0.1*rand(1);wo_122_1=wo_122; wo_123=0.1*rand(1);wo_123

5、_1=wo_123; wi_111=0.1*rand(1);wi_111_1=wi_111; wi_112=0.1*rand(1);wi_112_1=wi_112; wi_121=0.1*rand(1);wi_121_1=wi_121; wi_122=0.1*rand(1);wi_122_1=wi_122; wi_131=0.1*rand(1);wi_131_1=wi_131; wi_132=0.1*rand(1);wi_132_1=wi_132; x11=0.0;x12=0.0;x13=0.0; q11=0.0;q12=0.0;q13=0.0;x11_1=x11;x12_1=x12;x13_

6、1=x13; q11_1=q11;q12_1=q12;q13_1=q13; endts=0.001; for k=1:1:800 time(k)=k*ts;if s=1 r1(k)=1; if 1y1(k)=0.8*sin(y1_1)+1.2*u1_1; elsey1(k)=0.8*sin(0.4*y1_1)+1.2*u1_1; enderror1(k)=r1(k)-y1(k); end%中间层输入输出x11(k)=wi_111_1*r1(k)+wi_112_1*y1(k); x12(k)=wi_121_1*r1(k)+wi_122_1*y1(k); x13(k)=wi_131_1*r1(k)

7、+wi_132_1*y1(k); if x11(k)1 q11(k)=1; elseif x11(k)else q11(k)=x11(k); endif(q12_1+x12(k)1 q12(k)=1;elseif (q12_1+x12(k)else q12(k)=q12_1+x12(k); endif (x13(k)-x13_1)1 q13(k)=1;elseif (x13(k)-x13_1)else q13(k)=x13(k)-x13_1;end%输出层输入输出,输出层输入输出相等u1(k)=wo_111_1*q11(k)+wo_112_1*q12(k)+wo_113_1*q13(k); %

8、中间层到输出层权值计算 wo if u1_1=u1_2 delta1(k)=0; elsedelta1(k)=error1(k)*sign(y1(k)-y1_1)(x11(k)-x11_1); endif x12(k)=x12_1 dqx_12(k)=0;elsedqx_12(k)=sign(q12(k)-q12_1)(x13(k)-x13_1); endif u1_1=u1_2 wo_11(k)=0; Elsewo_11(k)=error1(k)*sign(y1(k)-y1_1)7+1. 2u (k ) k =200该自校正系统的控制框图为:二、仿真参数说明系统输入为:r (k ) =1(k

9、 ), 0=300r (k ) =-1(k ), 100作用于被控对象的扰动为:v (k ) =0. 04, k =50v (k ) =0, k 50权值调整方式为BP 算法:V (k )=V (k -1)+V (k )+(V (k -1)-V (k -2)E (k )w j (k )=-w =w (y (k )-y m (k )h j (k )w j (k )E (k )v j (k )=-v =v (y (k )-y m (k )h j (k ) v j (k )三、仿真结果分析当单位阶跃的输入时,我们可以看到如下的结果:1、从该系统对扰动的迅速响应,我们可以得知自校正控制的优越性。 2、

10、上面第一个图所示为控制器输出u(k),说明自校正控制器能对非线性、不确定、不确知系统实现有效的控制。3、第二个图所示为系统输出y (k )再输入r 变化(k=100,k=300)、扰动作用(k=50)及对象特性变化(k=200)时的情况,说明神经自校正控制具有很好的自适应性和鲁棒性。四、仿真程序%Self-Correct control based BP Identification clear all; close all; xite1=0.15; xite2=0.50; alfa=0.05; w=0.5*ones(6,1); v=0.5*ones(6,1); cij=0.50*ones(1

11、,6);bj=5*ones(6,1); h=zeros(6,1); w_1=w;w_2=w_1; v_1=v;v_2=v_1; u_1=0;y_1=0; ts=0.02;for k=1:1:5000 time(k)=k*ts; end if 0else if 100if 0g(k)=0.8*sin(y_1); elseg(k)=0.8*sin(y_1)+(y_1)(2*bj(j)*bj(j); endNg(k)=w*h;Nf(k)=v*h;ym(k)=Ng(k)+Nf(k)*u_1; e(k)=y(k)-ym(k); d_w=0*w; for j=1:1:6d_w(j)=xite1*e(k)*

12、h(j); endw=w_1+d_w+alfa*(w_1-w_2); d_v=0*v;for j=1:1:6d_v(j)=xite2*e(k)*h(j)*u_1; endv=v_1+d_v+alfa*(v_1-v_2); u(k)=-Ng(k)Nf(k); u_1=u(k); y_1=y(k); w_2=w_1; w_1=w; v_2=v_1; v_1=v; end figure(1);plot(time,y_1,b); xlabel(s);ylabel(y); figure(2);plot(time,u_1,b); xlabel(s);ylabel(u);五、实验总结从仿真结果来看,神经网络

13、自校正控制器具有很高的精度和很强的适应性, 取得了较好的控制效果。它既保证了控制的鲁棒性好的特点,又借助了神经网络的自学习、自组织的能力,可实现智能控制器参数的在线自整定和优化,有效地提高模糊控制器的精度和抗干扰的能力,避免了人工整定参数的繁琐工作。实验题目3: Fuzzy PID控制姓名: 孙倩 班级: 自动化061 学号: 0608140612一、 仿真模型描述Fuzzy PID控制器结构图如下:Fuzzy PID 控制的我们实验采用的模型是G p (s ) =523500s +87.35s +10470s32对于该模型,我们在试验中设置的采样时间是1m s ,采用模糊PID 控制进行阶跃

14、响应,在第300个采样时间控制器输出加1.0的干扰。二、 仿真参数说明采样时间: 1ms, 系统输入: r(k)=1, 系统输出: y(k) 控制器输出:u(k)为 误差: e(k )比例系数: K P , 积分系数K I , 微分系数 K D三、仿真结果分析系统仿真图如下:仿真时在第300个采样点的时候人为的加入了一个幅值为1的脉冲干扰:1. 输入输出及误差图像:r i n , y o ute r r o rtime(s)time(s)2. 控制器的输出:utime(s)3.PID 参数ki ,kp ,kd 的自适应调整:kptime(s)kitime(s)k dtime(s)4. 以下两幅

15、图是语言变量e 和ec 的隶属函数关系设计图,通过修改程序中的数值可以改变它们的隶属函数关系:(1)程序中包括模糊变量e 和ec ,PID 控制参数Kp ,Ki 和Kd 。其中e 和ec 的论域范围是(-3,3),关于各个变量的隶属度设计程序中已经加载,并且在程序运行之后的GUI 界面下也能清楚的看到。(2)模糊控制规则是基于手动控制策略而做出的,主要作用是用来修正PID 参数的,它是控制领域内技术人员根据过程的阶跃响应情况的经验总结,在进行一定得处理后得到的。(3)在我们的仿真模型中为了看到Fuzzy PID 控制的作用,我们在程序运行到第300个采样点的时候认为的加入了一个幅值为1的脉冲干

16、扰,作为我们FuzzyPID 控制规则动态调整PID 参数能力的一个检验。四、仿真程序:%Fuzzy Tunning PID Control clear all; close all;a=newfis(fuzzpid);a=addvar(a,input,e,-3,3); %Parameter ea=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,input,1,Z,trimf,-2,0,2); a=addmf(a,

17、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);a=addvar(a,input,ec,-3,3); %Parameter eca=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,2,PS,trimf,-

18、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,-0.3,0.3); %Parameter kpa=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,trimf,-0.2,0,0.2); a=addmf(a,output,1

19、,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 kia=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,tri

20、mf,-0.04,0,0.04); a=addmf(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 kpa=addmf(a,output,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

21、(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,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 1; 2 4 5 3 2

22、 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 1; 5 3 4 4 4 1 1

23、; 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,rulelist);a=setfis(

24、a,DefuzzMethod,mom); writefis(a,fuzzpid);a=readfis(fuzzpid);%PID Controllerts=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;error_1=0; e_1=0.0; ec_1=0.0;kp0=0.40; kd0=1.0; ki0=0.0;for k=1:1:500 time(k)=k

25、*ts;rin(k)=1;%Using fuzzy inference to tunning PID k_pid=evalfis(e_1,ec_1,a); kp(k)=kp0+k_pid(1);ki(k)=ki0+k_pid(2); kd(k)=kd0+k_pid(3);u(k)=kp(k)*x(1)+kd(k)*x(2)+ki(k)*x(3);if k=300 % Adding disturbance(1.0v at time 0.3s) u(k)=u(k)+1.0; endif u(k)=10 u(k)=10; endif u(k)yout(k)=-den(2)*y_1-den(3)*y_

26、2-den(4)*y_3+num(1)*u(k)+num(2)*u_1+num(3)*u_2+num(4)*u_3;error(k)=rin(k)-yout(k);%Return of PID parameters% u_3=u_2; u_2=u_1; u_1=u(k);y_3=y_2; y_2=y_1;y_1=yout(k);x(1)=error(k); % Calculating P x(2)=error(k)-error_1; % Calculating Dx(3)=x(3)+error(k); % Calculating Ie_1=x(1); ec_1=x(2);error_2=err

27、or_1; error_1=error(k); endshowrule(a)figure(1);plot(time,rin,b,time,yout,r); xlabel(time(s);ylabel(rin,yout); figure(2);plot(time,error,r); xlabel(time(s);ylabel(error); figure(3);plot(time,u,r); xlabel(time(s);ylabel(u); figure(4);plot(time,kp,r); xlabel(time(s);ylabel(kp); figure(5);plot(time,ki,

28、r); xlabel(time(s);ylabel(ki); figure(6);plot(time,kd,r); xlabel(time(s);ylabel(kd); figure(7);plotmf(a,input,1); figure(8);plotmf(a,input,2); figure(9);plotmf(a,output,1); figure(10);plotmf(a,output,2); figure(11);plotmf(a,output,3); plotfis(a);fuzzy fuzzpid.fis五、实验总结:Fuzzy PID控制控制器兼有模糊控制和PID 控制的优点, 具有良好的工程应用景,与单一的PID 控制或模糊控制相比,具有以下优点 : ( 1 )具有良好的动态响应性能, 超调量小。( 2 )具有良好的静态性能, 震荡小, 没有静态误差。( 3 )系统参数或结构变化时,Fuzzy PID控制器具有良好的自适应能力和鲁棒性。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1