摘 要: 提出了一種基于C8051F020單片機(jī)的PID參數(shù)自整定控制器設(shè)計(jì),制作了實(shí)物并在液位控制設(shè)備中驗(yàn)證。該系統(tǒng)采用自校正控制原理和常規(guī)PID控制相結(jié)合的算法,能快速整定出PID控制器的參數(shù)。用單片機(jī)C8051F020為主芯片完成控制器系統(tǒng)設(shè)計(jì),能根據(jù)當(dāng)前輸出值和目標(biāo)值的偏差求出控制增量輸出,使被控對(duì)象能快速達(dá)到目標(biāo)值并保持。所有數(shù)據(jù)通過串口發(fā)送至PC保存,以便進(jìn)行進(jìn)一步數(shù)據(jù)分析。
關(guān)鍵詞: C8051F020;PID;參數(shù)自整定
隨著航空航天、工業(yè)控制和各種過程控制的發(fā)展,對(duì)被控對(duì)象的控制要求越來(lái)越高。PID控制器因結(jié)構(gòu)簡(jiǎn)單、容易實(shí)現(xiàn),被廣泛應(yīng)用于各種工業(yè)控制中[1]。但PID控制的參數(shù)整定是一個(gè)問題,不合適的PID參數(shù)會(huì)使得控制效果變差,甚至不能達(dá)到控制目標(biāo)。本文設(shè)計(jì)的PID參數(shù)自整定控制器基于高速單片機(jī)C8051F020,通過自校正控制原理和常規(guī)PID控制相結(jié)合,可以根據(jù)被控對(duì)象數(shù)學(xué)模型及控制要求快速整定出PID控制器參數(shù),從而完成控制器設(shè)計(jì),最終實(shí)現(xiàn)控制要求。
可通過在Matlab中以被控對(duì)象的數(shù)學(xué)模型和控制要求作為已知條件求出PID控制器參數(shù),將參數(shù)編入單片機(jī)程序中,或通過上位機(jī)由串口設(shè)置,完成設(shè)計(jì)任務(wù)。
1 自校正PID算法
常規(guī)PID控制系統(tǒng)圖[2]如圖1所示。
自校正PID控制應(yīng)用在已知被控對(duì)象數(shù)學(xué)模型和控制目標(biāo)的情況下,通過自校正PID算法可快速求出自校正PID控制器參數(shù)。自校正PID控制器的設(shè)計(jì)思路是:通過系統(tǒng)對(duì)象離散傳遞函數(shù)的參數(shù)按自校正的極點(diǎn)配置法進(jìn)行控制器參數(shù)的設(shè)計(jì)。下面介紹PID控制器的設(shè)計(jì)過程[3]。
設(shè)所調(diào)整的被控對(duì)象為:
(1)輸入輸出調(diào)理電路:工業(yè)控制系統(tǒng)中信號(hào)的傳送是通過電流信號(hào)實(shí)現(xiàn)的,其范圍為4 mA~20 mA。則輸入信號(hào)調(diào)理電路的功能為將4 mA~20 mA的電流信號(hào)轉(zhuǎn)化為電壓信號(hào),輸出信號(hào)調(diào)理電路的功能則相反。
(2)控制器電路:主要為以單片機(jī)C8051F020為主控芯片的控制器,內(nèi)置PID控制算法。包括構(gòu)成單片機(jī)系統(tǒng)最基本的晶振電路和復(fù)位電路。
(3)實(shí)時(shí)顯示、報(bào)警電路:包括實(shí)時(shí)時(shí)鐘電路、蜂鳴器驅(qū)動(dòng)電路。實(shí)時(shí)時(shí)鐘采用低功耗的CMOS實(shí)時(shí)時(shí)鐘/日歷芯片。顯示電路采用數(shù)碼管顯示。
(4)串口通信電路:?jiǎn)纹瑱C(jī)和PC通過串口電路進(jìn)行通信,可在PC上實(shí)現(xiàn)對(duì)當(dāng)前情況的實(shí)時(shí)監(jiān)控,并可通過串口設(shè)置。
(5)按鍵電路:通過中斷按鍵電路對(duì)最終控制的目標(biāo)值進(jìn)行設(shè)定。
3 C8051F020內(nèi)部子系統(tǒng)
PID控制器中,A/D、D/A模塊以及定時(shí)采集數(shù)據(jù)的定時(shí)器均使用C8051F020的內(nèi)部資源[5]。
(1)A/D模塊:本系統(tǒng)使用12 bit的ADC0。使用內(nèi)部基準(zhǔn)電壓標(biāo)準(zhǔn)的2.4 V作為ADC0的VREF,設(shè)置其向ADC0BUSY寫1為啟動(dòng)ADC的方式,并通過串口通信將結(jié)果輸出給PC。
(2)D/A模塊:DAC0采用內(nèi)部基準(zhǔn)電壓作為參考電壓,并采用直接賦值的方法更新輸出值。更新DAC0的輸出方式為直接寫數(shù)據(jù)更新,當(dāng)DAC0L裝入新的數(shù)據(jù)后,DAC0開始工作,輸出當(dāng)前D/A轉(zhuǎn)換結(jié)果,進(jìn)而控制執(zhí)行機(jī)構(gòu)動(dòng)作。
4 系統(tǒng)軟件設(shè)計(jì)
根據(jù)Matlab中相關(guān)函數(shù)求得自校正PID控制器的參數(shù)F1、G和R,編寫PID控制器的程序完成PID控制任務(wù)。PID控制的流程圖如圖4所示。
控制時(shí)間根據(jù)被控對(duì)象表達(dá)式中的采樣時(shí)間間隔而定。主要過程為根據(jù)當(dāng)前系統(tǒng)的采集值和目標(biāo)值的偏差通過自校正PID控制器的計(jì)算求得控制量輸出,驅(qū)動(dòng)執(zhí)行機(jī)構(gòu)動(dòng)作。當(dāng)系統(tǒng)計(jì)算出的控制量始終為D/A輸出的最大值或最小值時(shí),可以認(rèn)為系統(tǒng)異常,此時(shí)驅(qū)動(dòng)蜂鳴器報(bào)警,請(qǐng)求進(jìn)行人工處理。
系統(tǒng)可通過按鍵對(duì)最終控制的目標(biāo)設(shè)定值進(jìn)行修改。兩個(gè)按鍵對(duì)程序中預(yù)設(shè)的目標(biāo)值進(jìn)行步進(jìn)加和步進(jìn)減,采用中斷方式完成功能。
5 實(shí)驗(yàn)結(jié)果及測(cè)試
液位控制是一個(gè)比較傳統(tǒng)的被控對(duì)象,因此將液位控制作為設(shè)計(jì)PID參數(shù)自整定控制器的驗(yàn)證被控對(duì)象。系統(tǒng)驗(yàn)證的實(shí)驗(yàn)設(shè)備使用東南大學(xué)過程控制實(shí)驗(yàn)室的液位控制設(shè)備,該裝置原理圖如圖5所示。
從圖6、圖7可以看出,被控對(duì)象能較快速地達(dá)到目標(biāo)值,并能根據(jù)設(shè)定的控制目標(biāo)進(jìn)行控制。
參考文獻(xiàn)
[1] 王偉,張晶濤,柴天佑.PID參數(shù)先進(jìn)整定方法綜述[J].自動(dòng)化學(xué)報(bào),2000,26(3):20-24.
[2] 陶永華.新型PID控制及其應(yīng)用[M].北京:機(jī)械工業(yè)出版社,1998.
[3] 龐中華,崔紅.系統(tǒng)辨識(shí)與自適應(yīng)控制Matlab仿真[M].北京:北京航空航天大學(xué)出版社,2008.
[4] 董寧.自適應(yīng)控制[M].北京:北京理工大學(xué)出版社,2009.
[5] 潘琢金,施國(guó)君.C8051Fxxx高速SoC單片機(jī)原理及應(yīng)用[M].北京:北京航空航天大學(xué)出版社,2002.