仿真故障排查

概览

本文将介绍如何排查 Altium Designer 中的仿真故障,帮助您判断问题出在电路本身还是仿真设置。文章将解释警告与致命错误的区别,概述 SPICE 中出现收敛问题的原因,并提供针对工作点分析、直流扫描分析和瞬态分析的实用排查步骤。您还将了解一些具体的设置和模型调整方法,帮助解决奇异矩阵错误、源步进问题和时间步长问题等常见故障。如果您希望更清晰地掌握排查思路,更快地发现并解决仿真问题,不妨从本指南入手,继续阅读。

- 学习如何解读仿真警告和错误,了解它们揭示的仿真失败原因。
- 获取逐步排查清单,解决收敛问题,涵盖从布线和接地检查到高级分析设置调整的各个环节。
- 了解针对工作点分析、直流扫描分析和瞬态分析的排查技巧,根据发生故障的仿真类型选择合适的解决方法。
使用 AI 深入了解:

当电路无法仿真时,必须确定问题出在电路本身还是仿真过程中。请参考本节中的信息,逐项尝试建议的排查方法。

有时,仿真过程中会显示错误或警告消息。这些消息会列在 Messages 面板中。

  • Warning Messages – 警告消息不会导致仿真终止。它们通常说明 SPICE 为完成仿真而必须对电路进行的更改,包括无效或缺失的参数等。
  • Error Messages – 错误消息提供了有关仿真器无法解决且导致仿真过程终止的问题的信息。错误消息表明无法生成仿真结果,因此必须先修正这些错误,才能分析电路。

仿真分析失败故障排查

收敛是所有仿真器都面临的挑战之一。convergence这个术语究竟是什么意思?与大多数仿真器一样,Altium Designer 的 SPICE 引擎采用迭代过程,反复求解表示电路的方程,以求得电路的静态电压和电流。如果无法求得这些电压和电流(即无法收敛),就无法对电路进行分析。

SPICE 使用以矩阵形式表示的线性联立方程,确定电路在每个仿真步骤中的工作点(直流电压和电流)。电路被简化为一组电导,并将这些电导填入矩阵以构成方程(G * V = I)。当电路包含非线性元件时,SPICE 会对线性方程进行多次迭代,以计入非线性的影响。SPICE 首先估算节点电压的初始值,然后根据电路中的电导计算支路电流。接着,SPICE 使用支路电流重新计算节点电压,并重复这一循环。此过程会持续进行,直到所有节点电压和支路电流的变化均落在指定的容差范围内(即收敛)。

但是,如果电压或电流在指定的迭代次数内未能收敛,SPICE 就会生成错误消息(例如 singular matrix、Gmin stepping failed、source stepping failed 或 iteration limit reached),并中止仿真。SPICE 使用每个仿真步骤的结果作为下一步的初始估计值。如果正在执行瞬态分析(即按时间步进),而 SPICE 无法使用指定的时间步长求得收敛解,则会自动减小时间步长,并重复上述循环。如果时间步长减小到过低的值,SPICE 就会显示 Timestep too small 消息并中止仿真。

常规仿真收敛问题排查

仿真分析失败时,最常见的问题是电路无法收敛到合理的工作点。可使用以下方法解决收敛问题。

收敛问题排查步骤

  • 遇到收敛问题时,首先关闭除工作点分析以外的所有分析。
  • 查看 Messages 面板,检查与仿真相关的错误或警告。
  • 确保电路连接正确。不允许存在悬空节点和未正确连接的元件。
  • 确保电路具有接地节点,并且电路中的每个节点都有通向该接地节点的直流通路。可能隔离节点的元件包括变压器和电容器。电压源视为直流短路,电流源视为直流开路。
  • 确保输入仿真参数时没有将数字 0 与字母 O 混淆。
  • 确保为所有元件值或仿真参数指定了正确的 SPICE 倍率后缀(对于 1e6,应使用 MEG,而不是 M)。倍率后缀不区分大小写。此外,数值与倍率后缀之间不允许有空格。例如,应为 1.0uF,而不是 1.0 uF。
  • 确保所有器件和源均已设置为正确的值。
  • 确保所有受控源的增益设置正确。
  • 暂时移除串联电容器或电流源,然后重新运行仿真。
  • 暂时移除并联电感器或电压源,然后重新运行仿真。
  • 在 Advanced Analysis Settings 对话框的 Advanced 选项卡上(单击 Simulation Dashboard 面板的 Analysis Setup & Run 区域中的 Settings 即可打开该对话框),将 ITL1 参数的值增大到 300。这将允许工作点分析在放弃求解之前进行更多次迭代。
  • 在 Advanced Analysis Settings 对话框的 Advanced 选项卡上,设置 RSHUNT1 的值。此阻值的电阻会添加在每个电路节点与地之间,有助于解决“奇异矩阵”等错误。通常,RSHUNT 必须设置为非常高的阻值,例如 1e12。
  • 添加 .NS(Nodeset)器件以定义节点电压。如果节点电压的初始估计值偏差过大,可以使用 Nodeset 器件预定义一个起始电压,供工作点分析的预分析阶段使用。配置每个已放置的 Nodeset 器件中的 Initial Voltage 参数。Nodeset 可以从 Simulation Generic Components 库中放置。
  • 如果 Nodeset 器件无助于收敛,可尝试放置 .IC 器件来定义初始条件。在这种情况下,节点电压在工作点分析期间保持为指定值,然后在瞬态分析期间解除约束。初始条件器件可以从与 Nodeset 器件相同的库中放置,并且必须以相同方式配置初始电压参数。
  • 启用 Simulation Dashboard 面板的 Analysis Setup & Run 区域中 Transient 设置下的 Use Initial Conditions 选项。此选项与 .IC 器件(或元件的 IC 参数)配合使用。设置此选项后,将不执行工作点分析,而是将指定的电压用作瞬态分析的初始条件。
  • 指定模型的串联电阻参数,并将 GMIN 选项(位于 Advanced Analysis Settings 对话框的 Advanced 选项卡上)的值增大为原来的 10 倍。
  • 将半导体器件(尤其是二极管)的初始条件(起始条件)指定为 OFF。这样可以在第一次迭代时跳过二极管(或半导体器件),有助于解决数值收敛问题并改善收敛性。

直流扫描分析故障排查

直流扫描分析出现问题时,请先尝试上述收敛问题排查步骤。如果仍然遇到问题,请尝试以下方法:

  • 更改 Simulation Dashboard 的 Analysis Setup & Run 部分中的 Step 参数值。如果器件模型中存在不连续性(可能位于模型的线性区与饱和区之间),增大步长可能使仿真跨过不连续点。另一方面,减小步长则可使仿真解析电压快速跃变造成的不连续性。
  • 不要使用直流扫描分析。某些问题(例如迟滞)无法通过直流分析解决。在这种情况下,使用瞬态分析并使相应电源的值逐渐变化会更加有效。

瞬态分析故障排查

如果瞬态分析出现问题,请先尝试上述收敛问题排查步骤。如果问题仍然存在,请尝试以下方法。

在 Advanced Analysis Settings 对话框的 Advanced 选项卡上(单击 Simulation Dashboard 面板的 Analysis Setup & Run 区域中的 Settings 可打开此对话框):

  • 将 RELTOL 参数设置为 0.01。增大其默认容差 0.001(精度为 0.1%)后,求解收敛所需的迭代次数会减少,仿真也会更快完成。
  • 将 ITL4 参数的值增大到 100。这样,瞬态分析在放弃求解之前,可以在每个时间步内执行更多次迭代。增大此值可能有助于消除 timestep too small 错误,同时改善收敛性并提高仿真速度。
  • 如果电流/电压幅值允许,可增大 ABSTOL 和 VNTOL 的值以降低精度。您的具体电路可能不需要低至 1uV 或 1pA 的分辨率。不过,分辨率应至少比电路中预期的最低电压或电流小一个数量级。
  • 将 Integration Method 更改为某种 Gear 方法。Gear 积分法需要更长的仿真时间,但通常比梯形积分法更稳定。对于存在振荡或具有反馈路径的电路,Gear 积分法可能尤其有用。

还可以尝试以下方法:

  • 根据实际情况建立电路模型。加入符合实际的寄生参数,尤其是杂散电容和结电容。在二极管两端添加 RC 吸收电路。用子电路替代器件模型,尤其是射频器件和功率器件的模型。
  • 增大电路中所有周期脉冲源的上升/下降时间。即使是最好的脉冲发生器,也无法瞬时切换。
AI-LocalizedAI 翻译
如您发现任何问题,请选中相关文本/图片,并按 Ctrl + Enter 键向我们提交反馈。
Contents
功能可用性

您可使用的功能取决于您所采用的 Altium 解决方案——Altium Develop、Altium Agile Teams、Altium Agile Enterprise,或 Altium Designer(在有效订阅期内)。

如果您在实际软件中未看到文档中介绍的某项功能, 请联系 Altium Sales 了解更多信息。

旧版文档

Altium Designer 文档不再提供版本区分。如果您需要访问 Altium Designer 旧版本的文档,请前往其他安装程序页面的旧版文档部分。

Contents