基于fpga的温度控制系统设计与实现

基于fpga的温度控制系统设计与实现

ID:33924016

大小:1.15 MB

页数:5页

时间:2019-02-28

基于fpga的温度控制系统设计与实现_第1页
基于fpga的温度控制系统设计与实现_第2页
基于fpga的温度控制系统设计与实现_第3页
基于fpga的温度控制系统设计与实现_第4页
基于fpga的温度控制系统设计与实现_第5页
资源描述:

《基于fpga的温度控制系统设计与实现》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、2011年6月陕西理工学院学报(自然科学版)June.2011第27卷第2期JournalofShaanxiUniversityofTechnology(NaturalScienceEdition)Vo.l27No.2[文章编号]1673-2944(2011)02-0015-05基于FPGA的温度控制系统设计与实现12王春侠,聂翔(1.陕西理工学院电气工程系,陕西汉中723003;2.陕西理工学院电信工程系,陕西汉中723003)[摘要]基于FPGA与温度传感器DS18B20设计实现了单回路水箱温度PID控制系统。软件主要包

2、括PID控制算法及PWM波产生模块、DS18B20驱动模块、数码管显示驱动模块等3个模块。仿真结果验证了设计的正确性。实验结果表明,系统输出温度达到微小超调的稳定控制要求,体现了该设计方法的有效性和实用性。[关键词]FPGA;VerilogHDL;PID控制;DS18B20;测温[中图分类号]TP273[文献标识码]A基于微处理器的温度控制系统改变了传统模拟温度控制系统参数整定不灵活的问题。但是常规微处理器无法避免在恶劣环境下程序跑飞的问题。利用FPGA实现温度控制系统的设计,不仅可以提高系统的运算速度、减小系统的体积,还可以增强系统的

3、可靠性,具有较强的应用前景。本文首先针对Altera公司的CycloneII系列FPGA芯片,基于QUARTUSII软件,采用verilogHDL编程设计了主要包括PID控制算法及PWM波产生模块、DS18B20驱动模块、数码管显示驱动模块等功能模块程序。然后用Modelsim软件仿真验证了各模块的正确性。最后以水箱为被控对象,以目前市场上性价比较高的FPGA芯片EP2C8Q208C8为核心器件,结合温度传感器DS18B20、键盘、数码管以及固态继电器等器件设计实现了单回路水温PID控制系统。在控制温度为30~90的实验条件下,误差小于1,系统输出温度达到微小超调的稳

4、定控制要求。1系统设计单回路水箱温度控制系统的结构如图1所示,虚线框内部分是系统的核心,用一片FPGA实现。其中,clock生成器用于将系统时钟分频及产生定时,用户接口接受用户键盘输入及驱动LED显示。PID控制器用于实现PID控制算法,PWM波发生器用于脉宽调制,以控制固态继电器的通断来达到控制加热功率的目的。传感器接口用于对温度传感器DS18B20进行数据采样控制。1.1PID控制器的实现常规PID控制器结构清晰、参数调节方便、鲁棒性强,并且算法简单高效,在工业现场是应用最广泛的控制器。模拟PID控制表达式如t1de(t)u(t)kp[e(t)+e(T)dT+Td

5、](1)Ti0dt其中,kp为比例增益,Ti为积分时间常数,Td为微分时间常数,e(t)=r(t)-y(t)为偏差,u(t)为控制量。位置型数字PID控制算法如式(2)kTe(k)-e(k-1)u(k)=kp[e(k)+e(i)+Td]Tii=0T(2)k=kpe(k)+kie(i)+kd[e(k)-e(k-1)]i=0收稿日期:2010-11-30基金项目:陕西省教育厅基金资助项目(09JK378)。作者简介:王春侠(1969-),女,陕西省眉县人,陕西理工学院副教授,主要研究方向为自动控制理论、EDA技术等。

6、陕西理工学院学报(自然科学版)第27卷图1水温控制系统结构图其中,T为采样周期,k为采样序号。增量型数字PID控制算法如式(3)u(k)=u(k)-u(k-1)(3)=kp[e(k)-e(k-1)]+kie(k)+kd[e(k)-2e(k-1)+e(k-2)]所以u(k)=u(k-1)+u(k)=u(k-1)+up+ui+ud(4)式中,up=kp[e(k)-e(k-1)],ui=kie(k),ud=kd[e(k)-2e(k-1)+e(k-2)]。用FPGA实现式(4)时,需要进行减法运算和乘法运算。乘法器用A

7、ltera提供的可定制位宽的宏功能模块LPM_MULT实现。LPM_MULT具有流水线输出功能,可以提高乘法运算的速度。对减法运算,根据被减数-减数=被减数+(-减数),将减法运算变成符号数的加法运算。符号数以补码形式表示,最高位为符号位,1表示负数,0表示正数;其他位为数值位,负数的数值位等于它的反码加1。在用VerilogHDL语言表达符号数时,需要判断符号位来确定正负。描述ud=kd[e(k)-2e(k-1)+e(k-2)]的VerilogHDL语言代码如下:if(ek_1[7]==1)beginresul

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。