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

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

AGV移动机器人PID运动控制相关推荐

  1. 全向移动小车运动控制_三轮全向移动机器人的运动控制

    三轮全向移动机器人的运动控制 彭亚雪 ; 王尊 ; 杨婷君 [期刊名称] <南方农机> [年 ( 卷 ), 期] 2019(050)006 [摘要] 移动机器人是一种可以自动执行工作的机器 ...

  2. AGV移动机器人无人叉车控制器设计

    AGV控制器是为移动机器人(AMR.智能叉车等)设计的通用控制器,为移动机器人提供地图构建.定位导航.模型编辑等核心功能. 本方案将移动机器人的核心组件集成于一体,配合功能强大的客户端软件 ,可帮助用 ...

  3. 【应用案例】AGV小车的运动控制方案

    前言 为了提高生产力和优化物流,越来越多的公司实现了内部物流的自动化.因此自动导引运输车 (AGV) 到自主移动机器人 (AMR)出现在大家的视野里,工厂车间和仓库正在发生变化. 然而,初始投资和安全 ...

  4. 轮式移动机器人的运动控制入门

    ref:https://blog.csdn.net/robinvista/article/details/104582045 目的 轮式移动机器人(主要针对汽车)的镇定和跟踪控制理论和方法入门. 1 ...

  5. 基于工业树莓派的AGV机器小车控制系统

    前言 2020年爆发的疫情放大了人在自然风险下的脆弱性,也进一步地促进了AGV等自动化设备在各行领域的应用.自动导向小车(AGV)是一种移动机器人,主要用来储运各类物料,为系统柔性化.集成化.高效运行 ...

  6. 移动机器人设计与实践-基础概念汇总

    如下全文在关键词提示词等脚本交互下,由文图版本生成式人工智能在1分钟内创作完成. AI自动生成文章评分已经远超大部分博文评分值. 人类社会经历过农业时代(最强代表汉唐)-工业时代(最强代表日不落帝国) ...

  7. 最新|移动机器人导航定位技术概述

    前言 目前工业界广泛落地使用的移动机器人,除了应用场景在餐厅.酒店.超市等小范围室内送餐机器人和消毒机器人外,另外一个"大赛道"应用场景就是在工厂.制造装配车间.电站或车站的物流搬 ...

  8. 分拣外观残缺的机器人_复合机器人AGV+协作机器人的应用领域

    什么是复合机器人? 复合型机器人是一种集成AGV移动机器人和通用工业机器人两项功能为一身的机器人.在工业领域,通用工业机器人被称为机械臂或者机械手,主要是替代人胳膊的抓取功能;而AGV移动机器人是替代 ...

  9. Simulink移动机器人仿真学习--Trick记录

    1.前记: 记录的目的是学习,也期望阅读者有所收获便足矣.这次的记录算是Simscape Mutibody Modeling学习--移动多体模型中的物体(2)中的一次续写.不过重点不是关于多体建模的, ...

最新文章

  1. 在ASP.NET中跨页面实现多选
  2. 设置 mock_【学习】接口测试-使用mock生产随机数据
  3. 设计一个处理两种类型地址的地址簿程序_编译器设计-符号表-中间代码生成
  4. 不用计算实现 图片懒加载
  5. Citrix xenapp
  6. 淘宝登货员1.02(重要升级)
  7. 为什么Linux下的环境变量要用大写而不是小写
  8. HbuilderX 左侧项目栏文件位置和打开的文档同步(对应显示) - 设置篇
  9. Gephi实战教程:从零开始
  10. 详解哈夫曼树和哈夫曼编码
  11. 分布式mysql cobar_Mysql分布式中间件:Cobar server
  12. EM78P153单片机构成433MHz发射电路
  13. VIM复制指令yank
  14. opencv进行简单的裂缝检测
  15. Linux设备驱动---OMAP3630 Linux I2C总线驱动分析(2)
  16. mobot_room.world-ROS2Gazebo9附1
  17. 【RDMA】LRH和GRH InfiniBand标头(LRH and GRH InfiniBand Headers)
  18. 很多人认为网站58同城上市是及格
  19. 13款宝马x5质量到底怎么样_宝马X5质量怎么样?它的小毛病很多吗?真实车主来给你答案!...
  20. java 静态链接_java如何调用静态链接库里面的函数?

热门文章

  1. 树莓派入门之—树莓派3B+不支持ExFAT格式而启动不了的解决方案
  2. PXE启动配置及原理
  3. busybox的实现原理分析(C语言实现简易版的busybox)
  4. sapjco3使用详解
  5. APP接入微信支付流程
  6. cgroups的实现
  7. android 键盘隐藏监听,安卓监听软键盘弹出与隐藏的两种方法
  8. spyglass使用教程
  9. k8s学习笔记——ceph rbd本地手动挂载
  10. java定义接口区分飞机和汽车_JAVA菜鸟入门篇 - 抽象类、接口 (十九)