PID数字调节器的设计LCD显示Word下载.docx
- 文档编号:21604941
- 上传时间:2023-01-31
- 格式:DOCX
- 页数:26
- 大小:291.53KB
PID数字调节器的设计LCD显示Word下载.docx
《PID数字调节器的设计LCD显示Word下载.docx》由会员分享,可在线阅读,更多相关《PID数字调节器的设计LCD显示Word下载.docx(26页珍藏版)》请在冰豆网上搜索。
微分作用的强弱取决于微分时间Td的大小,Td越大,微分作用越强,反之则越弱。
数字PID调节器就是将模拟信号(包括电流、电压)通过AD转换变为数字信号,微处理器(本设计采用单片机)再将数字信号通过一定的算法进行一定的处理,
然后将处理过后的数字信号通过PWM输出。
第二章总体设计方案
PID调节器将变送器传过来的4~20mA的电流信号,经硬件滤波电路(RC)进行滤波,再接250欧姆的电阻转换为1~5V,送入ADC0832进行转化,AD转换后的信号送入单片机进行PID运算,然后以PWM输出(0~5V),同时用LCD1602进行显示。
此外用四个独立按键(K1功能键、K2确定键、K3加法键、K4减法键)进行操作,以实现对PID参数的设定。
总体流程图如图2.1所示。
图2.1总体流程图
第三章调节器的硬件设计
3.1单片机的选型
AT89C52是51系列单片机的一个型号,它是ATMEL公司生产的.它是一个低电压,高性能CMOS8位单片机,片内含8kbytes的可反复擦写的Flash只读程序存储器和256bytes的随机存取数据存储(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,功能强大的AT89C52单片机可实现较复杂的系统控制应用场合。
AT89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,AT89C52可以按照常规方法进行编程,但不可以在线编程(S系列的才支持在线编程)。
其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。
其管脚图如下图3.1所示。
图3.1AT89C52管脚图
3.2I/V转换电路
在与电流输出的传感器接口的时候,为了把变送器输出的4-20mA电流信号转换成为电压信号,最简单的就是加250欧姆的电阻,仅使用一只I/V转换取样电阻,虽然简单,但是有部分的电压损失,首先,其实际意义是零点信号的时候,会有一个零点电流流过取样电阻,如果按照4-20mA输入电流转换到最大5V电压来分析,零点的时候恰好就是1V,这个1V在单片机资源足够的时候,可以由单片机软件去减掉它。
可是这样一来。
其有用电压就会剩下5-1=4V而不是5V了。
由于单片机的A/D最大输入电压就是单片机的供电电压,这个电压通常就是5V,因此,处理这种简单的输入转换电路时比较麻烦。
为了达到A/D转换的位数,就会导致芯片成本增加。
为了解决上面问题的,设计如图3.2所示的电路。
3.2I/V转换电路
其原理是:
在单片机输入之前配置一个由运算放大器组成的缓冲处理电路,增加这级运算放大器可以起到对零点的处理会变得更加方便,无需耗用单片机的内部资源,尤其单片机是采用A/D接口来接受这种零点信号不为零电压的输入时,可以保证A/D转换位数的资源能够全部应用于有用信号上。
图中的R是电流取样电阻,其值的大小主要受变送器供电电压的制约,当前级采用12V供电时,R经常会使用200Ω的阻值,同时,线路输入与主电路的隔离作用还可以起到保护单片机系统的作用。
图3.2采用的是廉价运放LM324,其对零点的处理是在反相输入端上加入一个调整电压,其大小恰好为输入4mA时在R上的压降。
有了运算放大器,还使得R的取值可以更加小,因为这时信号电压不够大的部分可以通过配置运放的放大倍数来补足。
这样,就可以真正把4~20mA电流转换成为0~5V电压了。
虽然这部分的仿真成功了,但考虑到选择的运放是最最廉价的,运放的失调与漂移,以及因为运放的供电与单片机电路供电的稳定性,电源电压是否可以保证足够稳定,运放的输入阻抗是否对信号有分流影响,以及运放是否在整个信号范围内放大特性平坦,如此等等,造成这种廉价电路在真正使用时可能不尽人意。
实际中,被控对象水箱的最低液位的一些实际特性,就放弃了这部分电路的使用,直接选用250Ω的电阻。
3.3ADC0832芯片简介
3.3.1ADC0832芯片说明
ADC0832是美国国家半导体公司生产的一种8位分辨率、双通道A/D转换芯片。
由于它体积小,兼容性,性价比高而得到广泛的应用。
ADC0832接口说明:
·
CS_片选使能,低电平芯片使能。
CH0模拟输入通道0,或作为IN+/-使用。
CH1模拟输入通道1,或作为IN+/-使用。
GND芯片参考0电位(地)。
DI数据信号输入,选择通道控制。
DO数据信号输出,转换数据输出。
CLK芯片时钟输入。
Vcc/REF电源输入及参考电压输入(复用)。
一般情况下ADC0832与单片机的接口应为4条数据线,分别是CS、CLK、DO、DI。
但由于DO端与DI端在通信时并未同时有效并与单片机的接口是双向的,所以电路设计时可以将DO和DI并联在一根数据线上使用。
当ADC0832未工作时其CS输入端应为高电平,此时芯片禁用,CLK和DO/DI的电平可任意。
当要进行A/D转换时,须先将CS端置于低电平并且保持低电平直到转换完全结束。
此时芯片开始转换工作,同时由处理器向芯片时钟输入端CLK提供时钟脉冲,DO/DI端则使用DI端输入通道功能选择的数据信号。
在第1个时钟脉冲到来之前DI端必须是高电平,表示启动位。
在第2、3个时钟脉冲到来之前DI端应输入2位数据用于选择通道功能,其功能项见表3.3
表3.3ADC0832配置位
输入形式
配置位
选择通道
CH0
CH1
CHO
差分输入
+
-
1
单端输入
当配置位2位数据为1、0时,只对CH0进行单通道转换。
当配置2位数据为1、1时,只对CH1进行单通道转换。
当配置2位数据为0、0时,将CH0作为正输入端IN+,CH1作为负输入端IN-进行输入。
当配置2位数据为0、1时,将CH0作为负输入端IN-,CH1作为正输入端IN+进行输入。
到第3个时钟脉冲到来之后DI端的输入电平就失去输入作用,此后DO/DI端则开始利用数据输出DO进行转换数据的读取。
从第4个时钟脉冲开始由DO端输出转换数据最高位D7,随后每一个脉冲DO端输出下一位数据。
直到第11个脉冲时发出最低位数据D0,一个字节的数据输出完成。
也正是从此位开始输出下一个相反字节的数据,即从第11个时钟脉冲输出D0。
随后输出8位数据,到第19个脉冲时数据输出完成,也标志着一次A/D转换的结束。
最后将CS置高电平禁用芯片,直接将转换后的数据进行处理就可以了。
图3.4为ADC0832时序图。
图3.4ADC0832时序图
3.3.2ADc0832与单片机的连接
根据ADC0832的芯片原理,设计中DI,DO接P3.7信号既输入又能输出,CS的片选信号接P2.0。
ADC0832与单片机的连接图如图3.5
图3.5ADC0832与单片机的连接
3.4LCD显示模块
3.4.11602字符型LCD简介
字符型液晶显示模块是一种专门用于显示字母、数字、符号等点阵式LCD,目前常用16*1,16*2,20*2和40*2行等的模块。
一般1602字符型液晶显示器实物见图3.6所示。
图3.6LCD1602实物图
3.4.2引脚功能介绍
1602LCD采用标准的14脚(无背光)或16脚(带背光)接口,各引脚接口说明
见表3.7。
表3.7引脚接口说明表
编号
符号
引脚说明
VSS
电源地
9
D2
数据
2
VDD
电源正极
10
D3
3
VL
液晶显示偏压
11
D4
4
RS
数据/命令选择
12
D5
5
R/W
读/写选择
13
D6
6
E
使能信号
14
D7
7
D0
15
BLA
背光源正极
8
D1
16
BLK
背光源负极
下图是根据本设计要实现的功能来将其各引脚与单片机进行连接。
连接图见图3.8。
图3.8LCD1602与单片机连接图
4.1PID数字调节器的软件实现
PID数字调节器首先通过定时器T1定时采样,定时时间10MS,采样之后,用去极值平均值滤波法进行数字滤波、上下限可设的标度变换,标度变换完之后送单片机进行处理,配合键盘进行PID参数的设定,之后以PWM输出。
软件流程图如图4.1,
源程序见附录B。
4.1软件流程图
4.2AD采样及数字滤波模块
4.2.1AD采样部分
设计中,对ADC0832进行操作时,前3个脉冲用于初始化,通道选择,从第4个脉冲开始,对数据进行输出,从高到低读一次,再从低到高读一次,以确认数据的准确。
程序流程图如图4.2所示.
图4.2ADC0832子程序流程图
4.2.2数字滤波部分
所谓的数字滤波,就是在计算机中通过软件按照某种算法对输入信号进行平滑加工等处理,以减少干扰在有用信号中的比重,提高信号的真实性。
常用的数字滤波的方法有算术平均值滤波法、限幅滤波法、滑动平均滤波法、一阶滞后滤波法、中值滤波法等。
以下对几种常用的方法做简要的介绍。
1.算术平均值滤波法:
连续取N个采样值进行算术平均运算。
优点:
适用于对一般具有随机干扰的信号进行滤波,这样信号的特点是有一个平均值,信号在某一数值范围附近上下波动。
缺点:
对于测量速度较慢或要求数据计算速度较快的实时控制不适用。
2.限幅滤波法:
根据经验判断,确定两次采样允许的最大偏差值(设为A),每
次检测到新值时判断:
如果本次值与上次值之差<
=A,则本次值有效,如果本次值
与上次值之差>
A,则本次值无效,放弃本次值,用上次值代替本次值。
能有效克服因偶然因素引起的脉冲干扰。
无法抑制那种周期性的干扰,平滑度差)
3.滑动平均滤波法:
把连续取N个采样值看成一个队列,队列的长度固定为N,每次采样到一个新数据放入队尾,并扔掉原来队首的一次数据.把队列中的N个数据进行算术平均运算,就可获得新的滤波结果
对周期性干扰有良好的抑制作用,平滑度高,适用于高频振荡的系统。
灵敏度低,对偶然出现的脉冲性干扰的抑制作用较差,不易消除由于脉冲干扰所引起的采样值偏差,不适用于脉冲干扰比较严重的场合。
4.一阶滞后滤波法:
取a=0-1,本次滤波结果=(1-a)*本次采样值+a*上
次滤波结果。
对周期性干扰具有良好的抑制作用,适用于波动频率较高的场合
相位滞后,灵敏度低,滞后程度取决于a值大小,不能消除滤波频率高于采样频率的1/2的干扰信号。
5.中值滤波法:
连续采样N次(N取奇数3-5),把N次采样值按大小排列取
中间值为本次有效值。
能有效克服因偶然因素引起的波动干扰,对温度、液位的变化缓慢的被测参数有良好的滤波效果
对流量、速度等快速变化的参数不宜
6.去极值平均值滤波法:
对被测参数采样N次,并按大小顺序排列,从首尾各舍掉一个大数和一个小数,再将剩余的进行平均,这种方法既能去掉脉冲干扰,又可以对采样进行平滑加工,在快,慢系统中都能削弱干扰,提高控制质量。
综上所述,考虑到是通用调节器要适应性强,所以选用去极值平均值滤波法
在设计中,用定时器T1进行采样,采样之后进行数字滤波,程序流程图如图4.3所示。
4.3采样滤波流程图
4.3标度变换模块
计算机控制系统的各种物理参数有不同的量纲,如温度为℃;
压力采用Pa;
流量用m
/n等。
这些参数经A/D转换后,变成数字量信息输出,这个数字量虽然代表参数值的大小,但并不一定等于原来带有量纲的参数值,必须将它转换成原来参数的真实值才能进行显示,打印或使用.而这就需要标度变换。
线性标度变换公式:
(4-1)
Y---实际测量值;
Ymin---仪表测量下限;
Ymax---仪表测量上限;
Nx---Y对应的数字量;
Nmin---仪表测量下限对应的数字量;
Nmax---仪表测量上限对应的数字量;
ADC0832是8为A/D转换器,将4-20mA的电流信号转化为1-5V电压信号,A/D对应的数字量为51-255。
计算公式如下:
(4-2)
当进行显示时,1-5v电压对应本设计液位0-500mm,即:
(4-3)
则从D/A数字量到显示的实际物理量的对应关系如下:
(4-4)
式中,Y为液位实际测量值;
Ymin为液位测量下限;
Ymax为液位测量测量上限;
Vx为A/D转换器所接收电压值;
Nx为A/D转换器对应的数字量(Ymin,Ymax可设)。
4.4键盘模块
PID调节器采用4个独立建,K1接P1.4、K2接P1.5、K3接P1.6、K4接P1.7。
K1是功能键,实现Sv、Kp、Ki、Kd四种模式选择。
K2是确认键,当键按下时可进行相应参数设置,设置完后按下键即可确认保存相应数据。
K3是加计数键,K4是减计数键。
程序流程图如下4.4所示.
4.4键盘流程图
4.5PID控制模块
在模拟系统中,PID算法的表达式为:
(4-5)
式中p(t)—调节器的输出信号;
e(t)—调节器的偏差信号,它等于给定值与测量值之差;
kp—调节器的比例系数;
Ti—调节器的积分时间;
TD—调节器的微分时间。
由于计算机控制是一种采样控制,它只能根据采样时刻的偏差来计算控制量。
因此,在计算机控制系统中,必须首先对式(4-5)进行离散化处理,用数字形式的差分方程代替连续系统的微分方程,得到离散化的PID表达式:
(4-6)
式中△t=T—采样周期,必须使T足够小,才能保证系统有一定的精度;
E(k)—第k次采样时的偏差值;
E(k-1)—第(k-1)次采样时的偏差值;
k—采样序号,k=0,1,2,….;
p(k)—第k次采样时的调节器的输出。
由于位置型的PID算法不仅计算烦琐,而且为保存E(i)还要占用很多内存。
因此,采用增量型的PID算法
=
(4-7)
由式(4-7)可知,要计算第k次输出值p(k),只需知道p(k-1),E(k),E(k-1),E(k-2)即可。
这种算法只需保留3个历史数据,占内存少,误动作影响小,且能实现自动与手动的无扰动切换。
PID算法的程序流程图如图4.5.源程序见附录B.
4.5PID算法程序流程图
4.6PWM输出模块
脉冲宽度调制(PWM)是一种对模拟信号电平进行数字编码的方法,它无需进行数模转换,让信号保持为数字形式可将噪声影响降到最小。
设计中是通过与定时器T1
的配合来改变占空比以实现电压的输出。
程序流程图如图4.6.
图4.6PWM程序流程图
第五章系统仿真与调试
设计中,软件及硬件介绍见三、四章,针对变送部分设计如图5.1的仿真原理图进行仿真。
仿真原理如下:
在AD的输入端输入0~5V的电压,用电压表进行显示,以便与LCD显示值比较,验证转换正确与否。
标度变换按如下公式
计算,将AD对应的数字量转化为电压量。
仿真过程中能实现一一的对应关系,因此验证了AD转化的正确。
实际中要显示的是对应的水位,水位与电压的转化关系为
(Y为液位实际测量值;
Ymax为液位测量测量上限)这样即将AD转换的数字量与实际液位联系起来,而这部分需要在实际中进行调试。
AD仿真原理图如下5.1,仿真程序见附录B。
图5.1系统仿真原理图
第六章总结
经过五周的课程设计,我们认真的完成了任务。
但这五周,时间非常的紧迫,首先,我必须得处理好考研与课设的关系,这确实是件不容易的事情,我时常感受到自己肩上压力。
课程设计是对之前所学专业课的运用,是件很必要的事情,刚开始我感觉无从下手,但经过小组的讨论,我的思路清晰了许多,对总体的方案,总体器件的选择有了一定的认识,每次去见老师,都能解决掉自己的许多疑问,所以,我能感觉到自己在进步!
首先是总体原理图的绘制,我们组统一装了DXP来画原理图,由于刚开始没学过这个软件,感觉难,后来经过小组长的培训,对于软件的基本操作自己还是掌握了,接下来分完任务后,就要主攻自己的那部分设计了,我的部分是变送部分,我上网查了很多资料,自己用proteus仿真成功后,接下来的总体程序的调试就需要接口的问题,我们小组来回几次的协作,总体设计有了进展,但还是有问题,小组的配合,使问题得到解决,这是我感受最深的一点,当今社会是一个合作的社会,只有合作,才能促进自己的发展!
这是我们不得不承认的事实!
另外,这次课设,我们用到了很多的软件,这对于自己今后的发展是很好的锻炼,所以总的来说,课设很紧张,但我学到很多!
参考文献
【1】潘新民.微型计算机控制技术[M],电子工业出版社,1988,03
【2】李文涛.过程控制[M],科学出版社,2012.
【3】李楠楠,璩柏青.一种新型PID调节器的硬件电路设计[J],2007,23
【4】王燕芳,潘新民.微型计算机控制技术[M],电子工业出版社,2006.1
【5】姚永平.STC89C51/RC+系列单片机器件手册[J],宏晶科技.2007,11
【6】董永祥.智能仪器的设计及发展[J].山西电子技术,2006,1
【7】郝长胜.C语言程序设计[M],内蒙古大学出版社,2005,12
【8】赵茂泰.智能仪器原理及应用[M],电子工业出版社,2004,7
【9】潘永雄.新编单片机原理与应用[M],西安电子科技大学出版社,2007,02
【10】蔡杏山.Protel99SE电路设计[M],人民邮电出版社,2007,07
【11】雷力鸣.单片机在数字调节器中的应用[M],西南自动化研究所,1997,3
【11】html
附录A
硬件原理图
附录B
源程序
#include<
reg52.h>
//LCD1602部分
intrins.h>
#defineuintunsignedint
#defineucharunsignedchar
#definedelay4us(){_nop_();
_nop_();
}
#defineA0
#defineB500
sbitRS=P1^0;
sbitRW=P1^1;
sbitE=P1^2;
sbitCS=P2^3;
sbitCLK=P2^4;
sbitDIO=P2^5;
sbitenter=P1^5;
//确定键
ucharZKB1=0;
ucharDisplay_Buffer[]="
0000"
;
voidinit_sys(void);
/*系统初始化函数*/
voidPWMOUT(void);
voidbutton(void);
voidSet_Disp_Pos(ucharpos);
voidL1602_char(ucharrow,ucharcol,charsign);
voidL1602_string(ucharrow,ucharcol,uchar*p);
intyewei_PID(void);
unsignedchard;
externunsignedintiyewei_Feedback;
externunsignedintiyewei;
//当前测的液位值
/*************************************************/
voidDelayMS(uintms)
{
uchari;
while(ms--)
{
for(i=0;
i<
120;
i++);
}
bitLCD_Busy_Check(void)
bitresult;
RS=0;
RW=1;
E=1;
delay4us();
result=(bit)(P0&
0x80);
E=0;
returnresult;
voidLCD_Write_Command(ucharcmd)
while(LCD_Busy_Check());
RW=0;
_nop_();
P0=cmd;
/*************************************************
voidSet_Disp_Pos(ucharpos)
LCD_Write_Command(pos|0x80)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- PID 数字 调节器 设计 LCD 显示