LTspice 里的 PWL 分段线性电压源属于那种“看帮助文档三分钟就懂、真到用的时候处处是坑”的功能。很多人第一次用它无非是想画个梯形波、做个使能信号结果发现波形对不上、时间轴差了一千倍、仿真慢到跑不动最后又退回 VPULSE 加几个串联源硬拼。我这些年做电源环路、时序验证、故障复现PWL 几乎是每次开原理图就要拖出来的元件用熟了之后它能把原来需要写一堆 B 源表达式的活儿压缩成一行网表。这篇内容就是把 PWL 从“能画个折线”讲到“能当测试激励源用”的完整路径包含语法细节、参数化写法、四类高频场景的实操、一个完整的多激励联合仿真案例以及我踩过的那些坑。适合已经会用 LTspice 跑基本瞬态仿真、想让激励更贴近真实工况的人看刚上手的新手也能从语法那一节顺着往下读。1. PWL 到底解决了什么问题从场景倒推方案选型1.1 三个绕不开的真实场景做电源或者接口电路仿真激励源的需求基本逃不出三类。第一类是时序类某一路电源要先于另一路建立使能脚要在输入稳定后延时 10ms 拉高上电过程中还要模拟一个缓慢爬升的软启动斜坡。这类波形的特征是“分段、折线、时间点明确”用正弦源、脉冲源都表达不了因为 VPULSE 只能描述一个理想方波加延迟遇到“先缓升 2ms、平台 3ms、再断崖下跌 200us”这种形状就无能为力了。第二类是扰动类输入母线在正常工作 8ms 后突然跌到 9V维持 1.5ms 再恢复斜率还有要求或者模拟一次热插拔浪涌电压在 50us 内冲到 18V 再衰减回来。这类波形在时域上是完全任意的本质就是一组“时间—幅值”点对。第三类是数据回放类手上有一台设备实测的输入电压波形导成 CSV想原样灌进仿真里看后级电路怎么响应。这时候任何参数化波形源都不好使只能靠外部数据驱动。这三类需求有一个共同点波形本身就是数据不是公式。PWLPieceWise Linear分段线性的核心价值就在于它把激励源从“参数模型”变成了“数据表”你给什么点它就走什么线。1.2 为什么不用 VPULSE、SIN、EXP 或者 B 源硬拼我见过不少人的做法是用多个 VPULSE 串联叠加或者用 B 源写Vif(time1m, if(time2m, ...))这种嵌套表达式。前者的问题是每个源都要单独设延迟、上升时间、脉宽一旦时间点调整所有源都得同步改改一次错一次后者的问题是if函数在跳变点附近会产生阶跃导数无穷大仿真器为了收敛会疯狂缩步长跑起来奇慢而且表达式一长就没法读。PWL 相对这些方案有三个实打实的优势。一是可读性一行PWL(0 0 1m 5 2m 5 3m 0)就能看出波形形状同事接手一眼就懂。二是可控性想改某个拐点只动一个数字不会牵连其他段落。三是数据友好支持从外部文件读取天然适合波形回放。代价也要说清楚。PWL 的折线意味着导数在拐点处不连续对于开关电源这类对边沿敏感的电路一个 0 上升时间的阶跃会让仿真器在拐点处反复试探步长轻则变慢重则报“时间步长过小”直接卡死。另外点对多了之后网表会变长几十个点还行上千个点就必须走文件方式了。1.3 先想清楚“仿真要看什么”再决定点表密度这一点是我觉得比语法更重要的。很多人把 PWL 点表写得极其精细每 10us 一个点结果仿真跑了半小时。其实要先问自己这次仿真关心的是稳态纹波还是大信号瞬态如果只看输入跌落后输出电压跌多少、多久恢复那 PWL 在跌落前后的平台段只需要两个点中间斜率段有三四个点就够剩下的精度交给仿真器的自适应步长。反过来如果关心的是开关频率级的纹波那 PWL 的点表反而不重要重要的是.tran里的 maxstep 设得够小。我一般的做法是PWL 只管大信号轮廓细节交给 maxstep。一个 10ms 的仿真PWL 点表控制在 10 到 20 个点maxstep 按最小关注时间尺度取这样既不会让网表臃肿也不会丢细节。2. PWL 语法与参数逐条拆解2.1 基本点对语法与“最后一点之后”的行为最基础的写法是在电压源上直接写V1 IN 0 PWL(0 0 1m 5 2m 5 3m 0)读法是“时间 幅值”成对出现按顺序线性插值。t0 时 0Vt1ms 时线性升到 5V1ms 到 2ms 之间保持 5V因为两个点幅值相同2ms 到 3ms 线性降到 0。3ms 之后是什么保持在最后一个点的幅值也就是 0V不会自动回到零也不会继续变化。这一点必须记牢我见过有人以为波形结束后会自动归零结果电路一直挂在一个直流电平上查了半天。另一个容易被忽略的细节是第一个点的时间不为零的情况。如果写PWL(1m 0 2m 5)那么在 0 到 1ms 之间源输出的是第一个点的值 0V保持从 1ms 才开始按定义变化。利用这个特性可以做“延迟启动”比额外加延迟参数更直观。还有一条硬规则时间点必须严格递增。写成PWL(0 0 2m 5 1m 3)会直接报错。不过相同时间点配不同幅值是允许的那表示一个垂直跳变但如前所述零上升时间的跳变对收敛不友好除非确实需要理想阶跃否则建议给个 1ns 到 1us 的过渡。2.2 单位陷阱m、M、Meg这是最容易翻车的地方LTspice 的单位后缀不区分大小写。也就是说m和M都表示 milli千分之一而兆要写成Meg或者MEG。这是从别的仿真器转过来的人最容易栽的坑——想写 1 兆赫兹写成1M实际得到的是 1 毫赫兹想写 1 兆欧写成1M实际是 1 毫欧电路直接短路。PWL 里的时间值同样适用这条规则PWL(0 0 1M 5)里的1M是 1 毫秒而不是 1 兆秒虽然这次侥幸没出错但养成习惯很重要。常用的后缀对照我整理成表贴在工位上比查帮助快后缀含义数值常见误用m / M毫1e-3误当成兆u微1e-6—n纳1e-9—p皮1e-12—k / K千1e3—Meg / MEG兆1e6写成 M 导致差 1e9 倍T太1e12与时间单位 t 混淆除了后缀还有一个隐含基准问题PWL 的时间单位默认是秒不是毫秒。所以1m就是 1 毫秒1就是 1 秒。写PWL(0 0 1 5)意味着 1 秒后才到 5V如果你的.tran只跑 10ms那波形看起来就是一条从 0 缓慢爬升的直线。这个现象我遇到过不止一次新手第一反应是“PWL 坏了”其实是时间没跑完。2.3 repeat 与 end循环波形的正确打开方式做周期性扰动测试比如每 100us 来一次 5us 的跌落手写点表会写到崩溃。这时候用 repeat。操作上右键电压源打开属性对话框在 PWL 那一栏点进去波形编辑窗口里有一个Repeat勾选项勾上之后网表末尾会自动追加repeat关键字。展开后的网表大致长这样V1 IN 0 PWL(0 12 90u 12 95u 9 100u 12) repeat foreverrepeat forever表示无限循环循环周期默认等于点表里最后一个时间点。如果想让循环周期和最后一点不一致比如点表只定义到 80us但希望每 100us 循环一次那就需要指定结束时间——在波形编辑窗口里勾选 Repeat 后会出现 End Time 输入框填 100u网表里会体现为end100u之类的参数。这个功能在模拟“周期性负载跳变”和“周期性输入扰动”时极其好用点表只写一个周期仿真跑多长都行。要注意两个坑。第一个是首尾衔接循环波形的第一点幅值和最后一点幅值如果不相等每个周期交界处会出现一个垂直跳变看起来像毛刺。解决办法要么让首尾值相等要么在点表末尾补一个回到起始值的过渡点。第二个是循环周期与仿真步长的关系如果循环周期不是 maxstep 的整数倍交界点会被步长“吃掉”一点波形看起来有轻微抖动这是正常的数值现象把 maxstep 调小即可。2.4 file 外部数据驱动波形回放的正确姿势当点表超过几十个或者数据来自实测就该用文件方式了。语法是V1 IN 0 PWL filewaveform.txt文件格式要求很简单两列数据第一列时间第二列幅值空格或制表符分隔可以带科学计数法。例如0 12.0 0.001 12.0 0.0025 9.2 0.004 9.2 0.0055 12.0几个实操要点。路径问题默认从原理图所在目录找文件写相对路径最稳写绝对路径在换电脑后容易失效。列数问题只能两列多一列直接报错如果从示波器导出的是三列时间、电压、电流要先裁掉一列。行数问题几十万行的文件也能读但仿真前会有一个解析过程文件特别大的时候开跑前会卡几秒属于正常现象。我一般用这种方式做“实测波形回放”把设备在现场记录的输入电压波形导成两列文本直接灌进仿真看后级电路在真实扰动下的表现。这比手工拟合一个“看起来差不多”的波形靠谱得多尤其是那些复杂的、带高频振荡分量的扰动。2.5 参数化花括号变量配合 .step 批量跑PWL 的点表里可以直接引用.param定义的变量用花括号包裹.param TR1m .param VHI3.3 V_EN EN 0 PWL(0 0 {TR} {VHI} 10m {VHI})配合.step就能批量扫描.step param TR list 0.5m 1m 2m一次跑出三条不同上升时间的波形叠加在同一张图上对比。这个用法在做时序裕量分析时特别香——比如验证“使能信号上升时间在 0.5ms 到 2ms 之间变化时输出电压是否会出现过冲”。表达式里也可以做简单运算比如{T_DIP1m}、{VIN*0.75}都是合法的。但要注意不要在花括号里塞太复杂的函数LTspice 对 PWL 里的表达式解析能力有限像if()这种最好别放进去容易解析失败。复杂的逻辑还是交给 B 源或者拆成多段。还有一个容易忽略的点变量名不要和内置函数或单位后缀撞车。比如定义.param m1这种会和毫秒后缀冲突虽然不一定报错但结果可能莫名其妙。变量名统一用大写加下划线是最省心的做法。3. 四类高级用法实操拆解3.1 电源上电时序与使能、PG 信号模拟多路电源系统最典型的验证需求就是上电时序。假设一个系统有 12V 主输入、3.3V 辅助电源、1.8V 核心电源时序要求是12V 先建立稳定 5ms 后 3.3V 使能拉高3.3V 建立并稳定 3ms 后 1.8V 使能拉高。同时还要模拟一个 Power Good 信号在 1.8V 达到 90% 后延时 2ms 拉高。用 PWL 表达这三路激励每路都是一个简单的梯形波。12V 输入V_IN IN 0 PWL(0 0 2m 12 20m 12)2ms 线性爬升到 12V之后保持。这里的 2ms 爬升不是随便写的它模拟的是输入滤波电容被充电的过程对后级软启动电路的行为有实际影响——如果直接给阶跃软启动电路的输入端会因为 di/dt 过大而产生虚假的过流保护触发。3.3V 使能信号V_EN33 EN33 0 PWL(0 0 7m 0 7.2m 3.3 20m 3.3)7ms 之前保持 07ms 到 7.2ms 用 200us 上升之后保持高。这里给 200us 上升时间而非阶跃是为了模拟真实使能引脚上的 RC 延迟同时也避免零上升时间带来的收敛问题。PG 信号更简单只需要在指定时刻从 0 跳到 3.3V_PG PG 0 PWL(0 0 12m 0 12.1m 3.3 20m 3.3)但这里有个技巧PG 信号不应该只是简单的定时跳变最好让它真的反映输出电压。做法是用一个比较器模型B 源或者行为级比较器把 V(out) 和阈值比较后输出这样如果时序设计有问题PG 的跳变时刻会自动跟着变能真实暴露 bug。单纯用 PWL 写死 PG等于把被测对象的行为也写死了测试就失去了意义。这是我从一次“仿真通过但实测炸机”里学到的教训——仿真里的 PG 是我自己给的当然看着正常。3.2 输入电压跌落与浪涌的复现输入跌落是电源验证的必测项。典型的跌落测试要求是母线从额定值跌到 70%维持时间 1ms 到 10ms 不等恢复斜率也有要求。用 PWL 写出来就是一个梯形坑.param VN12 .param VD9 .param T14m .param T24.5m .param T36m .param T46.5m V_IN IN 0 PWL(0 {VN} {T1} {VN} {T2} {VD} {T3} {VD} {T4} {VN} 20m {VN})这里我把时间点全部参数化好处是调整跌落深度和持续时间只改.param不用动网表主体。注意点表末尾补了一个 20ms 的点虽然不补也能保持但显式写出来更清晰也方便后续改仿真时长。浪涌则是反过来的形状短时间内冲到高压再衰减V_IN IN 0 PWL(0 12 4m 12 4.01m 18 4.05m 18 4.5m 12 20m 12)这里 4ms 到 4.01ms 是 10us 内从 12V 冲到 18V模拟一个快速浪涌4.01ms 到 4.05ms 保持 40us然后 450us 内衰减回 12V。这个形状比单纯的阶跃更接近实际因为真实浪涌的能量是有限的不会一直保持高压。要提醒的是浪涌仿真前先确认器件模型的耐压参数是否齐全。LTspice 自带的通用模型很多没有击穿特性仿真里电压冲到 18V 也不会报错但这不代表电路安全。这类仿真只能验证控制环路在扰动下的响应不能替代器件应力评估。3.3 用 PWL 电流源做负载跳变负载跳变是环路稳定性的核心测试。用 PWL 电流源比用电压源加电阻更方便因为电流源的幅值直接就是负载电流不需要换算。I_LOAD OUT 0 PWL(0 0.5 7m 0.5 7.01m 2.0 9m 2.0 9.01m 0.5 12m 0.5)从 0.5A 跳到 2A上升时间 10us保持 2ms再跳回。10us 的上升时间是有讲究的——太快比如 100ns会让电流变化率过大仿真器在跳变点附近步长被压缩得极小跑得慢太慢比如 100us则激励本身的带宽太低看不出环路的真实响应。经验值是按开关周期的 5 到 20 倍取比如 500kHz 开关频率对应 2us 周期跳变沿取 10us 到 40us 比较合适。还有一个细节电流源的方向。LTspice 里电流源从第一个节点流向第二个节点I_LOAD OUT 0表示电流从 OUT 流向地这符合“负载吸收电流”的物理意义。如果方向反了仿真里会看到输出电压被往上抬而不是往下掉这是个很直观的错误提示。3.4 复现实测波形把示波器数据搬进仿真这个用法我最近几年用得越来越多。设备在现场出了异常抓了一段输入电压波形想在仿真里复现看看后级为什么挂掉。流程是示波器导出 CSV用脚本或者文本编辑器裁成两列时间、电压去掉表头和单位保存成.txt然后V_IN IN 0 PWL filefield_waveform.txt这里有几个实操注意事项。时间基准要统一示波器导出的时间可能是相对于触发点有负值LTspice 不接受负时间点需要整体平移让第一个点从 0 开始。采样点密度要合理示波器可能按 1GS/s 采样10ms 就是 1000 万个点直接灌进去仿真会卡死。我一般会先做抽取按关注频段保留采样率——如果只关心 1kHz 以下的扰动抽到 10kS/s 就够了点表能压到几千个点。幅值要核对有些示波器导出的是 ADC 码值或者带探头衰减系数的原始值灌进去之前先看一眼量级12V 系统导出个 120 出来就是衰减系数忘了乘。4. 完整案例Buck 变换器软启动、输入跌落、负载跳变联合仿真4.1 场景与目标定义这一节把前面讲的东西串起来做一个完整的多激励联合仿真。场景设定一个 12V 转 3.3V 的同步 Buck开关频率 500kHz额定负载 2A。要验证三件事软启动过程是否单调、输入跌到 9V 时输出电压跌落是否在允许范围内、负载从 0.5A 跳到 2A 时恢复时间是否够快。仿真时长定 12ms时间分配是0 到 3ms 软启动3 到 5ms 稳态建立5 到 8ms 输入跌落8 到 10ms 恢复10 到 12ms 负载跳变。这个时间预算是根据各段的最小关注时长反推的——软启动 3ms 是设计值跌落持续时间按最常见的 3ms 取负载跳变后留 2ms 观察恢复够用了。4.2 激励点表设计与时间参数计算三个激励源全部参数化方便后续改数值.param VN12 .param VD9 .param T_SS3m .param T_DIP5m .param T_DIP_END8m .param T_LOAD10m .param V_HI3.3 * 输入电压:软启动前爬升 中期跌落 V_IN IN 0 PWL(0 0 0.5m {VN} {T_DIP} {VN} {T_DIP0.5m} {VD} {T_DIP_END-0.5m} {VD} {T_DIP_END} {VN} 12m {VN}) * 使能信号:延迟 0.5ms 后拉高 V_EN EN 0 PWL(0 0 0.5m 0 0.7m {V_HI} 12m {V_HI}) * 负载电流:10ms 处从 0.5A 跳到 2A I_LOAD OUT 0 PWL(0 0.5 {T_LOAD} 0.5 {T_LOAD10u} 2.0 12m 2.0)解释几个取值理由。输入爬升 0.5ms 到 12V是为了让输入电容充电过程可见同时避免 t0 时刻的阶跃导致工作点求解困难。使能信号在 0.5ms 开始上升、0.7ms 到高200us 的上升沿对应典型使能脚的 RC 时间常数。负载跳变沿取 10us前面算过是开关周期的 5 倍兼顾收敛和带宽。4.3 仿真设置与网表片段.tran的设置直接决定仿真能不能跑出有用结果.tran 0 12m 0 100n四个参数含义是起始时间 0、终止时间 12ms、数据记录起始 0、最大步长 100ns。最后这个 maxstep 是最关键的计算逻辑是开关周期 2us一个周期内至少要看 20 个点才能分辨开关纹波2us / 20 100ns。如果 maxstep 设成默认值Tstop/50 240us那 500kHz 的开关波形会完全丢失输出电压看起来是一条平滑的直线仿真结果毫无意义。100ns 步长对应 12ms 总时长理论最多 12 万个点实际因为有自适应步长通常跑几万到十几万个点桌面机上十几秒能出结果可以接受。如果只关心大信号响应不关心纹波把 maxstep 放宽到 1us点数立刻降一个数量级。配套的测量语句.meas TRAN Vo_min MIN V(OUT) FROM 5.5m TO 7.5m .meas TRAN Vo_recov TRIG V(OUT) VAL3.2 RISE1 FROM 8m TO 12m .meas TRAN I_L_max MAX I(L1) FROM 0 TO 12m .meas TRAN Vo_pp PP V(OUT) FROM 11m TO 11.9m第一条测跌落期间的最低输出电压第二条测恢复到 3.2V 的时刻用来算恢复时间第三条测电感峰值电流看有没有触发限流第四条测稳态纹波峰峰值。4.4 波形判读与常见误判跑完之后看什么软启动段看输出电压是否单调上升如果中间出现回落说明启动电流过大导致输入被拉低需要加大软启动电容或者调整限流。跌落段看输出电压最低跌到多少一般要求不低于额定值的 90%也就是 3.0V同时看电感电流在跌落期间是否饱和跌落时占空比自动增大电感电流会明显上升如果接近饱和点就要考虑加感值或者提高限流阈值。恢复段看有没有过冲恢复过程中环路从饱和状态退出容易出现过冲理想情况下过冲不超过 3%。负载跳变段看下冲和恢复时间2A 跳变下 50mV 以内、恢复时间 100us 以内算是比较正常的表现。这里要提一个很容易误判的点波形上看到的“毛刺”不一定真实。如果 maxstep 设得太大开关节点的高频振铃会被欠采样成看似低频的波动看起来像环路不稳定其实是采样问题。验证方法是把 maxstep 减半再跑一次如果波形变了说明之前的设置不够。反过来如果 maxstep 已经设到 10ns 还是能看到毛刺那才是真的。另一个误判来源是初始工作点。.tran在开始前会先求直流工作点此时 PWL 源按 t0 的幅值参与计算。如果 t0 时使能信号是 0、输入是 0那工作点求解出来所有节点都是 0这是合理的。但如果 PWL 的第一个点时间不是 0比如从 1ms 开始定义工作点会按第一个点的值算可能导致一个和预期不符的初始状态。稳妥做法是PWL 点表一定从 t0 开始写哪怕值没变化。5. 常见问题与排查技巧实录5.1 波形不对的八种典型原因这几年帮人看过的 PWL 问题翻来覆去就那么几种。整理成表对着查比一句句问快现象最可能的原因快速定位方法处理方式波形完全不变一条直线仿真类型不是.tran或跑的时间太短没到第一个拐点看波形时间轴范围确认.tran加大 Tstop数值差 1000 倍或 1e6 倍M被当成兆实际是毫看时间轴或幅值的量级兆改用Meg最后一段波形消失或归零误以为波形结束后自动归零把时间轴拉到末尾显式补结束点循环波形周期接缝处有跳变首尾点幅值不相等看相邻周期交界补过渡点或令首尾相等仿真极慢甚至卡住拐点为理想阶跃或点表过密看.log里的步数统计加 1ns 到 1us 过渡用 file报错 “Unknown parameter”引用了未定义变量或花括号漏写看错误提示的行号补.param检查花括号file读取失败路径不对、列数超过两列、含表头看错误日志放同目录、裁成两列、去表头AC 分析里波形不对PWL 是时域定义AC 分析用小信号参数确认分析类型AC 幅值单独在源的 AC 栏设5.2 收敛与速度PWL 让人又爱又恨的地方PWL 折线的本质是分段常斜率拐点处斜率突变。仿真器的步长控制依赖导数信息遇到斜率突变会缩步长重新试探。一个拐点缩一次没什么但如果一个 PWL 里有几十个拐点每开关周期都要经过一遍累积起来就慢了。我的处理经验有三条。第一能加过渡就加过渡。理想阶跃改成 1ns 上升沿肉眼看不出来但对仿真器友好很多。第二拐点不要扎堆。如果两个拐点间隔小于 maxstep仿真器会被迫按更小的步长走等于白白增加计算量。第三长仿真优先考虑分段跑。比如先跑 0 到 4ms 看软启动确认没问题再跑 4 到 12ms 看扰动每次只加载需要的激励能省不少时间。还有一类收敛问题和 PWL 本身无关但经常被归咎于它电路里有理想元件。比如零内阻的电压源直接驱动纯电容di/dt 无穷大PWL 给的边沿再缓也没用。这种情况在源和电容之间串一个几毫欧到几十毫欧的小电阻仿真立刻顺畅。5.3 几个不写在文档里的小技巧用注释整理点表。网表里可以加注释行把每个时间段在干什么写清楚* [0-0.5m] 输入爬升 * [0.5m-5m] 稳态 * [5m-8m] 输入跌落半年后回来看一眼就知道当时的设计意图比翻聊天记录快。建一个自己的模板库。常用的激励形状——上电时序、跌落、浪涌、负载跳变、周期性扰动——各写一个.asc或者.cir文件存着下次直接复制改参数。我自己的模板里有十来个每次开新项目先挑一个改比从零写快得多也不容易漏参数。PWL 和 B 源配合做条件激励。有些场景需要“只有当输出电压达到某个值时才施加扰动”单纯靠 PWL 的时间控制做不到。这时候可以用 B 源做一个门控把 PWL 的输出乘以一个使能因子。不过要注意 B 源里的if函数同样有收敛风险阶跃条件最好加一点迟滞。别忘了 PWL 也能用在电流源上。前面案例里已经用了语法完全一样。抽取负载、电池放电曲线、电机启动电流都适合用 PWL 电流源表达比用电压源加电阻换算方便得多。用.step扫参数时注意图例。一次跑多条曲线图例上会显示参数值但如果参数名起得不好比如x1、x2根本分不清哪条是哪条。参数名写成TR_500u这种带含义的形式图例一目了然。6. 把它变成日常工具的几个习惯PWL 这个功能语法五分钟就能学会真正拉开差距的是怎么组织激励。我现在开任何一个新仿真第一件事不是搭电路而是先在纸上画时间轴标出每一段要验证什么、大概持续多久、边界在哪。这个习惯是从一次返工里逼出来的——当时仿真跑了四十分钟结果发现时间轴设计错了负载跳变发生在输入跌落还没恢复的时候两个扰动叠在一起波形根本没法分析只能重跑。第二件事是把所有时间参数提到.param里。刚开始觉得麻烦写两次就发现真香。调整时序只改一行不用在网表里找数字。而且参数化的点表本身就是一种文档看参数名就知道这段在模拟什么。第三件事是每次仿真结束顺手存一份激励文件。同一个项目里输入跌落、负载跳变这些激励往往会反复用存下来下次直接 include。我一般会在工程目录下建一个stimulus文件夹按“项目_场景_版本”命名半年后回头找还能找到。最后分享一个小习惯PWL 波形先单独跑一遍再接入电路。把激励源接到一个 1k 电阻上单独跑.tran确认波形形状、时间点、幅值都对再接到真实电路里。这一步花不到一分钟但能省掉后面“到底是激励错了还是电路错了”的排查时间。我踩过最冤的一次坑是 PWL 里的时间单位写错波形整体延后了一千倍接到电路里跑了半天只看到一条平线还以为是电路没启动。单独跑一遍激励这个问题三秒钟就能看出来。