基于FPGA的温度控制系统设计与实现Word格式文档下载.docx
《基于FPGA的温度控制系统设计与实现Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《基于FPGA的温度控制系统设计与实现Word格式文档下载.docx(8页珍藏版)》请在冰豆网上搜索。
![基于FPGA的温度控制系统设计与实现Word格式文档下载.docx](https://file1.bdocx.com/fileroot1/2023-1/26/64dd5ac3-b58b-4819-9966-e55a3c9b49f8/64dd5ac3-b58b-4819-9966-e55a3c9b49f81.gif)
然后用Modelsim软件仿真验证了各模块的正确性。
最后以水箱为被控对象,以目前市场上性价比较高的FPGA芯片EP2C8Q208C8为核心器件,结合温度传感器DS18B20、键盘、数码管以及固态继电器等器件设计实现了单回路水温PID控制系统。
在控制温度为30~90的实验条件下,误差小于1,系统输出温度达到微小超调的稳定控制要求。
1系统设计
单回路水箱温度控制系统的结构如图1所示,虚线框内部分是系统的核心,用一片FPGA实现。
其中,clock生成器用于将系统时钟分频及产生定时,用户接口接受用户键盘输入及驱动LED显示。
PID控制器用于实现PID控制算法,PWM波发生器用于脉宽调制,以控制固态继电器的通断来达到控制加热功率的目的。
传感器接口用于对温度传感器DS18B20进行数据采样控制。
1.1PID控制器的实现
常规PID控制器结构清晰、参数调节方便、鲁棒性强,并且算法简单高效,在工业现场是应用最广泛的控制器。
模拟PID控制表达式如
1tde(tu(tkp[e(t+e(TdT+T]dTi0dt(1
其中,kp为比例增益,Ti为积分时间常数,Td为微分时间常数,e(t=r(t-y(t为偏差,u(t为控制量。
位置型数字PID控制算法如式(2
u(k=kp[e(k+Ti
ke(i+Td]Ti=0k(2
=kpe(k+kie(i+kd[e(k-e(k-1]
i=0
收稿日期:
2010-11-30基金项目:
陕西省教育厅基金资助项目(09JK378。
作者简介:
王春侠(1969-,女,陕西省眉县人,陕西理工学院副教授,主要研究方向为自动控制理论、EDA技术等。
陕西理工学院学报(自然科学版第27卷
图1水温控制系统结构图
其中,T为采样周期,k为采样序号。
增量型数字PID控制算法如式(3
u(k=u(k-u(k-1
=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
式中,up=kp[e(k-e(k-1],ui=kie(k,ud=kd[e(k-2e(k-1+e(k-2]。
(4(3
用FPGA实现式(4时,需要进行减法运算和乘法运算。
乘法器用Altera提供的可定制位宽的宏功能模块LPM_MULT实现。
LPM_MULT具有流水线输出功能,可以提高乘法运算的速度。
对减法运算,根据被减数-减数=被减数+(-减数,将减法运算变成符号数的加法运算。
符号数以补码形式表示,最高位为符号位,1表示负数,0表示正数;
其他位为数值位,负数的数值位等于它的反码加1。
在用VerilogHDL语言表达符号数时,需要判断符号位来确定正负。
描述ud=kd[e(k-2e(k-1+e(k-2]的VerilogHDL语言代码如下:
if(ek_1[7]==1
beginresult_med=(~(ek_1-1*2;
end
else
beginresult_med=~((ek_1*2-1;
d_med=ek+result_med+ek_2;
if(d_med[7]==1
begind_med=~(d_med-1b1;
ud=kd*d_med;
ud=~ud+1b1;
beginud=kd*d_med;
up和ui的描述方法依此类推。
若采用PID控制器的其他结构形式,只需改变up,ui和ud的形式。
1.2PWM波发生器的实现
PWM波发生器根据PID控制器的输出量u(k确定PWM波在一个采样周期内高低电平的定时值。
为了节省整体设计时间和FPGA资源,以1/1000采样周期为计数时钟,先使高电平计数器减法计数直到0,在此期间,PWM端口输出高电平,再使低电平计数器减法计数直到0,在此期间,PWM端口输出低电平。
PWM发生器的部分VerilogHDL源代码如下:
//u=u+up+ui+ud;
vs_h<
=u;
vs_l<
=16b0000_0011_1110_1000-u;
if((vs_h==16b0&
&
(vs_l==16b0
beginflag<
=0;
begin
第2期王春侠,聂翔基于FPGA的温度控制系统设计与实现
if(vs_h!
=16b0
beginvs_r<
=1;
=vs_h-1;
elseif(vs_!
l=16b0
=vs_l-1;
elseflag<
1.3DS18B20接口的实现
DS18B20是单总线数字温度传感器,它将半导体温敏器件、A/D
转化器、存储器等做在一个很小的集成电路芯片上,传感器直接输出
温度信号数字值的补码。
具有微型化、低功耗、高性能、抗扰能力强、
易于接口等优点,适合于水温测控系统。
DS18B20接口通过单总线对温度传感器DS18B20进行的操作
主要包括初始化,发送ROM命令,发送功能命令。
而这些操作反复
进行,适合用状态机实现。
使用状态机不仅克服了纯硬件数字顺序
方式控制不灵活的缺点,而且在性能上优于CPU。
另外,状态机构成
性能良好的同步时序,可以有效克服竞争冒险现象。
DS18B20接口状态机由如图2所示的8个状态组成:
(1RE
SET1:
对DS18B20进行初始化,等待600s后进入JUDGE。
(2
JUDGE:
检测DS18B20是否存在。
若不存在,返回RESET1;
否则延
时400s后进入SKIP1。
(3SKIP1:
向DS18B20发送跳过ROM匹
配命令,然后进入CONVERT。
(4CONVERT:
向DS18B20发送启动
温度转换命令,等待750s后进入RESET2。
(5RESET2:
对
DS18B20复位,等待600s后进入SKIP2。
(6SKIP2:
向DS18B20
发送跳过ROM匹配命令,然后进入GET。
(7GET:
从DS18B20中
读取温度测量值,然后进入STORE。
(8STORE:
把所读取的温度测
量值放入寄存器中,返回原始状态。
其中CONVERT和GET两个状
态嵌套使用了状态机,以完成DS18B20严格的写和读时序。
1.4顶层模块设计
采用自上向下的设计方法将FPGA实现的功能分成DS18B20驱动模块、PID控制算法及PWM波产生模块和显示驱动模块等3个功能模块。
DS18B20驱动模块实现1s信号的产生、延时和DS18B20接口状态机。
PID控制算法及PWM波产生模块实现采样时钟信号的产生、初始温度屏蔽、温度设定、PID算法以及PWM波的产生。
显示驱动模块实现动态扫描显示时钟信号的产生、段码和位码的译码,以驱动4个七段数码管动态扫描显示百位、十位、个位和小数位数据。
将这3个模块分别用VerilogHDL设计成功后,在顶层模块中进行例化的源代码为:
modulemydesign(
inputCLOCK_50,
inputQ_KEY,
inoutDS18B20,
output[7:
0]o_seg,
output[3:
0]o_se,l
outputvs
;
wire[15:
0]t_bu;
f
wire[8:
0]vs_h;
//获取温度值//17图2DS18B20接口状态机//板载50MHz时钟//板载按键RST//七段数码管段脚//七段数码管位脚
ds18b20_driveds18b20_u0(
.clk(CLOCK_50,
.rst_n(Q_KEY,
.one_wire(DS18B20,
.temperature(t_buf
//显示温度值//
seg7x8_driveseg7_u0(
.i_clk(CLOCK_50,
.i_rst_n(Q_KEY,
.i_data(t_buf,
.o_seg(o_seg,
.o_sel(o_sel
//控制温度//
temp_pidu1(
.clk(CLOCK_50,
.temp_data(t_buf[15:
4],
.vs(vs
endmodule
2测试及实验结果
设给定值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
的关系是正确的。
图3测试文件时序图
以水箱为被控对象,以EP2C8Q208C8为核心,采用DS18B20采集温度数据,PWM调功方式控制过零型交流固态继电器ASRP-1,4个共阴极数码管作温度显示器,构建水温控制系统并进行了实验测试。
在控制温度为30~90的实验条件下,误差小于1,系统达到微小超调的稳定控制要求。
[参考文献]
[1]王春侠.平面交叉路口多相位交通信号控制系统设计[J].陕西工学院学报,2004,20(2:
4-6.
[2]王春侠.基于面积等效法的SPWM发生器的设计[J].微计算机信息,2008,24(2:
216-217,104.
[3]张军利.单周控制DSTATCOM的建模及实现[J].陕西理工学院学报(自然科学版,2009,25(1:
22-26.
[4]薛弘晔,郑晓华.基于LabWindows/CVI的电液伺服控制系统的设计[J].陕西理工学院学报(自然科学版,2009,
25(3:
41-44.
[5]于宗光.SoC和FPGA技术未来的发展趋势[J].电子与封装,2006,6(3:
1-5.
[6]李林.FPGA在集成电路瞬态特性测试中的应用[J].陕西理工学院学报(自然科学版,2011,27(1:
21-26.
[7]王水鱼,王晓芬.基于FPGA和PC机的客流统计系统设计[J].陕西理工学院学报(自然科学版,2010,26(1:
11-15.
[8]姚琳.在嵌入式系统中用FPGA进行开发的几个发展方向[J].今日电子,2007(6:
125-127.
[9]付学志.基于FPGA的高速PID控制器设计与仿真[J].电子技术应用,2007(1:
87-89.
[责任编辑:
李少凌]
DesignandimplementationoftemperaturecontrolsystembasedonFPGA
WANGChunxia,NIEXiang12
(1.DepartmentofElectricalEngineering,ShaanxiUniversityofTechnology,Hanzhong723003,China;
2.DepartmentofElectronics&
InformationEngineering,
ShaanxiUniversityofTechnology,Hanzhong723003,China
Abstract:
BasedonFPGA,thewatertanktemperaturecontrolsystemisdesignedandimplementedwithDS18B20asthetemperaturesensor.Thesoftwaresystemmainlyconsistsofthreemodules,includingPIDcontrolalgorithmandPWMwavegeneratingmodule,DS18B20drivingmoduleandLEDdisplaydrivingmodule.ThesimulationwithModelsimvalidatesthatthedesignresultiscorrec.tTheexperimentresultsindicatethatthesystemoutputobtainstheresultoflittleovershootandstabilization,whichshowsthattheapproachofdesigniseffectiveandpractica.l
Keywords:
FPGA;
verilogHDL;
PIDcontrolalgorithm;
temperaturemeasuringwithDS18B20(上接第14页
Oncreativedesignoflandscapegarage
SUNZhixue
(SchoolofMechanicalEngineering,ShaanxiUniversityofTechnology,Hanzhong723003,China
Byresearchingandanalyzingpresentparkingproblemsincommunities,thispaperputsforwardthedesignideaofcombiningthecommunitylandscapewiththeparkingspace,thentheconceptoflandscapegarageisintroduced,andthenmultiplesolutionsarediscussedtotheprivatecarsparkingincommunitiesbythemethodofbrainstorming.TheshellprojectisdevelopedindetailaccordingtotheFuzzyAssessmentTheorythestructure,shape,effectpicturesarefinishedprecisely.Thisdesignofintegratinglandscapewithgaragebeautifiestheenvironmen,tgreatlyimprovesspaceutilization,andeasestheparkingproblems.
garage;
landscape;
landscapegarage;
parking19