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