【查重吧-专业的论文服务平台】

让写作更简单-如何写毕业论文

注册

QQ:1028988511 电话:18703401474

基于STM32的温度控制实验

 

  摘要:请设计一个基于STM32的单片机的具有高精度温度控制的实验,温度范围为10~140℃,实验模块包含控制,测温,加热器和人机交互等,并使用DB18B20温度传感器测量温度的大小,选用搭载ARMCortex-M内核的STM32F429的单片机作为控制的核心部分,人机交互部分采用TFT显示屏显示温度,使用PWM的脉冲宽度调制波驱动加热器。该实验能够实现温度的测量,数据存储,控制和分析功能。为实现三个控制参数的在线修正,使用自适应性强的模糊PID算法。不用建立被控对象的精确模型就能保证加热器功率的实时控制,实现较稳和较快的性能。实验结果表明了该方法的有效性和实用性。

  关键字:温度实时显示,控制;模糊PID算法;脉冲宽度调制

  1系统的整体设计

  在本次实验中电路总体上可 以分为几个模块:人机交互的模块,温度采集的模块,STM32的系统模块,驱动加热的模块。实验中我们以STM32作为主控制器控制电路,传感器采集温度作为STM32的输入,驱动模块,显示屏,以及按键作为STM32的输出。温度采集方面由DS18B20温度传感器,可与单片机直接连接。经过单片机的处理将温度的数据传给显示屏进行显示,利用按键进行设置温度阙值。如果温度超过设定的界限,则通过STM32单片机发出的指令来控制驱动的模块,调节温度值。

  实验中系统的整体图如下图1所示:

  1.1人机交互模块的设计

  温度控制系统经常是用来保证温度的变化稳点或按照某种规律进行变化。但是通常温度具有惯性大,滞后性严重的特点,所以很难建立很好的数学模型。所以在本次实验中我们采用了性能高又经济的搭载ARMCortex-M内核的STM32F429的单片机作为它的微控制处理器。人机交互模块主要是有普通的按键和一块彩色液晶屏幕所组成。该实验中采用的是模糊的PID算法,完成对系统的设计。

  1.2温度检测模块的设计

  传统的测温元件有热电偶,热敏电阻还有一些输出模拟信号的温度传感器。但这些元件都需要较多的外部元件的支持。电路复杂,制作成本高。因此在本次实验中我们采用了美国DALLAS半岛公司推出的一款改进型的智能温度传感器DS18B20。此温度传感器读数方便,测温范围广,测温准确,输出温度采用数字显示更加智能化。温度检测模块是以DS18B20温度传感器作为核心,将测量的温度信号传递给STM32单片机芯片进行温度的实时检测,并通过数码管显示。

  2系统各模块的设计

  2.1主控制模块的设计

  在本次实验中我们选取STM32芯片作为微控制处理器。在STM32型号的单片机中,STM32F429单片机是一种基于ARMCortex-M内核的具有很多优良的性能的单片机,其中高速度,低功耗的性能和对彩色显示屏有更加有效的处理机制。STM32型号单片机都会配备常见的一些外设,通用的定时器,多通道的ADC,SPI总线接口,I2C的总线接口,CAN总线接口,USB控制器,实时时钟RTC等。STM32还包括多个DMA通道,可以进行设备与内存之间的数据传输。SPI接口具有一个CRC计算单元,可支持8位字节和16位半字数据的计算且支持96b唯一的标识码。供电电压只要在2~3.6范围内便可支持正常的工作。如果在运行程序时以72兆次/s的速度读取命令,驱动电流只需要27mA。此外STM32单片机还具有四种低耗电量的模式,可以快速启动。

  2.2温度测量模块的设计

  DS18B20温度传感器集成了A/D转换的功能,所以连接单片机时不需要再进行A/D转换电路的连接。其是一种单总线智能型的温度传感器,具有三个接口:地线(GND),数据线(DQ),电源线(VCC)。测温范围在-55~125℃,电压范围在+3.0~5.5V,固有的测温分辨率为0.5℃,最高精度可以达到0.0625℃,最大的转换时间为200ms。一条总线上可以实现多点测温。

  DS18B20型号的温度传感器的温度测量原理如下图2:

  DS18B20只需要使用一个I/O口,既可以传输时钟,又能够传输数据,并且数据的传输是双向的。并且在温度发生变化时,它对灵敏度较小的晶体振荡器的震荡频率比较稳定,几乎没什么影响,它给计数器1提供震动周期稳定的驱动时钟信号。当晶体振荡器的灵敏度较大时,则温度发生变化时震荡频率波动很大,它被用来作为一个温度接收器,接收计数器2的驱动信号。高速暂存器RAM是由9个字节的存储器所构成的。显示位是0~1字节;复制TH和TL是用2~3字节,并且数字可以更新;配置寄存器是第4个字节,也可更新。5,6,7字节是用作保留的。温度传感器的电路如图3:

  在单片机控制器的B10端口是连接中间数据的端口,并以串行的方式将12b的温度信号输入给单片机。这是数字进行转换后的数据,温度数据存储在高速RAM的第0和第1字节,也就是存在两个8b的RAM当中,一共有16位。一般我们使用DS18B20中默认的配置为12位,一个高位符号位和11位温度值。数据传入单片机后,一次会读取其中的两个字节,也就是16位。前5位为符号位,如果测量的温度值在0以上,那么这5位为0则为正值,再将低11位的二进制转化为十进制数后乘以0.0625便可得到实际的温度值;如果这个温度值在0以下,则这5位为1则为负值,只需要将测得的数值取反加1再乘以0.0625便可得到实际的温度值。

  DS18B20芯片的温度数据如表1:

  2.3人机交互的模块设计

  在人机交互的模块中,我们选用的是TFT型号的显示屏来实时的显示各个温度的数值,并通过按键的形式实现对温度的设置等相关功能。TFT显示屏本身亮度好,对比度高,层次感强,颜色鲜艳,使用时可以由其内部的运算器实现对数据的获取和传送,而不需要再添加其它的工具就能实现。TFT液晶显示屏为每一个像素都设有一个半导体开关,因而每个节点都是相对独立的,并且可以连续控制,不仅提高了显示屏的反应速度,而且精确控制了色阶。在使用时,我们一般设定一个点为X,Y,一般先通过18位的数据接口实现对x和y坐标的发送,并且通过LCD执行相应的元件,最后发送数据的颜色代码给LCD。最后就会在相应的位置显示颜色。

  2.4加热模块的设计

  在该模块中我们使用的是STM32单片机内部的PWM脉冲驱动实现对温度变化的控制。STM32的PWM输出引脚是使用IO口的复用功能,T2~T4这4个通用定时器都可以输出4路PWM--CH1~CH4。PWM输出的直流电压与占空比有关,当占空比为100%时,直流电压为12V,当占空比为50%时,直流电压为6V。在本次实验中由于电阻丝的发热难以控制,因此我们选用了陶瓷加热片作为被控对象放在OUT1和OUT2之间,加热片的额定电压为8V,最大电压为40V,额定的功率为4W,电阻为25Ω。在实验中我们选用全桥直流驱动器对PWM的脉冲信号进行整流,当ENABLE=1,1N1接收到PWM的信号,再将信号反向传给1N2,这样就可以调整加热频率。

  PWM的驱动模块原理如图4:

  3温度控制器的设计

  对于温度控制器这样一个具有较大的滞后性,非线性的时变系统,单纯的采用传统的PID控制不会得到较好的控制效果,因此在本次实验中我们将模糊控制原理与传统的PID控制方式相结合的自适应的PID控制算法来对实验进行控制。这样的方式不仅具有不依赖系统精确数学模型的特点,同时又具有PID控制器的动态跟踪品质好和稳态精度高的特点。PID算法比较简单,功能也比较完善,效果也很好,一般形式为u(n)= Kpe(n)+KI ∑e(n)+KD△e(n)         

  式中 n 采样序号

    u(n) 第 n 次采样时刻的控制器输出;

    e(n) 第 n 次采样时刻输入的偏差 ;

    △e(n) 第 n 次采样时刻输入的偏差与第 n-1次采样时刻输入的偏差之差;

    KP 比例增益  

    KI  积分系数( KI= Kp T/TI)  

    KD 微分系数 (KD= KP TD /T)  

    T —采样周期TI、 TD分别为积分时间常数和微分时间数。   

  实验中我们主要以三个控制参数Kp,K1,Kd来控制信号的输出量。比例系数决定着静态误差的大小,Kp越大误差就越小。作为输入变量的模糊逻辑的误差变化和使用误差能够确保被控对象的良好功能。

  在实现中自使用模糊的控制过程如图5:

  4实验的结果和分析

  在实验的控制模块中,我们只需要适当的改变控制参数或者上位机的设置,就能使系统发挥出很好的控制效果。

  实验实物图的调试如图6:

  TFT显示屏提供了温度的数值和PWM占空比的显示,给实验中提供了方便。并且在模糊子集的隶属度函数值Ke也都有显示,使调试过程更加简便。

  界面显示如图7:

  系统的温度变化曲线如图8:

  实验中我们选择Matlab对实验数据进行相应的分析处理,更加明了。被控的对象如果它的数学模型发生变化,我们可以把把它的参数提高1/5。

  5结论

  在本次实验中,我们采用了传统的PID控制算法与模糊推理相结合的方式,设计出了一个基于STM32的模糊PID温度控制系统。实验结果显示了实验能够达到各项指标和功能的要求,表明实验是成功的。该方案具有广泛的实用性和灵活性;与传统的模拟调节系统相比,具有先进性和可靠性;与计算机控制系统相比,具有成本低,实用性强的优点。具有一定的价值。

  参考文献

  [1]刘增环,王利珍,何广祥,加热炉炉温PLC模糊控制系统的设计[J].自动化与仪表,2011,26(10):27-30.

  [2]祁鲲,厉虹.基于PLC的温度控制仿真实验平台设计[J].电气技术,2013,14(9):30-33.

  [3]卢秀和,李建波.基于STM32的四旋翼姿态控制系统[J].计算机测量与控制,2014,22(3):761-763.

  [4]余新栓.基于Matlab的STM32软件快速开发方法[J].单片机与嵌入式系统应用,2011,11(10):46-48.

  [5]赵莉华,张亚超,金阳等.基于LabVIEW和Matalab虚拟实验室的实现[J].实验室研究与探索,2014,33(4):62-64.

  [6]陈小敏,朱秋明,徐大专等.基于Matlab的模拟通信系统实验设计与仿真[J].实验科学与技术,2014,12(6):1-3.

  [7]刘华.基于ARM-Linux的嵌入式开发关键技术的研究与应用[D].北京:北京工业大学,2007.

  [8]夏宇,王军政,徐山峰.基于ARM9的嵌入式控制系统设计与实现[J].微计算机信息,2008,24(22):1-3.

  

2021年6月11日 18:25
浏览量:0
收藏
站点标题-双击进行编辑

最新文章

会计论文
MBA论文
人力资源
工商管理
美术论文
汉语言文学
音乐论文
舞蹈论文
法律论文
财务管理
市场营销