数字式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算法的理论模型请参考自动控制理论,最早出现的是模 ...
随机推荐
- asp.net全局记住值
每个网页都要记住名字和密码! 在Page_Load中写如下代码: Session[“起个名字”]=要赋值的; 在显示的时候写 Response.write(Session[“当时起的名字”.ToStr ...
- 20141109--SQL 练习题-1
create database xinxiku go use xinxiku go create table Student ( Sno ) primary key, Sname ) not null ...
- 进程通信---FIFO
管道没有名字,所以只能在具有血缘关系的进程间使用,而在无名管道发展出来的有名管道FIFO,则有路径名与之相关联,以一种特殊设备文件形式存在于文件系统中,从而允许无亲缘关系的进程访问FIFO,下面看FI ...
- Aborting a running program
In the event that a calculation appears to be running excessively long, one can abort thecalculation ...
- C++ 中的 const 详解
作者:jostree 转载请注明出处 http://www.cnblogs.com/jostree/p/4235721.html 1.为什么使用 const int 而不使用 #define 在使用# ...
- JavaScript “完美运动框架”
/* “完美运动框架”,所谓“完美”,就是可以实现多个参数,多个物体运动互不影响的一个运动函数move(). * 大致结构如下:运动框架 EXP: move(obj,{width:200,height ...
- $(document).height()、$("body").height()、$(window).height()区别和联系
前言:在此以高度为示例,宽度问题可类推.在移动端开发中,经常遇到需要把一块内容定位于底部的情况,当页面内容不满一屏时,需要设为fixed,而超过 一屏时,需要设为static随页面顶到底部,此时就需要 ...
- CDH JPS 出现没有名字的进程
jps 时出现没有名字的进程 或者process information unavailable 把服务关掉,执行一下 rm -rf /tmp/hsperfdata_* 再重启就好了.
- 比较不错的JS 曲线图
fashion chart falsh文件支持,无需考虑兼容 Highcharts(纯JS,很漂亮 效果很好) Highcharts是一个制作图表的纯Javascript类库,主要特性如下: 兼容 ...
- Translation001——android
请尊重原创,转载请注明出处: Author:KillerLegend Link:http://www.cnblogs.com/killerlegend/ BEGIN****************** ...