如何使用新版本的 LTspice 进行模拟电路仿真

集成电路仿真程序SPICE,Simulation Program with Integrated Circuits Emphasis)是一款以文本进行描述,可以通过数学方法来预测电路行为的仿真工具,也是电子自动化设计与现代半导体工业的基石。其被广泛应用于模拟电路(例如运放算放大器、稳压电源,模数与数模转换等),混合信号电路(锁相环、存储器、高速 GPIO),精密数字电路(延时、时序、功耗、漏电流等)等场景的模拟与仿真(大型电子元器件生产企业通常都提供了元件配套的 SPICE 模型)。

亚德诺半导体公司(Analog Devices)推出的 LTspice 是一款界面简洁,但是功能强大的免费 SPICE 电路仿真工具,其可以基于原理图快速准确的生成仿真结果,并且将这些结果通过内置的波形查看器进行展示,除此之外还内置有丰富的 SPICE 模型(包含有基本的无源元件以及 ADI 公司的电源管理信号链产品),可以预先为模拟电路的设计以及元器件的选型提供重要的实验数据参考,从而降低电路设计过程当中产生的各种试错成本,有效的提高设计工作效率。

基础操作

LTspice 自带有一系列后缀名称为 .asc仿真原理图示例文件,它们都位于 Windows 操作系统的 C:\Users\hank\AppData\Local\LTspice\examples 目录下面,主要包含有如下两个目录:

  • Educational 目录:提供有一些基础的参考示例电路。
  • Applications 目录:亚德诺半导体公司产品相关的仿真原理图。

LTspice 的主界面,鼠标依次点击菜单栏上的【File -> Open Examples...】,就可以打开 examples 目录,从而可以查看选中的 .asc 仿真原理图文件:

这里打开 Educational 目录下的 colpits.asc 振荡电路示例文件,然后按下键盘上的【空格】键,就可以将仿真原理图缩放至一个适配当前屏幕的显示尺寸:

注意:鼠标滚轮向前是缩小操作,鼠标滚轮向后是放大操作。

鼠标点击 LTspice 顶部菜单栏上的【Run/Pause】按钮,或者按下快捷键【Alt + R】,此时就会在 Educational 目录下自动生成一个 colpits.raw 波形数据文件,同时也会在主界面打开一个可以单独进行 拖动关闭最大化最小化 的波形数据预览窗口:

鼠标点击 LTspice 顶部菜单栏上的【Window -> Tile Horizontally/Vertically】按钮,可以设置主界面当中窗口的平铺方向(垂直或者水平):

此时,把鼠标移动到主界面右侧的 colpits.asc 仿真原理图上面,就可以使用下图所示的电压探头或者电流探头(会有箭头标识出电流的方向),查看该所对应的电压或者电流信号的情况:

电压与电流信号的相关波形,将会自动展示到主界面当中的 colpits.raw 波形数据文件预览窗口:

注意:除此之外,按下键盘上的【ALT】键不放,将鼠标移动到仿真电路当中的元器件上面,此时鼠标会显示为一个温度计符号,按下鼠标左键就可以在波形显示窗口查看到该元器件所消耗的功率情况。

使用鼠标框选 colpits.raw 波形数据文件预览窗口当中的波形,就可以放大该区域的波形细节(此时如果按下【空格键】或者在波形上展开鼠标右键菜单点击【Zoom to Fit】可以恢复波形预览到初始状态):

注意:当使用 LTspice 绘制仿真原理图的时候,必须手动为电源负极添加一个 GND 符号。

常用快捷键

在下面的表格里,展示了 LTspice 当中使用频率非常高的一些快捷键(这些快捷键也可以通过展开菜单栏上的【Edit】进行查看或者使用):

快捷键 英文 中文
Ctrl + Z Undo 撤消
Ctrl + Shift + Z Redo 重做
T Text 文本
. SPICE Directive 输入 SPICE 点命令
A Configure SPICE Analysis SPICE 分析配置
R Resistor 电阻
C Capacitor 电容
L Inductor 电感
D Diode 二极管
P Component 放置元件
Ctrl + R Rotate 旋转
Ctrl + E Mirror 镜像
W Draw Wire 绘制连线
N Label Net 网络标号
G Place GND 放置 GND 标签
B Place BUS tap 放置总线抽头
M Move 移动
S Stretch 伸缩
Backspace】或【Del Delete 删除
Ctrl + C Duplicate 复制
Ctrl + V Paste 粘贴

快捷键设置

鼠标依次点击 LTspice 菜单栏上的【Simulate -> Settings】打开设置对话框,选中该对话框里的【Schematic】选项卡,按下该界面上的【Keyboard Shortcuts[*]】按钮:

这样就可以查看和修改 LTspice 全部的快捷键设置,其最新的 24.0.0 版本与早期其它版本的默认快捷键设置有所不同,具体请参考如下界面当中的默认设置:

常量符号

LTspice 常量符号 释义 LTspice 常量符号 释义
e 欧拉数 true \(1\)
pi 圆周率 \(\pi\) false \(0\)
k 波尔兹曼常数 mil \(25.4 \times 10^{-6} m\)
q 电荷常数 - -

单位符号

单位名称 LTspice 单位符号 英文释义 数量级
T 或者 t Tera \(10^{12}\)
G 或者 g Giga \(10^{9}\)
meg Mega \(10^{6}\)
K 或者 k Kilo \(10^{3}\)
M 或者 m Milli \(10^{-3}\)
U 或者 u Micro \(10^{-6}\)
N 或者 n Nano \(10^{-9}\)
P 或者 p Pico \(10^{-12}\)
F 或者 f Femto \(10^{-15}\)

注意:表达 \(10^6\) 数量级要使用 MEG 或者 meg,而不是使用 M 或者 m;电容器的参数设置里输入 1 表示的是 1 法拉第,而不能使用 1F 或者 1f

SPICE 点命令

LTspice 当中运行的 SPICE 命令总是以一个点 . 作为前缀,因而也被称作点命令,常用的点命令如下面的表格所示:

点命令 英文描述 中文描述
.AC Perform an Small Signal AC Analysis Linearized About the DC Operating Point 进行关于直流工作点的线性小信号交流分析
.BACKANNO Annotate the Subcircuit Pin Names on Port Currents 在端口电流上面标注子电路的引脚名称
.DC Perform a DC Source Sweep Analysis 执行直流源扫描分析
.END End of Netlist 标识网表的结束
.ENDS End of Subcircuit Definition 标识子电路定义的结束
.FERRET Download a File Given the URL 从指定的 URL 地址下载文件
.FOUR Compute a Fourier Component 计算傅里叶分量
.FRA Perfom a Time-Domain Frequency Response Analysis 执行时域频率响应分析
.FUNC User Defined Functions 用户定义的功能
.GLOBAL Declare Global Nodes 声明全局节点
.IC Set Initial Conditions 设置初始条件
.INCLUDE Include Another File 包含另一个文件
.LIB Include a Library 包含一个库
.LOADBIAS Load a Previously Solved DC Solution 加载已经解析过的直流解决方案
.MACHINE Arbitrary State Machine 任意状态机
.MEASURE Evaluate User-Defined Electrical Quantities 求解用户自定义的工程量
.MODEL Define a SPICE Model 定义一个 SPICE 模型
.NET Compute Network Parameters in a .AC Analysis 在一个交流分析当中,计算电路网络的参数
.NODESET Supply Hints for Initial DC Solution 为初始的直流解决方案提供提示
.NOISE Perform a Noise Analysis 进行噪音分析
.OP Find the DC Operating Point 查询直流工作点
.OPTIONS Set Simulator Options 设置仿真工具的选项
.PARAM User-Defined Parameters 用户定义的参数
.SAVE Limit the Quantity of Saved Data 限制保存数据的数量
.SAVEBIAS Save Operating Point to Disk 保存工作点到磁盘
.STEP Parameter Sweeps 参数扫描
.SUBCKT Define a Subcircuit 定义一个子电路
.TEMP Temperature Sweeps 温度扫描
.TEXT User-Defined Strings 用户定义的字符串
.TF Find the DC Small-Signal Transfer Function 查找直流小信号传递函数
.TRAN Do a Nonlinear Transient Analysis 执行非线性瞬态分析
.WAVE Write Selected Nodes to a .Wav File 将选定的节点写入 .wav 文件

SPICE 分析类型

鼠标点击 LTspice 主界面顶部菜单栏上的【Simulate -> Configure Analysis】 或者直接按下快捷键【A】,就可以进入如下的 SPICE 仿真命令配置对话框:

瞬态分析 Transient

瞬态分析指令 .tran 用于描述电路当中,各个节点的电压与通过元件的电流跟随时间的变化关系,即仿真电路在时域下的行为:

瞬态分析指令 .tran 主要拥有如下几个参数:

  • StopTime:停止时间,该参数用于以为单位设定仿真的持续时间。
  • Time to Start Saving Data:仿真数据保存至 .raw 波形文件的开始时间。
  • Maximum Timestep:最大时间间隔,也就是时间的步进长度(缺省表示无限大)。

瞬态分析指令 .tran 主要拥有如下几个修饰符:

  • Start external DC supply voltages at 0V:让直流电源从 0V 开始上升,并于 20 微秒之后达到设定的电压值。
  • Stop simulating if steady state is detected:如果检测到稳定状态就会停止仿真(只会保存最后 10 组重复数据)。
  • Don't reset = 0 when steady state is detected:如果检测到稳定状态就会停止仿真(将会保存全部数据)。
  • Step the load current source:使用电流源作为负载时,可以使得负载的电流值逐步变化(即每达到一个稳定状态之后,就会向下变换为另外一个电流值)。
  • Skip initial operating point solution:启用元器件的初始状态值。

交流分析 AC Analysis

交流分析指令 .ac 可以用于分析小信号的交流频率特性,即仿真电路在频域下的行为(由于目标分析频率处于 0.1Hz ~ 100MHz 之间较为宽广的范围,所以频率轴通常被表达为对数刻度,计算基准可以设置为每间隔 2 倍或者 10 倍):

  • Type of sweep:扫描类型,每两倍(Octave)、每十倍(Decade)、线性(Linear)、列表(List)。
  • Number of points per X:这里的 X 是上面设置的扫描类型,通常在 Octave 情况下配置为 20 ~ 40 点,而在 Decade 情况下配置为 30 ~ 100 点。虽然点的数量越多就越精确,但是会花费掉额外的计算时间,所以需要具体情况具体分析。
  • Start fequency:计算开始频率,单位为 Hz
  • Stop fequency:计算截止频率,单位为 Hz

直流扫描分析 DC Sweep

直流扫描分析指令 .dc 可以动态变换直流源的输出值(最大可以设置 3 组扫描变量),可以用于分析二极管的伏安特性,晶体管的静态特性(将基极电流作为参数,观察集电极电流的变化情况),以及放大器的输入输出关系:

  • Name of 1st/2nd/3rd Source to Sweep:输入用于扫描的电压源、电流源的元件名名称,例如 V1 或者 I2
  • Type of Sweep:每两倍(Octave)、每十倍(Decade)、线性(Linear)、列表(List)。
  • Start Value:扫描起始的电压或者电流。
  • Stop Value:扫描结束的电压或者电流。
  • Increment:扫描增量,即间隔的幅度值。

噪声分析 Noise

噪声分析指令 .noise 用于仿真电路当中输入输出相关的频率噪声特性,也就是在频域下进行噪声分析(横轴频率纵轴噪声密度)。其中噪声的单位为 \(\frac{nV}{\sqrt{Hz}}\)(如果想分析某个频带的噪声,只需要将该频带振幅的频率进行平方之后,再乘以噪声的电压密度即可推算出来)。

  • Input:输入噪声的结点网络标签。
  • Qutput:输出噪声的结点网络标签。
  • 其它参数:与交流分析(AC Analysis)相关的参数相同。

注意:在该模式下按住键盘上的【CTRL】键,然后鼠标左键点击波形预览窗口上的 \(V(onoise)\) 标签,就可以查看总电压噪声的均方根值(RMS,Root Mean Square)。

直流传递分析 DC Transfer

直流传输分析命令 .tf 通过将偏置点附近的微小变化视为直线,从而计算出小信号的输入输出的传递函数值,以及输入阻抗输出阻抗

  • Source:电压源或者电流源的网络标签名称(不能使用节点电压元件电流的名称)。
  • Output:指定结点的电压,或者指定元件上面通过的电流。

注意传递函数用于描述一个电路网络的输出输入的拉普拉斯变换之比。

直流工作点分析 DC op pnt

直流工作点分析指令 .op 用于分析晶体管电路当中不含有交流成分的直流偏置信号,该指令通常不会单独使用,而是会与其它分析方式结合起来使用。这条指令没有扩展的修饰词,所以在点击下面界面当中的【OK】按钮之后,就可以将该指令放置在仿真原理图上的任意位置进行执行:

注意:当在仿真原理图上放置好 .op 命令,并且运行完毕之后,就会自动弹出一个【Operating Point】工作点列表窗口界面。

瞬态频率响应分析 Transient Frequency Response

瞬态频率响应分析指令 .fra 用于分析电路反馈回路的频率响应,使用时仿真原理图电路当中必须包含有一个以 @ 作为前缀的频率响应分析器(FRA,Frequency Response Analyzer),:

选择 LTspice 菜单栏上的【Edit -> Component】或者直接按下快捷键【P】,然后在元件对话框的 Search 里输入 fra,就可以完成频率响应分析器的放置:

运用 .fra 指令的时候,需要对频率响应分析器的相关分析参数进行详细配置,这些配置参数被划分为了分析类型激励频率激励幅值通用四个部分:

独立电压 & 电流源

独立电压源

LTspice 仿真原理图编辑界面,按下快捷键【P】,在弹出的元件选择窗口 Search 里输入 voltage,然后点击【确定】按钮,就可以向当前的仿真原理图上添加一个独立电压源:

在仿真原理图的电压源符号上点击【鼠标右键】,就会弹出一个电压源参数设置窗口,可以用于输入电源的直流输出电压值(单位为伏特 V),以及电源的内阻(单位为欧姆 Ω):

此时如果点击电压源参数设置窗口上的【Advanced】按钮,就可以设置更多关于独立电压源的参数:

独立电流源

LTspice 仿真原理图编辑界面,按下快捷键【P】,在弹出的元件选择窗口 Search 里输入 current,然后点击【确定】按钮,就可以向当前的仿真原理图上添加一个独立电流源:

在仿真原理图的电流源符号上点击【鼠标右键】,就会弹出一个电流源参数设置窗口,该窗口只可以用于输入电源的直流输出电流值(单位为安培 A):

此时如果点击电流源参数设置窗口上的【Advanced】按钮,就可以设置更多关于独立电流源的参数:

参考方向

LTspice 仿真原理图同样遵循电路原理当中关联参考方向的相关定义,即当独立电压源(由正极指向负极)与独立电流源的方向相反时(即非关联参考方向),电路网络当中的电压与电流为负数

而当独立电压源(由正极指向负极)与独立电流源的方向相同时(即关联参考方向),电路网络当中的电压与电流的仿真结果则为正数

波形信号的产生

打开 LTspice 主界面,选择菜单栏上的【Voltage Source】或者按下快捷键【V】放置一个电压源,然后在该电压源上面点击鼠标右键,打开电压源参数设置对话框:

方波

鼠标点击上面电压源参数设置对话框当中的【Advanced】按钮,在弹出的独立电压源的高级参数设置界面选择【PULSE】项,就可以配置脉冲波的相关参数:

如果把脉冲电压设置为 3.3V脉冲持续时间设置为 1m 秒,周期设置为 2m 秒,输出的周期数量设置为 200 个,上升和下降沿时间分别设置为 10n 秒:

按下快捷键【Alt + R】运行仿真原理图,就可以从下图左侧独立电压源的 OUT 端口,输出下图右侧所示的方波脉冲信号:

正弦波

在弹出的参数设置对话框当中,选择【Advance】按钮,打开如下的独立电压源参数设置窗口,选择其中的【SINE】正弦信号,就可以进一步配置相关的参数:

如果把电压幅度设置为 220V频率设置为 50Hz,就可以获得 200V 民用交流市电的波形:

按下快捷键【Alt + R】运行仿真原理图,就能够从下图左侧独立电压源的 OUT 端口,输出下图右侧所示的正弦脉冲信号:

四种受控源

电压控制电压源

电压控制电压源E 作为网络标号的前缀,在仿真原理图界面按下元件放置快捷键【P】之后,在 Search 栏输入 e 或者 e2 就可以查找并放置:

上述仿真原理图当中的电压源 V1,输出一个 3.3V 的直流电压,以此作为电压控制电压源 E1 的控制电压。将 E1控制系数设置为 3,那么其输出端就会输出一个 9.9V 的直流电压。

电压控制电流源

电压控制电流源G 作为网络标号的前缀,在仿真原理图界面按下元件放置快捷键【P】之后,在 Search 栏输入 g 或者 g2 就可以查找并放置:

上述仿真原理图当中的电压源 V1,输出一个幅值为 3.3V,频率为 1KHz 的正弦信号,以此作为电压控制电流源 G1 的控制电压。将 G1控制系数设置为 2,那么电阻 R1 上面就会通过一个变化幅值为 6.6A,变化频率同样为 1KHz 的电流信号。

电流控制电压源

电流控制电压源H 作为网络标号的前缀,在仿真原理图界面按下元件放置快捷键【P】之后,在 Search 栏输入 h 就可以查找并且放置:

上述仿真原理图当中的电压源 V1,输出一个幅值为 5V,频率为 1KHz 的正弦信号,导致电阻 R2 上通过的电流也呈正弦规律变化,以此作为电流控制电压源 H1 的控制电流。将 H1控制系数设置为 3,那么电阻 R1 上面就会通过一个变化幅值为 15V,变化频率同样为 1KHz 的电压信号。

注意:电流控制电压源的 Value 参数,需要采用 电源网络标号 + 空格 + 控制系数 的格式进行定义。

电流控制电流源

电流控制电流源F 作为网络标号的前缀,在仿真原理图界面按下元件放置快捷键【P】之后,在 Search 栏输入 f 就可以查找并且放置:

上述仿真原理图当中的电压源 V1,输出一个幅值为 5V,频率为 1KHz 的正弦信号,导致电阻 R2 上通过的电流也呈正弦规律变化,以此作为电流控制电流源 F1 的控制电流。将 F1控制系数设置为 6,那么电阻 R1 上面就会通过一个变化幅值为 30A,变化频率同样为 1KHz 的电流信号。

注意:电流控制电流源的 Value 参数,需要采用 电源网络标号 + 空格 + 控制系数 的格式进行定义。

基本无源元件模型

电阻

电容

电感

变压器

基本有源元件模型

二极管

三极管

场效应管

导入外部 SPICE 模型

仿真实例

暂态仿真实例

模拟电路当中,电阻串联之后具备分压的功能,例如电压源 \(V\) 两端的电压为 6V,三枚阻值分别为 R1 = 1ΩR2 = 2ΩR3 = 3Ω 的电阻串联之后,每一枚电阻上通过的电流 \(I\) 与所分得的电压 \(V\) 如下面计算所示:

\[ \begin{cases} I_1 = I_2 = I_3 = \frac{V}{R_1 + R_2 + R_3} = 1A; \\ V_1 = V = 6V \\ V_2 = V \times \frac{R_2 + R_3}{R_1 + R_2 + R_3} = 6V \times \frac{2Ω + 3Ω}{1Ω + 2Ω + 3Ω} = 5V \\ V_3 = V \times \frac{R_3}{R_1 + R_2 + R_3} = 6V \times \frac{3Ω}{1Ω + 2Ω + 3Ω} = 3V \\ V_{12} = V \times \frac{R_1}{R_1 + R_2 + R_3} = 6V \times \frac{1Ω}{1Ω + 2Ω + 3Ω} = 1V \\ V_{23} = V \times \frac{R_2}{R_1 + R_2 + R_3} = 6V \times \frac{2Ω}{1Ω + 2Ω + 3Ω} = 2V \\ V_{13} = V \times \frac{R_3}{R_1 + R_2 + R_3} = 6V \times \frac{3Ω}{1Ω + 2Ω + 3Ω} = 3V \\ \end{cases} \]

接下来绘制出这个电阻串联电路,打开 LTspice 的主界面之后,按下键盘上的快捷键【Ctrl + N】,就可以在 C:\Users\hank\Documents\LTspice 目录下面新建一个默认名称为 Draft1.asc 的仿真原理图文件:

完成仿真原理图的绘制之后,鼠标点击 LTspice 主界面顶部的【Configure Analysis】按钮,或者直接按下快捷键【A】,选择暂态分析【Transient】选项卡,并将仿真的停止时间设置为 1 秒:

LTspice 的仿真原理图上面移动鼠标,就可以使用电流探头或者电压探头测量相应位置的参数(仔细观察可以发现,这些参数与上面手动计算的结果一致),并将这些参数显示到波形预览界面(同时会在仿真原理图文件 Draft1.asc 所在的目录,自动生成出一个 Draft1.raw 波形文件):

注意:测量两点之间的相对电压,需要鼠标左键选定第 1 个点的位置之后(此时电压探头为红色),继续按住鼠标左键拖动至第 2 个点的位置(此时电压探头为黑色)。

交流仿真实例

在模拟电路当中,由一个电阻 R = 10kΩ 和一个电容 C = 0.1uF 组成的 RC 低通滤波器,其截止频率 \(f_{C}\) 的计算公式如下面所示:

\[ f_{C} = \frac{1}{2 \pi RC} = \frac{1}{2 \pi \times 10000 \times 0.0000001} \approx \frac{1}{0.00628} \approx 159.24 Hz \]

接下来绘制出这个 RC 低通滤波器电路,打开 LTspice 的主界面之后,按下键盘上的快捷键【Ctrl + N】,就可以在 C:\Users\hank\Documents\LTspice 目录下面新建一个默认名称为 Draft1.asc 的仿真原理图文件:

完成仿真原理图的绘制之后,鼠标点击 LTspice 主界面顶部的【Configure Analysis】按钮,或者直接按下快捷键【A】,选择【AC Analysis】交流分析选项卡,配置相关的仿真分析参数:

鼠标点击 LTspice 主界面顶部的【Run/Pause】按钮,或者按下快捷键【Alt + R】开始运行仿真,紧接着将鼠标移动到 OUT 端口查看输出电压 \(V(out)\) 的波形:

RC 低通滤波器的截止频率 \(f_C\) 就是增益降低至 -3dB 时候的频率,使用鼠标左键双击右侧波形预览窗口顶部的 \(V(out)\),然后移动光标至 -3dB 位置,就可以查看到该位置对应的频率为 159.78631Hz,与前面计算的结果相类似:

如何使用新版本的 LTspice 进行模拟电路仿真

http://www.uinio.com/Electronics/LTspice/

作者

Hank

发布于

2024-05-22

更新于

2024-06-13

许可协议