基于指数趋近律的机器人滑模轨迹跟踪控制算法及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

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/152407.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

NoSQL之Redis 主从复制配置详解及哨兵模式

目录 1 Redis 主从复制 1.1 主从复制的作用 1.2 主从复制流程 2 搭建Redis 主从复制 2.1 安装 Redis 2.2 修改 Redis 配置文件(Master节点操作) 2.3 修改 Redis 配置文件(Slave节点操作) 2.4 验证主从效果 3 Redis 哨兵模…

PHP 伪协议:使用 php://filter 为数据流应用过滤器

文章目录 参考环境PHP 伪协议概念为什么需要 PHP 伪协议? php://filter概念格式 基本使用普通读写file_get_contents 与 file_put_contentsinclude 过滤器的基本使用base64 的编码与解码rot13 加解密rot13 算法string.rot13 过滤器列表多个过滤器的使用注意事项 处理…

TensorFlow案例学习:对服装图像进行分类

前言 官方为我们提供了一个 对服装图像进行分类 的案例,方便我们快速学习 学习 预处理数据 案例中有下面这段代码 # 预处理数据,检查训练集中的第一个图像可以看到像素值处于0~255之间 plt.figure() # 创建图像窗口 plt.imshow(train_images[0]) # …

【RabbitMQ】初识消息队列 MQ,基于 Docker 部署 RabbitMQ,探索 RabbitMQ 基本使用,了解常见的消息类型

文章目录 前言一、初识消息队列 MQ1.1 同步通信1.2 异步通信1.3 MQ 常见框架及其对比 二、初识 RabbitMQ2.1 什么是 RabbitMQ2.2 RabbitMQ 的结构 三、基于 Docker 部署 RabbitMQ四、常见的消息类型五、示例:在 Java 代码中通过 RabbitMQ 发送消息5.1 消息发布者5.2…

软件测试「转行」答疑(未完更新中)

⭐ 专栏简介 软件测试行业「转行」答疑: 如果你对于互联网的职业了解一知半解!不知道行业的前景如何?对于众说纷纭的引流博主说法不知所措!不确定这个行业到底适不适合自己? 那么这一篇文章可以告诉你所有真实答案&a…

【网络安全】关于CTF那些事儿你都知道吗?

关于CTF那些事儿你都知道吗? 前言CTF那些事儿内容简介读者对象专家推荐 本文福利 前言 CTF比赛是快速提升网络安全实战技能的重要途径,已成为各个行业选拔网络安全人才的通用方法。但是,本书作者在从事CTF培训的过程中,发现存在几…

<el-input> textarea文本域显示滚动条(超过高度就自动显示)+ <el-input >不能正常输入,输入了也不能删除的问题

需求&#xff1a;首先是给定高度&#xff0c;输入文本框要自适应这个高度。文本超出高度就会显示滚动条否则不显示。 <el-row class"textarea-row"><el-col :span"3" class"first-row-title">天气</el-col><el-col :span&…

Selenium进行无界面爬虫开发

在网络爬虫开发中&#xff0c;利用Selenium进行无界面浏览器自动化是一种常见且强大的技术。无界面浏览器可以模拟真实用户的行为&#xff0c;解决动态加载页面和JavaScript渲染的问题&#xff0c;给爬虫带来了更大的便利。本文将为您介绍如何利用Selenium进行无界面浏览器自动…

如何绘制Top级美图?20+案例分享

如何绘制Top级美图&#xff1f;20案例分享 #R语言绘图128个 #图表美化47个 工欲善其事&#xff0c;必先利其器&#xff01; R语言绘图爱好者赶紧看过来&#xff01;画图时选择称手的R包&#xff0c;是高效绘制美图的First Step&#xff01;今天分享一波科研美图绘制所需R包…

TensorFlow入门(九、张量及操作函数介绍)

在TensorFlow程序中,所有的数据都由tensor数据结构来代表。即使在计算图中,操作间传递的数据也是Tensor tensor在TensorFlow中并不是直接采用数组的形式,它只是对TensorFlow中计算结果的引用。也就是说在张量中并没有真正保存数字,它保存的是如何得到这些数字的计算过程 一个…

WebSocket ----苍穹外卖day8

介绍 实现步骤 各个模块详解 OnOpen OnOpen:标记一个方法作为处理WebSocket连接打开的方法 当一个客户端与服务器建立 WebSocket 连接时&#xff0c;服务器会接收到一个连接请求。一旦服务器接受了这个连接请求&#xff0c;一个 WebSocket 连接就会被建立。这时&#xff0c;被…

Git仓库迁移记录

背景&#xff1a;gitlab私服上面&#xff0c;使用 import project的方式&#xff0c;从旧项目迁移到新地址仓库&#xff0c;但是代码一直没拉过去。所以使用命令的方式&#xff0c;进行代码迁移。 第一步&#xff1a;使用git clone --mirror git地址&#xff0c;进行代码克隆 …

如何让 Llama2、通义千问开源大语言模型快速跑在函数计算上?

作者&#xff1a;寒斜 阿里云智能技术专家 「本文是“在 Serverless 平台上构建 AIGC 应用”系列文章的第一篇文章。」 前言 随着 ChatGPT 以及 Stable Diffusion&#xff0c;Midjourney 这些新生代 AIGC 应用的兴起&#xff0c;围绕 AIGC 应用的相关开发变得越来越广泛&…

【一周安全资讯1007】多项信息安全国家标准10月1日起实施;GitLab发布紧急安全补丁修复高危漏洞

要闻速览 1.以下信息安全国家标准10月1日起实施 2.GitLab发布紧急安全补丁修复高危漏洞 3.主流显卡全中招&#xff01;GPU.zip侧信道攻击可泄漏敏感数据 4.MOVEit漏洞导致美国900所院校学生信息发生大规模泄露 5.法国太空和国防供应商Exail遭黑客攻击&#xff0c;泄露大量敏感…

三模块七电平级联H桥整流器电压平衡控制策略Simulink仿真

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

竞赛选题 深度学习 YOLO 实现车牌识别算法

文章目录 0 前言1 课题介绍2 算法简介2.1网络架构 3 数据准备4 模型训练5 实现效果5.1 图片识别效果5.2视频识别效果 6 部分关键代码7 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 基于yolov5的深度学习车牌识别系统实现 该项目较…

Linux虚拟机克隆之后使用ip addr无法获取ip地址

Linux虚拟机克隆之后使用ip addr无法获取ip地址 因为克隆得到的虚拟机&#xff0c;与原先的linux系统是一模一样的包括MAC地址和IP地址。需要修改信息。 设置IP地址&#xff1a; 使用vi命令打开linux的网卡 //ifcfg-enth0是虚拟网卡的名称&#xff0c;如果你的不叫这个名字&a…

[数据结构]迷宫问题求解

目录 数据结构——迷宫问题求解&#xff1a;&#xff1a; 1.迷宫问题 2.迷宫最短路径问题 数据结构——迷宫问题求解&#xff1a;&#xff1a; 1.迷宫问题 #include <stdio.h> #include <string.h> #include <stdlib.h> #include <assert.h> #includ…

拼多多API接口的使用方针如下:

了解拼多多API接口 拼多多API接口是拼多多网提供的一种应用程序接口&#xff0c;允许开发者通过程序访问拼多多网站的数据和功能。通过拼多多API接口&#xff0c;开发者可以开发各种应用程序&#xff0c;如店铺管理工具、数据分析工具、购物比价工具等。在本章中&#xff0c;我…