当前位置: 首页 > news >正文

【PID控制技术】

PID控制技术

    • 简介
    • 控制原理
      • 相关术语
      • 调参技巧
      • 相互作用
    • 相似算法
      • 与PWM对比
    • 应用范围
      • 优缺点
      • 硬件支持

简介

PID控制是一种在工业过程控制中广泛应用的控制策略,其全称是比例-积分-微分(Proportional Integral Derivative)控制。它的基本原理是根据期望值与实际值的比较,产生一个误差信号,然后对这个误差信号进行比例、积分和微分三个环节的处理,以产生一个控制信号,最后用这个控制信号去调节被控对象的输出,以达到减小误差、提高控制精度的目的。

控制原理

假设我们有一个小车,我们希望通过控制其电机转速来达到一个目标轨迹。我们可以通过以下步骤来实现这个目标:

设定目标:我们设定一个目标轨迹,比如从A点移动到B点,需要小车按照这个轨迹行驶。
采集数据:我们使用编码器等传感器来测量小车的实际位置和速度,并与目标轨迹进行比较,得出偏差。
比例控制:根据偏差的大小,我们通过比例控制器来调整电机的转速。比如,如果小车偏离目标轨迹,我们可以通过增加电机的转速来使小车回归到目标轨迹。这是比例控制器的功劳。
积分控制:除了比例控制外,我们还需要考虑偏差的累积。如果小车在偏离目标轨迹后一直未回归,那么比例控制器将不断调整电机的转速,使小车回归目标轨迹。这是积分控制器的功劳。
微分控制:除了比例和积分控制外,我们还需要考虑偏差的变化率。如果小车即将偏离目标轨迹,我们可以提前调整电机的转速,使小车提前回归目标轨迹。这是微分控制器的功劳。
通过以上步骤,我们就成功地利用PID控制器来控制小车的电机转速,使其按照我们设定的目标轨迹行驶。

相关术语

偏差:这是期望状态与当前状态的差异,通过眼睛(观测器)观测得到。例如,小车编码电机中,偏差=目标值转速(编码器值)-编码器采集值。
比例控制:根据比例增益,计算比例调整量P = Kp * error。比例增益(Kp)是调节控制器输出的一个参数,error是当前状态和目标状态之间的差值。
积分控制:根据积分增益,计算积分调整量I = Ki * ∫(error dt)。积分增益(Ki)是另一个调节控制器输出的参数,∫(error dt)表示error在时间上的累积。
微分控制:根据微分增益,计算微分调整量D = Kd * d(error)/dt。微分增益(Kd)是调节控制器输出的又一个参数,d(error)/dt表示error随时间的变化率。
PID控制器是一种线性控制器,它通过负反馈调节过程来达到目标值,如水温的恒温控制,电机转速控制,舵机打角控制等。PID控制过程就是给定目标值,观察实际值,得出偏差,然后根据偏差进行比例、积分、微分控制,并将这些控制量作用于被控对象上,使其达到并在给定值附近稳定。

调参技巧

  1. 首先给大家简单介绍一下PIDPID就是通过系统误差利用比例、积分、微分计算出控制量进行控制的。不同厂家的公式稍有不同,但是基本上都离不开三个参数:比例、积分时间、微分时间。
  2. 采样周期在进行PID调节之前要先设定好PID的采样周期,采样周期设定主要根据被控对象的特性决定。被控对象变化快的(如:流量),可将采样周期设定在100ms左右,采样周期变化慢的(如:液位)可将采样周期设定在1000ms,对于特别缓慢的(如:温度)可设置成5-10S。简单的理解是多长时间比较一次采样值与设定值。当然需要注意的是,采样周期必须大于程序的执行周期(PLC的运行周期)。
  3. 比例比例作用是依据偏差的大小来动作.比例有时又被称为增益用Gain表示,当控制量与被控量成正比例关系时(例如:阀位与流量)增益为正数;当控制量与被控量成反比例关系时(例如:液位与频率)增益。
  4. 积分时间积分时间是PID参数的关键之一。它的主要作用是消除系统的稳态误差。积分时间通常需要通过实验和经验来确定,它与系统的采样周期和滞后时间有关。在选择积分时间时,需要权衡系统的稳定性和响应速度。较小的积分时间可能会导致系统频繁振荡,而较大的积分时间则会降低系统的响应速度。
  5. 微分时间微分时间是PID参数中反应系统未来误差的重要因素。微分时间的设定需要考虑系统的动态性能和稳定性。较大的微分时间有助于减小系统的动态误差,但可能会导致系统稳定性降低。微分时间的设定需要经验丰富的工程师进行调试,通常可以通过试错法进行确定。
  6. 比例、积分、微分三者之间的关系比例、积分和微分三者之间存在密切的关系。比例调节是快速的,但它不能消除稳态误差。积分调节可以消除稳态误差,但需要牺牲系统的响应速度。微分调节可以预测未来的误差,但需要避免系统出现振荡。在调整PID参数时,需要综合考虑三者之间的关系,以实现系统的最佳控制效果。
    7.PID调试过程中的注意事项在调试PID参数时,需要注意以下几点:首先,先调比例,再调积分,最后调微分。其次,观察系统的响应速度和超调量,如果存在振荡或超调量过大,可能需要调整积分时间和微分时间。最后,调试过程中要保持系统的稳定性,避免系统出现频繁的振荡。
    8.PID参数的在线调整在实际应用中,PID参数通常需要进行在线调整。在线调整是通过实时采集系统的数据,根据系统响应情况对PID参数进行调整的过程。在线调整需要经验丰富的工程师进行操作,以确保系统的稳定性和响应速度。

相互作用

首先,比例单元(P)的作用是按比例反应系统的偏差。当系统出现偏差时,比例单元会立即产生调节作用,减小偏差。具体来说,如果系统的当前状态与期望状态之间存在差异,比例单元会根据这个差异的大小和方向,按比例产生一个调节信号,这个信号会作用于系统,使其向消除偏差的方向运动。

然后,积分单元(I)的作用是消除系统的稳态误差。当系统存在稳态误差时(即系统无法达到期望状态,一直存在一个微小的偏差),积分单元会对这个误差进行积分,即计算误差随着时间的变化量。这个积分值会作为一个调节信号,对系统进行进一步的调节,直至消除稳态误差。

最后,微分单元(D)的作用是反应系统的未来误差。微分单元会对系统的未来状态进行预测,并计算预测值与期望值之间的误差。这个误差的变化率(即微分值)会被作为调节信号,提前对系统进行调节,以避免在未来出现大的误差。

PID这三个单元各有侧重,但又相互配合,共同作用,使得系统能够快速、准确地对各种复杂的工况进行响应,并达到期望的控制效果。

相似算法

PID调节和以下几种控制算法相似:

  1. 比例积分微分控制算法(PI控制算法)。PI控制算法是在PID算法的基础上去掉微分项得到的一种算法,只包含比例控制和积分控制。与PID相比,PI算法更加稳定,能够减少振荡和过冲现象。
  2. 比例积分控制算法(P控制算法)。P控制算法是在PID算法的基础上去掉积分项和微分项得到的一种算法,只包含比例控制。与PID相比,P算法更加简单,并且能够在一定程度上控制系统性能。
    除上述控制算法之外,还存在其他与PID调节相似的算法,如模糊控制、自适应控制等。这些算法在处理复杂和非线性系统方面具有优势,可以在特定情况下实现更好的控制效果。

与PWM对比

PID控制和PWM控制是两种常用的控制技术,它们在不同的应用中有不同的作用和工作原理。

PWM控制是通过调整脉冲的占空比来控制输出信号的平均电平。它是通过周期性地开关电源,控制开关时间和关闭时间的比例,从而控制所需的输出。PWM控制常用于需要模拟连续信号的应用,例如直流电机速度控制、LED亮度调节、音频放大器等,它适用于那些可以通过调整脉冲宽度来控制的设备或系统。

PID控制是一种基于反馈的控制算法,根据当前误差、误差积分和误差变化率的信息,计算出一个控制量,用于调节输出,以使系统的实际值与期望值尽可能接近。PID控制适用于需要精确控制和稳定性的应用,例如温度控制、位置控制、速度控制等。PID控制具有自适应能力,可以根据实际情况动态调整控制参数。

在某些应用中,PID和PWM可以结合使用。例如,在电机控制系统中,PID控制可以用于调节电机的速度和位置,而PWM控制可以用于调节电机的电流和电压。两者的结合使用可以实现更精确的电机控制。

应用范围

PID控制算法在以下领域中有广泛应用:

温度控制:在工业过程、热处理、恒温箱等方面,PID控制算法可以实现对温度的精确控制。
机械控制:在电机速度控制、位置控制、压力控制等方面,PID控制算法可以实现机械系统的精确控制。
液位控制:在液位高度控制、油罐液位控制等方面,PID控制算法可以实现液位的精确控制。
流量控制:在化工流程控制、供水系统控制等方面,PID控制算法可以实现对流量的精确控制。
此外,PID控制算法还应用于速度控制、位置控制、飞行器姿态控制、汽车稳定性控制、电力调度等各个领域。总的来说,PID控制算法适用于需要自动控制和调节的各种物理过程,使其达到预定的控制目标。

优缺点

PID控制器被广泛应用于各种控制系统中,其主要的优点有:

  1. PID算法蕴涵了动态控制过程中过去、现在、将来的主要信息,并且配置几乎最优。比例(P)代表当前的信息,起纠正偏差的作用,使过程反应迅速。微分(D)在信号变化时有 超前控制作用,代表将来的信息。在过程开始时强迫过程进行,过程结束时减小超调,克服振荡,提高系统的稳定性,加快系统的过渡过程。积分(I)代表了过去积累的信息,能消除静差,改善系统的静态特性。
  2. PID控制适应性好,有较强的鲁棒性,对各种工业场合,都可在不同的程度上应用。特别适于“一阶惯性环节+纯滞后”和“二阶惯性环节+纯滞后”的过程控制对象。
  3. PID算法简单明了,各个控制参数相对较为独立,参数的选定较为简单,形成了完整的设计和参数调整方法,很容易为工程技术人员所掌握。
  4. PID控制根据不同的要求,针对自身的缺陷进行了不少改进,形成了一系列改进的PID算法。例如,为了克服微分带来的高频干扰的滤波PID控制;为克服大偏差时出现饱和超调的PID积分分离控制等。

然而,PID控制器也存在一些缺点:
5. PID控制器对参数调整的要求比较高,如果参数调整不当,可能会导致系统性能不佳。
6. PID控制器对反馈信号的依赖度高,如果反馈信号受到干扰或者出现故障,系统的性能也会受到影响。
7. PID控制器对噪声敏感,如果系统中存在噪声,可能会导致控制系统出现震荡或者不稳定。
8. PID控制器可能存在积分饱和的问题,如果积分项发生饱和,可能会导致控制系统出现稳态误差或者振荡。

硬件支持

PID控制需要以下硬件支持:

控制器:PID控制算法需要一个控制器来实现。控制器可以是嵌入式系统、单片机、PLC等,用于接收输入信号,根据PID算法计算输出信号,并将输出信号传递给被控对象。
执行器:PID控制的执行器是用于将控制信号转换为实际动作的装置。常见的执行器包括电动机、气缸、液压马达等。
反馈装置:PID控制需要一个反馈装置来检测被控对象的输出信号,并将其反馈给控制器。反馈装置可以是传感器、编码器等。
电源:PID控制系统的电源是用于提供能量的设备。对于不同的被控对象和控制器,需要选择相应的电源来提供合适的能量。
此外,根据具体的被控对象和控制系统要求,可能还需要其他辅助设备,如信号转换器、继电器、接触器等。

相关文章:

【PID控制技术】

PID控制技术 简介控制原理相关术语调参技巧相互作用 相似算法与PWM对比 应用范围优缺点硬件支持 简介 PID控制是一种在工业过程控制中广泛应用的控制策略,其全称是比例-积分-微分(Proportional Integral Derivative)控制。它的基本原理是根据…...

docker openjdk:8-jdk-alpine 修改时区、添加字体

新建Dockerfile文件,制作新镜像 FROM openjdk:8-jdk-alpine 1、解决字体问题 RUN apk add --update ttf-dejavu fontconfig && rm -rf /var/cache/apk/* 2、解决时差问题 # 解决时差8小时问题ENV TZAsia/ShanghaiRUN ln -snf /usr/share/zoneinfo/$TZ /et…...

9+单细胞+实验验证,探讨单基因对癌细胞转移作用的思路方向

今天给同学们分享一篇单细胞实验的生信文章“Identification of RAC1 in promoting brain metastasis of lung adenocarcinoma using single-cell transcriptome sequencing”,这篇文章于2023年5月18日发表在Cell Death Dis期刊上,影响因子为9。 本研究旨…...

《计算机视觉中的多视图几何》笔记(7)

7 Computation of the Camera Matrix P P P 这章讲的是摄像机参数估计。摄像机标定,本质上就是求摄像机矩阵 P P P,当我们知道足够多的 X ↔ x X \leftrightarrow x X↔x,我们该如何计算 P P P?如果知道3D和2D点的对应&#xff…...

Python经典练习题(四)

文章目录 🍀第一题🍀第二题🍀第三题 🍀第一题 题目:打印出如下图案(菱形): 我们首先分析一下,本题实现的步骤主要有两个,分别是前四行和后三行 前四行:第一…...

Mac Pro在重装系统时提示“未能与恢复服务器取得联系”

检查网络连接: 确保你的Mac Pro连接到稳定的网络。尝试更换其他网络,例如切换到不同的Wi-Fi或使用有线连接。 系统时间校正: 错误的系统时间有时会导致与恢复服务器的连接问题。在恢复模式下打开终端(在实用工具菜单中选择终端&a…...

【C/C++】指针常量、常量指针、指向常量的常指针

目录 1.概念2. const pointer3. pointer to a constant3.1 (pointer to a constant)-constant3.2 poiner-constant3.3 (pointer to a constant)-variable3.4 poiner-variable3.5 多层级关系时的兼容3.6 用处 4. a constant pointer to a constant 1.概念 首先明确这几个术语的…...

【VUE复习·4】计算属性computed:原理、完整写法(不常用)、与 methods 的区别、简写(最常用)、应用案例!

总览 1.简介计算属性 2.computed 与 methods 的区别 3.computed 的简写(不修改计算属性,只显示) 4.经典应用场景 一、计算属性 1.为什么需要计算属性? 首先,如果我们要写一个插值语法,而 {{ }} 内的内容…...

Linux 基本语句_编译C过程

Linux撰写C语言并编译的过程 1、预处理 将所有的#define删除,并且展开所有的宏定义,并且处理所有的条件预编译指令,比如#if #ifdef #elif #else #endif等。处理#include预编译指令,将被包含的文件插入到该预编译指令的位置。删除…...

MYSQL8解压版 windows 主从部署步骤及配置(包含配置文件,教程文件,免积分下载)

MYSQL8解压版 windows 主从部署步骤及配置 一.安装MSYQL 这里只讲大概,详细步骤、my.ini文件、安装包等会在页尾文件中(正常情况按首个mysql安装,只是名字有区别) 1.主库my.ini配置 [mysqld] #典型的值是5-6GB(8GB内存),8-11GB(16GB内存), 20-25GB(32GB内存)&…...

RabbitMQ的基本介绍

什么是MQ 本质是一个队列,只不过队列中存放的信息是message罢了,还是一种跨进程的通信机制,用于上下游传递信息。在互联网架构中,MQ是一种非常常见的上下游“逻辑解耦物理解耦”的消息通信服务。使用了MQ之后,信息发送…...

AI智能视频监控技术如何助力美好乡村建设?

随着城市化发展,很多乡村设施也在逐渐完善,智能监控也成了乡村发展必不可少的一环,智能视频监控应该在乡村建设里如何发挥作用呢? 1、有效提升安全意识 通过在乡村重要区域、公共场所、道路等设置智能视频监控设备,可…...

【网络安全】2023年堡垒机品牌大全

随着大家网络安全意识的增加,随着国家等保政策的严格执行,越来越多的企业开始采购堡垒机。这里就给大家总结了部分堡垒机品牌,让大家参考参考。 2023年堡垒机品牌大全 1、行云堡垒 2、JumpServer 3、安恒 4、骞云 5、齐治 6、阿里云 …...

makefile相关知识的讲解

目录 makefile文件的介绍 step1:手动创建一个makefile文件 step2:在文件当中编辑指定的命令 step3:退出makefile文件并使用make执行文件当中的命令 step4:使用clean指令清除生成的文件 makefile当中的命令编写方式 目标文件和依…...

OpenCV中的HoughLines函数和HoughLinesP函数到底有什么区别?

一、简述 基于OpenCV进行直线检测可以使用HoughLines和HoughLinesP函数完成的。这两个函数之间的唯一区别在于,第一个函数使用标准霍夫变换,第二个函数使用概率霍夫变换(因此名称为 P)。概率版本之所以如此,是因为它仅分析点的子集并估计这些点都属于同一条线的概率。此实…...

Xilinx FPGA 程序固化重新上电程序不运行的问题

问题描述 FPGA直接下载bit文件,功能正常。 FPGA擦除FLASH,烧写FLASH,正常。 电源断电,重新上电,FALSH里面的程序没有启动,FPGA程序没有跑起来。–FLASH启动不正常。 解决办法 在XDC约束文件里边增加约束: ## Configuration options, can be used for all designs se…...

c++ 使用rapidjson对数据序列化和反序列化(vs2109)

RapidJSON是腾讯开源的一个高效的C JSON解析器及生成器&#xff0c;它是只有头文件的C库&#xff0c;综合性能是最好的。 1. 安装 在NuGet中为项目安装tencent.rapidjson 2. 引用头文件 #include <rapidjson/document.h> #include <rapidjson/memorystream.h> #…...

4.迭代最近点ICP及非线性优化求解

使用非线性优化方法求解ICP 文章目录 使用非线性优化方法求解ICP前情提要ICP问题回顾对矩阵变量求导数 ICP问题的非线性解法代码示例 欢迎访问个人网络日志&#x1f339;&#x1f339;知行空间&#x1f339;&#x1f339; 前情提要 在迭代最近点算法ICP及SVD求解中介绍了ICP问…...

【redis总结】

文章目录 1、redis简介2、为什么要选择redis做缓存3、数据结构4、redis多线程模型redis6.0的变化 5、redis持久化AOF的实现过程RDB的实现过程 6、redis集群的搭建7、 redis过期删除和淘汰策略8、redis的内存淘汰策略 1、redis简介 Redis&#xff08;Remote Dictionary Server&…...

图数据库:释放关系的力量

【squids.cn】 全网zui低价RDS&#xff0c;免费的迁移工具DBMotion、数据库备份工具DBTwin、SQL开发工具等 在数据管理领域&#xff0c;图数据库已经成为一种强大的工具&#xff0c;它彻底改变了我们处理和分析复杂关系的方式。与依赖表和列的传统关系数据库不同&#xff0c;图…...

基于算法竞赛的c++编程(28)结构体的进阶应用

结构体的嵌套与复杂数据组织 在C中&#xff0c;结构体可以嵌套使用&#xff0c;形成更复杂的数据结构。例如&#xff0c;可以通过嵌套结构体描述多层级数据关系&#xff1a; struct Address {string city;string street;int zipCode; };struct Employee {string name;int id;…...

多场景 OkHttpClient 管理器 - Android 网络通信解决方案

下面是一个完整的 Android 实现&#xff0c;展示如何创建和管理多个 OkHttpClient 实例&#xff0c;分别用于长连接、普通 HTTP 请求和文件下载场景。 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas…...

C++ 求圆面积的程序(Program to find area of a circle)

给定半径r&#xff0c;求圆的面积。圆的面积应精确到小数点后5位。 例子&#xff1a; 输入&#xff1a;r 5 输出&#xff1a;78.53982 解释&#xff1a;由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982&#xff0c;因为我们只保留小数点后 5 位数字。 输…...

力扣-35.搜索插入位置

题目描述 给定一个排序数组和一个目标值&#xff0c;在数组中找到目标值&#xff0c;并返回其索引。如果目标值不存在于数组中&#xff0c;返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 class Solution {public int searchInsert(int[] nums, …...

08. C#入门系列【类的基本概念】:开启编程世界的奇妙冒险

C#入门系列【类的基本概念】&#xff1a;开启编程世界的奇妙冒险 嘿&#xff0c;各位编程小白探险家&#xff01;欢迎来到 C# 的奇幻大陆&#xff01;今天咱们要深入探索这片大陆上至关重要的 “建筑”—— 类&#xff01;别害怕&#xff0c;跟着我&#xff0c;保准让你轻松搞…...

多模态图像修复系统:基于深度学习的图片修复实现

多模态图像修复系统:基于深度学习的图片修复实现 1. 系统概述 本系统使用多模态大模型(Stable Diffusion Inpainting)实现图像修复功能,结合文本描述和图片输入,对指定区域进行内容修复。系统包含完整的数据处理、模型训练、推理部署流程。 import torch import numpy …...

省略号和可变参数模板

本文主要介绍如何展开可变参数的参数包 1.C语言的va_list展开可变参数 #include <iostream> #include <cstdarg>void printNumbers(int count, ...) {// 声明va_list类型的变量va_list args;// 使用va_start将可变参数写入变量argsva_start(args, count);for (in…...

【FTP】ftp文件传输会丢包吗?批量几百个文件传输,有一些文件没有传输完整,如何解决?

FTP&#xff08;File Transfer Protocol&#xff09;本身是一个基于 TCP 的协议&#xff0c;理论上不会丢包。但 FTP 文件传输过程中仍可能出现文件不完整、丢失或损坏的情况&#xff0c;主要原因包括&#xff1a; ✅ 一、FTP传输可能“丢包”或文件不完整的原因 原因描述网络…...

【Linux】Linux安装并配置RabbitMQ

目录 1. 安装 Erlang 2. 安装 RabbitMQ 2.1.添加 RabbitMQ 仓库 2.2.安装 RabbitMQ 3.配置 3.1.启动和管理服务 4. 访问管理界面 5.安装问题 6.修改密码 7.修改端口 7.1.找到文件 7.2.修改文件 1. 安装 Erlang 由于 RabbitMQ 是用 Erlang 编写的&#xff0c;需要先安…...

node.js的初步学习

那什么是node.js呢&#xff1f; 和JavaScript又是什么关系呢&#xff1f; node.js 提供了 JavaScript的运行环境。当JavaScript作为后端开发语言来说&#xff0c; 需要在node.js的环境上进行当JavaScript作为前端开发语言来说&#xff0c;需要在浏览器的环境上进行 Node.js 可…...