前言

在学习PID中发现有许许多多的优化,例如抗饱和,变速积分,积分分离等,在实际工程开发中又如何去选取,如何根据问题去选择相关的优化算法。

该文只是记录开发过程中的一些问题和想法,如果有错误的地方请多多指正。

应用场景

硬件:大疆GM6020电机、STM32F4

需求:1. 速度环—实现手动控制;2.位置环—达到指定位置,电机启停自锁。

算法:增量式PID;基于PID的各种优化方法。

PID算法概述

PID控制器即比例、积分、微分控制器,该算法以误差作为输入量,经过比例,积分,微分三项加权求和后得到输出量。PID控制器不需要精确的系统模型就能使用,属于闭环控制的一种,应用十分广泛。

PID公式

关于PID的介绍网上已有很多,想了解的可看下面几个博客:

之前对PID只有最基本的了解,在实际应用中总会遇到积分饱和、微分冲击等问题,针对这些问题不少前辈对PID提出了的各种优化算法,下面列出的只是我查阅的部分优化,也是实际中比较常见的。

PID优化算法

控制算法概述

整个电机控制算法如下图所示,后续将详细介绍速度环,位置环中的优化和实现,其中应用到一部分上面列出的PID优化算法。

  • 串级PID(位置环+速度环)

其中位置环与速度环的区别主要是输入的反馈不同,一个是电机的位置,另一个是电机的速度。

位置环:

位置式PID、速度平滑、减速过程

速度环:

增量式PID、变速积分、积分死区

下一篇将介绍开发过程中对速度环的优化过程,将对增量式PID和积分的优化展开介绍。