李華偉
(上海浦東張橋醫用設備有限公司,上海 200129)
PID控制原理作為經典控制理論,其應用十分廣泛,在工、農業生產中主要表現在實現對溫度、濕度、壓力、流量、位移、速度以及加速度等控制對象的調節[1]。本文以典型的溫、濕度控制為對象進行應用分析,闡述比例積分微分(Proportion Integral Differential,PID)控制在醫用凈化空調機組控制系統上的設計實現[2]。醫用潔凈室作為重要的醫療救護場所對環境參數要求較高,為了達到設計的潔凈指標并為醫療救護提供良好的工作環境,設計更加智能化與高可靠性的PID控制器來實現較高的溫、濕度控制水平具有重要意義[3]。
單片機作為一種體積小、功耗低、可靠性高、適用性強以及造價經濟的芯片級計算機,以充當智能控制的核心角色被廣泛應用到人們生活的各個方面。隨著大規模集成電路和系統級芯片(System On Chip,SOC)技術的發展,使得單片機的外設更加豐富,性能更加強大,通用性更強,高效的語言指令和優異的再編程能力能滿足大多數工業自動化儀表及其他人工智能設備的開發需求,為智能控制設備的設計開發奠定了基礎[4,5]。
筆者以潔凈室溫、濕度控制為應用背景,研究了PID控制在單片機系統上的可靠性控制實現原理,并對采樣處理方法和PID算法的改進實現方法進行了重點研究,給出了關鍵算法的C語言程序設計。
醫用潔凈室溫、濕度控制屬于典型的閉環負反饋控制系統,其基本原理為PID控制器通過傳感器采樣潔凈室回風管道內的回風溫、濕度值作為室內反饋值B(S),將采樣的溫、濕度值與設定的給定值R(S)進行比較,取其偏差E(S),執行PID算法程序,輸出模擬調節信號。其中通過溫度調節信號控制閥門開度來控制流經凈化空調熱交換器的媒介流量,以此來實現控制環境溫度的目的;通過濕度調節信號控制凈化空調電極加濕器加濕比例,以此來實現控制環境濕度的目的。系統原理如圖1所示。

圖1 潔凈室溫、濕度控制原理
圖2是醫用潔凈室溫、濕度自動控制原理的簡化模型,該模型便于PID控制算法在單片機系統上實現軟件編程。控制模型圖中的PID控制器是控制系統的核心,作用是對溫、濕度反饋信號進行模擬/數字(Analog/Digital,A/D)采樣、執行PID控制運算和控制調節輸出。PID控制器把設定的溫、濕度值作為系統給定信號R(S),傳感器輸入信號作為溫、濕度反饋信號B(S),二者之間的差值即為控制偏差E(S),控制調節信號U(S)由PID控制器通過計算得到,調節信號經過D/A轉換輸出控制作用對象,以此來實現溫、濕度控制。

圖2 簡化控制模型
圖3是PID控制器的硬件組成,主要由單片機系統、模擬輸入(Analog Input,AI)電路、模擬輸出(Analog Output,AO)電路、數字輸入(Digital Input,DI)電路、數字輸出(Digital Output,DO)電路以及RS485通信接口電路等構成。

圖3 PID控制器的硬件組成
由于模擬輸入電路是控制反饋采樣的前置處理電路,其安全性與可靠性直接影響反饋采樣的可靠性,進而影響PID控制的可靠性,因此模擬輸入接口電路設計非常重要。
圖4為設計的模擬信號輸入電路原理,主要作用是實現PID反饋信號輸入,用于完成溫、濕度反饋及其他輔助功能的模擬信號(直流0~10 V/4~20 mA)輸入。此電路可以實現3類信號輸入,JP1跳線短接時用于實現開關量信號輸入,JP2跳線短接時用于實現直流4~20 mA電流信號輸入,JP1和JP2均開路用于實現直流0~10 V電壓信號輸入,其中運算放大器為電壓跟隨器用法,起到阻抗隔離的作用[6]。

圖4 模擬信號輸入原理
圖5為模擬輸出接口電路原理,實現數字/模擬信號(直流0~10 V)輸出功能,主要作用是實現PID控制調節輸出,其輸出安全性與可靠性直接影響PID控制作用,進而影響PID控制性能。

圖5 模擬信號輸出電路
設計使用TI公司的DAC104S085型10 bit四通道數模轉換器,該芯片采用SPI接口標準,具有轉換精度高、輸出動態特性好、工作電壓寬以及低功耗等特點,能夠滿足PID控制模擬調節輸出的需要。
圖6為數字信號輸入電路,用來實現無源開關量信號輸入,主要作用是采集凈化空調機組的狀態信號,為提高信號抗干擾能力采用光耦合隔離方法。

圖6 數字信號輸入電路
圖7為數字信號輸出電路,主要作用是實現開關信號輸出,實現凈化空調機組的設備啟停等。

圖7 數字量輸出電路原理
圖8為通信電路接口原理。PID控制器設計3路RS485通信接口,分別用于實現人機界面(Human Machine Interface,HMI)通信、輸入輸出(Input Output,IO)模塊擴展和遠程通信監控,其中IO模塊擴展的目的是提高控制器的柔性能力,用以擴展PID控制回路數。

圖8 通信電路接口原理
PID控制的基本原理是對控制目標的偏差E(S)進行比例P(S)、積分I(S)和微分D(S)運算,并將3者進行疊加的一種控制算法。在模擬系統中,PID控制傳遞函數為:

式中:KP為控制比例系數;Ti為積分時間常數;τ為微分時間常數。
在數字系統中,單片機無法實現對模擬信號的不間斷采樣控制,只能根據采樣時刻的控制偏差值來計算控制量,因此模擬傳遞函數中的積分項和微分項都無法直接使用,需要進行離散化處理,以適應單片機系統。
離散化的過程即將描述模擬系統的連續時間t的積分用一系列時刻點的采樣求和代替積分,以差分代替微分,從而簡化得到便于單片機編程實現的離散式PID傳遞函數為:

式中:n為信號采樣序列,n=0,1,2,……;u(n)為第n次采樣時刻的PID控制輸出量;e(n)為第n次采樣時刻的控制偏差量;n(n-1)為第n-1次采樣時刻的控制偏差量;Ti為積分時間常數;Td為微分時間常數;T為采樣周期(兩次采樣的時間間隔)。
從離散PID控制函數可知,兩個連續采樣時刻的控制偏差值E(S)的可靠性決定了控制的可靠性,PID控制函數中KP、Ti以及Td這3個參數的取值決定了PID算法的控制性能。
由于單片機系統受A/D采樣精度和其他抗擾度因素的影響,會因控制反饋采樣誤差而造成控制偏差產生誤差,從而使控制輸出產生誤差。以控制達到穩態時為參考,假設給定參數R(S)不變,采樣參數為B(n),則比例控制環節如下。
第n-1次控制偏差值為:

第n-1次控制比例值為:

第n次控制偏差值為:

第n次控制比例值為:

通過第n次與第n-1次的控制比例計算可知,P(n)的比例系數KP是定值,給定參數R(S)也是定值,比例控制P(n)的輸出大小直接正比于控制偏差E(n)。
則第n次與第n-1次的控制偏差計算變化量為:

比例控制輸出變化量為:

在單片機系統中,即便給定目標參數與反饋輸入信號不變的情況下,由于受單片機A/D采樣精度的影響,因此仍可能會出現對反饋信號B(n)誤差性采樣,這樣就會造成前后兩次比例控制ΔP(n)不為零的情況,越是控制接近穩態時或者精密控制時則E(n)數據越小,也就可能出現控制偏差的誤差占比ΔE(n)/E(n)較大。根據比例控制中比例系數與控制偏差之間的關系可知,比例系數KP越大則控制輸出誤差越大,可能產生的前后兩次控制輸出幅度波動,此種誤差的影響會作用到積分和微分環節,造成控制輸出不穩定,影響控制精度。
另外,控制系統受其他抗擾度的影響,可能會造成單片機在某一時刻采樣時E(n)出現異常偏離變化,從而導致前后兩次計算偏差的誤差ΔE(n)擾動偏大,使PID控制產生擾動性控制動作,輕則產生控制振蕩,重則失控。
為解決以上問題,本文采用滑動濾波法對反饋采樣值處理,起到對采樣數據濾波的作用,間接提高了采樣精度,提高反饋采樣的可靠性,同時使偏差取值得到平滑濾波,使偏差采樣可靠,以此提升PID控制的可靠性和控制精度[7]。
設計深度為10的先進先出隊列(First Input First Output,FIFO),滑動存儲最近連續10次反饋信號A/D采樣數據,用其10次累加值作為當前控制反饋采樣值,每次的A/D采樣值僅占控制采樣數據的10%,使A/D采樣誤差的影響降低,提高了采樣精度和抗信號擾動性,以此確保控制偏差取樣的可靠性,為PID控制可靠性奠定采樣基礎。
PID控制中,比例控制的優點是作用速度快,缺點是取值偏大容易造成控制震蕩,取值偏小會造成穩態誤差大。在控制中根據控制偏差值動態調整比例系數可以達到快速降低控制偏差又不引起控制震蕩的目的,其中積分控制主要用于消除穩態誤差。作用系數固定時,如果控制偏差大,則控制具有階躍性特點,不利于系統穩定;而如果控制偏差小,則控制具有作用強度不夠的可能。在運行中根據控制偏差值反向動態調整積分系數可以快速平穩地消除穩態誤差。微分作用具有預判的特點,降低控制超調量,在控制過程中動態調整系數可以取得良好的微分效果。
由于離散PID控制函數中KP、Ti以及Td的取值決定了PID算法的控制性能,且比例P(S)、積分I(S)和微分D(S)受同一參數KP的作用,各項的調節作用強度具有關聯性,缺乏靈活性,難以充分發揮每項的控制優點[8]。結合以上分析,對此PID函數再次改進,算法為:

式中:u0為控制基準值,是偏差為0時的控制作用。
原來3項共同作用比例系數被3個獨立且運行中可調的參數替代,在運行過程中程序可根據控制偏差大小自動調整3個獨立參數以及各自的作用強度,充分發揮PID控制的每項優點,以此提高PID控制的整體作用性能。
優化后的PID算法占用單片機資源少,易于編程實現。程序設計主要分兩部分:一是A/D采樣處理部分,實現10次A/D采樣滑動濾波累加值作為PID反饋過程數據(Process Value,PV);二是改進PID算法的函數實現設計,采用宏定義的方式定義最大PID回路數,可根據控制需要和SCM隨機存取存儲器(Random Access Memory,RAM)大小定義所需PID回路數,以提高程序利用率,便于應用程序在不同單片機系統間移植。
另外,給定數據(Set Point,SP)的取值范圍需與PV匹配,為了不放大控制偏差值,降低誤差性控制動作并滿足控制計算輸出,運行中3項系數的范圍取0~1。依據改進的PID算法原理設計基于C語言的PID控制程序如下:



實際工程采用STM32單片機系統,按照設計的接口電路系統一起構成PID控制器硬件,在Keil MDK-ARM環境下移植上述改進PID算法編寫的C語言控制程序,依據溫、濕度控制偏差值來調整PID控制的各項控制參數,以此來實現較好的PID控制性能[9,10]。制熱狀態下的溫度控制PID參數差異化賦值管理如下:
實際應用中,在設備負載能力滿足負荷的條件下,工程實際運行能夠實現溫度在17~30 ℃的控制誤差小于0.5 ℃,相對濕度在40%~60%的控制誤差小于3%,具有較好的抗擾動能力,動態調節速度快,控制誤差小。圖9為某醫院控制現場運行時的人機接口(Human Machine Interface,HMI)數據,通過對控制進行動態觀察以及溫、濕度給定值與反饋值的比較可知,控制運行符合設計預期。

圖9 某醫院控制現場運行時的HMI數據
實踐應用表明,以單片機為核心的控制器經過滑動濾波法獲取采樣數據后計算的控制偏差可靠性好,改進的3項系數獨立且運行可調的PID算法能夠提高PID控制的靈活性,利于發揮各項控制的優點。同時此種方案實現了潔凈室溫、濕度控制的目的,為實現凈化功能并提供舒適的醫療救護環境奠定了基礎,對新型智能化PID控制設備的開發具有一定的參考價值。