三相PWM整流器在工业直流电源、充电桩、并网变流器里几乎都是标配环节。但电网入口处从来不是理想电压源——电压跌落、谐波污染、三相不平衡这些网侧扰动一旦进来直流母线马上起纹波电流环跟踪跑偏严重时保护系统直接误动。我前一阵在Simulink里搭了一套基于扰动观测器DOB的抗网侧扰动整流方案从原理推导、Q滤波器整定到模型搭建和工况仿真从头到尾过了一遍效果很直观同等扰动下电流THD和直流电压波动都明显下降而且不像传统方案那样需要针对每个扰动频率单独做陷波器。这篇就把它拆开讲清楚DOB为什么能抗网侧扰动、Q滤波器怎么选、Simulink里怎么搭、仿真对比怎么做以及我踩过的几个坑。适合谁看在做并网变流器仿真的学生、搞电源硬件预研的工程师以及想把“抗扰动”做成量化数据的同学都可以参考。我的原则是把原理说人话但该给的公式也不省毕竟后面建模完全要靠它们。1. 为什么整流器需要扰动观测器——从工程痛点说起1.1 网侧扰动的典型场景与影响先说一个常见的工程场景。你在做一个三相PWM整流器的预研设计指标是直流侧电压纹波不超过1%交流侧电流THD小于5%电网适应范围包括正常工业电网和弱电网。仿真模型搭好了纯理想电源下跑得很好双闭环PI控制稳压稳流样样达标。但只要把输入换成“稍微脏一点”的电网问题全冒出来了。网侧扰动大致可以分为几类。第一是电压跌落比如电网侧发生短路故障或者大电机启动的瞬间某相甚至三相电压短时降到正常值的50%到80%持续时间可能只有几个周波。整流器的电流环依赖电压前馈来维持功率平衡电压一塌直流母线跟不上负载侧就会看到明显的电压凹坑。第二是谐波配电网上密集的非线性负载会在公共连接点叠加大量的5次、7次谐波电压畸变率动辄5%以上。整流器在谐波电压下会出现电流波形畸变THD超标还会产生额外的转矩脉动或直流侧纹波。第三是三相不平衡单相负载分配不均匀、某些线路故障未排除都会导致负序分量出现。负序分量在整流器中会产生2倍工频的功率脉动反映到直流侧就是100Hz纹波抵消不掉就会一直挂在输出上。这些扰动单独来看都“不算严重”但叠在一起以后常规双闭环PI控制器的表现就很被动。我在仿真里故意把三种扰动合入同一工况后直流电压纹波率直接冲到3%以上电流THD也远超指标。如果只是调PI参数硬压结果是电流环带宽上去以后采样噪声和开关谐波又被放大了整个系统变得神经质。这就是我转向DOB的契机。1.2 传统双闭环PI为什么不够用双闭环PI控制外环稳压、内环稳流对于理想电网下的整流器确实够用。它的逻辑是先把三相电流转换到dq同步旋转坐标系下然后利用PI调节器让d轴电流跟踪有功指令、q轴电流跟踪无功指令。稳态精度不错动态响应也能通过调参数改善。但问题在于PI调节的本质是“看到误差再去纠正”它是一个被动跟踪机制扰动信号进来以后必须先形成偏差、再由积分环节积累修正量这个过程天然存在滞后。为了把扰动压下去你会想到增大PI增益。但电流环和电压环的增益受稳定裕度限制调得越高相位裕量越小系统越容易出现振荡甚至发散。我在调试中就遇到过这种情况把电流环的积分系数提高了一倍理论上应该能压住低频扰动结果实际仿真里高频分量反而被放大电流波形出现了明显的抖动。也有工程师会用电网电压前馈来抵消扰动这个思路是对的但实现上有个硬前提你必须能准确、实时地测得电网电压的基波和主要谐波分量并且知道当前工况下系统参数没有漂移。现实是采样噪声、滤波延迟、参数老化都会让前馈精度打折一旦前馈和实际扰动对不齐不但不补益反而会引入新的误差。DOB的思路和这些都不同。它不去“猜”扰动含有什么频率成分也不要求你为每个谐波单独建一组前馈通道而是用一个反向模型把扰动“估出来”再直接把它从控制信号里扣掉。这个做法对未知扰动、未建模动态、参数漂移都有统一的处理框架用在网侧扰动抑制上非常顺手。2. DOB的原理与设计——怎么“看穿”扰动2.1 扰动观测器的数学本质扰动观测器的名字看着唬人核心思想其实不难。打个比方你走夜路被人从背后推了一把身体先歪了想保持平衡与其把全身肌肉绷紧顶住“不知道往哪来的力”不如先感觉一下是谁、从哪个方向、用了多大劲推的然后再有针对性地调整重心。DOB干的就是后面这件事。在控制系统里我们把被控对象写成标称模型Pₙ(s)实际对象由于参数误差、外部扰动等输出可以等效为Y(s) Pₙ(s) · [U(s) D(s)]这里面D(s)就是“总等效扰动”它把外部扰动和模型误差全都折算到输入端。那么如果我们知道Y和U就可以反解出DD̂(s) Q(s) · [Pₙ⁻¹(s) · Y(s) − U(s)]这里Q(s)是低通滤波器。为什么非要有它因为Pₙ⁻¹(s)往往含有纯微分项直接做会导致高频噪声被无限放大而且系统不因果物理上不可实现。Q(s)的任务就是把高频段滤掉让扰动估计只保留到我们关心的频带。得到D̂之后补偿方式很简单把控制指令减去这个估计值即U(s) U_ref(s) − D̂(s)低频段Q(s)≈1时D̂≈D补偿几乎把扰动完全抵消高频段Q(s)滚降扰动估计逐渐失效但此时本来就不该硬补偿否则会把噪声引入系统。具体到三相PWM整流器的电流环以d轴为例电压方程是L · di_d/dt e_d − v_d − R · i_d ωL · i_q其中e_d是电网电压的d轴分量可以看作外部扰动v_d是整流器桥臂输出电压也就是可控量ωLi_q是dq耦合项。如果我们把电流环对象定义成G(s) 1 / (Ls R)那么DOB作用在电流环上的逻辑就非常清晰电网电压波动e_d、耦合项ωLi_q以及任何参数偏差都会折叠成总扰动DDOB估计它并补偿到v_d指令上。这样一来即使电网电压突然跌落或者含谐波电流环看到的“等效对象”仍然是那个干净的标称模型PI控制器的带宽和增益就可以保持原来设计值不需要为了抗扰动而把参数调得“很拼命”。2.2 Q滤波器参数怎么整定Q滤波器是整个DOB要设计的核心参数它决定了扰动观测器的带宽和稳定性。工程上最常用的是二阶低通Q(s) 1 / (τs 1)²其中τ的选取是关键。这里有几个原则供参考。第一Q滤波器带宽必须覆盖主要扰动频率。对于50Hz电网的整流器谐波扰动主要集中在250Hz5次、350Hz7次不平衡产生的则是100Hz2倍频脉动。DOB要想压住这些分量Q的截止频率至少要超过350Hz实际工程中我习惯于取500Hz到1kHz给扰动抑制留出足够余量。第二Q滤波器带宽越高扰动抑制能力越强但会放大测量噪声也会减小稳定裕度。带宽过高时DOB补偿回路和电流环本体出现相位叠加系统容易高频振荡。我做过一组扫参τ从0.1ms拉到2ms扰动抑制效果和噪声放大程度呈现明显的跷跷板关系。τ0.5ms左右时Q带宽约1kHz网侧扰动压得住电流采样噪声也没有被明显放大这是我推荐的经验起点。第三考虑到电流环本身的开环带宽DOB带宽不宜超过电流环带宽太多。否则DOB在高频段的相位滞后会被电流环“放大”导致控制信号抖振。以电流环开环穿越频率300Hz为例DOB带宽落在800Hz到1.2kHz是比较安全的区间。损耗电阻R和滤波电感L的参数也直接影响逆模型的准确度。我做仿真时先把L和R精确到实际器件标称值的±5%以内再参与DOB设计。如果L标称5mH而实际是4.5mHDOB的抑制效果会明显打折扣这个后面在问题排查里再展开。3. Simulink建模实操——从双闭环到DOB插孔3.1 主电路参数与整体控制结构在Simulink里建模第一步是搭主电路。我的习惯是电网侧用Three-Phase Programmable Voltage Source可编程三相电压源然后接三相滤波电感L和交流侧等效电阻R再到三相整流桥PWM整流器直流侧输出接电容和负载电阻。交流侧加了浪涌吸收支路只是为了避免仿真初期数值过冲实际参数可以再优化。我这次用的参数如下表项目数值电网线电压380V / 50Hz交流侧电感L5mH交流侧电阻R0.1Ω直流侧电容C2200μF直流侧负载10Ω直流电压参考值650V开关频率10kHz仿真步长固定步长 1e-6 s控制部分采用经典的双闭环结构外环是直流电压PI调节器输出作为d轴电流指令内环是dq轴电流PI调节器输出经过反Park变换后生成三相调制波再进入PWM发生器。PLL用Simulink自带的锁相环模块从电网电压里提取相位信息。DOB不在这个结构上改什么它只是“插”在电流环上把电流环的PI输出当作U_ref把实测电流当作YDOB输出一个补偿量D̂从U_ref里减掉再把修正后的指令送给前馈解耦和PWM调制。这样相当于在原有控制环路外面加了一条并联的“扰动抵消回路”原有环路不改变。3.2 DOB模块的搭建细节DOB在Simulink里其实只需要几个基础模块加法器、传递函数块、单位增益块。我建议把整个DOB封装成一个子系统方便在不同轴电流上复用。以d轴DOB为例内部结构为输入1是d轴电流实测值i_d输入2是电流环PI输出的电压指令u_d_ref输出是补偿量d_hat。DOB内部按如下算式搭建先计算u_d_ref_norm u_d_ref不加其他变换再建立两个传递函数支路支路Ai_d经过 H1(s) (Ls R) · Q(s)其中Q(s) 1/(τs1)² 支路Bu_d_ref经过 H2(s) Q(s)然后把支路A的输出去减支路B的输出得到d_hat。为什么要拆成两条支路这正是DOB里“逆模型”的工程化处理。理论上d_hat Q(s)·[G⁻¹(s)·i_d − u_ref]其中G⁻¹(s)LsR是纯微分形式不能直接搭传函所以我把Q和G⁻¹乘在一起构成一个可实现的有理传函H1(s) (LsR)/(τs1)²再用H2(s) Q(s)单独对u_ref滤波。两部分相减既保持数学等价又避免了单独微分环节带来的数值爆炸。具体到模块参数我设L5mHR0.1Ωτ0.5ms则H1(s)的分子是0.005s0.1分母是(0.0005s1)² 2.5e-7s² 0.001s 1。在Simulink的Transfer Fcn模块里Numerator写[0.005 0.1]Denominator写[2.5e-7 0.001 1]。H2(s)的Numerator写[1]Denominator写[2.5e-7 0.001 1]。两个模块的输出接到加法器负号给H2支路即可。这里要重点提醒H1(s)分子里的微分成分对高频噪声非常敏感。如果仿真步长太大比如50微秒d轴电流里的采样开关毛刺会被放大成尖锐的脉冲表现为DOB输出抖振。我后来把仿真步长收紧到1微秒这个问题大幅缓解。如果你用的是离散仿真器别忘了在DOB输入端加一个截止频率略高于Q带宽的离散滤波器把采样噪声先削一轮。3.3 网侧扰动工况怎么模拟搭建好了主电路和控制环下一步就是给电网“下药”。Simulink的可编程电压源模块原生支持谐波、幅值变化和不平衡设置不需要额外搭复杂电路。我做扰动注入的配置是谐波工况在电压源里勾选Harmonics加入5次谐波含量4%、7次谐波含量2%维持整个仿真周期。电压跌落工况设置一个时间事件0.6s到0.8s期间A相电压幅值降为0.5pu其余两相不变。三相不平衡工况设置B相电压幅值降为0.8pu同时保持相位关系不变模拟单相重载造成的不平衡。为了让三种扰动可以单独观察我没有把它们放在同一段仿真里而是分别设置了三种仿真场景方便后面做对比分析。如果你要把三种扰动叠在一起考核极限性能也可以但在分析“抬升了多少”时要格外小心因为不同扰动的相互耦合很难剥离。另外建议在扰动开始前和结束后的时间点都标记好数据窗。我习惯把数据采样窗口设定为1.8s到2.2s避开初始启动暂态只评估稳态扰动下的表现。4. 仿真结果对比——有DOB和没有DOB差多少4.1 谐波污染下的电流THD先看谐波工况。电网电压加入5次4%、7次2%谐波以后没有DOB的系统交流侧电流波形已经能看出明显的削顶和毛刺。我截取2.0s到2.1s的电流数据做FFT分析THD大约是4.8%左右恰好卡在过不了5%指标线边缘。加入DOB之后同一数据窗口的THD降到了1.5%左右。最直观的变化发生在5次和7次谐波分量上没有DOB时5次谐波占2.4%、7次占1.1%开DOB之后分别压到0.6%和0.4%。原因不难理解这两个频率都在DOB带宽的覆盖范围内扰动被估计出来后直接以反向补偿的形式抵消掉了。这里有一点值得琢磨DOB并没有针对5次或7次谐波做任何专门的频率识别它只是把“估出来的总扰动”补偿回去顺带把这两个主要谐波压了下去。这就是“广义补偿”的好处——不需要知道扰动是什么只要它落在带宽内就能消。对比传统做法里专门加5/7次陷波器或者谐波前馈的方案DOB的工程量小了不少而且不会因为电网频率偏移导致陷波器失谐。4.2 电压跌落与三相不平衡下的表现电压跌落工况下DOB的收益更明显。0.6s时A相电压跌到0.5pu持续0.2s。没有DOB时直流电压出现了一个宽度大约0.15s的深坑最大跌落幅度接近12%恢复时间约0.5s。把DOB打开以后同样工况直流电压最大跌落幅度缩小到3%以内恢复时间也缩短到0.1s左右。机理在于跌落瞬间电网电压突变被DOB快速估计出来电流环在一到两个采样周期内就把补偿加进去桥臂电压瞬时调整维持了功率传输的连续性直流电容没怎么“饿着”。三相不平衡工况下的对比也很有意思。B相幅值降到0.8pu以后没有DOB时直流母线出现了明显的100Hz纹波纹波峰峰值约为平均值的3.2%。开启DOB后纹波峰峰值降到0.9%左右。100Hz正好是不平衡比产生的负序分量在dq轴上的表现频率它在DOB带宽之前所以能被有效估计和补偿。不过要提醒一句DOB只是把电流环层面的扰动抵消了如果直流侧本身的功率脉动源自负载突变那就属于另一类问题别指望DOB全包。三个场景的结果汇总工况指标无DOB有DOB谐波污染电流THD4.8%1.5%电压跌落直流电压最大跌幅12%3%电压跌落恢复时间0.5s0.1s三相不平衡直流母线100Hz纹波峰峰值3.2%0.9%单看数字就知道DOB对网侧扰动的抑制是整体性的不是只对某一种故障有效。这也是我最后决定把DOB作为基准控制方案来用的原因。5. 常见问题与调试心得5.1 观测器发散或振荡最开始搭DOB时我遇到了最典型的问题模型一开DOB电流波形直接“炸了”高频振铃铺满整个波形直流电压也跟着抖。排查后发现是Q滤波器带宽取得太高我把τ设成0.1msQ带宽接近3kHz远超电流环的承受能力。DOB补偿在高频段相位滞后过大跟电流环形成正反馈系统自然就不稳定。解决办法分两步。第一步是降带宽把τ往回调到0.5ms左右振荡幅度立刻变小第二步是看DOB输出波形是否有高频毛刺如果有就在DOB输入端加一个低通滤波或在反馈路径中插入一个单位延迟环节来打散代数环。这个“放个小延迟”的办法在离散仿真里很常用代价是可以忽略不计的控制延迟换来的是数值稳定性。还有一种振荡来源是电流采样信号本身含有过大噪声。DOB的逆模型包含微分项对噪声放大器一旦采样噪声进去DOB输出全是毛刺。这时不是继续调τ而是先把测量信号filter干净比如在电流反馈通道加一个二阶级联低通截止频率设为开关频率的一半5kHz就可以把高频噪声消掉。5.2 参数失配带来的隐患DOB的补偿效果严重依赖标称模型的准确性。我在仿真中故意把模型里的L设置成实际值的80%4mH代替5mH再看DOB的扰动补偿效果谐波THD就从1.5%回升到2.8%左右电压跌落下的直流电压跌幅也扩大了一倍。这说明DOB并不是“开挂”模型越准补偿越狠模型偏了补偿就打折扣。实际工程里L的标称值往往和真实值有偏差尤其是磁芯电感会随电流饱和变化。如果你发现DOB效果不佳先别急着调Q检查一下L和R是否和实际模型对得上。有一种做法是做一个离线辨识在Simulink里给对象加一个小幅阶跃采集电流响应拟合出实际L和R再回填到DOB模块里。我试过这个流程后THD又压回了1.6%附近比凭感觉乱调参数靠谱得多。另外电阻R的温漂影响一般没有L那么致命但如果你做的是高精度仿真也可以把R设计成可参数变量方便做敏感性分析。我在模型里用Mask封装了L、R、τ三个参数改参数时不用动内部传函直接改Mask里的数值就行这个习惯强烈建议保留。5.3 Simulink建模中的几个坑第一个坑是代数环。DOB的标准块图里补偿量d_hat反馈到控制输入端而控制输入又参与d_hat的计算这个循环如果直接连线Simulink会报代数环警告。我的做法是DOB反馈支路不取u_ref而是取修正前的参考值u_aref再在反馈路径上加一个小惯性环节破坏闭环的瞬时依赖关系。仿真结果里我对比过加上这个处理以后低频扰动补偿效果几乎不受影响。第二个坑是仿真步长。我一开始跑的是可变步长DOB在高频段的表现时好时坏波形看起来也不干净。换成固定步长1微秒以后结果稳定很多尤其在谐波工况下电流波形的FFT分析不再出现莫名其妙的边频分量。第三个坑和PI参数配合有关。DOB补偿虽强但不是说原系统的PI参数可以乱来。开DOB后电流环的等效特性变了如果原来的PI带宽已经接近稳定边界DOB的加入可能把系统推过去。我建议开DOB前后都做一次闭环波特图分析确保穿越频率和相位裕量满足要求。我的经验是DOB参数保持不变时把电流环PI增益略微下调5%到10%整体稳定性反而更好扰动抑制能力几乎无损。第四个坑是单位问题。Simulink里不同模块的单位提示未必一致尤其是可编程电压源的幅值设置默认的PEAK值还是RMS值一定看仔细。我曾在三相电压源里把幅值单位理解错导致整个仿真基准电压差了根号3倍DOB却照着错的信号“认真补偿”结果自然是越补越乱。做这种抗扰动仿真第一步必须核对所有模块单位的换算关系别等波形不对了再一头扎进控制参数里找原因。结尾这套DOB方案最终帮我省了很多逐频率设计陷波器的功夫。实际仿真中我的体会是DOB更像一个“兜底型”的扰动抑制层它不需要你提前分析电网的扰动谱只要模型参数基本准确、Q带宽选取合理就能把未建模的、未知的、突发的外部扰动统一压制下来。对整流器这种强耦合、强非线性、还要面对复杂电网工况的对象来说这个特质特别值钱。最后再分享一个小技巧DOB的Q滤波器和电流环的PI参数其实是两个可以独立整定的层次优先把DOB调稳再回头微调PI会比两个参数一起动容易得多。这个思路在后续做LCL并网逆变器、微电网变流器时一样适用。希望这篇能帮你在Simulink里少走几步弯路。
阅读完成 · 觉得有帮助?