Research and Development of the Temperature Controller Based on Embedded ARM Platform
李 輝1,2 楊同帥1 彭道剛1,2(上海電力學(xué)院自動(dòng)化工程學(xué)院1,上?!?00090;上海發(fā)電過(guò)程智能管控工程技術(shù)研究中心2,上?!?00090)
?
嵌入式ARM平臺(tái)下溫度控制器研究與開(kāi)發(fā)
上海市自然科學(xué)基金資助項(xiàng)目(編號(hào):15ZR1417600);
上海市科學(xué)技術(shù)委員會(huì)工程技術(shù)研究中心項(xiàng)目(編號(hào): 14DZ2251100)。
修改稿收到日期:2015-10-10。
第一作者李輝(1979-),男,2008年畢業(yè)于同濟(jì)大學(xué)系統(tǒng)工程專(zhuān)業(yè),獲博士學(xué)位,副教授;主要從事新能源發(fā)電、微電網(wǎng)控制、嵌入式系統(tǒng)等方面的研究。
在電力、冶金等重要領(lǐng)域,溫度的準(zhǔn)確測(cè)量和控制是非常關(guān)鍵的一個(gè)環(huán)節(jié),比如在火電廠的生產(chǎn)過(guò)程中,準(zhǔn)確控制鍋爐主汽溫度可以有效確保機(jī)組運(yùn)行的安全性和經(jīng)濟(jì)性[1]。
目前國(guó)外的溫度控制器發(fā)展很快,像美國(guó)、日本等國(guó)家所生產(chǎn)的溫度控制儀表大都具有適應(yīng)復(fù)雜環(huán)境能力強(qiáng)、控制算法先進(jìn)、控制精度高等特點(diǎn)[2]。國(guó)內(nèi)所做的溫度控制器主要是采用單片機(jī)進(jìn)行控制,但隨著現(xiàn)代控制及智能控制理論的發(fā)展,這種基于單片機(jī)的溫度控制器已經(jīng)漸漸不能滿(mǎn)足在復(fù)雜環(huán)境下仍具有較好控制性能指標(biāo)的要求[3]。
本文所設(shè)計(jì)的溫度控制器采用基于ARM Cortex-M3內(nèi)核的微處理器進(jìn)行開(kāi)發(fā),由于其RAM較大、外設(shè)較多、主頻相對(duì)較高等特點(diǎn),可方便地移植先進(jìn)溫度控制算法,研發(fā)出的溫度控制器可根據(jù)其動(dòng)態(tài)性能指標(biāo)對(duì)被控對(duì)象溫度進(jìn)行調(diào)節(jié),魯棒性較好,功耗較低[4-5]。
本文提出的溫度控制器以ARM Cortex微控制器為主控核心,通過(guò)溫度采集模塊、加熱裝置及驅(qū)動(dòng)電路構(gòu)成一個(gè)閉環(huán)控制系統(tǒng),系統(tǒng)總體控制結(jié)構(gòu)圖如圖1所示。
基本的控溫原理為:通過(guò)鍵盤(pán)輸入溫度的設(shè)定值,溫度采集模塊采集被控對(duì)象的溫度,兩者做偏差后送入ARM微控制器中;由溫度控制算法得到輸出控制量,通過(guò)PWM輸出或者D/A轉(zhuǎn)換得到適合加熱裝置的控制信號(hào),經(jīng)驅(qū)動(dòng)電路控制加熱裝置,以此達(dá)到控溫的目的。
溫度控制器硬件設(shè)計(jì)如圖2所示。
2. 1主控電路
主控電路主要包括CPU電路、復(fù)位電路、晶振電路、JLINK下載調(diào)試電路。
圖1 溫度控制器總體結(jié)構(gòu)圖Fig. 1 Overall structure of the temperature controller
圖2 溫度控制器硬件設(shè)計(jì)圖Fig. 2 Hardware design of the temperature controller
目前嵌入式溫度控制器常采用的8/16位單片機(jī)性能和存儲(chǔ)有限,軟件功能只能通過(guò)簡(jiǎn)單的循環(huán)處理模式實(shí)現(xiàn),往往不利于操作系統(tǒng)的移植和網(wǎng)絡(luò)硬件的擴(kuò)展,或者實(shí)現(xiàn)的性能有限,達(dá)不到應(yīng)用的要求。本文所選用的STM32F107微控制器以ARM Cortex-M3為內(nèi)核,包括豐富的片內(nèi)資源和外設(shè),如64 kB的RAM、256 kB的Flash、7個(gè)定時(shí)器、2個(gè)SPI接口、1個(gè)IIC接口、5個(gè)UART,可外接大容量存儲(chǔ)設(shè)備的USB-OTG全速接口;內(nèi)部集成CAN總線、以太網(wǎng)控制器,2個(gè)多通道、采樣速率可達(dá)1 Mbit/s的12位ADC。1個(gè)2通道12位DAC,多達(dá)80個(gè)的GPIO口也為擴(kuò)展外設(shè)提供了有利的條件。
為簡(jiǎn)化起見(jiàn),本文設(shè)計(jì)的溫度控制器下載調(diào)試模式采用兩線制SWD調(diào)試接口。
2. 2溫度采集電路
溫度采集電路主要包括信號(hào)調(diào)理電路和A/D采集電路的設(shè)計(jì)。
熱電阻和熱電偶變送出來(lái)的信號(hào)不能直接被A/D轉(zhuǎn)換,需要設(shè)計(jì)一個(gè)信號(hào)調(diào)理電路[6]。由于熱電阻變送出來(lái)的是電阻信號(hào),所以需設(shè)計(jì)一個(gè)電橋電路將熱電阻的阻值信號(hào)變換成電壓信號(hào),而熱電偶變送出來(lái)的本身就是電壓信號(hào),所以并不需要作信號(hào)變換。根據(jù)K型熱電偶分度表可知,當(dāng)溫度為1 370℃時(shí),冷端補(bǔ)償前熱電偶輸出的壓差僅為54. 807 mV,而且?jiàn)A雜一些干擾和噪聲,所以需對(duì)輸出的信號(hào)進(jìn)行濾波和放大。
采集電路的A/D轉(zhuǎn)換器采用美國(guó)德州儀器生產(chǎn)的ADS1118,它是一款功耗低、兼容SPI接口的16位A/D轉(zhuǎn)換芯片。它內(nèi)部帶高精度溫度傳感器,可直接為熱電偶測(cè)溫時(shí)提供冷端補(bǔ)償,在工業(yè)自動(dòng)化領(lǐng)域、溫度測(cè)量時(shí)有著廣泛的應(yīng)用。ADS1118使用四線制SPI接口與微處理器相連,內(nèi)部帶可編程增益放大器(PGA),可輸入最小量程為256 mV的信號(hào),具體的參考電壓和放大倍數(shù)的對(duì)照關(guān)系如表1所示。
表1 ADS1118內(nèi)部PGA增益與輸入電壓量程對(duì)照表Tab. 1 Comparison table of ADS1118 internal PGA gain and input voltage range
鑒于K型熱電偶在溫度為1 370℃時(shí)輸出電壓僅為54. 807 mV,而且所設(shè)計(jì)的信號(hào)調(diào)理電路放大倍數(shù)為18倍左右,所以放大后的K型熱電偶輸出電壓最大約為986 mV。在測(cè)量熱電偶時(shí),軟件所選的PGA增益為4,即參考電壓的量程為±1. 024 V,滿(mǎn)足測(cè)量的要求。熱電阻的信號(hào)調(diào)理電路設(shè)計(jì)方法類(lèi)似,這里不詳加贅述。
2. 3控制信號(hào)輸出電路
溫度控制器通常通過(guò)加熱裝置控制被控對(duì)象的溫度,加熱器的輸入信號(hào)一般是PWM信號(hào)或者標(biāo)準(zhǔn)的模擬信號(hào)。為了能適應(yīng)不同輸入接口的加熱裝置,本文設(shè)計(jì)的溫度控制器設(shè)置有PWM信號(hào)、0~5 V電壓和4~20 mA電流信號(hào)輸出接口。
本溫控器使用TIMER5的CH1通道輸出PWM信號(hào),模擬信號(hào)輸出采用STM32內(nèi)部自帶的DAC外設(shè),精度可達(dá)12位。采用TI公司生產(chǎn)的LM285-2. 5穩(wěn)壓芯片輸出穩(wěn)定的+2. 5 V電壓作為DAC的參考電壓VREF +,GND作為VREF-,從而保證信號(hào)輸出的可靠性。電壓輸出時(shí),可外搭運(yùn)算放大電路,將DAC的輸出電壓放大2倍,即可滿(mǎn)足0~5 V電壓量程的需求。電流輸出時(shí),由于STM32的DAC引腳輸出的電流很小,所以需設(shè)計(jì)一個(gè)4~20 mA電流輸出驅(qū)動(dòng)電路[7]。電流輸出電路如圖3所示。
圖3 電流輸出驅(qū)動(dòng)電路Fig. 3 Current output driver circuit
根據(jù)理想運(yùn)算放大器“虛短”和“虛斷”的概念,并且令R23= R24= R25= R26= 10 kΩ,可以求得電流輸出為: Io= Uin/R27。
由上式可知,流過(guò)負(fù)載的電流和負(fù)載的大小并沒(méi)有直接關(guān)系,這樣可以消除由于負(fù)載而引起的干擾。但因?yàn)槠胀ǖ倪\(yùn)算放大器驅(qū)動(dòng)電流的能力相對(duì)較弱,所以使用三極管Q1做電流放大。綜上,R27選用120 Ω的精密電阻,DAC輸出電壓0. 48~2. 4 V即可使輸出電流達(dá)到4~20 mA的范圍。
2. 4通信電路設(shè)計(jì)
為了使溫度控制器能與工業(yè)現(xiàn)場(chǎng)儀表和DCS進(jìn)行通信,本文設(shè)計(jì)的溫度控制器支持以下3種通信方式: RS-232、RS-485和以太網(wǎng)[8]。
通常PC機(jī)上串口輸出的電平電壓為-15~+15 V,而溫控器所用ARM芯片接收的信號(hào)電平是TTL電平,為-3. 3~+3. 3 V。所以,為了使溫控器和PC機(jī)之間通過(guò)RS-232接口通信,使用電平轉(zhuǎn)換芯片MAX3232將TTL的邏輯電平轉(zhuǎn)換成PC機(jī)的RS-232電平。通過(guò)電平轉(zhuǎn)換,實(shí)現(xiàn)了溫控器與PC機(jī)之間的串口通信。
為了滿(mǎn)足工業(yè)通信的要求,溫控器也設(shè)計(jì)了一路RS-485總線接口,采用的RS-485協(xié)議轉(zhuǎn)換器為SP3485。STM32F107的UART5的RXD5和TXD5分別與SP3485的RO和DI引腳相連接,進(jìn)行數(shù)據(jù)的接收與發(fā)送。當(dāng)PD0輸出為高時(shí),DE有效,CPU向總線上發(fā)送數(shù)據(jù);當(dāng)PD0輸出為低時(shí),CPU可以接收總線上的數(shù)據(jù)。從信號(hào)傳輸?shù)馁|(zhì)量和可靠性考慮,需在SP3485的總線輸出端并聯(lián)一個(gè)120 Ω的匹配電阻,并添加GND線,使用三線制進(jìn)行通信。
溫度控制器采用高性?xún)r(jià)比的DM9161A作為10 M/100 M以太網(wǎng)PHY芯片。DM9161A符合IEEE 802. 3. 10 BASE-T/100BASE-TX協(xié)議,支持中繼模式和節(jié)點(diǎn)模式轉(zhuǎn)換。以太網(wǎng)通信電路主要由網(wǎng)絡(luò)變壓器、狀態(tài)燈電路、RJ45插座等組成,通過(guò)一根網(wǎng)線就可方便地與PC機(jī)或DCS系統(tǒng)互連,從而實(shí)現(xiàn)以太網(wǎng)遠(yuǎn)程通信的功能。
溫度控制器軟件部分采用了嵌入式實(shí)時(shí)操作系統(tǒng)μC/OS-II,對(duì)各個(gè)模塊任務(wù)進(jìn)行調(diào)度和管理。該系統(tǒng)能夠及時(shí)控制所有設(shè)備與任務(wù)協(xié)調(diào)運(yùn)行,并且能夠在規(guī)定時(shí)間內(nèi)完成對(duì)信號(hào)量、郵箱等事件的處理。它的源碼絕大多數(shù)使用C語(yǔ)言編寫(xiě),能方便地移植到ARM Cortex平臺(tái)中。
3. 1任務(wù)的劃分
溫控器需要同時(shí)做很多任務(wù),比如數(shù)據(jù)通信、溫度采集與控制等。CPU在某一個(gè)時(shí)刻只能執(zhí)行一個(gè)任務(wù),所以為了加快系統(tǒng)的執(zhí)行速度,必須根據(jù)實(shí)際的需求,按照優(yōu)先級(jí)的高低,合理地給系統(tǒng)劃分不同的任務(wù)。本文設(shè)計(jì)的溫度控制器軟件上設(shè)定了6個(gè)任務(wù)。
TASK1:啟動(dòng)任務(wù),該任務(wù)主要完成系統(tǒng)時(shí)鐘的初始化和中斷的啟動(dòng),以及創(chuàng)建其他的子任務(wù)。
TASK2:溫度采集任務(wù),該任務(wù)主要完成被控對(duì)象溫度以及標(biāo)準(zhǔn)電壓、電流信號(hào)的采集。
TASK3:鍵盤(pán)輸入任務(wù),該任務(wù)主要完成工作人員對(duì)溫度控制器參數(shù)的設(shè)定。
TASK4:溫度控制任務(wù),該任務(wù)主要根據(jù)被控對(duì)象溫度的采集值、溫度設(shè)定值,使用溫度控制算法,計(jì)算出送給執(zhí)行器的控制量的值,然后由執(zhí)行器對(duì)被控對(duì)象溫度進(jìn)行控制。
TASK5:數(shù)據(jù)通信任務(wù),該任務(wù)主要完成下位機(jī)與上位機(jī)的通信,包括參數(shù)的設(shè)定、溫度等數(shù)據(jù)的傳送等。
TASK6: LCD顯示任務(wù),該任務(wù)主要將溫度采集值、溫度設(shè)定值等在LCD上顯示。
3. 2軟件總流程
溫度控制器上電后,直接跳轉(zhuǎn)到主函數(shù)中運(yùn)行,主函數(shù)首先對(duì)ADS1118的各個(gè)寄存器、LCD顯示屏、通信模塊等進(jìn)行初始化,然后關(guān)閉CPU的中斷以及初始化系統(tǒng)時(shí)鐘為72 MHz,使程序進(jìn)入到μC/OS-II操作系統(tǒng)中運(yùn)行。軟件流程如圖4所示。
圖4 溫度控制器軟件總體流程圖Fig. 4 The overall software flowchart of temperature controller
實(shí)驗(yàn)測(cè)試選用電阻爐作為被控對(duì)象,電阻爐的數(shù)學(xué)模型一般式為[9]:
式中: K為開(kāi)環(huán)增益; T為時(shí)間常數(shù);τ為純時(shí)滯時(shí)間常數(shù)。
通過(guò)對(duì)電阻爐做溫度階躍響應(yīng)實(shí)驗(yàn),得出上式中的各個(gè)參數(shù)為: T =3 485 s,K =161,τ=123 s。溫度控制算法采用基于多容慣性標(biāo)準(zhǔn)傳遞函數(shù)的PID控制算法,根據(jù)PID控制器參數(shù)整定MCP法公式[10]:
將式(1)中各個(gè)參數(shù)代入上面公式中,可計(jì)算出PID整定參數(shù)為: Kp= 0. 174 8,Ti= 471,Td= 61。使用上面的PID整定參數(shù),軟件編寫(xiě)PID控制程序,通過(guò)鍵盤(pán)設(shè)置給定溫度為500℃,控制結(jié)果如圖5所示。
圖5 MCP-PID控制器溫度響應(yīng)曲線Fig. 5 Temperature response curves of the MCP-PID controller
本文研究了一種基于STM32F107的溫度控制器,將μC/OS-II嵌入式實(shí)時(shí)操作系統(tǒng)移植到溫控器硬件平臺(tái)中,通過(guò)對(duì)任務(wù)的劃分和任務(wù)優(yōu)先級(jí)的分配,實(shí)現(xiàn)了溫度采集和溫度控制等功能。實(shí)驗(yàn)測(cè)試結(jié)果表明,本文研究的溫度控制器能夠較精確地測(cè)量熱電阻和熱電偶的信號(hào)。以MCP-PID控制算法為例,說(shuō)明本溫控器可以方便實(shí)現(xiàn)各種溫度控制算法的移植,控制效果較好,控制結(jié)果可通過(guò)LCD就地顯示,也可通過(guò)RS-232、RS-485或以太網(wǎng)發(fā)送到DCS主機(jī)或者PC機(jī)上,實(shí)現(xiàn)了實(shí)時(shí)監(jiān)控的功能。
參考文獻(xiàn)
[1]溫雪飛,孫風(fēng)泉,王曉宇,等.超超臨界鍋爐主汽溫度控制研究[J].電器工業(yè),2013(4):40.
[2]張坤平,張銀巧,陳坤.基于ARM嵌入式模糊-PID溫度控制系統(tǒng)的設(shè)計(jì)[J].煤礦機(jī)械,2010,31(8): 173-175.
[3]張新榮,徐保國(guó).一種燃?xì)忮仩t溫度及水位控制系統(tǒng)設(shè)計(jì)[J].自動(dòng)化儀表,2012,33(6): 23-25.
[4]魏阿勇,凌志浩,葉西寧.基于STM32的移動(dòng)多終端環(huán)境監(jiān)測(cè)系統(tǒng)[J].自動(dòng)化儀表,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的智能溫度變送器的設(shè)計(jì)[J].儀表技術(shù)與傳感器,2013 (11): 67-70.
[8]艾勇福,劉敬彪,盛慶華.中深孔巖心取樣鉆機(jī)供電系統(tǒng)電力參數(shù)的監(jiān)測(cè)[J].自動(dòng)化儀表,2010,31(1): 35-37,41.
[9]顧孟賢,楊平.電阻爐爐溫的MCP-CSH控制[J].工業(yè)加熱,2014 (2): 49-52.
[10]楊平,黃偉,孫宇貞,等. PID參數(shù)整定的MCP標(biāo)準(zhǔn)傳遞函數(shù)法公式[J].上海電力學(xué)院學(xué)報(bào),2014,30(1): 40-45.
Research and Development of the Temperature Controller Based on Embedded ARM Platform
李輝1,2楊同帥1彭道剛1,2
(上海電力學(xué)院自動(dòng)化工程學(xué)院1,上海200090;上海發(fā)電過(guò)程智能管控工程技術(shù)研究中心2,上海200090)
摘要:為了滿(mǎn)足工業(yè)現(xiàn)場(chǎng)設(shè)備溫度控制的需求,以ARM Cortex-M3處理器STM32F107和嵌入式實(shí)時(shí)操作系統(tǒng)μC/OS-II為基礎(chǔ),設(shè)計(jì)開(kāi)發(fā)了嵌入式溫度控制器,給出了控制器的硬件設(shè)計(jì)方案和軟件設(shè)計(jì)流程。硬件上可實(shí)現(xiàn)熱電阻和熱電偶信號(hào)的采集、溫度控制、串口和以太網(wǎng)通信、LCD顯示等功能;軟件上移植了μC/OS-II嵌入式實(shí)時(shí)操作系統(tǒng),便于實(shí)現(xiàn)各種先進(jìn)控制算法。實(shí)驗(yàn)表明,該溫度控制器使用MCP-PID溫度控制算法測(cè)試,控制效果較好,無(wú)超調(diào)。
關(guān)鍵詞: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
中圖分類(lèi)號(hào):TH-3; TP273
文獻(xiàn)標(biāo)志碼:A
DOI:10.16086/j.cnki.issn1000-0380.201603023