RBF滑膜控制

RBF神经网络可以逼近未知函数。

 

前提条件是

1,知道未知函数的输入变量,用来作为RBF神经网络的输入

2,知道输入变量的变化范围,用来确定高斯基函数的b 和c

 Lyapunov第二项含义:

初始时网络权值和真实未知函数的网络权值有误差,V为正值。对V求导令V为单调递减函数,最终网络权值会逼近真实函数的网络权值。

 

 

 



clear all;
close all;
clc;
%仿真时间、仿真步长
t=10;
ts=0.001;

%控制器参数
c=10;
cij=[-2 -1 0 1 2];
bj=3;
w(1:5,1)=0.1;
gama=100;
k1=3;
b=10;
D=1.5;
%控制对象初始状态
x(1)=0;
dx(1)=10*ts;
ef0=0;
for k=1:1:t/ts
   times(k)=k*ts;
   xd(k)=sin(k*ts);
   dxd(k)=cos(k*ts);
   
   e(k)=x(k)-xd(k);
   ef(k+1)=ef0+e(k)*ts;
   ef0=ef(k+1);
   s(k)=e(k)+c*ef(k);
   
   xi=e(k)+xd(k);
   W=[w(1,k),w(2,k),w(3,k),w(4,k),w(5,k)];
   for j=1:1:5
       h(j)=exp(-(xi-cij(j))^2/(2*bj^2));
   end
    dw=gama*s(k)*h';
    w(:,k+1)=w(:,k)+dw*ts;
    fn(k)=W*h';
    ut(k)=1/b*(-c*e(k)+dxd(k)-fn(k)-k1*s(k)-D*sign(s(k)));
    
    dt(k)=0.5*sin(k*ts);
    fx(k)=10*x(k)^2;
    %ut(k)=1/b*(-c*e(k)+dxd(k)-fx(k)-k*s(k)-D*sign(s(k)));
    
    dx(k+1)=(b*ut(k)+fx(k)+dt(k));
    
    
    x(k+1)=x(k)+dx(k)*ts;
end
x(:,end)=[];
figure(1)
plot(times,x,times,xd);
figure(2)
plot(times,ut);
figure(3)
plot(times,fx,times,fn)

  • 3
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值