如何用PID算法,操控无人机悬停?
2023-08-12 16:18:53来源:个人图书馆-TopSemic嵌入式

做控制时,大家经常会有这样的感受“代码很丰满,现实很骨感”,这是因为将计算机指令转移到实际硬件时,由于物体的惯性以及各种非理想化的因素影响,往往会出现实际与预期不符合的情况。

这篇文章将以“操控遥控飞机从地面飞到10米高度并悬停”为例子,用最通俗易懂的方式,让你理解PID。在这个问题中,我们假设加速度是可以直接调控的(实际生活中往往也是这样),因此,我们输入的量为加速度的大小和方向(正负),而我们最终想要得到的结果就是高度稳定在10米。


(资料图片)

首先我们来讲控制方法:

控制方法主要分为“开环控制”和“闭环控制”,这两种控制方法的简单理解为:

开环控制:计算出飞机从地面到10米高度所需要的加速度以及作用时间,然后将其编写为一条固定的指令,“一次执行,全过程受益”。

闭环控制:在飞机飞行的过程中,系统时刻关注飞机的状态,并做出相应的调整。而PID控制就是最常用的闭环控制。

PID原理

一讲到原理,很多人都会搬出PID公式,数学较好或者学过自控的人还好,要是遇见一个半路转行做控制的,看见“微分”和“积分”,头都大了。其实,由于生活中信号采样具有一定的间隔,因此我们经常遇见的都是离散信号的控制,只需要读懂下图即可:

实践出真知(python实现PID)

3.1 导入包

`#添加扰动disturbance=-1.5control_signal+=disturbance

因此,要想消除这个干扰,就需要积分环节的加入。

4.3 积分环节

积分环节的公式为KI × 误差累计和,用官方的语言来说,用来调整“稳态误差”,其实,所谓的稳态误差就可以理解为“一直存在的误差”,也就是在本次实验中加入的持续干扰!以下是当KP=5、KD=10、KI=0.1的测试结果:

从这次的测试中,我们看出,得到了几乎完美的结果!

总结

对于PID参数调节,认准3个点:

P:大力出奇迹

I:消除持续存在的误差

D:“中和”用力过猛,减少波动

标签:

下一篇: 最后一页
上一篇: 鹤峰农业农村局开展农村宅基地管理督查工作

相关新闻

保险时讯