机器人控制系列教程之控制理论概述

news2024/10/6 4:04:24

经典控制理论

经典控制理论主要研究线性定常系统。所谓线性控制系统是指系统中各组成环节或元件的状态由线性微分方程描述的控制系统。如果描述该线性系统的微分方程系数是常数,则称为线性定常系统。描述自动控制系统输入量、输出量和内部量之间关系的数学表达式称为系统的数学模型,它是分析和设计控制系统的基础。

现代控制理论

经典控制理论虽然具有很大的实用价值,但也有着明显的局限性,表现在下面二个方面:

  1. 经典控制理论建立在传递函数和频率特性的基础上,而传递函数和频率特性均属于系统的外部描述,不能充分反映系统内部的状态;

  2. 无论是根轨迹法还是频率法,本质上是频域法,都要通过积分变换、拉普拉斯变换、傅立叶变换等。因此原则上只适宜解决“单输入一单输出”线性定常系统的问题,对“多输入一多输出”系统就无法解决,对非线性系统更是无能为力。

    现代控制理论正是为了克服经典控制理论的局限性而在20世纪50年代逐步发展起来的。现代控制理论本质上是一种“时域法”。它引入了“状态”的概念,用“状态变量”及“状态方程”描述系统,因而比“频域法”更能反映出系统的内在本质与特性。

控制方法

目前对机器人的运动控制要求越来越趋于精确化、高速化。其主要的控制方法有如下几种:

  1. PID控制:是机器人常采用的一种控制方式,其优点是控制律简单,易于实现,无须建模,常用的有PD和PID控制;

  2. 自适应控制:是根据要求的性能指标与实际系统的性能指标相比较所获得的信息来修正控制规律或控制器的参数,使系统能够保持最优或次最优工作状态的控制方法;

  3. 鲁棒控制:是一种保证不确定系统的稳定性以及达到满意控制效果的控制方法。

  4. 神经网络控制和模糊控制:神经网络和模糊系统具有高度的非线性逼近映射能力,神经网络和模糊系统技术的发展为解决复杂的非线性、不确定及不确知系统的控制开辟了新途径。

  5. 迭代学习控制:是智能控制中具有严格数学描述的一个分支,适合于解决强非线性、强耦合、建模难、运动具有重复性的对象的高精度控制问题。

  6. 变结构控制:其本质上是一类特殊的非线性控制,其非线性表现为控制的不连续性。

除以上几种常见的控制方式之外,还有基于模型的控制、智能控制、反演控制设计等等。

PD控制器

PD控制器是最早发展起来的控制策略,是用于过程控制最有效的策略之一。由于其原理简单、技术成熟,在实际应用中较易于整定,在 工业控制中得到了广泛的应用。其最大的优点是不需了解被控对象精确的数学模型,只需在线更新系统误差及误差的变化率等简单参数,经过经验进行调节器参数在线整定,即可取得满意的结果,具有很大的适应性和灵活性。在PD控制的名称中:P——表示比例、D——表示微分,这意味着可利用偏差的微分值来控制。如果用表示偏差,则PD控制变为:
u ( t ) = K p [ e ( t ) + K d d e ( t ) d t ] u(t) = {K_p}[e(t) + {K_d}{{de(t)} \over {dt}}] u(t)=Kp[e(t)+Kddtde(t)]

控制流程

对于不同的类型的机器人,其基于动力学模型的PD控制其控制过程都是同样的方法和步骤,下面将其进行简单的总结:
1、控制策略。基于动力学的PD控制策略,仅我们在进行机器人控制时的一种最简单的控制策略,但在实际应用中非常广泛,且其他控制策略有很多都是基于该控制策略之上的。
2、机器人结构。本节课程中,我们选用的是一个二自由度的串联机器人,所较为简单,但案例比较经典,在进行其他多自由不同类型的机器人都是一个基础性的知识补充。

模型结构

如下图所示,则为本案例中的模型,为一个二自由度机器人,其坐标系建立、各结构参数表示如图,根据结构参数,可得杆1、杆2的重心为:

将上式进行求导,计算该模型的动能和势能,构造拉格朗日函数,带入拉格朗日方程后,求的动力学模型,可整理为:
τ = M ( q ) q ¨ + C ( q , q ˙ ) q ˙ + G ( q ) \tau = M\left( q \right)\ddot q + C\left( {q,\dot q} \right)\dot q + G\left( q \right) τ=M(q)q¨+C(q,q˙)q˙+G(q)
本案例中的结构参数如下:

基于Simulink搭建的控制仿真系统如下:

结果分析

在设置Kp=10,Kd=10的情况下,系统输入为关节驱动力矩分别为:3N和2N仿真后得到关节1和关节2的角位移图如下:

往期推荐

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

STM32第七课:KQM6600空气质量传感器

文章目录 需求一、KQM6600模块及接线方法二、模块配置流程1.环境2.配置时钟和IO3.配置串口初始化,使能以及中断4.中断函数 三、数据处理四、关键代码总结 需求 能够在串口实时显示当前的VOC(挥发性有机化合物),甲醛和Co2浓度。 …

GPU算力是什么,哪些行业需要用到GPU算力?

近两年,计算能力已成为推动各行各业发展的关键因素。而GPU(图形处理器)算力,作为现代计算技术的重要分支,正逐渐在多个领域展现出其强大的潜力和价值。尚云将简要介绍GPU算力的定义和基本原理,并探讨其在哪…

使用Apache POI库在Java中导出Excel文件的详细步骤

使用Apache POI库在Java中导出Excel文件的详细步骤 学习总结 1、掌握 JAVA入门到进阶知识(持续写作中……) 2、学会Oracle数据库入门到入土用法(创作中……) 3、手把手教你开发炫酷的vbs脚本制作(完善中……) 4、牛逼哄哄的 IDEA编程利器技…

企业中对RAG的优化方案

企业中对RAG的优化方案 RAG优化:检索、语义和生成方面的提升RAG流程一、数据处理优化数据清洗实际案例 二、检索方面优化向量库检索倒排索引数据库检索 三、生成方面优化调整Prompt 四、架构优化RAGAgent架构Self-RAG架构Agentic RAG架构 总结 RAG优化:检…

【Django】网上蛋糕项目商城-热销和新品

概念 本文将完成实现项目的热销和新品两个分类的商品列表进行分页展示。 热销和新品功能实现步骤 在head.html头部页面中点击这两个超链接向服务器发送请求。 在urls.py文件中定义该请求地址 path(goodsrecommend_list/,views.goodsrecommend_list) 在views.py文件中定义g…

mac配置hdc

首先需要找到 .zshrc 文件: 访达进入到user文件夹中,shiftcommand.键显示隐藏文件: 双击打开进行编辑,在最后添加 //HDC_HOME 指的是hdc的绝对路径,要替换成自己的路径 export HDC_HOME/Users/你的名字/Library/Huaw…

系统架构设计师 - 计算机网络(1)

计算机网络 计算机网络TCP/IP 协议簇TCP与UDP ★★★DHCP与DNS ★★★DNS 协议应用DHCP 协议应用 网络规划与设计逻辑设计与物理设计 ★★★★逻辑网络设计物理网路设计 层次化网络设计网络冗余设计 网络存储 ★★网络存储方式磁盘阵列 - Raid 大家好呀!我是小笙&am…

二刷算法训练营Day45 | 动态规划(7/17)

目录 详细布置: 1. 139. 单词拆分 2. 多重背包理论基础 3. 背包总结 3.1 背包递推公式 3.2 遍历顺序 01背包 完全背包 详细布置: 1. 139. 单词拆分 给你一个字符串 s 和一个字符串列表 wordDict 作为字典。如果可以利用字典中出现的一个或多个单…

北大西洋横断面(ANT)项目计划

North Atlantic Transect (ANT) program 简介 - **🗺️ 北大西洋横断面计划 (ANT) 概述** 北大西洋横断面计划 (ANT) 是一个由美国资助的 GEOTRACES 项目,旨在测量非洲海岸沿线的海洋化学参数。该计划收集了有关海水中的溶解氧、营养盐、碳酸盐离子、微…

STM32第八课:Su-03t语音识别模块

文章目录 需求一、SU03T语音识别模块二、模块配置流程1.固件烧录2.配置串口和传输引脚3.中断函数4.double类型转换5 数据发送6.接收处理 三、该模块完整代码总结 需求 基于上次完成空气质量传感器,利用SU03T语音识别模块,实现空气质量的语音问答播报。 …

240622_昇思学习打卡-Day4-ResNet50迁移学习

240622_昇思学习打卡-Day4-ResNet50迁移学习 我们对事物的认知都是一点一点积累出来的,往往借助已经认识过的东西,可以更好地理解和认识新的有关联的东西。比如一个人会骑自行车,我们让他去骑摩托车他也很快就能学会,比如已经学会…

STM32开发方式的演变与未来展望

一、STM32开发方式的演变 自2007年STM32微控制器首次亮相以来,其开发方式经历了从寄存器到标准库,再到HAL(硬件抽象层)的演变。 1.寄存器开发(2007年-2010年代初) 最初,由于初期缺乏足够的软…

Cyuyanzhong的内存函数

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、memcpy函数的使用与模拟实现二、memmove函数的使用和模拟实现三、memset函数与memcmp函数的使用(一)、memset函数(内存块…

Qt creator实现一个简单计算器

目录 1 界面设计 2 思路简介 3 代码 目录 1 界面设计 ​2 思路简介 3 代码 3.1 widget.h 3.2 widget.c 4 完整代码 在这里主要记载了如何使用Qt creator完成一个计算器的功能。该计算器可以实现正常的加减乘除以及括号操作,能实现简单的计算器功能。 1 界…

.NET使用CsvHelper快速读取和写入CSV文件

前言 在日常开发中使用CSV文件进行数据导入和导出、数据交换是非常常见的需求,今天我们来讲讲在.NET中如何使用CsvHelper这个开源库快速实现CSV文件读取和写入。 CsvHelper类库介绍 CsvHelper是一个.NET开源、快速、灵活、高度可配置、易于使用的用于读取和写入C…

Spring Boot集成vavr快速入门demo

1.什么是vavr? 初闻vavr,感觉很奇怪,咋这个名字,后面看到它的官网我沉默了,怀疑初创团队付费资讯了UC震惊部如何取名字,好家伙,vavr就是java这四个字倒过来,真的是’颠覆’了java……

如何成为-10x工程师:反向教学大数据开发实际工作中应如何做

10x 工程师可能是神话,但 -10x 工程师确实存在。要成为 -10x 工程师,只需每周浪费 400 小时的工程时间。结合以下策略: 目录 如何使 10 名工程师的输出无效化改变需求大数据开发示例 创建 400 小时的繁忙工作任务示例大数据开发示例 创建 400…

心理辅导平台系统

摘 要 中文本论文基于Java Web技术设计与实现了一个心理辅导平台。通过对国内外心理辅导平台发展现状的调研,本文分析了心理辅导平台的背景与意义,并提出了论文研究内容与创新点。在相关技术介绍部分,对Java Web、SpringBoot、B/S架构、MVC模…

Unable to get expected results using BM25 or any search functions in Weaviate

题意:使用 Weaviate 中的 BM25 或任何搜索函数都无法获得预期结果 问题背景: I have created a collection in Weaviate, and ingested some documents into the Weaviate database using LlamaIndex. When I used the default search, I found that it…

高精度除法的实现

高精度除法与高精度加法的定义、前置过程都是大致相同的,如果想了解具体内容,可以移步至我的这篇博客:高精度加法计算的实现 在这里就不再详细讲解,只讲解主体过程qwq 主体过程 高精度除法的原理和小学学习的竖式除法是一样的。 …