什么是 PID 控制器:工作原理及其应用

2023-05-16

什么是 PID 控制器:工作原理及其应用

  • 什么是PID控制器?
  • 历史
  • PID控制器框图
  • PID控制器的工作
    • P-控制器
    • I-控制器
    • D-控制器
  • PID控制器的类型
    • 开/关控制
    • 比例控制
    • 标准型PID控制器
    • 实时 PID 控制器
  • 调优方法
    • 试错法
    • 过程反应曲线技术
    • Zeigler-Nichols 方法
  • PID控制器结构
  • 应用
    • 炉温控制
    • MPPT充电控制器
    • 电力电子转换器
  • PID 控制器接口
  • 公式

PID 控制器广泛应用于工业过程控制。工业自动化领域大约 95% 的闭环操作使用 PID 控制器。PID 代表比例-积分-微分。这三个控制器以产生控制信号的方式组合。作为反馈控制器,它提供所需水平的控制输出。在微处理器发明之前,PID 控制是由模拟电子元件实现的。但是今天所有的 PID 控制器都由微处理器处理。可编程逻辑控制器也有内置的PID控制器指令。由于 PID 控制器的灵活性和可靠性,它们传统上用于过程控制应用。

什么是PID控制器?

术语PID代表比例积分微分,它是一种用于控制工业应用中压力、流量、温度和速度等不同过程变量的设备。在该控制器中,控制回路反馈装置用于调节所有过程变量。

这种类型的控制用于在目标位置的方向上驱动系统,否则水平。它几乎无处不在用于温度控制,并用于科学过程、自动化和无数化学品。在这个控制器中,闭环反馈用于保持来自接近目标的方法的实际输出,否则如果可能的话输出在固定点。在本文中,讨论了 PID 控制器设计及其使用的控制模式,如 P、I 和 D。

历史

PID 控制器的历史是从1911 年第一个 PID 控制器由 Elmer Sperry 开发。之后,TIC(Taylor Instrumental Company)在 1933 年实施了一个具有完全可调功能的前气动控制器。几年后,控制工程师通过将末端重新调整为某个假值直到误差不为零,从而消除了在比例控制器中发现的稳态误差。

这种重新调整包括称为比例积分控制器的误差。之后,在 1940 年,通过微分动作开发了第一个气动 PID 控制器,以减少超调问题。

1942 年,Ziegler & Nichols 引入了调谐规则,以发现和设置 PID 控制器的合适参数。1950年中期,自动PID控制器终于在工业中得到广泛应用。

PID控制器框图

像PID控制器这样的闭环系统包括反馈控制系统。该系统使用固定点评估反馈变量以生成误差信号。在此基础上,它会改变系统输出。这个过程将一直持续到误差达到零,否则反馈变量的值就等于一个固定点。

与 ON/OFF 型控制器相比,该控制器提供了良好的结果。在 ON/OFF 型控制器中,只需获得两个条件即可管理系统。一旦过程值低于定点,则打开。同样,一旦该值高于固定值,它将关闭。这种控制器的输出不稳定,会在定点范围内频繁摆动。但是,与 ON/OFF 型控制器相比,该控制器更加稳定和准确。
在这里插入图片描述

PID控制器的工作

通过使用低成本的简单 ON-OFF 控制器,只有两种控制状态是可能的,例如完全 ON 或完全 OFF。它用于有限的控制应用,其中这两种控制状态足以满足控制目标。然而,这种控制的振荡性质限制了它的使用,因此它正在被 PID 控制器取代。

PID 控制器通过闭环操作保持输出,从而在过程变量和设定点/所需输出之间存在零误差。PID 使用下面解释的三种基本控制行为。

P-控制器

比例或 P 控制器给出与电流误差 e (t) 成比例的输出。它将期望值或设定值与实际值或反馈过程值进行比较。所得误差乘以比例常数以获得输出。如果错误值为零,则该控制器输出为零。
在这里插入图片描述
该控制器单独使用时需要偏置或手动复位。这是因为它永远不会达到稳态条件。它提供稳定的操作,但始终保持稳态误差。当比例常数 Kc 增加时,响应速度增加。
在这里插入图片描述

I-控制器

由于 p 控制器的限制,过程变量和设定值之间总是存在偏移,因此需要 I 控制器,它提供必要的动作来消除稳态误差。它在一段时间内对误差进行积分,直到误差值达到零。它保存误差为零的最终控制设备的值。
在这里插入图片描述
当出现负误差时,积分控制会降低其输出。它限制了响应速度,影响了系统的稳定性。通过降低积分增益 Ki 来提高响应速度。
在这里插入图片描述
在上图中,随着 I 控制器增益的减小,稳态误差也不断减小。在大多数情况下,PI 控制器特别适用于不需要高速响应的情况。

在使用 PI 控制器时,I 控制器输出被限制在一定范围内,以克服积分结束条件,即使在零误差状态下积分输出也会继续增加,这是由于工厂中的非线性。

D-控制器

I-控制没有能力预测未来的错误行为。所以一旦设定点改变,它就会正常反应。D-控制通过预测错误的未来行为克服了这个问题。它的输出取决于误差随时间的变化率,乘以微分常数。它为输出提供了启动,从而增加了系统响应。
在这里插入图片描述
所以最后观察到,通过组合这三个控制器,我们可以获得系统所需的响应。不同的制造商设计了不同的PID算法。

PID控制器的类型

PID 控制器分为三种类型,如 ON/OFF、比例和标准型控制器。这些控制器都是基于控制系统使用的,用户可以使用控制器来调节方法。

开/关控制

开关控制方法是用于温度控制的最简单的设备类型。设备输出可以通过无中心状态打开/关闭。一旦温度超过固定点,该控制器将打开输出。限位控制器是一种特殊的开/关控制器,它使用闭锁继电器。该继电器手动复位,用于在达到特定温度后关闭方法。

比例控制

这种控制器旨在消除通过开/关控制连接的循环。一旦温度达到固定点,该 PID 控制器将减少向加热器提供的正常功率。

该控制器具有控制加热器的一项功能,使其不会超过固定点,但会达到固定点以保持稳定的温度。
这种比例行为可以通过在短时间内打开和关闭输出来实现。这种时间比例将改变从 ON 时间到 OFF 时间的比例,以控制温度。

标准型PID控制器

这种PID控制器将通过积分和微分控制合并比例控制,自动辅助机组补偿系统内的变化。这些修改、积分和导数以基于时间的单位表示。

这些控制器也通过它们的倒数、RATE 和 RESET 相应地引用。PID 的项必须单独调整,否则会根据试验和错误调整到特定系统。这些控制器将提供 3 种类型控制器中最精确和最稳定的控制。

实时 PID 控制器

目前,市场上有多种PID控制器可供选择。这些控制器用于工业控制要求,如压力、温度、液位和流量。一旦通过 PID 控制这些参数,选择包括使用单独的 PID 控制器或 PLC。
这些单独的控制器用于需要检查一个或两个回路的任何地方,以及在通过较大系统进入权利很复杂的情况下以其他方式进行控制。
这些控制设备为单回路和双回路控制提供了不同的选择。独立型 PID 控制器提供多种定点配置以产生自主的多种警报。
这些独立控制器主要包括霍尼韦尔的PID控制器、横河的温度控制器、OMEGA、西门子和ABB的自动调谐控制器。

在大多数工业控制应用中,PLC 就像 PID 控制器一样使用 PID 块的排列可以在 PAC 或 PLC 内完成,以便为精确的 PLC 控制提供更好的选择。与单独的控制器相比,这些控制器更智能也更强大。每个 PLC 都在软件编程中包含 PID 块。

调优方法

在 PID 控制器开始工作之前,必须对其进行调整以适应要控制的过程的动态。设计人员给出了 P、I 和 D 项的默认值,这些值无法提供所需的性能,有时会导致不稳定和控制性能变慢。开发了不同类型的调谐方法来调谐 PID 控制器,并且需要操作员非常注意选择比例、积分和微分增益的最佳值。其中一些在下面给出。

大多数工业应用中都使用 PID 控制器,但应该知道该控制器的设置,以正确调整它以生成首选输出。在这里,整定只不过是通过设置最佳比例增益、积分和微分因子从控制器接收理想回复的过程。

PID 控制器所需的输出可以通过调整控制器来获得。有不同的技术可用于从控制器获得所需的输出,如试错法、齐格勒-尼科尔斯和过程反应曲线。最常用的方法是试错法、Zeigler-Nichols 等。

试错法

这是一种简单的PID控制器整定方法。当系统或控制器工作时,我们可以调整控制器。在这种方法中,首先,我们必须将 Ki 和 Kd 值设置为零并增加比例项 (Kp),直到系统达到振荡行为。一旦振荡,调整 Ki(积分项),使振荡停止,最后调整 D 以获得快速响应。

过程反应曲线技术

它是一种开环调谐技术。当阶跃输入应用于系统时,它会产生响应。最初,我们必须手动将一些控制输出应用到系统,并且必须记录响应曲线。

之后,我们需要计算曲线的斜率、死区时间、上升时间,最后将这些值代入 P、I 和 D 方程中以获得 PID 项的增益值。
在这里插入图片描述

Zeigler-Nichols 方法

Zeigler-Nichols 提出了用于调整 PID 控制器的闭环方法。这些是连续循环法和阻尼振荡法。两种方法的程序相同,但振荡行为不同。在这里,首先,我们必须将 p 控制器常数 Kp 设置为特定值,而 Ki 和 Kd 值为零。增加比例增益,直到系统以恒定幅度振荡。

系统产生恒定振荡的增益称为最终增益 (Ku),振荡周期称为最终周期 (Pc)。一旦达到,我们可以通过 Zeigler-Nichols 表在 PID 控制器中输入 P、I 和 D 的值,具体取决于使用的控制器,如 P、PI 或 PID,如下所示。
在这里插入图片描述

PID控制器结构

PID 控制器由三项组成,即比例、积分和微分控制。这三个控制器的组合操作为过程控制提供了控制策略。PID 控制器控制过程变量,如压力、速度、温度、流量等。一些应用在级联网络中使用 PID 控制器,其中两个或多个 PID 用于实现控制。
在这里插入图片描述
上图显示了PID控制器的结构。它由一个 PID 块组成,该块将其输出提供给进程块。过程/工厂包括最终控制设备,如执行器、控制阀和其他控制设备,以控制工业/工厂的各种过程。

来自过程工厂的反馈信号与设定点或参考信号 u(t) 进行比较,并将相应的误差信号 e(t) 馈送到 PID 算法。根据算法中的比例、积分和微分控制计算,控制器产生组合响应或受控输出,应用于工厂控制设备。

所有控制应用程序都不需要所有三个控制元件。PI 和 PD 控制等组合在实际应用中经常使用。

应用

PID 控制器应用包括以下内容。

最好的 PID 控制器应用是温度控制,其中控制器使用温度传感器的输入,其输出可以与风扇或加热器等控制元件相关联。通常,该控制器只是温度控制系统中的一个元件。在选择正确的控制器时,必须检查和考虑整个系统。

炉温控制

通常,熔炉用于加热以及在高温下容纳大量原材料。被占据的材料通常包括巨大的质量。因此,它需要大量的惯性,即使施加大量热量,材料的温度也不会迅速改变。此功能可产生适度稳定的 PV 信号,并允许微分周期有效地纠正故障,而不会对 FCE 或 CO 发生极端变化。

MPPT充电控制器

光伏电池的 VI 特性主要取决于温度范围和辐照度。根据天气情况,电流和工作电压会不断变化。因此,追踪一个高效光伏系统的最高点就显得尤为重要。PID 控制器用于通过向 PID 控制器提供固定电压和电流点来找到 MPPT。一旦天气状况发生变化,跟踪器就会保持电流和电压稳定。

电力电子转换器

我们知道转换器是电力电子的一种应用,因此PID控制器主要用于转换器。每当转换器根据负载内的变化通过系统连接时,转换器的输出就会发生变化。例如,逆变器与负载相连;一旦负载增加,就会提供巨大的电流。因此,电压和电流的参数是不稳定的,但会根据需要而改变。

在此状态下,该控制器将产生 PWM 信号以激活逆变器的 IGBT。根据负载内的变化,将响应信号提供给 PID 控制器,使其产生 n 个错误。这些信号是基于故障信号生成的。在这种状态下,我们可以通过类似的逆变器获得可变的输入和输出。

PID 控制器接口

PID 控制器的设计和接口可以使用 Arduino 微控制器完成。在实验室中,使用Arduino UNO板、电子元件、热电冷却器设计基于Arduino的PID控制器,而本系统使用的软件编程语言为C或C++。该系统用于控制实验室内的温度。

特定控制器的 PID 参数是在物理上找到的。各种PID参数的作用可以通过不同形式控制器的后续对比来实现。
该接口系统可以通过±0.6℃的误差有效地计算温度,而通过与首选值的微小差异即可实现恒温调节。该系统中使用的概念将提供廉价且精确的技术来管理实验室内首选范围内的物理参数。

公式

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

什么是 PID 控制器:工作原理及其应用 的相关文章

  • 郑学坚《微型计算机原理及应用》考点精讲 36讲

    链接 xff1a https pan baidu com s 12 vGBRrjOd UtO8P4e9bow 提取码 xff1a tqmp 当初考研时买的网课 xff0c 现在也用不着了 xff0c 赠与有缘人 书籍记录着别人多年时光总结出
  • 几种常用排序算法

    排序算法代码如下 xff1a void Sort Algorithm Bubble Sort int amp nums const int len bool haschange 61 true for int i 61 0 i lt len
  • 四旋翼姿态解算

    代码思路如下 xff1a 姿态解算 void IMU update float dT imu state st state float gyr VEC XYZ s32 acc VEC XYZ s16 mag val VEC XYZ imu
  • 树莓派4B-基于MCP2515的CAN通信过程记录篇

    本文主要记录使用树莓派4B xff0c 通过外接MCP2515模块来实现CAN通信 xff0c 使用基于Can utils实现CAN消息的收发 准备工作 xff1a 树莓派MCP2515模块杜邦线若干 知乎上一篇较为详细的参考 xff0c
  • nuxt踩坑集

    目录结构 assets 资源文件 用于组织未编译的静态资源如 LESS SASS或 JavaScript components 组件 layouts page 模板页面 xff0c 默认为 default vue可以在这个目录下创建全局页面
  • 记录个人在安装D435i驱动时出现的问题及解决方案

    目录 1 驱动安装 xff1a 2 启动Intel RealSense Viewer后报错No Frames Recevied 3 Record时报错Error opening file 1 驱动安装 xff1a 参考这篇博客 xff1a
  • 深度学习常见的优化算法

    文章目录 1 梯度下降算法 xff08 batch gradient descent BGD 2 随机梯度下降法 xff08 Stochastic gradient descent SGD 3 小批量梯度下降 Mini batch grad
  • vscode如何链接github

    1 首先安装配置好vscode xff1a https code visualstudio com download 然后下载git xff1a https git scm com download 根据自己的电脑选择相应的版本的下载就好了
  • 串口(uart)开发流程

    UART概述 UART全称 xff0c Universal Asynchronous Receiver and Transmitter UART xff0c 一般是每个单片机或开发板必备的一个功能模块 xff0c 可以用来调试 xff0c
  • *33.硬中断和软中断是什么?区别?

    1 硬中断 硬件中断 像磁盘 xff0c 网卡 xff0c 键盘 xff0c 时钟等 2 软中断 软件中断 进程产生 区别 xff1a xff08 产生机制 处理顺序 可否屏蔽 中断信号由来 xff09 1 软中断的发生的时间是由程序控制的
  • gazebo学习时遇到的问题(PX4篇)

    最近在研究如何使用UAV xff0c 由于是初学者 xff0c 不好直接上手实体无人机 xff0c 因此考虑通过在gazebo中模拟的方式进行一下无人机的简单使用模拟 xff0c 于是了解到了PX4这个东西 xff0c 他不仅支持固件写入
  • 阿里云服务器的搭建和部署(小白教程)

    阿里云服务器的搭建和部署 xff08 小白教程 xff09 一 购买服务器二 管理云服务器三 环境配置1 JDK的配置与下载2 tomcat的配置与下载3 MySQL的安装与配置 四 外网访问服务器 个人推荐阿里云 因为里面有一个大学生的云
  • 一篇带你搞懂Python3 中的 def __init__

    在学习python 100 days时 xff0c 在面向对象编程基础的那一块 xff0c 封装一个class时 xff0c 突然出现def init 的方法 xff0c 刚开始时 xff0c 对他的理解很模糊 xff0c 为什么定义一个类
  • 时间序列异常检测综述

    1 Introduction 时序异常检测几个可以运用的点 xff1a 1 欺诈检测 2 工业数据检测 简介一下 xff1a 异常检测很久之前就有了 最早可以追溯到 J Fox 1972 Outliers in Time Series Jo
  • Linux基础----Makefile(1)

    前言 刚开始学习Linux xff0c 这些那真的是新知识 xff0c 由于感觉将来FPGA的学习会越来越靠近软件的方向发展 xff0c 所以觉得有必要好好地学习一下嵌入式的东西 xff0c 因此有必要把学习的过程记录下来 xff0c 方便
  • 【OpenCV】ChArUco标定板角点的检测Detection of ChArUco Corners

    opencv3 4 15源文档链接 link ChArUco标定板角点的检测 GoalSource codeCharuco板创建ChArUco板检测ChArUco姿势估计 ArUco标记和板的快速检测和多功能性是非常有用的 然而 xff0c
  • 错误 MSB3721

    错误 MSB3721 命令 C Program Files NVIDIA GPU Computing Toolkit CUDA v10 2 bin nvcc exe gencode 61 arch 61 compute 30 code 61
  • 倒立摆状态反馈控制——分析、建模与仿真(matlab)

    倒立摆状态反馈控制 引言 倒立摆是机器人学中一个非常重要的模型 xff0c 火箭 导弹 独轮车 双足机器人 四足机器人 xff0c 基本都是倒立摆的变形 问题描述 关于倒立摆的问题描述如下 xff1a 如图所示的倒立摆系统 摆的关节连接在一
  • docker pull rabbitmq:management 怎样指定版本

    docker pull rabbitmq 3 8 1 management
  • git 命令学习

    git 命令学习 git clone https github com zhaji01 notes git 克隆远程仓库 git status 本地仓库状态 git add lt file gt 把修改 xff08 包括创建 修改 删除 解

随机推荐

  • 【实例记录】在ubuntu上运行python实现与单片机多线程串口通信

    文章目录 工具步骤 工具 工具 xff1a 自己电脑双系统的ubuntu18 04 单片机esp8266 一个usb转ttl模块 xff0c ubuntu上已经下载了python的3 6和pip xff0c 还需要pip install s
  • 【过程记录 】windows和ubuntu两台电脑局域网进行socket通信收发数据和传输文件

    实验图片和前期准备 xff1a ubuntu作为服务端 xff0c windows客户端传输数据和文件 xff1a windows作为服务端 xff0c ubuntu作为客户端 xff1a 实验图片和前期准备 xff1a 服务端发送和接受i
  • 过程记录 yolov3目标检测输出目标坐标和原图物体像素坐标比较

    设备 xff1a jetsonnano B01 一个usb广角摄像头 语言为python 库为opencv 框架pytorch 大家都知道yolov3的坐标变换过程比较复杂 xff0c 大概要经过图片缩放 xff0c 对数空间变换等等 xf
  • Rt-Thread学习笔记-----信号量(五)

    线程间同步 1 什么是线程间同步 xff1f 同步是指按预定的先后次序进行运行 xff0c 线程同步是指多个线程通过特定的机制来控制线程之间的执行顺序 xff0c 也可以说是在线程之间通过同步建立起执行顺序的关系 xff0c 如果没有同步
  • C++类和对象——空指针访问成员函数

    C 43 43 中空指针也是可以访问成员函数的 xff0c 但是也要注意有没有用到this指针 xff1b 如果用到this指针 xff0c 需要加以判断保证代码的健壮性 span class token macro property sp
  • nodejs实现简单的自动化部署

    如题 xff0c nodejs通过码云提供的web hooks实现简单的服务器自动部署 大致流程 xff1a 1 通过码云提供的web hooks xff0c 创建一个request通过后的回调接口 xff08 说白了就是配置一个码云审批通
  • 2022届春招实习面经(CV岗)——offer经

    已拿offer公司 xff1a 腾讯 ponyai vivo研究院 华为 字节 面了一面就没继续面了 xff1a 海康威视 虎牙 京东 本科211 xff0c 硕士985 二区在投论文 43 顶会下的top5比赛 43 小厂三个月实习经历
  • LeetCode刷题笔记 --- python

    目录 一 python交换两个变量的值1 1 使用tuple1 2 使用临时变量temp 二 python中 和 区别三 python列表的使用3 1 列表的基本操作3 2 列表实现栈操作3 3 列表实现排序3 4 列表的算法效率 四 py
  • 无人机高度控制

    这个第一次看就完全没看懂 xff0c 现在再看还是没看懂orz xff0c 而且定高还是重要的功能和考点 xff0c 详细分析一下程序吧 首先是表示高度信息的结构体 xff1a 数据结构声明 typedef struct float Z S
  • ssh_exchange_identification: Connection closed by remote host

    ssh exchange identification Connection closed by remote host 导致这个问题的原因有很多 xff0c 笔者是因为在ssh中设置了代理 xff0c 这个可以作为阅读者排查问题的一个点
  • 匿名无人机飞控代码整理5

    先跳过高度部分 xff0c 这里看location部分 可以看出来这部分也是直接与我们的循迹 追踪任务相关的 所以这部分的掌握应该很重要把 前面有很多暂时不需要看 xff0c flyctrl那个巨长 所以就先看速度环控制部分了 if swi
  • 匿名无人机飞控代码整理

    看了半天 xff0c 各部分都看得都很零散 xff0c 写的也很简略 xff0c 但目前为止还是无法对系统各部分做具体一点的整合 xff0c 今天试试看 1 先从主函数起 xff0c 进入主轮询函数 Main Task 这个主函数的调用就在
  • 一直没看的无人机定高

    除了定高的部分 xff0c 其他没看的还有一些控制函数 定高的原理的话 xff0c 也是利用了两级pid xff0c 按照原本的理解 xff0c 从外环开始看的话 xff0c 反馈高度比较容易获得 xff0c 就是激光测距得到的高度 期望高
  • 匿名无人机代码FlightCtrl简单分析

    这个flightCtrl文件 xff0c 是真的很长又很难 各种标志位啊 xff0c 判断啊 xff0c 开关啊 xff0c 逻辑判断啊什么的 xff0c 趁通宵把代码梳理一遍 这个文件里的函数虽不算最多 xff0c 但引用的头文件相当多
  • 简历—项目经验范例

    xff08 看着比较专业的一份项目经验样板 xff09 原文链接https mp weixin qq com s rxGTTVKryvYoyst jsayLw 项目一 米乐淘网上商城 项目名称 xff1a 米乐淘网上商城 开发环境 xff1
  • 家庭网络和路由器

    1 什么是家庭网络 xff1f 一个典型的家庭网络由多个设备组成 xff0c 且几乎所有的家庭网络都有一个路由器作为它们的中心设备 路由器连接到 Internet 连接 xff0c 然后与本地网络上的一台或多台计算机共享该连接 家庭网络通常
  • ROS动态调整PID

    64 动态调整PID ROS提供了一个专门用于动态调整参数的功能包dynamic reconfigure 它实现了动态配置参数的机制 我们先来创建一个功能包 添加相应的一些依赖 cd catkin ws src catkin create
  • CubeMX配置串口的程序烧入板子不跑的解决方法

    对于cubeMX配置串口 xff0c keil5编译通过的 xff0c 自己确定无问题的程序 xff0c 以ISP烧入 xff0c 烧入板子后无法运行的情况 xff0c 我暂时的解决策略是按住reset键点击 开始编程 xff0c 点击后松
  • realsense D455+ROS+OpenCV4.5完成目标距离检测

    ROS OpenCV 1 环境配置 1 1 realsense SDK2 0安装 通过官网找到最新的SDK包并下载 Intel RealSense SDK 2 0 解压安装包 xff08 librealsense 2 47 0 tar gz
  • 什么是 PID 控制器:工作原理及其应用

    什么是 PID 控制器 xff1a 工作原理及其应用 什么是PID控制器 xff1f 历史PID控制器框图PID控制器的工作P 控制器I 控制器D 控制器 PID控制器的类型开 关控制比例控制标准型PID控制器实时 PID 控制器 调优方法