基于RBF神经网络的自适应控制器simulink建模与仿真

举报
软件算法开发 发表于 2024/06/25 22:12:51 2024/06/25
【摘要】 1.程序功能描述        在simulink中,使用S函数编写基于RBF神经网络的自适应控制器,然后实现基于RBF神经网络的自适应控制器的控制仿真。 2.测试软件版本以及运行结果展示MATLAB2022a版本运行   3.核心程序   function sys=mdlDerivatives(t,x,u)global node c byd=sin(t);dyd=cos(t);ddyd=-...

1.程序功能描述

        simulink中,使用S函数编写基于RBF神经网络的自适应控制器,然后实现基于RBF神经网络的自适应控制器的控制仿真。

 

2.测试软件版本以及运行结果展示

MATLAB2022a版本运行

 

 

1.jpeg

2.jpeg

 

3.核心程序

 

3.jpeg

 

 

function sys=mdlDerivatives(t,x,u)
global node c b
yd=sin(t);
dyd=cos(t);
ddyd=-sin(t);

e=u(1);
de=u(2);
x1=yd-e;
x2=dyd-de;

kp=30;
kd=50;
K=[kpkd]';
E=[e de]'; 

Fai=[0 1;-kp -kd];
A=Fai';
Q=[500 0;0 500];
P=lyap(A,Q);
W=[x(1) x(2) x(3) x(4) x(5)]';
xi=[e;de];
h=zeros(5,1);
for j=1:1:5
    h(j)=exp(-norm(xi-c(:,j))^2/(2*b^2));%网络层
end
fxp=W'*h;
mp=x(node+1);
ut=1/mp*(-fxp+ddyd+K'*E);

B=[0;1];
gama=1200;
S=-gama*E'*P*B*h;
for i=1:1:node
    sys(i)=S(i);
end
eta=0.0001;
ml=100;
if (E'*P*B*ut>0)
    dm=(1/eta)*E'*P*B*ut;
end
if (E'*P*B*ut<=0)
    if (mp>ml)
    dm=(1/eta)*E'*P*B*ut;
    else
    dm=1/eta;
    end
end
sys(node+1)=dm;
27

 

 

 

4.本算法原理

        RBF神经网络是一种三层前馈网络,包括输入层、隐藏层和输出层。隐藏层使用径向基函数作为激活函数,常见的径向基函数是高斯函数。RBF神经网络的基本思想是将输入空间映射到一个隐藏层空间,然后在这个空间中进行线性组合以产生输出。

 

4.1自适应控制器

       自适应控制器是一种能够自动调整其参数以响应系统变化或外部扰动的控制系统。在基于RBF神经网络的自适应控制器中,RBF神经网络用于逼近未知的非线性系统动态,而控制器的参数则根据某种自适应律进行在线调整。

 

4.2 RBF神经网络模型

 

4.png

 

        RBF神经网络学习算法需要求解的参数有三个:基函数的中心向量W、方差σ \sigmaσ以及隐含层到输出层的权值。根据选取的径向基函数中心的方法不同,RBF神经网络有不同的学习方式。下面将介绍自组织选取中心的RBF神经网络学习法。该方法由两个阶段组成:一是自组织学习阶段,此阶段为无导师学习过程,求解隐藏层基函数的中心向量与方差;二是有导师学习阶段,此阶段求解隐藏层到输出层之间的权值。自适应律可以设计为使得RBF神经网络的权重和参数根据误差信号进行调整,以最小化跟踪误差。例如,可以采用梯度下降法来更新权重和参数。为了分析控制器的稳定性,通常需要构造一个李雅普诺夫函数(Lyapunov function),并证明该数的时间导数小于零。这可以确保系统状态在控制器的作用下渐近稳定到期望轨迹。

 

       基于RBF神经网络的自适应控制器是一种强大的非线性控制方法,能够自动调整参数以适应系统变化和外部扰动。通过结合RBF神经网络的逼近能力和自适应控制策略,可以实现良好的跟踪性能和稳定性。然而,详细的理论分析和实现可能需要更深入的研究和实践经验。

 

【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。