阻抗控制下机器人接触刚性环境振荡不稳定进行阻抗调节

       在阻抗控制下,当机器人接触刚性环境时,可能会出现振荡不稳定的情况。这可以通过调整机器人的阻抗参数来进行调节。

阻抗接触

       阻抗参数中的质量、阻尼和刚度都会对机器人控制系统的性能和稳定性产生重要影响。质量主要影响系统的惯性,从而影响响应速度和稳定性;阻尼则可以抑制系统的振荡,提高系统的稳定性;而刚度则表示系统抵抗变形的能力,过大的刚度可能导致系统不稳定。在设计和调整控制系统时,需要考虑这些参数的影响,并根据实际需求进行合理的选择和调整。  

在阻抗控制模式下,机器人接触刚性环境时会引起接触振荡,主要原因可以从阻抗参数的角度进行分析。首先,阻抗控制是一种基于系统动态特性的控制方法,通过调整系统的阻抗参数,实现对机器人与环境之间交互的精确控制。在接触刚性环境时,机器人会受到来自环境的反作用力,这种反作用力可能会引起机器人的振动。

  1. 当阻尼参数较小时:机器人对外界力的响应比较缓慢,系统呈现出欠阻尼状态。此时,如果机器人受到来自环境的反作用力,由于阻尼较小,机器人无法迅速消耗这种能量,导致振荡的出现。
  2. 当阻尼参数较大时:机器人对外界力的响应比较迅速,系统呈现出过阻尼状态。此时,虽然机器人能够迅速响应外界力,但由于阻尼较大,机器人对外界力的响应比较敏感,容易受到微小扰动的影响,也可能会出现振荡。
  3. 当刚度参数较小时:机器人的刚度较低,对外界力的抵抗能力较弱。在接触刚性环境时,机器人可能会发生较大的变形,这种变形可能引起机器人的振动。
  4. 当刚度参数较大时:机器人的刚度较高,对外界力的抵抗能力较强。在接触刚性环境时,机器人虽然不会发生较大的变形,但由于刚度较大,机器人对外界力的响应可能过于敏感,也可能会出现振荡。

       虽然这种振荡可能会对机器人的性能产生不利影响,但并不一定意味着机器人是不稳定的。在阻抗控制中,通常会使用一些稳定性判据来评估机器人的稳定性,如李雅普诺夫稳定性判据等。如果机器人在受到扰动后能够恢复稳定状态,那么这种振荡就不算是真正的不稳定性行为。

刚性环境为ke=10000

虚拟阻抗为:kd=100,bd=10,md=1

虚拟阻抗为:kd=100,bd=10,md=5

虚拟阻抗为:kd=100,bd=10,md=10

性能滤波函数的Bode图:

bode(1e5/(0.0005*s^2+5*s+1))

bode(5e4/(0.1*s^2+3*s+1))

性能低通滤波调参

1e5/(1*s^2+3*s+1)

1e5/(1*s^2+5*s+1)

1e5/(1*s^2+10*s+1)

1e5/(2*s^2+3*s+1)

1e5/(2*s^2+1*s+1)

1e5/(3*s^2+1*s+1)

1e5/(4*s^2+1*s+1)

1e5/(1.5*s^2+0.9*s+1)

1e4/(1.2*s^2+0.8*s+1)

1e4/(0.1*s^2+0.8*s+1)

1e4/(0.1*s^2+0.1*s+1)

kd=10,bd=100

1e4/(0.01*s^2+0.1*s+1)

Wp = 1e3/(0.01*s^2+0.01*s+1)

Wp = 1e3/(0.001*s^2+0.01*s+1);

精度与鲁棒性的抉择!!!

1.5e4/(0.08*s^2+0.1*s+1)

8e3/(0.08*s^2+0.1*s+1)

5e3/(0.08*s^2+0.08*s+1)

5e3/(0.1*s^2+0.01*s+1)

————————————————————————————————————————

低阻抗模式下的刚性接触

1e5/(0.0005*s^2+5*s+1)

纯弹簧接触

kd=10

直接发散了!!!

kd=100

没有发散,但是刚性冲击过程振荡现象较为明显,这不是所期望的!!!

kd=1000

kd=10000

物极必反,刚度过大会引起较大振荡,意思是类似于两个纯刚体进行碰撞,势必会引起较大的振荡!!!

kd=100000

但阻抗实现性能就会很弱!!!

kd=1000000

粘弹性接触

kd=10,bd=1

kd=10,bd=10

说明增大阻尼起到了减小震荡的作用。

kd=10,bd=15

kd=10,bd=20

kd=10,bd=100

Kd = 100; Bd = 10 

Kd = 100; Bd = 100

Kd = 100; Bd = 1000

呈现质量-阻尼-弹簧动态

Kd = 10; Bd = 10 ; Md = 0.01;

Kd = 10; Bd = 10 ; Md = 0.1;

Kd = 10; Bd = 10 ; Md = 1;

Kd = 10; Bd = 10 ; Md = 2;

————————————————————————————————————

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

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

相关文章

调试文心大模型或chatgpt的function Calling函数应用场景

沉默了一段时间,最近都在研究AI大模型的产品落地应用,我觉得这个function calling出来后,对目前辅助办公有革命性的改变,可以它来做什么呢?我们先来调试看看,chatgpt和文心大模型的ERNIE Bot支持这个&#…

Python自动化测试PO模型封装过程详解

在自动化中, Selenium 自动化测试中有一个名字经常被提及 PageObject( 思想与面向对象的特征相 同 ) ,通常 PO 模型可以大大提高测试用例的维护效率 优点:可重用,业务和对象分离,代码结构清晰,方便代码维护 核心要素 …

数字化智慧工地管理云平台源码(人工智能、物联网)

​智慧工地优势:"智慧工地”将施工企业现场视频管理、建筑起重机械安全监控、现场从业人员管理、物料管理、进度管理、扬尘噪声监测等现场设备有机、高效、科学、规范的结合起来真正实现工程项目业务流与现场各类监控源数据流的有效结合与深度配合,…

【一周安全资讯1202】信安标委发布《网络安全标准实践指南—网络安全产品互联互通 告警信息格式》;网络安全纳入注册会计师考试科目

要闻速览 1、信安标委发布《网络安全标准实践指南—网络安全产品互联互通 告警信息格式》 2、南昌某高校学生个人信息在境外公开出售,警方抓获学校"内鬼" 3、网络安全纳入注册会计师考试科目 4、乌克兰情报机构网攻俄罗斯民航局,称俄民航业正…

swiper/vue 获取 swiper实例方法

在Vue3中使用swiper/vue&#xff0c;如何获取swiper的组件实例&#xff1f; 在项目中使用到 swiper/vue&#xff0c;想调用slideTo方法&#xff0c;发现通过refs的方法&#xff0c;拿不到swiper实例。 <template><swiperref"swiperRef"class"promoti…

合并一个文件夹下的多个txt文件,并对文本内容分列处理。

python 合并一个文件夹下的多个txt文件&#xff0c;并对文本内容分列。 原始文件&#xff1a; 最终结果&#xff1a; import pandas as pd import xlwt import pandas as pd from sqlalchemy import create_engine import pandas as pd import os import glob dirPath g…

k8s(二):Pod

Pod pod 是K8s中最小的可部署单元&#xff0c;用于容纳一个或多个容器。Pod为容器提供了一个共享的环境&#xff0c;包括网络命名空间、存储卷和IP地址。 pod的阶段(phase) Pending: Pod 已被 Kubernetes 系统接受&#xff0c;但有一个或者多个容器尚未创建亦未运行。此阶段包…

【已解决】Win10端口被占用

​ 我总是在启动项目的时候失败&#xff0c;被告知端口号被占用&#xff0c;明明没有被占用(可能是系统卡了或者其它问题)&#xff0c;但是又不想改端口号&#xff0c;或者重启电脑&#xff0c;那怎么办呢&#xff1f; 第一步&#xff1a;打开命令行窗口&#xff0c;以管理员…

【 六袆 - Framework】ActiveMQ in windows安装;

介绍 This document describes how to install and configure ActiveMQ for both Unix and Windows’ platforms. 预安装 ActiveMQ5.16版本对应JDK ActiveMQ版本JDK版本5.16JDK8(推荐)5.17JDK96.0JDK17 Windows Binary Installation This procedure explains how to down…

mvc模式test

项目结构 Book.java package beans; public class Book {private Integer id;private String name;private double price;public Integer getId() {return id;}public void setId(Integer id) {this.id id;}public String getName() {return name;}public void setName(Strin…

不会代码(零基础)学语音开发(语音播报板载双按键状态)

这个例程实现语音播报VDB-150S语音开发板板载的按键开关SW1、SW2的按下情况。 语音开发板将板载的按键开关SW1、SW2的一端都接到了GND端&#xff0c;另一端分别连接到语音模块的GPIO_B0、GPIO_B1引脚&#xff0c;当按下SW1时GPIO_B0引脚会输入低电平&#xff0c;当按下SW2时GP…

老师可以做副业吗

当老师&#xff0c;除了教学工作之外&#xff0c;还可以怎样来丰富自己的职业体验和增加收入呢&#xff1f; 自媒体作者 许多教师选择成为自媒体作者&#xff0c;分享自己的教育心得、教学经验以及与学生相处的生活状态等。通过撰写文章、发布在社交媒体上&#xff0c;不仅可以…

213. 打家劫舍 II --力扣 --JAVA

题目 你是一个专业的小偷&#xff0c;计划偷窃沿街的房屋&#xff0c;每间房内都藏有一定的现金。这个地方所有的房屋都 围成一圈 &#xff0c;这意味着第一个房屋和最后一个房屋是紧挨着的。同时&#xff0c;相邻的房屋装有相互连通的防盗系统&#xff0c;如果两间相邻的房屋在…

Objaverse:大规模3D模型开放数据集

研究人员推出了 Objaverse&#xff0c;这是一个“包含文本描述的3D 对象的海量开放数据集”。 它包含大约 800 000 个 3D 模型以及文本描述。 Objaverse数据集可以从huggingface下载&#xff0c;并且是通过 Sketchfab&#xff08;Epic Games 旗下的在线平台&#xff09;上共享…

LightDB - 支持 last_day 函数[mysql兼容]

从 23.4 开始 LightDB 支持 mysql 的 last_day 函数。 目前LightDB 实现last_day的与mysql 并不完成相同&#xff0c;会在示例中列举出不同点, 主要是以下几点&#xff1a; 对于错误日期mysql返回null&#xff0c;lightdb 是直接报错对于一些特殊日期&#xff0c;lightdb 不支…

Backend - Python 序列化

目录 一、作用1&#xff1a;代码块存入数据库 二、作用2&#xff1a;前后端传递数据 &#xff08;一&#xff09;前端 1. JSON.stringify() 2. JSON.parse() &#xff08;二&#xff09;后端 1. json.dumps() &#xff08;1&#xff09;作用 &#xff08;2&#xff09…

algo-多数排序

多数排序在leetcode只是一个简单题&#xff0c;但是衍生出来的多种解法却非常有意思 首先是最容易想到的hash和排序算法&#xff0c;接着是 随机化 从概率来讲一个随机挑选一个元素并验证都很大概率是众数 func majorityElementRandom(nums []int) int {n : len(nums)mc : …

RAM、ROM、flash、eMMC

RAM&#xff1a;Random-Access Memory的缩写&#xff0c;意思为“随机存取存储器” ROM&#xff1a;Read-Only Memory的缩写&#xff0c;意思为“只读存储器” 总体来看&#xff1a;都是存储器 最大区别&#xff1a;ROM可以在停止供电的时候仍然保存着数据&#xff1b;RAM在…

又有狗咬娃!江西8岁男童买早餐被狗扑咬,满脸血缝了90多针!

位于江西省吉安市吉安县实验小学门口&#xff0c;一名年仅8岁的男童在去买早餐的路上遭遇了一场恐怖的袭击。据报道&#xff0c;孩子是在清晨的买早餐路上被一只恶狗扑倒咬伤的&#xff0c;伤口深可见骨。 孩子的母亲悲痛欲绝地描述了当时的情景&#xff0c;孩子被咬伤后躺在地…