張衛鋒 劉致君 張燦祥
(青島科技大學機電學院 青島266061)
醫學的發展,使人們的生活出現了翻天覆地的變化。我國非常重視人民的醫藥健康問題。政府免費向人民提供部分疫苗,減少人民疾病的發生。疫苗按用途可分為預防性疫苗和治療性疫苗兩種。預防性疫苗的接受者為新生兒或健康個體,用于疾病的預防。治療性疫苗主要用于患病的個體,接受者為患者。但是在疫苗運輸過程中,為保證疫苗的質量,需嚴格控制疫苗的溫度。因疫苗對溫度非常敏感,從疫苗的生產到疫苗的使用,之間每一個環節都可能因為溫度因素使疫苗失效,甚至產生有害物質。針對這一問題,本文設計出了一種基于PID算法的疫苗保溫箱的溫控系統。該系統具有結構簡單、溫控精度高、調溫響應速度快等特點。
在自動控制領域總控制算法得到了很大的發展,大林算法就是其一。大林算法是先設計閉環系統的響應,再反過來綜合調節器的方法[1]。因設計的控制器使閉環系統具有時間滯后的一階慣性環節,且滯后時間與被控對象的滯后時間相同。所以此算法具有消除余差、對純滯后有補償作用等特點[2]。

其 中A=1?e?T Tφ;B=e?T Tφ;C=e?T T1;k=A[K0(1?e?T T1)]。閉環極點?1Tφ決定系統的動態響應。Gc()u在u=1時有極點,即系統對階躍輸入的穩態誤差為零,是由于閉環傳遞函數為慣性環節。因此穩態時E(k)=0。

圖1 單回路控制系統框圖
當閉環響應確定下,可以得到控制器Gc(u)。因閉環響應大多數期望采用一階慣性加純延遲形式。其延遲時間等于對象的延遲時間τ。

式中,Tφ為閉環系統的時間常數,由此而得來的控制規律稱之為大林算法。
該系統采用了傳統PID算法控制結合大林算法控制,并且進行前饋補償。解決了非線性、大滯后、大慣性問題。
單片機選用STM32F103C8T6芯片,STM32F103C8T6有48個引腳,37個外部雙向輸入/輸出(I/O)端口,同時內含4個16位可編程定時計數器,1個12位的ADC,2個比較器、2個16位通用定時器,2個32位通用定時器,2個16位基本定時器,2個16位高級定時器。對于系統數據采集處理等要求,本產品完全滿足。
溫度傳感器選用DS18B20。電路原理圖如圖2所示,DS18B20的DIO引腳與單片機的P2.4引腳連接,進行雙方通信,采用4.7kΩ的電阻上拉。采用外接電源方式供電通過HT7533降壓3.3V給DS18B20芯片供電。

圖2 基于DS18B20數字溫度計電路原理圖
STM32F103C8T6復位電路如圖3所示。

圖3 復位電路
STM32F103C8T6晶振電路4如圖所示。

圖4 晶振電路
STM32F103C8T6串口電路如圖5所示。

圖5 串口電路
STM32F103C8T6的引腳如圖6所示。

圖6 STM32F103C8T6的引腳
DS18B20是一個具有抗干擾能力強,精度高,體積小等特點的12位數字溫度傳感器。其在使用中不需要外圍元件,在一只形如三極管的集成電路內集成了全部的傳感元件及轉換電路元件[3]。適應電壓范圍為3.0V~5.5V,在寄生電源方式下可由數據線供電。并且其能測溫度范圍很大:-55℃~+125℃,在-10℃~+85℃時精度達到了±0.5℃。DS18B20具有獨特的單線接口方式,一條口線即可實現微處理器與溫度傳感器的雙向通訊[5]。芯片分辨率為9位~10位,對應的可分辨溫度為0.5℃、0.25℃、0.125℃和0.0625℃。可以實現高精度測溫。DS18B20的速度非常快,在9位分辨率時把溫度信號轉換成數字最多需要93.75ms,在12位分辨率時把溫度信號轉換成數字最多需要750ms。該傳感器以“一線總線”串行送給CPU,CRC校驗碼可同時傳送,抗干擾糾錯能力極強。同時其具有負壓特性。在本系統中測得的溫度信號在單片機的數碼管上顯示。DS18B20內部有高速暫存器RAM、可電擦除RAM、64位光刻ROM、配置寄存器,確定過溫報警的溫度可以通過設置相關的寄存器來實現。SOSI封裝DS18B20引腳如圖7所示。

圖7 DS18B20引腳
單總線數據接口。NC引腳為懸空。VCC為電源,電壓范圍為3.5V~5.5V。GND引腳為接地。
DS18B20配置寄存器是通過配置不同的位數來確定溫度和數字的轉化。R0和R1是溫度的決定位,決定溫度轉換的精度位數。R0和R1的模式表如表1所示。

表1 R0和R1模式表
因為疫苗保溫箱在運輸途中環境變化很大,在夏季保溫箱里的溫度低,環境和保溫箱有溫度偏差,而且該溫差隨著環境的變化而變化。這樣使得疫苗保溫箱的控制效果受到很大影響。為了有效地抵消類似的干擾,避免出現較大的超調,本系統采用前饋控制。
前饋控制器主要是依據在一定的準確度下不相關的思想,或者依據控制系統的被控量與擾動量完全無關進行的。基本的思路是在擾動出現時能有效的消除干擾對控制對象參數的影響。
根據前饋補償的原理,H(u)和Gc(u)是互為倒數,可假設:

變換得:

根據具體的環境的溫度與預先設定值進行計算前饋控制擾動補償量。為了補償疫苗保溫箱因與環境有溫差而帶來的影響,所系在系統中加入前饋控制。
當系統開始工作時,首先是包括系統時鐘初始化、中斷寄存器設置、A/D以及D/A控制寄存器配置、禁用看門狗等進行系統初始化。然后進行鍵盤掃描,判斷是否有按鍵按下,當有按鍵命令后,通過中斷服務子程序進行相應參數的設置。通過判斷按鍵次進行參數的設置。系統在設置完成后開始采集溫度傳感器實時數據,將其進行顯示并且處理。如圖8所示溫控系統設計主流程圖。

圖8 溫控系統主流程圖

圖9 單片機程序流程圖
在完成軟件硬軟件設計完成后,為了檢測該疫苗保溫箱在實際使用時溫控的誤差以及該裝置在實際應用中溫控的穩定性。用該測溫裝置進行試驗。
1)用精度較高的溫度測試器測量實驗室溫度。測得溫度為22.2℃。該溫控裝置放置在室溫為22.2℃的溫度下。
2)把疫苗保溫箱分別設定為26℃、32℃。兩個設定值,分別記錄時間、保溫箱的溫度。
3)每30s觀測一次溫度值,同時把觀測值和時間記錄下來。數據記錄如表2所示。

表2 實驗數據
試驗可以很好地驗證出該疫苗保溫箱的實用性,檢驗溫控的平穩性以及誤差,達到我們的設計要求。
傳統的溫度控制裝置受外界環境因素影響大,具有大慣性、非線性、大滯后性以及超調現象。該保溫箱的溫控系統PID控制結合大林算法,并且進行前饋補償有效地解決了傳統的溫控裝置的問題。避免了在生活生產中過多的電能消耗,控制不必要的資源浪費。在疫苗運輸過程中對溫度要求嚴格,該保溫箱有效控制了實際溫度與設定溫度的偏差,有效地控制了溫度調節不精確和控制不穩定現象,具有結構簡單、成本低、體積小質量輕、溫控精度高、調溫響應速度快等特點。