基于STM32為主控的溫度單反饋控制系統
設計選用STM32單片機作控制器,設計溫度單反饋的控制系統,對電加熱水器內水的溫度進(jìn)行控制。通過(guò)PT100溫度傳感器實(shí)現對水溫信號的采集,并利用模擬量前向通道來(lái)對水溫信號進(jìn)行處理。利用STM32單片機進(jìn)行控制輸出PWM信號,用此信號控制接觸器進(jìn)而控制電加熱水器的電源通斷,最終實(shí)現對水溫的控制。同時(shí)用組態(tài)軟件設計監控界面來(lái)實(shí)現對水溫的控制顯示。通過(guò)對此課題的設計,能夠使自動(dòng)化的學(xué)生對工業(yè)過(guò)程控制對象具有更進(jìn)一步的了解,同時(shí)熟練掌握自動(dòng)化控制系統的設計流程,為以后的工作學(xué)習打下堅實(shí)基礎。
本文引用地址:http://dyxdggzs.com/article/201802/375293.htm一、控制系統硬件設計
1、控制系統硬件總體設計
溫度是一個(gè)很重要的變量,需要對其進(jìn)行準確地控制。溫度控制系統常用來(lái)保持溫度恒定或者使溫度按照某種規定的規律變化。閉環(huán)控制是溫度控制系統中最為常見(jiàn)類(lèi)型,本設計即為閉環(huán)溫度控制系統,閉環(huán)溫度控制方框圖如圖1所示。

溫度控制系統由被控對象、測量裝置、調節器和執行機構組成。測量裝置對被控電加熱水器中水溫進(jìn)行測量,控制器將測量值與給定值進(jìn)行比較,若存在偏差便由控制器對偏差信號進(jìn)行處理,輸出控制信號給執行機構來(lái)啟動(dòng)或停止電加熱水器工作,最終將溫度調節到設定值。被控對象是電加熱水器內水的溫度。
基于上述理論設計出本控制系統,本系統硬件主要有:STM32單片機、PT100溫度傳感器、開(kāi)關(guān)電源、模擬量前向通道、繼電器輸出模塊、HH52P型固態(tài)繼電器、CJ20-10型接觸器、電加熱水器,控制系統硬件結構圖如圖2所示。

2、STM32單片機介紹
STM32單片機是整個(gè)溫度控制系統的核心部分。因為對溫度控制器具有較高的要求,例如高執行速度,高控制精度,高穩定性以及高靈敏度等,所以選擇一個(gè)具有較高性能而又經(jīng)濟的單片機就成為必然。本設計選用屬于STM32系列的STM32F103VET6單片機作為控制電路的核心部件,該單片機屬于ST意法半導體公司生產(chǎn)的32位高性能、低成本、低功耗的增強型系列單片機,它的內核采用的是ARM公司最新研發(fā)的Cortex-M3架構,該內核是專(zhuān)門(mén)設計于滿(mǎn)足用戶(hù)對高性能、低功耗和經(jīng)濟實(shí)用的要求。ARM Cortex-M3處理器的架構在系統結構上的增強,使得STM32增強型系列單片機受益無(wú)窮,其采用的THUMB-2指令集使得其指令效率更高和而且性能更強。
STM32F103VET6采用薄型四方扁平式封裝技術(shù)(LQFP)具有100管腳,片內具有512KB的FLASH,64KB的RAM(片上集成12Bit A/D、D/A、PWM、CAN、USB、安全數字輸入輸出卡SDIO、可變靜態(tài)存儲控制器FSMC等資源)。1個(gè)串行外設接口(SPI)總線(xiàn)控制的M25P16(16MB容量的串行FLASH),用于存儲數據、代碼、字庫及圖相等等。1個(gè)2.8寸26萬(wàn)色顯示屏(TFT 240X320(帶觸摸屏))接口,利用MCU的FSMC的16位數據接口模式,觸摸屏采用ADS7843(4線(xiàn)電阻觸摸屏轉換接口芯片)芯片用硬SPI接口控制。STM32單片機采用2.0~3.6V的供電電壓,可以工作在-40℃~85℃的溫度范圍內,其最高的工作頻率是72MHz,其引腳分布如圖3所示。

STM32F103VET6單片機有3個(gè)不同的時(shí)鐘源可供選擇用以驅動(dòng)系統時(shí)鐘,分別為HIS振蕩器時(shí)鐘、HSE振蕩器時(shí)鐘和PLL時(shí)鐘。這些設備還具有2個(gè)二級時(shí)鐘源,分別是40KHz的低速內部RC和32.768KHz的低速外部時(shí)鐘源,可以用來(lái)驅動(dòng)看門(mén)狗時(shí)鐘和RTC。任何一個(gè)時(shí)鐘源在不被使用時(shí),都可以被獨立的關(guān)閉或者開(kāi)啟,以實(shí)現對系統功耗的優(yōu)化。
單片機由AMS1117-3.3芯片電路供電,輸入+5V,提供3.3V的固定電壓輸出,為了降低電磁干擾,需要經(jīng)C7-C10濾波后再為CPU供電,R8為DGND與AGND的連接電阻,R9和D5 LED和電源指示連接電阻,電源電路如圖4所示。

RTC的備份電源采用VBAT 3.3V 鋰離子片狀電池,RTC的備份電源如圖5所示。
單片機的外部晶體/陶瓷諧振器(HSE)(P12、P13),Y1是8MHz晶體諧振器,C22、C23 是諧振電容,大小選擇22P。系統的時(shí)鐘經(jīng)過(guò)PLL模塊將時(shí)鐘提高到72MHz。單片機的低速外部時(shí)鐘源(LSE)(P8、P9),Y2為32.768KHz的晶體諧振器,C20、C21 諧振電容選擇22PF。要注意的是根據ST公司的推薦,Y2要采用電容負載為6PF的晶振,否則有可能會(huì )出現停振的現象,時(shí)鐘電路如圖6所示

目前,STM32單片機已經(jīng)在很多場(chǎng)合得到應用,研制出了很多性能優(yōu)良的產(chǎn)品,例如可編程邏輯控制器,打印機,掃描儀,電機控制以及一些數碼產(chǎn)品,STM32已成為非常成熟的可應用控制器件,本次設計選用的開(kāi)發(fā)板如圖7所示。

3、硬件接線(xiàn)及其原理介紹
溫度控制系統在正常工作的時(shí)候,首先由PT100溫度傳感器檢測被控對象電加熱水器內水的當前溫度信號,將PT100溫度傳感器的電阻值變化在模擬量前向通道中作變換放大、冷端溫度補償、線(xiàn)性化。然后將模擬量前向通道輸出的模擬電壓信號送給主控模塊的STM32單片機進(jìn)行處理,經(jīng)數字化處理后與給定的溫度值的數字量進(jìn)行比較。單片機根據預定的PID控制算法對數據進(jìn)行處理,并通過(guò)顯示屏顯示當前溫度和設定值,程序自動(dòng)確定系統是否存在異常,如果系統運行正常,將PID運算結果作為輸出控制量控制PWM波形的輸出,控制執行器的動(dòng)作,從而達到接通或者斷開(kāi)電阻爐主電路的目的,實(shí)現對電加熱水器的控制。單片機控制水溫的同時(shí)可選擇連接上位機進(jìn)行組態(tài)監控,將變量的信息傳給上位機使用,并將上位機設定的參數下載到控制器STM32,從而達到上位機組態(tài)應有的效果。本次設計系統控制回路接線(xiàn)如圖8所示

模擬量前向通道使用公司生產(chǎn)的TLC7135(也可稱(chēng)為ICL7135)芯片,加上前級模擬信號運算放大器的特殊處理, 以及一些其它的基本元器件成功地實(shí)現了微弱信號的測量。TLC7135具有以下特性:輸入阻抗高,對被測電路幾乎沒(méi)有影響;能夠自動(dòng)校零;有精確的差分輸入電路;自動(dòng)判別信號極性;有超、欠壓輸出信號;采用位掃描(共5位)與BCD碼輸出。本次設計應用PT100作為溫度傳感器,需要接三根信號線(xiàn),其中兩線(xiàn)內部短接,信號經(jīng)單8通道數字控制模擬電子開(kāi)關(guān)CD4051選通后,經(jīng)運算放大器后得到溫度信號對應的模擬電壓值,本次設計選擇的處理方法是經(jīng)運算放大器的6管腳引出此模擬電壓信號,直接用單片機實(shí)現數字化處理,模擬量前向通道如圖9所示[6]。
繼電器輸出模塊主要用來(lái)執行STM32輸出的PWM控制信號,及時(shí)的接通或者斷開(kāi)后邊的固態(tài)繼電器HH52P和交流接觸器CJ20-10,進(jìn)而實(shí)現對加熱器主電路的控制。由于單片機輸出的PWM信號3.3V左右電壓較低,不能直接用來(lái)驅動(dòng)24V的固態(tài)繼電器HH52P,因此需要在其中間加用繼電器輸出模塊,繼電器輸出模塊供電電壓12V,只要有輸入信號便可以控制線(xiàn)圈的吸合與斷開(kāi),繼電器輸出模塊如圖10所示。

PT100是鉑熱電阻器,它的阻值會(huì )隨著(zhù)溫度的變化而改變。PT后的100即表示它在0℃時(shí)阻值為100歐姆,在100℃時(shí)它的阻值約為138.5歐姆。常見(jiàn)的PT100感溫元件有陶瓷元件,玻璃元件,云母元件,它們是由鉑絲分別繞在陶瓷骨架,玻璃骨架,云母骨架上再經(jīng)過(guò)復雜的工藝加工而成[7]。PT100的工作原理:當PT100在0℃的時(shí)候他的阻值為100歐姆,它的阻值會(huì )隨著(zhù)溫度上升而成近似勻速的增長(cháng)。但他們之間的關(guān)系并不是簡(jiǎn)單的正比的關(guān)系,而更應該趨近于一條拋物線(xiàn)。
鉑電阻的阻值隨溫度的變化而變化的計算公式如公式(1)和公式(2)所示。

公式中的A,B,系數為實(shí)驗測定。PT100鉑電阻的RT曲線(xiàn)圖如圖11所示

PT100電阻隨溫度變化表見(jiàn)表1

本次設計的系統硬件電路實(shí)物圖如圖12所示。

二、控制系統軟件設計
1、軟件開(kāi)發(fā)環(huán)境及其工具
C語(yǔ)言編程
C語(yǔ)言是一種計算機程序設計語(yǔ)言。它既有高級語(yǔ)言的特點(diǎn),又具有匯編語(yǔ)言的特點(diǎn)。它可以作為系統設計語(yǔ)言,編寫(xiě)工作系統應用程序,也可以作為應用程序設計語(yǔ)言,編寫(xiě)不依賴(lài)計算機硬件的應用程序,因此,它的應用范圍廣泛,C程序設計語(yǔ)言是一種在國內外被廣泛使用的計算機編程語(yǔ)言。C語(yǔ)言是一種結構化語(yǔ)言,它層次清晰,便于按模塊化方式組織程序,易于調試和維護。C語(yǔ)言作為一種高級程序設計語(yǔ)言得到了廣泛的應用,采用C語(yǔ)言編寫(xiě)的軟件程序不針對特定的硬件系統,可以根據不同的單片機 做移植,基于C語(yǔ)言的以上諸多特點(diǎn)及優(yōu)點(diǎn),本設計的軟件程序設計,采用C程序設計語(yǔ)言[9]。
軟件開(kāi)發(fā)工具介紹
編程軟件使用源自德國Keil公司的 RealView MDK,這一款編程軟件被全球超過(guò)十萬(wàn)的嵌入式工程師或者學(xué)者驗證和使用,是ARM公司最新推出的針對各種嵌入式處理器的軟件開(kāi)發(fā)工具。它集成了業(yè)界最領(lǐng)先的技術(shù),融合了中國多數軟件工程師所需要的特點(diǎn)和功能,uVision4集成開(kāi)發(fā)環(huán)境支持ARM7、ARM9和最新的Cortex-M3內核處理器,自動(dòng)配置啟動(dòng)代碼,集成Flash少些模塊,強大的性能分析功能。其集成開(kāi)發(fā)環(huán)境如圖13所示。

uVision4集成開(kāi)發(fā)環(huán)境主要的性能:
(1) 源代碼編輯器的功能非常強大。
(2) 設備數據庫可以根據開(kāi)發(fā)工具進(jìn)行配置。
(3) 工程管理器可以用于創(chuàng )建和維護工程。
(4) 編譯工具集匯編、編譯、連接過(guò)程于一體。
(5) 用于設置開(kāi)發(fā)工具配置的對話(huà)框。
(6) 真正集成高速CPU及片上外設模擬器的源碼級調試器。
(7) 高級GDI接口,可用于目標硬件的軟件調試和ULINK2仿真器的連接。
(8) 用于下載應用程序到Flash ROM中的Flash編程器。
(9) 完善的開(kāi)發(fā)工具手冊、設備數據手冊和用戶(hù)向導。
2、STM32工程創(chuàng )建與配置
經(jīng)過(guò)學(xué)習軟件的編程,對STM32程序編寫(xiě)有初步的認識,下面就是創(chuàng )建與配置工程的全部過(guò)程。
(1)新建一個(gè)文件夾(以后編的每一個(gè)工程都放進(jìn)這個(gè)文件夾里,自己命名,此處所有文件都可以自己命名,例如:STM32 file)。此處所用到的庫函數版本為V3.5庫函數版本。
(2)創(chuàng )建一個(gè)文件夾(名字可以根據你編寫(xiě)的程序來(lái)命名,如:Demo)。 新建子文件夾User,用于存放用戶(hù)源程序。新建子文件夾Project,用戶(hù)KEIL工程文件。在Project下依次創(chuàng )建Obj和List子文件夾,存放編譯過(guò)程中產(chǎn)生的中間文件。將main.cstm32f10x_conf.h、stm32f10x_it.c、stm32f10x_it.h 、system_stm32f10x.c等文件復制到User文件下。
(3)復制源代碼到Demo文件夾。
將stm32f10x_stdperiph_lib3.5 / Libraries文件夾整體復制到Demo文件夾下 這就是ST的標準庫,是以源代碼形式提供的。也可將Libraries文件夾直接復制到STM32 file文件夾下,使其與以后創(chuàng )建的其他工程同在一個(gè)目錄下,這樣可使在該目錄在的工程共享Libraries。免得以后創(chuàng )建一個(gè)工程就得復制一次Libraries。
(4)新建一個(gè)Keil MDK工程
啟動(dòng)Keil MDK,點(diǎn)擊菜單New uVision Project,然后按向導進(jìn)行操作。選擇CPU類(lèi)型為STM32F103VE。當提示是否復制啟動(dòng)代碼時(shí),選擇否。為了延長(cháng)芯片使用壽命以及加快仿真速度,可以在ram中直接仿真(ram仿真速度快),用ram仿真 在斷電之后數據就全部丟失了,修改Target名字, 添加兩個(gè),一個(gè)Flash,一個(gè)Ram。
為了便于代碼管理,在這個(gè)Project下創(chuàng )建幾個(gè)Group,User:存放用戶(hù)自己寫(xiě)的源代碼;RVMDK:存放啟動(dòng)文件(匯編文件);StdPeriph_Driver:存放ST標準庫文件;CMSIS :存放CMSIS接口文件(這也是庫的一部分);創(chuàng )建好Group后,我們開(kāi)始依次添加文件。添加User:如main.c stm32f 10x_it.c添加RVMDK:statup_stm32f 10x_hd.x;添加StdPeriph_Driver :我們用到的STM32溫度控制系統設計

一些.C文件。如:misc.c stm32f 10x_rcc.c stm32f 10x_gpio.c等;添加CMSIS :core_cm3.c system_stm32f 10x.c。
(5)配置工程, 點(diǎn)擊“Opons”按鈕。
打開(kāi)Flash 調整Flash設置,切換到Output,然后選擇Object文件夾,在CreateHex File 前打鉤,并將Name Executable修改為output。
切換到Lisng,選擇Lisngs文件夾。切換到C/C++,添加兩個(gè)預編譯宏STM32F10X_HD,
USE_STDPERIPH_DRIVER (這是ST庫用到了這兩個(gè)宏),修改Includes路徑。切換到Debug,選擇硬件調試器,我們選擇ST-Link Debugger,在Run to main前打鉤。切換到Utilities,選擇調試器類(lèi)型,我們選擇ST-Link Debugger。
? 打開(kāi)Ram,調整Ram設置。切換到target,切換到Output。選擇Object文件夾,在Create Hex File 前打鉤。將Name Executable修改為output。切換到Listing,選擇Listings文件夾。切換到C/C++,選中One ELF Section per Function,添加兩個(gè)預編譯宏STM32F10X_HD, USE_STDPERIPH_DRIVER(這是ST庫用到了這兩個(gè)宏),修改Includes路徑。這樣就新建一個(gè)工程,我們可以根據需要自己所要實(shí)現的功能編輯程序。
三、軟件系統總體設計
1、軟件程序結構
在深入學(xué)習STM32編程、PID控制算法、組態(tài)王軟件的基礎上進(jìn)行溫度控制系統的軟件設計。軟件設計主要包括溫度數據的采集變換、PID算法的設計、PWM輸出信號控制以及觸摸屏顯示設計、上位機監控畫(huà)面的設計。上位機監控畫(huà)面的設計主要包括設計監控主畫(huà)面、設計報警畫(huà)面等。整個(gè)程序系統主要有主控程序、初始化程序、溫度設定程序、PID設置程序、溫度采集程序、溫度顯示程序、PID控制算法程序、PWM控制信號輸出程序和串口通信程序組成,其結構如圖14所示。
3.2.2 主程序設計
主程序是整個(gè)軟件系統的主干,處在程序的最頂一層,引導系統進(jìn)入正常的工作狀態(tài),并且協(xié)調著(zhù)各個(gè)程序塊之間的調用關(guān)系,使硬件系統能正常的工作以完成溫度控制系統任務(wù),其流程如圖15所示。
3.2.3 初始化程序設計
系統初始化程序在系統上電啟動(dòng)或者復位時(shí),對溫度控制器的硬件和軟件進(jìn)行初始化,完成系統的配置工作,初始化程序主要包括:顯示屏初始化、系統時(shí)鐘初始化、I/O 端口的配置、定時(shí)器初始化。


2、溫度采集程序設計
溫度檢測電路是由PT100溫度傳感器和模擬量前向通道組成的,溫度的檢測由二者直接完成。利用溫度檢測電路得到溫度變化對應的模擬電壓信號,該信號直接由STM32進(jìn)行A/D轉換,由于轉化的數值與實(shí)際的溫度值之間不是線(xiàn)性關(guān)系,要用DS18B20采集對應溫度值,該溫度值用來(lái)校驗當前溫度是否正確,并用此溫度值對應前向通道輸出的模擬電壓值以擬合數值與溫度值的曲線(xiàn),得到他們之間的函數關(guān)系,本次擬合曲線(xiàn)如圖16所示。
曲線(xiàn)直線(xiàn)化是曲線(xiàn)擬合的重要手段之一。對于某些非線(xiàn)性的資料可以通過(guò)簡(jiǎn)單的變量變換使之直線(xiàn)化,這樣就可以按最小二乘法原理求出變換后變量的直線(xiàn)方程,在實(shí)際工作中常利用此直線(xiàn)方程繪制資料的標準工作曲線(xiàn),同時(shí)根據需要可將此直線(xiàn)方程還原為曲線(xiàn)方程,實(shí)現對資料的曲線(xiàn)擬合。最終經(jīng)MATLAB得到曲線(xiàn)公式如公式(3)所示。

溫度采集相關(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;
}
}
此程序用來(lái)獲取當前溫度對應的模擬量信號,并將其轉化為數字量信號,經(jīng)由擬合公式計算出對應的溫度值。
3、位置式PID控制算法設計
工業(yè)生產(chǎn)過(guò)程中,對于生產(chǎn)裝置的溫度、壓力、流量、液位等工藝變量常常要求維持在一定的數值上,或按一定的規律變化,以滿(mǎn)足生產(chǎn)工藝的要求。PID控制算法的原理是對整個(gè)控制系統進(jìn)行按偏差進(jìn)行調節,從而使被控量的實(shí)際值與工藝要求的預定值一致。因為PID控制算法具有:技術(shù)成熟、容易被人們熟悉和掌握、不需要建立數學(xué)模型、控制效果好、魯棒性等優(yōu)點(diǎn),所以PID控制算法成為應用最廣泛的控制算法。
單片機控制是一種采樣控制,它只能根據采樣時(shí)刻的偏差值計算控制量。因此連續PID控制算法不能直接使用,需要采用離散化方法。由于工業(yè)生產(chǎn)過(guò)程大多數是緩慢變化的過(guò)程,因此只要控制機的采樣周期T取得足夠短,斷續控制形式就趨于連續控制形式。數字PID控制算法又分增量式PID控制算法和位置式PID控制算法,由于位置式PID控制算法控制精度比較高,而增量式PID控制算法有:積分截斷效應大、有靜態(tài)誤差、溢出的影響大等缺點(diǎn),所以本設計選用的控制算法是位置式PID控制算法。
位置式PID控制算式如公式(4)所示。





PID控制算法的參數整定與采樣周期的選取
PID控制算法參數整定的方法很多,概括起來(lái)有如下兩大類(lèi):
(1)理論計算整定法。它主要依據系統的數學(xué)模型,經(jīng)過(guò)理論計算確定控制器參數。這種方法所得到的計算數據未必可以直接使用,還必須通過(guò)工程實(shí)際進(jìn)行調整和修改。
(2)工程整定法。它主要依賴(lài)于工程經(jīng)驗,直接在控制系統的試驗中進(jìn)行,且方法簡(jiǎn)單、易于掌握,在工程實(shí)際中被廣泛采用。PID控制算法參數的工程整定方法,主要有臨界比例法、反應曲線(xiàn)法和衰減法。這三種方法各有其特點(diǎn),其共同點(diǎn)都是通過(guò)試驗,然后按照工程經(jīng)驗公式對控制器參數進(jìn)行整定。但無(wú)論采用哪一種方法所得到的控制器參數,都需要在實(shí)際運行中進(jìn)行最后的調整與完善。
本文采用經(jīng)驗法整定PID控制算法參數,下面具體說(shuō)明經(jīng)驗法的整定步驟:
(1)讓調節器參數的積分系數I=0,微分系數D=0,控制系統投入閉環(huán)運行,由小到大改變比例系數P,讓擾動(dòng)信號作階躍變化,觀(guān)察控制過(guò)程,直到獲得滿(mǎn)意的控制過(guò)程為止。
(2)取比例系數P為當前的值乘以0.83,由小到大增加積分系數I,同樣讓擾動(dòng)信號作階躍變化,直至得到滿(mǎn)意的控制過(guò)程。
(3)積分系數I保持不變,改變比例系數P,觀(guān)察控制過(guò)程有無(wú)改善,如有改善則繼續調整,直到滿(mǎn)意為止。否則,將原比例系數P增大一些,再調整積分系數I,力求改善控制過(guò)程。如此反復試湊,直到找到滿(mǎn)意的比例系數P和積分系數I為止。
(4)引入適當的微分系數D,此時(shí)可適當增大比例系數P和積分系數I。和前述步驟相同,微分系數的整定也需反復調整,直到控制過(guò)程滿(mǎn)意為止。
經(jīng)驗法簡(jiǎn)單可靠,但需要有一定的現場(chǎng)運行經(jīng)驗,整定時(shí)易帶有主觀(guān)片面性。當采用PID控制算法時(shí),由于有多個(gè)整定參數,反復試湊的次數增多,因此增加了得到最佳整定參數的難度。
需要注意的是:本設計所用到PID控制算法的參數與的工業(yè)上PID控制算法的參數有所不同,工業(yè)中由于對象的體積大、容量大、控制室距離現場(chǎng)較遠等因素,所以其PID控制算法的參數普遍比本設計的大。
書(shū)上、參考資料上的的PID控制算法的參數多數都是從工業(yè)生產(chǎn)過(guò)程中得來(lái)的,因此此經(jīng)驗數據不適應作本設計PID控制算法的參數。
采樣周期的選取,按一定的時(shí)間間隔T,把時(shí)間上連續和幅值上也連續的信號,轉變成在時(shí)刻0、T2、…、kT的一連串脈沖輸出信號的過(guò)程稱(chēng)為采樣過(guò)程。執行采樣動(dòng)作的開(kāi)關(guān)S稱(chēng)為采樣開(kāi)關(guān)或采樣器采樣后的脈沖序列??ty*稱(chēng)為采樣信號,采樣器的輸入信號??ty稱(chēng)為原始信號,采樣開(kāi)關(guān)每次通斷的時(shí)間間隔T稱(chēng)為采樣周期。采樣信號??ty在時(shí)間上是離散的,但在幅值上仍是連續的,所以采樣信號是一個(gè)離散的模擬信號。信號采樣過(guò)程如圖18所示。
從信號的采樣過(guò)程可知,經(jīng)過(guò)采樣不是取全部時(shí)間上的信號值,而是取某些時(shí)間上的值。這樣處理會(huì )不會(huì )造成信號丟失呢?香農采樣定理指出:如果模擬信號(包括干擾在內)頻譜最高頻率為maxf,只要按照采樣頻率max2ff?進(jìn)行采樣,那么采樣信號??ty*就能惟一的復觀(guān)??ty。采樣定理給出了??ty*能惟一的復觀(guān)??ty所必需的最低采樣頻率。實(shí)際應用中,常取??max105ff??,甚至更高。
4、采樣周期的確定需要注意以下事項:
(1)從執行機構的特性要求來(lái)看,有時(shí)需要輸出信號保持一定的寬度。采樣周期必須大于這一時(shí)間。
(2)從控制系統的隨動(dòng)和抗干擾的性能來(lái)看,要求采樣周期短些。
(3)從單片機的工作量和每個(gè)調節回路的計算來(lái)看,一般要求采樣周期大些。
(4)從單片機的精度看,過(guò)短的采樣周期是不合適的。

經(jīng)過(guò)多次調試設置,采樣周期T選為1s采樣效果最好,且信號采樣不失真。
5、 PWM輸出程序設計
脈沖寬度調制(PWM),是英文“Pulse Width Modulation”的縮寫(xiě),簡(jiǎn)稱(chēng)脈寬調制,是利用微處理器的數字輸出來(lái)對模擬電路進(jìn)行控制的一種非常有效的技術(shù),廣泛應用在從測量、通信到功率控制與變換的許多領(lǐng)域中[14]。PWM控制技術(shù)以其控制簡(jiǎn)單,靈活和動(dòng)態(tài)響應好的優(yōu)點(diǎn)而成為電力電子技術(shù)最廣泛應用的控制方式。
通過(guò)單片機輸出的PWM信號控制固態(tài)繼電器的通斷,通過(guò)改變一定時(shí)間內通過(guò)的交流波頭數實(shí)現對電加熱水器內水溫的控制,我國公共電力網(wǎng)的頻率均為50HZ,周期也就是0.02秒,設置 PWM 信號的輸出周期為4秒,即STM32單片機以0.25Hz的頻率輸出PWM,改變PWM的占空比,在4秒的周期內,當PID算法的控制量大于100時(shí),通過(guò)交流電源的最大周期波數是100,當 PID 算法的控制量小于0時(shí),最小周期波數是0,當控制量在0~100之間時(shí),就按比例換算進(jìn)行確定PWM輸出信號的占空比。STM32單片機具有多個(gè)定時(shí)器/計數器,每個(gè)定時(shí)器/計數器都可以獨立的輸出PWM信號,本設計采用單片機的TIM3定時(shí)器/計數器在PB5 引腳輸出PWM,PWM輸出流程如圖19所示。
四、上位機監控界面設計
1、上位機監控軟件的選取
組態(tài)王(Kingview)由北京亞控自動(dòng)化軟件有限公司開(kāi)發(fā)的,該軟件由中國科技大學(xué)學(xué)士、清華大學(xué)碩士林偉總設計,經(jīng)數十位工程師歷時(shí)五年開(kāi)發(fā)成功,是最優(yōu)秀的國產(chǎn)組態(tài)軟件,居全國同類(lèi)軟件產(chǎn)銷(xiāo)量第一。組態(tài)王是一個(gè)具有易用性、開(kāi)放性和集成能力的通用組態(tài)軟件。應用組態(tài)王可以使工程師把精力放在控制對象上,而不是形形色色的通信協(xié)議、復雜的圖形處理、枯燥的數字統計。只需要進(jìn)行填表操作,即可生成適合于用戶(hù)的監控和數據采集系統??梢栽谡麄€(gè)生產(chǎn)企業(yè)內部將各種系統和應用集成在一起,實(shí)現“廠(chǎng)際自動(dòng)化”的最終目標。組態(tài)王開(kāi)發(fā)監控系統軟件是新型的工業(yè)自動(dòng)控制系統正以標準的工業(yè)計算機軟、硬件平臺構成的集成系統取代傳統的封閉式系統,具有適應性強、開(kāi)放性好、易于擴展、經(jīng)濟、開(kāi)發(fā)周期短等優(yōu)點(diǎn)。組態(tài)軟件以其可靠性高、抗干擾能力強、界面簡(jiǎn)單、功能強大、性?xún)r(jià)比高等顯著(zhù)特點(diǎn)廣泛應用于現代工業(yè)的自動(dòng)控制之中。

2、 組態(tài)王軟件組態(tài)監控界面設計
使用組態(tài)王實(shí)現控制系統實(shí)驗仿真的基本方法:
(1)圖形界面的設計;
(2)構造數據庫;
(3)建立動(dòng)畫(huà)連接;
(4)運行和調試。
根據以上控制方案的確定,本次設計組態(tài)王監控界面如圖20所示

定義數據變量見(jiàn)表2。

選擇設備的相關(guān)配置如下:
設備名稱(chēng):通用單片機ASCII;
通信描述:串口;
邏輯名稱(chēng):STM32;
選擇串口號:COM4;
設備地址:1.0。
動(dòng)態(tài)連接,參數動(dòng)態(tài)連接設置見(jiàn)表3。

3、報警和事件窗口設計
運行報警時(shí)間記錄是監控軟件必不可少的功能,“組態(tài)王”提供了強有力的支持和簡(jiǎn)單的控制運行報警和時(shí)間記錄方法。
組態(tài)王中的報警和事件主要包括變量報警事件、操作事件、用戶(hù)登陸事件和工作站事件。通過(guò)這些報警和事件,用戶(hù)可以方便地記錄和查看系統的報警、操作和各個(gè)工作站的運行情況。當報警和事件發(fā)生時(shí),在報警窗中會(huì )按照設置的過(guò)濾條件實(shí)時(shí)的顯示出來(lái)[16]。定義報警組,本次建立報警畫(huà)面如圖21所示。

五、系統的運行結果及問(wèn)題分析
1、運行結果及分析
經(jīng)過(guò)多次的參數設置的調試,對比各組設置參數的調節效果得出:當程序中PID設置參數如表4所示參數時(shí)控制效果最好。

總結:本系統的控制核心算法是PID控制算法,難點(diǎn)是PID參數整定。圖22為系統運行曲線(xiàn)的初始溫度50℃,設定溫度60℃時(shí)的結果,經(jīng)過(guò)9分鐘的調節系統達到穩定,實(shí)際溫度達到設定溫度,穩態(tài)誤差為0.4℃,超調量幾乎為零。本設計中溫度能達到設定溫度,而且超調量較小,穩態(tài)效果很好。

2、出現的問(wèn)題及解決方法
在長(cháng)達十六周的畢業(yè)設計中,自己碰到了不少問(wèn)題。曾經(jīng),為了解決這些問(wèn)題也花費了較多的時(shí)間。當然,這也使自己對實(shí)際工程中所遇到或者可能遇到的問(wèn)題有了個(gè)提前認知。
(1)上位機采集不到現場(chǎng)的數據
解決方法:原因是溫度傳感器與模擬量前向通道接線(xiàn)有錯誤、松動(dòng),串口使用的通道設置錯誤,在利用組態(tài)王軟件進(jìn)行I/O設備組態(tài)的時(shí)候應選設備名稱(chēng)通用單片機ASCII。
(2)上位機的輸出控制信號控制不了電加熱水器
解決方法:上位機組態(tài)軟件中查看數字量輸出通道的設置與當前連線(xiàn)的通道不一致。
(3)系統穩定后誤差比較大
解決方法:誤差產(chǎn)生的原因有:溫度對象是大慣性對象、單片機控制信號從發(fā)出到固態(tài)繼電器的吸合,再到加熱絲停止加熱,這過(guò)程中存在時(shí)間誤差、硬件靈敏度不夠精確等問(wèn)題。
評論