移相全桥(Phase-Shifted Full Bridge,PSFB)这类拓扑,搞电源的工程师应该都不陌生。这次做的是输入 400V、输出 60V、额定功率 3kW 的移相全桥变换器数字控制仿真,用 Simulink 搭离散化闭环模型,重点验证负载从 3kW 突增到 3.6kW 时输出电压的动态响应。标题里那个“闭”大概率就是闭环,另外原始记录里的“3.6W”明显是 3.6kW 的笔误,因为 60V 输出下 3.6W 只有 60mA,和 3kW 满功率完全不在一个数量级。
这类仿真在工程里特别典型,尤其是现在数字电源越来越普及,很多人把模拟域设计的移相全桥直接搬到数字控制器里,结果发现连续域里调好的 PI 参数放到离散控制器后,负载阶跃时输出电压要么恢复慢,要么直接振荡。这篇文章我就从参数计算、模型搭建、闭环设计到故障排查,把整个流程完整梳理一遍,给正在做 400V 输入级 DC-DC 仿真的朋友一个参考。
1. 项目解读与总体设计思路
1.1 标题里的技术诉求拆解
先看输入条件:输入电压 400V 直流,输出电压 60V 直流,额定功率 3kW,负载阶跃到 3.6kW。这个指标很常见,比如某些服务器电源的辅助级、电池充电模块的前级 DC-DC,或者车载充电器里的第二级。60V 输出对应 3kW 额定电流是 50A,3.6kW 时电流到 60A,也就是说负载阶跃是从 50A 突增到 60A,变化量 20%。
这里有个细节容易被忽略:标题写的是“切载 3kW 到 3.6W”,这在做仿真时其实对应一个明确的动作——输出端负载电阻从 1.2Ω 变为 1Ω。因为在恒压输出下,P = U²/R,60V 除以 50A 是 1.2Ω,60V 除以 60A 就是 1Ω。如果做闭环仿真,负载阶跃信号要么用可控电阻,要么用可控电流源,这两种方式在 Simulink 里的表现完全不同,后面会专门讲。
“闭”字对应的闭环控制,是整个仿真的灵魂。开环移相全桥在负载切换时输出电压会直接跌掉一截,然后靠输出电容慢慢充回来,这在工程上是不可接受的。闭环要做的事情就是把输出电压稳定在 60V,并且让动态恢复时间尽量短、超调尽量小。离散化则意味着控制算法不是连续的模拟电路,而是以固定采样周期运行的数字控制器,这会引入零阶保持、计算延迟、采样混叠等一系列问题,也正是数字电源仿真和模拟电源仿真最大的区别。
1.2 为什么选移相全桥而不是别的拓扑
输入 400V、输出 60V、功率 3kW 这个区间,能用的拓扑不少,硬开关全桥、LLC、移相全桥都是常见选择。但移相全桥在这里有它不可替代的位置。
从工作机理上看,移相全桥本质上是“Buck + 高频变压器”的组合,通过调节超前臂和滞后臂之间的移相角,来改变输出方波电压的有效占空比,从而实现输出电压调节。它最大的优势是工作在固定开关频率下,控制方式相对直观;同时利用谐振电感和开关管结电容之间的谐振,理论上可以实现原边开关管的 ZVS 开通,降低开关损耗。
和 LLC 谐振变换器相比,移相全桥的调压范围更宽,对输出负载变化不那么敏感,而且移相角控制和占空比控制类似,工程师上手容易。LLC 在宽电压输入、宽输出电压的场合表现更好,但在固定 400V 输入、固定 60V 输出这种场景下,移相全桥的成本和控制复杂度更有优势。
不过移相全桥有一个天生的问题——占空比丢失。谐振电感的电流换向需要时间,这期间虽然原边有电压,但副边不传递能量,实际有效占空比会小于理论占空比。另一个问题是滞后臂在轻载时 ZVS 条件比较苛刻,负载越轻,原边电流越小,谐振能量不够,滞后臂就可能失去零电压开通。这些特性直接导致了一个结果:仿真里的参数设计,不能简单拿 Buck 公式硬套,必须考虑谐振电感和死区时间的影响。
1.3 “离散化仿真”到底指什么
我在不少群里看到有人问“离散化仿真”是不是就是用某个固定步长求解器跑一遍,其实不是这么简单。我理解的移相全桥离散化仿真,至少包含两层含义。
第一层是控制器的离散化。模拟控制器里的 PI 运算、比较器、积分电容,在数字控制器里面都变成了每个采样周期执行一次的数字化算法。Simulink 里可以用离散 PID 控制器、单位延迟、零阶保持器来实现,采样时间 Ts 一般和开关周期同步,比如 100kHz 开关频率下 Ts 取 10μs。这一层做得真实不真实,直接决定了仿真能不能反映数字控制器的实际性能。
第二层是被控对象的离散化建模。一种是开关模型,用 MOSFET、二极管、变压器等器件模型搭建实际主电路,仿真时用固定步长求解器精确离散电力电子开关的动作,这种方法最接近真实硬件,但计算量大,而且对离散步长极其敏感。另一种是平均模型,把开关桥臂等效为占空比控制的受控源,整个系统变成一个连续或离散传递函数模型,适合做控制参数整定和稳定性分析,但看不到开关纹波和 ZVS 过程。
我这次采用的是“开关级主电路 + 离散化数字控制器”的组合,也就是主电路用电力电子器件模型,控制环路用离散采样和离散 PI 实现。这样既能观察到负载阶跃时输出电压的真实跌落和恢复波形,又能验证离散控制器参数是否满足动态要求,是工程上最常用也最有参考价值的一种仿真形式。
2. 参数计算与模型搭建准备
2.1 从指标反推主电路参数
主电路参数的计算是整个仿真的地基,这一步如果错了,后面所有波形和结论都没有意义。先说变压器匝比。
移相全桥的输出电压关系可以近似写成:Vout ≈ (Vin × Deff) / n,其中 Deff 是有效占空比,n 是变压器原边对副边的匝比。输入 400V,输出 60V,如果直接按理想占空比 0.45 来估算,匝比 n ≈ 400 × 0.45 / 60 = 3。也就是说变压器原副边匝比取 3:1 比较合适。
实际设计要留余量。考虑副边整流二极管的管压降,同步整流就考虑 MOSFET 的导通压降,再加上占空比丢失的影响,有效占空比通常达不到理论值。我会把匝比取为 3.2:1,这样在额定负载下有效占空比大概在 0.48 左右,还有一点调节余量。仿真初期可以先按 3:1 搭,跑完额定点再微调。
谐振电感 Lr 的选取是个关键点。它决定了原边电流在换向时的斜率,也直接影响 ZVS 的实现条件。Lr 太小,换向太快,原边电流可能反向不足,滞后臂 ZVS 失效;Lr 太大,占空比丢失严重,输出电压会偏低。工程经验上,400V 输入、3kW、100kHz 左右的移相全桥,Lr 一般取 6~15μH,我这次用了 8μH 作为初值。这个值没有绝对标准,需要结合死区和 MOS 管结电容做迭代仿真。
输出滤波电感 Lf 按电流纹波来定。3kW 对应输出电流 50A,一般设计纹波取 10% 也就是 5A。用公式 Lf = Vout × (1 - Deff) / (fsw × ΔI) 计算,Deff 取 0.45,fsw 取 100kHz,那就是 60 × 0.55 / (100000 × 5) = 66μH,实际取 68μH 标准值。输出电容 Cf 主要考虑电压纹波和负载阶跃时的电压跌落,470μF 是比较稳妥的起点,如果仿真中阶跃电压跌落超标,再往上加。
还有死区时间这个概念。移相全桥同一桥臂上下管之间必须有死区,否则瞬间直通短路会炸管。仿真里死区一般设置在 200~600ns,100kHz 开关频率下我用了 300ns。死区时间不能太大,太大会影响有效占空比,也不能太小,太小了可能关不断上管就打开下管。
2.2 离散步长与采样时间怎么选
离散步长的选择,是离散化仿真里最容易出问题的地方,没有之一。
先说控制器的采样周期。如果开关频率是 100kHz,常见的控制采样策略是每个开关周期采样一次,也就是 Ts = 10μs。有些方案会做倍频采样,比如一个周期内采两次或四次,但那是为了改善动态响应,也可以说是在调节相位滞后。我建议先按 Ts = 10μs 搭,把控制器和环路性能跑稳定,再尝试提高采样率,对比波形差异,这样才能理解“数字控制延迟”到底带来了什么影响。
再说 Simulink 仿真步长。主电路里面有高频开关动作,开关频率 100kHz,开通关断瞬态的上升沿非常陡。为了分辨这些瞬态,固定步长至少要取到开关周期的百分之一到五百分之一,也就是 0.1~1μs。我用的是 0.5μs,也就是 100kHz 开关周期内分了 20 个点。这个分辨率对观察移相角变化、占空比丢失现象是够用的。
这里要给一个忠告:不要贪图快,把仿真步长放到 5μs 甚至 10μs,那样和开关周期一个尺度,离散化误差会大到离谱,甚至出现“看起来工作正常,实际上仿真根本是在跑假波形”的情况。判断步长合不合理有一个笨办法:把步长减半再跑一次,如果输出波形和原来几乎重叠,说明步长已经收敛;如果波形幅度、频率甚至稳态值都变了,说明步长太大。
2.3 平均模型和离散模型的取舍
搭建模型之前,必须想清楚一个事情:我要用平均模型还是开关模型。
平均模型适合做控制设计。把移相全桥等效成一个受控电压源,传递函数推导简单,可以直接画 Bode 图整定 PI 参数。但是平均模型看不到 ZVS 是否实现、输出纹波有多大、占空比丢失有多严重,而且平均模型里没有死区、没有变压器漏感、没有整流管的非理想特性,所以它对“负载阶跃响应”的预测能力是有限的。
开关模型则把每一个开关管、每一个二极管、每一段换向过程都放进去。负载从 3kW 切到 3.6kW 时,输出电容的放电速率、环路每个周期的离散控制动作、移相角的逐步调整,都能看得清清楚楚。代价是仿真时间很长,而且对参数很敏感。我这次用的是开关模型,原因很简单——我要验证的不是“理论响应”,而是“数字控制器实际能看到的响应”。
3. 闭环控制设计与离散化实现
3.1 控制结构选择:电压外环还是电压电流双环
移相全桥闭环控制的两条路线:单电压环和电压电流双环。
单电压环结构最简单,只采样输出电压,经过 PI 调节器直接输出移相角控制量。这种结构在 Buck 电路里能用,但在移相全桥这种二阶 LC 输出滤波器面前,单环很容易出现动态响应偏慢的问题。原因很简单,控制对象是 Lf 和 Cf 构成的双极点,负载阶跃时输出电压的变化要经过 LC 振荡的延时才能反馈到控制器,校正动作自然滞后。
电压电流双环更实用。电流内环把输出电感的电流作为被控制量,响应速度快,能提前感知负载变化;电压外环负责稳定输出电压,给内环提供电流指令。负载从 3kW 切到 3.6kW 的瞬间,负载电流增加,电流内环立刻感知到电流误差,不需要等输出电压跌落太多就开始校正,动态响应明显优于单电压环。
我的做法是:电流内环用比例或比例积分控制,带宽取开关频率的十分之一附近,也就是 10kHz 左右;电压外环落在电流内环的带宽之外,大概取 1~2kHz。关键是外环带宽至少要低于内环三分之一到五分之一,否则外环会给内环一个反复变化的指令,整个环路就很容易振荡。
3.2 PI 参数的连续域整定与离散化公式
刚开始搭模型时,我习惯先在连续域里把 PI 参数整定好,然后做离散化。为什么这么干?因为连续域里的对象模型、相位裕度、穿越频率都容易理解,离散域里的稳定性分析对不少人来说并不直观。
在 Simulink 里可以用控制系统工具箱建立被控对象模型,画出开环 Bode 图,调 Kp 和 Ki 让穿越频率落在目标位置,同时保证相位裕度在 45 度以上。这里有个容易踩的坑:连续域设计时相位裕度留了 50 度,离散化之后实际相位裕度会缩水,因为数字控制器的零阶保持器本身就是一种滞后环节,它贡献的相位滞后大概是 0.5 倍采样周期的延迟,10μs 采样周期对应 5μs 等效延迟。这个滞后在穿越频率处大概会砍掉十几度的相位裕度。
离散化变换最常用的方法是双线性变换,也叫 Tustin 变换,变换关系是 s = 2 × (z - 1) / (Ts × (z + 1))。在 Simulink 里,直接调用离散 PID 控制器模块,把采样时间设为 10μs,算法选“Forward Euler”或者“Trapezoidal”,再把连续域设计的 Kp、Ki 填进去就行。但要注意,不同离散化方法得到的等效控制效果不完全一样,我推荐用 Trapezoidal,它对模拟控制器的逼近误差更小。
实用一点的离散 PI 递推公式可以写成这样:u(k) = u(k-1) + Kp × (e(k) - e(k-1)) + Ki × Ts × e(k)。如果你想用带梯形积分的版本,最后一项改成 Ki × Ts × (e(k) + e(k-1)) / 2 也可以。我提醒一下,很多人喜欢照抄某个参考代码里的 PI 参数,这样做在特定采样率下可能工作,换了 Ts 之后稳定性完全不同,因为增益里隐含了采样周期的影响。
3.3 负载阶跃信号的构建方法
Simulink 里做负载阶跃,有几种常用方法,我逐一说明它们的行为差异。
第一种是直接用一个 Step 模块去控制可变电阻,阻值从 1.2Ω 跳到 1Ω。这个方法的缺点是,输出端电阻变化是即时的,仿真器在开关模型下容易因为电阻突变产生数值冲击,特别是固定步长不够小时,容易出现电流尖峰。但从物理真实性的角度看,可变电阻最接近真实负载箱的行为。
第二种是用可控电流源,输出端并联一个压控电流源,阶跃信号控制电流源从 50A 跳到 60A。这种方法的好处是电流源的电流变化受仿真器控制,不会像电阻那样产生尖锐的数值跳变。缺点是可控电流源如果和负载电阻并联,需要注意初始电流匹配,否则阶跃瞬间系统还会有一个额外的充放电过程。
第三种是用信号发生器模块做分段线性或者阶跃包络,再接一个计算模块,把负载功率换算成负载电阻或者负载电流。工程仿真往往需要做多个工况点切换,用这种参数化方式最灵活。我的实际做法是:用 Step 模块控制一个增益为 1 的开关量,乘以负载功率基准值 3kW,加上一个基数,然后除以输出电压的平方,得到实时电阻值。这样只要改一个参数,就能从 3kW 切到 3.6kW,不污染主电路逻辑。
4. 实操过程与关键步骤
4.1 Simulink 模型布局与关键模块配置
搭建开关级移相全桥模型,主电路布局大体是:直流电压源 400V → 原边全桥(四个 MOSFET 加反并二极管)→ 谐振电感 Lr → 高频变压器 → 副边整流桥 → 输出滤波电感 Lf → 输出滤波电容 Cf → 负载。
我把关键模块的配置列一下,供直接参考:
- 直流源:400V,内阻 0.01Ω,避免仿真中电压源直接串电感出现代数环。
- MOSFET:用电力电子库里的实际 MOSFET 模型,开通电阻、关断电阻按 100A 级功率管设置,结电容参数会影响 ZVS 波形,不能随便给个默认值。
- 变压器:励磁电感在实际器件中不是无限大,我设置励磁电感为 2mH,漏感对谐振的影响直接折算到外置谐振电感里,匝比 3:1。
- 副边整流:60V/50A 级别通常用同步整流,但仿真初期先用二极管整流更省事,二极管导通压降取 0.8V,反相恢复时间设置得非常短,避免高频振荡。
- 输出滤波:Lf = 68μH,Cf = 470μF,ESR 分别设为 20mΩ 和 100mΩ。这个 ESR 不能设成 0,不然波形会出现理想化振荡,和实际贴片电容、铁硅铝电感的表现完全脱节。
移相控制信号生成是另一个重点。四个开关管不能手动拼 PWM,那样不仅工作量大,还容易搞出直通短路。我用的是移相 PWM 生成模块,输入一个移相角信号,模块自动把移相角映射到超前臂和滞后臂的驱动信号上,同时内置死区时间。如果你用的是基础版 Simulink 没有现成模块,也有替代方案:用两个锯齿波载波模块,一个基准信号,一个偏移信号,分别和调制波比较得到四路 PWM,再在驱动信号里加入死区延迟。这个死区延迟可以用 On/Off Delay 模块实现,时间设置为 300ns。
4.2 求解器配置与仿真时长设置
仿真参数设置的细节,我单独拿出来说,因为这里直接影响数值稳定性。
解算器选择“离散”、“固定步长”模式。有人会奇怪,既然主电路是电力电子器件模型,为什么不用变步长的 ode23tb?我试过,变步长求解器确实能在开关瞬态处加密步长,获得高精度波形,但问题也很明显——数字控制器模型是按固定 Ts 运行的状态机,变步长求解器和固定采样率控制器之间的交互在 Simulink 里非常容易产生“控制时序错乱”,表现为控制器输出在错误的时刻更新。为了准确模拟数字控制器的实际行为,必须用离散求解器强制固定步长。
步长设为 0.5μs,仿真时长我分三段观察:0 到 0.1s 让模型冷启动并达到稳态,0.1s 时刻触发负载阶跃,0.1s 到 0.2s 观察动态响应和恢复过程。固定步长在 Simulink 里详细配置时,需要把“求解器类型”改成“定步长”,“求解器”选“离散”,然后把采样步长填成 0.5e-6。如果模型里有纯连续积分模块,Simulink 会报警,这恰恰说明那个模块需要改造成离散模型。
还有一个容易被忽略的地方,是输出波形保存步长。如果示波器/记录模块设置为自动步长,即使主仿真步长是 0.5μs,记录的波形也可能被降采样,导致动态阶段的细节丢失。我通常把记录步长也设为和仿真步长一致,或者直接在 To Workspace 模块里设定采样率为 1MHz 以上,确保 0.1s 切换瞬间的电压跌落波形完整保留。
4.3 关键波形判读与结果分析
仿真跑完之后,不急着看整体曲线,先看几个核心指标。
第一个是稳态输出电压和纹波。满载 3kW 时,输出电压应该在 60V 上下波动,纹波峰峰值和理论估算在同一个量级。我用 470μF 电容、100kHz 开关频率估算,纹波一般就是几百毫伏到一千多毫伏,如果纹波异常大,优先怀疑输出电容 ESR 设置过高或者 Lf 太小。
第二个是负载阶跃瞬间的响应。在 0.1s 时刻,因为负载电流从 50A 突增到 60A,输出电容要先放电补足电流缺口,所以输出电压会出现一个跌落。这个跌落的深度取决于输出电容大小、电流内环响应速度和控制器的离散延迟。按我前面的参数,合理的结果是跌落深度在 1V 到 2V 之间,恢复时间在几百微秒到几毫秒之间,超调量控制在 5% 以内。
第三个要关注的是占空比丢失现象。把原边电压波形和副边整流后的波形放在同一张图里观察,副边电压高电平的宽度会明显小于原边方波的宽度,这就是占空比丢失。如果发现占空比丢失过大,比如有效占空比只有理论值的 70%,就要考虑减小谐振电感 Lr 或者增大死区时间。这个现象在波形上是特别直观的。
仿真结果不是用来交差了事的,每一处偏差都能反推设计问题。比如负载阶跃恢复时间过长,说明外环带宽太低;超调过大,可能是电流内环比例系数太高导致过冲;如果出现等幅振荡,那多半是离散化相位裕度不足,要减小 Kp 或者降低电压外环带宽。
5. 常见问题与排查技巧实录
5.1 模型初始化报错和代数环警告
离散化仿真模型,尤其是带数字控制器的开关模型,最烦人的就是启动时报代数环警告,甚至直接无法初始化。
代数环经常出现在采样模块两侧,比如输出电压采样值同时用于反馈和负载参数计算,信号路径中出现瞬时耦合。解决办法有几种:给采样模块加一个单位延迟单元,把信号滞后一个仿真步长;或者在反馈通道插入零阶保持器,明确告诉求解器这个信号要以采样时刻为准,采样间隔内保持不变。这个操作看起来不起眼,但对消除代数环非常有效。
还有一个常见的初始化问题是开关管驱动信号在 t=0 时刻就存在,但输出电压还没有建立起来,误差很大,PI 积分器瞬间饱和。这种情况我一般把积分器初始值设为 0,并把控制器的输出限制在一个合理的移相角范围内。比如移相角对应占空比不会超过 0.5,那就把控制器输出限制在 0 到 0.5 之间,防止启动阶段输出一个离谱的移相角。
5.2 负载切换后输出跌落过大或者振荡
这是做负载阶跃仿真时被问得最多的问题:为什么我的输出电压一加载就跌了 5V,而且过了很久都恢复不回来?
首先要排除一个基础原因:输出电容太小。3kW 负载阶跃 20%,电流突变 10A,即使控制器什么都不做,输出电容自身要维持输出电压,它必须提供瞬时电流。如果 Cf 只有 100μF,跌落自然会很大。先把 Cf 加大,比如到 1000μF,看跌落幅度是否大幅减小,如果明显改善,说明问题在硬件参数而不是控制参数。
排除了电容因素之后,再回头看环路。电流内环如果带宽不够,负载电流的变化就没有被及时看到,输出电压只能靠外环慢悠悠拉回来。这时可以增大电流内环的 Kp,但要注意不能过分,过大的 Kp 会让电流环产生振荡,甚至在整个环路里引入高频噪声。
还有一种情况是恢复过程中电压不是平滑上升,而是先过冲、再回落、再爬升,来回两三次。这个现象对应的是相位裕度不足,系统处于欠阻尼状态。解决办法有两个方向:降低电压外环带宽,或者给电压误差信号加一点低通滤波,把高频噪声和振荡分量滤掉。我个人的经验是,调整电压外环带宽比盲目改 Kp 更容易获得稳定的响应曲线。
5.3 离散化引入的采样延迟和混叠问题
数字控制器在电源里有一个先天劣势——它看不到两个采样瞬间之间发生的任何变化。负载阶跃如果恰好发生在两次采样之间,控制器要到下一个采样时刻才感知到输出电压的变化,这个延迟最大可以达到一个采样周期。
在 100kHz 采样率下,一个采样周期是 10μs,看起来不长,但在开关周期尺度下,这等于整整一拍。这一拍延迟会让系统的相位裕度明显缩水。实测下来,离散控制系统比连续系统大概会少 10 到 20 度的相位裕度,如果连续域设计时只留了 30 度,离散化之后很可能只剩 10 度左右,系统自然就振荡了。
解决思路有两个。第一个是提高采样频率,从每个开关周期采一次改成每个周期采两次,采样周期从 10μs 降到 5μs,延迟效果减半。第二个是在控制算法中估算并补偿这个延迟,也就是在环路模型里显式加入 e^(-sTs) 的延迟项,然后在控制器里加对应的高频超前环节。第二个办法实现难度高一些,但能让离散化仿真更接近真实数字控制器行为。
5.4 仿真时间过长和数值毛刺
开关级模型加离散控制器,仿真速度慢是正常的,但如果慢到 0.1s 仿真要跑几十分钟,就要想办法优化了。
优化点一:固定步长。把主电路器件的时间常数收敛到足够稳定后,可以尝试把步长从 0.5μs 提高到 0.8μs 或者 1μs,只要波形仍然收敛。但是要记住,步长一旦接近开关周期的十分之一,就要重新验证波形,不能凭感觉。
优化点二:把不需要高频观测的模块降采样。比如控制器的状态观测、数据记录模块,可以用更粗的采样率。主电路仍然在 0.5μs 步长下运行,但记录输出波形的模块可以每 10μs 采集一个点,这能节省大量内存和磁盘写入时间。
数值毛刺这个问题,多出现在开关动作的瞬间,特别是变压器副边整流二极管从导通切换到关断的时候。如果毛刺看起来像是高频振铃,但幅度异常大,多半是仿真步长不够,或者二极管反向恢复参数设置得不合理。把二极管的反向恢复时间调大一点,先看看毛刺是否消失,这是一个快速的判断手段。
6. 实操中沉淀的经验总结
把这次仿真完整跑完之后,我最大的感受是:移相全桥离散化仿真的难点,不在“能不能跑出来”,而在“跑出来的结果能不能反映真实数字控制器的行为”。
主电路参数这块,谐振电感和死区时间的组合是花时间最多的。Lr 取 8μH 只是起点,真正合理值是通过观察占空比丢失和滞后臂 ZVS 波形逐步迭代出来的。我建议仿真时把原边电流、滞后臂开关管两端电压和驱动波形放在同一个图里看,确认在 3kW 满载附近,滞后臂开通前结电容确实放电完毕。如果 3kW 满负载都做不到 ZVS,到了 3.6kW 负载可能更困难,那就需要调整 Lr 或者死区。
控制参数这块,有一个反复出现的经验:连续域里整定的 PI 直接搬到离散系统,几乎所有情况下都要重新微调。我在连续域里把相位裕度调到 55 度,离散化后实际仿真观测到 0.1s 负载阶跃时电压恢复过程中有一个明显的次振荡,把外环带宽向下压了将近一半,波形才变得干净。这说明离散化的相位损耗比很多人想象的大得多,预留相位裕度时千万不能只按连续域的标准来。
最后分享一个小技巧,也是我后面做别的电源项目一直都在用的:在 Simulink 模型里加一个“故障注入”开关,可以在仿真运行中途手动短接或断开负载,快速测试不同功率点下的动态响应。相比反复改电阻值,这种交互式操作能节省大量重复仿真时间,尤其适合做 3kW 到 3.6kW 这类连续负载变动场景的分析。