
1. 从一条“太平”的输出曲线说起如果你在LTSPICE里跑过一个共射极三极管电路把VCE从0V扫到10V大概率见过这样一组曲线IB从10uA到50uA五条线在饱和区陡峭上升然后进入放大区几乎水平地向右延伸。很多人看到这里就过了觉得“放大区就是平的电流不随电压变”。但如果你把纵轴从线性改成对数或者把VCE扫到50V、100V你会发现那些“水平线”其实一直在缓慢往上翘。这个上翘的斜率就是厄利效应Early Effect在输出特性曲线上的直接体现而描述这个斜率的参数就是厄利电压Early Voltage通常记作VA。厄利电压这个概念在教科书里往往只有一段话、一个公式学生背完就忘。但到了实际电路设计里它直接决定了你算出来的增益对不对、电流源输出阻抗够不够、镜像电流源的匹配精度高不高。我见过太多人用LTSPICE仿真共射放大器理论算出来增益是-150仿真跑出来只有-90查了半天偏置、查了半天负载最后问题出在没考虑ro——而ro的核心参数就是厄利电压。这篇内容就是围绕LTSPICE这个工具把三极管厄利电压和输出特性曲线的关系彻底拆开讲清楚。从模型参数怎么设、曲线怎么扫、VA怎么从曲线里反推、ro怎么算、到实际电路里怎么用每一步都给可复现的操作。适合已经会用LTSPICE画基本电路、但想真正搞懂三极管小信号输出电阻从哪来的朋友。如果你还在纠结三极管导通截止条件这篇可能稍微深了一点但跟着做一遍回头再看那些基础问题会通透很多。2. LTSPICE里三极管模型到底藏了什么2.1 默认NPN模型为什么“没有”厄利效应打开LTSPICE按F2在元件库里的npn器件上放一个右键选一个型号比如2N3904或者2N2222。然后按Ctrl右键点这个三极管你会看到一个模型参数列表。很多人从来不点开这个列表直接用默认值跑仿真。问题就出在这里。LTSPICE内置的通用NPN模型如果你不指定具体型号它用的是一组默认参数。这组默认参数里VAFForward Early Voltage的默认值是无穷大。无穷大意味着什么意味着输出特性曲线在放大区是绝对水平的ro等于无穷大输出电流完全不随VCE变化。这跟真实器件的行为差得很远。我刚开始用LTSPICE的时候就踩过这个坑。当时搭了一个共射极放大电路想验证一下输出阻抗对增益的影响结果仿真出来的增益跟理论计算完全对不上。后来把三极管模型点开一看VAF那一栏是空的LTSPICE默认按无穷大处理。改成100之后曲线立刻有了斜率增益也降下来了跟手算结果对上了。所以第一件事永远不要用默认模型跑需要看输出电阻的仿真。要么选一个带完整模型参数的厂商型号要么手动在模型里加上VAF。2.2 VAF参数在模型方程里怎么起作用三极管在放大区的集电极电流考虑厄利效应之后可以用一个修正的公式来描述IC IS * exp(VBE / (NF * VT)) * (1 VCE / VAF)这个公式里前半部分是我们熟悉的肖克利方程描述VBE对IC的指数控制后半部分的(1 VCE / VAF)就是厄利效应的修正项。当VCE远小于VAF时这一项接近1影响很小当VCE接近甚至超过VAF时这一项会显著增大IC。从这个小信号角度看对VCE求偏导就能得到输出电导gogo dIC/dVCE IC / (VAF VCE) ≈ IC / VAF所以输出电阻ro 1/go ≈ VAF / IC。这个近似在VCE远小于VAF的时候非常准。举个例子VAF100VIC1mA那么ro ≈ 100V / 1mA 100kΩ。如果IC降到0.1mAro就变成1MΩ。这就是为什么电流越小输出电阻越大——厄利电压固定时ro跟IC成反比。在LTSPICE里VAF这个参数直接写在.model语句里。比如.model MyNPN NPN(IS1e-14 BF200 VAF100)这行语句定义了一个NPN模型IS是饱和电流BF是正向电流增益VAF就是厄利电压。你可以把这行语句直接放在原理图上用一个SPICE Directive快捷键S写进去然后把三极管的模型名改成MyNPN。2.3 其他影响输出曲线斜率的参数除了VAF还有几个参数也会影响输出特性曲线的形状虽然它们不直接叫“厄利电压”但在LTSPICE仿真里会跟VAF一起起作用。RB基极电阻在基极串联了一个电阻大电流下会让VBE的实际有效值降低导致曲线在高IC区域提前弯曲。RE发射极电阻和RC集电极电阻是体电阻在大电流下产生压降影响饱和区到放大区的过渡。IKF正向大电流滚降点决定了β在多大电流下开始下降间接影响曲线的间距。这些参数在厂商提供的模型里通常都有值但如果你自己手写模型只写VAF也能跑出基本正确的斜率。我的建议是做厄利电压专项仿真时先把RB、RE、RC设为0IKF设为无穷大只留VAF作为变量这样曲线干净容易分析。等把VAF搞清楚了再把其他参数加回来看它们怎么叠加影响。3. 用直流扫描把VA从曲线里“揪”出来3.1 搭建一个最小可用的测试电路要观察输出特性曲线电路本身很简单。一个NPN三极管发射极接地基极通过一个电流源或者电压源加电阻来设定IB集电极接一个独立的电压源VCE。关键点是基极用电流源偏置不要用电压源直接驱动。因为VBE对温度极其敏感电压源驱动的话温度变化一点点IC就飞了。电流源驱动时IC基本由IB乘以β决定稳定得多。具体操作放一个NPN发射极接地。基极接一个电流源IB电流源另一端接地。集电极接电压源VCE电压源另一端接地。然后在集电极串联一个0V的电压源作为电流探针或者直接用LTSPICE的电流探头夹在VCE和集电极之间。仿真指令用.dc扫描.dc VCE 0 10 0.01这行指令让VCE从0V扫到10V步长0.01V。但这样只得到一条曲线对应一个IB值。要得到一族曲线需要嵌套扫描.dc VCE 0 10 0.01 IB 10u 50u 10u这行指令的意思是外层扫IB从10uA到50uA步长10uA内层扫VCE从0V到10V步长0.01V。LTSPICE会跑出5条曲线每条对应一个IB值。注意嵌套DC扫描时LTSPICE默认把内层扫描变量放在横轴。如果你发现横轴变成了IB而不是VCE把.dc指令里两个扫描变量的顺序调换一下就行。3.2 从曲线斜率反推VAF的实操步骤跑完仿真你会看到5条曲线。现在要做的就是从放大区那段“近似水平”的线上把VAF算出来。选一条曲线比如IB30uA那条。在放大区取两个点比如VCE2V和VCE8V。用光标右键曲线选Cursor读出对应的IC值。假设VCE2V时IC5.82mAVCE8V时IC5.94mA。那么ΔIC 5.94 - 5.82 0.12mAΔVCE 8 - 2 6V。输出电导go ΔIC / ΔVCE 0.12mA / 6V 20uS。输出电阻ro 1/go 50kΩ。然后VAF ≈ ro * IC。用哪个IC用中间值比如5.88mA。VAF ≈ 50kΩ * 5.88mA 294V。这个结果跟你模型里设的VAF值应该接近。如果差很多检查一下是不是取了饱和区的点或者VCE范围太小导致读数误差大。提高精度的方法不要只取两个点在放大区取多个点用线性拟合。LTSPICE里可以先把曲线数据导出成文本然后用Excel或者Python做线性回归斜率就是go截距除以斜率就是VAF。这个方法比手动读两个点准得多。3.3 扫描范围选多大才合理VCE扫描范围的选择有讲究。太小了比如0到5V放大区的斜率变化不明显算出来的VAF误差大。太大了比如0到100V对于低压器件来说不现实而且曲线在高VCE区域可能因为其他效应比如雪崩击穿而偏离线性。我的经验是扫描上限取VAF估计值的10%到20%。如果你大概知道VAF在100V左右扫到10V到20V就够了。如果你完全不知道先扫0到30V看看曲线形态再决定精细扫描的范围。另外步长也很关键。0.01V的步长对于10V范围来说就是1000个点曲线很光滑。如果步长太大比如0.5V放大区的斜率可能被量化误差淹没。LTSPICE跑1000个点很快不用担心计算量。4. 输出特性曲线里那些容易被忽略的细节4.1 饱和区到放大区的过渡不是“拐点”教科书上画输出特性曲线饱和区到放大区往往画成一个明显的拐点好像VCE一到某个值曲线就突然变平了。但实际仿真出来的曲线过渡是一个渐变过程。VCE从0V开始上升IC先快速增加然后增加速度变慢最后趋于平缓。没有一个明确的“拐点”。这个渐变区域的宽度跟VAF有关也跟基极驱动方式有关。VAF越小过渡越平缓因为厄利效应在低VCE时就开始起作用了。用电流源驱动时过渡区大概在VCE0.3V到1V之间用电压源驱动时过渡区会更窄但稳定性差。在LTSPICE里看这个过渡区可以把横轴范围设成0到2V纵轴用线性刻度放大看。你会发现IC在VCE0.2V左右就开始偏离陡峭上升段了。这个点对应的VCE就是饱和压降VCE(sat)。对于小功率三极管VCE(sat)通常在0.1V到0.3V之间取决于IC大小。提示如果你在LTSPICE里发现VCE(sat)特别大比如0.8V检查一下是不是模型里的RC或者RE设得太大了。厂商模型里这两个体电阻通常只有几欧姆到几十欧姆如果误设成几百欧姆饱和压降会明显偏大。4.2 曲线间距不均匀说明β在变看那5条曲线IB从10uA到50uA步长10uA。如果β是常数那么IC的间距应该也是均匀的每条曲线之间的ΔIC应该差不多。但实际仿真出来你会发现间距并不完全均匀。低IB时间距小一点高IB时间距大一点或者反过来。这说明β随IC变化。LTSPICE模型里控制这个行为的主要参数是BF理想正向β、IKF大电流滚降点、ISE发射极漏电流和NE漏电流发射系数。在低电流区域ISE和NE决定β的下降在高电流区域IKF决定β的下降。如果你把纵轴改成β用表达式IC/IB然后扫IB就能看到一条“β vs IC”的曲线通常是中间高、两头低的钟形。这个曲线的峰值位置和宽度直接决定了你的电路在什么电流下工作最合适。做厄利电压分析时最好选β比较平坦的那段电流范围。因为如果β变化剧烈曲线间距不均匀你从不同曲线算出来的VAF可能会不一致。选β稳定的区域算出来的VAF才可靠。4.3 温度对曲线的影响在LTSPICE里怎么看LTSPICE默认仿真温度是27°C。要改温度用.temp指令.temp 27 .temp 85或者用.step temp 0 100 25来扫描温度。温度升高时IS增大VBE减小IC增大。在输出特性曲线上同样的IB下IC会整体上移。同时VAF也会随温度变化但变化幅度通常不如IS那么大。对于硅三极管VAF的温度系数大概是每摄氏度变化0.1%到0.5%具体取决于工艺。在LTSPICE里做温度扫描你会看到曲线族整体平移但斜率变化不大。这意味着ro随温度的变化主要来自IC的变化而不是VAF本身的变化。所以在高温下如果IC增大了ro会减小增益会降低。这个效应在精密模拟电路里很重要。比如你设计了一个电流源要求在-40°C到125°C范围内输出电流稳定如果不考虑厄利效应和温度对ro的影响仿真出来的结果可能跟实测差很远。5. 从VA到ro小信号输出电阻的完整计算链5.1 手算ro和LTSPICE仿真ro的对比有了VAF算ro就很简单ro (VAF VCE) / IC ≈ VAF / IC。但这个近似在VCE接近VAF时会失效。比如VAF100VVCE50V那么ro (10050)/IC 150/IC比100/IC大了50%。所以高VCE下要用精确公式。在LTSPICE里怎么直接测ro有两种方法。第一种在集电极加一个AC小信号源跑.ac仿真看集电极电流的AC分量然后ro Vce_ac / Ic_ac。这个方法需要把DC偏置和AC源叠加稍微麻烦一点。第二种用DC扫描在目标VCE附近做微小变化算ΔVCE/ΔIC。比如目标VCE5V扫4.9V到5.1V步长0.001V读出IC的变化然后ro 0.2V / ΔIC。这个方法简单直接精度也够。我通常用第二种方法做验证。比如手算ro50kΩLTSPICE扫出来ΔIC4uAΔVCE0.2Vro0.2/4u50kΩ对上了说明模型参数和手算一致。5.2 ro在共射放大器增益里到底占多大权重共射放大器的电压增益考虑ro之后公式是Av -gm * (RC || ro || RL)其中gm IC / VTVT是热电压室温下约26mV。假设IC1mAgm 1mA / 26mV ≈ 38.5mS。RC10kΩRL无穷大。如果ro无穷大Av -38.5mS * 10kΩ -385。如果ro50kΩ那么RC || ro 10k || 50k 8.33kΩAv -38.5mS * 8.33kΩ -321。差了17%。如果RC更大比如RC50kΩro50kΩ那么RC || ro 25kΩAv -38.5mS * 25kΩ -962。而如果忽略roAv -38.5mS * 50kΩ -1925差了一倍。所以RC越大ro的影响越显著。在高增益放大级里ro往往是限制增益的主要因素。这时候要么增大VAF选高厄利电压的器件要么用 cascode 结构来屏蔽ro的影响。在LTSPICE里验证这个效应很简单把RC从10kΩ逐步增大到100kΩ跑.ac仿真看增益。你会发现增益一开始随RC线性增加但到后面增长变慢最终趋于一个上限这个上限就是-gm * ro。这个上限直接由VAF和IC决定。5.3 电流源和电流镜里的ro厄利效应在电流源电路里影响更大。一个简单的电流镜输出电流的精度直接受ro影响。假设参考电流是Iref输出电流是Iout两个三极管的VAF相同那么Iout / Iref ≈ 1 / (1 VCE_out / VAF) * (1 VCE_ref / VAF)如果VCE_out和VCE_ref不相等Iout就会偏离Iref。偏离量跟VAF成反比。VAF越大偏离越小。在LTSPICE里搭一个电流镜两个NPN基极相连一个的集电极和基极短接作为参考另一个的集电极作为输出。用.dc扫描输出电压看输出电流的变化。你会看到输出电流随输出电压缓慢上升斜率就是1/ro。这个斜率越小电流源越理想。要提高电流源的输出电阻除了选高VAF的器件还可以用cascode结构。在LTSPICE里搭一个cascode电流镜对比一下输出电阻你会发现ro提高了大概gm*ro倍。这个提升非常可观代价是损失了电压余量。6. 那些年我在LTSPICE里踩过的厄利电压坑6.1 模型选错导致VAF完全不对LTSPICE自带很多厂商模型但不同厂商、不同型号的VAF差异很大。比如2N3904的VAF典型值是100V左右2N2222的VAF大概是100V到200VBC547的VAF可能只有50V到80V。如果你随便选一个型号算出来的ro可能跟预期差好几倍。更坑的是有些模型文件里VAF这一项是空的LTSPICE按无穷大处理。你跑出来的曲线是平的算ro算出来无穷大增益算出来无穷大跟实际完全不符。我的做法是每次用一个新的三极管模型先点开模型参数看一眼VAF有没有值。如果没有要么换一个模型要么手动加上。手动加的时候参考数据手册里的输出特性曲线估算一个VAF值填进去。6.2 扫描步长和精度设置不当LTSPICE默认的仿真精度设置是相对误差0.1%绝对电流误差1pA。对于小电流仿真这个精度可能不够。比如你扫IB1uA的情况IC可能只有100uA1pA的绝对误差相对100uA是1e-8看起来很小。但如果你要算ΔICΔIC可能只有1uA1pA的误差就占了0.1%影响不大。真正影响大的是步长。如果你用.dc VCE 0 10 1步长1V放大区只有10个点算斜率的时候误差很大。我一般用0.01V步长1000个点曲线光滑斜率算出来准。还有一个设置是积分方法。LTSPICE默认用trap梯形法在DC扫描里影响不大但在瞬态仿真里可能引起振荡。做DC扫描时不用管这个。6.3 忽略自热效应导致高温下ro算不准LTSPICE的默认模型是等温模型不考虑自热。也就是说不管IC多大结温都固定在仿真温度。但实际器件在大电流下会自热结温升高IS增大IC增大ro变化。如果你要仿真功率三极管在大电流下的输出特性等温模型会低估IC的增大算出来的ro偏大。要模拟自热需要用电热模型把热阻和热容加进去。LTSPICE里可以用behavioral source搭建一个简单的热网络但比较麻烦。对于小信号三极管IC通常只有几毫安自热效应可以忽略。但如果你做的是功率电路比如三极管控制电机IC可能到几百毫安甚至几安培自热效应就不能忽略了。这时候要么用厂商提供的电热模型要么在仿真里手动把温度设成预估的结温。6.4 把厄利效应和雪崩击穿搞混厄利效应是VCE增大时IC缓慢增大曲线微微上翘。雪崩击穿是VCE增大到某个值BVCEO时IC急剧增大曲线几乎垂直向上。两者在曲线上看起来都是“IC增大”但机理完全不同。在LTSPICE里如果你把VCE扫到超过BVCEO会看到曲线突然翘起来。这时候算斜率会得到一个很小的ro但这不是厄利效应是击穿。算VAF一定要在击穿电压以下。BVCEO这个参数在模型里也有默认可能是无穷大也可能是某个值。如果你扫到很高电压发现曲线异常上翘先检查一下BVCEO设了多少。7. 把厄利电压用起来几个实际电路场景7.1 共射放大器增益的精确预估设计一个共射放大器要求增益不低于-200电源电压12V负载10kΩ。选一个NPNβ200VAF100V。偏置电流设多少先算gmgm IC / 26mV。增益Av -gm * (RC || ro || RL)。假设RC10kΩRL10kΩ那么RC || RL 5kΩ。如果忽略roAv -gm * 5kΩ。要Av-200gm 200 / 5k 40mSIC 40mS * 26mV 1.04mA。现在考虑roro VAF / IC 100V / 1.04mA ≈ 96kΩ。RC || RL || ro 10k || 10k || 96k 4.76kΩ。实际Av -40mS * 4.76k -190。比目标-200低了5%。如果要精确达到-200需要把IC稍微调大一点或者把RC调大一点。在LTSPICE里跑一下微调偏置很快就能找到合适的值。这个例子说明在低增益、低负载电阻的情况下ro的影响可能只有百分之几可以忽略。但在高增益、高负载电阻的情况下ro的影响可能超过50%必须考虑。7.2 电流源输出阻抗的优化设计一个1mA的电流源要求输出阻抗不低于1MΩ。用单个三极管VAF100Vro 100V / 1mA 100kΩ不够。用cascode结构输出阻抗大约提高到gm * ro * ro。gm 1mA / 26mV 38.5mSro 100kΩ那么cascode的输出阻抗大约是38.5mS * 100kΩ * 100kΩ 385MΩ。远远超过1MΩ。在LTSPICE里搭一个cascode电流源跑.dc扫描看输出电流随输出电压的变化。你会发现输出电流几乎不变斜率极小。算出来的ro确实在几百MΩ量级。但cascode的代价是电压余量。单个三极管电流源只需要VCE(sat)约0.3V的余量cascode需要两个VCE(sat)加上一个VBE大约1V的余量。在低电源电压下这个代价可能不能接受。7.3 差分对共模抑制比里的ro差分对的共模抑制比CMRR跟尾电流源的输出电阻直接相关。尾电流源的ro越大CMRR越高。如果尾电流源是单个三极管ro VAF / IC。如果IC1mAVAF100Vro100kΩ。如果改成cascodero提高到几百MΩCMRR提高几千倍。在LTSPICE里仿真差分对的CMRR需要跑.ac仿真加共模输入看输出。或者用蒙特卡洛分析看失配的影响。尾电流源的ro越大共模输入引起的输出变化越小。这个效应在精密运放里非常关键。很多运放的CMRR指标上不去就是因为尾电流源的输出电阻不够大。用cascode或者Wilson电流源可以显著改善。8. 仿真之外厄利电压在真实器件里的样子LTSPICE仿真再准也是基于模型。真实器件的厄利电压跟模型里的VAF可能有出入。厂商数据手册里的输出特性曲线是在特定温度、特定脉冲条件下测的。实际电路里温度、自热、封装应力都会影响VAF。我实测过一批2N3904用曲线追踪仪测输出特性算出来的VAF在80V到120V之间分散。同一批次的不同个体VAF可能差20%。这意味着如果你设计一个对ro敏感的电路比如高增益放大器不同个体之间的增益可能差不少。所以在LTSPICE里仿真的时候可以用.step语句扫描VAF看看VAF变化对电路性能的影响。比如.step param VAF list 80 100 120然后在模型里用{VAF}代替固定值。这样跑出来的曲线族能告诉你电路对VAF变化的敏感度。如果VAF从80变到120增益只变了5%那这个设计比较稳健。如果增益变了30%那就要考虑用cascode或者反馈来降低敏感度。这个分析方法比只跑一个典型值有意义得多。很多设计在典型值下看起来没问题一考虑分散性就崩了。提前在仿真里做敏感度分析能避免很多后期调试的麻烦。9. 几个LTSPICE操作上的小技巧9.1 快速切换曲线显示方式跑完.dc扫描默认显示的是线性坐标。要看厄利效应的斜率有时候对数坐标更直观。在LTSPICE里右键纵轴选“Logarithmic”就能切换。但注意如果IC从0开始对数坐标会出问题因为log(0)是负无穷。所以扫描时最好让IC有一个最小值或者用线性坐标看放大区。另一个技巧是用表达式画ro。在波形窗口里右键选“Add Trace”输入1/d(Ic)但这样画出来的是go的倒数不是真正的ro。要画ro需要先定义一个差分。更简单的方法是跑完仿真后用光标读出两个点的IC和VCE手算ro。或者导出数据到Python里算。9.2 用.step扫描多个参数.step语句可以嵌套同时扫描多个参数。比如.step param VAF list 50 100 200 .step param IC list 0.1m 1m 10m这样会跑出9组曲线每组对应一个VAF和IC的组合。你可以看到VAF和IC对ro的联合影响。ro VAF / IC所以VAF越大、IC越小ro越大。这个趋势在曲线族里一目了然。但要注意.step嵌套太多会导致仿真时间成倍增加。9组还好如果扫10个VAF值、10个IC值就是100组每组1000个点总共10万个点LTSPICE跑起来可能要几十秒。合理控制扫描点数。9.3 保存和复用模型参数如果你经常用某个自定义模型可以把.model语句保存成一个独立的.lib文件然后在原理图里用.include指令引用。这样不用每次都手动输入模型参数。具体操作新建一个文本文件写.model语句保存为mymodels.lib。然后在LTSPICE原理图里按S输入.include mymodels.lib。LTSPICE会自动在当前目录和LTSPICE安装目录下找这个文件。这个技巧在管理多个三极管模型时特别有用。你可以建一个库文件里面放十几个常用三极管的模型每个都带VAF值。用的时候直接改三极管的模型名就行不用每次都去翻数据手册。10. 写在最后厄利电压不是“一个数”很多人把厄利电压当成一个固定常数查手册得到一个值然后到处用。但实际上VAF是模型参数不是物理常数。同一个器件在不同电流、不同温度下从输出特性曲线反推出来的VAF可能不一样。模型里的VAF是一个拟合值用来在特定工作范围内逼近真实行为。在LTSPICE里做仿真最重要的是理解模型参数的含义知道它们怎么影响曲线怎么影响电路性能。VAF只是其中一个参数但它对模拟电路的影响非常直接。搞懂它很多以前觉得“仿真跟理论对不上”的问题都会找到答案。我个人的习惯是每拿到一个新的三极管模型先跑一遍输出特性曲线算一下VAF和ro跟数据手册对一下。如果对不上要么换模型要么手动调VAF。这个习惯帮我避免了很多后期调试的麻烦。你也可以试试花不了几分钟但能省下很多查问题的时间。