反激電路仿真及實現分兩步:以 Ltspice 自己帶的仿真例子來說明,用 384X 來仿真。
LT1241/42/43/44 類似於 UC384X。
▫ 所有的模型在這裡可以下載:
http://www.linear.com/designtools/software/demo_circuits.php
▫ 反激比較實用的類 UC384X 系列的:
LINEAR_LT1241_4_Flyback.ZIP
Ltspice 裡沒有專門的 PF 測量模塊,所以需要自己封裝或是用最基本的語法來測量。下面用一個簡單的電路來表達。
從這個電路中可以學到:
1. 參數宏定義
2. 參數掃描分析
3. plot 功能 (以變量為坐標) 可以直觀看到變化趨勢
.params
+ Vi=220V
+ Fin=50Hz
param 以及 params 都是用來宏定義參數的,方便仿真時作系統修改,也可以自己在元件參數中修改。
* Measurements across the whole simulation period
.meas Vin RMS V(L,N)
.meas Iin RMS I(V1)
.meas Imax MAX abs(I(V1))
.meas Pin AVG V(L,N)*(-I(V1))
.meas PF PARAM Pin/(Vin*Iin)
這裡就是基本的測量語句。
1. 有效語法以逗號來作前綴 .meas 是所有測量的系統語法,具體 F1;
2. 如果想屏蔽此語句,可以有三種方法:
第一種改為 comments,這樣的話就變成了注釋;
第二種是前面用 * 號;
第三種方法是前面加分號。
* Measurements across the whole simulation period 這句是注釋,不參與運算
.meas Imax MAX abs(I(V1)) 這行也不參與運算
.step param C list 2uf 5uf 10uf 20uf 22uf 33uf 47uf 100u
這裡用了一個多步仿真 (參數掃描),step 參考 F1。
list 即是讓 C 按 list 裡的數值一步一步進行仿真。
要得到這樣的效果,必須要元件的值裡用 {} 大短號表達,如下圖:
.step param C list 2uf 5uf 10uf 20uf 22uf 33uf 47uf 100u
語法講清了,那麼開始仿真。填谷電容從 2uF 慢慢升到 100uF,結果如下。
從仿真出來的波形看,輸入電流就是我們經常看到的結果。但這樣我們還不能直觀地看到 C 的變化對 PF 的影響。這樣的話,我會就回到了 plot 作圖的地方。
這裡一個極為重要的地功能,即是掃描日誌查看命令,包括了所有的測量的值 .meas 裡所有的有效測量都在裡面。可以在 View- Spice Error log 裡,或是在圖形界面裡點右鍵,也會有 View 出現。
二種方式整合在下圖裡。
View- Spice Error log 調出仿真腳本日誌,如下可以看到 .meas 的結果都在。
Circuit: * C:UsersabcDesktopMeasurements PF.asc
.OP point found by inspection. // 變量 填谷電容 分步仿真
.step c=2e-006
.step c=5e-006
.step c=1e-005
.step c=2e-005
.step c=2.2e-005
.step c=3.3e-005
.step c=4.7e-005
.step c=0.0001
Measurement: vin
step RMS(v(l,n)) FROM TO
1 219.786 0 0.04
2 219.787 0 0.04
3 219.793 0 0.04
4 219.812 0 0.04
5 219.817 0 0.04
6 219.823 0 0.04
7 219.843 0 0.04
8 219.861 0 0.04
Measurement: iin // 輸入電流有效值測量結果
step RMS(i(v1)) FROM TO
1 1.10044 0 0.04
2 1.12699 0 0.04
3 1.15897 0 0.04
4 1.1951 0 0.04
5 1.20011 0 0.04
6 1.22092 0 0.04
7 1.23852 0 0.04
8 1.27447 0 0.04
Measurement: pin // 輸入平均測量結果
step AVG(v(l,n)*(-i(v1))) FROM TO
1 240.141 0 0.04
2 243.45 0 0.04
3 249.188 0 0.04
4 254.865 0 0.04
5 255.577 0 0.04
6 258.24 0 0.04
7 260.173 0 0.04
8 262.988 0 0.04
Measurement: pf // PF測量結果
step pin/(vin*iin)
1 0.992884
2 0.982852
3 0.978229
4 0.970189
5 0.968807
6 0.962198
7 0.955533
8 0.938554
Date: Sat Mar 29 14:36:03 2014
Total elapsed time: 2.853 seconds.
tnom = 27
temp = 27 // 溫度默認為27度,溫度很重要,以後會說到溫度的影響.
method = modified trap
totiter = 13351
traniter = 13351
tranpoints = 6578
accept = 6411
rejected = 167
matrix size = 13
fillins = 9
Matrix Compiler1: 59 opcodes 0.6/0.4/[0.4]
Matrix Compiler2: 1.25 KB object code size 0.4/0.4/[0.2]
在 log 文件裡點右鍵,會發現三個選項:一是 find 查找,二是畫圖,按變量畫圖.
plot .Step'ed .meas data
會出來一屏,按圖畫即好。
在這之前,說一個很重要的語法,就是變壓器耦合設計 K 。
電工原理定義漏感係數
K = sqrt(1-Lleak/sqrt(L1*L2))
Lleak = sqrt(L1*L2)*(1-K*K)
按 F1,查 K 語法即為下:
Syntax: Kxxx L1 L2 [L3 ...] <coefficient>
L1 and L2 are the names of inductors in the circuit. The mutual coupling coefficient must be in the range of -1 to 1.The line
K1 L1 L2 L3 1
注意這裡表明常規的反激、3個繞組、耦合係數為1,表明絕對耦合,即不存在漏感。
.step param Leak list 0.0001u 0.1u 1u 3u 5u
這裡漏感參數變化,可以看到 VDS 變化雖然最大只有5%,但仿真波形看起來很痛苦。
分步5次掃描仿真如下。
細分放大
仿真受限很多,不代表實際結果。
再來一個負載,從空載到半載到滿載到過載的 VDS 及 VGS 波形。
至此,不再討論凌力自己的模型。以下的內容均來於非官網的模型及電路。
這次先放上仿真模型,裡面含有 TL431、MOSFET、整流二極體、UC384X 的模型。
所有文件打包壓縮放在一個英文路徑文件夾下
uc3842_flyback_eric.rar。因為人為引入模型,導致仿真比較慢,需要 20 分鐘左右。
電路中,變壓器耦合良好,系統設計輸出 14V 左右,理論計算 13.8V,頻率 120K 左右。
仿真如下:
此例以一個 TL431 穩壓來說明,這樣更直白,電路很簡單的。為了得到 5V 的穩壓電源,此分析可以類推到常規的反饋迴路元件誤差分析上。
這裡只說幾個參數,系統定義誤差為元件 R1 R2 為 5%,R1=R2=10K。
這裡有個特別的電阻定義:
.param R1=wc(10k,tol1)
.param R2=wc(10k,tol1)
這裡的定義比較特殊 (我也是參考其他人的得到的),表明 10K 的 R1 R2 中心值是 10K,誤差是tol1,在本例中即為 5%,即 R1=R2=[10K*0.95 10K*1.05]。
作 50 次仿真,用 error log- step.plot 畫圖。得到如下:
可以看到 Vout 可以從 4.7V 變化到 5.3V. (注: 這是包括二個電阻誤差的結合)
TL431 穩壓電源仿真源文件包括一個 TL431 模型,解壓後全放在一個非中文目錄下:
worst case TL431.rar
BTW. yahoo group 裡有一個運放恆流源的誤差分析例子,裡面引入的參數變量更多了,但大同小異:
Current-source_wc_yahoo.rar
這個說白就是一個參數掃描,不過定義是溫度而已。
溫度特性對於三極體、二極體、穩壓管組成的離散電路十分有用。下面以一個常規的二極體 P-N 結特性作為說明來演示其效果。
下面這個電路經常用。
可以看到,在不同的正向電流下,二極體 PN 結電壓隨溫度變化。
附上仿真文件:
temperature_diode.rar