zl程序教程

您现在的位置是:首页 >  后端

当前栏目

基于RBF神经网络的机械臂运动控制算法(Matlab代码实现)

MATLAB神经网络代码 实现 基于 运动 机械 RBF
2023-09-27 14:20:42 时间

       目录

💥1 概述

📚2 运行结果

🎉3 参考文献

👨‍💻4 Matlab代码


💥1 概述


在信号处理、模式识别等系统中,多层前馈网络是应用较为广泛的模型。但是大部分基于反向传播的多层前馈网络的学习算法必须基于某种非线性优化技术的缺点,计算量大、学习速度慢。径向基函数神经网络(Radial Basis Function Neural Network)理论为多层前馈网络的学习提供了一种新颖而有效的手段。RBF网络不仅具有良好的推广能力,而且计算量少,学习速度一般也比其它算法快得多。

📚2 运行结果

主函数部分代码:

clc; clear all;

addpath(genpath('.'));

% simulation setup

sim_period = 0.001;

t = 0:sim_period:20;

sample_size = size(t, 2);

% % reference trajectory

xd(1,:)=sin(t);

xd(2,:)=cos(t);

xd(3,:)=-sin(t);

% parameter of neural network

variance = 25;

Node = 7;

W1 = zeros(Node, 1);

W2 = zeros(Node, 1);

Mu1 = [-1:2/(Node-1):1]*1/3;

Mu2 = [-1:2/(Node-1):1]*1/3;

Mu = [Mu1; Mu2];

k1=0.01;k2=0.01;

F1= 500*eye(Node);

F2= .5*eye(Node);

% intial state

x(:,1) = [0.2; 0];

x_hat(:,1) = [0.1; 0];

global D K1 K2

H_bar = zeros(Node, 1);

for i=1:sample_size

    x1 = x(1,i);

    x2 = x(2,i);

    

    x_hat1 = x_hat(1,i);

    x_hat2 = x_hat(2,i);

    

    % model

    m=1;l=1;M=0.5;g=9.8;

    fx=-0.5*m*g*l*sin(x1)/M;

    gx=1/M;

    

    % ann

    y_tilde = x1 - x_hat(1,i);

    H = zeros(Node,1);

    for j=1:Node

        H(j) = exp(-norm(x(:,i)-Mu(:,j))^2/(variance));

    end

🎉3 参考文献

[1]王旭东,邵惠鹤.RBF神经网络理论及其在控制中的应用[J].信息与控制,1997(04):32-44.

👨‍💻4 Matlab代码