基于RBFNN的直接模型参考自适应控制
- 格式:doc
- 大小:420.50 KB
- 文档页数:8
基于RBF神经网络的机械臂自适应控制方法程林云;张雷;宋晓娜【摘要】针对机械臂受内部摩擦和时变扰动等不确定性因素的影响,其轨迹跟踪控制系统的跟踪精度会下降,且影响系统的稳定性,提出一种基于径向基函数神经网络的自适应控制方法;首先,利用RBF神经网络采用离线训练和在线学习的方式对机械臂的动力学模型进行辨识;其次针对机械臂控制系统中的摩擦,设计RBF神经网络自适应控制算法对其进行逼近得到补偿控制量;针对时变扰动和神经网络逼近误差设计鲁棒项,以克服众多不确定性因素带来的影响,同时通过构造李亚普诺夫函数对所设计的控制系统进行稳定性分析;最后,仿真实验结果证明提出的控制方法具有较高的跟踪精度、抗干扰能力和较强的鲁棒性.【期刊名称】《计算机测量与控制》【年(卷),期】2019(027)007【总页数】6页(P79-84)【关键词】机械臂;神经网络;辨识器;自适应控制;李亚普诺夫函数【作者】程林云;张雷;宋晓娜【作者单位】河南科技大学电气工程学院,河南洛阳 471023;河南科技大学电气工程学院,河南洛阳 471023;电力电子装置与系统河南省工程实验室,河南洛阳471023;河南科技大学电气工程学院,河南洛阳 471023【正文语种】中文【中图分类】TP2730 引言通过模仿人的手臂,机械臂可以实现抓取、移动等功能[1-3]。
如今,许多极端环境下的危险工作大多都需要借助机械臂来完成,比如深海勘探、放射性废物处理、太空操作等[4-5]。
面对极端的操作环境、严苛的精度要求,机械臂控制系统必须具有良好的稳定性、灵敏的反应速度以及较高的精准度。
然而,机械臂是一个高度耦合的多输入和多输出的非线性系统,且存在不确定的时变扰动和内部摩擦等因素,难以对其建立精确的动力学模型,这给机械臂轨迹跟踪控制的实现增加了困难[6-7]。
近年来,学者们对机械臂的轨迹控制进行了一定的研究,提出了一些控制策略和方法,如计算力矩法,PID控制,模糊控制,神经网络控制,自适应控制等[8-12]。
基于RBF网络的模型参考自适应控制
刘慧明;刘亮;董洪灿
【期刊名称】《青岛科技大学学报(自然科学版)》
【年(卷),期】2008(029)001
【摘要】针对一类非线性动态系统给出了一种基于RBF(径向基函数)神经网络的模型参考自适应控制算法,控制器的结构中使用RBF网络来动态的补偿系统的非线性性.基于Lyapnuov稳定性理论,给出了控制器参数的调整机制——σ-modification-type修正律,并根据神经网络的逼近误差给出了控制误差的估计,控制误差渐近收敛于0附近的一个紧集.仿真实例说明了所给出的算法切实可行.【总页数】5页(P68-71,76)
【作者】刘慧明;刘亮;董洪灿
【作者单位】青岛科技大学,网络中心,山东,青岛,266061;青岛科技大学,网络中心,山东,青岛,266061;青岛科技大学,网络中心,山东,青岛,266061
【正文语种】中文
【中图分类】O231
【相关文献】
1.一种基于径向基函数的模型参考自适应控制的研究 [J], 王鑫
2.基于模型参考自适应控制的舵机加载系统研究 [J], 税洋;尉建利;闫杰
3.基于模型参考自适应控制的伺服定位系统研究 [J], 严尚贤;蒋晓辉
4.基于神经网络的电子节气门系统模型参考自适应控制 [J], 寇汶淇;雷菊阳
5.基于模型参考自适应控制与扩张状态观测器的电子节气门控制 [J], 嵇登臣;李世华;孙昊
因版权原因,仅展示原文概要,查看原文内容请购买。
基于RBF逼近不确定项的机械手自适应控制研究作者:刘剑王晓光杨红娜刘丽丽来源:《科技资讯》2014年第09期摘要:针对机械手控制系统中的不确定因素,提出了RBF神经网络逼近不确定项的自适应控制策略。
在逆动力学计算力矩方法的基础上,设计了鲁棒自适应控制器。
利用RBF神经网络对模型中的不确定项分块进行逼近,并用Lyapunov稳定性理论建立了网络权重自适应学习律,证明了系统的全局稳定性;最后进行了仿真,结果表明该方法能够有效的消除模型不确定性的影响,准确地实现了轨迹跟踪。
关键词:机械手自适应控制不确定项 RBF神经网络中图分类号:TP183 文献标识码:A 文章编号:1672-3791(2014)03(c)-0097-03从机械手控制系统角度来看,机械手各关节的控制环相互间存在着耦合,这种耦合关系使得机械手呈现出严重的非线性特征。
因此,对其有效的智能控制策略一直是机器人控制领域研究的热点[1]。
基于模型的控制方法是在已知机器人精确数学模型情况下实现控制的,而在实际工程中,由于存在很多不确定性因素,使得该方法的轨迹跟踪误差很难收敛于零。
PID控制方法简单,无需建模,但难保证机器人具有良好的静态和动态品质,同时要求控制能量比较大[2]。
人工智能神经网络控制具有高度的非线性逼近映射能力,其发展为解决机器人的控制开辟了新途径。
因此,基于神经网络的智能控制已被广泛用于不确定机器人系统的精确控制中[3~9]。
作为现代控制理论的自适应控制在参数不确定性严重的情况下,能够实现较好的跟踪性能。
因此,本文提出了基于RBF网络逼近机器人中不确定项的自适应控制策略。
该方法采用Lyapunov稳定性理论给出了RBF网络权值自适应学习率。
利用MATLAB软件对该方法在机器人中的应用进行了仿真,仿真结果表明该控制策略能够克服扰动和摩擦力等不确定性因素,实现较准确的轨迹跟踪。
1 问题的提出对在平面内运动的机械手,考虑重力及外部扰动的情况下,n关节机械手的动力学方程可表示为[2]:(1)其中,为n×n阶正定惯性矩阵,为n×1阶向心力与科氏力矢量,为n×1惯性向量,为摩擦力,为未知外加干扰,为n×1阶关节输入力或力矩矢量,分别代表关节位移、速度和加速度矢量。
一种简单的基于RBF 网络逼近的自适应控制1 问题描述简单的运动系统动力学方程为:(),f u θ=θθ+ (1)其中θ为角度,u 为控制输入。
写成状态方程形式为:()122x x x f x u==+ (2)其中()f x 为未知。
位置指令为d x ,则误差及其变化率为1d e x x =-,2d e x x =-定义误差函数为s ce e =+,0c > (3)则()2d d s ce e ce x x ce f x u x =+=+-=++-。
由式(3)可见,如果0s →,则0e →且0e →。
2 RBF 网络原理由于RBF 网络具有万能逼近特性[1],采用RBF 神经网络逼近()f x ,网络算法为:22exp 2jj j h b ⎛⎫- ⎪= ⎪⎝⎭x c(4) ()*T f ε=+W h x (5)其中x 为网络的输入,j 为网络隐含层第j 个节点,Tj h ⎡⎤=⎣⎦h 为网络的高斯基函数输出,*W 为网络的理想权值, ε为网络的逼近误差,N εε≤。
网络输入取[]T 12x x =x ,则网络输出为:()()T ˆf x x =Wh (6) 3 控制算法设计与分析由于()()()()()*T T T ˆˆf x fx x εε-=+-=-+W h x W h W h x 。
定义Lyapunov 函数为2T1122V s W W γ=+ (7) 其中0γ>,*ˆ=-W WW 。
则()()T T d11ˆˆV ss W W s ce f x u x W W γγ=+=++-+ 设计控制律为()()dˆsgn u ce f x x s η=--+- (8) 则()()()()()()()()T T T T 1ˆˆsgn 1ˆ sgn 1ˆ V s f x fx s W W s s W Ws s W W s ηγεηγεηγ=--+=-+-+⎛⎫=-+- ⎪⎝⎭W h x h x 取maxηε>,自适应律为()ˆWs γ=h x (9) 则0V s s =-<εη。
在线学习RBF神经网络的模型参考自适应控制器朱明星;龚蓬【期刊名称】《计算机技术与发展》【年(卷),期】2001(011)002【摘要】本文给出一种在线学习RBF神经网络的快速算法,并设计了在线学习RBF神经网络的MARAC。
通过仿真表明,在线RBF神经网络的MRAC计算量小、在线学习、跟踪时间短、控制精度高的优点。
%This paper presents the fast algorithm of the on-line learning RBF neural networks, and design the model reference adaptive controller of on-line RBF neural networks. The present algorithm have less computational cost, on-line learning, shorter training times and considerable control accuracy by the simulation results for the model reference adaptive controller.【总页数】3页(P5-7)【作者】朱明星;龚蓬【作者单位】安徽大学自动化系,;安徽大学自动化系,【正文语种】中文【中图分类】TP183;TP273.2【相关文献】1.基于RBF神经网络在线辨识的永磁无刷直流电机单神经元PID模型参考自适应控制 [J], 夏长亮;李志强;王明超;刘均华2.机械臂轨迹跟踪控制--基于EC-RBF神经网络的机械臂模型参考自适应控制 [J], 杨剑锋;张翠;张峰3.基于RBF神经网络辨识的单神经元PID模型参考自适应控制 [J], 郑晋平;4.基于RBF神经网络的伺服系统模型参考自适应控制 [J], 张天瑜5.基于RBF神经网络的超声波电机参数辨识与模型参考自适应控制 [J], 夏长亮;祁温雅;杨荣;史婷娜因版权原因,仅展示原文概要,查看原文内容请购买。
基于RBF神经网络自适应滑模路由队列控制算法研究陈治【摘要】为解决网络传输过程中TCP网络控制系统非线性结构参数和不确定项上界参数等参数摄动对路由数据队列长度控制的影响,采用了一种基于RBF神经网络(Radial Base Function Neural Network)的自适应滑模控制算法,实现对路由数据传输队列长度的控制,以改善TCP网络路由队列的数据传输中存在的数据丢失及数据拥塞问题.首先,对路由队列数据传输过程进行数学建模,利用RBF神经网络辨识TCP网络控制系统的非线性函数,采用自适应滑模学习算法调整不确定项上界参数,然后使用基于RBF神经网络算法的自适应滑模控制算法控制TCP网络传输过程,并对基于RBF神经网络的自适应滑模控制算法进行了仿真验证.仿真结果表明,该控制方法能够有效抑制TCP网络控制系统结构参数摄动对路由数据传输队列长度的影响,且系统动态误差小和抗干扰性能强.【期刊名称】《制造业自动化》【年(卷),期】2017(039)005【总页数】6页(P32-36,48)【关键词】TCP网络;RBF神经网络;自适应滑模;结构参数;路由队列控制【作者】陈治【作者单位】合肥工业大学电气与自动化工程学院,合肥 230009【正文语种】中文【中图分类】TP273.5随着网络数据量的不断增加,TCP路由传输队列长度控制导致的数据丢失和数据拥塞问题日益严重,针对网络拥塞问题的路由控制算法研究已成为学者研究的热点。
文献[1]针对输入时滞的传输控制协议TCP线性动态系统采用滑模控制策略,利用LMI(Linear Matrix Inequality)线性化技术将滑动超平面进行特殊线性变换,使路由传输队列长度快速收敛于设定值。
文献[2]利用RBF神经网络的自适应权值学习来估计TCP网络控制系统参数变化引起的等效不确定项上界,使终端滑模控制器的滑动模态具有更短的收敛时间,达到快速控制路由传输队列长度的效果。
机械臂轨迹跟踪控制--基于EC-RBF神经网络的机械臂模型参考自适应控制杨剑锋;张翠;张峰【摘要】针对机械臂运动轨迹控制中存在的跟踪精度不高的问题,采用了一种基于EC-RBF神经网络的模型参考自适应控制方案对机械臂进行模型辨识与轨迹跟踪控制。
该方案采用了两个RBF神经网络,运用EC-RBF学习算法,采用离线与在线相结合的方法来训练神经网络,一个用来实现对机械臂进行模型辨识,一个用来实现对机械臂轨迹跟踪控制。
对二自由度机械臂进行仿真,结果表明,使用该控制方案对机械臂进行轨迹跟踪控制具有较高的控制精度,且因采用EC-RBF学习算法使网络具有更快的训练速度,从而使得控制过程较迅速。
%According to the problem that the tracking accuracy is not high enough in trajectory tracking control of robot manipulators, a model reference adaptive control scheme based on EC-RBF neural networks is adopted to achieve robot manipulator model identification and trajectory tracking control. This control scheme contains two RBF neural networks which are trained offline and online, using EC-RBF learning algorithm. The one is used to identify the robot manipulator’s model, and the other one is used to achieve its trajectory tracking control. Simulation result of 2-degree-of-freedom robot manipulator demonstrates that using this method for robot manipulator trajectory tracking control has high control accuracy, and the networks which gain high training speed because of the EC-RBF learning algorithm make the control process faster.【期刊名称】《计算机工程与应用》【年(卷),期】2015(000)009【总页数】5页(P82-86)【关键词】机械臂轨迹跟踪;模型参考自适应控制;熵聚类-径向基函数(EC-RBF)神经网络【作者】杨剑锋;张翠;张峰【作者单位】兰州交通大学自动化与电气工程学院,兰州 730070;兰州交通大学自动化与电气工程学院,兰州 730070;兰州交通大学自动化与电气工程学院,兰州 730070【正文语种】中文【中图分类】TP241随着机器人在工业生产、航空航天等领域的广泛应用,人类社会的发展越来越依赖于机器人技术,因此对机器人控制技术也提出了更高的要求。
自动化专业综合设计报告设计题目:基于RBFNN的直接模型参考自适应控制所在实验室:matlab仿真实验室指导教师:杜学生姓名班级文自112-2 学号201190成绩评定:仿真截图三角输入clear all;close all;u_1=0;y_1=0;ym_1=0;x=[0,0,0]';c=[-3 -2 -1 1 2 3;-3 -2 -1 1 2 3;-3 -2 -1 1 2 3];b=2*ones(6,1);w=[ 0.82830.3887-0.8872-0.36680.82330.8274];xite=0.45;alfa=0.05;h=[0,0,0,0,0,0]';c_1=c;c_2=c;b_1=b;b_2=b;w_1=w;w_2=w;ts=0.001;for k=1:1:4000time(k)=k*ts;r(k)=0.2*sawtooth(2*pi*k*ts,0.5);ym(k)=0.6*ym_1+r(k);y(k)=(-0.1*y_1+u_1)/(1+y_1^2); %Nonlinear plantfor j=1:1:6h(j)=exp(-norm(x-c(:,j))^2/(2*b(j)*b(j)));endu(k)=w'*h;ec(k)=ym(k)-y(k);dyu(k)=sign((y(k)-y_1)/(u(k)-u_1));d_w=0*w;for j=1:1:6d_w(j)=xite*ec(k)*h(j)*dyu(k);endw=w_1+d_w+alfa*(w_1-w_2);d_b=0*b;for j=1:1:6d_b(j)=xite*ec(k)*w(j)*h(j)*(b(j)^-3)*norm(x-c(:,j))^2*dyu(k);endb=b_1+d_b+alfa*(b_1-b_2);d_c=0*c;for j=1:1:6for i=1:1:3d_c(i,j)=xite*ec(k)*w(j)*h(j)*(x(i)-c(i,j))*(b(j)^-2)*dyu(k);endendc=c_1+d_c+alfa*(c_1-c_2);u_1=u(k);y_1=y(k);ym_1=ym(k);x(1)=r(k);x(2)=ec(k);x(3)=y(k);w_2=w_1;w_1=w;c_2=c_1;c_1=c;b_2=b_1;b_1=b;endfigure(1);plot(time,ym,'r',time,y,'b');xlabel('time(s)');ylabel('ym,y');figure(2);plot(time,u);xlabel('time(s)');ylabel('Control input');锯齿波输入clear all;close all;u_1=0;y_1=0;ym_1=0;x=[0,0,0]';c=[-3 -2 -1 1 2 3;-3 -2 -1 1 2 3;-3 -2 -1 1 2 3];b=2*ones(6,1);w=[0.7721-0.9147-0.32520.75261.23180.6602];xite=0.13;alfa=0.1;h=[0,0,0,0,0,0]';c_1=c;c_2=c;b_1=b;b_2=b;w_1=w;w_2=w;ts=0.001;for k=1:1:5000time(k)=k*ts;r(k)=0.29*sawtooth(2*pi*k*ts,1);ym(k)=0.6*ym_1+r(k);y(k)=(-0.1*y_1+u_1)/(1+y_1^2);for j=1:1:6h(j)=exp(-norm(x-c(:,j))^2/(2*b(j)*b(j)));endu(k)=w'*h;ec(k)=ym(k)-y(k);dyu(k)=sign((y(k)-y_1)/(u(k)-u_1));d_w=0*w;for j=1:1:6d_w(j)=xite*ec(k)*h(j)*dyu(k);endw=w_1+d_w+alfa*(w_1-w_2);d_b=0*b;for j=1:1:6d_b(j)=xite*ec(k)*w(j)*h(j)*(b(j)^-3)*norm(x-c(:,j))^2*dyu(k);endb=b_1+d_b+alfa*(b_1-b_2);d_c=0*c;for j=1:1:6for i=1:1:3d_c(i,j)=xite*ec(k)*w(j)*h(j)*(x(i)-c(i,j))*(b(j)^-2)*dyu(k);endendc=c_1+d_c+alfa*(c_1-c_2);%Return of parametersu_1=u(k);y_1=y(k);ym_1=ym(k);x(1)=r(k);x(2)=ec(k);x(3)=y(k);w_2=w_1;w_1=w;c_2=c_1;c_1=c;b_2=b_1;b_1=b;endfigure(1);plot(time,ym,'r',time,y,'b');xlabel('time(s)');ylabel('ym,y');figure(2);plot(time,u);xlabel('time(s)');ylabel('Control input');阶跃信号输入clear all;close all;u_1=0;y_1=0;ym_1=0;x=[0,0,0]';c=[-3 -2 -1 1 2 3;-3 -2 -1 1 2 3;-3 -2 -1 1 2 3];b=2*ones(6,1);w=[-0.64180.97760.00930.11790.88510.5034];xite=0.45;alfa=0.05;h=[0,0,0,0,0,0]';c_1=c;c_2=c;b_1=b;b_2=b;w_1=w;w_2=w;ts=0.001;for k=1:1:4000time(k)=k*ts;r(k)=0.2*heaviside(2*pi*k*ts);ym(k)=0.6*ym_1+r(k);y(k)=(-0.1*y_1+u_1)/(1+y_1^2); %Nonlinear plant for j=1:1:6h(j)=exp(-norm(x-c(:,j))^2/(2*b(j)*b(j))); endu(k)=w'*h;ec(k)=ym(k)-y(k);dyu(k)=sign((y(k)-y_1)/(u(k)-u_1));d_w=0*w;for j=1:1:6d_w(j)=xite*ec(k)*h(j)*dyu(k);endw=w_1+d_w+alfa*(w_1-w_2);d_b=0*b;for j=1:1:6d_b(j)=xite*ec(k)*w(j)*h(j)*(b(j)^-3)*norm(x-c(:,j))^2*dyu(k);endb=b_1+d_b+alfa*(b_1-b_2);d_c=0*c;for j=1:1:6for i=1:1:3d_c(i,j)=xite*ec(k)*w(j)*h(j)*(x(i)-c(i,j))*(b(j)^-2)*dyu(k);endendc=c_1+d_c+alfa*(c_1-c_2);%Return of parametersu_1=u(k);y_1=y(k);ym_1=ym(k);x(1)=r(k);x(2)=ec(k);x(3)=y(k);w_2=w_1;w_1=w;c_2=c_1;c_1=c;b_2=b_1;b_1=b;endfigure(1);plot(time,ym,'r',time,y,'b');xlabel('time(s)');ylabel('ym,y');figure(2);plot(time,u);xlabel('time(s)');ylabel('Control input');。
自动化专业综合设计报告
设计题目:
基于RBFNN的直接模型参考自适应控制所在实验室:matlab仿真实验室
指导教师:杜
学生姓名
班级文自112-2 学号201190
成绩评定:
仿真截图
三角输入
clear all;
close all;
u_1=0;
y_1=0;
ym_1=0;
x=[0,0,0]';
c=[-3 -2 -1 1 2 3;
-3 -2 -1 1 2 3;
-3 -2 -1 1 2 3];
b=2*ones(6,1);
w=[ 0.8283
0.3887
-0.8872
-0.3668
0.8233
0.8274];
xite=0.45;
alfa=0.05;
h=[0,0,0,0,0,0]';
c_1=c;c_2=c;
b_1=b;b_2=b;
w_1=w;w_2=w;
ts=0.001;
for k=1:1:4000
time(k)=k*ts;
r(k)=0.2*sawtooth(2*pi*k*ts,0.5);
ym(k)=0.6*ym_1+r(k);
y(k)=(-0.1*y_1+u_1)/(1+y_1^2); %Nonlinear plant
for j=1:1:6
h(j)=exp(-norm(x-c(:,j))^2/(2*b(j)*b(j)));
end
u(k)=w'*h;
ec(k)=ym(k)-y(k);
dyu(k)=sign((y(k)-y_1)/(u(k)-u_1));
d_w=0*w;
for j=1:1:6
d_w(j)=xite*ec(k)*h(j)*dyu(k);
end
w=w_1+d_w+alfa*(w_1-w_2);
d_b=0*b;
for j=1:1:6
d_b(j)=xite*ec(k)*w(j)*h(j)*(b(j)^-3)*norm(x-c(:,j))^2*dyu(k);
end
b=b_1+d_b+alfa*(b_1-b_2);
d_c=0*c;
for j=1:1:6
for i=1:1:3
d_c(i,j)=xite*ec(k)*w(j)*h(j)*(x(i)-c(i,j))*(b(j)^-2)*dyu(k);
end
end
c=c_1+d_c+alfa*(c_1-c_2);
u_1=u(k);
y_1=y(k);
ym_1=ym(k);
x(1)=r(k);
x(2)=ec(k);
x(3)=y(k);
w_2=w_1;w_1=w;
c_2=c_1;c_1=c;
b_2=b_1;b_1=b;
end
figure(1);
plot(time,ym,'r',time,y,'b');
xlabel('time(s)');ylabel('ym,y');
figure(2);
plot(time,u);
xlabel('time(s)');ylabel('Control input');
锯齿波输入
clear all;
close all;
u_1=0;
y_1=0;
ym_1=0;
x=[0,0,0]';
c=[-3 -2 -1 1 2 3;
-3 -2 -1 1 2 3;
-3 -2 -1 1 2 3];
b=2*ones(6,1);
w=[
0.7721
-0.9147
-0.3252
0.7526
1.2318
0.6602];
xite=0.13;
alfa=0.1;
h=[0,0,0,0,0,0]';
c_1=c;c_2=c;
b_1=b;b_2=b;
w_1=w;w_2=w;
ts=0.001;
for k=1:1:5000
time(k)=k*ts;
r(k)=0.29*sawtooth(2*pi*k*ts,1);
ym(k)=0.6*ym_1+r(k);
y(k)=(-0.1*y_1+u_1)/(1+y_1^2);
for j=1:1:6
h(j)=exp(-norm(x-c(:,j))^2/(2*b(j)*b(j)));
end
u(k)=w'*h;
ec(k)=ym(k)-y(k);
dyu(k)=sign((y(k)-y_1)/(u(k)-u_1));
d_w=0*w;
for j=1:1:6
d_w(j)=xite*ec(k)*h(j)*dyu(k);
end
w=w_1+d_w+alfa*(w_1-w_2);
d_b=0*b;
for j=1:1:6
d_b(j)=xite*ec(k)*w(j)*h(j)*(b(j)^-3)*norm(x-c(:,j))^2*dyu(k);
end
b=b_1+d_b+alfa*(b_1-b_2);
d_c=0*c;
for j=1:1:6
for i=1:1:3
d_c(i,j)=xite*ec(k)*w(j)*h(j)*(x(i)-c(i,j))*(b(j)^-2)*dyu(k);
end
end
c=c_1+d_c+alfa*(c_1-c_2);
%Return of parameters
u_1=u(k);
y_1=y(k);
ym_1=ym(k);
x(1)=r(k);
x(2)=ec(k);
x(3)=y(k);
w_2=w_1;w_1=w;
c_2=c_1;c_1=c;
b_2=b_1;b_1=b;
end
figure(1);
plot(time,ym,'r',time,y,'b');
xlabel('time(s)');ylabel('ym,y');
figure(2);
plot(time,u);
xlabel('time(s)');ylabel('Control input');
阶跃信号输入
clear all;
close all;
u_1=0;
y_1=0;
ym_1=0;
x=[0,0,0]';
c=[-3 -2 -1 1 2 3;
-3 -2 -1 1 2 3;
-3 -2 -1 1 2 3];
b=2*ones(6,1);
w=[-0.6418
0.9776
0.0093
0.1179
0.8851
0.5034];
xite=0.45;
alfa=0.05;
h=[0,0,0,0,0,0]';
c_1=c;c_2=c;
b_1=b;b_2=b;
w_1=w;w_2=w;
ts=0.001;
for k=1:1:4000
time(k)=k*ts;
r(k)=0.2*heaviside(2*pi*k*ts);
ym(k)=0.6*ym_1+r(k);
y(k)=(-0.1*y_1+u_1)/(1+y_1^2); %Nonlinear plant for j=1:1:6
h(j)=exp(-norm(x-c(:,j))^2/(2*b(j)*b(j))); end
u(k)=w'*h;
ec(k)=ym(k)-y(k);
dyu(k)=sign((y(k)-y_1)/(u(k)-u_1));
d_w=0*w;
for j=1:1:6
d_w(j)=xite*ec(k)*h(j)*dyu(k);
end
w=w_1+d_w+alfa*(w_1-w_2);
d_b=0*b;
for j=1:1:6
d_b(j)=xite*ec(k)*w(j)*h(j)*(b(j)^-3)*norm(x-c(:,j))^2*dyu(k);
end
b=b_1+d_b+alfa*(b_1-b_2);
d_c=0*c;
for j=1:1:6
for i=1:1:3
d_c(i,j)=xite*ec(k)*w(j)*h(j)*(x(i)-c(i,j))*(b(j)^-2)*dyu(k);
end
end
c=c_1+d_c+alfa*(c_1-c_2);
%Return of parameters
u_1=u(k);
y_1=y(k);
ym_1=ym(k);
x(1)=r(k);
x(2)=ec(k);
x(3)=y(k);
w_2=w_1;w_1=w;
c_2=c_1;c_1=c;
b_2=b_1;b_1=b;
end
figure(1);
plot(time,ym,'r',time,y,'b');
xlabel('time(s)');ylabel('ym,y');
figure(2);
plot(time,u);
xlabel('time(s)');ylabel('Control input');。