一、简介
RBF神将网络是一种三层神经网络,其包括输入层、隐层、输出层。从输入空间到隐层空间的变换是非线性的,而从隐层空间到输出层空间变换是线性的。流图如下:
RBF网络的基本思想是:用RBF作为隐单元的“基”构成隐含层空间,这样就可以将输入矢量直接映射到隐空间,而不需要通过权连接。当RBF的中心点确定以后,这种映射关系也就确定了。而隐含层空间到输出空间的映射是线性的,即网络的输出是隐单元输出的线性加权和,此处的权即为网络可调参数。其中,隐含层的作用是把向量从低维度的p映射到高维度的h,这样低维度线性不可分的情况到高维度就可以变得线性可分了,主要就是核函数的思想。这样,网络由输入到输出的映射是非线性的,而网络输出对可调参数而言却又是线性的。网络的权就可由线性方程组直接解出,从而大大加快学习速度并避免局部极小问题。
2 RBF神经网络的学习问题
二、源代码
clc;clear all;close all;
mu = 3.986004418e14;
al = 7400000; %参考星轨道半长轴(m)
n = sqrt(mu/(al^3));%参考星平均角速度
N = 2;
T = 2*pi/n;
t0 = 0;
tf = t0 + N*T;
x0=[0.3;-0.1;0.2;-0.2;0.12;0.17;-0.09];
% xt0=[0.3;-0.1;0.2;-0.2;0.12;0.17;-0.09;-1.3;-3.05;1.22];
% [t,x]=ode45('zitai_function',[t0:17:tf],x0);
% [t,xt]=ode45('zitai_ctrl',[t0:17:tf],xt0);
% [t,xq]=ode45('oula',[t0:17:tf],[-1.3;-3.05;1.22]);
[t,x]=ode45('rbf_zitai',[t0:17:5000],x0);
% c0=pi/T;
% wrd=[-c0*sin(2*c0*t) 1.6*c0*sin(4*c0*t) 0.8*c0*sin(2*c0*t)];
% wr=[xt(:,5)-wrd(1,1) xt(:,6)-wrd(2,1) xt(:,7)-wrd(3,1)];
% fai=xq(:,1);sita=xq(:,2);pesi=xq(:,3);
% for i=1:1118
% q(i,1)=cos(pesi(i,:)/2)*sin(fai(i,:)/2)*cos(sita(i,:)/2)-sin(pesi(i,:)/2)*cos(fai(i,:)/2)*sin(sita(i,:)/2);
% q(i,2)=cos(pesi(i,:)/2)*cos(fai(i,:)/2)*sin(sita(i,:)/2)+sin(pesi(i,:)/2)*sin(fai(i,:)/2)*cos(sita(i,:)/2);
% q(i,3)=sin(pesi(i,:)/2)*cos(fai(i,:)/2)*cos(sita(i,:)/2)+cos(pesi(i,:)/2)*sin(fai(i,:)/2)*sin(sita(i,:)/2);
% q(i,4)=cos(pesi(i,:)/2)*cos(fai(i,:)/2)*cos(sita(i,:)/2)-sin(pesi(i,:)/2)*sin(fai(i,:)/2)*sin(sita(i,:)/2);
% end
unction dx=rbf_micishedong(t,x)
mu=398600.44e+9;
rol=7400000;
Re = 6378000;%地球赤道半径
el = 0; %偏心率
il = 30*pi/180; %轨道倾角
Ml = 90*pi/180; %平近点角
nl = sqrt(mu/rol^3);
wl = 0*pi/180; %近地点辐角
raanl = 100*pi/180; %升交点赤经
fl = 160.0513*pi/180;%真近点角
ul = wl+fl;%真纬度角
J2 = 1.08263e-3;
A=[cos(ul)*cos(raanl)-sin(ul)*cos(il)*sin(raanl) cos(ul)*sin(raanl)+sin(ul)*cos(il)*cos(raanl) sin(ul)*sin(il);
-sin(ul)*cos(raanl)-cos(ul)*cos(il)*sin(raanl) -sin(ul)*sin(raanl)+cos(ul)*cos(il)*cos(raanl) cos(ul)*sin(il);
sin(il)*sin(raanl) -sin(il)*cos(raanl) cos(il)];%地心惯性坐标系到参考航天器的坐标转换矩阵
fal1=sqrt(mu*rol*(1-el^2))*(1+2*el*cos(Ml)+el^2*0.5*(1+5*cos(2*Ml)+el^3))/rol^2;
fal2=2*sqrt(mu*rol*(1-el^2))*(el*nl*sin(Ml)+el^2*(nl*sin(2*Ml)+3*nl*cos(Ml)*sin(Ml))+el^3)/rol^2;
c=diag([0.1;0.1;0.1]);
% tao=diag([0.05;0.05;0.05]);
beta=0.05;
b=133*eye(3);
% f0=[1;1;1];
% D0=diag([0.5;0.5;0.5]);
xp=[x(7);x(8);x(9)];
xp1=[x(10);x(11);x(12)];
xpd=[x(1);x(2);x(3)];
xpd1=[x(4);x(5);x(6)];
e=xp-xpd;
e1=xp1-xpd1;
s=e1+c*e;
xpd2=[nl^2*x(1)+0*x(2)+2*nl*x(5)+2*nl^2*x(1);
-0*x(1)+nl^2*x(2)-2*nl*x(4)-nl^2*x(2);
-nl^2*x(3);];
% xpd2=[0.1;-0.6;-0.5];
XYZ=inv(A)*[rol+x(7);x(8);x(9)];
X=XYZ(1,1);Y=XYZ(2,1);Z=XYZ(3,1);
R=sqrt(X^2+Y^2+Z^2);%考虑地球J2摄动时随时间变化的位置半径
gx1=-mu*x(7)/R^3*(1+1.5*J2*((Re/R)^2)*(1-5*(x(9)^2)/R^2));%地球J2摄动下X方向的地球引力项
gy1=-mu*x(8)/R^3*(1+1.5*J2*((Re/R)^2)*(1-5*(x(9)^2)/R^2));%地球J2摄动下Y方向的地球引力项
gz1=-mu*x(9)/R^3*(1+1.5*J2*((Re/R)^2)*(3-5*(x(9)^2)/R^2));%地球J2摄动下Z方向的地球引力项
gxyz=A*[gx1;gy1;gz1];
gx=gxyz(1,1);gy=gxyz(2,1);gz=gxyz(3,1);
x0=[zeros(1,3),120];
c1=[-0.5 0 0.5;
-0.5 0 0.5];
b=2;
node=3;
yd=[x(7) x(8) x(9)];
dyd=[x(10) x(11) x(12)];
ddyd=[2*nl*x(11)+3*nl^2*x(7) -2*nl*x(10) -nl^2*x(9)];
e=[x(7)-x(1) x(8)-x(2) x(9)-x(3)];
de=[x(10)-x(4) x(11)-x(5) x(12)-x(6)];
kp=0.5;
kd=0.3;
K=[kp kd]';
E=[e;de];
Fai=[0 1;-kp -kd];
A=Fai';
Q=[500 0;0 500];
P=lyap(A,Q);
W=[x(10) x(11) x(12)]';
xi=[e;de];
h=zeros(3,1);
for j=1:1:3
h(j)=exp(-norm(xi(:,j)-c1(:,j))^2/(2*b^2));
end
三、运行结果
四、备注
完整代码或者代写添加QQ912100926
往期回顾>>>>>>
【物理应用】杨氏双缝干涉实验【Matlab 310期】
【物理应用】井筒多相流【Matlab 311期】
【物理应用】二维对流扩散温度场【Matlab 312期】
【物理应用】内弹道【Matlab 313期】
【物理应用】两个光纤光栅的新光子微波发生器的仿真分析【Matlab 314期】
【物理应用】计算油气井井底压力【Matlab 315期】
【物理应用】光流场【Matlab 316期】
【物理应用】带电粒子在放射状电场和均匀磁场下的混沌运动模拟【Matlab 317期】
【物理应用】异构交通流【Matlab 318期】
【物理应用】模拟斜抛运动含GUI界面【Matlab 319期】
【物理应用】计算晶体结构的x射线衍射图谱【Matlab 320期】
【物理应用】衍射光栅教学版【Matlab 321期】
【物理应用】电荷电场线和电势【Matlab 322期】
【物理应用】速度场找到漩涡【Matlab 323期】
【物理应用】Simulink三相异步电机仿真【Matlab 324期】
【物理应用】悬吊式起重机动力学仿真【Matlab 325期】
【物理应用】车道检测仿真【Matlab 326期】
【物理应用】基于GUI界面的电偶极子【Matlab 327期】
【物理应用】车载自组织网络中路边性能及防碰撞算法研究【Matlab 328期】
【物理应用】Q学习的无线体域网路由方法【Matlab 329期】
【电路仿真】基于simulink三相相控变流器的设计【Matlab 330期】
【物理应用】导线网坐标计算【Matlab 331期】
【物理应用】功率谱估计【Matlab 332期】
【物理应用】基于动态矩阵控制方法的热水器出口温度控制【Matlab 333期】
【电路仿真】基于simulink三相半波可控整流电路【Matlab 334期】
【电路仿真】基于simulink三相桥式全控整流电路【Matlab 335期】
【物理应用】基于GUI家庭室内温湿度控制【Matlab 336期】
【电路仿真】基于simulink模拟锁相环设计【Matlab 337期】
【电路仿真】基于simulink全数字锁相环设计【Matlab 338期】
【物理应用】基于直角坐标的电力系统潮流计算【Matlab 339期】
【光学】单缝衍射【Matlab 340期】