您好,欢迎来到叨叨游戏网。
搜索
您的当前位置:首页神经网络

神经网络

来源:叨叨游戏网
1、利用MATLAB提供的工具箱进行编程

clear

p1=[1.24,1.27;1.36,1.74;1.38,1.;1.38,1.82;1.38,1.90;

1.40,1.70;1.48,1.82;1.54,1.82;1.56,2.08];

p2=[1.14,1.82;1.18,1.96;1.20,1.86;1.26,2.00

1.28,2.00;1.30,1.96];

p=[p1;p2]';

pr=minmax(p);

goal=[ones(1,9),zeros(1,6);zeros(1,9),ones(1,6)];

plot(p1(:,1),p1(:,2),'h',p2(:,1),p2(:,2),'o')

net=newff(pr,[3,2],{'logsig','logsig'});

net.trainParam.show = 10;

net.trainParam.lr = 0.05;

net.trainParam.goal = 1e-10;

net.trainParam.epochs = 50000;

net = train(net,p,goal);

x=[1.24 1.80;1.28 1.84;1.40 2.04]';

y0=sim(net,p)

y=sim(net,x)

2、直接进行编程

clear all; close all;

xite=0.25; alfa=0.05;

IN=4;H=5;Out=3; %NN Structure

wi=[-0.6394 -0.2696 -0.3756 -0.7023; -0.8603 -0.2013 -0.5024 -0.2596; -1.0749 0.5543 -1.6820 -0.5437; -0.3625 -0.0724 -0.63 -0.2859; 0.1425 0.0279 -0.5406 -0.7660]; %wi=0.50*rands(H,IN); 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=0.50*rands(Out,H); wo_1=wo;wo_2=wo;wo_3=wo;

x=[0,0,0];

u_1=0;u_2=0;u_3=0;u_4=0;u_5=0; y_1=0;y_2=0;y_3=0;

Oh=zeros(H,1); %Output from NN middle layer %%I=Oh; %Input to NN middle layer error_2=0; error_1=0;

ts=0.001; for k=1:1:1000 time(k)=k*ts;

rin(k)=1.0;

%Unlinear model

a(k)=1.2*(1-0.8*(exp(-0.1*k)))^3; yout(k)=a(k)*y_1/(1+y_1^2)+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)];

计算隐层输入;%wi[5,4] xi[1,4] I[1,5] 计算隐层输出; 计算输出层输入;

计算输出层输出,并赋值给K(1*3的数组); 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)>=10 % Restricting the output of controller u(k)=10; end

if u(k)<=-10 u(k)=-10; end

%Output layer 计算输出值的阈值修正; %Hidden layer for i=1:1:H

dO(i)=2/(exp(I(i))+exp(-I(i)))^2; end

segma=delta3*wo; %wo[3,5] for i=1:1:H

delta2(i)=dO(i)*segma(i); %delta2[1,5] end

d_wi=xite*delta2'*xi;

%wi=wi_1+d_wi+alfa*(wi_1-wi_2); wi=wi_1+d_wi; %Parameters Update

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); end figure(1);

plot(time,rin,'r',time,yout,'b'); 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); subplot(311); plot(time,kp,'r');

xlabel('time(s)');ylabel('kp'); subplot(312); plot(time,ki,'g');

xlabel('time(s)');ylabel('ki'); subplot(313); plot(time,kd,'b');

xlabel('time(s)');ylabel('kd');

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- gamedaodao.net 版权所有 湘ICP备2024080961号-6

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务