到Multisim自定義三極管模型:完整流程與驗證方法)
做了幾年電路設(shè)計你大概也會遇到這種尷尬Multisim自帶庫里的三極管就那么幾種2N3904、2N2222翻來覆去地用。真到做具體項目比如用一顆BC337做驅(qū)動、拿MPSA42做高壓采樣翻遍整個數(shù)據(jù)庫都找不到型號。更氣人的是就算找到同名器件仿真出來的靜態(tài)工作點和實際搭板測出來的總差一大截。問題多半出在模型上——庫里的模型參數(shù)太粗糙了跟廠商datasheet對應(yīng)不上。我自己被這個坑折騰過好幾回后來干脆花時間把SPICE三極管模型這層窗戶紙捅破了學(xué)會從數(shù)據(jù)手冊里提取參數(shù)再手動在Multisim里建自定義器件。整個過程走通之后仿真和實測的偏差明顯縮小做電源和信號調(diào)理電路時也更有底氣。這篇文章就按我實際操作的順序把從零構(gòu)建三極管仿真模型的完整流程拆開講清楚包括SPICE核心參數(shù)怎么解析、Multisim自定義器件怎么建、建完怎么驗證、遇到數(shù)據(jù)庫錯誤和收斂問題怎么處理。無論你只是想讓仿真更靠譜還是想徹底掌握模型構(gòu)建這套方法這篇文章應(yīng)該都能幫上忙。1. 為什么要在Multisim里自定義三極管模型很多入門的人覺得Multisim是傻瓜式仿真工具拖拽器件、點運行就能出結(jié)果沒必要糾結(jié)模型。但做過幾個正經(jīng)項目之后你會發(fā)現(xiàn)模型這件事直接決定仿真的可信度。Multisim自帶的模型庫雖然覆蓋了常見型號但至少有三個硬傷。第一個硬傷是型號覆蓋不全。工業(yè)設(shè)計里經(jīng)常用到的一些小眾管子、進口型號庫里面壓根沒有。我自己做高壓采樣電路時要用MPSA42這管子耐壓300V庫里的替代型號仿真行為和它差得很遠根本沒法用。第二個硬傷是庫內(nèi)模型參數(shù)普遍過于簡化。很多內(nèi)置模型只給了BF、IS這幾個直流參數(shù)連結(jié)電容都沒有更別提渡越時間、Early電壓這些影響高頻和動態(tài)行為的參數(shù)。結(jié)果就是低頻直流仿真看著還行一到開關(guān)瞬態(tài)或者高頻小信號分析波形就離譜。第三個硬傷是模型和廠商datasheet對不上。有些同名器件的模型參數(shù)來源于早期版本或者第三方抄錄和當前廠商的手冊參數(shù)有明顯出入仿真出來的工作點和實測相差20%以上都算正常。所以自定義三極管模型不是說為了炫技而是為了提高工程設(shè)計效率。當你手頭有廠商提供的SPICE模型文件或者能從datasheet里提取出主要參數(shù)時自己建一個器件就能保證仿真用的模型和實際焊接的物料是同一套電氣特性。這套方法學(xué)會了之后不光三極管二極管、MOS管、運放的模型構(gòu)建思路也都是相通的。2. SPICE三極管模型參數(shù)逐項拆解在動手點擊Multisim之前先得弄明白SPICE模型里那一串參數(shù)到底是什么意思。很多人卡在這一步看見一堆縮寫就頭大其實核心參數(shù)沒幾個。2.1 直流參數(shù)IS、BF、VAF是干什么的BJT的SPICE模型是基于Gummel-Poon模型更準確說是其簡化版建立的描述的是一個三極管從截止到飽和再到擊穿全過程的電氣行為。對普通設(shè)計工程師來說最常用的是以下幾個直流參數(shù)。IS是飽和電流單位是安培通常在1e-15這個量級。它反映的是PN結(jié)的漏電水平直接決定基極-發(fā)射極電壓Vbe的大小。很多人自己搭模型時仿真出來的Vbe是0.5V還是0.7V主要就看這個參數(shù)設(shè)得對不對。BF是正向電流放大倍數(shù)對應(yīng)datasheet里的hFE這個大家最熟悉但要注意BF只是理想情況下的最大值實際放大倍數(shù)會隨電流和電壓變化。VAF是Early電壓單位伏特它描述的是輸出特性曲線在放大區(qū)的傾斜程度。VAF越小曲線傾斜越明顯集電極電流受Vce影響越大。恒流源、有源負載這些電路的分析結(jié)果非常依賴這個參數(shù)。還有幾個參數(shù)實操中經(jīng)常碰到。NF是正向電流發(fā)射系數(shù)理想情況下取1但在低電流區(qū)會有偏差一般建模時取1.0到1.2之間。BR是反向電流放大倍數(shù)它描述了倒置工作狀態(tài)下的放大能力做飽和壓降仿真時影響很大因為三極管飽和恰恰是正向和反向兩種模式疊加的結(jié)果。ISE和ISC是泄漏飽和電流它們配合NE和NC描述了低電流區(qū)和高電流區(qū)hFE下降的現(xiàn)象。IKF是膝點電流也就是放大倍數(shù)開始明顯下降的電流拐點做大電流開關(guān)設(shè)計時非常關(guān)鍵。RC和RE分別是集電極和發(fā)射極的串聯(lián)體電阻單位是歐姆圖省事的話可以設(shè)成0.1甚至0但如果要精確仿真飽和壓降Vce_sat這兩個電阻一定要加上。2.2 交流與瞬態(tài)參數(shù)結(jié)電容和渡越時間當工作頻率超過幾百千赫或者要仿真三極管的開關(guān)過程時直流參數(shù)就不夠用了必須補上電容和時間參數(shù)否則上升沿、下降沿、存儲時間怎么仿都對不上。CJE和CJC分別是發(fā)射結(jié)和集電結(jié)的零偏結(jié)電容單位是法拉一般在皮法量級。MJE和MJC是結(jié)電容的梯度系數(shù)PN結(jié)近似為突變結(jié)時取0.5緩變結(jié)時取0.33。VJE和VJC是結(jié)電勢硅管通常在0.75V左右。這幾個參數(shù)共同描述了結(jié)電容隨反向偏壓的變化規(guī)律直接影響三極管在高頻下的輸入輸出阻抗和開關(guān)速度。TF正向渡越時間和TR反向渡越時間更關(guān)鍵。TF描述的是三極管導(dǎo)通后從基區(qū)向集電區(qū)渡越載流子所需的時間它直接決定了特征頻率fT。fT約等于1/(2π×TF)以2N2222為例TF大約250ps對應(yīng)的fT大概在300MHz量級。做開關(guān)電源、高速驅(qū)動電路時TF設(shè)得對不對直接決定了仿真波形的邊沿能不能對標實測。還有一個容易忽略的參數(shù)是RB基極串聯(lián)電阻?;鶇^(qū)本身是有電阻的尤其在高頻小信號放大電路里RB會形成輸入回路的熱噪聲和相移。精確建模時把這個電阻放進去仿真結(jié)果會真實很多。2.3 參數(shù)從哪里來datasheet和廠商模型文件了解了參數(shù)含義下一步就是獲取參數(shù)。最理想的來源是廠商提供的SPICE模型文件一般以.cir、.lib、.txt為后綴里面已經(jīng)寫好了完整的參數(shù)列表。比如TI、ON Semi、Nexperia這些廠商都會在官網(wǎng)的器件頁面提供SPICE模型下載搜索時用型號spice model就行。拿到之后打開看一眼格式大概是這樣.MODEL 2N2222A NPN( IS2.77E-15 BF227.9 NF1.2 VAF50 IKF0.3961 ISE1.504E-12 NE1.5 BR4.277 NR1.2 VAR100 IKR0.2257 ISC2.148E-13 NC1.5 RB5 RE0.05 RC0.2 CJE4.78E-12 MJE0.3715 VJE0.75 CJC3.65E-12 MJC0.4461 VJC0.75 TF2.5E-10 TR3.4E-8 XTB1.5 XTI3 EG1.11)看到這個格式不要慌這只是把Model Editor里那些參數(shù)填好之后導(dǎo)出成文本而已。如果廠商沒提供SPICE模型那就只能從datasheet里提取關(guān)鍵參數(shù)。dc參數(shù)里最有用的是hFE曲線、Vbe(sat)、Vce(sat)和輸出特性曲線。從hFE曲線可以反推BF和IKF從Vce(sat)能估算RC從輸出特性曲線的斜率能估VAF。交流參數(shù)里datasheet一般會給出fT、Cob集電極輸出電容和Cib輸入電容分別對應(yīng)TF、CJC和CJE的估算依據(jù)。這樣做出來的模型雖然不如廠商原版精確但用于常規(guī)工程仿真已經(jīng)完全夠用。3. Multisim自定義器件的完整流程做好了參數(shù)準備接下來就是Multisim里的實戰(zhàn)操作。流程分兩條路一條是用Component Wizard一步步創(chuàng)建適合手頭有完整參數(shù)的情況另一條是直接導(dǎo)入已有的SPICE模型文件適合手里已經(jīng)拿到廠商模型的情況。3.1 方式一用Component Wizard逐步創(chuàng)建打開Multisim在頂部菜單找到Tools點開后會看到Component Wizard選項這就是創(chuàng)建自定義器件的主入口。整個向?qū)Х謳撞阶呶野磳嶋H操作順序逐步說。第一步填寫器件基本信息。Component Name填型號名比如2N2222AManufacturer Name填廠商名比如onsemiComponent Type選Analog然后在下面的列表里選BJT_NPN或者BJT_PNP。這里不要選錯類型決定了后面符號引腳的定義方式。第二步選擇符號和模型。在Symbol區(qū)域點Edit從庫里選一個合適的BJT符號。在Model區(qū)域點Edit會彈出一個Model Editor對話框這里就可以把剛才解析過的SPICE參數(shù)逐項填進去了。Model Editor里的參數(shù)名稱和SPICE標準名稱一一對應(yīng)IS對應(yīng)飽和電流BF對應(yīng)正向電流放大倍數(shù)以此類推。填的時候注意單位Multisim的表格更直觀直接填數(shù)值就行不需要自己加后綴。填完點OK保存。第三步是引腳映射。這一步特別關(guān)鍵三極管的B、C、E三個引腳必須和符號上的引腳一一對應(yīng)。很多新手在這一步搞錯結(jié)果仿真出來的管子怎么都不對。建議對照datasheet的引腳排列圖先確認物理器件哪個腿是B、哪個是C、哪個是E再映射到Multisim符號上。如果封裝里的引腳順序和符號不一致可以在Footprint頁面里調(diào)整也可以后面在PCB封裝編輯器里修但仿真階段優(yōu)先保證電氣引腳正確。第四步選擇封裝。如果只是做仿真不涉及PCB隨便選一個DIP-3或者TO-92封裝占位就行。如果要后續(xù)做PCB那就選和實際物料一致的封裝比如TO-92或者SOT-23。Multisim封裝庫里常見封裝都有找不到的話可以用Footprint Maker自己畫但那是另一個話題了。最后點擊Finish向?qū)涯銊?chuàng)建的器件保存到數(shù)據(jù)庫。保存位置有三個選擇User Database用戶數(shù)據(jù)庫只對本機有效Corporate Database公司數(shù)據(jù)庫存在共享位置適合團隊協(xié)作Main Database主數(shù)據(jù)庫是系統(tǒng)庫不建議隨便寫。我自己習慣全部存到User Database獨立、不污染系統(tǒng)庫換機器時備份一個文件就能遷移。3.2 方式二直接導(dǎo)入模型文件如果已經(jīng)拿到了廠商的SPICE模型文件還有一條更快的路。較新版本的Multisim支持直接從文件導(dǎo)入模型。操作路徑是Tools Import SPICE Model老版本可能叫Import Component或者通過Component Wizard進入Model File導(dǎo)入。點擊后會彈出文件選擇對話框選中之前下載的.cir或.lib文件。Multisim會嘗試解析文件里的.MODEL或.SUBCKT定義把參數(shù)自動填充到Model Editor里。解析完成后同樣會進入引腳映射和封裝選擇環(huán)節(jié)后續(xù)步驟和Component Wizard一樣。這種方法省去了手動填參數(shù)的麻煩但有兩個注意點。一是Multisim對SPICE語句的支持不是百分之百完整。廠商模型里偶爾會用一些高級語法比如行為級電壓源、自定義函數(shù)Multisim可能解析不了導(dǎo)入時要么報錯要么靜默忽略。如果發(fā)現(xiàn)仿真結(jié)果異常先回去檢查是不是有參數(shù)被丟了。二是廠商模型如果是.subckt子電路形式導(dǎo)入后在三極管符號上除了B、C、E可能還會多出幾個虛擬引腳??吹蕉嗟囊_不要慌這是子電路內(nèi)部節(jié)點被暴露出來了一般把不需要的引腳懸空不接就行。3.3 引腳映射與封裝匹配的避坑經(jīng)驗我在這一步栽過跟頭所以單獨拿出來說一下。有一次我導(dǎo)入一個PNP管的廠商模型仿真靜態(tài)工作點完全不對集電極電流差了十幾倍。排查了半天最后發(fā)現(xiàn)是引腳映射頁面里把C和E弄反了。Multisim里符號引腳順序和SPICE模型定義順序可能不一致特別是從文件導(dǎo)入時系統(tǒng)自動匹配很可能按名稱映射但廠商模型里的節(jié)點命名五花八門有的叫1、2、3有的叫C、B、E順序完全看心情。所以每次導(dǎo)入完模型都建議先放一顆器件到原理圖雙擊看它的Model屬性核對引腳定義。更穩(wěn)妥的做法是搭一個最簡單的共射放大電路做煙測試電源5V、基極電阻100k、集電極電阻1k先看Vce和Ic是否符合預(yù)期。如果仿真出的Vce等于電源電壓或者接近0大概率就是引腳映射出問題了。封裝匹配這塊建議用另一個思路仿真的封裝和PCB的封裝分開管。仿真階段封裝隨便選因為根本不參與電氣計算到了做PCB的階段再單獨為這個器件分配正確的PCB封裝。不用非得在Component Wizard里一步到位。4. 模型驗證用測試電路檢驗建出來的器件模型建好只是第一步關(guān)鍵要驗證它靠不靠譜。我建完每個模型都會跑兩個固定測試輸出特性曲線和hFE-IC曲線。這兩個測試能快速暴露參數(shù)錯誤。4.1 輸出特性曲線驗證在Multisim里搭一個簡易曲線測試電路用一個直流掃描電壓源作為集電極電源基極電流用直流電流源驅(qū)動從0逐步加大到比如1mA、2mA、5mA、10mA然后對Vce做直流掃描。用DC Sweep分析掃描變量選Vce從0到10V次級掃描選擇基極電流Ib的幾個離散值。跑完之后得到一組以Ib為參變量的IC-VCE曲線族。這時候拿datasheet上的輸出特性曲線對比重點看幾個地方。一是放大區(qū)的曲線間隔是否均勻這個反映BF設(shè)得對不對。二是曲線是否明顯向右上方傾斜傾斜程度反映VAF。三是飽和區(qū)的壓降位置也就是曲線快速上升的拐點這個反映RC和Vce_sat。如果曲線和datasheet形狀接近數(shù)值誤差在10%以內(nèi)這個模型就可以放心用。我實際驗證過用廠商模型建的2N2222A輸出特性曲線和datasheet上的幾乎重合但Multisim自帶庫里的同名模型就要差不少。4.2 hFE-IC曲線和Vbe驗證hFE隨集電極電流變化的曲線是另一個重要驗證項。三極管的hFE不是恒定的小電流和大電流區(qū)都會明顯下降。在仿真里做一次dc掃描固定Vce為5V讓Ic從10uA掃到100mA然后讀出每個點的Ic/Ib比值畫出hFE-IC曲線。對比datasheet的hFE-IC圖能驗證IKF、ISE這幾個參數(shù)是否正確。如果曲線在低電流區(qū)掉得太快或者高電流區(qū)掉不下來就該回頭檢查ISE和IKF。Vbe也是必查項。在固定Ic10mA的條件下看Vbe的仿真值和datasheet的Vbe(on)對比。硅管一般在0.6到0.7V之間。如果偏差超過0.1V優(yōu)先檢查IS參數(shù)。IS每變化一個數(shù)量級Vbe大概會變化60mV這個關(guān)系很靈敏。4.3 結(jié)合負載測試和開關(guān)測試直流特性沒問題后再搭一個實際應(yīng)用電路做整機驗證。我自己習慣用兩種典型電路線性穩(wěn)壓器的調(diào)整管或者繼電器驅(qū)動電路。比如用新建的三極管模型做一個低邊開關(guān)接一個繼電器線圈或者電阻負載輸入一個方波信號。這時候重點看開關(guān)波形導(dǎo)通時Vce能不能降到Vce_sat附近關(guān)斷時響應(yīng)夠不夠快有沒有過沖。如果波形響應(yīng)和理論分析差距明顯問題大概率出在TF、TR、CJC這幾個交流參數(shù)上。TF太大會讓上升沿變得很緩CJC太大則會在關(guān)斷時出現(xiàn)明顯的拖尾和振鈴。對比datasheet的開關(guān)時間參數(shù)和fT指標微調(diào)這幾個參數(shù)即可。5. 常見問題與排查技巧實錄自定義器件過程中出現(xiàn)的問題不少下面這幾個是我和周圍同事最常遇到的整理出來方便對照排查。5.1 Multisim數(shù)據(jù)庫無法訪問怎么辦這個問題的出現(xiàn)頻率極高網(wǎng)上關(guān)于multisim主數(shù)據(jù)庫無法訪問的討論也很多?,F(xiàn)象是打開Multisim后彈窗報錯說數(shù)據(jù)庫無法訪問或者發(fā)生錯誤元器件面板基本癱瘓。常見原因有三個一是軟件安裝目錄或用戶文檔目錄權(quán)限不足二是User Database文件損壞三是殺毒軟件誤隔離了數(shù)據(jù)庫文件。解決辦法按順序嘗試先以管理員身份運行Multisim。如果還不行檢查用戶文檔目錄下的National Instruments文件夾找到Circuit Design Suite對應(yīng)的數(shù)據(jù)庫文件通常是*.db文件備份后刪除讓Multisim重建默認數(shù)據(jù)庫。我自己遇到過一次是因為系統(tǒng)用戶名是中文某些版本的Multisim對中文路徑支持不好導(dǎo)致數(shù)據(jù)庫路徑解析失敗把系統(tǒng)用戶改名為英文或者把文檔庫路徑遷移到純英文目錄后解決。需要說明的是改用戶目錄屬于系統(tǒng)級操作改之前記得備份工程文件風險要自己評估。比較溫和的方式是新建一個英文路徑的Windows用戶來運行Multisim。5.2 仿真報錯收斂性問題自定義模型之后仿真不收斂也是高頻問題。SPICE仿真本質(zhì)是迭代求解方程組模型參數(shù)不合理或者電路拓撲有問題都會導(dǎo)致迭代無法收斂。三極管相關(guān)的收斂性問題我總結(jié)出三個常用解法。第一個解法是給電路加上合理的初始條件。在仿真設(shè)置里打開Initial Conditions選項給容易振蕩或者跳變的節(jié)點設(shè)置初始電壓。第二個解法是檢查模型里有沒有明顯量級錯誤。比如IS填成1e-15是正常的填成1.5就是災(zāi)難半導(dǎo)體方程的指數(shù)項直接溢出。所以每次填完參數(shù)都先跑一遍直流工作點觀察Vbe和Ic是否在合理范圍。第三個解法是調(diào)整仿真器設(shè)置。在Simulate菜單的Interactive Simulation Settings里把相對誤差容限從默認的0.001放寬到0.01或者把積分方法從Trapezoidal改成Gear。Gear方法數(shù)值阻尼更大更容易收斂代價是精度略低適合排查問題時先用。5.3 仿真速度慢怎么優(yōu)化模型建好之后電路規(guī)模一大仿真速度就開始折磨人。尤其是含開關(guān)電源、脈沖電路這種需要長時間瞬態(tài)分析的場景跑一個幾十毫秒的仿真可能要好幾分鐘。我試過幾個有效的方法。第一個方法是在ADCs等精度要求不高的環(huán)節(jié)放開絕對誤差容限這個對速度影響很大。第二個方法是限制瞬態(tài)分析的最大步長不要設(shè)得太小否則步數(shù)呈數(shù)量級增長。第三個方法是關(guān)閉不必要的波形顯示。Multisim在仿真過程中實時刷新示波器和圖表如果需要仿真的時間很長把探針和儀表數(shù)量減到最少或者用無交互模式的批處理仿真速度能快不少。第四個方法是用電路簡化替代。比如在驗證一個控制邏輯時用理想開關(guān)模型替代功率三極管把仿真重點放在邏輯功能上最后再做一次帶實際模型的整機驗證。5.4 引腳映射錯誤導(dǎo)致的奇葩現(xiàn)象引腳映射錯誤這個問題癥狀五花八門輸出波形倒相、電流參數(shù)完全不對、甚至仿真直接無法啟動。有時候不一定是建模型時映射錯還有可能是從庫里調(diào)用器件時選錯了封裝變體。Multisim里同一型號可能有多個封裝變體引腳排列確實會有差異。排查方法很直接雙擊原理圖上的器件打開屬性面板切到Pin View逐個確認每個引腳的網(wǎng)絡(luò)連接是否和你的預(yù)期一致。不需要改模型直接在原理圖上調(diào)整連線方向或者交換引腳連接即可修正。如果發(fā)現(xiàn)是模型本身映射錯了回去重新編輯模型的引腳映射保存后更新原理圖里的器件。這個操作要小心更新模型后原有連線關(guān)系可能會變建議在原理圖上做標注再操作。6. 幾個值得長期使用的建模習慣除了以上操作流程還有幾個習慣是這幾年積累下來的確實幫我省了不少時間。第一統(tǒng)一管理模型文件。所有手動建的器件我都把SPICE參數(shù)源文件保存一份在工程目錄下的models文件夾里并且在Multisim的器件描述欄里注明參數(shù)來源和日期。這樣過幾個月回頭看還能知道當初用的哪份參數(shù)、為什么這么設(shè)定。第二做參數(shù)回歸驗證。batch模式下用不同參數(shù)組合仿真把仿真結(jié)果和datasheet的典型曲線做對比能找出最合適的參數(shù)集。這在設(shè)計偏置電路和做大電流驅(qū)動時特別有用。第三不要把模型參數(shù)改得面目全非。廠商給的模型參數(shù)都是經(jīng)過嚴格測試的如果發(fā)現(xiàn)仿真和實測對不上優(yōu)先檢查外圍電路有沒有接錯而不是急著改模型參數(shù)。我自己就有過一次經(jīng)歷折騰了很久發(fā)現(xiàn)是給基極供電的電阻值選錯了。找到真實原因后模型改動很小反而更可信。第四善用模型的層級概念。對復(fù)雜的三極管電路仿真不一定非要用最完整的Gummel-Poon模型。當只是驗證直流偏置時用簡單的Ebers-Moll等效模型配合關(guān)鍵參數(shù)就夠了仿真速度更快結(jié)果也夠用。只有涉及高頻、開關(guān)、溫度漂移場景時才需要上完整模型。理解模型層級按需選擇這本身就是一種工程能力。SPICE參數(shù)解析和Multisim自定義器件這套流程我實踐下來最大的感受是建模本身不難難的是理解參數(shù)背后的物理意義以及拿到參數(shù)后知道怎么驗證它。把這兩步做到位之后遇到任何型號的三極管都能自己建模型不再受限于軟件自帶的元器件庫。前期花點時間把工具鏈搭好后面省下來的時間遠不止這一點。