新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于STM32為主控的溫度單反饋控制系統(tǒng)

基于STM32為主控的溫度單反饋控制系統(tǒng)

作者: 時(shí)間:2018-02-02 來源:網(wǎng)絡(luò) 收藏

  設(shè)計(jì)選用單片機(jī)作控制器,設(shè)計(jì)溫度單反饋的控制系統(tǒng),對電加熱水器內(nèi)水的溫度進(jìn)行控制。通過PT100溫度傳感器實(shí)現(xiàn)對水溫信號的采集,并利用模擬量前向通道來對水溫信號進(jìn)行處理。利用單片機(jī)進(jìn)行控制輸出信號,用此信號控制接觸器進(jìn)而控制電加熱水器的電源通斷,最終實(shí)現(xiàn)對水溫的控制。同時(shí)用組態(tài)軟件設(shè)計(jì)監(jiān)控界面來實(shí)現(xiàn)對水溫的控制顯示。通過對此課題的設(shè)計(jì),能夠使自動化的學(xué)生對工業(yè)過程控制對象具有更進(jìn)一步的了解,同時(shí)熟練掌握自動化控制系統(tǒng)的設(shè)計(jì)流程,為以后的工作學(xué)習(xí)打下堅(jiān)實(shí)基礎(chǔ)。

本文引用地址:http://butianyuan.cn/article/201802/375293.htm

  一、控制系統(tǒng)硬件設(shè)計(jì)

  1、控制系統(tǒng)硬件總體設(shè)計(jì)

  溫度是一個(gè)很重要的變量,需要對其進(jìn)行準(zhǔn)確地控制。溫度控制系統(tǒng)常用來保持溫度恒定或者使溫度按照某種規(guī)定的規(guī)律變化。閉環(huán)控制是溫度控制系統(tǒng)中最為常見類型,本設(shè)計(jì)即為閉環(huán)溫度控制系統(tǒng),閉環(huán)溫度控制方框圖如圖1所示。

    

 

  溫度控制系統(tǒng)由被控對象、測量裝置、調(diào)節(jié)器和執(zhí)行機(jī)構(gòu)組成。測量裝置對被控電加熱水器中水溫進(jìn)行測量,控制器將測量值與給定值進(jìn)行比較,若存在偏差便由控制器對偏差信號進(jìn)行處理,輸出控制信號給執(zhí)行機(jī)構(gòu)來啟動或停止電加熱水器工作,最終將溫度調(diào)節(jié)到設(shè)定值。被控對象是電加熱水器內(nèi)水的溫度。

  基于上述理論設(shè)計(jì)出本控制系統(tǒng),本系統(tǒng)硬件主要有:單片機(jī)、PT100溫度傳感器、開關(guān)電源、模擬量前向通道、繼電器輸出模塊、HH52P型固態(tài)繼電器、CJ20-10型接觸器、電加熱水器,控制系統(tǒng)硬件結(jié)構(gòu)圖如圖2所示。

    

 

  2、STM32單片機(jī)介紹

  STM32單片機(jī)是整個(gè)溫度控制系統(tǒng)的核心部分。因?yàn)閷囟瓤刂破骶哂休^高的要求,例如高執(zhí)行速度,高控制精度,高穩(wěn)定性以及高靈敏度等,所以選擇一個(gè)具有較高性能而又經(jīng)濟(jì)的單片機(jī)就成為必然。本設(shè)計(jì)選用屬于STM32系列的STM32F103VET6單片機(jī)作為控制電路的核心部件,該單片機(jī)屬于ST意法半導(dǎo)體公司生產(chǎn)的32位高性能、低成本、低功耗的增強(qiáng)型系列單片機(jī),它的內(nèi)核采用的是ARM公司最新研發(fā)的Cortex-M3架構(gòu),該內(nèi)核是專門設(shè)計(jì)于滿足用戶對高性能、低功耗和經(jīng)濟(jì)實(shí)用的要求。ARM Cortex-M3處理器的架構(gòu)在系統(tǒng)結(jié)構(gòu)上的增強(qiáng),使得STM32增強(qiáng)型系列單片機(jī)受益無窮,其采用的THUMB-2指令集使得其指令效率更高和而且性能更強(qiáng)。

  STM32F103VET6采用薄型四方扁平式封裝技術(shù)(LQFP)具有100管腳,片內(nèi)具有512KB的FLASH,64KB的RAM(片上集成12Bit A/D、D/A、、CAN、USB、安全數(shù)字輸入輸出卡SDIO、可變靜態(tài)存儲控制器FSMC等資源)。1個(gè)串行外設(shè)接口(SPI)總線控制的M25P16(16MB容量的串行FLASH),用于存儲數(shù)據(jù)、代碼、字庫及圖相等等。1個(gè)2.8寸26萬色顯示屏(TFT 240X320(帶觸摸屏))接口,利用MCU的FSMC的16位數(shù)據(jù)接口模式,觸摸屏采用ADS7843(4線電阻觸摸屏轉(zhuǎn)換接口芯片)芯片用硬SPI接口控制。STM32單片機(jī)采用2.0~3.6V的供電電壓,可以工作在-40℃~85℃的溫度范圍內(nèi),其最高的工作頻率是72MHz,其引腳分布如圖3所示。

    

 

  STM32F103VET6單片機(jī)有3個(gè)不同的時(shí)鐘源可供選擇用以驅(qū)動系統(tǒng)時(shí)鐘,分別為HIS振蕩器時(shí)鐘、HSE振蕩器時(shí)鐘和PLL時(shí)鐘。這些設(shè)備還具有2個(gè)二級時(shí)鐘源,分別是40KHz的低速內(nèi)部RC和32.768KHz的低速外部時(shí)鐘源,可以用來驅(qū)動看門狗時(shí)鐘和RTC。任何一個(gè)時(shí)鐘源在不被使用時(shí),都可以被獨(dú)立的關(guān)閉或者開啟,以實(shí)現(xiàn)對系統(tǒng)功耗的優(yōu)化。

  單片機(jī)由AMS1117-3.3芯片電路供電,輸入+5V,提供3.3V的固定電壓輸出,為了降低電磁干擾,需要經(jīng)C7-C10濾波后再為CPU供電,R8為DGND與AGND的連接電阻,R9和D5 LED和電源指示連接電阻,電源電路如圖4所示。

    

 

  RTC的備份電源采用VBAT 3.3V 鋰離子片狀電池,RTC的備份電源如圖5所示。

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

    

 

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

    

 

  3、硬件接線及其原理介紹

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

    

 

  模擬量前向通道使用公司生產(chǎn)的TLC7135(也可稱為ICL7135)芯片,加上前級模擬信號運(yùn)算放大器的特殊處理, 以及一些其它的基本元器件成功地實(shí)現(xiàn)了微弱信號的測量。TLC7135具有以下特性:輸入阻抗高,對被測電路幾乎沒有影響;能夠自動校零;有精確的差分輸入電路;自動判別信號極性;有超、欠壓輸出信號;采用位掃描(共5位)與BCD碼輸出。本次設(shè)計(jì)應(yīng)用PT100作為溫度傳感器,需要接三根信號線,其中兩線內(nèi)部短接,信號經(jīng)單8通道數(shù)字控制模擬電子開關(guān)CD4051選通后,經(jīng)運(yùn)算放大器后得到溫度信號對應(yīng)的模擬電壓值,本次設(shè)計(jì)選擇的處理方法是經(jīng)運(yùn)算放大器的6管腳引出此模擬電壓信號,直接用單片機(jī)實(shí)現(xiàn)數(shù)字化處理,模擬量前向通道如圖9所示[6]。

  繼電器輸出模塊主要用來執(zhí)行STM32輸出的PWM控制信號,及時(shí)的接通或者斷開后邊的固態(tài)繼電器HH52P和交流接觸器CJ20-10,進(jìn)而實(shí)現(xiàn)對加熱器主電路的控制。由于單片機(jī)輸出的PWM信號3.3V左右電壓較低,不能直接用來驅(qū)動24V的固態(tài)繼電器HH52P,因此需要在其中間加用繼電器輸出模塊,繼電器輸出模塊供電電壓12V,只要有輸入信號便可以控制線圈的吸合與斷開,繼電器輸出模塊如圖10所示。

    

 

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

  鉑電阻的阻值隨溫度的變化而變化的計(jì)算公式如公式(1)和公式(2)所示。

    

 

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

    

 

  PT100電阻隨溫度變化表見表1

    

 

  本次設(shè)計(jì)的系統(tǒng)硬件電路實(shí)物圖如圖12所示。

    

 

  二、控制系統(tǒng)軟件設(shè)計(jì)

  1、軟件開發(fā)環(huán)境及其工具

  C語言編程

  C語言是一種計(jì)算機(jī)程序設(shè)計(jì)語言。它既有高級語言的特點(diǎn),又具有匯編語言的特點(diǎn)。它可以作為系統(tǒng)設(shè)計(jì)語言,編寫工作系統(tǒng)應(yīng)用程序,也可以作為應(yīng)用程序設(shè)計(jì)語言,編寫不依賴計(jì)算機(jī)硬件的應(yīng)用程序,因此,它的應(yīng)用范圍廣泛,C程序設(shè)計(jì)語言是一種在國內(nèi)外被廣泛使用的計(jì)算機(jī)編程語言。C語言是一種結(jié)構(gòu)化語言,它層次清晰,便于按模塊化方式組織程序,易于調(diào)試和維護(hù)。C語言作為一種高級程序設(shè)計(jì)語言得到了廣泛的應(yīng)用,采用C語言編寫的軟件程序不針對特定的硬件系統(tǒng),可以根據(jù)不同的單片機(jī) 做移植,基于C語言的以上諸多特點(diǎn)及優(yōu)點(diǎn),本設(shè)計(jì)的軟件程序設(shè)計(jì),采用C程序設(shè)計(jì)語言[9]。

  軟件開發(fā)工具介紹

  編程軟件使用源自德國Keil公司的 RealView MDK,這一款編程軟件被全球超過十萬的嵌入式工程師或者學(xué)者驗(yàn)證和使用,是ARM公司最新推出的針對各種嵌入式處理器的軟件開發(fā)工具。它集成了業(yè)界最領(lǐng)先的技術(shù),融合了中國多數(shù)軟件工程師所需要的特點(diǎn)和功能,uVision4集成開發(fā)環(huán)境支持ARM7、ARM9和最新的Cortex-M3內(nèi)核處理器,自動配置啟動代碼,集成Flash少些模塊,強(qiáng)大的性能分析功能。其集成開發(fā)環(huán)境如圖13所示。

    

 

  uVision4集成開發(fā)環(huán)境主要的性能:

  (1) 源代碼編輯器的功能非常強(qiáng)大。

  (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)新建一個(gè)文件夾(以后編的每一個(gè)工程都放進(jìn)這個(gè)文件夾里,自己命名,此處所有文件都可以自己命名,例如:STM32 file)。此處所用到的庫函數(shù)版本為V3.5庫函數(shù)版本。

  (2)創(chuàng)建一個(gè)文件夾(名字可以根據(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)建的其他工程同在一個(gè)目錄下,這樣可使在該目錄在的工程共享Libraries。免得以后創(chuàng)建一個(gè)工程就得復(fù)制一次Libraries。

  (4)新建一個(gè)Keil MDK工程

   啟動Keil MDK,點(diǎn)擊菜單New uVision Project,然后按向?qū)нM(jìn)行操作。選擇CPU類型為STM32F103VE。當(dāng)提示是否復(fù)制啟動代碼時(shí),選擇否。為了延長芯片使用壽命以及加快仿真速度,可以在ram中直接仿真(ram仿真速度快),用ram仿真 在斷電之后數(shù)據(jù)就全部丟失了,修改Target名字, 添加兩個(gè),一個(gè)Flash,一個(gè)Ram。

   為了便于代碼管理,在這個(gè)Project下創(chuàng)建幾個(gè)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è)計(jì)

    

 

  一些.C文件。如:misc.c stm32f 10x_rcc.c stm32f 10x_gpio.c等;添加CMSIS :core_cm3.c system_stm32f 10x.c。

  (5)配置工程, 點(diǎn)擊“Opons”按鈕。

   打開Flash 調(diào)整Flash設(shè)置,切換到Output,然后選擇Object文件夾,在CreateHex File 前打鉤,并將Name Executable修改為output。

  切換到Lisng,選擇Lisngs文件夾。切換到C/C++,添加兩個(gè)預(yù)編譯宏STM32F10X_HD,

  USE_STDPERIPH_DRIVER (這是ST庫用到了這兩個(gè)宏),修改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,添加兩個(gè)預(yù)編譯宏STM32F10X_HD, USE_STDPERIPH_DRIVER(這是ST庫用到了這兩個(gè)宏),修改Includes路徑。這樣就新建一個(gè)工程,我們可以根據(jù)需要自己所要實(shí)現(xiàn)的功能編輯程序。

  三、軟件系統(tǒng)總體設(shè)計(jì)

  1、軟件程序結(jié)構(gòu)

  在深入學(xué)習(xí)STM32編程、PID控制算法、組態(tài)王軟件的基礎(chǔ)上進(jìn)行溫度控制系統(tǒng)的軟件設(shè)計(jì)。軟件設(shè)計(jì)主要包括溫度數(shù)據(jù)的采集變換、PID算法的設(shè)計(jì)、PWM輸出信號控制以及觸摸屏顯示設(shè)計(jì)、上位機(jī)監(jiān)控畫面的設(shè)計(jì)。上位機(jī)監(jiān)控畫面的設(shè)計(jì)主要包括設(shè)計(jì)監(jiān)控主畫面、設(shè)計(jì)報(bào)警畫面等。整個(gè)程序系統(tǒng)主要有主控程序、初始化程序、溫度設(shè)定程序、PID設(shè)置程序、溫度采集程序、溫度顯示程序、PID控制算法程序、PWM控制信號輸出程序和串口通信程序組成,其結(jié)構(gòu)如圖14所示。

  3.2.2 主程序設(shè)計(jì)

  主程序是整個(gè)軟件系統(tǒng)的主干,處在程序的最頂一層,引導(dǎo)系統(tǒng)進(jìn)入正常的工作狀態(tài),并且協(xié)調(diào)著各個(gè)程序塊之間的調(diào)用關(guān)系,使硬件系統(tǒng)能正常的工作以完成溫度控制系統(tǒng)任務(wù),其流程如圖15所示。

  3.2.3 初始化程序設(shè)計(jì)

  系統(tǒng)初始化程序在系統(tǒng)上電啟動或者復(fù)位時(shí),對溫度控制器的硬件和軟件進(jìn)行初始化,完成系統(tǒng)的配置工作,初始化程序主要包括:顯示屏初始化、系統(tǒng)時(shí)鐘初始化、I/O 端口的配置、定時(shí)器初始化。

    

 

    

 

  2、溫度采集程序設(shè)計(jì)

  溫度檢測電路是由PT100溫度傳感器和模擬量前向通道組成的,溫度的檢測由二者直接完成。利用溫度檢測電路得到溫度變化對應(yīng)的模擬電壓信號,該信號直接由STM32進(jìn)行A/D轉(zhuǎn)換,由于轉(zhuǎn)化的數(shù)值與實(shí)際的溫度值之間不是線性關(guān)系,要用DS18B20采集對應(yīng)溫度值,該溫度值用來校驗(yàn)當(dāng)前溫度是否正確,并用此溫度值對應(yīng)前向通道輸出的模擬電壓值以擬合數(shù)值與溫度值的曲線,得到他們之間的函數(shù)關(guān)系,本次擬合曲線如圖16所示。

  曲線直線化是曲線擬合的重要手段之一。對于某些非線性的資料可以通過簡單的變量變換使之直線化,這樣就可以按最小二乘法原理求出變換后變量的直線方程,在實(shí)際工作中常利用此直線方程繪制資料的標(biāo)準(zhǔn)工作曲線,同時(shí)根據(jù)需要可將此直線方程還原為曲線方程,實(shí)現(xiàn)對資料的曲線擬合。最終經(jīng)MATLAB得到曲線公式如公式(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;

  }

  }

  此程序用來獲取當(dāng)前溫度對應(yīng)的模擬量信號,并將其轉(zhuǎn)化為數(shù)字量信號,經(jīng)由擬合公式計(jì)算出對應(yīng)的溫度值。

  3、位置式PID控制算法設(shè)計(jì)

  工業(yè)生產(chǎn)過程中,對于生產(chǎn)裝置的溫度、壓力、流量、液位等工藝變量常常要求維持在一定的數(shù)值上,或按一定的規(guī)律變化,以滿足生產(chǎn)工藝的要求。PID控制算法的原理是對整個(gè)控制系統(tǒng)進(jìn)行按偏差進(jìn)行調(diào)節(jié),從而使被控量的實(shí)際值與工藝要求的預(yù)定值一致。因?yàn)镻ID控制算法具有:技術(shù)成熟、容易被人們熟悉和掌握、不需要建立數(shù)學(xué)模型、控制效果好、魯棒性等優(yōu)點(diǎn),所以PID控制算法成為應(yīng)用最廣泛的控制算法。

  單片機(jī)控制是一種采樣控制,它只能根據(jù)采樣時(shí)刻的偏差值計(jì)算控制量。因此連續(xù)PID控制算法不能直接使用,需要采用離散化方法。由于工業(yè)生產(chǎn)過程大多數(shù)是緩慢變化的過程,因此只要控制機(jī)的采樣周期T取得足夠短,斷續(xù)控制形式就趨于連續(xù)控制形式。數(shù)字PID控制算法又分增量式PID控制算法和位置式PID控制算法,由于位置式PID控制算法控制精度比較高,而增量式PID控制算法有:積分截?cái)嘈?yīng)大、有靜態(tài)誤差、溢出的影響大等缺點(diǎn),所以本設(shè)計(jì)選用的控制算法是位置式PID控制算法。

  位置式PID控制算式如公式(4)所示。

    

 

    

 

    

 

    

 

    

 

  PID控制算法的參數(shù)整定與采樣周期的選取

  PID控制算法參數(shù)整定的方法很多,概括起來有如下兩大類:

  (1)理論計(jì)算整定法。它主要依據(jù)系統(tǒng)的數(shù)學(xué)模型,經(jīng)過理論計(jì)算確定控制器參數(shù)。這種方法所得到的計(jì)算數(shù)據(jù)未必可以直接使用,還必須通過工程實(shí)際進(jìn)行調(diào)整和修改。

  (2)工程整定法。它主要依賴于工程經(jīng)驗(yàn),直接在控制系統(tǒng)的試驗(yàn)中進(jìn)行,且方法簡單、易于掌握,在工程實(shí)際中被廣泛采用。PID控制算法參數(shù)的工程整定方法,主要有臨界比例法、反應(yīng)曲線法和衰減法。這三種方法各有其特點(diǎn),其共同點(diǎn)都是通過試驗(yàn),然后按照工程經(jīng)驗(yàn)公式對控制器參數(shù)進(jìn)行整定。但無論采用哪一種方法所得到的控制器參數(shù),都需要在實(shí)際運(yùn)行中進(jìn)行最后的調(diào)整與完善。

  本文采用經(jīng)驗(yàn)法整定PID控制算法參數(shù),下面具體說明經(jīng)驗(yàn)法的整定步驟:

  (1)讓調(diào)節(jié)器參數(shù)的積分系數(shù)I=0,微分系數(shù)D=0,控制系統(tǒng)投入閉環(huán)運(yù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,此時(shí)可適當(dāng)增大比例系數(shù)P和積分系數(shù)I。和前述步驟相同,微分系數(shù)的整定也需反復(fù)調(diào)整,直到控制過程滿意為止。

  經(jīng)驗(yàn)法簡單可靠,但需要有一定的現(xiàn)場運(yùn)行經(jīng)驗(yàn),整定時(shí)易帶有主觀片面性。當(dāng)采用PID控制算法時(shí),由于有多個(gè)整定參數(shù),反復(fù)試湊的次數(shù)增多,因此增加了得到最佳整定參數(shù)的難度。

  需要注意的是:本設(shè)計(jì)所用到PID控制算法的參數(shù)與的工業(yè)上PID控制算法的參數(shù)有所不同,工業(yè)中由于對象的體積大、容量大、控制室距離現(xiàn)場較遠(yuǎn)等因素,所以其PID控制算法的參數(shù)普遍比本設(shè)計(jì)的大。

  書上、參考資料上的的PID控制算法的參數(shù)多數(shù)都是從工業(yè)生產(chǎn)過程中得來的,因此此經(jīng)驗(yàn)數(shù)據(jù)不適應(yīng)作本設(shè)計(jì)PID控制算法的參數(shù)。

  采樣周期的選取,按一定的時(shí)間間隔T,把時(shí)間上連續(xù)和幅值上也連續(xù)的信號,轉(zhuǎn)變成在時(shí)刻0、T2、…、kT的一連串脈沖輸出信號的過程稱為采樣過程。執(zhí)行采樣動作的開關(guān)S稱為采樣開關(guān)或采樣器采樣后的脈沖序列??ty*稱為采樣信號,采樣器的輸入信號??ty稱為原始信號,采樣開關(guān)每次通斷的時(shí)間間隔T稱為采樣周期。采樣信號??ty在時(shí)間上是離散的,但在幅值上仍是連續(xù)的,所以采樣信號是一個(gè)離散的模擬信號。信號采樣過程如圖18所示。

  從信號的采樣過程可知,經(jīng)過采樣不是取全部時(shí)間上的信號值,而是取某些時(shí)間上的值。這樣處理會不會造成信號丟失呢?香農(nóng)采樣定理指出:如果模擬信號(包括干擾在內(nèi))頻譜最高頻率為maxf,只要按照采樣頻率max2ff?進(jìn)行采樣,那么采樣信號??ty*就能惟一的復(fù)觀??ty。采樣定理給出了??ty*能惟一的復(fù)觀??ty所必需的最低采樣頻率。實(shí)際應(yīng)用中,常取??max105ff??,甚至更高。

  4、采樣周期的確定需要注意以下事項(xiàng):

  (1)從執(zhí)行機(jī)構(gòu)的特性要求來看,有時(shí)需要輸出信號保持一定的寬度。采樣周期必須大于這一時(shí)間。

  (2)從控制系統(tǒng)的隨動和抗干擾的性能來看,要求采樣周期短些。

  (3)從單片機(jī)的工作量和每個(gè)調(diào)節(jié)回路的計(jì)算來看,一般要求采樣周期大些。

  (4)從單片機(jī)的精度看,過短的采樣周期是不合適的。

    

 

  經(jīng)過多次調(diào)試設(shè)置,采樣周期T選為1s采樣效果最好,且信號采樣不失真。

  5、 PWM輸出程序設(shè)計(jì)

  脈沖寬度調(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)點(diǎn)而成為電力電子技術(shù)最廣泛應(yīng)用的控制方式。

  通過單片機(jī)輸出的PWM信號控制固態(tài)繼電器的通斷,通過改變一定時(shí)間內(nèi)通過的交流波頭數(shù)實(shí)現(xiàn)對電加熱水器內(nèi)水溫的控制,我國公共電力網(wǎng)的頻率均為50HZ,周期也就是0.02秒,設(shè)置 PWM 信號的輸出周期為4秒,即STM32單片機(jī)以0.25Hz的頻率輸出PWM,改變PWM的占空比,在4秒的周期內(nèi),當(dāng)PID算法的控制量大于100時(shí),通過交流電源的最大周期波數(shù)是100,當(dāng) PID 算法的控制量小于0時(shí),最小周期波數(shù)是0,當(dāng)控制量在0~100之間時(shí),就按比例換算進(jìn)行確定PWM輸出信號的占空比。STM32單片機(jī)具有多個(gè)定時(shí)器/計(jì)數(shù)器,每個(gè)定時(shí)器/計(jì)數(shù)器都可以獨(dú)立的輸出PWM信號,本設(shè)計(jì)采用單片機(jī)的TIM3定時(shí)器/計(jì)數(shù)器在PB5 引腳輸出PWM,PWM輸出流程如圖19所示。

  四、上位機(jī)監(jiān)控界面設(shè)計(jì)

  1、上位機(jī)監(jiān)控軟件的選取

  組態(tài)王(Kingview)由北京亞控自動化軟件有限公司開發(fā)的,該軟件由中國科技大學(xué)學(xué)士、清華大學(xué)碩士林偉總設(shè)計(jì),經(jīng)數(shù)十位工程師歷時(shí)五年開發(fā)成功,是最優(yōu)秀的國產(chǎn)組態(tài)軟件,居全國同類軟件產(chǎn)銷量第一。組態(tài)王是一個(gè)具有易用性、開放性和集成能力的通用組態(tài)軟件。應(yīng)用組態(tài)王可以使工程師把精力放在控制對象上,而不是形形色色的通信協(xié)議、復(fù)雜的圖形處理、枯燥的數(shù)字統(tǒng)計(jì)。只需要進(jìn)行填表操作,即可生成適合于用戶的監(jiān)控和數(shù)據(jù)采集系統(tǒng)??梢栽谡麄€(gè)生產(chǎn)企業(yè)內(nèi)部將各種系統(tǒng)和應(yīng)用集成在一起,實(shí)現(xiàn)“廠際自動化”的最終目標(biāo)。組態(tài)王開發(fā)監(jiān)控系統(tǒng)軟件是新型的工業(yè)自動控制系統(tǒng)正以標(biāo)準(zhǔn)的工業(yè)計(jì)算機(jī)軟、硬件平臺構(gòu)成的集成系統(tǒng)取代傳統(tǒng)的封閉式系統(tǒng),具有適應(yīng)性強(qiáng)、開放性好、易于擴(kuò)展、經(jīng)濟(jì)、開發(fā)周期短等優(yōu)點(diǎn)。組態(tài)軟件以其可靠性高、抗干擾能力強(qiáng)、界面簡單、功能強(qiáng)大、性價(jià)比高等顯著特點(diǎn)廣泛應(yīng)用于現(xiàn)代工業(yè)的自動控制之中。

    

 

  2、 組態(tài)王軟件組態(tài)監(jiān)控界面設(shè)計(jì)

  使用組態(tài)王實(shí)現(xiàn)控制系統(tǒng)實(shí)驗(yàn)仿真的基本方法:

  (1)圖形界面的設(shè)計(jì);

  (2)構(gòu)造數(shù)據(jù)庫;

  (3)建立動畫連接;

  (4)運(yùn)行和調(diào)試。

  根據(jù)以上控制方案的確定,本次設(shè)計(jì)組態(tài)王監(jiān)控界面如圖20所示

    

 

  定義數(shù)據(jù)變量見表2。

    

 

  選擇設(shè)備的相關(guān)配置如下:

  設(shè)備名稱:通用單片機(jī)ASCII;

  通信描述:串口;

  邏輯名稱:STM32;

  選擇串口號:COM4;

  設(shè)備地址:1.0。

  動態(tài)連接,參數(shù)動態(tài)連接設(shè)置見表3。

    

 

  3、報(bào)警和事件窗口設(shè)計(jì)

  運(yùn)行報(bào)警時(shí)間記錄是監(jiān)控軟件必不可少的功能,“組態(tài)王”提供了強(qiáng)有力的支持和簡單的控制運(yùn)行報(bào)警和時(shí)間記錄方法。

  組態(tài)王中的報(bào)警和事件主要包括變量報(bào)警事件、操作事件、用戶登陸事件和工作站事件。通過這些報(bào)警和事件,用戶可以方便地記錄和查看系統(tǒng)的報(bào)警、操作和各個(gè)工作站的運(yùn)行情況。當(dāng)報(bào)警和事件發(fā)生時(shí),在報(bào)警窗中會按照設(shè)置的過濾條件實(shí)時(shí)的顯示出來[16]。定義報(bào)警組,本次建立報(bào)警畫面如圖21所示。

    

 

  五、系統(tǒng)的運(yùn)行結(jié)果及問題分析

  1、運(yùn)行結(jié)果及分析

  經(jīng)過多次的參數(shù)設(shè)置的調(diào)試,對比各組設(shè)置參數(shù)的調(diào)節(jié)效果得出:當(dāng)程序中PID設(shè)置參數(shù)如表4所示參數(shù)時(shí)控制效果最好。

    

 

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

  2、出現(xiàn)的問題及解決方法

  在長達(dá)十六周的畢業(yè)設(shè)計(jì)中,自己碰到了不少問題。曾經(jīng),為了解決這些問題也花費(fèi)了較多的時(shí)間。當(dāng)然,這也使自己對實(shí)際工程中所遇到或者可能遇到的問題有了個(gè)提前認(rèn)知。

  (1)上位機(jī)采集不到現(xiàn)場的數(shù)據(jù)

  解決方法:原因是溫度傳感器與模擬量前向通道接線有錯誤、松動,串口使用的通道設(shè)置錯誤,在利用組態(tài)王軟件進(jìn)行I/O設(shè)備組態(tài)的時(shí)候應(yīng)選設(shè)備名稱通用單片機(jī)ASCII。

  (2)上位機(jī)的輸出控制信號控制不了電加熱水器

  解決方法:上位機(jī)組態(tài)軟件中查看數(shù)字量輸出通道的設(shè)置與當(dāng)前連線的通道不一致。

  (3)系統(tǒng)穩(wěn)定后誤差比較大

  解決方法:誤差產(chǎn)生的原因有:溫度對象是大慣性對象、單片機(jī)控制信號從發(fā)出到固態(tài)繼電器的吸合,再到加熱絲停止加熱,這過程中存在時(shí)間誤差、硬件靈敏度不夠精確等問題。



關(guān)鍵詞: STM32 PWM

評論


技術(shù)專區(qū)

關(guān)閉