收藏 分享(赏)

基于FPGA的温控系统的设计.doc

上传人:精品资料 文档编号:10787612 上传时间:2020-01-09 格式:DOC 页数:12 大小:406KB
下载 相关 举报
基于FPGA的温控系统的设计.doc_第1页
第1页 / 共12页
基于FPGA的温控系统的设计.doc_第2页
第2页 / 共12页
基于FPGA的温控系统的设计.doc_第3页
第3页 / 共12页
基于FPGA的温控系统的设计.doc_第4页
第4页 / 共12页
基于FPGA的温控系统的设计.doc_第5页
第5页 / 共12页
点击查看更多>>
资源描述

1、 综合电子系统设计报告实验名称:基于 FPGA 的温控系统的设计班级: 电子 1202 学号: 姓名: 指导教师: 前言基于 FPGA 与温度传感器 DS18B20 设计实现了单回路水箱温度 PID 控制系统。软件主要包括 PID 控制算法及 PWM 波产生模块、DS18B20 驱动模块、数码管显示驱动模块等3 个模块。仿真结果验证了设计的正确性。实验结果表明,系统输出温度达到微小超调的稳定控制要求,体现了该设计方法的有效性和实用性。基于微处理器的温度控制系统改变了传统模拟温度控制系统参数整定不灵活的问题。但是常规微处理器无法避免在恶劣环境下程序跑飞的问题。利用 FPGA 实现温度控制系统的设

2、计,不仅可以提高系统的运算速度、减小系统的体积,还可以增强系统的可靠性,具有较强的应用前景。本设计首先针对 Altera 公司的 CycloneII 系列 FPGA 芯片,基于 QUARTUSII 软件,采用verilogHDL 编程设计了主要包括 PID 控制算法及 PWM 波产生模块、DS18B20 驱动模块、数码管显示驱动模块等功能模块程序。然后用 Modelsim 软件仿真验证了各模块的正确性。最后以水箱为被控对象,以目前市场上性价比较高的 FPGA 芯片 EP2C8Q208C8 为核心器件,结合温度传感器 DS18B20、键盘、数码管以及固态继电器等器件设计实现了单回路水温PID 控

3、制系统。在控制温度为 3090的实验条件下,误差小于 1,系统输出温度达到微小超调的稳定控制要求。关键词:FPGA DS18B20 PID PWM 波一、 方案设计1、方案设计比较温度传感器模块设计方案一:采用热敏电阻pt100。这种电阻输出的是模拟量,所以硬件结构较复杂,需要用到桥式电路将采集到的温度转化为电压输出,而且为了实现AD转化,还要加放大电路。另外,这种测温系统难以实现多点测温,也要用到复杂的算法,一定程度上也增加了软件实现的难度。方案二:采用单总线数字温度传感器DS18B20测量温度,直接输出数字信号。便于单片机处理及控制,节省硬件电路。且该芯片的物理化学性很稳定,此元件线形性能

4、好,在0100摄氏度时,最大线形偏差小于1摄氏度。DS18B20的最大特点之一采用了单总线的数据传输,由数字温度计DS18B20和微控制器AT89C51构成的温度装置,它直接输出温度的数字信号到微控制器。每只DS18B20具有一个独有的不可修改的64位序列号,根据序列号可访问不同的器件。这样一条总线上可挂接多个DS18B20传感器,实现多点温度测量,轻松的组建传感网络。综上分析,我们选用第二种方案。2、总体方案设计单回路水箱温度控制系统的结构如图1所示, 虚线框内部分是系统的核心, 用一片FPGA 实现。其中, clock生成器用于将系统时钟分频及产生定时, 用户接口接受用户键盘输入及驱动LE

5、D 显示。PID控制器用于实现PID控制算法, PWM 波发生器用于脉宽调制, 以控制固态继电器的通断来达到控制加热功率的目的。传感器接口用于对温度传感器DS18B20进行数据采样控制。二、理论分析与计算1、温度转换计算方法例如当DS18B20采集到+125的实际温度后,输出为07D0H,则:实际温度=07D0H0.0625=20000.0625=1250C。例如当DS18B20采集到-55的实际温度后,输出为FC90H,则应先将11位数据位取反加1得370H(符号位不变,也不作为计算),则:实际温度=370H0.0625=8800.0625=550C。2、稳定温度的方法:PID算法调节完整的

6、公式如下: u(t) = Kp*e(t) + Kie(t) + Kde(t) e(t-1)+u0 在PID的调试过程中,我们应注意以下步骤: 1、 关闭I和D,也就是设为0.加大P,使其产生振荡; 2、 减小P,找到临界振荡点; 3、 加大I,使其达到目标值; 4、重新上电看超调、振荡和稳定时间是否吻合要求; 5、 针对超调和振荡的情况适当的增加一些微分项; 6、 注意所有调试均应在最大争载的情况下调试,这样才能保证调试完的结果可以在全工作范围内均有效;PID控制器参数整定 :采用是临界比例法。利用该方法进行 PID控制器参数整定步骤如下: (1)首先预选择一个足够短采样周期让系统工作; (2

7、)仅加入比例控制环节,直到系统对输入阶跃响应出现临界振荡,记下这时比例放大系数和临界振荡周期; (3)一定控制度下公式计算到PID控制器参数。 二、 硬件设计(一)、键盘输入(二)、温度显示部分用七段数码管显示, 两个用来显示键盘设定的温度值, 两个用来显示测得的温度值。因个数码管占用的工口资源较多, 所以配用带驱动和锁存功能的一十进制译码器如图所示为一个数码管与的连接。编程时设定值的显示与测得值的显示为两个不同的模块。(三)、设定值的显示部分当按键按下一定时间表明按下有效, 因为只显示两位数字, 所以按一次键, 显示移位, 按下三次, 则最前面的被代替, 依次类推。程序流程如图:(四)、温度

8、控制温度控制直接比较设定值和测得值的编码, 若设定值大于测得值, 则控制升温器件开始工作反之, 让降温器件工作。可以通过的输出控制继电器或者光电器件从而控制需要强电才能工作的升温和降温设备。四、软件设计(一) 、程序设计思路:本系统的主要功能是实现对环境内部温度的采集,根据采集温度来调整加热电路工作占空比,使得环境内部温度达到设定的温度值。在温度控制算法上采用的是是 PID(比例-积分-微分)算法,它是一种闭环输出控制模型,在后面会具介绍。总程序的主要有几个部分组成,显示程序,键盘扫描程序,温度读取程序,pid 计算程序,中断程序。程序框图如下:PID 是 Proportional Integ

9、ral Derivativel 控制是比例、积分、微分控制的 简称,PID 控制器由比例单元(P) 、积分单元(I)和微分单元(D)组成。 PID 控制器就是根据系统的误差,利用比例、积分、微分计算出控制量进行控制的。 在模拟控制系统中,控制器中最常用的控制规律是 PID 控制。PID 控制器是一种线性控制器,它根据给定值与实际输出值构成控制偏差。PID 控制规律写成传递函数的形式为:式中,PK 为比例系数;iK 为积分系数;dK 为微分系数;ipiKKT 为积分时间常数;pddKKT 为微分时间常数;简单来说,PID 控制各校正环节的作用如下:比例控制 比例控制是 PID 中最简单的控制方式

10、。比例部分数学表达式为:其控制器的输出与输入误差信号成比例关系。比例控制作用强弱取决于比例系数 Kp,Kp 越大,控制过程消耗的时间越短,最终结果的稳态误差也越小;但 Kp 变大,超调量也越大,系统控制过程易产生振荡,这会使动态性能变差,很可能导致闭环系统不稳定。 积分控制 在积分控制中,控制器的输出与输入误差信号的积分成正比关系。积分部分数学表达式为:对于一个自动控制系统,在进入稳态后存在稳态误差,则称这个控制系统是有稳态误差的简称有差系统。为了最大程度减小稳态误差,在控制器中必须引入积分项。积分项对误差取决于时间的积分,随着时间的增加,积分项会增大。这样,即便误差很小,积 分项也会随着时间

11、的增加而加大,它推动控制器的输出增大使稳态误差进一步减小,直到等于零。因此,比例+积分(PI)控制器,可以使系统在进入稳态后无稳态误差。微分控制 如果控制器的输出与输入误差信号的微分(即误差的变化率)成正比关系,那么就叫做微分控制。微分部分数学表达式为:一般自动控制系统在消除误差、自动调节过程中,系统可能会出现振荡甚至失稳。其原因系统是存在有较大惯性环节或有滞后组件,具有抑制误差的作用,其变化总是落后于误差的变化。解决的办法是让抑制误差的作用超前工作,就是在系统误差快要接近于零时,抑制误差就应该是零。这就是说,在控制器中仅光入 比例项往往是不够的,比例项的作用仅是放大误差的幅值,而目前需要增加

12、的是微分项,它能预测误差变化的趋势,这样,具有比例+微分的控制器,就能 够提前使抑制误差的控制作用等于零,甚至为负值,从而避免了被控量的严重超调。微分控制得出偏差的变化趋势,微分控制作用可加快系统响应,减小超调量,减小振荡,系统更稳定性,但使系统抗干扰的能力变差。微分部分的作用强弱由微分时间 Td 决定。Td 的值大,则它抑制 e(t)变化的能力强,Td 的值小,e(t)则它阻止变化的能力弱。PID 离散化最终的算式如式所示离散变换得:(二) 、各个部分的设计1、 PID 控制器的设计常规PID控制器结构清晰、参数调节方便、鲁棒性强, 并且算法简单高效, 在工业现场是应用最广泛的控制器。模拟P

13、ID控制表达式如下:其中, kp 为比例增益, Ti 为积分时间常数, Td 为微分时间常数, e( t ) = r( t) - y ( t)为偏差, u ( t)为控制量。位置型数字PID控制算法如式:其中, T 为采样周期, k 为采样序号。增量型数字PID 控制算法如式:所以用FPGA 实现式( 4)时, 需要进行减法运算和乘法运算。乘法器用A ltera提供的可定制位宽的宏功能模块LPM_MULT实现。LPM _MULT具有流水线输出功能, 可以提高乘法运算的速度。对减法运算, 根据 被减数- 减数=被减数+ ( - 减数) , 将减法运算变成符号数的加法运算。符号数以补码形式表示,

14、最高位为符号位, 1表示负数 , 0表示正数; 其他位为数值位, 负数的数值位等于它的反码加1。在用V erilog HDL语言表达符号数时, 需要判断符号位来确定正负。描述ud = kd e( k ) - 2e( k- 1) + e( k- 2) 的Verilog HDL语言代码如下:up 和ui 的描述方法依此类推。若采用PID 控制器的其他结构形式, 只需改变up, ui 和ud 的形式。3、PWM 波发生器的实现PWM 波发生器根据PID控制器的输出量u ( k ) 确定PWM 波在一个采样周期内高低电平的定时值。为了节省整体设计时间和FPGA 资源, 以1 /1000采样周期为计数时

15、钟, 先使高电平计数器减法计数直到0, 在此期间, PWM端口输出高电平, 再使低电平计数器减法计数直到0, 在此期间, PWM 端口输出低电平。PWM发生器的部分VerilogHDL源代码如下:4、DS18B20接口的实现DS18B20接口状态机由如图2 所示的8个状态组成: ( 1 ) RESET1: 对DS18B20 进行初始化, 等待后进入JUDGE。( 2 )JUDGE: 检测DS18B20 是否存在。若不存在, 返回RESET1; 否则延时后进入SKIP1。( 3) SK IP1: 向DS18B20发送跳过ROM 匹配命令, 然后进入CONVERT。( 4) CONVERT: 向D

16、S18B20发送启动温度转换命令, 等待后进入RESET2。( 5 ) RESET2: 对DS18B20复位, 等待600 s后进入SK IP2。( 6) SK IP2: 向DS18B20发送跳过ROM 匹配命令, 然后进入GET。( 7) GET: 从DS18B20 中读取温度测量值, 然后进入STORE。( 8) STORE: 把所读取的温度测量值放入寄存器中, 返回原始状态。其中CONVERT 和GET 两个状态嵌套使用了状态机, 以完成DS18B20严格的写和读时序。系统的主要功能是实现对环境内部温度的控制。温度控制程序的算法直接影响着系统的工作效果,为了得到理想的,最优的结果我在温度

17、控制算法上采用的是是 PID(比例-积分-微分)算法,它是一种最经典也是最常用的闭环输出的自动控制模型,他可以根据当前的温度差来调整输纠正误差。5、顶层模块设计采用自上向下的设计方法将FPGA 实现的功能分成DS18B20驱动模块、PID控制算法及PWM波产生模块和显示驱动模块等3个功能模块。DS18B20驱动模块实现1 s信号的产生、延时DS18B20接口状态机。PID控制算法及PWM 波产生模块实现采样时钟信号的产生、初始温度屏蔽、温度设定、PID算法以及PWM波的产生。显示驱动模块实现动态扫描显示时钟信号的产生、段码和位码的译码, 以驱动4个七段数码管动态扫描显示百位、十位、个位和小数位

18、数据。将这3个模块分别用V erilogHDL设计成功后, 在顶层模块中进行例化的源代码为:四、测试及实验结果设给定值r=60,温度采样值tem_data=25,kp=100,ki=0,kd=1,clk=50MHz,rst_n=1。PID控制算法及PWM波产生模块测试文件的时序图如图3所示。可见,初始位置ek=35,初始温度屏蔽有效(屏蔽标志flag1=1);采样时钟信号flag的周期为1s;PWM波vs与其高低电平计数值vs_h、vs_l及占空比标志flag3的关系是正确的。以水箱为被控对象,以EP2C8Q208C8为核心,采用DS18B20采集温度数据,PWM调功方式控制过零型交流固态继电器ASRP-1,4个共阴极数码管作温度显示器,构建水温控制系统并进行了实验测试。在控制温度为3090 的实验条件下,误差小于1, 系统达到微小超调的稳定控制要求。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报