完整的設(shè)計論文下載:
2013全國電子設(shè)計競賽AC-DC變換電路(A題)設(shè)計報告 (1).doc
(623.5 KB, 下載次數(shù): 77)
2016-10-16 23:34 上傳
點擊文件名下載附件
doc 下載積分: 黑幣 -5
下面是部分內(nèi)容預(yù)覽:
2013年全國大學生電子設(shè)計競賽 單相AC-DC 變換電路(A題) 【本科組】
2013年9月7日 摘要:本設(shè)計利用PFC控制系統(tǒng)和51單片機控制系統(tǒng),通過對電路系統(tǒng)實施監(jiān)控和調(diào)整,來達到對電路性能的提升,以保證電路輸出滿足題目要求,負載電壓誤差不超過±0.1V,負載調(diào)整率和電壓調(diào)整率均不超過0.5%,功率因數(shù)在95%以上。并且能夠使電路在出現(xiàn)過流時能系統(tǒng)斷電,實現(xiàn)保護,保證整個電路系統(tǒng)安全、高效的運行。 關(guān)鍵詞:PFC控制,單片機控制,自行校正 目 錄 1.設(shè)計任務(wù).... 5 2.設(shè)計要求.... 5 2.1基本要求... 5 2.2發(fā)揮部分... 5 3.設(shè)計方案評定與選擇.... 6 方案一:... 6 方案二:... 6 方案三:... 6 4.單元模塊設(shè)計.... 7 4.1 AC/DC電源模塊... 7 4.2 Boost升壓模塊... 7 4.2.1Boost升壓結(jié)構(gòu)特性分析... 7 4.2.2 樣機電路設(shè)計... 9 4.2.3儲能電感L. 10 4.2.4 輸出電壓取樣電阻R1、R2. 11 4.2.5 開關(guān)S. 11 4.2.6 輸出二極管D和輸出電容器C2. 11 4.2.7 外補償網(wǎng)絡(luò)... 11 4.2.8 斜坡補償... 12 4.3 功率因數(shù)校正模塊... 14 4.4 功率因數(shù)測量模塊... 14 4.5 電路保護模塊... 15 4.6 89C54單片機控制模塊... 15 4.7 LCD液晶顯示模塊... 15 4.7.1液晶顯示原理... 15 4.7.2引腳功能說明... 16 4.7.3 1602液晶模塊的指令(說明:1為高電平、0為低電平)... 16 4.8 直流電源供電模塊... 17 5.程序設(shè)計.... 17 6.系統(tǒng)調(diào)試與分析.... 18 6.1測試儀器:... 18 6.2 硬件調(diào)試... 18 6.3 軟件調(diào)試... 18 6.4 軟硬聯(lián)調(diào)... 19 6.5結(jié)果分析(系統(tǒng)對題目完成情況)... 19 7.結(jié)束語.... 19 參考文獻:.... 19 附錄一:控制電路.... 20 附錄二:源程序.... 20
單相AC-DC 變換電路(A題) 【本科組】 1.設(shè)計任務(wù)設(shè)計并制作如圖1 所示的單相AC-DC變換電路。輸出直流電壓穩(wěn)定在36V,輸出電流額定值為2A。 file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image004.jpg 圖1 單相AC-DC 變換電路原理框圖 2.設(shè)計要求2.1.基本要求 (1)在輸入交流電壓Us=24V、輸出直流電流Io=2A 條件下,使輸出直流電壓Uo=36V±0.1V。 (2)當Us=24V,Io在0.2A~2.0A 范圍內(nèi)變化時,負載調(diào)整率SI ≤ 0.5%。 (3)當Io=2A,Us在20V~30V 范圍內(nèi)變化時,電壓調(diào)整率SU ≤ 0.5%。 (4)設(shè)計并制作功率因數(shù)測量電路,實現(xiàn)AC-DC 變換電路輸入側(cè)功率因數(shù)的測量,測量誤差絕對值不大于0.03。 (5)具有輸出過流保護功能,動作電流為2.5A±0.2A。 2.2.發(fā)揮部分 (1)實現(xiàn)功率因數(shù)校正,在Us=24V,Io=2A,Uo=36V 條件下,使AC-DC 變換電路交流輸入側(cè)功率因數(shù)不低于0.98。 (2)在Us=24V,Io=2A,Uo=36V條件下,使AC-DC 變換電路效率不低于95%。 (3)能夠根據(jù)設(shè)定自動調(diào)整功率因數(shù),功率因數(shù)調(diào)整范圍不小于0.80~1.00,穩(wěn)態(tài)誤差絕對值不大于0.03 3.設(shè)計方案評定與選擇89C52單片機控制模塊、LCD液晶顯示模塊、按鍵控制模塊、直流電源供電模塊組成。在本設(shè)計中,核心采用PFC校正技術(shù),因此重點對PFC控制方案的選取進行論證。 方案一:使用PWM斬波后利用高頻變壓器隔離升壓的方案。該方案電路原理簡單,所需元器件少,方便焊接。但由于高頻變壓器的加工設(shè)計等問題,改進難度大,使用受到限制,而且其電壓需要高頻整流濾波,電壓毛刺較大,精度低,所以不用該方案。 方案二:選用TI公司的UC3854。UC3854封裝引腳多,從而導(dǎo)致應(yīng)用電路復(fù)雜,線路之間的干擾較大,因此產(chǎn)品的噪聲較大。對焊接工藝要求較高,而且調(diào)試電路的難度較大。UC3854 組成的PFC 電路還需要調(diào)節(jié)電壓放大器電流、放大器和乘法器。 方案三:采用帶PFC的Boost型DC—DC升壓器。該電路有專用的控制芯片,容易實現(xiàn),電路結(jié)構(gòu)簡單,同時采用PFC功率因數(shù)校正技術(shù),功耗低,輸出電壓范圍寬。輸出電壓波形中毛刺也比方案一要小。選用TI公司的UCC28019。UCC28019交流輸入市電電流總諧波畸變率低,功率校正因數(shù)高,抗干擾能力強,封裝引腳較少,PFC控制部分電路相對簡單。只需調(diào)節(jié)一個放大器的補償網(wǎng)絡(luò)即可, 高壓起動源直接接在高壓輸入端,光耦直接接到IC 的端子,不再處理放大器的補償,前沿消隱做在IC 內(nèi)部,IC 外部只有電流取樣。這樣的做法使設(shè)計的步驟減少了。 綜合比較,選擇方案三。 方案流程圖如圖2所示 file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image006.gif 圖2 方案流程圖 4.單元模塊設(shè)計4.1 AC/DC電源模塊 自耦變壓器是輸出和輸入共用一組線圈的特殊變壓器。通過改變初、次級的線圈匝數(shù)比的關(guān)系來改變初、次級線圈端電壓,實現(xiàn)電壓的變換。由于初級和次級線圈直接相連,致使會有跨級漏電的危險。 隔離變壓器是一種1/1的變壓器,它的輸出端跟輸入端是完全“斷路”隔離的,這樣就有效的對變壓器的輸入端起到了一個良好的過濾作用,從而給用電設(shè)備提供了純凈的電源電壓。加之它的次級不與大地相連,任意兩線與大地之間沒有電位差,人接觸任意一條線都不會發(fā)生觸電,這樣就比較安全。 由于MOSFET管工作時頻繁的開關(guān),因此對電路的干擾較大,在整流電路前加入EMI濾波電路,從而達到降低噪聲的作用。設(shè)計中還加入了壓敏電阻VAR1,當電路中回路電流過大時,壓敏電阻VAR1閉合保險絲F1熔斷從而達到保護電路的目的。當輸入為220V交流電壓時,首先經(jīng)過隔離變壓器降至18V左右交流電壓。再經(jīng)過保護和濾波后輸出端接入整流橋,整流部分選用了全波橋式整流電路,輸出為直流電壓。在選擇二極管時,其額定正向電流必須大于流過它的平均電流ID,其反向擊穿電壓必須大于它兩端承受的最大反向電壓VRM 。由此確定整流二極管的參數(shù)。 利用上述特點,按自耦變壓器、隔離變壓器和橋式整流器的順序?qū)⑷哌B接起來,就夠成了一個可調(diào)、濾波、安全的AC/DC降壓模塊,如圖3所示。 file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image008.jpg 圖3 AC/DC降壓模塊 4.2 Boost升壓模塊4.2.1Boost升壓結(jié)構(gòu)特性分析 Boost升壓電路,可以工作在電流斷續(xù)工作模式(DCM)和電流連續(xù)工作模式(CCM)。CCM工作模式適合大功率輸出電路,考慮到負載達到10%以上時,電感電流需保持連續(xù)狀態(tài),因此,按CCM工作模式來進行特性分析。Boost拓撲結(jié)構(gòu)升壓電路基本波形如圖3所示 file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image010.jpg 圖4 Boost升壓電路基本波形 ton時,開關(guān)管S為導(dǎo)通狀態(tài),二極管D處于截止狀態(tài),流經(jīng)電感L和開關(guān)管的電流逐漸增大,電感L兩端的電壓為Vi,考慮到開關(guān)管S漏極對公共端的導(dǎo)通壓降Vs,即為Vi-Vs。ton時通過L的電流增加部分△ILon滿足式(1)。
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image012.giffile:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image014.gif (1) 式中:Vs為開關(guān)管導(dǎo)通時的壓降和電流取樣電阻Rs上的壓降之和,約0.6~0.9V。
toff時,開關(guān)管S截止,二極管D處于導(dǎo)通狀態(tài),儲存在電感L中的能量提供給輸出,流經(jīng)電感L和二極管D的電流處于減少狀態(tài),設(shè)二極管D的正向電壓為Vf,toff時,電感L兩端的電壓為Vo+Vf-Vi,電流的減少部分△ILoff滿足式(2)。 file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image016.gif file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image012.gif(2)
式中:Vf為整流二極管正向壓降,快恢復(fù)二極管約0.8V,肖特基二極管約0.5V。
在電路穩(wěn)定狀態(tài)下,即從電流連續(xù)后到最大輸出時,△ILon=△ILoFf,由式(1)和(2)可得 file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image018.gif (3) 因占空比file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image020.gif,即最大占空比file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image022.gif file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image024.gif (4) 如果忽略電感損耗,電感輸入功率等于輸出功率,即 file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image026.gif (5) 由式(4)和式(5)得電感器平均電流 file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image028.gif (6) 同時由式(1)得電感器電流紋波 file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image030.gif (7) 式中:f為開關(guān)頻率。為保證電流連續(xù),電感電流應(yīng)滿足 file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image032.gif (8) 考慮到式(6)、式(7)和式(8),可得到滿足電流連續(xù)情況下的電感值為 file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image034.gif (9)
另外,由Boost升壓電路結(jié)構(gòu)可知,開關(guān)管電流峰值Is(max)=二極管電流峰值Id(max)=電感器電流峰值ILP, file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image036.gif (10) 開關(guān)管耐壓 file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image038.gif (11) 二極管反向耐壓file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image040.gif (12) 4.2.2 樣機電路設(shè)計樣機的電路圖如圖2所示,是基于UCC28019控制的升壓式DC/DC變換器。電路的技術(shù)指標為:輸入Vi=18V,輸出Vo=30V、Io=2A,頻率f≈49 kHz,輸出紋波噪聲1%。根據(jù)技術(shù)指標要求,結(jié)合Boost電路結(jié)構(gòu)的定性分析,對圖5的樣機電路設(shè)計與關(guān)鍵參數(shù)的選擇進行具體的說明。 file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image042.jpg 圖5 Boost升壓模塊 4.2.3儲能電感L
根據(jù)輸入電壓和輸出電壓確定最大占空比。由式(4)得 DMAX≈file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image044.gif=file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image046.gif=0.4當輸出最大負載時至少應(yīng)滿足電路工作在CCM模式下,即必須滿足式(9), L≥file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image048.gif=file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image050.gif=220μH同時考慮在10%額定負載以上電流連續(xù)的情況,實際設(shè)計時可以假設(shè)電路在額定輸出時,電感紋波電流為平均電流的20%~30%,因增加△IL可以減小電感L,但為不增加輸出紋波電壓而須增大輸出電容C2,取30%為平衡點,即 file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image052.gif 流過電感L的峰值電流由式(10)得 file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image054.gif
L可選用電感量為200~500μH且通過4.5A以上電流不會飽和的電感器。電感的設(shè)計包括磁芯材料、尺寸選擇及繞組匝數(shù)計算、線徑選用等。電路工作時重要的是避免電感飽和、溫升過高。磁芯和線徑的選擇對電感性能和溫升影響很大,材質(zhì)好的磁芯如環(huán)形鐵粉磁芯,承受峰值電流能力較強,EMI低。而選用線徑大的導(dǎo)線繞制電感,能有效降低電感的溫升。 4.2.4 輸出電壓取樣電阻R1、R2因UCC28019的腳2為誤差放大器反向輸入端,芯片內(nèi)正向輸入端為基準2.5v,可知輸出電壓Vo=2.5(1+R1/R2),根據(jù)輸出電壓可確定取樣電阻R1、R2的取值。由于儲能電感的作用,在開關(guān)管開啟和關(guān)閉時會形成大的尖峰電流,在檢測電阻Rs上產(chǎn)生一個尖峰脈沖,為防止造成UC3842的誤動作,在Rs取樣點到UC3842的腳3間加入R、C濾波電路,R、C時間常數(shù)約等于電流尖峰的持續(xù)時間。
4.2.5 開關(guān)管S
開關(guān)管的電流峰值由式(10)得
Iv(max)=ILP=4.17A
開關(guān)管的耐壓由式(11)得
Vds(off)=Vo+Vf=30+0.8=30.8V
按20%的余量,可選用6A/50V以上的開關(guān)管。為使溫升較低,應(yīng)選用Rds較小的MOS開關(guān)管,要考慮的是通態(tài)電阻Rds會隨PN結(jié)溫度T1的升高而增大。
下圖為實測開關(guān)管的開關(guān)電壓波形和電流瞬態(tài)波形圖如圖6所示。 file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image056.jpg 圖6 實測開關(guān)管的開關(guān)電壓波形和電流瞬態(tài)波形圖 4.2.6 輸出二極管D和輸出電容器C2升壓電路中輸出二極管D必須承受和輸出電壓值相等的反向電壓,并傳導(dǎo)負載所需的最大電流。二極管的峰值電流Id(max)=ILP=5.11A,本電路可選用6A/50V以上的快恢復(fù)二極管,若采用正向壓降低的肖特基二極管,整個電路的效率將得到提高。輸出電容C2的選定取決于對輸出紋波電壓的要求,紋波電壓與電容的等效串聯(lián)電阻ESR有關(guān),電容器的容許紋波電流要大于電路中的紋波電流。電容的ESR<△Vo/△IL=30x1%/1.33=0.22Ω。另外,為滿足輸出紋波電壓相對值的要求,濾波電容量應(yīng)滿足 file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image058.gif1157μF 根據(jù)計算出的ESR值和容量值選擇電容器,由于低溫時ESR值增大,故應(yīng)按低溫下的ESR來選擇電容,因此,選用1000μF/50V以上頻率特性好的電解電容可滿足要求。
4.2.7 外補償網(wǎng)絡(luò)
UCC28019誤差放大器的輸出端腳l與反相輸入端腳2之間外接補償網(wǎng)絡(luò)Rf、Cf。 Rf、Cf的取值取決于UCC28019環(huán)路電壓增益、額定輸出電流和輸出電容,通過改變Rf、Cf的值可改變放大器閉環(huán)增益和頻響。為使環(huán)路得到最佳補償,可測試環(huán)路的穩(wěn)定度,測量Io脈動時輸出電壓Vo的瞬態(tài)響應(yīng)來加以判斷。
圖7為Cf選用0.0lμF和470pF時動態(tài)響應(yīng)控制波形的區(qū)別,上沖下降幅度和復(fù)位時間都有差別。 file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image060.jpg 圖7 Cf選用0.0lμF和470pF時動態(tài)響應(yīng)控制波形 4.2.8 斜坡補償在實用電路中,增加斜坡補償網(wǎng)絡(luò),一般有二種方法,一是從斜坡端腳4接補償網(wǎng)絡(luò)Rx、Cx至誤差放大器反相輸入端腳2,使誤差放大器輸出為斜坡狀,再與Rs上感應(yīng)的電壓比較。二是從斜坡端腳4接補償網(wǎng)絡(luò)Rx、Cx到電流感應(yīng)端腳3,將在Rs的感應(yīng)電壓上增加斜坡的斜率,再與平滑的誤差電壓進行比較,作用是防止諧波振蕩現(xiàn)象,避免UC3842工作不穩(wěn)定,同時改善電流型控制開關(guān)電壓的噪聲特性。本文采用方法二。
4.3 功率因數(shù)校正模塊 該系統(tǒng)(如圖7所示)采用有源功率因數(shù)校正,可改善電源輸入功率因數(shù),減小輸入電流諧波。其主要實現(xiàn)方式有2 種:(1)兩級PFC技術(shù),即在整流濾波和DC/DC功率級之間加入有源PFC電路為前置級,用于提高功率因數(shù)和實現(xiàn)DC/DC級輸入的預(yù)穩(wěn),該技術(shù)一般用于較大功率輸出場合;(2)單級PFC技術(shù),即將PFC級與DC/DC級中的元件共用,實現(xiàn)統(tǒng)一控制,通常共用器件為MOSFET。該方式設(shè)計與優(yōu)化尤為重要,適用于小功率應(yīng)用。 有源功率因數(shù)校正的控制方式又可根據(jù)電感電流是否連續(xù)分為平均電流型控制、CCM/DCM邊界控制和電流箝位控制模式。其中CCM/DCM邊界控制 Boost PFC是一種滯后控制技術(shù),其上限為正弦基準電流,由輸出檢測信號經(jīng)誤差放大后與輸入全波電壓檢測信號相乘得到,下限為零。具體工作過程為:檢測電感電流并與正弦電流基準信號相比較,當電感電流達到該基準時,關(guān)斷開關(guān):當電感電流為零則再次導(dǎo)通,使電感電流為臨界電流工作狀態(tài)。即CCM/DCM邊界,可消除二極管的反向恢復(fù)損耗,大大減小主開關(guān)的非零電壓導(dǎo)通損耗。該技術(shù)優(yōu)點是控制簡單,使用專用器件的外圍元件數(shù)量少。運用Boost電路的PFC,在 CCM模式下輸入電流畸變小且易于濾波,開關(guān)管的電流應(yīng)力也小,可以處理較大的功率并保持較高的效率。 這里選用CCM模式PFC控制器UCC28019實現(xiàn)最終的功率因數(shù)校正。該器件采用軟啟動機制,動態(tài)響應(yīng)良好,結(jié)合外圍電路可實現(xiàn)輸入欠壓保護,開環(huán)保護,輸出過壓保護,軟過流控制(SOC)和峰值電流限制等功能。系統(tǒng)輸出電壓由該器件VSENSE引腳所接分壓電阻與其內(nèi)部+5 V的基準決定。由公式 file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image062.gif可得,通過調(diào)節(jié)分壓電阻的比率實現(xiàn)輸出電壓的數(shù)字可調(diào)。 PFC控制部分的電路設(shè)計見附錄1,芯片管腳3電流信號的采集通常采用串聯(lián)一個電阻,這種方案電路結(jié)構(gòu)簡單,成本低,開關(guān)電流通過MOSFET開關(guān)源串連的分路電阻轉(zhuǎn)換為一個電壓。該分壓電阻從源極(地)連接到輸入整流器返回引腳3。這種檢測電流的方法會產(chǎn)生一個負電壓,這對于IC而言并不理想,但方案容易實現(xiàn),所以本方案采用串聯(lián)一個電阻。 經(jīng)計算file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image064.gif ,本方案用0.05file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image066.gif。 file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image068.gif 圖7 功率因數(shù)校正框架 4.4 功率因數(shù)測量模塊變壓器副邊處通過電流互感器和電壓互感器取樣交流信號,然后經(jīng)雙路比較器LM393整形后利用等精度法測量相位差,得到系統(tǒng)功率因數(shù)。LM393的整形電路如圖8所示。 根據(jù)公式file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image070.gif進行編程,即可算出功率因數(shù)。 file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image072.jpg 圖8 功率因數(shù)測量模塊 4.5 電路保護模塊file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image074.gif 圖9 繼電器驅(qū)動電路圖 繼電器驅(qū)動接口電路如圖9所示,如果輸入信號為低電平,三極管的基極就會被拉低而產(chǎn)生足夠的基極電流,使三極管導(dǎo)通,繼電器就會得電吸合,從而斷電保護。繼電器的輸出端并聯(lián)100Ω的電阻和6800pF的電容,目的是避免繼電器吸合與釋放期間產(chǎn)生火花。每個繼電器都有一對常開常閉的觸點,便于在其他電路中使用,繼電器線圈兩端反相并聯(lián)的二極管是起到吸收反向電動勢的功能,保護相應(yīng)的驅(qū)動三極管,這種繼電器驅(qū)動方式硬件結(jié)構(gòu)比較簡單。 4.6 89C54單片機控制模塊 該系統(tǒng)采用AT89C52為控制和運算核心,通過等精度測相法測量出系統(tǒng)的功率因數(shù)。功率因數(shù)校正則以UCC28019為核心,利用硬件電路形成閉環(huán)反饋電路,實時監(jiān)測輸出電壓、電流。單片機提供過流保護來控制繼電器以及采樣和顯示電壓電流。通過單片機實時采樣輸出電流。當電流過大時單片機控制繼電器模塊使其斷開,系統(tǒng)斷電;當故障排除后測得電流值小于預(yù)定值時單片機再次發(fā)出指令使繼電器閉合,電路重新開始正常工作。 4.7 LCD液晶顯示模塊 4.7.1液晶顯示原理液晶顯示的原理是利用液晶的物理特性,通過電壓對其顯示區(qū)域進行控制,有電就有顯示,這樣即可以顯示出圖形。液晶顯示器具有厚度薄、適用于大規(guī)模集成電路直接驅(qū)動、易于實現(xiàn)全彩色顯示的特點,目前已經(jīng)被廣泛應(yīng)用在便攜式電腦、數(shù)字攝像機、PDA移動通信工具等眾多領(lǐng)域。 4.7.2引腳功能說明 編號 | 符號 | 引腳說明 | 編號 | 符號 | 引腳說明 | 1 | VSS | 電源地 | 9 | D2 | 數(shù)據(jù) | 2 | VDD | 電源正極 | 10 | D3 | 數(shù)據(jù) | 3 | VL | 液晶顯示偏壓 | 11 | D4 | 數(shù)據(jù) | 4 | RS | 數(shù)據(jù)/命令選擇 | 12 | D5 | 數(shù)據(jù) | 5 | R/W | 讀/寫選擇 | 13 | D6 | 數(shù)據(jù) | 6 | E | 使能信號 | 14 | D7 | 數(shù)據(jù) | 7 | D0 | 數(shù)據(jù) | 15 | BLA | 背光源正極 | 8 | D1 | 數(shù)據(jù) | 16 | BLK | 背光源負極 |
4.7.3 1602液晶模塊的指令(說明:1為高電平、0為低電平)指令1:清顯示,指令碼01H,光標復(fù)位到地址00H位置。 指令2:光標復(fù)位,光標返回到地址00H。 指令3:光標和顯示模式設(shè)置 I/D:光標移動方向,高電平右移,低電平左移 S:屏幕上所有文字是否左移或者右移。高電平表示有效,低電平則無效。 指令4:顯示開關(guān)控制。 D:控制整體顯示的開與關(guān),高電平表示開顯示,低電平表示關(guān)顯示 C:控制光標的開與關(guān),高電平表示有光標,低電平表示無光標 B:控制光標是否閃爍,高電平閃爍,低電平不閃爍。 指令5:光標或顯示移位 S/C:高電平時移動顯示的文字,低電平時移動光標。 指令6:功能設(shè)置命令 DL:高電平時為4位總線,低電平時為8位總線 N:低電平時 為單行顯示,高電平時雙行顯示 F: 低電平時顯示5x7的點陣字符,高電平時顯示5x10的點陣字符。 指令7:字符發(fā)生器RAM地址設(shè)置。 指令8:DDRAM地址設(shè)置。 指令9:讀忙信號和光標地址 BF:為忙標志位,高電平表示忙,此時模塊不能接收命令或者數(shù)據(jù),如果為低電平表示不忙。 指令10:寫數(shù)據(jù)。 指令11:讀數(shù)據(jù)。 設(shè)計測量輸出電壓、電流電路圖如圖5所示,該電路采用霍耳傳感器采集電流信號,提高了采集信號的精度,減小了測量誤差。單片機內(nèi)部具有D/A轉(zhuǎn)換功能,通過編程即可將輸出電壓、電流顯示在LCD上。 4.8 直流電源供電模塊 電源按功能分為主電源模塊和輔助電源模塊兩類。主電源由變壓部分、濾波部分和穩(wěn)壓部分組成。為整個系統(tǒng)提供高電壓或者大電流,確保電路的正常穩(wěn)定的工作。這部分電路由自耦變壓器、隔離變壓器和整流橋組成。輔助電源是控制電路、驅(qū)動電路的電源。其作用是給控制電路、驅(qū)動電路提供穩(wěn)定的低壓穩(wěn)壓電源。要求能輸出12V、5V的穩(wěn)壓直流電。 5.程序設(shè)計程序功能設(shè)計,該設(shè)計采用相位差測量法,即分別對變壓器副邊檢測的電壓、電流信號先經(jīng)比較器整形,然后通過計算得到電壓電流的相位差,再進行余弦運算,即可得到系統(tǒng)的功率因數(shù)。負載端輸出電壓、電流經(jīng)采樣得到系統(tǒng)視在功率。根據(jù)P=S×COSQ=S2-P2(Q表示無功功率)計算電源的有功功率、無功功率等參數(shù)。具體算法見圖10。該方法易于操作,而且通過等精度法測相,可達到很高精度,從而能很好滿足系統(tǒng)要求(程序見附錄)。 file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image076.gif 圖10 程序算法 6.系統(tǒng)調(diào)試與分析6.1測試儀器:(1)數(shù)字萬用表 (2)雙蹤示波器GOS—6051(50MHz) (3)失真度測試儀 6.2 硬件調(diào)試 整個主電路比較復(fù)雜,有三部分:AC\DC電路,boost電路及控制電路, 當電路焊接好后,首先要做的就是檢查電路的連接狀況,看是否有短路的地方或者是接錯了的地方,然后測量輸入電壓是不是在預(yù)定的范圍內(nèi),通常是沒有什么問題的,因為前級的電路就是一個整流橋加一個電感濾波輸出通常是輸入的0.9-1.2倍,具體值與電容值有關(guān)。輸出只會有兩種情況,一是有輸出但輸出的電壓不是設(shè)定值,這種情況很好解決 就是改變電壓反饋電阻的值,如果怎么改都沒有效果則電路元件的參數(shù)沒有選好,需要好好的將電路的參數(shù)重新計算一遍,二是沒有輸出,導(dǎo)致這個結(jié)果的可能有很多的情況,需要認真讀控制器的數(shù)據(jù)手冊查看芯片,然后根據(jù)電路的狀態(tài)確定控制器的工作情況,這是最麻煩的事情了。而且問題比較難找到!很幸運我們沒有碰到這個問題,雖然電路的輸出與設(shè)定值有一定的差距但改變反饋電阻后可以達到設(shè)定值。 6.3 軟件調(diào)試與硬件相比,軟件的調(diào)試麻煩的多了,對輸出電壓采樣顯示來說,為了達到一定的準確度好多的參數(shù)需要校準,將采樣值轉(zhuǎn)換為實際的電壓值時,其結(jié)果與ADC的參考電壓與硬件電路的放大比率值有直接關(guān)系,雖然參考電壓的值在數(shù)據(jù)手冊已經(jīng)給定了但實際的參考電壓與數(shù)據(jù)手冊上有一定的差距,信號調(diào)理電路的放大比例也可以通過計算得到但元件的容差會使其不準確,而且這兩個量是獨立的沒有聯(lián)系,所以要在兩者之間權(quán)衡,根據(jù)多次的調(diào)試校準,獲得相對準確的值,具體的值在附件程序里見。調(diào)試功率因數(shù)檢測時首先觀察程序能不能進入外部中斷服務(wù)程序,其實只要硬件做好了,這一點問題也沒有,實際上也是這樣的,程序能夠進入中斷服務(wù)程序,然而在顯示器上卻看不到結(jié)果,顯示的只有亂碼,后來在線仿真可以看到在數(shù)據(jù)緩存時出了錯,在C54中sfr16 是定義一個寄存器變量,但必須是連續(xù)的兩字節(jié)才能這樣,然而定時器0的高低字節(jié)不是連續(xù)的所以把高字節(jié)的值沒有緩存,修改后就好了但顯示的數(shù)據(jù)一直在跳動,后來才知道計數(shù)值緩存后沒有清零,修改后就好了 6.4 軟硬聯(lián)調(diào) 控制系統(tǒng)先加載程序,然后開始輸入電壓。改變輸入條件,檢測并記錄各類參數(shù)值,分析參數(shù)值的變化情況,判斷系統(tǒng)的運行情況,改進電路以提高電路效率和性能。 6.5結(jié)果分析(系統(tǒng)對題目完成情況)①在輸入交流電壓file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image078.gif=24、輸出直流電流file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image080.gif=2A條件下,我們的設(shè)計作品能穩(wěn)定輸出,但離指標還有一定的距離。 ②當file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image078.gif=24、file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image080.gif在0.2A~2.0A范圍變化時,負載調(diào)整率file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image082.gif。 ③當file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image080.gif=2A、file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image078.gif在20V~30V范圍變化時,電壓調(diào)整率file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image082.gif。 ④通過計算可得,電路的功率因數(shù)計算值和測量值相似,在誤差范圍內(nèi), ⑤當電路出現(xiàn)過流現(xiàn)象時,系統(tǒng)斷電,實現(xiàn)了過流保護功能。 ⑥在人為改變電路,導(dǎo)致功率因數(shù)下降時,系統(tǒng)會自動校正功率因數(shù),來提高功率因數(shù)值,但未達到題目的要求。 ⑦在file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image084.gif=24V,file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image080.gif=2A條件下,file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image078.gif值穩(wěn)定,但與指標有一定差距。 ⑧本設(shè)計可以自動校正功率因數(shù),穩(wěn)態(tài)誤差絕對值與測量值接近,但未能達到0.89~1.00這樣的水平。 ⑨本設(shè)計的特點之處在于,可以實時顯示輸出電壓、輸出電流和功率因數(shù),且誤差率極小。 7.結(jié)束語 通過此次競賽,加深了同學間的友誼,培養(yǎng)了學生間的合作能力,提高了學生的動手能力、創(chuàng)新能力和思考能力,使得我們受益匪淺。 參考文獻:[1] 毛興武等. 功率因數(shù)校正原理與控制IC及其應(yīng)用設(shè)計-北京:中國電力出版社,2007 [2] 王兆安等. 電力電子技術(shù)-北京:機械工業(yè)出版社,2000 [3] 張乃國. 電子電源技術(shù)與應(yīng)用-北京:機械工業(yè)出版社,2007.4 [4] 劉勝利. 現(xiàn)代高頻開關(guān)電源實用技術(shù)[M].北京:電子工業(yè)出版社,2001 [5] 劉生建. 兩種功率因數(shù)校區(qū)(PFC)—龍巖市:控制方法分析與比較龍巖學院報,2007 附錄一:控制電路file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image088.jpg 附錄二:源程序#include <reg52.h> #define uint unsigned int #define uchar unsigned char float num; uchar xx=0; ucharmsg1[]="0123456789"; ucharmsg2[]="00.000"; ucharmsg3[]="0.0000"; ucharmsg4[]="U:"; sbit c_rs=P3^4; sbit c_rw=P3^5; sbit c_e=P3^6; sbit AD_OUT=P1^0; sbit AD_IN=P1^1; sbit AD_CS=P1^2; sbit AD_CLK=P1^3; sbit EOC=P1^4; sbit P3_0=P3^0; void delay(unsigned int tt) { while(tt--); } voidWrite_Cmd(uchar dd) { c_rs=0; c_rw=0; c_e=0; delay(50); P2=dd; c_e=1; delay(50); c_e=0; delay(50); } void Write_Dat(uchar dd) { c_rs=1; c_rw=0; c_e=0; delay(50); P2=dd; c_e=1; delay(50); c_e=0; delay(50); } void Lcd_Init() { Write_Cmd(0x38); delay(200); Write_Cmd(0x38); delay(200); Write_Cmd(0x38); delay(200); Write_Cmd(0x38); delay(200); Write_Cmd(0x08); delay(200); Write_Cmd(0x01); delay(200); Write_Cmd(0x06); delay(200); Write_Cmd(0x0c); delay(200); Write_Cmd(0x80+0x00); } uint tlc1543(ucharport) { uint m=0; uint h; uchar i; AD_CS=0; EOC=1; port<<=4; for(i=0;i<10;i++) { AD_IN=(bit)(port&0x80); AD_CLK=1; m<<=1; h=AD_OUT; m=m|h; AD_CLK=0; port<<=1; } EOC=0; AD_CS=1; return(m); } void main() { float res; uchar i=0; TCON=0x01; IP=0x01; IE=0x81; Lcd_Init(); while(1) { if(xx==0) { num=tlc1543(0); res=num*5.0/1023.0; msg2[4]=msg1[(int)(res*1000)%10]; msg2[3]=msg1[(int)(res*100)%10]; msg2[1]=msg1[(int)(res*10)%10]; msg2[0]=msg1[(int)res]; if(msg2[0]==0x30) { msg2[1]=0x20; } Write_Cmd(0x80+0x02); Write_Dat(0x55); Write_Cmd(0x80+0x03); Write_Dat(0x3A); i=0; Write_Cmd(0x80+0x44); while(msg2!=0x00) { Write_Dat(msg2); i++; } Write_Cmd(0x80+0x50); Write_Dat(0x56); } if(xx==1) { num=tlc1543(1); res=num*5.0/1023.0/1.61; if(res<2.5) {P3_0=1;} if(res>=2.5) {P3_0=0;} msg3[4]=msg1[(int)(res*1000)%10]; msg3[3]=msg1[(int)(res*100)%10]; msg3[2]=msg1[(int)(res*10)%10]; msg3[0]=msg1[(int)res]; Write_Cmd(0x80+0x02); Write_Dat(0x49); Write_Cmd(0x80+0x03); Write_Dat(0x3A); i=0; Write_Cmd(0x80+0x44); while(msg3!=0x00) { Write_Dat(msg3); i++; } Write_Cmd(0x80+0x50); Write_Dat(0x41); } if(xx==2) { num=tlc1543(2); res=num*5.0/1023.0/40.16; msg3[4]=msg1[(int)(res*1000)%10]; msg3[3]=msg1[(int)(res*100)%10]; msg3[2]=msg1[(int)(res*10)%10]; msg3[0]=msg1[(int)res]; Write_Cmd(0x80+0x02); Write_Dat(0xE0); Write_Cmd(0x80+0x03); Write_Dat(0x3A); i=0; Write_Cmd(0x80+0x44); while(msg3!=0x00) { Write_Dat(msg3); i++; } Write_Cmd(0x80+0x50); Write_Dat(0x20); } } } void ISR_INT0()interrupt 0 using 1 { xx++; if(xx==3) xx=0; } |