基于STM32為主控的溫度單反饋控制系統(tǒng)
設(shè)計選用STM32單片機作控制器,設(shè)計溫度單反饋的控制系統(tǒng),對電加熱水器內(nèi)水的溫度進(jìn)行控制。通過PT100溫度傳感器實現(xiàn)對水溫信號的采集,并利用模擬量前向通道來對水溫信號進(jìn)行處理。利用STM32單片機進(jìn)行控制輸出PWM信號,用此信號控制接觸器進(jìn)而控制電加熱水器的電源通斷,最終實現(xiàn)對水溫的控制。同時用組態(tài)軟件設(shè)計監(jiān)控界面來實現(xiàn)對水溫的控制顯示。通過對此課題的設(shè)計,能夠使自動化的學(xué)生對工業(yè)過程控制對象具有更進(jìn)一步的了解,同時熟練掌握自動化控制系統(tǒng)的設(shè)計流程,為以后的工作學(xué)習(xí)打下堅實基礎(chǔ)。
本文引用地址:http://www.butianyuan.cn/article/201802/375293.htm一、控制系統(tǒng)硬件設(shè)計
1、控制系統(tǒng)硬件總體設(shè)計
溫度是一個很重要的變量,需要對其進(jìn)行準(zhǔn)確地控制。溫度控制系統(tǒng)常用來保持溫度恒定或者使溫度按照某種規(guī)定的規(guī)律變化。閉環(huán)控制是溫度控制系統(tǒng)中最為常見類型,本設(shè)計即為閉環(huán)溫度控制系統(tǒng),閉環(huán)溫度控制方框圖如圖1所示。
![](http://editerupload.eepw.com.cn/201802/052fe6dca3d6609f10a9b942a3e3d7f4.jpg)
溫度控制系統(tǒng)由被控對象、測量裝置、調(diào)節(jié)器和執(zhí)行機構(gòu)組成。測量裝置對被控電加熱水器中水溫進(jìn)行測量,控制器將測量值與給定值進(jìn)行比較,若存在偏差便由控制器對偏差信號進(jìn)行處理,輸出控制信號給執(zhí)行機構(gòu)來啟動或停止電加熱水器工作,最終將溫度調(diào)節(jié)到設(shè)定值。被控對象是電加熱水器內(nèi)水的溫度。
基于上述理論設(shè)計出本控制系統(tǒng),本系統(tǒng)硬件主要有:STM32單片機、PT100溫度傳感器、開關(guān)電源、模擬量前向通道、繼電器輸出模塊、HH52P型固態(tài)繼電器、CJ20-10型接觸器、電加熱水器,控制系統(tǒng)硬件結(jié)構(gòu)圖如圖2所示。
![](http://editerupload.eepw.com.cn/201802/9cdc9ba8e45b035a954c3d6aec7aa61c.jpg)
2、STM32單片機介紹
STM32單片機是整個溫度控制系統(tǒng)的核心部分。因為對溫度控制器具有較高的要求,例如高執(zhí)行速度,高控制精度,高穩(wěn)定性以及高靈敏度等,所以選擇一個具有較高性能而又經(jīng)濟(jì)的單片機就成為必然。本設(shè)計選用屬于STM32系列的STM32F103VET6單片機作為控制電路的核心部件,該單片機屬于ST意法半導(dǎo)體公司生產(chǎn)的32位高性能、低成本、低功耗的增強型系列單片機,它的內(nèi)核采用的是ARM公司最新研發(fā)的Cortex-M3架構(gòu),該內(nèi)核是專門設(shè)計于滿足用戶對高性能、低功耗和經(jīng)濟(jì)實用的要求。ARM Cortex-M3處理器的架構(gòu)在系統(tǒng)結(jié)構(gòu)上的增強,使得STM32增強型系列單片機受益無窮,其采用的THUMB-2指令集使得其指令效率更高和而且性能更強。
STM32F103VET6采用薄型四方扁平式封裝技術(shù)(LQFP)具有100管腳,片內(nèi)具有512KB的FLASH,64KB的RAM(片上集成12Bit A/D、D/A、PWM、CAN、USB、安全數(shù)字輸入輸出卡SDIO、可變靜態(tài)存儲控制器FSMC等資源)。1個串行外設(shè)接口(SPI)總線控制的M25P16(16MB容量的串行FLASH),用于存儲數(shù)據(jù)、代碼、字庫及圖相等等。1個2.8寸26萬色顯示屏(TFT 240X320(帶觸摸屏))接口,利用MCU的FSMC的16位數(shù)據(jù)接口模式,觸摸屏采用ADS7843(4線電阻觸摸屏轉(zhuǎn)換接口芯片)芯片用硬SPI接口控制。STM32單片機采用2.0~3.6V的供電電壓,可以工作在-40℃~85℃的溫度范圍內(nèi),其最高的工作頻率是72MHz,其引腳分布如圖3所示。
![](http://editerupload.eepw.com.cn/201802/5b43add6df852e5147d695cd8fad912a.jpg)
STM32F103VET6單片機有3個不同的時鐘源可供選擇用以驅(qū)動系統(tǒng)時鐘,分別為HIS振蕩器時鐘、HSE振蕩器時鐘和PLL時鐘。這些設(shè)備還具有2個二級時鐘源,分別是40KHz的低速內(nèi)部RC和32.768KHz的低速外部時鐘源,可以用來驅(qū)動看門狗時鐘和RTC。任何一個時鐘源在不被使用時,都可以被獨立的關(guān)閉或者開啟,以實現(xiàn)對系統(tǒng)功耗的優(yōu)化。
單片機由AMS1117-3.3芯片電路供電,輸入+5V,提供3.3V的固定電壓輸出,為了降低電磁干擾,需要經(jīng)C7-C10濾波后再為CPU供電,R8為DGND與AGND的連接電阻,R9和D5 LED和電源指示連接電阻,電源電路如圖4所示。
![](http://editerupload.eepw.com.cn/201802/b63a3d441df0c74c9e1bff3b9b18d332.jpg)
RTC的備份電源采用VBAT 3.3V 鋰離子片狀電池,RTC的備份電源如圖5所示。
單片機的外部晶體/陶瓷諧振器(HSE)(P12、P13),Y1是8MHz晶體諧振器,C22、C23 是諧振電容,大小選擇22P。系統(tǒng)的時鐘經(jīng)過PLL模塊將時鐘提高到72MHz。單片機的低速外部時鐘源(LSE)(P8、P9),Y2為32.768KHz的晶體諧振器,C20、C21 諧振電容選擇22PF。要注意的是根據(jù)ST公司的推薦,Y2要采用電容負(fù)載為6PF的晶振,否則有可能會出現(xiàn)停振的現(xiàn)象,時鐘電路如圖6所示
![](http://editerupload.eepw.com.cn/201802/138da627b8bfc8452b0510207f4b62b0.jpg)
目前,STM32單片機已經(jīng)在很多場合得到應(yīng)用,研制出了很多性能優(yōu)良的產(chǎn)品,例如可編程邏輯控制器,打印機,掃描儀,電機控制以及一些數(shù)碼產(chǎn)品,STM32已成為非常成熟的可應(yīng)用控制器件,本次設(shè)計選用的開發(fā)板如圖7所示。
![](http://editerupload.eepw.com.cn/201802/e02bc8630cee23d59c31b0481b1891ff.jpg)
3、硬件接線及其原理介紹
溫度控制系統(tǒng)在正常工作的時候,首先由PT100溫度傳感器檢測被控對象電加熱水器內(nèi)水的當(dāng)前溫度信號,將PT100溫度傳感器的電阻值變化在模擬量前向通道中作變換放大、冷端溫度補償、線性化。然后將模擬量前向通道輸出的模擬電壓信號送給主控模塊的STM32單片機進(jìn)行處理,經(jīng)數(shù)字化處理后與給定的溫度值的數(shù)字量進(jìn)行比較。單片機根據(jù)預(yù)定的PID控制算法對數(shù)據(jù)進(jìn)行處理,并通過顯示屏顯示當(dāng)前溫度和設(shè)定值,程序自動確定系統(tǒng)是否存在異常,如果系統(tǒng)運行正常,將PID運算結(jié)果作為輸出控制量控制PWM波形的輸出,控制執(zhí)行器的動作,從而達(dá)到接通或者斷開電阻爐主電路的目的,實現(xiàn)對電加熱水器的控制。單片機控制水溫的同時可選擇連接上位機進(jìn)行組態(tài)監(jiān)控,將變量的信息傳給上位機使用,并將上位機設(shè)定的參數(shù)下載到控制器STM32,從而達(dá)到上位機組態(tài)應(yīng)有的效果。本次設(shè)計系統(tǒng)控制回路接線如圖8所示
![](http://editerupload.eepw.com.cn/201802/11afb242eb4d4008b3a77ae2cb4a157d.jpg)
模擬量前向通道使用公司生產(chǎn)的TLC7135(也可稱為ICL7135)芯片,加上前級模擬信號運算放大器的特殊處理, 以及一些其它的基本元器件成功地實現(xiàn)了微弱信號的測量。TLC7135具有以下特性:輸入阻抗高,對被測電路幾乎沒有影響;能夠自動校零;有精確的差分輸入電路;自動判別信號極性;有超、欠壓輸出信號;采用位掃描(共5位)與BCD碼輸出。本次設(shè)計應(yīng)用PT100作為溫度傳感器,需要接三根信號線,其中兩線內(nèi)部短接,信號經(jīng)單8通道數(shù)字控制模擬電子開關(guān)CD4051選通后,經(jīng)運算放大器后得到溫度信號對應(yīng)的模擬電壓值,本次設(shè)計選擇的處理方法是經(jīng)運算放大器的6管腳引出此模擬電壓信號,直接用單片機實現(xiàn)數(shù)字化處理,模擬量前向通道如圖9所示[6]。
繼電器輸出模塊主要用來執(zhí)行STM32輸出的PWM控制信號,及時的接通或者斷開后邊的固態(tài)繼電器HH52P和交流接觸器CJ20-10,進(jìn)而實現(xiàn)對加熱器主電路的控制。由于單片機輸出的PWM信號3.3V左右電壓較低,不能直接用來驅(qū)動24V的固態(tài)繼電器HH52P,因此需要在其中間加用繼電器輸出模塊,繼電器輸出模塊供電電壓12V,只要有輸入信號便可以控制線圈的吸合與斷開,繼電器輸出模塊如圖10所示。
![](http://editerupload.eepw.com.cn/201802/02ba19f8a141641e954d1b4b49cc736a.jpg)
PT100是鉑熱電阻器,它的阻值會隨著溫度的變化而改變。PT后的100即表示它在0℃時阻值為100歐姆,在100℃時它的阻值約為138.5歐姆。常見的PT100感溫元件有陶瓷元件,玻璃元件,云母元件,它們是由鉑絲分別繞在陶瓷骨架,玻璃骨架,云母骨架上再經(jīng)過復(fù)雜的工藝加工而成[7]。PT100的工作原理:當(dāng)PT100在0℃的時候他的阻值為100歐姆,它的阻值會隨著溫度上升而成近似勻速的增長。但他們之間的關(guān)系并不是簡單的正比的關(guān)系,而更應(yīng)該趨近于一條拋物線。
鉑電阻的阻值隨溫度的變化而變化的計算公式如公式(1)和公式(2)所示。
![](http://editerupload.eepw.com.cn/201802/1cc4ab7d5e4dc11265262a44ed302852.jpg)
公式中的A,B,系數(shù)為實驗測定。PT100鉑電阻的RT曲線圖如圖11所示
![](http://editerupload.eepw.com.cn/201802/9c603cea282a9c5713a111f6204e28ce.jpg)
PT100電阻隨溫度變化表見表1
![](http://editerupload.eepw.com.cn/201802/ce351593e12160d5e4da7239896a85bd.jpg)
本次設(shè)計的系統(tǒng)硬件電路實物圖如圖12所示。
![](http://editerupload.eepw.com.cn/201802/3b2d87419bba489675f07439cd5409fb.jpg)
二、控制系統(tǒng)軟件設(shè)計
1、軟件開發(fā)環(huán)境及其工具
C語言編程
C語言是一種計算機程序設(shè)計語言。它既有高級語言的特點,又具有匯編語言的特點。它可以作為系統(tǒng)設(shè)計語言,編寫工作系統(tǒng)應(yīng)用程序,也可以作為應(yīng)用程序設(shè)計語言,編寫不依賴計算機硬件的應(yīng)用程序,因此,它的應(yīng)用范圍廣泛,C程序設(shè)計語言是一種在國內(nèi)外被廣泛使用的計算機編程語言。C語言是一種結(jié)構(gòu)化語言,它層次清晰,便于按模塊化方式組織程序,易于調(diào)試和維護(hù)。C語言作為一種高級程序設(shè)計語言得到了廣泛的應(yīng)用,采用C語言編寫的軟件程序不針對特定的硬件系統(tǒng),可以根據(jù)不同的單片機 做移植,基于C語言的以上諸多特點及優(yōu)點,本設(shè)計的軟件程序設(shè)計,采用C程序設(shè)計語言[9]。
軟件開發(fā)工具介紹
編程軟件使用源自德國Keil公司的 RealView MDK,這一款編程軟件被全球超過十萬的嵌入式工程師或者學(xué)者驗證和使用,是ARM公司最新推出的針對各種嵌入式處理器的軟件開發(fā)工具。它集成了業(yè)界最領(lǐng)先的技術(shù),融合了中國多數(shù)軟件工程師所需要的特點和功能,uVision4集成開發(fā)環(huán)境支持ARM7、ARM9和最新的Cortex-M3內(nèi)核處理器,自動配置啟動代碼,集成Flash少些模塊,強大的性能分析功能。其集成開發(fā)環(huán)境如圖13所示。
![](http://editerupload.eepw.com.cn/201802/829075f6dca8edb04a67f155022b1dac.jpg)
uVision4集成開發(fā)環(huán)境主要的性能:
(1) 源代碼編輯器的功能非常強大。
(2) 設(shè)備數(shù)據(jù)庫可以根據(jù)開發(fā)工具進(jìn)行配置。
(3) 工程管理器可以用于創(chuàng)建和維護(hù)工程。
(4) 編譯工具集匯編、編譯、連接過程于一體。
(5) 用于設(shè)置開發(fā)工具配置的對話框。
(6) 真正集成高速CPU及片上外設(shè)模擬器的源碼級調(diào)試器。
(7) 高級GDI接口,可用于目標(biāo)硬件的軟件調(diào)試和ULINK2仿真器的連接。
(8) 用于下載應(yīng)用程序到Flash ROM中的Flash編程器。
(9) 完善的開發(fā)工具手冊、設(shè)備數(shù)據(jù)手冊和用戶向?qū)А?/p>
2、STM32工程創(chuàng)建與配置
經(jīng)過學(xué)習(xí)軟件的編程,對STM32程序編寫有初步的認(rèn)識,下面就是創(chuàng)建與配置工程的全部過程。
(1)新建一個文件夾(以后編的每一個工程都放進(jìn)這個文件夾里,自己命名,此處所有文件都可以自己命名,例如:STM32 file)。此處所用到的庫函數(shù)版本為V3.5庫函數(shù)版本。
(2)創(chuàng)建一個文件夾(名字可以根據(jù)你編寫的程序來命名,如:Demo)。 新建子文件夾User,用于存放用戶源程序。新建子文件夾Project,用戶KEIL工程文件。在Project下依次創(chuàng)建Obj和List子文件夾,存放編譯過程中產(chǎn)生的中間文件。將main.cstm32f10x_conf.h、stm32f10x_it.c、stm32f10x_it.h 、system_stm32f10x.c等文件復(fù)制到User文件下。
(3)復(fù)制源代碼到Demo文件夾。
將stm32f10x_stdperiph_lib3.5 / Libraries文件夾整體復(fù)制到Demo文件夾下 這就是ST的標(biāo)準(zhǔn)庫,是以源代碼形式提供的。也可將Libraries文件夾直接復(fù)制到STM32 file文件夾下,使其與以后創(chuàng)建的其他工程同在一個目錄下,這樣可使在該目錄在的工程共享Libraries。免得以后創(chuàng)建一個工程就得復(fù)制一次Libraries。
(4)新建一個Keil MDK工程
啟動Keil MDK,點擊菜單New uVision Project,然后按向?qū)нM(jìn)行操作。選擇CPU類型為STM32F103VE。當(dāng)提示是否復(fù)制啟動代碼時,選擇否。為了延長芯片使用壽命以及加快仿真速度,可以在ram中直接仿真(ram仿真速度快),用ram仿真 在斷電之后數(shù)據(jù)就全部丟失了,修改Target名字, 添加兩個,一個Flash,一個Ram。
為了便于代碼管理,在這個Project下創(chuàng)建幾個Group,User:存放用戶自己寫的源代碼;RVMDK:存放啟動文件(匯編文件);StdPeriph_Driver:存放ST標(biāo)準(zhǔn)庫文件;CMSIS :存放CMSIS接口文件(這也是庫的一部分);創(chuàng)建好Group后,我們開始依次添加文件。添加User:如main.c stm32f 10x_it.c添加RVMDK:statup_stm32f 10x_hd.x;添加StdPeriph_Driver :我們用到的STM32溫度控制系統(tǒng)設(shè)計
![](http://editerupload.eepw.com.cn/201802/c0c53e980cbe77e463085bc43209e8b1.jpg)
一些.C文件。如:misc.c stm32f 10x_rcc.c stm32f 10x_gpio.c等;添加CMSIS :core_cm3.c system_stm32f 10x.c。
(5)配置工程, 點擊“Opons”按鈕。
打開Flash 調(diào)整Flash設(shè)置,切換到Output,然后選擇Object文件夾,在CreateHex File 前打鉤,并將Name Executable修改為output。
切換到Lisng,選擇Lisngs文件夾。切換到C/C++,添加兩個預(yù)編譯宏STM32F10X_HD,
USE_STDPERIPH_DRIVER (這是ST庫用到了這兩個宏),修改Includes路徑。切換到Debug,選擇硬件調(diào)試器,我們選擇ST-Link Debugger,在Run to main前打鉤。切換到Utilities,選擇調(diào)試器類型,我們選擇ST-Link Debugger。
? 打開Ram,調(diào)整Ram設(shè)置。切換到target,切換到Output。選擇Object文件夾,在Create Hex File 前打鉤。將Name Executable修改為output。切換到Listing,選擇Listings文件夾。切換到C/C++,選中One ELF Section per Function,添加兩個預(yù)編譯宏STM32F10X_HD, USE_STDPERIPH_DRIVER(這是ST庫用到了這兩個宏),修改Includes路徑。這樣就新建一個工程,我們可以根據(jù)需要自己所要實現(xiàn)的功能編輯程序。
三、軟件系統(tǒng)總體設(shè)計
1、軟件程序結(jié)構(gòu)
在深入學(xué)習(xí)STM32編程、PID控制算法、組態(tài)王軟件的基礎(chǔ)上進(jìn)行溫度控制系統(tǒng)的軟件設(shè)計。軟件設(shè)計主要包括溫度數(shù)據(jù)的采集變換、PID算法的設(shè)計、PWM輸出信號控制以及觸摸屏顯示設(shè)計、上位機監(jiān)控畫面的設(shè)計。上位機監(jiān)控畫面的設(shè)計主要包括設(shè)計監(jiān)控主畫面、設(shè)計報警畫面等。整個程序系統(tǒng)主要有主控程序、初始化程序、溫度設(shè)定程序、PID設(shè)置程序、溫度采集程序、溫度顯示程序、PID控制算法程序、PWM控制信號輸出程序和串口通信程序組成,其結(jié)構(gòu)如圖14所示。
3.2.2 主程序設(shè)計
主程序是整個軟件系統(tǒng)的主干,處在程序的最頂一層,引導(dǎo)系統(tǒng)進(jìn)入正常的工作狀態(tài),并且協(xié)調(diào)著各個程序塊之間的調(diào)用關(guān)系,使硬件系統(tǒng)能正常的工作以完成溫度控制系統(tǒng)任務(wù),其流程如圖15所示。
3.2.3 初始化程序設(shè)計
系統(tǒng)初始化程序在系統(tǒng)上電啟動或者復(fù)位時,對溫度控制器的硬件和軟件進(jìn)行初始化,完成系統(tǒng)的配置工作,初始化程序主要包括:顯示屏初始化、系統(tǒng)時鐘初始化、I/O 端口的配置、定時器初始化。
![](http://editerupload.eepw.com.cn/201802/0c53f55820d1a89ba8301451c3462a6e.jpg)
![](http://editerupload.eepw.com.cn/201802/043cf07ca5942b04bf8d294dbc847468.jpg)
2、溫度采集程序設(shè)計
溫度檢測電路是由PT100溫度傳感器和模擬量前向通道組成的,溫度的檢測由二者直接完成。利用溫度檢測電路得到溫度變化對應(yīng)的模擬電壓信號,該信號直接由STM32進(jìn)行A/D轉(zhuǎn)換,由于轉(zhuǎn)化的數(shù)值與實際的溫度值之間不是線性關(guān)系,要用DS18B20采集對應(yīng)溫度值,該溫度值用來校驗當(dāng)前溫度是否正確,并用此溫度值對應(yīng)前向通道輸出的模擬電壓值以擬合數(shù)值與溫度值的曲線,得到他們之間的函數(shù)關(guān)系,本次擬合曲線如圖16所示。
曲線直線化是曲線擬合的重要手段之一。對于某些非線性的資料可以通過簡單的變量變換使之直線化,這樣就可以按最小二乘法原理求出變換后變量的直線方程,在實際工作中常利用此直線方程繪制資料的標(biāo)準(zhǔn)工作曲線,同時根據(jù)需要可將此直線方程還原為曲線方程,實現(xiàn)對資料的曲線擬合。最終經(jīng)MATLAB得到曲線公式如公式(3)所示。
![](http://editerupload.eepw.com.cn/201802/45a19cdae62c275ca2369bcbb009228b.jpg)
溫度采集相關(guān)的程序核心代碼如下所示:
void filter(void) //模擬量前向通道溫度采集
{
int sum = 0;
u8 count,i;
for(i=0;i《12;i++)
{
for(count=0;count《Sampling_Number;count++)
{
sum += Conv_AD_Value[count][i];
}
After_filter[i]=sum/Sampling_Number;
sum=0;
}
}
此程序用來獲取當(dāng)前溫度對應(yīng)的模擬量信號,并將其轉(zhuǎn)化為數(shù)字量信號,經(jīng)由擬合公式計算出對應(yīng)的溫度值。
3、位置式PID控制算法設(shè)計
工業(yè)生產(chǎn)過程中,對于生產(chǎn)裝置的溫度、壓力、流量、液位等工藝變量常常要求維持在一定的數(shù)值上,或按一定的規(guī)律變化,以滿足生產(chǎn)工藝的要求。PID控制算法的原理是對整個控制系統(tǒng)進(jìn)行按偏差進(jìn)行調(diào)節(jié),從而使被控量的實際值與工藝要求的預(yù)定值一致。因為PID控制算法具有:技術(shù)成熟、容易被人們熟悉和掌握、不需要建立數(shù)學(xué)模型、控制效果好、魯棒性等優(yōu)點,所以PID控制算法成為應(yīng)用最廣泛的控制算法。
單片機控制是一種采樣控制,它只能根據(jù)采樣時刻的偏差值計算控制量。因此連續(xù)PID控制算法不能直接使用,需要采用離散化方法。由于工業(yè)生產(chǎn)過程大多數(shù)是緩慢變化的過程,因此只要控制機的采樣周期T取得足夠短,斷續(xù)控制形式就趨于連續(xù)控制形式。數(shù)字PID控制算法又分增量式PID控制算法和位置式PID控制算法,由于位置式PID控制算法控制精度比較高,而增量式PID控制算法有:積分截斷效應(yīng)大、有靜態(tài)誤差、溢出的影響大等缺點,所以本設(shè)計選用的控制算法是位置式PID控制算法。
位置式PID控制算式如公式(4)所示。
![](http://editerupload.eepw.com.cn/201802/96958f54a4ac33a9f0c7d22d120f0dbd.jpg)
![](http://editerupload.eepw.com.cn/201802/f83db68bc3a6d76244e33a061c88fec4.jpg)
![](http://editerupload.eepw.com.cn/201802/04599914ee909d6da39256bfa37b30ad.jpg)
![](http://editerupload.eepw.com.cn/201802/0c18ae7b9c05771b6c052248cf7d950f.jpg)
![](http://editerupload.eepw.com.cn/201802/9a58a991975e7e2f1ee6c1b39fcc019a.jpg)
PID控制算法的參數(shù)整定與采樣周期的選取
PID控制算法參數(shù)整定的方法很多,概括起來有如下兩大類:
(1)理論計算整定法。它主要依據(jù)系統(tǒng)的數(shù)學(xué)模型,經(jīng)過理論計算確定控制器參數(shù)。這種方法所得到的計算數(shù)據(jù)未必可以直接使用,還必須通過工程實際進(jìn)行調(diào)整和修改。
(2)工程整定法。它主要依賴于工程經(jīng)驗,直接在控制系統(tǒng)的試驗中進(jìn)行,且方法簡單、易于掌握,在工程實際中被廣泛采用。PID控制算法參數(shù)的工程整定方法,主要有臨界比例法、反應(yīng)曲線法和衰減法。這三種方法各有其特點,其共同點都是通過試驗,然后按照工程經(jīng)驗公式對控制器參數(shù)進(jìn)行整定。但無論采用哪一種方法所得到的控制器參數(shù),都需要在實際運行中進(jìn)行最后的調(diào)整與完善。
本文采用經(jīng)驗法整定PID控制算法參數(shù),下面具體說明經(jīng)驗法的整定步驟:
(1)讓調(diào)節(jié)器參數(shù)的積分系數(shù)I=0,微分系數(shù)D=0,控制系統(tǒng)投入閉環(huán)運行,由小到大改變比例系數(shù)P,讓擾動信號作階躍變化,觀察控制過程,直到獲得滿意的控制過程為止。
(2)取比例系數(shù)P為當(dāng)前的值乘以0.83,由小到大增加積分系數(shù)I,同樣讓擾動信號作階躍變化,直至得到滿意的控制過程。
(3)積分系數(shù)I保持不變,改變比例系數(shù)P,觀察控制過程有無改善,如有改善則繼續(xù)調(diào)整,直到滿意為止。否則,將原比例系數(shù)P增大一些,再調(diào)整積分系數(shù)I,力求改善控制過程。如此反復(fù)試湊,直到找到滿意的比例系數(shù)P和積分系數(shù)I為止。
(4)引入適當(dāng)?shù)奈⒎窒禂?shù)D,此時可適當(dāng)增大比例系數(shù)P和積分系數(shù)I。和前述步驟相同,微分系數(shù)的整定也需反復(fù)調(diào)整,直到控制過程滿意為止。
經(jīng)驗法簡單可靠,但需要有一定的現(xiàn)場運行經(jīng)驗,整定時易帶有主觀片面性。當(dāng)采用PID控制算法時,由于有多個整定參數(shù),反復(fù)試湊的次數(shù)增多,因此增加了得到最佳整定參數(shù)的難度。
需要注意的是:本設(shè)計所用到PID控制算法的參數(shù)與的工業(yè)上PID控制算法的參數(shù)有所不同,工業(yè)中由于對象的體積大、容量大、控制室距離現(xiàn)場較遠(yuǎn)等因素,所以其PID控制算法的參數(shù)普遍比本設(shè)計的大。
書上、參考資料上的的PID控制算法的參數(shù)多數(shù)都是從工業(yè)生產(chǎn)過程中得來的,因此此經(jīng)驗數(shù)據(jù)不適應(yīng)作本設(shè)計PID控制算法的參數(shù)。
采樣周期的選取,按一定的時間間隔T,把時間上連續(xù)和幅值上也連續(xù)的信號,轉(zhuǎn)變成在時刻0、T2、…、kT的一連串脈沖輸出信號的過程稱為采樣過程。執(zhí)行采樣動作的開關(guān)S稱為采樣開關(guān)或采樣器采樣后的脈沖序列??ty*稱為采樣信號,采樣器的輸入信號??ty稱為原始信號,采樣開關(guān)每次通斷的時間間隔T稱為采樣周期。采樣信號??ty在時間上是離散的,但在幅值上仍是連續(xù)的,所以采樣信號是一個離散的模擬信號。信號采樣過程如圖18所示。
從信號的采樣過程可知,經(jīng)過采樣不是取全部時間上的信號值,而是取某些時間上的值。這樣處理會不會造成信號丟失呢?香農(nóng)采樣定理指出:如果模擬信號(包括干擾在內(nèi))頻譜最高頻率為maxf,只要按照采樣頻率max2ff?進(jìn)行采樣,那么采樣信號??ty*就能惟一的復(fù)觀??ty。采樣定理給出了??ty*能惟一的復(fù)觀??ty所必需的最低采樣頻率。實際應(yīng)用中,常取??max105ff??,甚至更高。
4、采樣周期的確定需要注意以下事項:
(1)從執(zhí)行機構(gòu)的特性要求來看,有時需要輸出信號保持一定的寬度。采樣周期必須大于這一時間。
(2)從控制系統(tǒng)的隨動和抗干擾的性能來看,要求采樣周期短些。
(3)從單片機的工作量和每個調(diào)節(jié)回路的計算來看,一般要求采樣周期大些。
(4)從單片機的精度看,過短的采樣周期是不合適的。
![](http://editerupload.eepw.com.cn/201802/1f9dc63149b9412b5d54ba901489c801.jpg)
經(jīng)過多次調(diào)試設(shè)置,采樣周期T選為1s采樣效果最好,且信號采樣不失真。
5、 PWM輸出程序設(shè)計
脈沖寬度調(diào)制(PWM),是英文“Pulse Width Modulation”的縮寫,簡稱脈寬調(diào)制,是利用微處理器的數(shù)字輸出來對模擬電路進(jìn)行控制的一種非常有效的技術(shù),廣泛應(yīng)用在從測量、通信到功率控制與變換的許多領(lǐng)域中[14]。PWM控制技術(shù)以其控制簡單,靈活和動態(tài)響應(yīng)好的優(yōu)點而成為電力電子技術(shù)最廣泛應(yīng)用的控制方式。
通過單片機輸出的PWM信號控制固態(tài)繼電器的通斷,通過改變一定時間內(nèi)通過的交流波頭數(shù)實現(xiàn)對電加熱水器內(nèi)水溫的控制,我國公共電力網(wǎng)的頻率均為50HZ,周期也就是0.02秒,設(shè)置 PWM 信號的輸出周期為4秒,即STM32單片機以0.25Hz的頻率輸出PWM,改變PWM的占空比,在4秒的周期內(nèi),當(dāng)PID算法的控制量大于100時,通過交流電源的最大周期波數(shù)是100,當(dāng) PID 算法的控制量小于0時,最小周期波數(shù)是0,當(dāng)控制量在0~100之間時,就按比例換算進(jìn)行確定PWM輸出信號的占空比。STM32單片機具有多個定時器/計數(shù)器,每個定時器/計數(shù)器都可以獨立的輸出PWM信號,本設(shè)計采用單片機的TIM3定時器/計數(shù)器在PB5 引腳輸出PWM,PWM輸出流程如圖19所示。
四、上位機監(jiān)控界面設(shè)計
1、上位機監(jiān)控軟件的選取
組態(tài)王(Kingview)由北京亞控自動化軟件有限公司開發(fā)的,該軟件由中國科技大學(xué)學(xué)士、清華大學(xué)碩士林偉總設(shè)計,經(jīng)數(shù)十位工程師歷時五年開發(fā)成功,是最優(yōu)秀的國產(chǎn)組態(tài)軟件,居全國同類軟件產(chǎn)銷量第一。組態(tài)王是一個具有易用性、開放性和集成能力的通用組態(tài)軟件。應(yīng)用組態(tài)王可以使工程師把精力放在控制對象上,而不是形形色色的通信協(xié)議、復(fù)雜的圖形處理、枯燥的數(shù)字統(tǒng)計。只需要進(jìn)行填表操作,即可生成適合于用戶的監(jiān)控和數(shù)據(jù)采集系統(tǒng)??梢栽谡麄€生產(chǎn)企業(yè)內(nèi)部將各種系統(tǒng)和應(yīng)用集成在一起,實現(xiàn)“廠際自動化”的最終目標(biāo)。組態(tài)王開發(fā)監(jiān)控系統(tǒng)軟件是新型的工業(yè)自動控制系統(tǒng)正以標(biāo)準(zhǔn)的工業(yè)計算機軟、硬件平臺構(gòu)成的集成系統(tǒng)取代傳統(tǒng)的封閉式系統(tǒng),具有適應(yīng)性強、開放性好、易于擴(kuò)展、經(jīng)濟(jì)、開發(fā)周期短等優(yōu)點。組態(tài)軟件以其可靠性高、抗干擾能力強、界面簡單、功能強大、性價比高等顯著特點廣泛應(yīng)用于現(xiàn)代工業(yè)的自動控制之中。
![](http://editerupload.eepw.com.cn/201802/fc780ca5f0d774fad5ee3aef938c5940.jpg)
2、 組態(tài)王軟件組態(tài)監(jiān)控界面設(shè)計
使用組態(tài)王實現(xiàn)控制系統(tǒng)實驗仿真的基本方法:
(1)圖形界面的設(shè)計;
(2)構(gòu)造數(shù)據(jù)庫;
(3)建立動畫連接;
(4)運行和調(diào)試。
根據(jù)以上控制方案的確定,本次設(shè)計組態(tài)王監(jiān)控界面如圖20所示
![](http://editerupload.eepw.com.cn/201802/cedcf34f2a05f99abade53701a4242c2.jpg)
定義數(shù)據(jù)變量見表2。
![](http://editerupload.eepw.com.cn/201802/27fa206485e45954b77430db63b1c270.jpg)
選擇設(shè)備的相關(guān)配置如下:
設(shè)備名稱:通用單片機ASCII;
通信描述:串口;
邏輯名稱:STM32;
選擇串口號:COM4;
設(shè)備地址:1.0。
動態(tài)連接,參數(shù)動態(tài)連接設(shè)置見表3。
![](http://editerupload.eepw.com.cn/201802/7b9a351f4e4e75674ac46bff1674a07c.jpg)
3、報警和事件窗口設(shè)計
運行報警時間記錄是監(jiān)控軟件必不可少的功能,“組態(tài)王”提供了強有力的支持和簡單的控制運行報警和時間記錄方法。
組態(tài)王中的報警和事件主要包括變量報警事件、操作事件、用戶登陸事件和工作站事件。通過這些報警和事件,用戶可以方便地記錄和查看系統(tǒng)的報警、操作和各個工作站的運行情況。當(dāng)報警和事件發(fā)生時,在報警窗中會按照設(shè)置的過濾條件實時的顯示出來[16]。定義報警組,本次建立報警畫面如圖21所示。
![](http://editerupload.eepw.com.cn/201802/c67f72cdb87709df288ac32233741085.jpg)
五、系統(tǒng)的運行結(jié)果及問題分析
1、運行結(jié)果及分析
經(jīng)過多次的參數(shù)設(shè)置的調(diào)試,對比各組設(shè)置參數(shù)的調(diào)節(jié)效果得出:當(dāng)程序中PID設(shè)置參數(shù)如表4所示參數(shù)時控制效果最好。
![](http://editerupload.eepw.com.cn/201802/0cde1da8caf3b3f5d6d2d62e139b9572.jpg)
總結(jié):本系統(tǒng)的控制核心算法是PID控制算法,難點是PID參數(shù)整定。圖22為系統(tǒng)運行曲線的初始溫度50℃,設(shè)定溫度60℃時的結(jié)果,經(jīng)過9分鐘的調(diào)節(jié)系統(tǒng)達(dá)到穩(wěn)定,實際溫度達(dá)到設(shè)定溫度,穩(wěn)態(tài)誤差為0.4℃,超調(diào)量幾乎為零。本設(shè)計中溫度能達(dá)到設(shè)定溫度,而且超調(diào)量較小,穩(wěn)態(tài)效果很好。
![](http://editerupload.eepw.com.cn/201802/04a089b16e693a1cb57379e801d53a53.jpg)
2、出現(xiàn)的問題及解決方法
在長達(dá)十六周的畢業(yè)設(shè)計中,自己碰到了不少問題。曾經(jīng),為了解決這些問題也花費了較多的時間。當(dāng)然,這也使自己對實際工程中所遇到或者可能遇到的問題有了個提前認(rèn)知。
(1)上位機采集不到現(xiàn)場的數(shù)據(jù)
解決方法:原因是溫度傳感器與模擬量前向通道接線有錯誤、松動,串口使用的通道設(shè)置錯誤,在利用組態(tài)王軟件進(jìn)行I/O設(shè)備組態(tài)的時候應(yīng)選設(shè)備名稱通用單片機ASCII。
(2)上位機的輸出控制信號控制不了電加熱水器
解決方法:上位機組態(tài)軟件中查看數(shù)字量輸出通道的設(shè)置與當(dāng)前連線的通道不一致。
(3)系統(tǒng)穩(wěn)定后誤差比較大
解決方法:誤差產(chǎn)生的原因有:溫度對象是大慣性對象、單片機控制信號從發(fā)出到固態(tài)繼電器的吸合,再到加熱絲停止加熱,這過程中存在時間誤差、硬件靈敏度不夠精確等問題。
評論