尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

SPWM单极性倍频全桥逆变器仿真建模与参数优化

SPWM单极性倍频全桥逆变器仿真建模与参数优化 开头我入行电力电子这几年被问得最多的仿真问题不是各种复杂的闭环控制反而是最基础的SPWM建模。尤其是“单极性倍频调制”这个词很多新手一听就觉得高深实际上原理并不复杂难的是在Simulink里把它正确搭出来再让输出波形、谐波指标、滤波参数都能对得上。这篇文章我就把自己调试SPWM单极性倍频全桥逆变器仿真模型的经验完整梳理一遍从原理推导到Simulink模块搭建再到谐波分析和参数优化最后把新手最容易踩的坑也列出来。适合刚接触电力电子仿真、或者正在做全桥逆变器课题的读者看完可以直接照着搭一个能用的模型。1. 先把原理掰开揉碎SPWM、单极性倍频和86.6%到底怎么来的仿真卡壳九成是因为原理没吃透。尤其是SPWM这种调制方式你完全不理解它的波形生成逻辑参数设错了都不知道问题出在哪。所以这一节我不讲虚的就把最核心的几个概念说透。1.1 SPWM的本质面积等效不是随便说说的SPWM全称是正弦脉宽调制核心思路很简单用一系列宽度按正弦规律变化的脉冲去等效替代一个正弦波。这就是电力电子里常说的“面积等效原理”即冲量相等而形状不同的窄脉冲加在具有惯性的环节上时其效果基本相同。具体到实现上就是用一条低频正弦波作为调制波一条高频三角波作为载波两者送入比较器。正弦波瞬时值大于三角波时输出高电平小于时输出低电平。由于三角波在每个周期内线性上升再线性下降正弦波幅值越高在一个载波周期内高于三角波的时间就越长输出的高电平脉冲就越宽。这样输出的脉冲宽度自然就跟着正弦波的幅值走了。仿真时很多人喜欢直接拖一个现成的PWM Generator模块但我不建议新手这么做。自己先搭一遍比较器电路你对整个调制过程的理解会深很多。后面我讲模型搭建时也会用最原始的比较器方案。1.2 单极性和双极性全桥输出的三电平优势全桥逆变器有四个开关管调制方式可以分成双极性和单极性两大类。双极性调制下四个管子按对角线成组导通A组左上和右下导通时输出电压为UdB组右上和左下导通时输出电压为-Ud。输出电压始终在正负两个电平之间跳变只有两个电平。单极性调制则不同它在输出电压正半周时只输出Ud和0负半周只输出-Ud和0。输出电压有三种电平。有意思的是虽然单极性输出的脉冲少了负电平但开关管的实际开关频率并没有降低依然等于载波频率。真正把频率“翻倍”的是单极性倍频调制。这里有一个容易混淆的概念单极性调制的“单极性”指的是输出电压只有单极性脉冲而不是开关管驱动信号单极性。四个开关管依然要高频动作该死区的问题一点都不会少。1.3 倍频是怎么实现的反相载波让等效频率翻倍单极性倍频调制的核心操作是让同一个正弦调制波同时与两路相位相差180度的三角载波进行比较得到两路SPWM信号分别驱动全桥的两个桥臂。两个桥臂的输出电压UA和UB分别都是带正负电平的高频脉冲但把两者相减得到的全桥输出电压UAB脉冲重复频率就变成了载波频率的两倍。这就是“倍频”说法的来源。等效开关频率从fc变成了2fc但每个开关管的动作频率依然是fc。这里的关键点在于开关管的开关损耗和开关频率成正比所以倍频调制没有额外增加损耗却把输出脉冲的谐波最低频率从fc附近搬到了2fc附近。滤波电感需要抑制的高频分量频率翻了一倍同样的滤波要求下电感可以做小一号体积和成本都能降下来。这是倍频调制在工程上最大的价值。1.4 86.6%线电压利用率的完整推导关于线电压利用率只有86.6%这个数字很多教材直接给结论新手往往一头雾水。其实这个数值对应的是三相系统而且特指线电压基波峰值与直流母线电压的比值。推导是这样的。设直流母线电压为Ud三角载波峰值为Ud/2调制比M定义为正弦调制波峰值与载波峰值的比值。当M1时正弦波峰值正好等于Ud/2此时每相输出的相电压基波峰值最大等于Ud/2。线电压是两相电压之差三相系统里线电压幅值等于相电压幅值的根号3倍所以线电压基波峰值是$$U_{线,peak} \sqrt{3} \times \frac{U_d}{2} \approx 0.866 U_d$$这就是86.6%的来历。它说的是三相SPWM逆变器在线电压这个维度上直流电压利用率最高只能做到86.6%。你可能会问方波逆变器能做到多少方波逆变器线电压有效值是0.816Ud折算下来基波成分比SPWM还要高但方波的谐波含量太大所以在需要低谐波的场合宁可牺牲一点电压利用率也要用SPWM。如果是三相电机驱动项目想进一步提高电压利用率就要用SVPWM它能让线电压基波峰值做到和Ud相等相当于利用率100%。但如果你是做单相全桥逆变器SPWM单极性倍频调制下输出电压基波峰值最大就是Ud这里不要跟三相的86.6%搞混了。2. Simulink模型搭建手把手搭一个完整的倍频SPWM全桥逆变器原理清楚之后就进入实操环节。下面的搭建流程全部基于Simulink基础模块不依赖额外的第三方库版本在R2018b以后基本都能跑通。我会把每个关键模块的参数设置一项一项列清楚。2.1 模型总体架构与仿真参数规划在动手搭模型之前先把系统的参数定下来。我这里以一个典型的单相全桥逆变器为例参数如下参数数值说明直流母线电压Ud400V常见的光伏或储能母线电压输出频率f050Hz工频交流输出载波频率fc9950Hz载波比N199取奇数保证波形对称调制比M0.85留出一定调节裕量负载电阻R10Ω阻性负载便于观察波形滤波电感L2mH抑制高频纹波滤波电容C10μF与电感构成LC低通滤波这里载波频率我特意没选10kHz整数是因为载波比Nfc/f0最好取奇数。N20010kHz/50Hz是偶数输出波形正负半周会出现不对称谐波分析时会看到不该有的偶次谐波。9950Hz对应的N199是奇数这个细节很多教程不讲但实际FFT分析时区别很明显。仿真步长方面我建议先用固定步长步长设置为1e-6秒也就是1微秒。载波周期约100微秒一个载波周期内有100个采样点足够保证脉冲边沿的精度。等模型验证没问题了再尝试用变步长提高速度。2.2 载波和调制波信号源反相三角波的关键设置倍频SPWM需要两路反相的三角载波。最简单的办法是先用一个Repeating Sequence模块生成三角波再用一个Gain模块取负号得到反相载波。Repeating Sequence模块参数设置Time values输入[0 1/(2*fc) 1/fc]也就是半个周期和整个周期的时间点Output values输入[1 -1 1]让三角波从1线性下降到-1再线性回到1因为Simulink的Repeating Sequence支持用变量表达式我一般直接在参数框里写[0 1/(2*9950) 1/9950] [1 -1 1]第一路载波Uc1生成后复制一个Gain模块Gain值设为-1就得到反相载波Uc2。这里要注意两路载波必须是严格反相相位差180度幅值和频率完全一致。用取负号的方式比单独再生成一路三角波更可靠因为不会出现频率或幅值不一致的问题。调制波用Sine Wave模块Amplitude0.85即调制比MBias0Frequency (rad/sec)2pi50Phase0有的教程会在调制波里加一个很小的直流偏置用来消除输出变压器饱和问题但那是后话咱们先不加。2.3 PWM比较逻辑与驱动信号处理载波和调制波准备好之后用两个Relational Operator模块做比较。我的习惯是正弦波大于等于载波时输出1第一路sin Uc1输出SPWM_A第二路sin Uc2输出SPWM_BSPWM_A和SPWM_B就是两个桥臂的驱动信号。全桥每个桥臂有两个开关管上下管需要互补导通所以还需要用Logical OperatorNOT对每路信号取反一次得到四路驱动信号桥臂1上管SPWM_A桥臂1下管NOT(SPWM_A)桥臂2上管SPWM_B桥臂2下管NOT(SPWM_B)这里涉及一个关键连接关系全桥输出电压UAB UA - UB。当SPWM_A为高、SPWM_B为低时输出Ud当SPWM_A为低、SPWM_B为高时输出-Ud当两者相同时输出0。由于SPWM_A和SPWM_B分别由反相载波调制产生它们的高电平时刻会错开半个载波周期所以输出电压的脉冲频率自然就变成了载波频率的两倍。如果你直接用Universal Bridge模块它每个桥臂的驱动端口是一个2维向量上管信号放第一个元素下管信号放第二个元素。可以用Mux把SPWM_A和它的取反信号拼成一个1x2向量。这里我建议新手先用四个独立的IGBT加二极管搭建主电路虽然模块多一点但每个管子的驱动关系看得清楚后面调死区也方便。2.4 全桥主电路与负载建模主电路我推荐用Simscape Electrical Specialized Power Systems库里的IGBT模块自己搭全桥而不是直接用Universal Bridge封装。原因是Universal Bridge虽然简单但新手一旦驱动信号接错排查起来很费劲。搭建步骤如下直流电源用DC Voltage Source400V四个IGBT带反并联二极管按全桥拓扑连接左侧两个管构成桥臂1右侧两个管构成桥臂2桥臂1中点标记为UA桥臂2中点标记为UBUB通过滤波电感和滤波电容连接到UA构成LC滤波负载电阻接在滤波电容两端这里要特别提醒全桥的输出接法不是把负载直接接在一个桥臂中点和直流负极之间而是接在两个桥臂中点之间。很多新手第一次搭全桥时会把负载接到直流负极结果得到的是半桥波形倍频效果完全出不来。测量环节加上两个电压测量模块和一个电流测量模块分别测负载电压和负载电流。测量信号接入Scope之前建议先经过一个Mean或RMS模块查看有效值方便和理论值对比。调制比0.85、直流母线400V时理论输出基波有效值约0.85乘以0.707再乘以400约240V左右仿真出来如果偏差太大就要回查连接关系了。3. 仿真调试、谐波分析与参数优化模型能跑起来只是第一步真正考验水平的是调试和优化。一个能用的逆变器仿真不仅要波形好看还要谐波指标、滤波参数、运行速度都说得过去。这一节讲我怎么分析仿真结果以及参数优化的几个关键方向。3.1 从波形到数据FFT分析怎么看效果仿真跑完第一步先看时域波形。正常情况下负载电压经过LC滤波后应该是一条接近正弦的50Hz波形幅值贴近理论值而桥臂中点之间的原始PWM波UAB应该是在正负400V之间跳变的等幅脉冲串脉冲宽度呈现正弦变化规律且脉冲频率明显高于单个开关管的动作频率。如果UAB的脉冲频率看起来和开关管驱动频率一样没有翻倍说明两路载波的相位差没有设置好或者两路SPWM信号错误地驱动了同一个桥臂。这是倍频SPWM最容易犯的错误排查时直接看UA和UB两路信号的Scope波形应该存在半个载波周期的错位。波形对了之后打开Powergui模块进入FFT Analysis工具进行谐波分析。操作步骤是双击Powergui选择FFT Analysis在Structure下拉框里选择电压测量信号设置基波频率50Hz最大频率显示到20kHz或更高FFT窗口选择周期数建议设为10个周波以上滚动条拖到最后一次仿真结束时刻然后点击Display。分析结果重点看三个指标基波幅值应该在0.85乘以400约340V峰值附近THD总谐波畸变率滤波后应在5%以内我们这组参数实测通常在2%到3%之间谐波分布应该是谐波能量集中在2fc附近即19.9kHz左右1kHz以下低频谐波很小如果发现能量没有集中在2fc附近而是集中在fc附近说明倍频没生效。如果低频段出现大量谐波大概率是载波比选了偶数或者波形本身不对称。3.2 调制比M和载波比N的选择逻辑调制比M是正弦调制波峰值和三角载波峰值的比值。M一般在0到1之间M越大输出电压越高但谐波也会略微上升。M超过1之后进入过调制区输出电压不再线性增长低次谐波会显著增大所以工程上一般把最大调制比限制在0.9左右留一点裕量。载波比Nfc/f0的选择则要在波形质量和开关损耗之间平衡。N越大谐波频率越高滤波越容易但开关损耗也越大。同时N的选取还有一些潜规则载波比特性选择建议原因整数性必须是整数保证输出波形周期稳定避免次谐波奇偶性优先取奇数输出波形正负半周对称消除偶次谐波三相场合最好取3的倍数消除三相间的线电压谐波干扰如果只是做单相全桥仿真记得把载波比取成奇数比如199、201这些值。很多仿真教程直接用10kHz配50HzN200是偶数虽然波形肉眼看不出来问题但FFT分析里会出现本可以避免的偶次谐波给后续写报告和做实验对比带来不必要的麻烦。3.3 滤波参数设计LC截止频率的计算与调试LC滤波器的设计目标是保留50Hz基波同时把2fc附近的高频谐波衰减掉。核心参数是截止频率$$f_c \frac{1}{2\pi\sqrt{LC}}$$我用的L2mH、C10μF算下来$$f_c \frac{1}{2\pi\sqrt{2\times10^{-3} \times 10\times10^{-6}}} \approx 1125Hz$$这个截止频率约是基波频率的22倍是等效开关频率20kHz的5.6%高频谐波会被衰减大约两个数量级效果已经很不错。如果想进一步压低THD可以把截止频率调低一些但要注意截止频率太低会影响系统动态响应也就是负载突变时输出电压恢复时间变长。电感纹波电流的估算也很有用。对于单极性倍频调制电感电流纹波峰值近似为$$\Delta I_{max} \frac{U_d}{4 \times L \times f_{sw_eff}}$$代入参数Ud400VL2mHfsw20kHz$$\Delta I_{max} \frac{400}{4 \times 2\times10^{-3} \times 20000} 2.5A$$也就是说10Ω负载时平均电流40A纹波电流峰值约2.5A占比约6%这个水平在仿真里完全没问题。如果你发现纹波电流偏大优先加大电感电容对电流纹波帮助不大。3.4 求解器与步长设置的经验值电力电子仿真有一个让很多人都头疼的问题仿真速度奇慢或者干脆不收敛。这跟求解器选择关系很大。我常用的做法是主电路用Specialized Power Systems库时把Powergui设为离散模式采样时间设1e-6秒求解器选离散固定步长。离散模式最大的好处是仿真速度快而且不会出现连续变步长求解器在开关时刻反复迭代导致的收敛问题。如果必须用连续模式求解器优先选ode23tb或ode15s这两个都是针对刚性系统设计的对电力电子这种包含快速开关动作的系统更友好。最大步长建议设置为载波周期的二十分之一也就是5微秒左右否则容易漏掉脉冲边沿导致输出波形失真。还有一个小技巧在调试阶段可以把载波频率暂时降低到1kHz把滤波电容加大这样仿真速度会快很多方便快速检查逻辑有没有问题。逻辑确认无误后再改回真实参数跑最终结果能省不少时间。4. 常见问题与排查技巧实录这一节记录我实际调试中遇到过的典型问题以及对应的排查思路。很多问题自己折腾很久才发现原因希望你能绕开这些坑。4.1 新手最容易翻车的四个坑第一个坑是输出波形只有正半周或者只有负半周。出现这种情况多半是负载接错位置了把负载接到了桥臂中点和直流负极之间而不是两个桥臂中点之间。全桥输出必须跨接两个桥臂这是最基本的拓扑常识但初学者确实容易错。第二个坑是FFT分析里看到大量偶次谐波。前面提到的载波比N200就是典型原因。解决办法是把载波频率改成整数的奇数倍比如9950Hz。改动之后偶次谐波会明显消失波形对称度也更好。第三个坑是仿真速度慢到无法接受。除了把Powergui改成离散模式之外还可以检查一下是不是误用了变步长求解器配很小的相对误差。仿真精度够用就好相对误差设1e-3足够了没有必要设到1e-6。第四个坑是输出电压有效值过低。如果波形形状正确但幅值明显偏小回查调制比M的设置再看一下正弦波和三角波的比较方向是不是反了。比较方向反了会输出相反的脉冲序列看起来像SPWM但实际等效调制比变成了1-M输出幅值自然低。4.2 问题速查表问题现象可能原因排查与解决输出电压无倍频效果两路载波反相关系不对检查第二个载波是否严格取负用Scope对比载波相位输出波形正负不对称载波比为偶数载波频率改为50Hz的奇数倍如9950Hz输出波形呈马鞍形调制比M超过1进入过调制降低M至0.9以下谐波集中在fc附近而非2fc驱动信号未按倍频逻辑分配确认SPWM_A和SPWM_B分别驱动不同桥臂仿真不收敛变步长求解器不合适切换到ode23tb或改用Powergui离散模式输出直流分量过大调制波含有直流偏置检查Sine Wave的Bias参数是否为零4.3 死区、双闭环和进一步拓展方向关于死区仿真初期可以先不设置因为理想驱动信号直接驱动IGBT不会出现直通。但做硬件实验之前一定要考虑死区。死区会带来输出电压损失和低次谐波尤其是在调制比高的时候更明显这也是为什么实际项目的调制比很少超过0.85。在Simulink里模拟死区可以用Transport Delay配合逻辑运算实现但逻辑稍微复杂等基础波形跑明白再尝试更稳妥。模型验证没问题后还可以往上扩展。把这套倍频SPWM全桥逆变器作为功率级加入电压外环和电流内环的双闭环控制就变成了一个完整的逆变器并网或离网系统。还可以把阻性负载换成LC滤波器加非线性负载观察谐波性能在不同负载条件下的表现。更进阶的方向是把调制策略从SPWM换成SVPWM对比两者在相同直流母线电压下的输出电压差异这个对比实验做完你对电压利用率这个概念就会有切身体会了。我个人在实际调试中最大的体会是Simulink模型不怕慢就怕错模块摆放可以乱但信号流向必须心里有数。建议每次都先把UA、UB、UAB三路波形放在同一个Scope里对比着看倍频是否生效一眼就能判断。等这套全桥模型跑通了后面再做三相逆变器、电机控制、并网变流器你会发现底层的SPWM思路都是相通的只不过桥臂数量变多、调制策略更复杂而已。
返回列表