AGV移动机器人PID运动控制

news2024/12/24 9:33:51

PID算法基本原理

PID算法是控制行业最经典、最简单、而又最能体现反馈控制思想的算法,PID算法利用反馈来检测偏差信号,并通过偏差信号来控制被控量。而控制器本身就是比例、积分、微分三个环节的加和。其功能框如图1所示:

 考虑在某个特定的时刻t,此时输入量为rin(t),输出量为rout(t),于是偏差就可计算为err(t)=rin(t)-rout(t)。于是PID的基本控制规律就可以表示为如下公式:

其中Kp为比例带,TI为积分时间,TD为微分时间。当得到系统的输出后,将输出经过比例、积分、微分3种运算方式,叠加到输入中,从而控制系统的行为。

比例就是用来对系统的偏差进行反应,所以只要存在偏差,比例就会起作用。积分主要是用来消除静差,静差是指系统稳定后输入输出之间依然存在的差值,而积分就是通过偏差的累计来抵消系统的静差。微分则是对偏差的变化趋势做出反应,根据偏差的变化趋势实现超前调节,提高反应速度。

AGV采用的是两级PID串联的形式:

其中第一层控制车轮速控制,AGV采用左右两轮差速控制,车速控制采用的是增量式PID控制,PID的输出为实际电机的PWM输出增量,输入为电机实际要到达的速度,通过编码器实时检测电机转速仅反馈,控制模型如图2所示:

第二层控制为AGV的寻磁位置控制,AGV通过寻磁模块检测AGV在磁导线上的偏移,根据AGV的车速,输出AGV应该输出的左右轮差速值,最终和AGV本身的车速PID控制进行串联调控,实现AGV的寻磁调控,其AGV的整体控制模型如下图3所示。

 

 PID算法的基本特点

 前面讲述并且实现了PID控制器,包括位置型PID控制器和增量型PID控制器。界限来我们对这两种类型的控制器的特点作一个简单的描述。

位置型PID控制器的基本特点:

  1. 位置型PID控制的输出与整个过去的状态有关,用到了偏差的累加值,容易产生累积偏差。
  2. 位置型PID适用于执行机构不带积分部件的对象。
  3. 位置型的输出直接对应对象的输出,对系统的影响比较大。

增量型PID控制器的基本特点:

  1. 增量型PID算法不需要做累加,控制量增量的确定仅与最近几次偏差值有关,计算偏差的影响较小。
  2. 增量型PID算法得出的是控制量的增量,对系统的影响相对较小。
  3. 采用增量型PID算法易于实现手动到自动的无扰动切换。

 速度环PID实现

智慧工厂的AGV系统主要有三大部分组成,从下到上依次为AGV本体,AGV网关,和AGV调度系统。AGV本部分主要负责的是AGV定位和控制。AGV网关主要负责AGV的调度和AGV数据的转发(上位机可以控制多个AGV)。而AGV调度系统主要负责的与工厂自动化相关的工艺环节,比如对工厂的路径进行规划,对AGV的ID进行设置,接收工厂管理控制系统(MES系统)的命令,并且进行命令的转换和发送。

寻磁模块PID实现

寻迹部分控制就根据寻磁模块的信获取到AGV当前的姿态(方位角)。并且根据目标值(中心位置0)进行比较,得到控制偏差,然后通过对偏差的比例、积分、微分进行控制,使偏差趋向于零的过程。

Actual+=Kp[e(k)-e(k-1)]+Ki*e(k)+Kd[e(k)-2e(k-1)+e(k-2)]

e(k)本次偏差

e(k-1)上一次的偏差

e(k-2)上上次的偏差

Actual左右轮电机的差速量

PID参数选定规则

 参数调整一般规则

由各个参数的控制规律可知,比例P使反应变快,微分D使反应提前,积分I使反应滞后。在一定范围内,P,D值越大,调节的效果越好。各个参数的调节原则如下:

1、在输出不振荡时,增大比例增益P。

2、在输出不振荡时,减小积分时间常数Ti。

3、输出不振荡时,增大微分时间常数Td。

PID控制器参数整定的方法

1)理论计算整定法。它主要是依据系统的数学模型,经过理论计算确定控制器参数。这种方法所得到的计算数据未必可以直接用,还必须通过工程实际进行调整和修改。

2)工程整定方法,它主要依赖工程经验,直接在控制系统的试验中进行,且方法简单、易于掌握,在工程实际中被广泛采用。

PID控制器参数的工程整定方法,主要有临界比例法、反应曲线法和衰减法。三种方法各有其特点,其共同点都是通过试验,然后按照工程经验公式对控制器参数进行整定。现在一般采用的是临界比例法。

利用该方法进行PID控制器参数的整定步骤如下:

(1)首先预选择一个足够短的采样周期让系统工作。

(2)仅加入比例控制环节,直到系统对输入的阶跃响应出现临界振荡,记下这时的比例放大系数和临界振荡周期。

(3)在一定的控制度下通过公式计算得到PID控制器的参数。 

 参数调整一般步骤

1)确定比例增益。

P确定比例增益P时,首先去掉PID的积分项和微分项,一般是令Ti=0、Td=0,PID为纯比例调节。

输入设定为系统允许的最大值的60%~70%,由0逐渐加大比例增益P,直至系统出现振荡。

再反过来,从此时的比例增益P逐渐减小,直至系统振荡消失,记录此时的比例增益P,设定PID的比例增益P为当前值的60%~70%。比例增益P调试完成。

2)确定积分时间常数Ti。

比例增益P确定后,设定一个较大的积分时间常数Ti的初值,然后逐渐减小Ti,直至系统出现振荡,之后在反过来,逐渐加大Ti,直至系统振荡消失。记录此时的Ti,设定PID的积分时间常数Ti为当前值的150%~180%。积分时间常数Ti调试完成。

3)确定微分时间常数Td。

微分时间常数Td一般不用设定,为0即可。若要设定,与确定P和Ti的方法相同,取不振荡时的30%。

4)系统空载、带载联调,再对PID参数进行微调,直至满足要求。

PID调参常用口诀

PID的参数设置可以参照以下来进行:  

参数整定找最佳,   从小到大顺序查:

先是比例后积分,   最后再把微分加

曲线振荡很频繁,   比例度盘要放大

曲线漂浮绕大湾,   比例度盘往小扳

曲线偏离回复慢,   积分时间往下降

曲线波动周期长,   积分时间再加长

曲线振荡频率快,   先把微分降下来

动差大来波动慢,   微分时间应加长

理想曲线两个波,   前高后低4比1

一看二调多分析,   调节质量不会低

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

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

相关文章

C语言-指针进阶(9.1)

目录 思维导图: 1. 字符指针 2. 指针数组 3. 数组指针 3.1 数组指针的定义 3.2 &数组名VS数组名 3.3 数组指针的使用 4. 数组传参和指针传参 4.1 一维数组传参 4.2 二维数组传参 4.3 一级指针传参 4.4 二级指针传参 写在最后 思维导图:…

年底赶进度,如何将开发风险降到最低?

1、科学规划风险策略和控制流程 针对开发流程各环节中可能存在的风险,项目经理需要进行项目风险分析,并制定符合项目特点的风险评估和监督机制,实行岗位负责制,提前制定好控制策略,将开发风险降到最低。 如何将开发风险…

分布式基础篇2——分布式组件

一、SpringCloud Alibaba1、简介2、为什么使用3、版本选择4、依赖选择二、SpringCloud Alibaba 组件1、Nacos作为注册中心2、OpenFeign3、Nacos作为配置中心namespaceData IDGroup同时加载多个配置文件三、Spring Cloud1、GateWay简介三大核心部分网关的使用视频来源: 【Java项…

Ansible剧本流程控制

handlers触发器 notify:监控上面的模块执行是否发生变化 chufa:自定义的任务名称,自动去handlers里面匹配相对应的任务名称执行动作 下方是copy了/data/copy/下的文件到server2组里的主机/data/monster/handlers/下,notify监控发…

如何下载指定版本的xcode

如何下载指定版本的xcode一、安装最新版本xcode二、下载指定版本xcode一、安装最新版本xcode 从苹果商店中获取并安装即可。 但是安装最新版有个风险,就是它有系统版本的要求,比如这里要求macOS版本最低是12.5 如果版本不够的话,可以升级系统…

【蓝桥杯基础题】2020年省赛填空题—既约分数

👑专栏内容:蓝桥杯刷题⛪个人主页:子夜的星的主页💕座右铭:前路未远,步履不停 目录一、题目背景二、题目描述三、题目分析1.求最大公约数①辗转相减法②穷举法③辗转相除法④辗转相除法(递归&am…

LVGL之学习篇(一)

LVGL之学习篇(一) 学习目的 LVGL简介 LVGL本身是一个图形库,前身是litterVGL。其作者是来自匈牙利的Gabor Kiss-Vamosikisvegabor,LVGL用C语音编写,以实现最大的兼容性(与C兼容),模拟器可在没有嵌入式硬件的PC上启动嵌入式GUI设计…

MATLAB实验三

实验三 (实验报告中附上每题的主要程序和结果) 1、在命令行窗口中分别输入下列命令,对应输出结果是 A.命令x[-2:2] B.命令xzeros(1,2);x>0 C.命令ydiag(eye(3),1) D.命令[-2:2]30*eye(…

内存分页机制

文章目录内存分页的原因一级页表分页机制的原理一级页表二级页表二级页表概述地址转换启动分页机制内存分页的原因 在还未出现内存分页机制之前,我们都内存分段机制下工作。 但是,这样会有个问题。来看个下方的例子。 进程在分段机制下运行 下图&…

【学习记录】ORBSLAM2均匀化策略源码解析

在ORBSLAM中,为了保证特征的均匀分布使用了均匀化的策略,最近在尝试扩展一下均匀化的内容,所以仔细看了一下ORBSLAM源码里面这部分的内容,之前看源码的时候没有展开仔细看这一部分的代码,这里补充记录一下,…

未来SSD的接口趋势是什么?

针对SSD接口标准,目前业内有两大组织:PCI-SIG:这个就是定义pcie协议标准的那个组织,我们常见的传统接口M.2, U.2, 2.5英寸的接口都归这个组织定义规范。M.2,U.2起源与客户端,也是企业级当前最常用的接口形式…

elasticdump迁移ES数据详解

文章目录elasticdump 简介1.elasticdump导入ES数据到本地json文件2、将本地数据导入es中3、将es导入另一个es4 .其他参数使用--searchBody使用--searchBody 向本机ES导数据使用--typeanalyzer导出分析器elasticdump 简介 elasticdump是一个能够将es的数据快速导入、导出、迁移…

最新最全-中文生物医学命名实体识别最新研究论文、资源、数据集、性能整理分享

本资源旨在跟踪中文生物医学自然语言处理的进展,收集整理相关的论文列表和展示现存方法性能。内容整理自网络,源地址:https://github.com/lingluodlut/Chinese-BioNLP中文电子病历命名实体识别中文电子病历命名实体识别(Chinese C…

《操作系统-真象还原》阅读总结/遗憾离场/加倍努力 出人头地

文章目录关于我又被老天算计奇奇怪怪的 BUG调试 BUG 的心理历程最后两天通宵调试程序的宵夜阅读建议本书所有笔记最后关于我又被老天算计 从 2022-09-14 读这本书,原计划是 2022-12-15 之前完成的,我自信能完成,因为11月下旬我已经开始阅读第…

【Linux】初识进程

文章目录进程控制块的引入初识进程控制块(PCB - Process Control Block)什么是PCBLinux下的PCB初见进程ps指令查看进程kill指令挂掉进程通过系统调用接口得到进程的ID(进程标识符)从根目录下的proc文件查看进程通过fork函数创建子进程进程控制块的引入 首先,听到进…

事故复盘 | 对不同的ID更新操作竟然也引发死锁?

对不同的ID更新操作竟然也引发死锁? 文章目录对不同的ID更新操作竟然也引发死锁?背景分析初步分析 - 怀疑程序并发问题进一步分析 - 怀疑主键缺失行级锁失效再进一步分析 - 是否存在死锁条件解决方案复盘附录示例的死锁日志常用故障排查 SQL参考链接背景…

webassembly学习

webassemblywebassembly学习基本理论webassembly介绍wasm介绍基本信息wasm会替换javascript么ASM.js(wasm的前身)将 WebAssembly 作为编程语言的一种尝试wasm应用场景wasm运行原理周边生态WASI 操作系统接口wasi介绍wasmwasi(服务端&#xff…

平台总线式驱动开发——基本框架

1. 总线、设备和驱动 硬编码式的驱动开发带来的问题: 垃圾代码太多结构不清晰一些统一设备功能难以支持开发效率低下 1.1 初期解决思路:设备与驱动分离 struct device来表示一个具体设备,主要提供具体设备相关的资源(如寄存器地…

ES为什么要移除types类型

文章目录elasticsearch(集群)中可以包含多个索引index(数据库) ,每个索引中可以包含多个类型types(表) ,每个类型下又包含多个文档Document(行) ,每个文档中又包含多个字段Field&…

姿态估计评价指标

PCK 正确估计出关键点的百分比 (Percentage of Correct Keypoints),现在已基本不用。 PCKik∑iδ(did≤Tk)∑i1PCK_i^k\frac{\sum_i\delta(\frac{d_i}{d}\leq T_k)}{\sum_i1} PCKik​∑i​1∑i​δ(ddi​​≤Tk​)​ 检测出的关键点与其对应…