基于指数趋近律的机器人滑模轨迹跟踪控制算法及MATLAB仿真

本文主要是介绍基于指数趋近律的机器人滑模轨迹跟踪控制算法及MATLAB仿真,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 

机械手是工业制造领域中应用最广泛的自动化机械设备,广泛应用于工业制造、医疗、军工、半导体制造、太空探索等领域。它们虽然形式不同,但都有一个共同的特点,即能够接受指令,并能准确定位到三维(或二维)空间的某一点进行工作。由于其在3D打印、喷漆机器人、汽车制造等领域的广泛应用,机器人的控制显得尤为重要。而滑模变结构控制SMC由于其快速的瞬态响应和对不确定性和扰动的鲁棒性,在机器人控制领域受到了广泛的关注。

 

问题描述

机器人轨迹跟踪控制问题可以描述为: 给定一个参考轨迹,找到一个容许控制u,使得实际的关节角度与参考的关节角度误差最小,从而使得机械臂末端轨迹跟踪上参考轨迹。

 

理论分析

1滑模控制基础概念

1.1滑模控制定义

滑模控制(SMC)也称为可变结构控制,本质上是一种特殊的非线性控制,其非线性性能是控制的不连续性。该控制策略与其他控制的区别在于“结构”系统的状态不是固定的,但是在动态过程中,它可以根据系统的当前状态(例如偏差和其导数)有意地进行更改,从而迫使系统以预定的“滑动模式”状态轨迹运动。滑模的设计可以不受对象参数和干扰的影响,滑模控制具有响应速度快,对参数变化和干扰不敏感,无需在线系统识别,物理实现简单等优点。通过不连续控制有意改变系统结构将相位轨迹驱动到稳定的超平面或流形的系统。不受干扰和参数变化

1.2滑模趋近律

滑模控制下的系统一般分为两个阶段:

(1)从系统初始状态到滑模面;

(2)在滑模面上滑模到达系统平衡点;

2.将趋近律引入到(1)阶段设计中,对(2)阶段设计快速终端滑模。2.“全局”、“快速”、“终端滑模”中的“全局”表示滑模没有(1)阶段,因此不使用趋近定律。

4个基本趋近律表达如下:

 

(1)等速趋近律:

 

aa3f552fe4bed380f6f7da8e10abdaff.png

(2)指数趋近律

 

66ef10a61ebdae78150a08d1711b9302.png

(3)幂次趋近律

 

dfa7d5c8d781eaeb836742be6441cc99.png

(4)一般趋近律

 

64de6fa1e568e959bfea17e313bd3c07.png

 

3基于指数趋近律的模糊滑模控制

3.1 基于指数趋近律的滑模控制

由牛顿欧拉公式得n自由度机器人关节空间动力学方程为:

34613724317330e653f278e3d758c4ca.png

设系统误差为:

6b6928e40720213aa06abccc871d53f0.png

则误差的微分得:

962d980a79dd0252d6c28d5ad19030dc.png

选择滑模函数为:

eb8316161a4882aa6a10ea2b27888348.png

则对滑模函数s求导得:

4132d539b7187f9560c3a33ba398011b.png

因为系统方程可变形为:

63eb970371cdf1605b878cd1aadba6ab.png

所以:

ddd39dd65a420394807e215ddb2ac993.png

选取指数趋近律为:

0dc813ce54874d7a441f9b5c919f9d74.png

所以基于指数趋近律可设计u,将两公式合并:

67a023d6b9e064fa69fd021c64e736de.png

则控制律u为:

d62c4c1e60a3d7fa31b6488af246dbd8.png

已知只要得到滑模平面(切换面s)和滑动模态的控制律u,滑动变结构控制就能完全建立起来。

下面证明其滑模平面稳定存在滑动模态:

第一步:取李雅普诺夫函数

a9f2cd8056f8b3ba64f95f8da2b4a0cb.png

由于

69cf7ba4ed6c3ad94a30775f10ea153e.png

所以V是正定(PD)

第二步:对李雅普诺夫函数求导得:

fff7e0f50113347885d33f21614201e1.png

由此可知,上述设计的滑模变结构控制器满足要求。

为更直观的分析所设计的滑模控制器的优劣,对控制系统进行仿真分析如下:

 

4e97cc23a2dd97c45555154a9b627dd1.png

 

图1.三自由度机械臂

根据拉格朗日功能平衡法,建立其动力学模型。由于是比较常见的三自由度机器人模型,这里可以查找教科书或文献参考

MATLAB仿真程序

其simulink建模框图如图2所示:

4f73818a4c4cf50dee6ae0079d9a601a.png

图2 控制系统simulink框图

机器人动力学MATLAB仿真程序:

function [sys,x0,str,ts]=s_function(t,x,u,flag)switch flag,case 0,    [sys,x0,str,ts]=mdlInitializeSizes;case 1,    sys=mdlDerivatives(t,x,u);case 3,    sys=mdlOutputs(t,x,u);case {2, 4, 9 }    sys = [];otherwise    error(['Unhandled flag = ',num2str(flag)]);endfunction [sys,x0,str,ts]=mdlInitializeSizessizes = simsizes;sizes.NumContStates  = 6;sizes.NumDiscStates  = 0;sizes.NumOutputs     = 6;sizes.NumInputs      = 3;sizes.DirFeedthrough = 0;sizes.NumSampleTimes = 0;sys=simsizes(sizes);x0=[0.6;0.3;0.5;0.5;0.5;0.5];str=[];ts=[];function sys=mdlDerivatives(t,x,u)q1=x(1);dq1=x(2);q2=x(3);dq2=x(4);q3=x(5);dq3=x(6);m1=0;m2=1;m3=1;L1=0;L2=1;L3=1;g=10;I1=0;I2=0;I3=0;a1=m2*L2^2+m3*L2^2;a2=m3*L3^2;a3=m3*L3^2;b1=(m2*L2+m3*L2)*g;b2=m3*L3*g;M11=I1+a1*(cos(q2))^2+a2*cos(q2+q3)+2*a2*cos(q2)*cos(q2+q3);M12=0;M13=0;M21=0;M22=I2+a1+a2+2*a3*cos(q3);M23=a2+a3*cos(q3);M31=0;M32=a2+a3*cos(q3);M33=I3+a2;M=[M11 M12 M13;   M21 M22 M23;   M31 M32 M33];B11=-(1/2)*a1*dq2*sin(2*q2)-a3*dq3*cos(q2)*sin(q2+q3)-(1/2)*a2*(dq2+dq3)*sin(2*q2+2*q3)-a3*dq2*sin(2*q2+q3);B12=-(1/2)*a1*dq1*sin(2*q2)-a3*dq1*sin(2*q2+q3)-(1/2)*a2*dq1*sin(2*q2+2*q3);B13=-a3*dq1*cos(q2)*sin(q2+q3)-(1/2)*a1*dq1*sin(2*q2+2*q3);B21=-B12;B22=-a3*dq3*sin(q3);B23=-a3*(dq2+dq3)*sin(q3);B31=-B13;B32=-a3*dq2*sin(q3);B33=0;B=[B11 B12 B13;   B21 B22 B23;   B31 B32 B33];G1=0;G2=b1*cos(q2)+b2*cos(q2+q3);G3=b2*cos(q2+q3);G=[G1;G2;G3];tol(1)=u(1);tol(2)=u(2);tol(3)=u(3);ddq=inv(M)*(tol'-B*[dq1;dq2;dq3]-G);sys(1)=x(2);sys(2)=ddq(1);sys(3)=x(4);sys(4)=ddq(2);sys(5)=x(6);sys(6)=ddq(3);function sys=mdlOutputs(t,x,u)sys(1)=x(1);sys(2)=x(2);sys(3)=x(3);sys(4)=x(4);sys(5)=x(5);sys(6)=x(6);

则各关节跟踪响应如图3所示

f2609651575eeb44693121e307afeef0.png

图3.各关节跟踪响应

轨迹跟踪误差如图4所示

4a5dba69b8d28d1d9af465721a91967f.png

图4.轨迹跟踪误差

滑模面如图5所示

83004eca106b372c8e86a699e3e717fc.png

图5.滑模面

控制力矩如图6所示

f8d37230f667e600b1dff8632eaab761.png

图6.控制力矩

总结

由以上仿真结果可以看出,基于趋近律的滑模轨迹跟踪控制器在系统复杂的环境下,能够对系统的轨迹跟踪进行有效的控制,然而,其基于趋近律的滑模轨迹跟踪控制方法存在着严重的抖振,还是有待改进!

 

更多信息请关注:DRobot

 

这篇关于基于指数趋近律的机器人滑模轨迹跟踪控制算法及MATLAB仿真的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/181215

相关文章

时序预测 | MATLAB实现LSTM时间序列未来多步预测-递归预测

时序预测 | MATLAB实现LSTM时间序列未来多步预测-递归预测 目录 时序预测 | MATLAB实现LSTM时间序列未来多步预测-递归预测基本介绍程序设计参考资料 基本介绍 MATLAB实现LSTM时间序列未来多步预测-递归预测。LSTM是一种含有LSTM区块(blocks)或其他的一种类神经网络,文献或其他资料中LSTM区块可能被描述成智能网络单元,因为

青龙面板2.9之Cdle傻妞机器人编译教程

看到有的朋友对傻妞机器人感兴趣,这里写一下傻妞机器人的编译教程。 第一步,这里以linux amd64为例,去官网下载安装go语言安装包: 第二步,输入下方指令 cd /usr/local && wget https://golang.google.cn/dl/go1.16.7.linux-amd64.tar.gz -O go1.16.7.linux-amd64.tar.gz

MATLAB算法实战应用案例精讲-【数模应用】三因素方差

目录 算法原理 SPSSAU 三因素方差案例 1、背景 2、理论 3、操作 4、SPSSAU输出结果 5、文字分析 6、剖析 疑难解惑 均方平方和类型? 事后多重比较的类型选择说明? 事后多重比较与‘单独进行事后多重比较’结果不一致? 简单效应是指什么? 边际估计均值EMMEANS是什么? 简单简单效应? 关于方差分析时的效应量? SPSSAU-案例 一、案例

鹅算法(GOOSE Algorithm,GOOSE)求解复杂城市地形下无人机避障三维航迹规划,可以修改障碍物及起始点(Matlab代码)

一、鹅算法 鹅优化算法(GOOSE Algorithm,GOOSE)从鹅的休息和觅食行为获得灵感,当鹅听到任何奇怪的声音或动作时,它们会发出响亮的声音来唤醒群中的个体,并保证它们的安全。 参考文献 [1]Hamad R K, Rashid T A. GOOSE algorithm: a powerful optimization tool for real-world engineering

基于NURBS曲线的数据拟合算法matlab仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 4.1NURBS曲线基础 4.2 数据拟合原理 5.完整程序 1.程序功能描述        基于NURBS曲线的数据拟合算法,非均匀有理B样条(Non-Uniform Rational B-Splines,简称NURBS)曲线是一种强大的数学工具,广泛应用于计算机图形学、CAD/CA

基于动力学的六自由度机器人阻抗恒力跟踪控制

1.整个代码的控制流程图如下: 2.正逆运动学计算 略 3.动力学模型 采用拉格朗日法计算机械臂的动力学模型,其输入的是机械臂的关节角度、角速度和角加速度;其中M、C、G本别是计算的惯性力、科式力和重力项,相关部分如下: 4.RBF神经网络自适应参数调节 采用RBF自适应调节阻抗控制器参数,末端每个方向单独进行参数的调整,其中rbf的输入的是力和位置,输出的是阻抗控制器的参数,rb

matlab sift算法使用的记录

最近在做个三维建模的东西,用到了sift算子,需要在matlab上使用。网上介绍使用了 David Lowe的源代码。源码地址为: http://www.cs.ubc.ca/~lowe/keypoints/ 在使用的过程中,会出现以下错误: 不知道是为什么,在一片博客中看到图像大小大致要800*600的说明,我就猜想是不是因为我的图像太大了。原始图像3000*1200的,于是我就把图

基于RAG的知识库AI代理机器人,问题思考

基于RAG的知识库AI代理机器人,问题思考 知识库内容分类 对于普通非qa问答格式的知识内容 在分段存储时,需要手动调整,保证每个分段的内容意思完整,不被分割,当然段落也不宜过长,保证内容表达的意思到不可分割为止就行 对于qa问答格式的知识内容 通常需要对问题增加格外索引,因为fastgpt的模式是将问题和回答,作为完整的文本作为向量化的坐标,当问题和回答的内容过长时,使用问题向量化匹配

详细解析MATLAB和Simulink中的文件格式:mat, mdl, mexw32, 和 m 文件

matlab 探索MATLAB和Simulink中的文件格式:MAT, MDL, MEXW32, 和 M 文件**MAT 文件 (.mat)****MDL 文件 (.mdl)****MEX 文件 (.mexw32/.mexw64)****M 文件 (.m)****总结** 探索MATLAB和Simulink中的文件格式:MAT, MDL, MEXW32, 和 M 文

Matlab中巧用LaTex

Matlab图形中title、xlabel、ylabel、zlabel、textbox和legend等的Interpreter属性有三个属性:latex 、tex、none。默认为tex。 当键入:>> set(text,'Interpreter') Matlab将返回'Interpreter'所包含的属性值: [ latex | {tex} | none ]。 利用Matlab文本的Interp