找回密码
 注册
关于网站域名变更的通知
查看: 145|回复: 0
打印 上一主题 下一主题

【飞控开发基础教程10】疯壳·开源编队无人机-PID 基础原理

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2022-7-15 11:47 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
COCOFLY教程
——疯壳无人机·系列
PID 基础原理
. G2 @9 A! s8 P( q4 _

8 S. U, s" h% ?$ W$ D$ X+ t8 z5 b5 z; L+ E' a
   
" Q) A7 b5 k8 I! c    图12 N/ ~# W; ~8 i
6 Q# s, c% B$ s4 `' U

/ s" m3 U6 _9 V! M2 X1 N    一、PID 简介
) X1 D1 O( N2 l  v; |4 ?8 b# _( ?    PID 控制是自动控制系统中最常用的一种控制手段,它的诞生主要是为了解决自动控制系统的快、稳、准的问题。  Q8 N, ]9 a' ^. h0 L" z
    PID 控制中的 P 指的是 Proportion(比例),即对输入的偏差乘以一个系数; I 指的是 Integral(积分),即对输入偏差进行积分运算;而 D 指的是 Derivative(微分),即对输入偏差进行微分运算。通过比例、积分、微分结合适当的反馈就可以形成一套稳定的闭环调节系统。如下图所示为 COCOFLY 的 PID 控制器的结构图。4 ~; `0 \( c. b
( P' v7 T# U; k/ h
    . x- b4 m, A( A/ Y: v
    图2
" P( K( c- t1 F) K. [' w6 Z& z7 i6 w    其中期望角度(高度)由遥控器提供,角度环(高度环)以及角速度环(高速度环)由 PID 代码处理,STM32 输出四路 PWM 到无人机的电机控制端口, IMU(惯性测量单元)以及飞行姿态提供反馈值。
/ [; B% X- N$ E8 {, z( [    二、PID 控制原理' l/ w8 [7 v5 N; l1 [6 ]
    PID 控制的过程,其实是不断纠正偏差的过程,其中的偏差=当前被控对象的反馈值-设定的期望值。) |3 y- t0 H, N4 d
    这里举一个比较简单又经典的 PID 控制的例子,比如需要控制一个机器人以 PID 的方式向前行走 110 步,然后停下来。此时这个 110 步则是设定的期望值。7 [! s% P. a+ i- ?. j2 a" G: l
    如果按照 P 比例控制,也就是控制机器人按照一定的比例走,然后停下。比如比例系数为 108,则走一次就走了 108 步,再走一次的话就超过 110 步了,所以就不走了。从这里可得知 P 比例控制是一种最简单的控制方式,控制器的输出与输入误差信号成比例关系。但是仅有比例控制时系统输出存在稳态误差。比如上面的只能走到 108,或者超过 108 步,无论怎样都走不到 110。$ Y$ o: `4 |/ J2 W$ R8 S# `
    为了消除稳态误差,在控制器中必须引入“积分项 I”。积分项对误差的影响取决于时间的积分,随着时间的增加,积分项会增大。这样,即便误差很小, 积分项也会随着时间的增加而加大,它推动控制器的输出增大,从而使稳态误差进一步减小,直到等于 0。即在“积分项 I”控制中,控制器的输出与输入误差信号成正比关系,且比例+积分(PI)控制器可以使系统在进入稳态后无稳态误差。4 g& @0 X  v. r) _7 g2 I
    也就是说,如果按照 PI(比例、积分)控制的方式,则是控制机器人按照一定的步伐走到 112 步然后回头接着走,走到 108 步位置时,然后又回头向 110# X- t8 m% c# F# v9 ]# O# Q* E
    步位置走。在 110 位置处来回晃荡几次,最后停在 110 步的位置。
" f. e& l1 Y: h" B+ U: \* {    微分项,主要用于预判误差变化的趋势从而作出对应的改变。在自动控制系统在克服误差的调节过程中可能会出现振荡甚至失稳,原因是存在较大惯性组件(环节)或滞后组件,具有抑制误差的作用,其变化总是落后于误差的变化。解决的办法是使抑制误差作用的变化“超前”,即在误差接近于零时,抑制误差的作用就应该是零。这就是说,在控制器中仅引入“比例 P”项往往是不够的, 比例项的作用仅是放大误差的幅值,而目前需要增加的是“微分项”,它能预测误差变化的趋势。这样,具有比例+微分的控制器就能够提前使抑制误差的控制作用等于零,甚至为负值,从而避免了被控量的严重超调。所以对有较大惯性或滞后的被控对象,比例 P+微分 D(PD)控制器能改善系统在调节过程中的动态特性。
; r# F* x1 K2 ]: q9 H8 I, i    也就是说,如果按照 PD 比例、微分控制的方式,则为控制机器人按照一定的步伐走到一百零几步后,再慢慢地走向 110 步的位置靠近,如果最后能精确停# ?' J* i  G# W* k4 ~$ N  O
    在 110 步的位置,就是无静差控制;如果停在 110 步附近(如 109 步或 111 步位置),就是有静差控制。由此得知在微分控制 D 中,控制器的输出与输入误差信号的微分(即误差的变化率)成正比关系。
, }0 G! Q+ K, u" I  M    前面说到 PID 是为了解决自动控制系统中的快、稳、准的问题的。其中那么他们之间的关系以及对应调节参数是什么呢?如下表所示。8 |: H# B7 Z" K( D7 R

# D. q9 M% y0 y0 D: u4 v2 e
; c. \  A# [0 F3 L* O     . D- K: W; f" I9 f0 Y, w$ R  t( k
    表1/ K2 k0 \, ~; c) w
; `/ Z, Q6 v( G1 x( Q" {
    三、PID 代码结构
1 n! s( d9 h4 t    在飞控系统中 PID 是极为重要的一环,在 COCOFLY 飞控系统中也多处应用到了 PID 主要集中在 AltCtrl.c、Ctrl.c 中。如下图所示为高度环 PID 控制源码。
; D6 A: A7 e8 o; `- r6 j7 q: n
# ]  n! z' B' o" J ! `% J9 m3 X! T! `) O& Z
   
2 P! {- H, }2 G6 `6 n% \9 b' [    图3
7 l& L, [& K, G" k" r7 y, m/ G* K    如下图所示为高度速度环 PID 控制源码。
* l+ B8 c* @( |* S
4 d' m( \' O, r6 z2 _  i5 ^- v3 h/ ~    , X' a' S# N9 g& Z' B. |& Q
    图4
& E) s; Y- b# K* T    如下图所示为角度环 PID 控制源码。$ s, E/ y1 F  J1 M; }
1 k! I) U, m" o0 d7 J' g
   0 _/ o9 N) M* f7 z
    图5        ! w3 [& |. l% S& \+ _9 \8 B! J( M
    如下图所示为角速率环 PID 控制源码。
( i" B$ t9 C  q0 w1 L' e. r
& ^" x& l0 u4 [, x* q8 ^6 p    8 c: B5 d( A# C/ E
    图6+ E+ A( Y! _0 s: l# e1 H" l
# [$ k! z3 x! N1 h5 @

0 A, h8 p7 _9 R3 f& r6 Y5 v! T: ^: t
8 [; k2 ?  q+ o9 R1 R4 K

- B" o: R( N  Q" n) F; |; f9 e3 p( x2 q7 W
更多完整学习资料和对应开源套件,请登陆官网:“疯壳”
/ [: h7 F9 U1 [6 [3 y5 e, R0 h2 g- g. S3 b* j( K
    文件下载请点击:    【10】PID基础原理.pdf (764.78 KB, 下载次数: 2)
! Z9 _" P) T+ Q) V( }7 i. q/ P* c! m( J" ?0 K% p$ H
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-10-29 06:15 , Processed in 0.156250 second(s), 27 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表