作业三已知某控制系统_第1页
作业三已知某控制系统_第2页
作业三已知某控制系统_第3页
作业三已知某控制系统_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

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

文档简介

1、作业三:已知某控制系统要求:用经验公式优化PI参数,设计神经网络,模拟闭环系统响应 1、源程序clear all;close all;ts=1;sys=tf(2,42875,3675,105,1);dsys=c2d(sys,ts,'z');num,den=tfdata(dsys,'v');alldatanum=1000;%所有数据个数traindatanum=500;%训练数据个数testdatanum=500;%测试数据个数u_仁 0.0;u_2=0.0;u_3=0.0;y_仁 °y_2=°y_3=0;x=0,0,0'x2_ 1=0

2、;kp=0.451;ki=0.00585;kd=0;error_1=0;%Tracing Jieyue Signalrin=rands(1,traindatanum) ones(1,testdatanum+20); % 初始化输入for k=1:1:1020time(k)=k*ts;u(k)=kp*x(1)+kd*x(2)+ki*x(3); %PID Controllerif u(k)>=10u(k)=10;endif u(k)<=-10u(k)=-10;end%Linear modelyout(k)=-den(2)*y_1-den(3)*y_2-den(4)*y_3+num(1)

3、*u(k)+num(2)*u_1+num(3)*u_2+num(4)*u_3;error(k)=rin(k)-yout(k);Return of PID parametersu_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 x2_1=x(2);x(2)=(error(k)-error_1)/ts; % Calculating D x(3)=x(3)+error(k)*ts; % Calculating I error_1=error(k);end %构建训练数据队 allda

4、tain=; alldataout=;for i=10:alldatanum+11newin=rin(i-9);yout(i-1);alldatain=alldatain newin;% 输入层为 u(k),y(k+1) alldataout=alldataout yout(i);% 期望 输出 y(k) end%从所有数据中取前 500作为训练 ,后500作为测试 traindatain=alldatain(:,1:traindatanum);traindataout=alldataout(:,1:traindatanum); testdatain=alldatain(:,traindata

5、num+1:alldatanum); testdataout=alldataout(:,traindatanum+1:alldatanum);figurehold on grid j=1:500;plot(j,testdatain,'k-')xlabel('input t'); ylabel('output u');title('测量函数曲线与实际函数曲线');indim=2;% 输入层神 经元 维数为 2 outdim=1;% 输出层神经元维数为 1hiddenunitnum=10;%隐含层神经元个数为10 maxepochs=

6、10000;%设定训练的最大次 数lr=0.001;%设定学习速率/步长alpha=0.8;%动量项系数E0=0.001;%设定期望误差最小值%初始化输出层加权系数,隐层加权系数(wki,wij)w1=0.767*rands(hiddenunitnum,indim);%w1 隐层 加权系数b1=0.767*rands(hiddenunitnum,1);%隐含层阈值w2=0.767*rands(outdim,hiddenunitnum); %w2 输 出层加权系 数b2=1*rands(outdim,1);%输出 层阈值%构成权值和阈值的矩 阵w1ex=w1 b1;w2ex=w2 b2;dw1e

7、x=zeros(size(w1ex);dw2ex=zeros(size(w2ex);traindatainex=traindatain' ones(traindatanum,1)'errorhistory=;for k=1:maxepochshiddenout=logsig(w1ex*traindatainex); hiddenoutex=hiddenout' ones(traindatanum,1)' networkout=w2ex*hiddenoutex;error=traindataout-networkout; SSE=sqrt(sumsqr(error

8、);errorhistory=errorhistory SSE;if SSE<E0 break;end%调整输出层和加权系数w2和隐含层加权系数w1 delta2=error; delta1=w2'*delta2.*hiddenout.*(1-hiddenout);dw1ex0=lr*dw1ex;dw2ex0=lr*dw2ex;dw2ex=delta2*hiddenoutex'dw1ex=delta1*traindatainex'w1ex=w1ex+lr*dw1ex+alpha*dw1ex0;w2ex=w2ex+lr*dw2ex+alpha*dw2ex0; w2=

9、w2ex(:,1:hiddenunitnum);endk;w1=w1ex(:,1:indim);b1=w1ex(:,indim+1);w2=w2ex(:,1:hiddenunitnum);b2=w2ex(:,1+hiddenunitnum);testhiddenout=logsig(w1*testdatain+repmat(b1,1,testdatanum);testnnout=w2*testhiddenout+repmat(b2,1,testdatanum);plot(j,testnnout,'r-') figurehold ongridxx,num=size(errorhistory);plot(1:num,errorhistory,'r-');title('实际与测量函数曲线的误差变化曲线');xlabel('迭代次数N');ylabel('误差 E');2、

温馨提示

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

评论

0/150

提交评论