3. 直流分析(.DC):从原理到二极管IV曲线

直流分析,也就是 .DC 语句,是 LTspice 里最基础也最常用的分析类型。说白了,它就是让电路里的某个参数(比如电压源、电流源、温度)按照你设定的步长,一步一步地变化,然后记录下每个步长下电路的状态。

我刚开始学 SPICE 的时候,觉得这玩意儿太简单了——不就是扫个电压嘛。后来做项目才发现,DC 扫描用好了,能帮你快速摸清一个器件或一个电路的全部脾气。

3.1 DC 扫描的原理

DC 扫描的本质是什么?

你想想看,它就是在做「静态」的遍历。电路里没有电容充放电,没有电感储能,所有元件都工作在直流稳态。然后 LTspice 把你要扫描的源从起始值开始,每次增加一个步长,直到终点值。每改变一次,就解一次电路方程,把节点电压、支路电流算出来。

举个例子:

.DC V1 0 5 0.1

这条语句的意思是:让电压源 V1 从 0V 开始,每次增加 0.1V,一直扫到 5V。总共会算 51 个点(0, 0.1, 0.2, ..., 5.0)。

核心要点:DC 扫描不关心时间,只关心「如果输入是这个值,输出是什么」。它是电路静态特性的快照集合。

我在项目中遇到过一种情况:一个运放的偏置电路,用 DC 扫描看输出电压随电源电压的变化。结果发现某个电源电压区间内,输出突然跳变了。嗯,这就是 DC 扫描的价值——它能暴露电路在某个工作点上的异常行为。

3.2 设置 DC 扫描参数

在 LTspice 里设置 DC 扫描,有两种方式。我建议新手先用图形界面,等熟练了再直接写 SPICE 语句。

3.2.1 图形界面设置

  1. 点击菜单栏 Simulate → Edit Simulation Cmd
  2. 在弹出的对话框里选择 DC sweep 标签页
  3. 配置以下参数:
参数 说明 示例值
Source Name 要扫描的源名称(如 V1, I1) V1
Start Value 起始电压/电流值 0
Stop Value 终止电压/电流值 5
Increment 步长(越小曲线越平滑,但仿真越慢) 0.1

我的习惯:先设一个较大的步长(比如 0.5V)快速跑一遍,看看曲线的大致形状。确认没问题后,再缩小步长(比如 0.01V)做精细扫描。这样能节省大量调试时间。

3.2.2 直接写 SPICE 语句

如果你喜欢用文本方式,直接在原理图上放一个 .DC 语句就行:

.DC V1 0 5 0.1

更复杂的用法——嵌套扫描:

.DC V1 0 5 0.1 V2 0 10 1

这个语句的意思是:先固定 V2=0V,让 V1 从 0 扫到 5V;然后 V2 增加 1V,再让 V1 扫一遍……直到 V2 扫到 10V。最终会生成一组曲线族。

注意:嵌套扫描的仿真时间会成倍增长。外层变量每增加一个步长,内层就要完整跑一遍。我曾经因为设了 3 层嵌套,步长又设得很小,结果仿真跑了整整一个下午……从那以后,我对嵌套扫描就格外谨慎了。

3.3 分析二极管 IV 特性曲线

二极管是 DC 扫描最经典的演示对象。它的 IV 特性——电流随电压的变化关系——用 DC 扫描可以看得一清二楚。

3.3.1 搭建测试电路

在 LTspice 里搭一个最简单的电路:

  • 一个直流电压源 V1(正极接二极管阳极)
  • 一个二极管 D1(型号选 1N4148 或随便一个通用二极管)
  • 一个电流探针或直接在二极管上测电流

电路连接:V1 正极 → D1 阳极,D1 阴极 → GND

3.3.2 设置 DC 扫描

.DC V1 0 1 0.01

从 0V 扫到 1V,步长 0.01V。为什么只扫到 1V?因为硅二极管的导通电压大约 0.6-0.7V,超过 1V 后电流会急剧增大,再往上扫可能烧管子(仿真里不会烧,但曲线会变得很陡,不好看)。

3.3.3 查看结果

仿真完成后,把鼠标移到二极管的连线上,光标会变成电流探针形状。点击一下,就能看到 I(D1) 的曲线。

你会看到什么?

  • 电压在 0-0.5V 之间:电流几乎为 0(截止区)
  • 电压到 0.6V 左右:电流开始明显上升(导通阈值)
  • 电压超过 0.7V:电流呈指数增长(正向导通区)

这就是典型的二极管 IV 特性。你想想看,如果没有 DC 扫描,你要手动测 100 个点才能画出这条曲线。现在 LTspice 几秒钟就搞定了。

关键观察:二极管电流和电压的关系不是线性的。在 0.6V 附近,电压只增加了 0.1V,电流可能增加了 10 倍。这就是为什么二极管可以用作稳压、限幅——它的电压变化范围很小。

3.4 数据导出

仿真做完了,曲线也看了,但有时候你需要把数据拿到 Excel 或 Python 里做进一步处理。LTspice 提供了几种导出方式。

3.4.1 图形界面导出

  1. 在波形图上右键点击曲线,选择 File → Export
  2. 选择要导出的数据(可以选单个曲线或多个曲线)
  3. 设置导出格式:通常选 Plain Text (.txt) 或 CSV (.csv)
  4. 点击 OK,选择保存路径

导出的文件长这样:

V1	I(D1)
0.000000e+000	1.234567e-012
1.000000e-002	2.345678e-012
2.000000e-002	3.456789e-012
...

第一列是扫描变量(电压),第二列是测量值(电流)。直接用 Excel 打开就能画图。

3.4.2 命令行导出

如果你喜欢用脚本,LTspice 也支持命令行导出:

ltspice -b -ascii diode.asc

这个命令会生成一个 .raw 文件,里面包含了所有仿真数据。用文本编辑器打开就能看到。

我的经验:如果数据量很大(比如扫描了 10000 个点),建议用 CSV 格式导出。TXT 格式虽然也能用,但导入 Excel 时容易因为列宽问题导致数据错位。CSV 用逗号分隔,兼容性更好。

3.5 知识结构图

下面这张图总结了 DC 扫描的核心流程和关键要素:

DC扫描知识结构图 DC扫描知识结构 DC扫描 (.DC) 原理:静态遍历 设置参数 应用:二极管IV 步长控制 起始/终止值 图形界面 SPICE语句 正向特性 反向特性 数据导出:TXT / CSV / RAW 图形界面右键导出 或 命令行 -b -ascii

3.6 常见问题与避坑

  • 扫描范围太大:如果你从 -100V 扫到 +100V,步长 1V,LTspice 会算 201 个点。但很多电路在极端电压下可能不收敛,仿真会卡住。我建议先缩小范围,确认电路正常工作后再扩展。
  • 步长太小:步长设到 1μV 不是不行,但如果你扫 10V 范围,就要算 1000 万个点。仿真时间会从秒级变成小时级。除非你在研究非常精细的效应(比如齐纳二极管的击穿拐点),否则没必要。
  • 嵌套扫描的陷阱:外层 10 步 × 内层 100 步 = 1000 次仿真。如果每次仿真需要 0.1 秒,总共就是 100 秒。看起来还行?但如果外层 100 步 × 内层 1000 步,就是 10 万次,3 个小时就没了。

我曾经踩过的坑:有一次做 MOSFET 的 DC 扫描,想看看不同栅压下的漏极电流。我设了 Vgs 从 0 到 5V 步长 0.01V,Vds 从 0 到 10V 步长 0.01V。结果仿真跑了整整一个晚上还没跑完。第二天我才意识到,100 万次仿真对 SPICE 来说也是不小的负担。从那以后,我学会了「先粗扫,再精扫」的策略。

3.7 小结

DC 扫描是 LTspice 里最基础的分析工具,但它的应用远不止看二极管 IV 曲线。你可以用它分析三极管的输出特性、运放的传输特性、稳压管的击穿特性……几乎所有「输入-输出」关系,都可以用 DC 扫描来探索。

记住三个关键点:合理的扫描范围、合适的步长、以及数据导出后的二次分析。掌握了这些,DC 扫描就是你手里最趁手的工具。