数字式PID控制的应用总结
PID控制是一个二阶线性闭环控制器,通过调整比例、积分和微分三项参数,使得大多数的工业控制系统获得良好的闭环控制性能。PID控制优点:a. 技术成熟,b. 易被人们熟悉和掌握,c. 不需要建立数学模型,d. 控制效果好,e. 鲁棒性。
一. 模拟量PID控制算法
模拟量PID控制器的基本算式为:
u(t)——控制器(或调节器)的输出;
e(t)——控制器的输入(通常是设定值与被控量之差,即e(t)=r(t)-c(t));
Kp——比例放大系数;
Ti ——积分时间;
Td——微分时间。
模拟量PID控制器的输出是仪表标准信号(如1-5VDC,4-20mA等),对应阀门开度0%-100%。
二. 离散量PID控制算法
数字式PID控制又分为位置式PID控制和增量式PID控制。
由于计算机基于采样控制理论,计算方法不能沿袭传统的模拟PID控制算法(公式1),必须将控制模型离散化,这样就可以让计算机或者单片机通过采样的方式实现数字PID控制。离散化的方法:以T为采样周期,k为采样序号,用求和的形式代替积分,用增量的形式(求差)代替微分,这样可以将连续的PID计算公式离散。
1. 位置式PID控制算法
设u(k)为第k次采样时刻控制器的输出值,可得离散的PID算式:
位置式PID输出是一个数字量,其数值范围需要设置输出下限值和上限值来决定。
u(k)可直接控制执行机构(如阀门),u(k)的值经过D/A转换与执行机构的位置(如阀门开度)互相对应。
位置式PID控制算法的缺点:当前采样时刻的输出与过去的各个状态有关,计算时要对e(k)进行累加,运算量大;而且控制器的输出u(k)对应的是执行机构的实际位置,如果计算机出现故障,u(k)的大幅度变化会引起执行机构位置的大幅度变化。
2. 增量式PID控制算法
增量式PID是指数字控制器的输出只是控制量的增量Δu(k)。采用增量式算法时,计算机输出的控制量Δu(k)对应的是本次执行机构位置的增量,而不是对应执行机构的实际位置,因此要求执行机构必须具有对控制量增量的累积功能,才能完成对被控对象的控制操作。执行机构的累积功能可以采用硬件的方法实现;也可以采用软件来实现,如利用算式 u(k)=u(k-1)+Δu(k)程序化来完成。

公式(3)或者(4)给出了控制量的变化大小,称之增量式PID控制算法。
一般计算机控制系统的采样周期T在选定后就不再改变,所以,一旦确定了Kp、Ti、Td,只要使用前后3次测量的偏差值即可由式(3)或式(4)求出控制增量。
增量式算法优点:
①算式中不需要累加。控制增量Δu(k)的确定仅与最近3次的采样值有关,容易通过加权处理获得比较好的控制效果;
②计算机每次只输出控制增量,即对应执行机构位置的变化量,故机器发生故障时影响范围小、不会严重影响生产过程;
③手动—自动切换时冲击小。当控制从手动向自动切换时,可以作到无扰动切换。
位置式PID与增量式PID的比较:
(1)位置式PID控制的输出与整个过去的状态有关,用到了误差的累加值;而增量式PID的输出只与当前拍和前两拍的误差有关,因此位置式PID控制的累积误差相对更大;
(2)增量式PID控制输出的是控制量增量,并无积分作用,因此该方法适用于执行机构带积分部件的对象,如步进电机等,而位置式PID适用于执行机构不带积分部件的对象,如电液伺服阀。
(3)由于增量式PID输出的是控制量增量,如果计算机出现故障,误动作影响较小,而执行机构本身有记忆功能,可仍保持原位,不会严重影响系统的工作,而位置式的输出直接对应对象的输出,因此对系统影响较大。
三. 离散量PID输出信号的转换
数字式PID运算出来的是一个没有量纲的数据,该数据的大小仅表示的PID调节的强度,数据大调节度就大。PID运算值一般需要进行合适的信号转换,才能被各种执行机构所使用。常见的信号转换有:
1、PID+D/A转换
PID运算值经过D/A转换为常见的如1-5VDC、4-20mA等仪表标准信号,再输出控制各种标准的执行机构,如电液伺服阀。
2、 PID+PWM转换
在PID控制温度时,常使用固态继电器(SSR:Solid State Relay)或者可控硅(SCR:Silicon Controlled Rectifier,又称晶闸管)作为执行机构,这时就需要把PID运算值进行脉冲宽度调制(PWM)。注意使用可控硅控制时稍为复杂,即需要检测电源相位,并使调宽脉冲与导通角同步。
PWM(简称脉宽调制)就是要改变脉冲的占空比。一般将PID计算出的数据直接赋给内部定时器控制占空比,但是要对最大值和最小值加以限定。我们假设当定时器的值为0时占空比为0%,值为2000时占空比为100%,这样PID计算出不同的值,就改变了脉冲的占空比。
3、 PID+脉冲转换
在PID控制步进/伺服电机时,需要把PID计算值转换为脉冲信号,即脉冲频率和占空比一般确定,而脉冲数量跟随PID计算值变化
数字式PID控制的应用总结的更多相关文章
- 【iCore3应用开发平台】发布 iCore3 应用开发平台PID控制代码
说明:1.本代码包包含FPGA和STM32F407两部分内容2.FPGA工程为出厂代码FPGA工程,版本为REV43.STM32F407为只含PID控制的ARM工程4.在使用风扇过程中,请勿将手伸入扇 ...
- 两轮自平衡小车双闭环PID控制设计
两轮自平衡小车的研究意义 ...
- PID控制学习笔记(二)
不管是基本的PID控制还是变形的PID控制算法,其核心都是对输入信号(设定值信号.测量信号或者偏差信号等)做基本的比例.积分.微分运算,最终提供给被控过程良好的调节信号. 在过程控制仪表,特别是在数字 ...
- SLAM+语音机器人DIY系列:(四)差分底盘设计——5.底盘PID控制参数整定
摘要 运动底盘是移动机器人的重要组成部分,不像激光雷达.IMU.麦克风.音响.摄像头这些通用部件可以直接买到,很难买到通用的底盘.一方面是因为底盘的尺寸结构和参数是要与具体机器人匹配的:另一方面是因为 ...
- MATLAB-离散系统的数字PID控制仿真
%PID Controller clear all; close all; ts=0.001; %采样时间=0.001s sys=tf(,]); %建立被控对象传递函数 dsys=c2d(sys,t ...
- 了解PID控制
@2019-03-07 [小记] 了解PID控制 比例 - 积分 - 微分 积分 --- 记忆过去 比例 --- 了解现在 微分 --- 预测未来
- PID控制最通俗的解释与PID参数的整定方法
转自->这里 PID是比例.积分.微分的简称,PID控制的难点不是编程,而是控制器的参数整定.参数整定的关键是正确地理解各参数的物理意义,PID控制的原理可以用人对炉温的手动控制来理解.阅读本文 ...
- STM32L476应用开发之七:流量的PID控制
在气体分析仪使用过程中,为了力求分析结果的准确性,一般要求通过的气体流量尽可能的稳定.为了保证流量控制的稳定,我们采用PID调节来控制气路阀门的开度. 1.硬件设计 我们采用的流量计为气体质量流量计, ...
- 转 C#实现PID控制的模拟测试和曲线绘图
C#实现PID控制的模拟测试和曲线绘图 本文分两部分,一部分是讲PID算法的实现,另一部分是讲如何用动态的曲线绘制出PID运算的结果. 首先,PID算法的理论模型请参考自动控制理论,最早出现的是模 ...
随机推荐
- HTML+CSS学习总结:
1. 注释:<div> 是一个块级元素,也就是说,浏览器通常会在 div 元素前后放置一个换行符. 提示:请使用 <div> 元素来组合块级元素,这样就可以使用样式对它们进行格 ...
- Java一些常见的出错异常处理
一些平时常见的错误及解决办法,我 是新手,每次遇到的错误都记录了下来. 1. 404错误 description The requested resource (/Struts2_0100_Intro ...
- 济南学习 Day1 T3 am
凝视[问题描述]背包是个好东西,希望我也有.给你一个二维的背包,它的体积是N*M.现在你有一些大小为1× 2和1×3的物品,每个物品有自己的价值.你希望往背包里面装一些物品,使得它们的价值和最大,问最 ...
- iOS网络加载图片缓存策略之ASIDownloadCache缓存优化
iOS网络加载图片缓存策略之ASIDownloadCache缓存优化 在我们实际工程中,很多情况需要从网络上加载图片,然后将图片在imageview中显示出来,但每次都要从网络上请求,会严重影响用 ...
- Azure + vsftpd + ubntu14 + 虚拟用户 遇到的问题:从网上摘抄
:在Azure安装好ubuntu虚拟机,安装包选择ubuntu14.04 LTS,选择LTS,以便微软对其以后的更好支持,不选就可能技术支持不会很久,现只开一台,端口默认选择22 :打开虚拟机,进入端 ...
- 万能的SQLHelper帮助类
/// <summary> /// 数据库帮助类 /// </summary> public class SQLHelper { private static string c ...
- Nginx启动SSL功能,并进行功能优化,你看这个就足够了
一:开始Nginx的SSL模块 1.1 Nginx如果未开启SSL模块,配置Https时提示错误 nginx: [emerg] the "ssl" parameter requir ...
- Android砖机救活(索爱MT15i)
前言 接触Android时间长了就想编译一套属于自己的系统,摘取不必要的那些组件,然后刷到手机上,俗话说的好,“常在河 边走,哪有不湿鞋”.果不其然,刷完自己编译的系统手机变砖了,具体情况为 开不开机 ...
- string和json转换的简单应用
import com.alibaba.fastjson.JSON; String strjson = request.getParameter("param"); //url-js ...
- jQuery实现公告文字左右滚动
jQuery实现公告文字左右滚动的代码. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" &qu ...