嵌入式硬件篇---PID控制


文章目录


前言

以上就是今天要讲的内容,本文简单介绍了连续型PID和离散型PID的原理及各种PID的优缺点。


第一部分:连续PID

PID:

PID控制器,即比例-积分-微分控制器,是一种广泛应用于工业控制系统中的反馈回路控制器。它通过**控制系统的偏差(即设定值与实际值之间的差)**来调节控制变量,使得系统稳定并达到预期的性能指标。PID控制器由以下三个基本控制作用组成:

1.比例(Proportional,P)控制

作用:比例控制的作用与当前偏差 成正比。偏差越大,比例控制作用产生的调节量就越大。

特点:可以快速减少偏差,但不能完全消除静态误差 (即系统稳定后存在的偏差,即系统的实际值和目标值之间恒定存在的差值),如果P过大会导致超调(控制器输出量变化过大)。

参数:比例增益,决定了比例作用的强度。

2.积分(Integral,I)控制

作用:积分控制的作用与偏差的累积量 成正比。只要偏差存在,积分控制就会不断累积,从而产生调节作用。

特点:可以消除静态误差,提高系统的稳态精度,但可能会引起系统的响应速度变慢和超调

参数:积分时间,决定了积分作用的累积速度。

3.微分(Derivative,D)控制

作用:微分控制的作用与偏差变化的速率 成正比。它预测偏差的未来趋势,并提前产生调节作用。

特点:可以减小超调,提高系统的动态性能,对噪声敏感,可能会引起系统的振荡。

参数:微分时间,决定了微分作用的强度。

4.PID的工作原理

PID控制器的工作原理: PID控制器通过以下步骤对系统进行控制:

  1. 测量系统的输出(或过程变量)。
  2. 计算设定值与实际输出之间的偏差。
  3. 根据偏差及偏差的变化率,分别计算出比例、积分、微分三个控制作用。
  4. 将这三个控制作用相加,得到总的控制量。
  5. 利用这个控制量对系统进行调节。

5...实质

  1. 实质:通过改变PWM等的输出值 ,将实际目标参量 始终围绕在设定目标参量附近
  2. 公式:目标值与实际反馈值通过比例、微分、积分计算获得控制器输出值
  3. 示例:带编码器(测量电机的位置和素速度)的直流减速(降低速度、提高扭矩)电机的速度跟踪(不会因为电压波动或者电机负载变化导致的电机速度变化)

6.分析

  1. 首先点明受控对象、目标值、控制器输出值、反馈实际值是谁

  2. 静态误差的存在判断:如果控制器输出量为0,判断控制对象是否会发生自发偏移

  3. 无论是P、I、D参数都是与误差有关(目标值-反馈实际值)

7.各种PID控制器

P控制器

优点

反应快

缺点

存在静态误差,过大会导致振荡输出或者超调

I控制器

优点

反应慢

缺点

不存在静态误差

PI控制器

优点

反应快、没有稳态误差

缺点

没有D项,无法对未来进行预测,因此无法有效控制振荡输出或者超调

D控制器

注意

通常与P控制器或者PI控制器一起使用,不单独使用

优点

对未来进行预测,产生阻碍作用,解决振荡输出或者超调

缺点

过大会导致系统卡顿

第二部分:离散PID

实质:离散PID:将调控周期进行适当控制

分类

1.位置式PID

  1. 位置式PID就是连续型PID离散化后的PID公式,输出完整控制量
  2. 涉及到:本次、上次误差

2.增量式PID

  1. 增量式PID,第k次与第(k-1)次输出结果做差的结果,输出的是控制量的变化值
  2. 涉及到:本次、上次、上上次三次误差量
  3. 注意:增量式PID可以通过控制器内积分的操作实现位置式PID类似的功能

第三部分:额外小知识点

  1. STLINK:给STM32下载程序和调试程序
  2. USB转串口模块:用于STM32与上位机进行通信
  3. 离散型PID的调控周期T:取决于被控制对象的变化速度
  4. STM32等单片机,使用中断操作时,注意中断和主函数内的硬件操作的冲突问题(避免同时进行操作)
  5. PID调试,可以使用串口工具(SerialPlot)显示PID波形。使用串口时,注意适当的延迟作用。

总结

最后使用哪一种PID形式,需要根据自己项目的需求具体来确定


总结

以上就是今天要讲的内容,本文仅仅简单介绍了连续型PID和离散型PID的原理及各种PID的优缺点。

相关推荐
leegong2311139 分钟前
学习PostgreSQL专家认证
数据库·学习·postgresql
楼台的春风1 小时前
【MCU驱动开发概述】
c语言·驱动开发·单片机·嵌入式硬件·mcu·自动驾驶·嵌入式
Moonnnn.1 小时前
51单片机学习——动态数码管显示
笔记·嵌入式硬件·学习·51单片机
大数据追光猿2 小时前
Python应用算法之贪心算法理解和实践
大数据·开发语言·人工智能·python·深度学习·算法·贪心算法
Dream it possible!2 小时前
LeetCode 热题 100_在排序数组中查找元素的第一个和最后一个位置(65_34_中等_C++)(二分查找)(一次二分查找+挨个搜索;两次二分查找)
c++·算法·leetcode
夏末秋也凉2 小时前
力扣-回溯-46 全排列
数据结构·算法·leetcode
南宫生2 小时前
力扣每日一题【算法学习day.132】
java·学习·算法·leetcode
柠石榴2 小时前
【练习】【回溯No.1】力扣 77. 组合
c++·算法·leetcode·回溯
Leuanghing2 小时前
【Leetcode】11. 盛最多水的容器
python·算法·leetcode
qy发大财2 小时前
加油站(力扣134)
算法·leetcode·职场和发展