专项:PID控制方法深究

news2024/11/13 12:10:36

1.前言

PID在工业界随处可见。其的原理是什么?

2.数学物理代表意义

PID全名为比例积分微分控制器。顾名思义,表明其由三个控制器组成。

一是P,其代表比例(Proportional);

二是I,其代表积分(Integral);

三是D,其代表微分(Derivative);

 通常,都是用温度差(Tset-Tnow)来对PID的原理进行解释。

 PID的计算公式为:

u(t)=Kp\times e(t)+Ki\times \int_{0}^{t}e(\tau )d\tau +Kd\times \frac{d}{dt}e(t)

在该公式中,第一项为比例,第二项为积分,第三项为微分;

Kp为比例增益;Ki为积分增益;Kd为微分增益。这三个增益均是常数,且会根据情况进行调整。

e为误差,等于设定值减去目前值;

t为目前时间;

\tau为积分常数

以上这几个变量影响PID的数值,重点是误差e;

3.举例说明

此处以锅炉烧水为研究背景,这里需要将锅炉中的水烧到指定的温度。

比例: 考虑当前误差,意思是如果温度太低就给全力加热,随着温度上升等比例的减小加热力度

积分:考虑过去误差,意思是看之前的温度变化,来调整开关温度的时间点

微分:考虑将来误差,意思是预测未来的温度变化,来达到启动加热的的变化;

这里将三个量等价于位移,速度,加速度 。

下图是只以比例控制方式来对锅炉中的水温进行控制时水温与时间的关系:

由上图可知比例公式就是单纯的温度差。

积分:考虑过去误差

这里举例热量为例子来加强理解:

 在式中,H为热量,m为水的质量,s为比热容,\bigtriangleup T为温度差。

将温度T比作速度V,热量H比作位移X

下图为速度与时间关系图,这里可以等价于温度与时间的关系

 图中的深蓝色面积为位移(等价于热量)。

 相当于算出质量,算出比热,算出从初始温度到设定温度所需要多少热量。但是余温会提供多余的热量,导致温度过高,如图:

 这时候用温度差去计算,会得到负值,既加热器提供的余温所产生的面积会被当负值去扣掉原本所需热量的面积。如图:

 这样就达到了提前停止的目的,如图:

所以积分的计算公式为温度差乘以取样时间,且每次计算都是从0到t的加总。既每次都是取当前面积大小,

微分:是考虑将来误差,其的计算公式为目前温差减去上次取样的温度差除以时间。

t就是取样的时间差,可以为很多种数值:

那怎么对将来误差做判断呢?

这里本质是从斜率的角度考虑,考虑单个因子的物理意义,这里单个因子就是温度差,则表明斜率代表的是温度差的变化快慢,当斜率偏大,表明此时的温度差变化偏大,未来的温度变化会变得凶猛。

 斜率偏大:(表明此刻取样与上一时刻的取样变化很大)

当斜率过小:

当斜率趋近于0:

 再次强调:当斜率等于0,表明温度趋于稳定。因为每次都是取y轴的本次温度差与上一次的温度差。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1468123.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Java程序设计】【C00267】基于Springboot的在线考试系统(有论文)

基于Springboot的在线考试系统(有论文) 项目简介项目获取开发环境项目技术运行截图 项目简介 本系统是基于Springboot的在线考试系统;本系统主要分为管理员、教师和学生三种角色; 管理员登录系统后,可以对首页&#x…

C# (WebApi)整合 Swagger

SpringBoot-整合Swagger_jboot整合swagger-CSDN博客 C# webapi 也可以整合Swagger webapi运行其实有个自带的HELP页面 但是如果觉得UI不好看,且没办法显示方法注释等不方便的操作,我们也可以整合Swagger 一、使用NuGet控制台安装Swagger 在菜单中选择…

day41打卡

day41打卡 46. 携带研究材料(第六期模拟笔试) 状态表示 ​ 二维:dp[i] [j] 表示从下标为[0-i]的物品里任意取,放进容量为j的背包,价值总和最大是多少。 一维: ​ dp[j]表示:容量为j的背包&a…

第三百六十五回

文章目录 1. 概念介绍2. 方法与信息2.1 获取方法2.2 详细信息 3. 示例代码4. 内容总结 我们在上一章回中介绍了"如何获取设备信息"相关的内容,本章回中将介绍如何获取App自身的信息.闲话休提,让我们一起Talk Flutter吧。 1. 概念介绍 我们在本…

在 where子句中使用子查询(一)

目录 子查询返回单行单列 查询公司工资最低的员工信息 查找公司雇佣最早的员工信息 子查询返回单行多列 查询与 ALLEN 工资相同,职位相同的所有员工信息 子查询返回多行单列 IN 操作 查询职位是“MANAGER”的所有员工的薪水 Oracle从入门到总裁:https://bl…

Xcode中App图标和APP名称的修改

修改图标 选择Assets文件 ——> 点击Applcon 换App图标 修改名称 点击项目名 ——> General ——> Display Name

华清远见作业第四十二天——Qt(第四天)

思维导图&#xff1a; 编程&#xff1a; 代码&#xff1a; widget.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include<QTextToSpeech> //语音播报类 QT_BEGIN_NAMESPACE namespace Ui { class Widget; } QT_END_NAMESPACEclass Widget : public Q…

内核解读之内存管理(6)address_space建立文件索引结点inode和页page、虚拟地址空间vma的映射

内存管理和文件系统总会交织在一起&#xff0c;所以我们今天聊的内容和文件系统有关。 上一节的struct page结构体中&#xff0c;我们看到了一个成员struct address_space*。很明显是用于建立page和address_space的关联。 它是代表某个地址空间吗&#xff1f;实际上不是的&am…

华为OD机试真题-执行时长-2023年OD统一考试(C卷)---Python3-开源

题目&#xff1a; 考察内容&#xff1a; if for math.ceil()向上取整 代码&#xff1a; """ 题目分析&#xff1a;输入&#xff1a; int 1次最多执行的任务个数 int 数组长度 list 任务数组--表示任务个数 输出&#xff1a; 执行完所有任务最小时间 eg: 3…

C语言-指针详解速成

1.指针是什么 C语言指针是一种特殊的变量&#xff0c;用于存储内存地址。它可以指向其他变量或者其他数据结构&#xff0c;通过指针可以直接访问或修改存储在指定地址的值。指针可以帮助我们在程序中动态地分配和释放内存&#xff0c;以及进行复杂的数据操作。在C语言中&#…

【Java程序设计】【C00288】基于Springboot的篮球竞赛预约平台(有论文)

基于Springboot的篮球竞赛预约平台&#xff08;有论文&#xff09; 项目简介项目获取开发环境项目技术运行截图 项目简介 这是一个基于Springboot的篮球竞赛预约平台 本系统分为前台功能模块、管理员功能模块以及用户功能模块。 前台功能模块&#xff1a;用户进入到平台首页&a…

CSDN付费阅读需要哪些条件?

文章目录 前言一、博客等级要求二、原力等级要求结束语 前言 hello&#xff0c;大家好&#xff01;我是BoBo仔吖&#xff0c;祝大家元宵节快乐呀~ csdn是一个善良的网站&#xff0c;它提供了各种功能空间&#xff0c;比如InsCode运行代码&#xff0c;还有鼓舞大家努力发文的勋…

全能代码生成器,自动生成前后端代码、生成项目框架、生成JavaBean、生成数据库文档、自动化部署项目(TableGo v8.4.0)

TableGo_20240224 v8.4.0 正式版发布&#xff0c;此次版本累计更新如下&#xff1a; 1、TableGo专属LOGO上线 2、生成数据库文档ER图新增备注字段名的生成配置 3、生成自定义文件功能新增临时参数配置&#xff0c;用于使用临时数据生成自定义文件 4、新增基于Excel数据生成…

【算法与数据结构】127、LeetCode单词接龙

文章目录 一、题目二、解法三、完整代码 所有的LeetCode题解索引&#xff0c;可以看这篇文章——【算法和数据结构】LeetCode题解。 一、题目 二、解法 思路分析&#xff1a;示例1为例&#xff0c;hit到达cog的路线不止一条&#xff0c;如何找到最短是关键。广度优先搜索是一圈…

汪峰哭晕在厕所-《实现领域驱动设计》中译本评点-第2章(1)

相关链接 DDD领域驱动设计批评文集>> 《实现领域驱动设计》的翻译错误>> [答疑]《实现领域驱动设计》的译者其实没错?&#xff08;一&#xff09;>> [答疑]《实现领域驱动设计》的译者其实没错?&#xff08;二&#xff09;>> 十多年前&#xff0…

设计一个 shell 命令行程序

目录 实现 shell 主要思路 代码&#xff08;Linux&#xff09;系统 实现 shell 主要思路 1、要知道一个 shell 进程在运行起来都会在命令行呈现什么&#xff0c;如图是Xshell 登录成功后的界面&#xff1a;所以第一步要做的就是打印命令行提示符。 Xshell 命令行提示符的组…

人工智能_普通服务器CPU_安装清华开源人工智能AI大模型ChatGlm-6B_003---人工智能工作笔记0098

前面的环境安装差不多了,这里我没有安装git,因为我认为用不到,好下面去下载算法: 首先是算法下载: https://codeload.github.com/THUDM/ChatGLM-6B/zip/refs/heads/main 算法的下载连接是这里: 可以看到下载以后得到这个ChatGLM-6B-main这个算法压缩包 然后我们再去: 然后…

Linux配置Maven环境变量

天行健&#xff0c;君子以自强不息&#xff1b;地势坤&#xff0c;君子以厚德载物。 每个人都有惰性&#xff0c;但不断学习是好好生活的根本&#xff0c;共勉&#xff01; 文章均为学习整理笔记&#xff0c;分享记录为主&#xff0c;如有错误请指正&#xff0c;共同学习进步。…

探究全链路压力测试的含义与重要性

全链路压力测试是指对整个应用系统的各个环节或组件进行压力测试&#xff0c;以模拟实际生产环境中的用户负载和流量&#xff0c;评估系统在高负载条件下的性能表现。 1. 全链路压力测试的含义 全链路压力测试涉及系统的所有组件和环节&#xff0c;包括前端用户界面、应用服务器…

Java多线程并发学习

一、Java 中用到的线程调度 1. 抢占式调度&#xff1a; 抢占式调度指的是每条线程执行的时间、线程的切换都由系统控制&#xff0c;系统控制指的是在系统某种运行机制下&#xff0c;可能每条线程都分同样的执行时间片&#xff0c;也可能是某些线程执行的时间片较长&#xff0…