经常有人会问到PID的用法,今天小编在这里例举温度控制中的PID部分,希望能够把PID的具体应用说明白。

先说几个名词:

1.直接计算法和增量算法:这里的所谓增量算法就是相对于标准算法的相邻两次运算之差,得到的结果是增量,也就是说,在上一次的控制量的基础上需要增加(负值意味着减少)控制量,例如对于可控硅电机调速系统,就是可控硅的触发相位还需要提前(或迟后)的量,对于温度控制就是需要增加(或减少)加热比例,根据具体的应用适当选择采用哪一种算法,但基本的控制方法、原理是完全一样的,直接计算法得到的是当前需要的控制量,相邻两次控制量的差就是增量;

2.基本偏差e(t):表示当前测量值与设定目标间的差,设定目标是被减数,结果可以是正或负,正数表示还没有达到,负数表示已经超过了设定值。这是面向比例项用的变动数据。

3.累计偏差:这是我们每一次测量到的偏差值的总和,这是代数和,考虑到他的正负符号的运算,这是面向积分项目的一个变动数据。

4.基本偏差的相对偏差:e(t)-e(t-1),用本次的基本偏差减去上一次的基本偏差,用于考察当前控制的对象的趋势,作为快速反应的重要依据,这是面向微分项的一个变动数据。

5.三个基本参数:Kp,Ki,Kd.这是做好一个控制器的关键常数,分别成为比例常数、积分常数和微分常数,不同的控制对象他们需要选择不同的数值,还需要经过现场调试才能获得较好的效果。

6.标准的直接计算法公式

上一次的计算值:

两式相减得到增量法计算公式:

*这里我们对∑项的表示应该是对e(i)从1到t全部总和,但为了打字的简便就记作∑e(t)。

三个基本参数Kp,Ki,Kd.在实际控制中的作用

Ki = Kp*( T/Ti)

Kd = Kp*( Td/T)
Kp 比例系数; T 扫描周期; Ti积分时间; Td微分时间;

比例调节作用:是按比例反应系统的偏差,系统一旦出现了偏差,比例调节立即产生调节作用以减少偏差。比例作用大,可以加快调节,减少误差,但是过大的比例,使系统的稳定性下降,甚至造成系统的不稳定。

积分调节作用:是使系统消除稳态误差,提高无差度。因为有误差,积分调节就进行,直至无差,积分调节停止,积分调节输出一常值。积分作用的强弱取决于积分时间常数Ti,Ti越小,积分作用就越强。反之Ti大则积分作用弱,加入积分调节可使系统稳定性下降,动态响应变慢。积分作用常与另两种调节规律结合,组成PI调节器或PID调节器。

微分调节作用:微分作用反映系统偏差信号的变化率,具有预见性,能预见偏差变化的趋势,因此能产生超前的控制作用,在偏差还没有形成之前,已被微分调节作用消除。因此,可以改善系统的动态性能。在微分时间选择合适情况下,可以减少超调,减少调节时间。微分作用对噪声干扰有放大作用,因此过强的加微分调节,对系统抗干扰不利。此外,微分反应的是变化率,而当输入没有变化时,微分作用输出为零。微分作用不能单独使用,需要与另外两种调节规律相结合,组成PD或PID控制器。

具体应用中的数值量化处理

上面只是控制算法的数学方法,似乎有点抽象,在具体的控制项目中怎样对应呢?下面举一个在温度控制中的处理方法。

处理上的一些常用方法

参数的设定与调整

这是PID最困难的部分,编程时只设定他们的大概数值,然后通过反复的调试才能找到相对比较理想的参数值。面向不同的控制对象参数都不同,所以我们无法提供参考数值,但是我们可以根据这些参数在整个PID过程中的作用原理,来讨论我们的对策。

1.加温很迅速就达到了目标值,但是温度过冲很大:

a)比例系数太大,致使在未达到设定温度前加温比例过高;

b)微分系数过小,致使对对象反应不敏感;

2.加温经常达不到目标值,小于目标值的时间较多:

a)比例系数过小,加温比例不够;

b)积分系数过小,对恒偏差补偿不足;

3.基本上能够在控制目标上,但上下偏差偏大,经常波动:

a)微分系数过小,对即时变化反应不够快,反映措施不力;

b)积分系数过大,使微分反应被淹没钝化;

c)设定的基本定时周期过短,加热没有来得及传到测温点;

4.受工作环境影响较大,在稍有变动时就会引起温度的波动:

a)微分系数过小,对即时变化反应不够快,不能及时反映;

b)设定的基本定时周期过长,不能及时得到修正;

选择一个合适的时间常数很重要,要根据我们的输出单元采用什么器件来确定,如果是采用可控硅的,则可设定时间常数的范围很自由,如果采用继电器的则过于频繁的开关会影响继电器的使用寿命,所以就不太适合采用较短周期。一般的周期设定范围为1-10分钟较为合适。

为了调试方便,起码在调试阶段您必须编制一个可以对参数进行随时修改和记忆的接口,否则你会很辛苦,老是在现场与办公室之间来回跑。

关于自整定问题

在通用仪表行业用的比较多,因为他们的工作对象是不确定的,而不同的对象所使用的参数是千变万化的,所以无法为用户设定参数。这就引入了自整定的概念,用户首次使用的时候,启动自整定功能专门为新的工作对象寻找一套参数,并把他们记忆下来,作为今后工作的依据。其实自整定也就是作N次的测定,根据实际变化反应反复对参数进行修正,当达到一定要求后宣告自整定完成。这是一个多元素的优化问题,可以采用很多种优化方法,例如0.618黄金分割法就是一种很不错的算法,可以参考有关优化算法的书籍,我们这里就不做讨论了,需要说明的是,我们是对全部参数进行同时优化的,根据出现的不同情况去修正不同参数,我们的修正量将逐步缩小,当我们的修正量达到一定的范围以后,或者实测温度变化波动已经达到一定范围以后就可以认为自整定过程结束,记录最后结果返回正常控制状态。由于优化过程需要进行大量的试探,所以一次自整定过程往往需要花费很长时间,一般在半小时到两个小时左右。

修正的对策基本上就是上一节我们讨论的几种,对具体每一项参数的修正量,我们还可以赋以不同的比例参数,根据您认为的影响重要程度来确定,在0-1之间选取。

编后语

控制的方法不是只有PID一种,在很多场合他也未必就是最佳的控制算法,随着大量的应用研究,有很多种新的理念新的方法可以完全替代它,但是PID作为一种基本的控制算法已经比较成熟,基于PID为基础的变种算法或者叫做加强算法也派生了很多,他们的控制效果往往会比PID更有效,最常见的是这里的3个参数以控制目标为基准,参数相应成比例的变化,PID上的PID。面向每一个的工作对象,您可以摸索出一种最适合您的对象的控制方法,不拘一格,开创自己的路。

PID基础的更多相关文章

  1. PID控制器开发笔记之三:抗积分饱和PID控制器的实现

    积分作用的引入是为了消除系统的静差,提高控制精度.但是如果一个系统总是存在统一个方向的偏差,就可能无限累加而进而饱和,极大影响系统性能.抗积分饱和就是用以解决这一问题的方法之一.这一节我们就来实现抗积 ...

  2. 某科学的PID算法学习笔记

    最近,在某社团的要求下,自学了PID算法.学完后,深切地感受到PID算法之强大.PID算法应用广泛,比如加热器.平衡车.无人机等等,是自动控制理论中比较容易理解但十分重要的算法. 下面是博主学习过程中 ...

  3. (3.12)mysql基础深入——mysql日志文件/其他文件(socket/pid/表结构/Innodb)

    (3.12)mysql基础深入——mysql日志文件/其他文件(socket/pid/表结构/Innodb) 关键词:mysql日志文件,mysqldumpslow分析工具 目录:日志文件的分类 1. ...

  4. mongodb基础篇

    一.  关于mongodb 两种非关系数据库 Redis:满足极高读写性能的Key-Value数据库 键值式储存,可以通过键快速查询到值. 内存数据库,类似于mencached.性能出色.容量低,不具 ...

  5. 浅谈:javascript的面向对象编程之基础知识的介绍

    在进入javascript的面对对象之前,我们先来介绍一下javascript的几个概念. 1.javascript的面向对象的基本概念 function aa(){ } /* * 这里的aa,在我们 ...

  6. web前端基础知识-(七)Django进阶

    通过上节课的学习,我们已经对Django有了简单的了解,现在来深入了解下~ 1. 路由系统 1.1 单一路由对应 url(r'^index$', views.index), 1.2 基于正则的路由 u ...

  7. Linux基础知识整理

    一.基础知识 1.Linux简介 Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户.多任务.支持多线程和多CPU的操作系统.它能运行主要的UNIX工具软件 ...

  8. java必备基础知识点

    Java基础 1. 简述Java的基本历史 java起源于SUN公司的一个GREEN的项目,其原先目的是:为家用消费电子产品发送一个信息的分布式代码系统,通过发送信息控制电视机.冰箱等 2. 简单写出 ...

  9. Nginx概念及基础安装--详细讲解

    1.主要内容: Nginx的基础           特性           配置部署           优化(了解) 2.Nginx 是什么? Nginx是一个开源的,支持高性能,高并发的www ...

随机推荐

  1. Window下Python+CUDA+PyTorch安装

    1 概述 Windows下Python+CUDA+PyTorch安装,步骤都很详细,特此记录下来,帮助读者少走弯路. 2 Python Python的安装还是比较简单的,从官网下载exe安装包即可: ...

  2. GO-05-数据类型

    基本数据类型: 整型.浮点型 float32 float64.复数型(数学中的复数).布尔型.字符串.字符(byte.rune). 复合数据类型: 数组(array).切片(slice).映射(map ...

  3. docker搭建简单mysql主从

    关于MySQL主从模式,如果我们直接在本机上搭建的话,是没法搭建的,只能借助于虚拟机,但有的时候我们又需要搭建一个主从集群,以便于进行一些功能性的测试.这个时候我们就可以尝试使用docker,借助于d ...

  4. kubernetes集群证书更新

    kubeadm 默认证书为一年,一年过期后,会导致api service不可用,使用过程中会出现:x509: certificate has expired or is not yet valid. ...

  5. 浅谈Asp.net Mvc之Action如何传多个参数的方法

    最近,工作上有一个需要:用户查询日志文件信息,查看某一个具体日志信息,可能同时查看该日志所在日期的其他日志信息列表. 为完成此功能,我打算在URL中传入了两个参数,一个记录此日志时间,另外一个记录日志 ...

  6. Python3解决棋盘覆盖问题的方法示例

    本文实例讲述了Python3解决棋盘覆盖问题的方法.分享给大家供大家参考,具体如下: 问题描述: 在2^k*2^k个方格组成的棋盘中,有一个方格被占用,用下图的4种L型骨牌覆盖所有棋盘上的其余所有方格 ...

  7. git基于master创建本地新分支

    应用场景:开发过程中经常用到从master分支copy一个本地分支作为开发分支 步骤: 1.切换到被copy的分支(master),并且从远端拉取最新版本 $git checkout master $ ...

  8. hdu3234 带权并查集(XOR)

    题意:       给你n个未知的正整数,有三总操作       I P V            P的值是V       I P Q V          P XOR Q = V       Q K ...

  9. POJ3692 最大点权独立集元素个数

    题意:      n个男孩和m个女孩,给你他们谁和谁彼此了解,问你要找到一个集合,使得这个集合中的男孩和女孩相互了解,并且人数最多. 思路:      简单题目,其实就是在求最大点权独立集元素个数,先 ...

  10. 使用DirectX截屏

    网上有很多关于DirectX截屏的文章,但大都是屏幕截图,很少有窗口截图,本文则两者都涉及到,先讲如何截取整个屏幕,再讲如何截取某个窗口,其实二者的区别不大,只是某个参数的设置不同而已,最后我们还将扩 ...