PID控制器原理概述

2023-05-16

PID控制

  • PID概述:
  • 控制框图:
  • 增量式PID和位置式PID特点:
  • PID控制参数整定口诀:

注:本文部分内容摘自《先进PID控制MATLAB仿真(第4版)》刘金琨 编著,研读此书受益匪浅,感谢作者!

PID概述:

PID(Proportion Integration Differentiation)是指将偏差的比例(P),积分(I),微分(D)通过线性组合构成控制量,对被控对象进行控制,故称PID控制器。
PID控制器是一种线性控制器,它根据给定值 y d ( t ) y_d(t) yd(t)与实际输出值 y ( t ) y(t) y(t)构成控制偏差:
e r r o r ( t ) = y d ( t ) − y ( t ) error(t)=y_d(t)-y(t) error(t)=yd(t)y(t)
PID的控制规律为:
u ( t ) = K P [ e r r o r ( t ) + 1 T I ∫ 0 t e r r o r ( t ) d t + T D d e r r o r ( t ) d t ] u(t)=K_P[error(t)+\frac{1}{T_I}\int _0^t{error(t)dt}+\frac{T_Dderror(t)}{dt}] u(t)=KP[error(t)+TI10terror(t)dt+dtTDderror(t)]
或写成传递函数的形式:
G ( s ) = U ( s ) E ( s ) = K P ( 1 + 1 T I s + T D s ) G(s)=\frac{U(s)}{E(s)}=K_P\left(1+\frac{1}{T_Is}+T_Ds\right) G(s)=E(s)U(s)=KP(1+TIs1+TDs)
式中, K P K_P KP为比例系数; K I K_I KI为积分时间常数; T D T_D TD为微分时间常数;
PID控制器各校正环节的作用如下:
(1)比例环节:成比例地反映控制系统的偏差信号 e r r o r ( t ) error(t) error(t),偏差一旦产生,控制器立即产生控制作用,以减小偏差。
(2)积分环节:主要用于消除静差,提高系统的无差度。积分作用的强弱取决于积分时间常数 T I T_I TI T I T_I TI越大,积分作用越小,反之则越强。
(3)微分环节:反映偏差信号的变化趋势(变化速率),并能在偏差信号变得太大之前,在系统中引入一个有效的早期修正信号,从而加快系统的动作速度,减少调节时间。

控制框图:

在这里插入图片描述

增量式PID和位置式PID特点:

(1)位置式pid控制的输出与整个过去的状态有关,用到了误差的累加值;而增量式pid的输出只与当前拍和前两拍的误差有关,因此位置式pid控制的累积误差相对更大;
(2)增量式pid控制输出的是控制量增量,并无积分作用,因此该方法适用于执行机构带积分部件的对象,如步进电机等;而位置式pid适用于执行机构不带积分部件的对象,如电液伺服阀。
(3)由于增量式pid输出的是控制量增量,如果计算机出现故障,误动作影响较小,而执行机构本身有记忆功能,可仍保持原位,不会严重影响系统的工作,而位置式的输出直接对应对象的输出,因此对系统影响较大。

PID控制参数整定口诀:

参数整定找最佳,从小到大顺序查。
先是比例后积分,最后再把微分加。
曲线震荡很频繁,比例度盘要放大。
曲线漂浮绕大湾,比例度盘往小板。
曲线偏离回复慢,积分时间往下降。
曲线波动周期长,积分时间再加长。
曲线震荡频率快,先把微分降下来。
动差大来波动慢,微分时间应加长。
理想曲线两个波,前高后低四比一。
一看二调多分析,调节质量不会低。

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

PID控制器原理概述 的相关文章

  • 单相Boost功率因数校正电路(PFC)设计与仿真(Simulink & Saber):第一章 PFC基础知识与电路参数设计

    写在前面 教程是根据Mathworks公司的有源功率因数校正教程 点这里跳转 和那日沙等老师编著的 电力电子 电机控制系统的建模及仿真 改写的 设计思路基本与之一致 嫌看文章麻烦的同学可以直接跳转看视频和查阅相关书籍 Simulink仿真部
  • 工程实践---ZN法整定PID

    工程实践 ZN法整定PID 知乎 zhihu com
  • 电机控制进阶——PID速度控制

    之前的几篇文章 电机控制基础篇 介绍的电机编码器原理 定时器输出PWM 定时器编码器模式测速等 本篇在前几篇的基础上 继续来学习电机控制 通过PID算法 来进行电机的速度控制 并进行实验测试 PID基础 PID即 Proportional
  • 基于LabVIEW的PID算法解读

    记录一下 方便以后翻阅 下图是基本的PID算法实现方式 以及实现PID控制器所需的假设和转换 为实现PID控制器 LabVIEW要求算法对输入信号进行采样并离散积分和微分操作 一 误差计算 e k SP k PV k 上式中 e k 表示当
  • 【抗扰PID控制】干扰抑制PID控制器研究(Matlab代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码 Simulink 文章讲解 1 概述 文献来源 抗扰PI
  • PID算法应用于室内温度控制的C语言实现

    我最近在学习PID算法 对此很感兴趣 所以与大伙分享下 有不足的地方欢迎指出 非常谢谢 PID算法的基本内容本篇博客就不做阐述了 网上有很多资料 文章的主题是用C语言实现PID算法 为了更好的理解 我采用软件模拟室内温度控制的方式与大伙分享
  • 深入浅出PID控制算法(二)————PID算法离散化和增量式PID算法原理及Matlab实现

    引言 上篇介绍了连续系统的PID算法 但是计算机控制是一种采样控制 他只能根据采样时刻的偏差来计算控制量 因此计算机控制系统中 必须对公式进行离散化 具体就是用求和代替积分 用向后差分来代替微分 使模拟PID离散化为数字形式的差分方程 准备
  • 什么是死区时间

    死区时间是PWM输出时 为了使H桥或半H桥的上下管不会因为开关的关断延迟问题发生同时导通而设置的一个保护时段 通常也指pwm响应时间 由于IGBT 绝缘栅极型功率管 等功率器件都存在一定的结电容 所以会造成器件导通关断的延迟现象 一般在设计
  • 进程组必须有一个正在运行的领导进程吗?

    在类 Unix 操作系统中 如果一个进程 pid和它的pgid相等 则该进程是进程组的领导者 但是 如果进程领导者已经退出 并且同组中的其他进程仍在运行 那么谁是继任的领导者进程 没有继任领导者 一旦流程组领导者退出 该组就失去了领导权 没
  • 如何在Python中检查是否存在给定pid的进程?

    有没有办法检查 pid 是否对应于有效进程 我从其他来源获取 pid 而不是os getpid 我需要检查机器上是否不存在具有该 pid 的进程 我需要它在 Unix 和 Windows 中可用 我还在检查 PID 是否未被使用 如果 pi
  • copy_from_user() 的任何示例吗?内核和用户空间

    我正在寻找将 PID 值从用户空间复制到内核空间 这是我的代码快照 内核模块 include
  • 在Qt中fork后获取进程的PID

    我正在创建一个成功分叉的 Qt C 控制台应用程序 当我在 fork 之前调用 QCoreApplication applicationPid 然后在 fork 之后 在子进程中 调用 QCoreApplication applicatio
  • 什么是 .pid 文件以及它包含什么?

    我最近遇到了一个扩展名为 pid 的文件 并查看了它的内部 但没有找到太多内容 这文档 says Pid 文件是包含进程标识号 pid 的文件 该文件存储在文件系统的明确定义位置 从而允许其他程序找到正在运行的脚本的 pid 任何人都可以对
  • Java程序如何获得自己的进程ID?

    如何获取我的 Java 进程的 ID 我知道有几种依赖于平台的技巧 但我更喜欢更通用的解决方案 不存在可以保证在所有 jvm 实现中工作的独立于平台的方法 ManagementFactory getRuntimeMXBean getName
  • 使用批处理查找java PID

    我需要从 Windows 批处理控制台知道 java 进程 PID echo off set p CD FOR F tokens 1 A IN JAVA HOME bin jps exe v find p DO SET str A echo
  • 有没有办法链接linux的线程TID和pthread_t“线程ID”

    在 Linux 上 线程由pthread t或 TID 我正在寻找这两种线程 id 之间的桥梁 given a pthread t我可以得到它吗TID 显然 https stackoverflow com questions 558469
  • 如何查看linux中特定进程每5秒的内存消耗情况

    我只是想知道如何找到特定进程在特定时间 比如5秒 的内存消耗 我是linux新手 因此 详细的步骤将不胜感激 Use top p PID其中 PID 是进程 ID 应显示有关进程的信息 包括使用的系统内存百分比 类型d以及一个以秒为单位的整
  • 在 python 中,是否有跨平台的方法来确定哪个进程正在侦听给定端口?

    在linux下 我可以使用lsof i如以下函数所示 def FindProcessUsingPort portnum import os fp os popen lsof i s portnum lines fp readlines fp
  • 如何在 Makefile 中获取 make 命令的 pid?

    我想使用此构建特有的临时目录 如何在 Makefile 中获取 make 命令的 pid I tried TEMPDIR tmp myprog 但这似乎存储TEMPDIR as tmp myprog 然后将 eval 作为每个引用此命令的新
  • 如何将文本文件中的变量获取到 Bash 变量中

    简单的问题 在 BASH 中 我试图读取 pid 文件来终止进程 如何将该文件读入变量 我发现的所有示例都试图以多行方式阅读 我只想读取仅包含 PID 的一个文件 bin sh PIDFile var run app to kill pid

随机推荐