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