《2022年单神经元自适应PID控制Hebb学习规则matlab仿真增量式PID控制规 .pdf》由会员分享,可在线阅读,更多相关《2022年单神经元自适应PID控制Hebb学习规则matlab仿真增量式PID控制规 .pdf(4页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、0 实验一、单神经元自适应PID 控制一、实验目的1、熟悉单神经元PID 控制器的原理。2、通过实验进一步掌握有监督的Hebb 学习规则及其算法仿真。二、实验内容利用单神经元实现自适应PID 控制器,对如下二阶对象进行控制,在MATLAB 环境中进行仿真。被控对象为:y(k)=0.368y(k-1)+0.26y(k-2)+0.1u(k-1)+0.632u(k-2) 三、实验原理线性神经网络是最简单的一种神经元结构,它不同于感知器,其函数是一线性函数,因此神经元的输出可以是任意值。我们可以用它实现增量PID 控制器的功能,误差为神经元的输入,权系数为PID 控制系数,由于神经网络可以用在线学习对
2、权系数进行实时修改,所以使得PID 控制具有了自适应功能。PID 控制器的增量公式为一个输入的线性神经元的计算公式为k 为神经元的比例系数,wi 为神经元权系数, xi为神经元输入, u 为神经元的输出。神经元的学习方法可以采用Hebb 学习规则。有监督的Hebb 学习算法规范法处理后为3131111222333()()()()(1)()()(1)()() ()()(1)()() ()()(1)()() ()()iiiiiiiipdkkku ku kkk xkkku k e k xkkku k e k xkkku k e k xk四、实验步骤1、编写程序实现单神经元的自适应PID 控制器,输入
3、信号为单位阶跃信号。单神经元控制的各参考参数为0.12,0.40,0.35,0.40pidk2、修改输入信号为( )0.5(sin 4)r tsignt,进行上述试验。3、改变被控制对象为如下几种情况,进行上述试验。模型 1:y(k)=0.368y(k-1)+0.264y(k-2)+u(k-1)+0.632u(k-2) )2()(211kkkdkkPKikeeekeekeku)(332211xwxwxwku名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 4 页 - - -
4、 - - - - - - 1 模型 2:y(k)=0.368y(k-1)+0.264y(k-2)+gu(k-1)+0.632u(k-2) g=1+0.1*sin(0.01k) 五、问题讨论神经网络学习算法的收敛速度与自适应控制效果的关系,收敛过程与学习规则中学习系数选取的关系。六、实验程序:编写程序实现单神经元的自适应PID 控制器,输入信号为单位阶跃信号。1.%Single Neural Adaptive PID Controller 2.clear all; 3.close all; 4.%初始化5.x=0,0,0; 6.%初始化学习率7.xiteP=0.40; 8.xiteI=0.35;
5、 9.xiteD=0.40; 10.%初始化 pid 权值11.wkp_1=0.10; 12.wki_1=0.10; 13.wkd_1=0.10; 14.error_1=0; 15.error_2=0; 16.y_1=0;y_2=0;y_3=0; 17.u_1=0;u_2=0;u_3=0; 18.ts=0.001; %采样时间19.for k=1:1:1000 % 采样次数20.time(k)=k*ts; 21.rin(k)=0.5*sign(sin(2*2*pi*k*ts); 22.% rin(k)=1; %阶跃信号23.%被控对象24.yout(k)=0.368*y_1+0.264*y_2
6、+u_1+0.632*u_2; 25.g=1+0.1*sin(0.01*k); 26.yout(k)=0.368*y_1+0.264*y_2+g*u_1+0.632*u_2; 27.error(k)=rin(k)-yout(k); 28.%对学习算法进行规范化处理29.wkp(k)=wkp_1+xiteP*error(k)*u_1*x(1); %P 30.wki(k)=wki_1+xiteI*error(k)*u_1*x(2); %I 31.wkd(k)=wkd_1+xiteD*error(k)*u_1*x(3); %D 32.K=0.12; %比例系数33.x(1)=error(k)-err
7、or_1; %P 34.x(2)=error(k); %I 35.x(3)=error(k)-2*error_1+error_2;%D 36.wadd(k)=abs(wkp(k)+abs(wki(k)+abs(wkd(k); 37.w11(k)=wkp(k)/wadd(k); 38.w22(k)=wki(k)/wadd(k); 39.w33(k)=wkd(k)/wadd(k); 40.w=w11(k),w22(k),w33(k); 41.u(k)=u_1+K*w*x; %Control law 42.%更新数据43.error_2=error_1; 44.error_1=error(k); 4
8、5.u_3=u_2;u_2=u_1;u_1=u(k); 46.y_3=y_2;y_2=y_1;y_1=yout(k); 47.wkp_1=wkp(k); 48.wkd_1=wkd(k); 49.wki_1=wki(k); 50.end 51.%输出结果52.figure(1); 53.plot(time,rin,b,time,yout,r); 54.xlabel(time(s);ylabel(rin,yout); 55.figure(2); 56.plot(time,error,g); 57.xlabel(time(s);ylabel(error); 58.figure(3); 59.plot
9、(time,u,r); 60.xlabel(time(s);ylabel(u); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 4 页 - - - - - - - - - 单神经元控制的各参考参数为0.12,0.40,0.35,0.40pidk七、实验结果:模型 1:y(k)=0.368y(k-1)+0.264y(k-2)+u(k-1)+0.632u(k-2)1、输入阶跃信号(1)输入输出曲线(2)错误率:(3)神经元输出 ; 2、修改输入信号为( )0.5(sin 4
10、)r tsignt,进行上述试验。(1)输入信号(2)错误率(3)神经元输出模型 2:y(k)=0.368y(k-1)+0.264y(k-2)+0.1u(k-1)+0.632u(k-2) 1、输入信号为阶跃信号:(1)输入信号(2)错误率(3)神经元输出2 、修改输入信号为( )0.5(sin 4)r tsignt,进行上述试验(1)输出曲线(2)错误率(3)神经元输出模型 3:y(k)=0.368y(k-1)+0.264y(k-2)+gu(k-1)+0.632u(k-2) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 4 页 - - - - - - - - - 2 g=1+0.1*sin(0.01k) 1、输入阶跃信号(1)输入输出曲线(2)错误率(3)神经元输出2、修改输入信号为( )0.5(sin 4)r tsignt,进行上述试验(1)输入(2)错误率(3)神经元输出名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 4 页 - - - - - - - - -