本應用筆記討論熱敏電阻在溫度補償中的應用,簡要介紹快速確定最佳電路條件的遺傳算法。通過一個實例可以看出,利用該算法可以很容易得到最佳電阻值和NTC熱敏電阻值,實現(xiàn)特定的電壓溫度關系曲線。
簡介
問題:對于圖1所示電路拓撲,如何獲得電阻值和NTC熱敏電阻值,以實現(xiàn)圖2所示的電壓與溫度關系曲線(注意:或許只能使用標稱值)?
圖1. 熱敏電阻網(wǎng)絡
圖2. 電壓與溫度關系曲線
這個問題也許不會出現(xiàn)在教科書中,但是當采用熱敏電阻網(wǎng)絡對有源元件進行溫度補償時,就會面臨這樣一個實際問題。有人可能會按照圖1電路,通過不斷的電路實驗和無數(shù)個方程的求解來確定方案;有些人可能會將數(shù)值代入仿真器或電子表格,然后通過慢長的調(diào)整后得到盡可能匹配的曲線。
考慮到上述方案涉及到的眾多變量和溫度效應,利用上述任何一種方法尋求這個電路的最佳方案都將充滿挑戰(zhàn)。實際設計中只能采用標稱值,也在一定程度上增加了難度。針對某組條件求解電路方案也許是一種可以接受的途徑,但當條件、網(wǎng)絡或預期響應條件較多時,求解過程就變得單調(diào)乏味。網(wǎng)絡越復雜(為了得到更好的溫度響應),求解最佳方案的過程也更困難或更耗時,甚至無法得到象征性或經(jīng)驗性的數(shù)據(jù)。而利用數(shù)值方法,例如:遺傳算法,可以方便地解決這些問題。
遺傳和電路這兩個詞很少會用在同一場景,但是,如同下文將要看到的,遺傳算法可以用來求解圖1所示電路的元件值。本應用筆記將討論溫度補償時熱敏電阻的使用,并簡要介紹遺傳算法,最后會通過算法的一個實例快速求解上述問題。
熱敏電阻網(wǎng)絡的應用
需要進行溫度補償?shù)南到y(tǒng)大多選用熱敏電阻網(wǎng)絡。比如,熱敏電阻網(wǎng)絡可以用來調(diào)整電源電壓、PWM輸出等,也可以為晶體管、放大器、激光二極管等提供經(jīng)過溫度補償?shù)钠?a href="http://www.1cnz.cn/tags/電流/" target="_blank">電流。熱敏電阻網(wǎng)絡具有如廣泛的應用,而每個應用、每個設備所需要的補償(網(wǎng)絡值)卻不盡相同。
圖2所示范例是光通信鏈路中激光二極管的補償電路。為了保證通信質(zhì)量,激光二極管的偏置電路必須隨著溫度的變化進行調(diào)整。溫度補償后的偏置電流可以采用圖3所示電路注入激光器,但是,為了使目標電壓與溫度一致(圖2),必須確定最佳數(shù)值。通過遺傳算法可以在幾秒鐘內(nèi)找到近乎理想的方案。
圖3. 采用MAX3643突發(fā)模式激光驅(qū)動器的熱敏電阻網(wǎng)絡
遺傳學算法
遺傳算法是一種最優(yōu)化算法,它通過模擬遺傳過程找到解決多變量問題的最佳方案。雖然遺傳算法早在1950年, 1 就被首次使用,但也只是在最近的15到20年,由于計算機技術和處理器速度的發(fā)展,才得到廣泛應用。
按照最簡單形式,算法首先創(chuàng)建一個隨機的群體或一個有預定起始點的群體。群體(圖4)中的每個群體單元(個體)由一列可以確定其結構(其遺傳代碼)的變量組成。一旦群體單元完成初始化,就可以通過一系列標準衡量它的特性,并與其它單元進行比較。群體單元隨后根據(jù)它們的特性進行分類,排名差的個體將被去除(自然淘汰),同時通過混合來自前一代中最佳群體單元的變量(基因代碼)會生成新一代的個體(圖5)。
圖4. 具有K個群體單元,每個單元由N個變量組成的群體示例
圖5. 從上一代到下一代變量(比如遺傳代碼)混合的過程示例
如果過程在完成各步驟后容許循環(huán),那么群體將會很快在一個共同且唯一的遺傳代碼上飽和。由此可以得到一個最小值,但它或許不是總體最小值。為了防止群體飽和或收斂于一個局部的最小值,必須在群體中引入新的隨機單元和對群體單元變量的突變(圖6)。
圖6. 在一代群體中引入隨機單元的過程示例
每個應用中應該引入的隨機因素在頻率和數(shù)量上都不同。如果引入的隨機因素過多,那么算法將無法收斂于一個理想的方案;如果引入的太少,找到總體最小值將會需要很長時間。因此,引入的隨機量應該通過反復試驗調(diào)整,或者當群體飽和度增加時動態(tài)引入更多的隨機性。
還有一些優(yōu)化算法比遺傳學算法速度更快,但是,它們通常對于多變量問題來講編程更加復雜,并且通常收斂于一個局部最小值。遺傳學算法克服了這些問題。
遺傳學算法基于一個隨機過程,所以收斂于一個絕對最佳方案所需的時間也是隨機的。平均收斂時間將會隨著每一個群體單元的變量數(shù)目的增加而增加。對于某些應用來講,針對某個特定情況確定、計算特性標準也很困難。簡而言之,有時很難用方程式表示出最佳方案。對于簡單的有源電路,比如圖1所示的熱敏電阻電路,可以很好地定義并很容易寫出特征標準。考慮到變量數(shù)量,在一個合理的時間段內(nèi)就可以找到解決方案。因此,遺傳學算法很適合解決這種類型的電路。
實例
利用免費的visual basic編譯器,2 可以通過一段例程求解熱敏電阻網(wǎng)絡值(圖1),使其與圖2所需的響應匹配。本例的源程序和可執(zhí)行文件可供下載。
軟件采用的算法基于下面的基本步驟:
將可用的電阻值和熱敏電阻值定義為每個群體單元的可能變量,為可用的電阻和可用的熱敏電阻分別定義一個數(shù)組。
建立個體的一個隨機群體(對于本例,群體應該包含有100個單元)。每個群體單元就是一個數(shù)組,其中包含電路中(圖1)每個元件的入口。
使不同溫度下網(wǎng)絡所需的電壓值或電阻值與之相等,畫出響應特性;然后將所需的電壓值/電阻值代入多項式方程代碼中。
計算每個群體單元的均方根誤差
從最低誤差到最高誤差將群體排序,用圖形表示最佳方案。
去除最差方案,然后隨機或系統(tǒng)地將剩余單元組合,生成下一代群體單元。
通過引入新的隨機群體單元或者通過隨機改變一個或者多個現(xiàn)有群體單元的一個或多個變量來引入隨機性。
返回步驟4并重復,直至均方根差足夠低,用戶決定停止這一過程。
到了這一步您也許會提出疑問:"如何解決網(wǎng)絡值問題?"。如同遺傳和進化一樣,這個方案是從一個狀態(tài)"成長"到另一個狀態(tài)。最佳方案本質(zhì)上就是針對環(huán)境(所需的電流響應)的最佳遺傳代碼(電路元件值)。如果仍然感到困惑,那么好吧,通過下面的實例結果很快就會消除您的擔憂。
圖7所示為軟件的圖形用戶界面。通過這個界面,可以選取熱敏電阻網(wǎng)絡的配置,并通過一個多項式輸入預期的響應。可以通過選擇求解所有的電阻或某個電壓,需要優(yōu)化的溫度范圍以及是否選用1%或5%倍增電阻值。點擊"Run"按鈕開始算運行算法。隨著程序的運行,均方根誤差、迭代次數(shù)以及當前最佳方案的元件值都會不斷更新。
圖7. 應用軟件簡化了求解熱敏電阻值與所需響應匹配的過程
同時還會生成預期的響應曲線(綠色)和當前最佳的方案曲線(紅色)。圖8所示為計算機運行30次迭代后的圖形輸出。從圖中可以看到,響應并不理想。圖9為經(jīng)過500次迭代后得到的一個非常好的響應,大概需要10秒鐘。可以需要稍微暫停一下,然后繼續(xù)運行程序,圖10所示為運行結果,它已經(jīng)近乎完全匹配。
圖8. 經(jīng)過30次迭代后實際與預期的電壓溫度關系曲線
圖9. 經(jīng)過500次迭代后實際與預期的電壓溫度關系曲線
圖10. 實際與預期的電壓溫度關系曲線非常匹配
以圖1為例,方案中包含下列元件值:
R1 = 8.2k, R2 = 3.6k, R3 = 2.2k, R4 = 1.1k
TH1 = 47k Beta = 4700, TH2 = 40 Beta = 2750
不同測試,收斂速度也不一樣。對于較簡單的網(wǎng)絡收斂速度較快,對于稍復雜的網(wǎng)絡,或者使用了1%電阻值,因為有更多的變量可供選擇,所以通常需要的收斂時間較長。
考慮到上述所有因素,由兩個熱敏電阻和四個電阻組成的網(wǎng)絡,在只使用標稱值情況下,可以在不到30秒的時間內(nèi)近似匹配預期的溫度響應。
如果您仍然對遺傳學算法解決電路問題感到疑惑,請下載程序,親自嘗試一下。您可能會對遺傳學算法在熱敏電阻網(wǎng)絡方案中的快速求解過程感到驚訝。
審核編輯:郭婷
-
放大器
+關注
關注
143文章
13583瀏覽量
213368 -
NTC
+關注
關注
7文章
424瀏覽量
52045 -
晶體管
+關注
關注
77文章
9682瀏覽量
138084
發(fā)布評論請先 登錄
相關推薦
評論