RBF神经网络仿真

      神经网络控制是智能控制的一种形式。其中神经网络根据组织结构又可以分为BP神经网络、RBF神经网络。BP神经网络收敛慢,不适于用于实时控制,RBF网络收敛速度较快,可以很好的应用于实时非线性工业控制中。但是,RBF神经网络控制,中心向量、基宽向量以及权值矩阵的初值对控制系统的影响很大。采样周期大小对结果影响很大,当ts=0.001时,下列函数逼近函数很好;但当ts=0.2时,逼近结果惨不忍睹。

    使用RBF函数逼近如下函数

                                                                       y(k)=u(k)^3+\frac{y(k-1)}{1+y(k-2)}

输入信号为正弦信号:

                                                                             u(k)=0.5sin(2\pi t)

采样时间为1ms,网络隐层神经元个数取m=4,网络结构为2-4-1;网络的学习参数取α=0.05,η=0.5.RBF神经网络基宽向量、中心向量、权值初值以MATLAB格式放在“初值.mat”附件中(https://download.csdn.net/download/dinfy/10572981)。

clear all;
close all;

alfa=0.05;
xite=0.5;
x=[0,0]';

load('bc.mat');
%b=1.5*ones(4,1);
%c=0.5*ones(2,4);
load('perfect','w');
%w=rands(4,1);

w_1=w;w_2=w_1;
c_1=c;c_2=c_1;
b_1=b;b_2=b_1;
d_w=0*w;
d_b=0*b;
y_1=0;


ts=0.001;
for k=1:2000

time(k)=k*ts;
u(k)=0.50*sin(1*2*pi*time(k));

y(k)=u(k)^3+y_1/(1+y_1^2);

x(1)=u(k);
x(2)=y(k);

for j=1:4

     h(j)=exp(-norm(x-c(:,j))^2/(2*b(j)^2));
end

ym(k)=w'*h';
em(k)=y(k)-ym(k);

for j=1:4

    d_w(j)=xite*em(k)*h(j);
    d_b(j)=xite*em(k)*w(j)*h(j)*(b(j)^-3)*norm(x-c(:,j).^2);
    for i=1:2
d_c(i,j)=xite*em(k)*w(j)*h(j)*(x(i)-c(i,j))*(b(j)^-2);
    end
end

w=w_1+d_w+alfa*(w_1-w_2);
b=b_1+d_b+alfa*(b_1-b_2);
c=c_1+d_c+alfa*(c_1-c_2);

%%%%%%%%%%%%%%Jacobian%%%%%%%%%%%%%%%

yu=0;
for j=1:4
    yu=yu+w(j)*h(j)*(c(1,j)-x(1))/b(j)^2;
end
dyu(k)=yu;

y_1=y(k);

w_2=w_1;
w_1=w;

c_2=c_1;
c_1=c;

b_2=b_1;
end

figure(1);
plot(time,y,'r',time,ym,'b');
xlabel('time');ylabel('y and ym');

figure(2);
plot(time,y-ym,'r');
xlabel('time');ylabel('identification error');

figure(3);
plot(time,dyu,'r');
xlabel('time');ylabel('dyu');
hold on;figure(4);
plot(time,u,'k');

RBF神经网络仿真_第1张图片

RBF神经网络仿真_第2张图片

RBF神经网络仿真_第3张图片

RBF神经网络仿真_第4张图片

 

你可能感兴趣的:(RBF神经网络仿真)