物联网技术
直播中

carey123

10年用户 1521经验值
擅长:可编程逻辑 嵌入式技术
私信 关注
[问答]

机器人设计中PID控制的编程方法是什么?

什么是PID控制?
机器人设计中PID控制的编程方法是什么?

回帖(1)

郭燕

2021-6-30 15:02:11
  怎样对机器人进行有效控制,除了设计合理的硬件系统外,软件的编程是非常重要的一个方面,下面通过机器人设计中的几个术语解释来简单介绍机器人设计中PID控制的编程方法。
  PID控制: 比例积分微分控制器(PID控制器)是控制机器人的常用方法。PID理论将帮助您为机器人设计更好的控制方程。
  这里显示的是基本的闭环(一个完整的循环)控制图:
  
  控制系统的要点是让你的机器人执行器(或任何真正的)做你想做的事。。。嗯。。。失控。传感器(通常是执行机构上的一个 编码器)将决定什么是变化,你写的程序定义了最终结果应该是什么,执行器实际上是做出了改变。另一个传感器可以感知环境,给予机器人更高级别的感觉。
  术语 为了帮助您入门,您需要了解以下几个术语:
  错误 - 错误是您的设备没有正确执行某个操作的数量。例如,如果您的机器人时速为3英里,但您希望时速为2英里,则误差为3mph-2mph = 1mph。或者假设你的机器人位于x = 5,但是你想要x = 7,那么错误是2.如果没有错误,控制系统就不能做任何事情 - 想想看,如果你的机器人正在做你想做的事情,它不需要控制!
  比例(P) - 比例项通常是错误。这通常是你想要的机器人旅行的距离,或者你想要的东西的温度。机器人在A位置,但是想要在B位置,所以P项是A - B.
  导数(D) - 导数项是指在设定的时间段(t)内的误差变化。例如,误差是C之前,现在是D,t时间已经过去了,那么微分项是(CD)/ t。使用微控制上的计时器 来确定时间。
  积分(I) - 积分项是在一段时间(t)内累积的误差。例如,你的机器人一直在平均下降一定的时间,我的期限会抓住它。假设在t1时刻,误差是A,在t2时刻是B,在t3时间是C.积分项是A / t1 + B / t2 + C / t3。
  调整常量(增益) - 每个项(P,I,D)都需要在代码中进行调整。关于一个机器人有很多事情是非常难以数学模型(地面摩擦,电机电感,质心,ducktape举行你的机器人在一起等)。通常情况下,最好是建立机器人,实施一个控制方程,然后调整方程,直到它正常工作。一个调整常数只是一个你猜测的数字,你可以用多个项来表示。例如,Kd是微分常数。理想情况下,您希望调整的时间足够长,以使您的建立时间尽可能短,但又足够低,以免发生过冲。
  P * Kp + I * Ki + D * Kd
  
  你在这个图像中看到的是典型的PID机器人会发生什么。它将从一些错误开始,执行器输出将会改变,直到错误消失(接近最终值)。这种情况发生的时间被称为建立时间。更短的沉降时间几乎总是更好。通常情况下,您可能无法正确设计系统,系统会变化太快以至于超调(坏!),从而导致一些振荡,直到系统稳定。通常会有一些错误带。误差带取决于您的设计能够控制的精度 - 您必须将机器人编程为忽略误差范围内的误差,否则可能会发生振荡。无论系统多么先进,总会有一个错误带。
  忽略可接受的错误带示例:
  如果错误《=0.000001 //主观确定可接受
  那么错误=0; //忽略它
  完整的PID方程 组合上面的所有内容,这里是完整的PID方程:
  Actuator_Output = Kp * P + Ki * I + Kd * D
  或容易理解的条款:
  Actuator_Output =
  tweakA *(距目标距离) + tweakB *(误差变化) + tweakC *(累计误差)
  简化 调整PID控制器的好处在于,您不需要对形式控制理论有一个很好的理解就可以做出相当好的工作。大多数的控制情况只需要一个小时左右的时间就可以完成。
  更好的是,你很少需要这个积分项。那是正确的,只是删除并忽略它!你唯一需要这个词的时候是加速度对你的机器人来说是一个很大的因素。如果你的机器人真的很重,或者重力不在它的一边(比如陡峭的山丘),那么你将需要积分项。但是在我所编程的所有机器人中,只有两个机器人需要一个完整的术语 - 两个机器人都超过30磅,要求极高的精度(毫米或更小的误差带)。没有积分项的控制通常简称为PD控制。
  还有一些时候,你不需要衍生术语,但通常只有当设备机械稳定自身,以非常低的速度工作,以避免超调发生,或者你不需要很好的精度。
  采样率问题
  采样率是控制算法可以自行更新的速度。采样率越快,机器人的精度控制就越高。较慢的采样速率会导致较高的建立时间,并增加过冲(坏)的机会。为了提高采样率,您希望更快地更新传感器读数,并使程序循环的延迟最小化。无论如何,在机器离开桌子之前,让机器人对变化的环境做出反应是件好事。人类也受到采样率问题的困扰(显然喝酒会降低采样率,谁会猜到?)。
  经验法则是采样时间应该在期望的系统建立时间的1/10和1/100之间。对于典型的自制机器人,您希望采样速率大约为20 + /秒(对于当今的微控制器非常合理)。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分