摘 要: 提出了一種基于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)值的偏差求出控制增量輸出,,使被控對象能快速達(dá)到目標(biāo)值并保持。所有數(shù)據(jù)通過串口發(fā)送至PC保存,,以便進(jìn)行進(jìn)一步數(shù)據(jù)分析,。
關(guān)鍵詞: C8051F020;PID,;參數(shù)自整定
隨著航空航天,、工業(yè)控制和各種過程控制的發(fā)展,對被控對象的控制要求越來越高,。PID控制器因結(jié)構(gòu)簡單,、容易實(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ù)被控對象數(shù)學(xué)模型及控制要求快速整定出PID控制器參數(shù),,從而完成控制器設(shè)計(jì),,最終實(shí)現(xiàn)控制要求。
可通過在Matlab中以被控對象的數(shù)學(xué)模型和控制要求作為已知條件求出PID控制器參數(shù),,將參數(shù)編入單片機(jī)程序中,,或通過上位機(jī)由串口設(shè)置,完成設(shè)計(jì)任務(wù),。
1 自校正PID算法
常規(guī)PID控制系統(tǒng)圖[2]如圖1所示,。
自校正PID控制應(yīng)用在已知被控對象數(shù)學(xué)模型和控制目標(biāo)的情況下,通過自校正PID算法可快速求出自校正PID控制器參數(shù),。自校正PID控制器的設(shè)計(jì)思路是:通過系統(tǒng)對象離散傳遞函數(shù)的參數(shù)按自校正的極點(diǎn)配置法進(jìn)行控制器參數(shù)的設(shè)計(jì),。下面介紹PID控制器的設(shè)計(jì)過程[3]。
設(shè)所調(diào)整的被控對象為:
(1)輸入輸出調(diào)理電路:工業(yè)控制系統(tǒng)中信號的傳送是通過電流信號實(shí)現(xiàn)的,,其范圍為4 mA~20 mA,。則輸入信號調(diào)理電路的功能為將4 mA~20 mA的電流信號轉(zhuǎn)化為電壓信號,輸出信號調(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)串口通信電路:單片機(jī)和PC通過串口電路進(jìn)行通信,可在PC上實(shí)現(xiàn)對當(dāng)前情況的實(shí)時(shí)監(jiān)控,,并可通過串口設(shè)置,。
(5)按鍵電路:通過中斷按鍵電路對最終控制的目標(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ù)被控對象表達(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)警,請求進(jìn)行人工處理,。
系統(tǒng)可通過按鍵對最終控制的目標(biāo)設(shè)定值進(jìn)行修改,。兩個(gè)按鍵對程序中預(yù)設(shè)的目標(biāo)值進(jìn)行步進(jìn)加和步進(jìn)減,,采用中斷方式完成功能,。
5 實(shí)驗(yàn)結(jié)果及測試
液位控制是一個(gè)比較傳統(tǒng)的被控對象,因此將液位控制作為設(shè)計(jì)PID參數(shù)自整定控制器的驗(yàn)證被控對象。系統(tǒng)驗(yàn)證的實(shí)驗(yàn)設(shè)備使用東南大學(xué)過程控制實(shí)驗(yàn)室的液位控制設(shè)備,,該裝置原理圖如圖5所示,。
從圖6、圖7可以看出,,被控對象能較快速地達(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)辨識與自適應(yīng)控制Matlab仿真[M].北京:北京航空航天大學(xué)出版社,,2008.
[4] 董寧.自適應(yīng)控制[M].北京:北京理工大學(xué)出版社,,2009.
[5] 潘琢金,施國君.C8051Fxxx高速SoC單片機(jī)原理及應(yīng)用[M].北京:北京航空航天大學(xué)出版社,,2002.