您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 能源与动力工程 > 基于STM32的温度控制实验设计
基于STM32的温度控制实验设计摘要:设计一种基于STM32单片机的高精度温度控制实验系统,调温范围为15~130℃。系统包括测温、控制、人机交互和加热器等模块,使用DS18B20温度传感器测量温度,采用搭载ARMCortex?M内核的STM32F429单片机作为控制核心,人机交互部分采用TFT显示屏实时显示温度,通过PWM脉冲宽度调制波驱动加热器。该系统可以实现温度的测量变送、控制、数据存储和分析功能。采用自适应性强的模糊PID算法,实现三个控制参数的在线修正。不需要建立被控对象精确模型就能保证加热器功率的实时控制要求,实现较快和较稳的动态性能。实验测试结果证明了该方法的实用性和有效性。关键词:温度控制;温度实时显示;脉冲宽度调制;模糊PID中图分类号:TN876?34文献标识码:A文章编号:1004?373X(2016)12?0037?04Abstract:Ahigh?precisiontemperaturecontrolexperimentalsystembasedonmicrocontrollerSTM32wasdesigned,whosetemperaturerangeisfrom15℃to130℃.Thesystemcontainsfourmodulesoftemperaturemeasurement,control,man?machineinteractionandheater.DS18B20temperaturesensorisusedtodetecttemperature.single?chipmicrocomputerSTM32F429withARMCortex?Mkernelistakenasthekeycontrolunit.TFTscreenisadoptedinthehuman?computerinteractionparttorealizetemperaturereal?timedisplay.Theheaterisdrivenbypulsewidthmodulation(PWM)wave.Thesystemcanimplementthefunctionsoftransmission,control,datastorageandanalysisofdetectedtemperature.TheadaptivefuzzyPIDalgorithmisadoptedtorealizetheon?linecorrectionofthreecontrolparameters.Itisunnecessarytoestablishaccuratemodelforthecontrolledobjecttoguaranteethepowercontrolrequirementsoftheheater,realizethefast?responseandstabledynamicperformance.Theexperimentalresultshasprovedthepracticabilityandvalidityofthemethod.Keywords:temperaturecontrol;real?timedisplayoftemperature;PWM;fuzzyPID自控原理实验中温度控制是较复杂的非线性问题,实验教学课堂效率低,过程缓慢,误差大,较难满足教学需求[1?2]。如果能够设计合适的温度控制模块,把温度控制在设定偏差允许范围内,满足实验中对温度控制的超调小、速度快等要求,那么将会提高实验教学的效率和增强学生学习控制理论的兴趣。另外,在现代实验教学过程中,信息的处理和算法设计的融合更加方便,给设计具有温度测量、控制和通信能力的开放式温度控制模块提供了充分条件。基于这种应用背景和设计理念,提出了一种廉价的基于STM32的温度控制实验系统,可以实现温度的测量变送、控制、数据存储和分析功能。1系统整体设计自控原理实验中的温度控制系统主要由四个部分组成:温度检测模块、人机交互模块、控制器和PWM驱动加热模块。系统整体结构如图1所示。温度检测模块以DS18B20温度传感器为核心,将检测到的温度信号传送给STM32进行温度的实时检测,同时输出给单片机温度信号及变化规律,指导控制器控制信号的强度。要想准确控制某个量变化,需带有反馈的闭环控制,将被控制量稳定在设定值的偏差范围内,通过温度测量模块来实现反馈。温度检测模块的测量误差必须尽可能的减小。人机交互模块由2.4英寸TFT彩色显示屏和两个物理按键组成。控制器选用了搭载ARMCortex?M内核的STM32F429单片机,利用模糊控制原理设计控制算法。应用PWM驱动电路实现直流电压调制从而驱动被控对象。2系统各模块设计2.1主控模块设计选择STM32作为主控芯片。由于STM32F429型单片机具有的低功耗、高速度以及再编译简单有效、对彩色显示屏的驱动应用更加方便直接等,采用STM32F429型单片机作为控制微处理器。STM32单片机基于ARMCortex?M内核为嵌入式应用,STM32单片机新产品外设共有12条DMA通道,还有一个CRC计算单元,支持96b惟一标识码,其供电电压在2.0~3.6V时也可以保证工作效率,运行程序时以72兆次/s的速度从只读程序存储器中读取命令,只需要27mA的电流就可以驱动[3?4]。另外提供了4种极低耗电量的节能模式,可以把电流降低到2μA,无论哪种模式,STM32F429都可以完成快速启动,复位电路的设计可以把由振荡器生成的80MHz的数字信号用于快速启动。2.2温度测量模块设计温度传感器选DS18B20,其直接输出数字信号,不需要模/数转换可直接应用,使用方便且精度高,温度量程为-55.0~125.0℃,-10~85℃范围内精度为±0.2℃。DS18B20型温度传感器的温度测量原理如图2所示。对温度灵敏度较小的晶体振荡器在发生温度变化时的振荡频率非常稳定,几乎没有变化,因此它可以被用来提供振荡周期不变的计数器1的驱动时钟信号。对温度灵敏度较大的晶体振荡器在发生温度变化时的振荡频率有很大波动,它被用来提供作为温度传感器接收器的计数器2的驱动信号。当温度传感器被放在-55℃的环境中时,计数器1的计数速度对应了一个预设的数值。对温度灵敏度较小的晶体振荡器的每一个发出的信号作用在计数器1上都会使它进行一次自减1的操作,如果计数器1中存储的数值最终变成了0,存放温度值的存储器就进行一次自加1操作。然后计数器1内将重新写入设置的对应-55℃的数值。循环进行直到计数器2中存储的值减小到0。而存放温度值的存储器中的值就是此时的温度值。斜率累加器作为对测量过程中的曲线进行线性化校正,方式是通过对计数器1的基础数值进行修正实现的。实验中通过对STM32单片机的编程,运用卡尔曼滤波的方式修正测温数值,理论测温精度可达±0.1℃。DS18B20温度传感器使用方便,但如果想要让DS18B20温度传感器的测量精确程度达到比较理想的水平,I/O端口一定要保证在温度传感器工作时,被提供足够多的能量。所以需要通过一个1.7kΩ的电阻与STM32F429单片机的VE端相连,保证工作时有稳定的大于1mA的电流输入。温度传感器电路如图3所示。中间数据端口连接在单片机控制器的B10端口,以串行方式输入给单片机12b的温度信号。DS18B20的温度数据如表1所示。表1DS18B20的温度表这是数字转化后的数据,存储在两个8b的RAM中,二进制中的前面5位是符号位,如果测得的温度大于0,这5位为0,只要将测到的数值乘以0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘以0.0625即可得到实际温度。例如125℃的数字输出为07D0H,-25.0625℃的数字输出为FE6FH。正、负温度要把数值由十六进制转为十进制。例如输入的数据是00FA,则代表着温度为(15×16+10)×0.0625=15.62℃,例如输入的数据是0032H,则代表着温度为(3×16+2)×(-0.0625)=-3.125℃。2.3人机交互模块设计本模块应用2.4英寸TFT显示屏进行温度数值的实时显示、设定值参考、PWM占空比显示、KP隶属度显示等功能。配合按键一同完成温度设置与控制状态显示的功能实现。采用单片机开发版中自带的彩屏,并不需要外加任何电路设计就可以直接编程使用[5]。TFT彩色显示屏的所有数据传送和获取过程都由其内部的运算器主导,例如在左上角显示一个点,这个点的坐标就是X0,Y0。TFT彩色显示屏的控制器,需要首先通过18位数据接口发送x坐标给LCD执行元件,再发送y坐标给LCD,最后发送18位数据组成颜色代码给CLD。这样,LCD屏幕上就会在左上角第一个点显示出来相应的颜色。无论是一幅图片还是一个视频都是按照这个方式来显示的。常规的小型TFT显示屏有一个18位数据接口,18根线用来设定要显示的点的x,y坐标、以及显示哪种颜色、同时还可以用来设定LCD的功能状态。2.4加热模块设计加热模块由PWM波驱动一块加热片进行温度控制,利用STM32F429内部PWM脉宽调制模块驱动加热片控制温度变化。当PWM的占空比为100%时,经过PWM驱动模块输出的直流电压为12V,如果占空比为50%,那么输出电压就是6V直流电压。电阻丝发热量过大,需要的驱动电流常常高达10A以上,如不加装电气隔离,稍不注意就会损坏控制器。而且电阻丝的发热难以控制,由于加热时电阻丝存在很强的非线性特性,故采用XH?RJ101012的陶瓷加热片作为被控对象。采用L6203桥式整流驱动器把输入的模拟PWM脉宽调制信号整流成稳定的直流电压信号输出。实验中为DMOS全桥直流驱动器,OUT1和OUT2之间接陶瓷加热片,ENABLE=1时,将PWM信号给IN1,PWM信号反向后给IN2,这样调整PWM即可改变加热片的加热功率。加热片额定电压为10V,最大电压为38V,额定功率为5W,电阻为20Ω。PWM驱动模块原理如图4所示。3温度控制器设计温度控制是一个具有时变性和滞后性的复杂系统,而且很难建立它的精确数学模型,实验模块选用模糊自适应PID控制算法,将传统PID控制策略与模糊控制理论相结合,既不需要依赖精确的系统模型,又能显著提高调节精度和速率。温度控制系统设计的核心,就是对其中起到控制器作用的模糊PID的模糊逻辑与模糊规则进行设置和调试。模糊控制器的结构主要由模糊化处理模块、模糊控制规则模块、模糊推理机制和解模糊模块组成。在PID调节中,静态误差的大小由比例系数决定,比例系数KP越大,静态误差越小。但KP过大时,会使振荡次数增加,调节时间延长,稳定性变差,比例系数调节要以系统稳定性为界限;引入积分环节改善低频特性,当闭环系统稳定时,加入会提升系统的开环型别;微分环节影响动态响应速度和稳定性[6]。故通过预测出的反映偏差信号变化率的信号缩短调节时间且加速系统的动态速度,显著改善了控制系统的稳定性能和响应速度。找出PID三个控制参数KP,KI,KD与输入量e,ec之间的模糊关系,实现三个控制参数的在线修正。解模糊方式是最小面积重心法,利用模糊变量和模糊规则表,经由模糊推理策略得出输出控制量KP,KI,KD,控制信号的输出量,得到的PWM占空比。模糊逻辑使用误差和误差变化率作为输入变量,同时对其进行实时监控保证被控对象具有良好性能。实验中自适应模糊控制过程如图5所示。4实验结果及分析控制模块中只要适当改变温控模块软件里面的控制参数或通过上位机设置,系统就能发挥很好的控制功能。实验实物调试如图6所示。彩屏显示为操作者提供了实时温度显示以及定时温度和PWM波占空比的参考,此外,为了方便调试,在屏幕下方也显示了Ke在各个模糊子集下的隶属度函数值。界面显示如图7所示,扰动作用下系统稳定性分析如图8所示。Matlab中可对各种控制算法进行编程扩展温度控制实验[7?8],利用Matlab对系统进行数据分析。当被控对象的数学模型发生变化时,把模型参数增加20%,在图8中描绘出被控对象的温度变化曲线。
本文标题:基于STM32的温度控制实验设计
链接地址:https://www.777doc.com/doc-1432109 .html