欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

RBF神经网络仿真

程序员文章站 2022-04-04 20:11:13
...

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

    使用RBF函数逼近如下函数

                                                                       RBF神经网络仿真

输入信号为正弦信号:

                                                                             RBF神经网络仿真

采样时间为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神经网络仿真

RBF神经网络仿真

RBF神经网络仿真

RBF神经网络仿真

 

相关标签: 学习