Research and Development of the Temperature Controller Based on Embedded ARM Platform
李 辉1,2 杨同帅1 彭道刚1,2(上海电力学院自动化工程学院1,上海 200090;上海发电过程智能管控工程技术研究中心2,上海 200090)
嵌入式ARM平台下温度控制器研究与开发
上海市自然科学基金资助项目(编号:15ZR1417600);
上海市科学技术委员会工程技术研究中心项目(编号: 14DZ2251100)。
修改稿收到日期:2015-10-10。
第一作者李辉(1979-),男,2008年毕业于同济大学系统工程专业,获博士学位,副教授;主要从事新能源发电、微电网控制、嵌入式系统等方面的研究。
在电力、冶金等重要领域,温度的准确测量和控制是非常关键的一个环节,比如在火电厂的生产过程中,准确控制锅炉主汽温度可以有效确保机组运行的安全性和经济性[1]。
目前国外的温度控制器发展很快,像美国、日本等国家所生产的温度控制仪表大都具有适应复杂环境能力强、控制算法先进、控制精度高等特点[2]。国内所做的温度控制器主要是采用单片机进行控制,但随着现代控制及智能控制理论的发展,这种基于单片机的温度控制器已经渐渐不能满足在复杂环境下仍具有较好控制性能指标的要求[3]。
本文所设计的温度控制器采用基于ARM Cortex-M3内核的微处理器进行开发,由于其RAM较大、外设较多、主频相对较高等特点,可方便地移植先进温度控制算法,研发出的温度控制器可根据其动态性能指标对被控对象温度进行调节,鲁棒性较好,功耗较低[4-5]。
本文提出的温度控制器以ARM Cortex微控制器为主控核心,通过温度采集模块、加热装置及驱动电路构成一个闭环控制系统,系统总体控制结构图如图1所示。
基本的控温原理为:通过键盘输入温度的设定值,温度采集模块采集被控对象的温度,两者做偏差后送入ARM微控制器中;由温度控制算法得到输出控制量,通过PWM输出或者D/A转换得到适合加热装置的控制信号,经驱动电路控制加热装置,以此达到控温的目的。
温度控制器硬件设计如图2所示。
2. 1主控电路
主控电路主要包括CPU电路、复位电路、晶振电路、JLINK下载调试电路。
图1 温度控制器总体结构图Fig. 1 Overall structure of the temperature controller
图2 温度控制器硬件设计图Fig. 2 Hardware design of the temperature controller
目前嵌入式温度控制器常采用的8/16位单片机性能和存储有限,软件功能只能通过简单的循环处理模式实现,往往不利于操作系统的移植和网络硬件的扩展,或者实现的性能有限,达不到应用的要求。本文所选用的STM32F107微控制器以ARM Cortex-M3为内核,包括丰富的片内资源和外设,如64 kB的RAM、256 kB的Flash、7个定时器、2个SPI接口、1个IIC接口、5个UART,可外接大容量存储设备的USB-OTG全速接口;内部集成CAN总线、以太网控制器,2个多通道、采样速率可达1 Mbit/s的12位ADC。1个2通道12位DAC,多达80个的GPIO口也为扩展外设提供了有利的条件。
为简化起见,本文设计的温度控制器下载调试模式采用两线制SWD调试接口。
2. 2温度采集电路
温度采集电路主要包括信号调理电路和A/D采集电路的设计。
热电阻和热电偶变送出来的信号不能直接被A/D转换,需要设计一个信号调理电路[6]。由于热电阻变送出来的是电阻信号,所以需设计一个电桥电路将热电阻的阻值信号变换成电压信号,而热电偶变送出来的本身就是电压信号,所以并不需要作信号变换。根据K型热电偶分度表可知,当温度为1 370℃时,冷端补偿前热电偶输出的压差仅为54. 807 mV,而且夹杂一些干扰和噪声,所以需对输出的信号进行滤波和放大。
采集电路的A/D转换器采用美国德州仪器生产的ADS1118,它是一款功耗低、兼容SPI接口的16位A/D转换芯片。它内部带高精度温度传感器,可直接为热电偶测温时提供冷端补偿,在工业自动化领域、温度测量时有着广泛的应用。ADS1118使用四线制SPI接口与微处理器相连,内部带可编程增益放大器(PGA),可输入最小量程为256 mV的信号,具体的参考电压和放大倍数的对照关系如表1所示。
表1 ADS1118内部PGA增益与输入电压量程对照表Tab. 1 Comparison table of ADS1118 internal PGA gain and input voltage range
鉴于K型热电偶在温度为1 370℃时输出电压仅为54. 807 mV,而且所设计的信号调理电路放大倍数为18倍左右,所以放大后的K型热电偶输出电压最大约为986 mV。在测量热电偶时,软件所选的PGA增益为4,即参考电压的量程为±1. 024 V,满足测量的要求。热电阻的信号调理电路设计方法类似,这里不详加赘述。
2. 3控制信号输出电路
温度控制器通常通过加热装置控制被控对象的温度,加热器的输入信号一般是PWM信号或者标准的模拟信号。为了能适应不同输入接口的加热装置,本文设计的温度控制器设置有PWM信号、0~5 V电压和4~20 mA电流信号输出接口。
本温控器使用TIMER5的CH1通道输出PWM信号,模拟信号输出采用STM32内部自带的DAC外设,精度可达12位。采用TI公司生产的LM285-2. 5稳压芯片输出稳定的+2. 5 V电压作为DAC的参考电压VREF +,GND作为VREF-,从而保证信号输出的可靠性。电压输出时,可外搭运算放大电路,将DAC的输出电压放大2倍,即可满足0~5 V电压量程的需求。电流输出时,由于STM32的DAC引脚输出的电流很小,所以需设计一个4~20 mA电流输出驱动电路[7]。电流输出电路如图3所示。
图3 电流输出驱动电路Fig. 3 Current output driver circuit
根据理想运算放大器“虚短”和“虚断”的概念,并且令R23= R24= R25= R26= 10 kΩ,可以求得电流输出为: Io= Uin/R27。
由上式可知,流过负载的电流和负载的大小并没有直接关系,这样可以消除由于负载而引起的干扰。但因为普通的运算放大器驱动电流的能力相对较弱,所以使用三极管Q1做电流放大。综上,R27选用120 Ω的精密电阻,DAC输出电压0. 48~2. 4 V即可使输出电流达到4~20 mA的范围。
2. 4通信电路设计
为了使温度控制器能与工业现场仪表和DCS进行通信,本文设计的温度控制器支持以下3种通信方式: RS-232、RS-485和以太网[8]。
通常PC机上串口输出的电平电压为-15~+15 V,而温控器所用ARM芯片接收的信号电平是TTL电平,为-3. 3~+3. 3 V。所以,为了使温控器和PC机之间通过RS-232接口通信,使用电平转换芯片MAX3232将TTL的逻辑电平转换成PC机的RS-232电平。通过电平转换,实现了温控器与PC机之间的串口通信。
为了满足工业通信的要求,温控器也设计了一路RS-485总线接口,采用的RS-485协议转换器为SP3485。STM32F107的UART5的RXD5和TXD5分别与SP3485的RO和DI引脚相连接,进行数据的接收与发送。当PD0输出为高时,DE有效,CPU向总线上发送数据;当PD0输出为低时,CPU可以接收总线上的数据。从信号传输的质量和可靠性考虑,需在SP3485的总线输出端并联一个120 Ω的匹配电阻,并添加GND线,使用三线制进行通信。
温度控制器采用高性价比的DM9161A作为10 M/100 M以太网PHY芯片。DM9161A符合IEEE 802. 3. 10 BASE-T/100BASE-TX协议,支持中继模式和节点模式转换。以太网通信电路主要由网络变压器、状态灯电路、RJ45插座等组成,通过一根网线就可方便地与PC机或DCS系统互连,从而实现以太网远程通信的功能。
温度控制器软件部分采用了嵌入式实时操作系统μC/OS-II,对各个模块任务进行调度和管理。该系统能够及时控制所有设备与任务协调运行,并且能够在规定时间内完成对信号量、邮箱等事件的处理。它的源码绝大多数使用C语言编写,能方便地移植到ARM Cortex平台中。
3. 1任务的划分
温控器需要同时做很多任务,比如数据通信、温度采集与控制等。CPU在某一个时刻只能执行一个任务,所以为了加快系统的执行速度,必须根据实际的需求,按照优先级的高低,合理地给系统划分不同的任务。本文设计的温度控制器软件上设定了6个任务。
TASK1:启动任务,该任务主要完成系统时钟的初始化和中断的启动,以及创建其他的子任务。
TASK2:温度采集任务,该任务主要完成被控对象温度以及标准电压、电流信号的采集。
TASK3:键盘输入任务,该任务主要完成工作人员对温度控制器参数的设定。
TASK4:温度控制任务,该任务主要根据被控对象温度的采集值、温度设定值,使用温度控制算法,计算出送给执行器的控制量的值,然后由执行器对被控对象温度进行控制。
TASK5:数据通信任务,该任务主要完成下位机与上位机的通信,包括参数的设定、温度等数据的传送等。
TASK6: LCD显示任务,该任务主要将温度采集值、温度设定值等在LCD上显示。
3. 2软件总流程
温度控制器上电后,直接跳转到主函数中运行,主函数首先对ADS1118的各个寄存器、LCD显示屏、通信模块等进行初始化,然后关闭CPU的中断以及初始化系统时钟为72 MHz,使程序进入到μC/OS-II操作系统中运行。软件流程如图4所示。
图4 温度控制器软件总体流程图Fig. 4 The overall software flowchart of temperature controller
实验测试选用电阻炉作为被控对象,电阻炉的数学模型一般式为[9]:
式中: K为开环增益; T为时间常数;τ为纯时滞时间常数。
通过对电阻炉做温度阶跃响应实验,得出上式中的各个参数为: T =3 485 s,K =161,τ=123 s。温度控制算法采用基于多容惯性标准传递函数的PID控制算法,根据PID控制器参数整定MCP法公式[10]:
将式(1)中各个参数代入上面公式中,可计算出PID整定参数为: Kp= 0. 174 8,Ti= 471,Td= 61。使用上面的PID整定参数,软件编写PID控制程序,通过键盘设置给定温度为500℃,控制结果如图5所示。
图5 MCP-PID控制器温度响应曲线Fig. 5 Temperature response curves of the MCP-PID controller
本文研究了一种基于STM32F107的温度控制器,将μC/OS-II嵌入式实时操作系统移植到温控器硬件平台中,通过对任务的划分和任务优先级的分配,实现了温度采集和温度控制等功能。实验测试结果表明,本文研究的温度控制器能够较精确地测量热电阻和热电偶的信号。以MCP-PID控制算法为例,说明本温控器可以方便实现各种温度控制算法的移植,控制效果较好,控制结果可通过LCD就地显示,也可通过RS-232、RS-485或以太网发送到DCS主机或者PC机上,实现了实时监控的功能。
参考文献
[1]温雪飞,孙风泉,王晓宇,等.超超临界锅炉主汽温度控制研究[J].电器工业,2013(4):40.
[2]张坤平,张银巧,陈坤.基于ARM嵌入式模糊-PID温度控制系统的设计[J].煤矿机械,2010,31(8): 173-175.
[3]张新荣,徐保国.一种燃气锅炉温度及水位控制系统设计[J].自动化仪表,2012,33(6): 23-25.
[4]魏阿勇,凌志浩,叶西宁.基于STM32的移动多终端环境监测系统[J].自动化仪表,2015,36(3): 40-44.
[5]Zang Huai Quan,Li Qian. The automatic temperature system with fuzzy self-adaptive PID control in semiconductor laser[C]/ / Proceedings of the 2009 IEEE International Conference on Automation and Logistics,2009:1691-1694.
[6]Zhang M. Research and implement of thermocouple sensor and microcontroller interface[C]/ /Multimedia Technology (ICMT),2010 International Conference on. IEEE,2010: 1-3.
[7]李文涛,杨小新.基于STC89C52的智能温度变送器的设计[J].仪表技术与传感器,2013 (11): 67-70.
[8]艾勇福,刘敬彪,盛庆华.中深孔岩心取样钻机供电系统电力参数的监测[J].自动化仪表,2010,31(1): 35-37,41.
[9]顾孟贤,杨平.电阻炉炉温的MCP-CSH控制[J].工业加热,2014 (2): 49-52.
[10]杨平,黄伟,孙宇贞,等. PID参数整定的MCP标准传递函数法公式[J].上海电力学院学报,2014,30(1): 40-45.
Research and Development of the Temperature Controller Based on Embedded ARM Platform
李辉1,2杨同帅1彭道刚1,2
(上海电力学院自动化工程学院1,上海200090;上海发电过程智能管控工程技术研究中心2,上海200090)
摘要:为了满足工业现场设备温度控制的需求,以ARM Cortex-M3处理器STM32F107和嵌入式实时操作系统μC/OS-II为基础,设计开发了嵌入式温度控制器,给出了控制器的硬件设计方案和软件设计流程。硬件上可实现热电阻和热电偶信号的采集、温度控制、串口和以太网通信、LCD显示等功能;软件上移植了μC/OS-II嵌入式实时操作系统,便于实现各种先进控制算法。实验表明,该温度控制器使用MCP-PID温度控制算法测试,控制效果较好,无超调。
关键词:ARM温度控制器热电偶电阻炉μC/OS-II多容惯性
Abstract:In order to meet the demand for temperature control of industrial field devices,a embedded temperature controller based on ARM Cortex-M3 processor STM32F107 and embedded real-time operating system μC/OS-II is designed and developed,the scheme of hardware design and flow diagram of software design are given. In the hardware part,the functions of signal acquisition for thermal resistance and thermocouple,temperature control,serial port and Ethernet communication and LCD display are achieved. In the software part,the μC/OSII embedded real time operating system is transplanted for easily realizing various algorithms of advanced control algorithms. The experiments show that the control effect of temperature controller based on MCP-PID temperature control algorithm is better and without overshoot.
Keywords:ARMTemperature controller Thermocouple Resistance furnace μC/OS-II Multi-capacity inertia
中图分类号:TH-3; TP273
文献标志码:A
DOI:10.16086/j.cnki.issn1000-0380.201603023