開關(guān)電源環(huán)路學(xué)習(xí)筆記(7)-BUCK電源環(huán)路仿真實驗驗證
前面花了三節(jié)內(nèi)容,把Buck各個級的傳遞函數(shù)給推導(dǎo)出來了,只需要把它們相乘,就可以得到環(huán)路的開環(huán)傳遞函數(shù)了。
那有沒有辦法驗證它們是否正確呢?這一節(jié)就來干這個事情。
驗證方法
我打算使用LTspice進(jìn)行仿真驗證,方法是這樣的:
1、搭好電路
使用分立器件搭建一個Buck電路,設(shè)定好輸入電壓,選定好電感,電阻,電容等器件。
2、根據(jù)公式直接畫波特圖
根據(jù)前面推導(dǎo)的公式,我們可以直接列出這個電路的開環(huán)傳遞函數(shù)的表達(dá)式,有了表達(dá)式,我們就可以直接根據(jù)表達(dá)式畫出波特圖。
3、測試得到波特圖
我們直接仿真前面搭建的buck電路,從FB輸入小信號,就跟我們現(xiàn)實中測試波特圖一樣,測量出環(huán)路的波特圖。
4、對比
如果根據(jù)公式得到的波特圖和測試出的波特圖一樣的話,就說明我們先前推出的公式是沒問題的,即完成了驗證。
下面開始驗證
搭建buck電路
我們根據(jù)buck的系統(tǒng)框圖,搭建電路如下:
鋸齒波RAMP使用電壓源產(chǎn)生,鋸齒波與放大和補(bǔ)償后的信號做比較就能得到PWM了。周期為10us,即開關(guān)頻率為100Khz,也就是說我這個buck的開關(guān)頻率固定為100Khz。
類似于我們常用的buck芯片,Vfb設(shè)定為0.8V,我搭建電路的時候,是想輸出3.3V電壓的,所以設(shè)定R3=10K,R2=31.25K,根據(jù)分壓,可以計算得到輸出電壓:Vout=0.8*(1+R2/R3)=3.3V
R5=100K,C2=2.2nF的取值我比較隨意,只是隨便試了幾個值,看輸出電壓能夠正常輸出我想要的值就沒有再改了,兄弟們也可以自己去試試別的值看看。
圖中除了電阻、電容、電感之外,還用到了PMOS管Si4403,高速比較器LT1720,放大器AD8031,這幾個器件選型也并沒有特別的挑選。不過需要注意,比較器不要用放大器替代,速度會不夠,無法正確的產(chǎn)生PWM信號。
我們運(yùn)行下,輸出波形如下圖
可以看到,輸出在3ms之后穩(wěn)定在3.3V,跟我們的設(shè)定值是一致的,說明這個搭建的電路算是正常跑起來了。
不過,也許會覺得剛上電的時候輸出電壓會飆到8V有問題,這個其實因為我們對初始狀態(tài)并沒有額外的處理。另外一方面,我們測量環(huán)路,只測量穩(wěn)定狀態(tài)時的,因此,我們只需要測上電3ms后的環(huán)路就行,也不影響我們的目的。
電路已經(jīng)搭起來了,那就進(jìn)入第2步——根據(jù)公式得到波特圖。
根據(jù)公式直接畫波特圖
根據(jù)“兩種誤差放大器的傳遞函數(shù)”這一章節(jié)可知,反饋級和誤差放大級的傳遞函數(shù)表達(dá)式如下:
代入到前面構(gòu)建的電路中就可以求得采樣和放大補(bǔ)償級的傳遞函數(shù)如下圖:
由前面章節(jié)“脈沖調(diào)制級傳遞函數(shù)Gpwm(s)”可知,傳遞函數(shù)表達(dá)式如下:
我構(gòu)建的電路的鋸齒波幅值為12V,即VM=12,所以調(diào)制級傳遞函數(shù)表達(dá)式為: 再根據(jù)上一節(jié)“開關(guān)變換器的傳遞函數(shù)Gvd(s)”可知,開關(guān)級的傳遞函數(shù)Gvd表達(dá)式如下:這里面L為電感,C為輸出濾波電容,Vi為輸入電壓,R為負(fù)載。代入到我們構(gòu)建的BUCK電路,那么就是L為L1=33uH,C為C1=100uF,R為R1=1Ω,即Gvd表達(dá)式為:
好了,我們現(xiàn)在4個級的傳遞函數(shù)已經(jīng)求出來了,我們把它們?nèi)砍似饋砭褪情_環(huán)傳遞函數(shù)了。
有了表達(dá)式,我們就可以直接畫出開環(huán)傳遞函數(shù)的波特圖了,這里我們可以直接使用LTspice就能達(dá)到目的,具體方法我專門寫了個小文章介紹,見下面鏈接。
如何使用LTspice畫已知傳遞函數(shù)的波特圖
我們使用LTspice直接畫出上面開環(huán)傳遞函數(shù)的表達(dá)式對應(yīng)的波特圖,需要代入電路圖中的各個參數(shù)值(L1=33uH,C1=100uF,C2=2.2nF,R1=1Ω,R2=31.25K,R5=100K)。
最終波特圖如下圖:
從圖中可以看到,穿越頻率是5.56Khz
以上就是先計算出開環(huán)傳遞函數(shù)的公式,然后根據(jù)公式直接畫圖得到的波特圖。寫的比較啰嗦,主要是希望想親自試一下的同學(xué),能照著步驟很快能搞出結(jié)果來。
公式法已經(jīng)有了,下面使用測試的方法來得到波特圖。
測試得到波特圖
使用LTspice測試得到波特圖有點費(fèi)勁,我在這里卡了很久,這也是我最近一段時間沒有更新的原因之一,不過最終也總算是在一位網(wǎng)友的幫助下解決了我的問題。
為了讓兄弟們不至于在這一步卡住,我盡量說得清楚一些。
測試得到波特圖的原理,其實就跟我們現(xiàn)實工作中拿儀器測試環(huán)路一樣。
通過給環(huán)路注入正弦波小信號,然后測量輸出信號,輸出信號與輸入信號幅度的比值就是環(huán)路的增益,兩者之間的相位差異就是環(huán)路的相移。
注意,小信號的頻率是變化的,因為我們的波特圖,描述的就是在不同頻率下,環(huán)路的增益和相移的關(guān)系。所以我們需要測量很多的頻點,分別測量每一個頻點對應(yīng)的增益和相移,然后將它們連成線,就構(gòu)成了波特圖。如果正弦波小信號只有一個頻率,那么只能得到一個點。
這是不是有點類似AD采樣?如果我們想得到非常平滑的曲線,那么就需要采樣更多的點,那么也就意味著更高的采樣率。
使用LTspice也是一樣,如果參數(shù)設(shè)置不合理,可能會造成仿真時間特別的長,這一點需要特別注意,我后面也會詳細(xì)介紹。
具體現(xiàn)實中怎么測試環(huán)路,我在B站上面看到一個視頻,說得還比較清楚,鏈接是這個:
https://www.bilibili.com/video/BV1tt4y117vL?spm_id_from=333.337.search-card.all.click
感興趣可以去瞅瞅,還比較好
下面是視頻的一章截圖,測試原理是一目了然的了。
以上就是現(xiàn)實工作中通過測試的方法得到波特圖的原理。
下面進(jìn)入正題:LTspice如何通過測試方法,得到前面構(gòu)建的Buck電路的波特圖呢?
首先,在Vout與上面的分壓電阻之間加一個電壓源,用于注入正弦波小信號。注意,里面的頻率是一個變量freq,因為我們要測很多頻率點,幅度是20mV,不能太大,太大會影響電路正常工作。
電路圖如下圖所示:
如果細(xì)心的話會發(fā)現(xiàn),我還加了一個0.01Ω的電阻R4,之所以加這個,就是我踩的一個坑。如果沒有R4,那么網(wǎng)絡(luò)a就和網(wǎng)絡(luò)out是一個網(wǎng)絡(luò),后面執(zhí)行的時候就一直有問題,所以這個R4僅僅起一個隔離的作用,不讓同一個網(wǎng)絡(luò)被取了兩次名字。
右面的spice命令加了很多,看著有點費(fèi)勁,其實也不難,意思大致是這樣的:
.meas Aavg avgV(a)-----測量a點電壓平均值A(chǔ)avg.meas Bavg avgV(b) -----測量b點電壓平均值Bavg.meas Are avg(V(a)-Aavg)*cos(360*time*Freq) -----測量a點交流電壓實部平均值A(chǔ)re.meas Aim avg-(V(a)-Aavg)*sin(360*time*Freq) -----測量a點交流電壓虛部平均值A(chǔ)im.meas Bre avg (V(b)-Bavg)*cos(360*time*Freq) -----測量b點交流電壓實部平均值Bre.meas Bim avg-(V(b)-Bavg)*sin(360*time*Freq) -----測量b點交流電壓虛部平均值Bim.meas GainMagparam 20*log10(hypot(Are,Aim)/hypot(Bre,Bim)) -----測量增益.meas GainPhiparam mod(atan2(Aim,Are)-atan2(Bim,Bre)+180,360)-180-----測量相位
如果不懂也沒關(guān)系,只需要將電路上面的2個測量點命名為a和b,然后將這一段spice命令粘上即可。
Freq是頻率,是一個變量,因為會測量很多頻率點。
.param t0=3m-----設(shè)置參數(shù)t0=3ms.tran 0 {t0+20/freq} {t0}-----運(yùn)行t0=3ms后開始測試,測試20個周期.step oct paramFreq 1K 10K 4-----測量頻率范圍為1K~10Khz,每倍頻程測量4個點
t0是系統(tǒng)開始運(yùn)行到達(dá)到穩(wěn)定狀態(tài)所需要的時間長度。前面我們運(yùn)行的時候,已經(jīng)知道了3ms后系統(tǒng)達(dá)到穩(wěn)定,所以我們這里設(shè)置為3ms。注意,不同的系統(tǒng)達(dá)到穩(wěn)定的時間是不同的,要根據(jù)實際情況來。不過也需要注意,設(shè)置太長會造成仿真時間太長。
頻率測量范圍我選定的是1K~10K,之所以是這個范圍,是因為我已經(jīng)提前知道了穿越頻率是5K左右,所以沒有把頻程設(shè)置很大,因為設(shè)太大會造成仿真時間比較長。當(dāng)然,兄弟們可以自己改一改試一試。
仿真運(yùn)行
一切準(zhǔn)備就緒,我們運(yùn)行一下,基于當(dāng)前的設(shè)置,我計時了一下,運(yùn)行時間大概是3分鐘(不同電腦配置可能不同)。
運(yùn)行過程中,我們可以在窗口左下方看到仿真進(jìn)度,左下角可以看到Run:1/15;
15表示的是會測量15個頻點,1表是正在測量第一個頻點。
運(yùn)行結(jié)束之后,波形窗口看不到任何波形,因為還需要操作下面幾步:
1、在波形窗口點擊鼠標(biāo)右鍵,選擇“View”菜單下面的“SPICE Error Log”
2、在彈出的log窗口里面,點擊鼠標(biāo)右鍵,選擇“Plot .step’ed .meas data”,在彈出的窗口選擇“是”
3、在彈出的窗口中點擊鼠標(biāo)右鍵,選擇“View”菜單下面的“Visible Traces”
4、在彈出的窗口里面選擇“gain”,就可以生成波特圖了
生成的波特圖如下:
以上就是采用測試的方法得到波特圖的全過程了,有點繁瑣,我也是折騰了比較久,感興趣的同學(xué)可以自己玩一玩,相關(guān)源文件我文末會分享出來。
至此,公式直接畫出的波特圖和測試法得到的波特圖都已經(jīng)出來了,我們下面對比看看它們的差別。
波特圖對比
可以看到,二者波形基本一樣,驗證了我們開篇的目的:我們推導(dǎo)的傳遞函數(shù)是正確的。
小結(jié)
本節(jié)內(nèi)容就寫到這里了,主要是使用LTspice進(jìn)行仿真驗證前面推導(dǎo)的公式,不過這個仿真相對于以前來說還是比較復(fù)雜的,需要折騰一下。
*博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點,如有侵權(quán)請聯(lián)系工作人員刪除。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)斷路器相關(guān)文章:斷路器原理
電荷放大器相關(guān)文章:電荷放大器原理 高壓真空斷路器相關(guān)文章:高壓真空斷路器原理 漏電斷路器相關(guān)文章:漏電斷路器原理