本發(fā)明涉及屬于工業(yè)自動控制領域,尤其涉及一種基于滑窗預估的恒溫箱溫控算法。
背景技術(shù):
恒溫箱的設計目的主要是為了給原子鐘提供一個溫度變化較小的環(huán)境,以提高原子鐘的頻率準確度。原子鐘產(chǎn)生和保持標準時間頻率信號,決定著時間頻率系統(tǒng)的精度,是時頻系統(tǒng)的核心。原子鐘是量子物理學與電子學高度結(jié)合的產(chǎn)物,具有極高的精密性。但眾所周知,精密儀器對其所處物理環(huán)境的要求也極苛刻的。尤其是作為精度要求負12量級的原子鐘,對于外部的溫度,壓力,濕度等物理環(huán)境都有一定要求。尤其是溫度,溫度的快速變化會對原子鐘的頻率穩(wěn)定度產(chǎn)生較大影響。在溫差較大的環(huán)境中工作,銣原子鐘的守時精度會受到較大影響。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的在于提供一種基于滑窗預估的恒溫箱溫控算法,在傳統(tǒng)PID算法的基礎上,通過滑窗預估消除一定的滯后性,做到高精度控溫,保證了銣原子鐘的守時精度。
一種基于滑窗預估的恒溫箱溫控算法,依次包括以下步驟:
1)采用溫度傳感器測量恒溫箱內(nèi)的實際溫度,若測得的實際溫度與目標溫度差值小于預設值a,則進入步驟2);若測得的實際溫度大于預設值a,恒溫箱內(nèi)的半導體全速工作至實際溫度與目標溫度差值小于預設值a,然后進入步驟2);
2)粗調(diào):利用PID算法控制產(chǎn)生的PWM波的占空比,從而控制恒溫箱內(nèi)的半導體對實際溫度進行調(diào)節(jié),使實際溫度在目標溫度周圍正弦波動,檢測到實際溫度的上下浮動相對穩(wěn)定N個周期,或檢測到實際溫度上浮與下浮相對穩(wěn)定,則進入步驟3);
3)根據(jù)滑窗法連續(xù)取得間隔為b的恒溫箱溫差,計算實際溫度曲線的切線斜率,得到恒溫箱實際溫度變化的trend值;得到目標溫差值、PID算法中的I值和D值,進入步驟4);
4)精調(diào):根據(jù)公式Δt/ΔT*ki/kd=e^(-τt)進入精調(diào)階段;其中:Δt為trend值,ΔT為與目標溫差值,ki為PID算法中的I值,kd為PID算法中的D值;
基于I值不變,計算D值;帶入計算得出的D值與修正量,依據(jù)PID算法完成PID到PWM的占空比值的轉(zhuǎn)化,通過PWM波占空比控制溫度變化。
進一步,在步驟4)中,若ΔT>1,且Δt/ΔT>15;則放棄精調(diào),進入粗調(diào),粗調(diào)完畢后,再重復步驟4),直到完成恒溫控制。便于提高調(diào)解效率。
進一步,時間間隔b為20S。
進一步,預設值a為2℃。
進一步,在步驟2)中,N為3~5。
與現(xiàn)有技術(shù)相比本發(fā)明的優(yōu)點是:
(1)本發(fā)明通過滑窗取得的trend值具有連續(xù)性,在后期計算PID時不會因為階躍性導致半導體制冷片工作方向改變,雖然加入了預估的修正參量,但是實際上沒有改變PID的基礎原理和走勢,即不會出現(xiàn)階躍,不會使PWM工作的方向突變,具有現(xiàn)實可靠性,是一種連續(xù)的細微的漸變的調(diào)節(jié)。
(2)本發(fā)明采用了粗調(diào)與精調(diào)兩種模式,使得系統(tǒng)上電到控溫完成的過程更加迅速。粗調(diào)階段只負責將箱內(nèi)溫度送到目標溫度附近波動即可。這個過程不加入滯后性的考慮,使得控制變得更加快捷。精調(diào)階段,則是負責把溫度控制到要求的高精度以內(nèi),此時再加入預估變量,提高精度。兩種模式相輔相成,使得控溫過程變得快捷,高效。
(3)本系統(tǒng)基于滑窗預估的恒溫箱溫控算法和實現(xiàn)。粗調(diào)和精調(diào)兩個階段可以通過條件的變化,相互切換,不一而足。模式并非固定的由粗到精,而是更具調(diào)節(jié)可以相互轉(zhuǎn)化,直到最終通過精調(diào)節(jié)時溫度趨于穩(wěn)定。若ΔT>1,同時Δt/ΔT>15,則放棄精細調(diào)節(jié),再次進入粗調(diào)節(jié)階段。這樣的算法設計可以在溫度發(fā)現(xiàn)突變時,有一定的伸縮能力,避免精調(diào)節(jié)下,出現(xiàn)溫度突變,導致需要很長時間去完成收斂。
附圖說明
為了更清楚地說明本發(fā)明實施例的技術(shù)方案,下面將對實施例中所需要使用的附圖作簡單地介紹,應當理解,以下附圖僅示出了本發(fā)明的某些實施例,因此不應看作是對范圍的限定,對于本領域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其它相關的附圖。
圖1為本發(fā)明的流程示意圖。
圖2為本發(fā)明中,粗調(diào)時溫度與時間的變化示意圖。
圖3為本發(fā)明中,粗精調(diào)時溫度與時間的變化示意圖。
具體實施方式
在本發(fā)明的描述中,除非另有明確的規(guī)定和限定,術(shù)語“安裝”、“相連”、“連接”、“固定”等術(shù)語應做廣義理解,例如,可以是固定連接,也可以是可拆卸連接,或成一體;可以是機械連接,也可以是電連接;可以是直接連接,也可以是通過中間媒介間接相連,可以是兩個元件內(nèi)部的連通或兩個元件的相互作用關系。對于本領域普通技術(shù)人員而言,可以根據(jù)具體情況理解上述術(shù)語在本發(fā)明中的具體含義。
參閱圖1,在本實施例中:一種基于滑窗預估的恒溫箱溫控算法,環(huán)境溫度為14攝氏度,目標溫度為8攝氏度,箱內(nèi)起始溫度為35攝氏度。系統(tǒng)上電后,主要包括以下步驟:
步驟1):通過溫度傳感器ADT7410連續(xù)獲取箱內(nèi)溫度,若測得的實際溫度與目標溫度差值小于2℃,則進入步驟2);若測得的實際溫度大于2℃,恒溫箱內(nèi)的半導體全速工作至實際溫度與目標溫度差值小于2℃,然后進入步驟2)。
步驟2):利用PID算法首先求取PID_VOL值,根據(jù)公式PWM_vol=K*(Pid_vol/Max)*PWM_Max,將設備的狀態(tài)值計算得到的PID轉(zhuǎn)化為PWM波的方向系數(shù)和占空比系數(shù),即不考慮滯后性,將箱內(nèi)溫度調(diào)到目標溫度附近,連續(xù)收斂3到5個周期,使得導熱介質(zhì)溫度與目標溫度之間溫差相對較小,即完成粗調(diào)階段。
粗調(diào)階段的PID算法公式如下所示:
Pid.err=Pid.Actual_temp-Pid.Set_temp (1)
Pid.err_last=pid.err (3)
Pid.voltage=Pid.Kp*Pid.err+Pid.Ki*Pid.integral+Pid.Kd*(Pid.err-Pid.err_last) (4)
其中,Kp,Ki,Kd為比例系數(shù),Pid.err是前后兩次采樣的溫差,Pid.integral為溫度與目標溫度溫差的近似積分,即多次溫差的累積量。
粗調(diào)階段如圖2所示,橫坐標為時間(S),縱坐標為溫度(℃)。kp代表的是從系統(tǒng)上電到接近目標溫度這一段近似線性曲線的斜率,Kp越到,斜率越大,溫度降更快接近目標溫度,但同時也會造成過沖變大,使得后期收斂時間變長。Ki表示大于目標溫度或者小于目標溫度的部分的累積面積,Ki越大面積越大,兩部分面積也越接近,ki越小,面積比例誤差越大。Kd表示收斂階段的伸縮性,Kd越大,同面積下,圖像越被拉伸,溫度越接近目標溫度,誤差越小。PID粗調(diào)階段的三個參數(shù)相輔相成,共同完成溫度調(diào)節(jié)的曲線如圖2所示。
步驟3):根據(jù)滑窗法連續(xù)取得間隔為20S的恒溫箱溫差,(恒溫箱溫差為當前溫度與目標溫度的差值),計算實際溫度曲線的切線斜率,得到恒溫箱實際溫度變化的trend值;得到目標溫差值、PID算法中的I值和D值。
利用粗調(diào)節(jié)模式將溫度控制到目標溫度周圍正弦波動,并使波動持續(xù)3到5個周期,測定trend值。trend值的計算方式如下:
1)連續(xù)取定20S的溫度,做成一個集合。
2)然后利用滑窗法,每有一個溫度值進入集合,則剔除一個溫度值。
3)將集合內(nèi)的溫度值的最大與最小做差值,計算切線斜率,此斜率為引入溫度時的trend值,不斷取定trend值,得到一個trend的集合。
4)trend用于判定系統(tǒng)的調(diào)節(jié)狀態(tài),或者用于后續(xù)調(diào)節(jié)的預估值。
進入精調(diào)節(jié)的標志是trend值小于0.8,同時Δt/ΔT<12,則系統(tǒng)可以進入精調(diào)節(jié)階段。進入精調(diào)節(jié)階段,引入預估值trend對PID算法的修正,將trend值引入PID系統(tǒng)中進行預估修正。
trend的判定分為2類:
1)trend值小于0.8,同時Δt/ΔT<12。為粗調(diào)節(jié)后,進入精調(diào)節(jié)的判定標志。
2)trend值大于1,同時Δt/ΔT>15。為精調(diào)節(jié)中出現(xiàn)較大溫度波動,無法繼續(xù)精調(diào)節(jié),轉(zhuǎn)而進入粗調(diào)節(jié)的判定標志。
步驟4):精調(diào):根據(jù)公式Δt/ΔT*ki/kd=e^(-τt)進入精調(diào)階段;其中:Δt為trend值,ΔT為與目標溫差值,ki為PID算法中的I值,kd為PID算法中的D值。
基于I值不變,計算D值;帶入計算得出的D值與修正量,依據(jù)PID算法完成PID到PWM的占空比值的轉(zhuǎn)化,通過PWM波占空比控制溫度變化。
進入精調(diào)階段,PID在算法上的滯后性,明顯不足以達到高精度的溫控。在精調(diào)階段,通過滑窗計算每20S的切線斜率trend,同時獲取溫度的變化值ΔT,利用(Δt)/ΔT*ki/kd=e^(-τt)(其中Δt即為trend值),獲取ki不變下的kd值,用于修正PID算法中的參數(shù)。通過trend的不斷變化,獲取的kd也在漸變,使得PID算法變成一種動態(tài)的預估算法,將PID三個參數(shù)中的兩個參數(shù)通過比值的關系聯(lián)系在一起,與溫度變化趨勢呈線性變化,實時動態(tài),完成PID算法的精調(diào)階段。
PID精調(diào)如圖3所示。粗調(diào)之后引入滑窗預估,將PID參數(shù)進行修正,用預估的方式將Ki/Kd的比值與溫度變化趨勢聯(lián)系在一起。從而動態(tài)的修正恒溫控制系統(tǒng)的滯后性。圖3為粗調(diào)節(jié)之后的精調(diào)節(jié)過程,可以看到,在500S之后的很長一段時間內(nèi),溫度基本保持的0.2℃左右的變化。在1800-2300區(qū)間內(nèi),由于傳感器度值的最大誤差有0.5℃,使測量溫度發(fā)生跳變,從而使控溫系統(tǒng)的預估出現(xiàn)錯誤,溫度跳變后立刻產(chǎn)生一定程度的溫升,從另一方面也證實了本系統(tǒng)對溫度變化的預估反饋是及時有效的。若剔除溫差點,溫度能達到0.1-0.2℃的溫度精度內(nèi)。
得到PID算法的值,依據(jù)公式PWM_Vol=K*(Pid_vol/Max)*PWM_MAX(該公式中K為溫度修正參數(shù),是一個常數(shù),針對結(jié)構(gòu)環(huán)境的保溫性設定,理論上零熱量交換的系統(tǒng)中,K=1。PWM_Max為PWM分頻之后的一個周期參數(shù)),依據(jù)該公式,將計算得到的動態(tài)PID值轉(zhuǎn)化為修正后的PWM值,該值即為PWM工作的占空比大小。通過控制占空比大小,即可控制半導體制冷片工作時間,從而調(diào)節(jié)恒溫箱內(nèi)部溫度。
trend的修正:
通過PID算法的基本原理,我們可以得知PID是一種具有明顯滯后性的自動控制算法,且PID的計算結(jié)果和PWM波的占空比在理論上是線性關系。同理,引入trend的修正值,只為修正PID的I/D值參數(shù),并未涉及到改變PID算法,而是通過trend的引入將PID值原本的靜態(tài)參數(shù)改變?yōu)榕c預估值有關動態(tài)參數(shù),建立預估與調(diào)節(jié)之間的新關系,所以預估值trend與最終結(jié)果同理為理論上的線性關系。針對溫控系統(tǒng)的隔熱性能各有不同,用此參數(shù)修正實際情況與理論值之間的偏差。通過理論分析以及實驗研究,
PWM_Vol=K*(Pid_vol/Max)*PWM_MAX (6)
K=1時,為理論中0散熱量時,恒溫箱半導體制冷片的PWM波的占空比經(jīng)trend修正后的值。根據(jù)適用系統(tǒng)的不同,K值應該隨系統(tǒng)隔熱性的變化而變化,但始終應大于1。假設隔熱性系數(shù)為M,理論情況上的隔熱保溫系數(shù)為1,則有M*K=1。在本系統(tǒng)中,測定的M為0.76。
本發(fā)明,應用于高精度的可維修微型恒溫箱制作。主要目的是為了提高時頻工業(yè)中原子鐘的精度要求,原子鐘的頻率準確度引外界環(huán)境會產(chǎn)生較大影響,尤其溫度影響尤甚。恒溫箱體的設計必須考慮的銣鐘的拆卸更換,勢必影響其保溫系數(shù)。故算法主要針對較低隔熱系統(tǒng)的高精度控溫。
以上所述僅為本發(fā)明的具體實施例,但本發(fā)明的技術(shù)特征并不局限于此,任何本領域的技術(shù)人員在本發(fā)明的領域內(nèi),所作的變化或修飾皆涵蓋在本發(fā)明的專利范圍之中。