文章来源 Macnica Engineer

活学活用 LTspice 进行电路设计 — 指定 .func 命令的常数运行仿真并进行参数分析

在上篇 LTspice 系列文章中,我们分享了如何利用ISO模型进行电源线瞬态电传导干扰测试,本文将介绍使用 .func 命令中的指定常数以有效运行仿真并进行参数分析的方法。更多参数分析的内容,可查阅《活学活用LTspice进行电路设计 — 用 .step 命令更改参数》

关于参数分析

在 LTspice 中可以使用 ".step param " 命令来改变仿真时的多个参数,可通过以下设置轮流运行四个模拟仿真:

  • step param A list A1 A2
  • step param B list B1 B2
  • Step 1; A1 B1
  • Step 2; A1 B2
  • Step 3; A2 B1
  • Step 4; A2 B2

使用 .step 参数运行仿真

尝试使用 .step param 命令模拟一个实际的 RC 电路。如下图 (图1) 所示,将电阻 (RES) 设置为 10k 20k,电容 (CAP) 为 1u 3u,创建一个 RC 电路进行仿真。

图1 使用 .step 参数命令的 RC 电路
图1 使用 .step 参数命令的 RC 电路

如上图 (图1) 中的电路,使用设置了两种电阻模式和电容模式进行模拟,其仿真结果如下图 (图2) 所示,可以看到,在 2x2 模式下总共得到了 4 种不同结果:

图2 使用 .step 参数的 RC 电路仿真结果
图2 使用 .step 参数的 RC 电路仿真结果

如果想得到如下表 (表1) 中两种特定组合的仿真结果,需要在仅使用 .step param 命令下运行四次仿真,并只能在必要条件下提取结果。由于这是一个 RC 电路,仿真时间短,所以不必担心运行四次的耗时。但如果考虑包含多个开关稳压器的电路,运行四次不同的仿真会花费较长的时间,这时需要考虑如何只运行两个条件。如果有模拟数组模式或可以任意选择要运行的参数命令,那么就可以只选择特定条件并运行模拟。

 电阻 电容器
条件 1 10kΩ 1uF
条件 2 20kΩ 3uF

表1 模拟条件

使用 .func 命令运行仿真

目前还没有任何命令或函数能够真正运行仿真数组模式或成对选择多个参数的函数,然而可以通过编写和使用 .func 命令来运行仿真,如下图 (图3) 所示,可以只选择上表 (表1) 中的两个条件进行模拟。 

图3 使用 .func 的参数分析电路
图3 使用 .func 的参数分析电路

接下来为大家介绍电路图中描述的 SPICE 命令。在 .func 命令中可自定义函数,这里的函数被命名为 “box”。首先需要输入元素编号 “x” 作为第一个参数,然后根据需要设置参数 (这里有两个参数:P0 和 P1)。

 

在该函数中使用了 “buf” 函数。“buf" 函数的内容为:如果圆括号有效,它返回 "True",如果无效,它返回 "FALSE"。 当它为 “True” 时返回 “1”,当它是 “FALSE” 时返回 “0”,因此该函数是乘以参数后相加。如果增加 “x”,那么与 "x" 对应的参数就会被选中,而未选择的参数将被删除,其公式为:.func box(x, p0, p1) {buf(x==0)*p0+buf(x==1)*p1}。

 

关于如何选择参数,需要在 “.param” 中指定要使用的变量,并根据 “.func” 中定义的函数输入要输入的值。需要注意,box () 开头的是 “. func“ 中定义的参数,所以一定要输入它,公式为:param RES=box(x, 10k, 20k);param CAP=box(x, 1u, 3u)。接下来使用 “.step 参数” 来增加 “x”。 在这种情况下 “x” 被选为 “0” 和 “1”,但最终将以 "x "为参数的指定值被输入参数,公式为:.step param x list 0 1。最后当运行包含这些命令的电路图并只对表1中指定的两个条件进行输出时,得到的结果如下图 (图4) 所示:

图4 使用 .func 命令的仿真结果
图4 使用 .func 命令的仿真结果

总结

本文介绍了利用 .func 命令运行仿真的方法,并展示了通过设置函数以进行参数分析的过程。欲了解更多技术细节和 LTspice 相关操作,您可以点击下方「联系我们」,提交您的需求,骏龙科技公司愿意为您提供更详细的技术解答。

相关阅读

更多資訊: