ARTICLE DETAIL

资讯详情

深耕网站SEO优化与搜索引擎排名提升的一线实战洞察。

LTspice仿真实战:从基础电路到MOS管损耗与浪涌防护

LTspice仿真实战:从基础电路到MOS管损耗与浪涌防护 我最早开始用LTspice是帮朋友调一个Buck电路。当时手头没有示波器样片又贵想着先仿真看看波形下载原因特别直接不要钱。结果这一用就是好几年后来做电源、运放、信号链的活基本都跑不出这个工具。LTspice真正的价值不仅是免费它是真的快、真的稳能把很多凭经验估算的东西直接量化出来。无论你是刚入门的大学生还是在电源和模拟领域摸爬滚打多年的工程师这套流程都值得认真走一遍。这篇内容我从自己的实际使用经历出发把平时用的最多的功能串一遍从最基础的脉冲源设置、交流分析到MOS管损耗和米勒平台仿真再到导入第三方模型、浪涌防护仿真最后聊一聊仿真变慢这种让人头大的问题。尽量把每个操作背后的道理讲清楚让你看完能直接照着做。1. 正式动手之前安装与基础认知1.1 免费、跨平台还内建一堆模型LTspice最初是由Linear Technology推出的SPICE仿真工具后来随着Analog Devices亚德诺半导体收购LinearLTspice继续由ADI维护并保持免费。它之所以在工程师圈子里口碑极好核心在于两点一是仿真收敛性极佳很多在其他SPICE工具里跑不收敛的电路拿到LTspice里往往几秒钟就出结果二是模型库相当丰富特别是ADI/LT自家的器件比如精密运放、基准源、电源芯片、MOSFET、二极管都有不错的宏模型直接拖出来就能用。还有一点常被人忽视LTspice的原理图编辑和波形窗口虽然界面朴素但操作效率很高。你不需要到处点菜单很多操作可以通过快捷键、右键菜单和SPICE指令直接完成。我见过不少人因为界面不够现代就放弃了它属实可惜。真正的生产力工具往往不是花架子。1.2 安装和初始设置有哪些容易踩的坑安装过程本身很简单去ADI官网注册下载即可。但有几个细节值得留意否则后面容易心态爆炸安装路径不要包含中文或空格。虽然LTspice对中文路径的宽容度比以前好了一些但在导入模型、调用外部文件时路径里的中文偶尔会引发编码问题。建议直接装到C:\LTspice这种纯英文路径下。把模型文件统一放在一个固定的文件夹。比如C:\LTspiceLib\不要在每次仿真时临时把模型文件散落桌面否则后面工程一多.include路径乱得你想哭。初次打开后建议开启Tools Color Preferences换个深色背景。不是为好看是长期看波形对眼睛友好一些尤其是连续调试几小时的时候。有一点要注意LTspice并不是直接打开就能用所有第三方模型后面专门讲怎么导入。对于Linux用户LTspice原本只有Windows和macOS版本后来ADI出了原生Linux版这对不少服务器工作站是个好消息。老方法是通过Wine运行Windows版也能用但现在有原生版就没必要折腾了。2. 三种最常用的仿真设置脉冲源、交流分析、运放电路2.1 脉冲源每个参数都拆开讲ncycles到底管什么LTspice里的脉冲源语法是PULSE(V1 V2 Tdelay Trise Tfall Ton Tperiod Ncycles)举个例子PULSE(0 12 10u 10n 10n 5u 10u 2)这表示初始电压0V脉冲电压12V延迟10us才开始上升上升沿10ns下降沿10ns高电平持续5us周期10us只输出2个脉冲。很多新手对最后这个Ncycles参数一头雾水甚至直接忽略。它的作用是控制脉冲循环次数默认写0的时候代表无限循环输出写1则只输出一个完整的脉冲然后电压保持为V1写2就是两个脉冲以此类推。这个参数在实际使用中非常关键。比如我想仿真一个MOS管开通过程的快照只需要观察栅极信号第一次上升沿的行为而不是让它一直开关下去。这时候设成Ncycles1配合合理的仿真时长就能把波形看得清清楚楚。又比如做浪涌防护仿真想模拟一次雷击、一个浪涌那就用PULSE(0 1000 0 1.2u 50u 0 1)这种单次脉冲正好对应1.2/50us的浪涌电压波形。有一个容易忽略的点如果Trise或Tfall写的值比Tperiod还大LTspice会报错或产生非预期波形。另外当Ncycles1时如果仿真时间超过了Tdelay Trise Ton Tfall波形会停在V1而不会继续输出下一轮。利用这一点可以非常方便地模拟单次事件。2.2 交流分析到底在看什么怎么设置最稳妥交流分析AC Analysis是在工作点附近做小信号线性化扫描不同频率下的增益和相位本质上是看系统的频率响应。对电源工程师来说这是做环路稳定性分析Bode图的核心手段对信号链工程师这是看滤波器频率特性的标准方式。在LTspice中交流分析的设置入口是Simulate Edit Simulation Cmd AC Analysis。常用语法.ac dec 100 10 100Meg意思是每十倍频程取100个点从10Hz扫到100MHz。点数的选择是有讲究的点数越多曲线越平滑但仿真时间也会增加。一般先扫描看个大概再用LIST模式关注关键频点比如在开关电源环路上检查穿越频率和相位裕度。AC分析里有一件事必须做信号源的AC幅值要设置。比如一个电压源需要右键属性把AC Amplitude设为1表示输入信号的幅度为1V这样输出幅值直接就是增益。如果不设置AC幅值源在AC分析中就是0什么都看不到。还有一个常见误区AC分析是线性分析它不能体现大信号的非线性效应比如比较器、开关电源的大信号不稳定。所以AC分析结果要结合瞬态仿真一起看不能只迷信Bode图。2.3 运放仿真从反相放大器到完整的有源滤波热搜里经常看到ltspice opamp确实运放仿真应该是LTspice最常用的场景之一。LTspice自带的运放模型大多是ADI/LT的器件比如经典的OP77、LT1490、ADA4004等都是直接从[Opamps]元件库里拖出来就能用。举个例子搭一个反相放大器反相输入端接输入信号VIN通过R1比如10kΩ反馈电阻R2设为100kΩ同相输入端接地运放电源用正负15V。这时交流分析的增益曲线会显示约20dB100k/10k 10倍如果你觉得不够陡还能顺手加上反馈电容构成有源滤波。曾有朋友问为什么LTspice里运放仿真老是报time step too small多半是正负电源没接好或输入端悬空导致了不确定工作点。这里分享一个我自己的习惯在做运放仿真时不要图省事把电源直接搞成理想电压源至少要加一个几欧姆的ESR或在电源端放一个1uF旁路电容。虽然理想电压源在仿真中完全合法但它会掩盖一些真实电路中的稳定性问题尤其是当运放驱动容性负载的时候。养成够用但贴近现实的习惯后续过渡到实测时能少踩很多坑。3. MOS管仿真损耗计算、米勒平台、电感负载续流3.1 导通损耗、开关损耗、驱动损耗怎么在LTspice里直接测MOS管损耗是电源设计里绕不开的话题。粗略分三块导通损耗P_cond I_RMS² × Rds(on) × D开关损耗P_sw 0.5 × Vds × Id × (tr tf) × fsw更准确的是看波形交叠面积驱动损耗P_drive Qg × Vgs × fsw。公式只是估算真正想拿到可信数值建议直接用LTspice仿真测量。两个最实用的方法方法一直接在波形窗口按Ctrl键点击想要测量的元件或节点。比如对一个MOS管M1按住Ctrl点击M1本体LTspice会弹出该元件的瞬态功耗曲线V(vds)*I(M1)。这个操作不需要任何额外语句是我最常用的方式。方法二用.meas指令计算一个时间段的平均功耗比如.meas TRAN P_avg AVG V(vout)*I(M1) FROM 2m TO 3m也可以先积分再除以时间.meas TRAN P_integ INTEG V(vout)*I(M1) FROM 2m TO 3m .meas TRAN P_avg2 P_integ/1m这里需要注意电流方向。LTspice中I(M1)的参考方向是从漏极流向源极如果方向反了仿出来的功耗可能是负值这并不代表MOS管在发电只是测量方向问题。符号不对就换I(M1)和I(M1)的极性或者干脆用Ctrl点击法让软件自己处理方向。我在实际仿真中还有一个习惯先从波形里目测功耗曲线的大致形状再用.meas定量计算。不要直接把.meas结果当作唯一真理毕竟它和你设定的时间窗口强相关。你得先确认这段时间内开关是稳定周期性工作的如果电路还没进入稳态就取平均数值会偏大。3.2 米勒平台怎么看栅极电阻的影响到底有多大米勒平台Miller Plateau是MOSFET开关波形中一个非常典型的特征栅极电压Vgs在上升过程中不再线性上升而是进入一个平台阶段等Vds下降结束后才继续上升。原因是Vds变化通过米勒电容Cgd反馈到栅极吸收了大量驱动电流。为什么仿真空洞因为米勒平台的持续时间直接影响关断和开通过程中电压电流交叠部分的面积也就是开关损耗。驱动电流越弱、栅极电阻越大米勒平台越长开关损耗越大发热就更明显。在LTspice里观察米勒平台很简单搭一个基本电路用理想脉冲源驱动栅极漏极接一个电压源通过负载电阻或电流源然后对栅极电压和漏极电压做瞬态仿真。你会在Vgs波形里看到一个明显的台阶台阶的起始和终止位置基本对应Vds开始快速下降和下降结束的时刻。我用过最直观的测试方式是参数扫描.step param Rg list 1 10 100把栅极电阻Rg分别设为1Ω、10Ω、100Ω跑一次瞬态再看Vgs波形。电流源的上升斜率几乎不变但米勒平台的宽度差别会非常大——1Ω时平台很窄100Ω时平台变得又长又平。同时对比Vds波形你会发现平台期越长开关损耗越大。这给设计带来的启发是如果想降低开关损耗栅极电阻不能选太大但如果栅极电阻太小dV/dt和di/dt会变大EMI问题会更严重。在LTspice里多扫描几次找到一个折中值比在PCB上反复换电阻要高效太多。3.3 电感负载续流漏极电压尖峰的真实仿真MOS管驱动电感负载继电器、电磁阀、电机绕组是很常见的场景但如果没有给电感提供续流通路仿真结果会让你瞬间清醒。电路很简单一个MOS管M1低频开关一个10mH电感电感另一端接12V电源。当M1关断时电感电流必须连续会产生一个非常高的反电动势Vds瞬间冲到几百伏甚至更高在仿真里会因为超过耐压直接看到离谱的波形甚至仿真器因为收敛问题报错。解决方法是给电感并联一个续流二极管阴极接电源阳极接MOS管漏极。这样关断时电感电流通过二极管续流Vds被钳位在电源电压加二极管压降附近。仿真中你可以用波形光标的Max功能读取Vds最大值对比加与不加续流二极管的差异。有朋友问选续流二极管时是不是只要反向耐压够就行答案是耐压只是基础还需要关注反向恢复时间和导通压降。在LTspice中你可以尝试几种不同的二极管模型比如1N5819肖特基和1N4007慢恢复观察关断尖峰的幅值和续流时段的电压跌落很容易看出快恢复管和慢管之间的差异。仿真中还有一个细节MOS管的等效体二极管其实也参与了续流不过很多宏观模型不会精准体现这个二极管的反向恢复过程。在低频开关场景下影响不大但在高频、硬开关的场景下体二极管反向恢复会造成额外损耗和振铃。所以别完全指望体二极管必要时在外部并联快恢复二极管并用LTspice验证。4. 导入第三方SPICE模型告别库里没这个型号4.1 先搞清楚文件结构.model、.subckt和.libLTspice内置模型大多面向ADI/LT的器件但实际设计中我们经常会用到其他厂商的元件比如英飞凌的MOSFET、ST的IGBT、TI的运放、Littlefuse的TVS管等。这时候就需要导入第三方SPICE模型。拿到一个模型文件先别急着拖进LTspice先打开文件看它开头是什么结构。常见的三种.model一个简单的模型定义比如二极管、电阻、三极管.subckt子电路定义比如一个复杂MOSFET内部由多个源和电阻组成格式类似.subckt IRFP460 1 2 3 ... .ends IRFP460其中1、2、3是引脚编号后面必须和原理图符号引脚对应好.lib库文件里面可能包含多个.model和.subckt通过.include或.lib调用整个文件。搞清楚这些之后调用方式就明确了。1.如果是.model可以在元件属性Value里填对应的模型名如果是.subckt就把Value填成子电路名同时确保引脚顺序一致。4.2 手把手导入流程放符号、引文件、对引脚以导入一个第三方MOSFET为例在原理图中放置一个通用的n沟道MOSFET符号右键选择[Misc]中的nmos或者直接用快捷键M。右键这个MOSFET把Value改成型号名称比如IRFP460。添加SPICE指令引用模型文件路径.include C:\LTspiceLib\IRFP460.lib注意路径中不要有空格否则会因为转义问题导致文件找不到。确认引脚映射。标准LTspice的nmos符号引脚顺序通常是D漏极、G栅极、S源极而模型文件的.subckt引脚顺序可能不同。打开.lib文件看.subckt后面第一行参数顺序务必与符号连接对应。如果顺序是SUBCKT IRFP460 D G S那正好匹配如果是SUBCKT IRFP460 1 2 3则需要看一下厂商文档或原理图符号定义。开始仿真前先做一个简单的DC扫描或ID-VDS特性测试看模型是否正常这一步非常关键后面会细说。除了直接用.include还可以用LTspice的Tools Lib Instructions添加库文件这样以后每次仿真都会自动包含不用每个原理图重复添加。这个功能适合把自己常用的第三方库统一管理。4.3 导入后先验模型再谈仿真精度导入模型最大的隐患不是导入不成功而是导入成功但模型和实际器件差很远。所以我的习惯是拿到任何新模型先跑几个基础验证仿真确认模型行为和芯片手册基本一致。验证方法很简单测导通阻抗让MOS管完全开通给一个固定Vds扫描Id看Vds/Id是否接近手册里的Rds(on)。测阈值电压扫描Vgs从0到10V观察Id刚开始显著增加的Vgs值。测击穿电压给Vds加一个斜坡电压看反向击穿发生在多少伏附近。如果这些关键参数和手册偏差很大问题多半出在模型调用方式不对或者库文件里你用的子电路根本不是目标器件。还有种情况有些厂商的模型文件里包含多个版本典型、最大、最小需要你在.model或.subckt后面指定后缀比如IRFP460A和IRFP460N别张冠李戴。有朋友问过为什么按教程导入的LTspice模型仿出来的波形和实测差很多我的回答往往是模型本身通常是准的但仿真条件和真实电路差别太大。比如没有考虑寄生电感、PCB走线电容、栅极驱动源的内阻等等。LTspice里的结果再好看也只能反映理想条件下的大概率趋势绝对不能替代最终实测。5. 仿真翻车现场速度变慢、结果不对的排查攻略5.1 仿真突然卡成PPT先查这几个地方搜热词里有一条ltspice仿真速度突然变慢了这个问题我碰到太多次了。LTspice以快著称一旦变慢基本是下面几个原因第一仿真步长被卡死了。电路里有高频振荡、压摆率极快的信号、或者很小的RC时间常数仿真器为了保证精度只能把步长压得很小计算量指数级增加。你可以打开View SPICE Error Log看日志如果频繁出现 time step too small 或 iterations 警告就是收敛困难。解决方法包括适当放宽最大时间步长使用.options maxstep1n限制最小步长或者检查电路里有没有可能导致数值震荡的元件组合比如理想电感与理想电容直接并联且无损耗。第二仿真时间设置太长但实际关心的窗口只有一小段。有时候我们想看电路上电后1ms内的细节结果把仿真结束时间设成了10s那等于白白多算无数个周期变慢是必然的。正确的做法是把Tstop设在有效观察窗口之外一点点并用Tstart让仿真从稳态后的某个时间点开始保存数据。第三波形数据量过大。仿真过程中LTspice默认保存一定精度范围内的数据但如果你开了一大堆探针、保存了所有节点还会因为波形文件巨大导致打开波形和拖动光标卡顿。解决方法是只探测关键的几个信号或者用.options save*限制保存节点。我在实际调试中还有一个习惯先用粗步长比如1u跑一遍全局确定大致的波形趋势再用细步长10n或更小跑局部观察上升沿毛刺等细节。这样不至于一上来就把仿真器逼到极限也能更快定位问题。5.2 浪涌防护仿真1.2/50us和8/20us怎么搭出来浪涌防护仿真在热词里也出现了这类需求的本质是模拟一个瞬态大能量脉冲打到一个系统上看保护器件是否能把电压和电流限制在安全范围。工业最常见的浪涌波形是IEC 61000-4-5定义的组合波开路时是1.2/50us的电压浪涌短路时是8/20us的电流浪涌。要精确模拟这种波形最专业的方式是用双指数函数k * (exp(-t/tau1) - exp(-t/tau2))在LTspice里可以通过B源Behavioral Source实现。但对于大多数验证场景用脉冲源近似足够1.2/50us电压浪涌PULSE(0 1000 0 1.2u 50u 0 1)注意这里Trise1.2u、Tfall50u只是近似真正的双指数上升和下降时间定义和PULSE的线性边沿不完全一致但在早期方案评估阶段足够用。8/20us电流浪涌PULSE(0 100 0 8u 20u 0 1)输出一个峰值为100A的单次电流脉冲。搭建电路时典型结构是浪涌源通过一个耦合网络注入到被保护系统系统入口放置TVS管例如SMBJ15A或压敏电阻模型然后在TVS后端接一个电阻负载。仿真目的通常是看保护器件钳位后的残余电压是否超过后级电路耐受水平TVS管承受的峰值功率是否在其额定范围内浪涌消退后系统是否能恢复正常工作。值得强调的是TVS管模型在LTspice中不是总有一个现成的很多时候需要手动建模或从厂商导入。最简单的建模方法是用一个理想二极管加一个稳压管特性但精度一般。保险起见去TVS厂家的网站如Littelfuse、Bourns找对应的SPICE模型文件导入这个我们在前面已经讲过了。浪涌仿真还有一个常见误区只关心钳位电压大小忽略了TVS管自身的钳位电压是随电流上升而升高的。在8/20us大电流下钳位电压通常比Vc标注值高不少仿真中要留足裕量。5.3 常见问题速查表从报错到结果离谱写一个自己常用的排查清单遇到问题直接对着查效率最高。症状可能原因解决建议仿真报错 Unknown subcircuit模型文件没正确引用或模型名拼写不一致检查.include路径和元件Value是否与.subckt名一致波形完全没输出信号源未连接或者仿真类型/时长设置错误检查电路连接确认.tran结束时间足够波形全是直线但数值不对工作点没建立或信号源未设置AC幅值检查源属性确认激励信号正确MOS管功耗为负电流参考方向反了换电流方向或使用Ctrl点击测量法仿真速度突然变慢步长过小、时间窗口过长、保存点过多查看Error Log合理设置Tstop和maxstep波形有大量毛刺电路中有未加阻尼的LC振荡增加串联电阻或检查是否存在理想元件直连导入模型输出电压不对引脚顺序错误或模型版本错误核对.subckt引脚顺序验证模型参数表格只是速记真正的排查思路是先确认电路结构对不对再确认激励源对不对最后才怀疑模型是不是有问题。顺序反了很容易被带偏。还有一个小技巧LTspice里面脚本化运行和批量仿真非常方便。比如用.step配合.meas一次扫描多个参数直接拿到不同条件下的损耗曲线、峰值电压根本不用手动反复改参数。这个习惯帮我节省了大量时间尤其是做器件选型横向对比的时候。一点个人体会LTspice用久了你会发现它最大的价值不是仿真结果看起来多专业而是逼着你把每个元件、每个参数、每个波形都真正理解一遍。很多问题在仿真阶段暴露比在实验室里反复焊板找原因要快得多。我自己就曾靠一次MOS管米勒平台仿真提前发现驱动电阻选得太大导致开关损耗超标省了一次改板成本。如果你刚开始接触建议先别追求跑复杂的电路把脉冲源、交流分析、.meas这些基础指令用熟再往电源、保护这类场景延伸会顺畅很多。最后说一个小技巧遇到结果和预期不符右键点击探头检查它到底在测哪个节点的电压、哪个元件哪个方向的电流很多时候不是软件的问题是探头挂错了位置。
返回列表