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