三、軟件系統(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è)計、上位機(jī)監(jiān)控畫面的設(shè)計。上位機(jī)監(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 端口的配置、定時器初始化。
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)所示。
溫度采集相關(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ī)控制是一種采樣控制,它只能根據(jù)采樣時刻的偏差值計算控制量。因此連續(xù)PID控制算法不能直接使用,需要采用離散化方法。由于工業(yè)生產(chǎn)過程大多數(shù)是緩慢變化的過程,因此只要控制機(jī)的采樣周期T取得足夠短,斷續(xù)控制形式就趨于連續(xù)控制形式。數(shù)字PID控制算法又分增量式PID控制算法和位置式PID控制算法,由于位置式PID控制算法控制精度比較高,而增量式PID控制算法有:積分截斷效應(yīng)大、有靜態(tài)誤差、溢出的影響大等缺點,所以本設(shè)計選用的控制算法是位置式PID控制算法。
位置式PID控制算式如公式(4)所示。
PID控制算法的參數(shù)整定與采樣周期的選取
PID控制算法參數(shù)整定的方法很多,概括起來有如下兩大類:
(1)理論計算整定法。它主要依據(jù)系統(tǒng)的數(shù)學(xué)模型,經(jīng)過理論計算確定控制器參數(shù)。這種方法所得到的計算數(shù)據(jù)未必可以直接使用,還必須通過工程實際進(jìn)行調(diào)整和修改。
?。?)工程整定法。它主要依賴于工程經(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)驗法的整定步驟:
?。?)讓調(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,同樣讓擾動信號作階躍變化,直至得到滿意的控制過程。
?。?)積分系數(shù)I保持不變,改變比例系數(shù)P,觀察控制過程有無改善,如有改善則繼續(xù)調(diào)整,直到滿意為止。否則,將原比例系數(shù)P增大一些,再調(diào)整積分系數(shù)I,力求改善控制過程。如此反復(fù)試湊,直到找到滿意的比例系數(shù)P和積分系數(shù)I為止。
?。?)引入適當(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、采樣周期的確定需要注意以下事項:
?。?)從執(zhí)行機(jī)構(gòu)的特性要求來看,有時需要輸出信號保持一定的寬度。采樣周期必須大于這一時間。
(2)從控制系統(tǒng)的隨動和抗干擾的性能來看,要求采樣周期短些。
(3)從單片機(jī)的工作量和每個調(diào)節(jié)回路的計算來看,一般要求采樣周期大些。
(4)從單片機(jī)的精度看,過短的采樣周期是不合適的。
經(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)用的控制方式。
通過單片機(jī)輸出的PWM信號控制固態(tài)繼電器的通斷,通過改變一定時間內(nèi)通過的交流波頭數(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ù)是100,當(dāng) PID 算法的控制量小于0時,最小周期波數(shù)是0,當(dāng)控制量在0~100之間時,就按比例換算進(jìn)行確定PWM輸出信號的占空比。STM32單片機(jī)具有多個定時器/計數(shù)器,每個定時器/計數(shù)器都可以獨立的輸出PWM信號,本設(shè)計采用單片機(jī)的TIM3定時器/計數(shù)器在PB5 引腳輸出PWM,PWM輸出流程如圖19所示。
四、上位機(jī)監(jiān)控界面設(shè)計
1、上位機(jī)監(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è)計算機(jī)軟、硬件平臺構(gòu)成的集成系統(tǒng)取代傳統(tǒng)的封閉式系統(tǒng),具有適應(yīng)性強(qiáng)、開放性好、易于擴(kuò)展、經(jīng)濟(jì)、開發(fā)周期短等優(yōu)點。組態(tài)軟件以其可靠性高、抗干擾能力強(qiáng)、界面簡單、功能強(qiáng)大、性價比高等顯著特點廣泛應(yīng)用于現(xiàn)代工業(yè)的自動控制之中。
2、 組態(tài)王軟件組態(tài)監(jiān)控界面設(shè)計
使用組態(tài)王實現(xiàn)控制系統(tǒng)實驗仿真的基本方法:
?。?)圖形界面的設(shè)計;
?。?)構(gòu)造數(shù)據(jù)庫;
?。?)建立動畫連接;
?。?)運行和調(diào)試。
根據(jù)以上控制方案的確定,本次設(shè)計組態(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、報警和事件窗口設(shè)計
運行報警時間記錄是監(jiān)控軟件必不可少的功能,“組態(tài)王”提供了強(qiáng)有力的支持和簡單的控制運行報警和時間記錄方法。
組態(tài)王中的報警和事件主要包括變量報警事件、操作事件、用戶登陸事件和工作站事件。通過這些報警和事件,用戶可以方便地記錄和查看系統(tǒng)的報警、操作和各個工作站的運行情況。當(dāng)報警和事件發(fā)生時,在報警窗中會按照設(shè)置的過濾條件實時的顯示出來[16]。定義報警組,本次建立報警畫面如圖21所示。
五、系統(tǒng)的運行結(jié)果及問題分析
1、運行結(jié)果及分析
經(jīng)過多次的參數(shù)設(shè)置的調(diào)試,對比各組設(shè)置參數(shù)的調(diào)節(jié)效果得出:當(dāng)程序中PID設(shè)置參數(shù)如表4所示參數(shù)時控制效果最好。
總結(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)效果很好。
2、出現(xiàn)的問題及解決方法
在長達(dá)十六周的畢業(yè)設(shè)計中,自己碰到了不少問題。曾經(jīng),為了解決這些問題也花費了較多的時間。當(dāng)然,這也使自己對實際工程中所遇到或者可能遇到的問題有了個提前認(rèn)知。
?。?)上位機(jī)采集不到現(xiàn)場的數(shù)據(jù)
解決方法:原因是溫度傳感器與模擬量前向通道接線有錯誤、松動,串口使用的通道設(shè)置錯誤,在利用組態(tài)王軟件進(jìn)行I/O設(shè)備組態(tài)的時候應(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)繼電器的吸合,再到加熱絲停止加熱,這過程中存在時間誤差、硬件靈敏度不夠精確等問題。
評論