有源电力滤波器中DSOGI-PLL的锁相环原理与建模
与电网电压畸变相关的工程实践中真正难处理的往往不是“能不能锁上相”而是“锁出来的相位能不能在谐波和不平衡条件下仍然干净”。很多刚接触有源电力滤波器APF的开发者会把锁相环当成一个现成的库函数电机控制里怎么做并网逆变器里怎么做搬到APF里就怎么做。等实际把补偿电流算出来再观察才发现谐波检测结果跟着锁相误差一起抖动第一反应是电流环参数没调好查到最后问题却出在同步环节。本文结合“有源电力滤波器 DSOGI-PLL 原理建模分析”这条主线把双二阶广义积分器锁相环从原理到建模完整拆一遍。上半篇侧重原理、传递函数建模与离散化设计下半篇再展开Simulink仿真对比与实验验证思路。读完你至少能回答三个问题普通锁相环在非理想电网下为什么不够用DSOGI-PLL里的“双”到底体现在哪里如果自己要搭建一个可仿真的模型离散域建模和参数整定的关键点有哪些。1. 为什么APF的锁相环比想象中更难设计有源电力滤波器的任务是实时检测负载电流中的谐波、无功或负序分量并输出一个反向补偿电流。要做到这一点控制器的第一个前提是知道当前电网电压矢量的准确相位。几乎所有谐波检测算法包括基于瞬时无功功率理论的pq法、基于dq旋转坐标的谐波提取法都需要把电流从三相静止坐标系转换到与电网电压同步的旋转坐标系。锁相环输出角度的准确性直接决定了坐标变换后的d轴、q轴分量是否真的是“直流分量”。如果只看理想电网这个问题并不难。电网电压三相对称、频率稳定、波形为正弦此时同步旋转坐标系锁相环能获得非常好的性能。真正让工程难度上升的是APF实际接入的低压配电系统。大量非线性负载接入后公共连接点电压会发生畸变三相不平衡负载会造成电压不对称。有的现场电压总谐波畸变率并不高但负序分量在dq坐标系下会折算成2倍工频脉动这个脉动叠加到锁相输出上会导致后续谐波电流检测结果出现周期性误差。APF对相位精度极其敏感因为补偿对象本身就是“除基波以外的所有谐波和负序分量”如果同步基准不干净相当于把误差当成了补偿目标。DSOGI-PLL这类方案近年被广泛讨论原因并不是它比传统锁相环多了多少高级技巧而是它把“滤除电压畸变”和“提取基波正序分量”这两件事放在同一个结构里完成。它最基本的两个动作其实很朴素一个动作是用二阶广义积分器产生两路正交信号另一个动作是在αβ静止坐标系下做正序分量提取。理解了这两个动作也就理解了DSOGI-PLL的主干。2. 从SRF-PLL到DSOGI-PLL技术演进要解决什么2.1 SRF-PLL的基本原理同步旋转坐标系锁相环是目前三相并网变流器里最常见的锁相方案。它的思想是把三相电压经过Clarke变换得到αβ静止坐标系分量再通过Park变换转换到dq旋转坐标系。理想情况下如果锁相环输出角度等于电网电压正序基波分量的相位那么q轴电压分量为零d轴电压分量等于电压幅值。控制回路用PI调节器不断修正频率和相位使q轴分量趋于零最终达到锁定状态。它的结构图大体上可以分成三块坐标变换、环路滤波器、压控振荡器。环路滤波器通常采用PI控制器输出角频率修正量再积分得到相位角。这个结构在电网电压比较干净时动态响应快稳态精度高所以工程应用非常广泛。2.2 电网电压不平衡时的问题当电网电压出现不平衡时情况会变复杂。把不对称电压用对称分量法分解会得到正序、负序和零序三组分量。APF通常接在三相三线制系统所以不需要考虑零序通路。在αβ静止坐标系下正序分量和负序分量都表现为以工频旋转的交流量看起来似乎没有明显区别但进入与正序同步旋转的dq坐标系后正序分量变成了直流负序分量却变成了2倍频交流量。这意味着锁相环输入给PI调节器的q轴电压里会叠加一个100Hz的脉动分量。PI调节器无法完全消除交流扰动最终锁相环输出相位会出现2倍工频的波动。这种波动量看起来不大折算成角度误差可能只有几度但在APF控制里几度误差会引起谐波检测结果在多个频点上出现偏差补偿精度下降。传统的解决方案是在环路里加入低通滤波器或陷波器来抑制100Hz分量但低通滤波器的带宽不能无限压低否则锁相环动态响应会变得非常慢。电网频率跳变时锁相环可能迟迟跟不上这对需要快速响应的APF来说是不可接受的。2.3 DSOGI-PLL的解决思路DSOGI-PLL的思路不是在环路滤波上做文章而是从源头上把负序分量先去掉。它在三相电压变换到αβ坐标系之后用两个结构相同的SOGI分别对α轴分量和β轴分量进行滤波并产生对应的正交信号。然后利用对称分量法在静止坐标系下构造出基波正序分量最后才把正序分量送入SRF-PLL。这样做的好处很明显负序分量在进入锁相环之前就被消除了所以锁相环dq轴输出中不会再出现100Hz脉动不再需要依赖低通滤波器来压脉动。SOGI本身又具有带通滤波特性能衰减一部分高次谐波锁相环看到的输入电压比原始电网电压干净得多。这就是DSOGI-PLL能兼顾动态响应和抗畸变能力的核心原因。3. SOGI原理一个能产生正交信号的二阶滤波器3.1 SOGI到底在做什么SOGI的全称是Second Order Generalized Integrator中文通常译为二阶广义积分器。很多初学的人会被“广义积分器”这个名字吓住其实它的核心功能可以这样理解SOGI以某个频率为中心对输入信号做带通滤波同时输出两路信号一路与输入信号在中心频率处完全同相另一路在中心频率处比输入信号滞后90度。后一路信号就是常说的“正交信号”。单相系统中没有天然的两路正交电压但很多控制算法又需要两路正交信号于是人们用SOGI来构造正交信号。三相系统中虽然有abc三相但经过Clarke变换后形成αβ两个轴这两路分量在理想对称情况下是正交的当地电压不平衡或畸变时αβ分量之间不再保持严格的90度关系直接使用会造成误差。因此最常见做法是对α轴和β轴分量分别配置一个SOGI让两路SOGI在中心频率处重新生成规范的正交分量。3.2 SOGI的传递函数SOGI可以看作一个以输入电压v为激励、以中心角频率ω0为谐振参数的二阶系统。它在工程上通常定义一个阻尼系数k然后给出两个重要传递函数D(s) v(s) / v(s) k * ω0 * s / (s^2 k * ω0 * s ω0^2) Q(s) qv(s) / v(s) k * ω0^2 / (s^2 k * ω0 * s ω0^2)其中v表示同相输出qv表示正交输出。在中心频率ω0处|D(j * ω0)| 1相位为0度 |Q(j * ω0)| 1相位为-90度这说明一个理想设计的SOGI在中心频率处不会改变信号的幅值但同时能提供一个精确的90度滞后信号。离开中心频率后D(s)和Q(s)都会表现出衰减特性所以SOGI本身具备一定的选频滤波能力。中心频率通常取自50Hz工频实际工程中也可以让中心频率跟随锁相环输出的估算频率从而实现频率自适应。3.3 阻尼系数k如何影响性能阻尼系数k在SOGI中的作用类似于二阶系统中的阻尼比。k越小SOGI的通频带越窄对中心频率附近的谐波滤除能力越强但动态响应越慢k越大动态响应越快但滤波效果变差输出信号中可能残留更多频率偏离中心频率的谐波分量。下面的表格概括了典型取值下的性质阻尼系数k带宽特征动态响应滤波能力适用情况0.5~1窄慢强谐波严重但频率变化小的场合1.414左右中等较快中等工程中最常用兼顾精度与速度2~3宽快较弱电网频率跳变剧烈要求快速跟踪需要特别注意的是k并不是越大越好。如果只追求锁相动态速度而把k设得很大SOGI输出的正交分量会带进更多非中心频率的干扰导致负序提取效果下降。DSOGI-PLL的参数整定中k的选择要与锁相环PI参数放在一起考虑不能单独孤立地取一个值。4. DSOGI-PLL整体结构与正序分量提取原理4.1 从三相电压到两相静止坐标DSOGI-PLL的第一步是把三相电压进行Clarke变换。对三相三线制系统通常采用等幅值变换vα (2/3) * (va - 0.5 * vb - 0.5 * vc) vβ (2/3) * ((√3/2) * vb - (√3/2) * vc)变换后的vα和vβ仍然包含正序分量、负序分量和谐波分量。在αβ坐标系中这些分量叠加在一起如果直接送入锁相环不平衡问题依然存在。4.2 双通道SOGI结构DSOGI-PLL会在αβ坐标系下并联两个SOGI模块SOGI-α输入vα输出vα和q * vα SOGI-β输入vβ输出vβ和q * vβ这里q表示90度滞后算子q * vα就是vα经SOGI正交通道得到的滞后信号。之所以要分别处理α轴和β轴是因为电网不平衡时vα和vβ之间失去了简单的正交关系必须分别生成各自的正交分量才能进行后续的正序提取。有人会问为什么不直接对其中一个轴分量构造一个SOGI另一个分量直接使用原始值原因在于不平衡状态下直接使用原始β轴分量会保留负序和谐波信息破坏正序提取的精度。两个独立SOGI的好处是每一路输出都经过了带通滤波和规范正交处理既滤除了部分谐波又为负序消除提供了统一基准。4.3 静止坐标系下的正序电压提取三相不对称电压在αβ坐标系下的正序分量可以用下面的公式从正交分量中恢复vα 0.5 * (vα - q * vβ) vβ 0.5 * (q * vα vβ)这个公式的物理意义是把两个轴上的原始分量进行交叉补偿正序分量能够同相叠加负序分量则相互抵消。理解这个公式不需要把对称分量法推导全部展开只要抓住两条线第一如果把电网电压分解成正序和负序两组旋转矢量那么在基频处正序分量的vα与vβ之间是滞后90度的关系负序分量的vα与vβ之间也是滞后90度的关系但正序和负序的旋转方向相反。第二通过与SOGI产生的正交量做交叉加减可以将反向旋转的那部分矢量消掉。需要提醒的是这里的vα与原始输入vα在中心频率处近似相等q * vα表示滞后信号但SOGI本身有一定的带宽在电压频率偏离中心频率时vα不等于vαq * vα也不会是理想的90度滞后因此最终的正序提取效果和SOGI参数直接相关。4.4 正序分量进入SRF-PLL得到vα和vβ后接下来的处理就与普通SRF-PLL基本相同进行Park变换用PI控制器闭环调节q轴分量到零输出估算角度和估算频率。与普通SRF-PLL的区别在于输入到Park变换的信号不是原始电压分量而是已经去除负序分量并滤除部分谐波的正序基波分量。在完整DSOGI-PLL结构中锁相环输出的估算频率还会反馈回两个SOGI模块作为SOGI的中心频率。这样做实现频率自适应。电网频率从50Hz漂到49.5Hz时两个SOGI的中心频率也随之调整从而保持输出信号在中心频率处的单位增益和90度相移特性。这是DSOGI-PLL工程上能适应电网频率变化的重要原因。5. 建模分析从连续域传递函数到系统特性5.1 模块化建模的输入输出关系要对DSOGI-PLL做仿真建模建议先把整个结构拆成清晰的数据流模块三相电压va/vb/vc → Clarke变换 → vα、vβ → SOGI-α(ω0) → vα、q * vα → SOGI-β(ω0) → vβ、q * vβ → 正序计算 → vα、vβ → Park变换 → vq误差 → PI调节器 → ω_pll → 积分得到θ_pll → θ_pll反馈给Park变换ω_pll反馈给两个SOGI在Simulink或类似仿真软件中每个模块都可以单独封装为子系统方便调试。搭建顺序建议从前向后推进先验证Clarke变换输出再单独测试SOGI模块的频率特性然后验证SOGI和正序计算模块能否在不平衡电压下提取出正确的正序分量最后再接入PI闭环。如果一上来就搭建完整闭环某个模块出错时很难定位到具体环节。5.2 为什么正序提取能消除2倍频脉动从数学上理解负序的消除可以看一个简化的基频场景。假设电网电压只包含正序基波和负序基波没有谐波那么vα vα vα- vβ vβ vβ-把这两组代入正序提取公式从信号叠加的角度可以证明负序分量在交叉运算中会两两抵消最后得到的vα和vβ中只剩正序分量。这样后续Park变换得到的vq中不再有100Hz脉动锁相环的环路滤波器也就不需要再去抑制这个扰动。如果输入电压中还含有谐波比如5次、7次谐波情况会复杂一些。SOGI的带通滤波会把远离中心频率的谐波衰减掉一部分但并非完全滤除。剩余谐波在dq旋转坐标下会表现为(6n±1)次谐波对应的脉动所以工程中经常需要根据谐波频谱再增加额外滤波结构或者在SOGI前级加入针对性陷波。DSOGI-PLL不是万能的谐波滤除器它最重要的目标是解决负序分量导致的2倍频问题同时提供一定的高次谐波抑制能力。5.3 连续域传递函数与频率特性观察在MATLAB/Simulink中可以用连续域传递函数直接观察SOGI的频率特性。下面这段脚本定义了一个50Hz系统下的SOGI并画出D(s)与Q(s)的波特图% dsogi_pll_sogi_bode.m % 观察SOGI两个输出通道的幅频与相频特性 clear; clc; close all; f0 50; % 电网工频 w0 2 * pi * f0; k_sogi sqrt(2); % 工程常用阻尼系数 s tf(s); % 同相输出通道 D(s) D_s k_sogi * w0 * s / (s^2 k_sogi * w0 * s w0^2); % 正交输出通道 Q(s) Q_s k_sogi * w0^2 / (s^2 k_sogi * w0 * s w0^2); % 波特图对比 figure; bode(D_s, Q_s, {2*pi*10, 2*pi*200}); grid on; legend(D(s): 同相输出, Q(s): 正交输出);运行这段脚本可以在相频特性中看到在50Hz附近D通道相位接近0度Q通道相位接近-90度。幅频特性中两个通道在50Hz处增益约等于1。频率偏离50Hz越远幅值衰减越大。5.4 频率自适应建模的简化处理在连续域仿真模型中SOGI中心频率设置为固定值w0并不影响原理验证。但电网频率发生偏移时固定中心频率会导致SOGI在真实基频处出现幅值和相位误差进而影响正序提取。因此工程仿真中通常把SOGI中心频率的输入端口接到锁相环输出的估算角频率上。在建模时要避免直接把估算频率信号接到SOGI传递函数的w0系数上因为传递函数内部如果用的是定值w0就无法在运行时改变。推荐的做法是把SOGI搭建为带外部频率输入的二阶积分器结构。如果使用连续域积分器将w作为输入信号与内部积分状态相乘即可实现频率自适应。6. 数字实现中的离散化设计6.1 为什么要关心离散化APF的数字控制器基于DSP或FPGA运行所有算法都需要以离散形式实现。如果只在Simulink中做连续域仿真不验证离散化误差经常会出现一个问题连续域仿真里锁相性能很好写成C代码烧进控制器后锁相输出却出现了明显纹波。产生这类问题的常见原因就是离散化方法选择不当或者采样频率与SOGI中心频率的比值不够高。SOGI是一个二阶谐振系统极点实际位于s平面的虚轴附近。离散化时如果采用简单的差分近似极点位置可能发生偏移导致中心频率偏差或阻尼特性变化。工程上比较通用的做法是采用双线性变换Tustin法离散化必要时可以加入频率预畸变。6.2 用MATLAB c2d查看离散化结果下面脚本把前面连续域SOGI的D(s)用Tustin法转换到离散域采样频率设为10kHz% dsogi_pll_discrete_check.m % 观察SOGI离散化后的幅频与相频特性 clear; clc; close all; f0 50; w0 2 * pi * f0; k_sogi sqrt(2); fs 10000; % 采样频率10kHz Ts 1 / fs; s tf(s); % SOGI同相输出通道连续性模型 D_s k_sogi * w0 * s / (s^2 k_sogi * w0 * s w0^2); % Tustin法离散化 D_z c2d(D_s, Ts, tustin); % 对比连续域与离散域的幅频/相频 figure; bode(D_s, D_z, {2*pi*1, 2*pi*1000}); grid on; legend(连续域D(s), 离散域D(z));从理论上讲Tustin法会把s平面的整个左半平面映射到z平面的单位圆内因此原来稳定的连续系统离散化后仍能保持稳定。在10kHz采样率下SOGI离散化后的中心频率偏移很小可以满足多数应用要求。但如果采样频率降到2kHz以下同样采用Tustin法又希望中心频率无偏差就需要使用带预畸变的Tustin法或选择其他离散化策略。6.3 离散化实现的工程要点离散化设计中最容易出错的地方有三个第一SOGI结构中如果存在多个乘法系数必须统一量化时间单位。比如中心频率w0的单位是rad/s采样周期Ts的单位是s两者相乘需要确认量纲一致。第二反馈回中心频率时不能把PLL输出的估算频率直接当作w0用在离散化系数中因为离散化系数是按额定频率预先算好的如果需要频率自适应通常采用查表或实时计算的方式更新谐振系数而实时计算又涉及三角函数开销工程实现时要评估CPU资源。第三数字控制中的顺序延迟会影响锁相环动态性能建模时应考虑一拍延迟带来的相位滞后。7. 仿真搭建思路与验证步骤7.1 仿真模块组成在Simulink中搭建DSOGI-PLL建议使用下面的模块清单模块实现内容关键信号三相电压源可设置正序、负序、谐波分量va/vb/vcClarke变换将三相转换到αβ静止坐标vα/vβSOGI-α对vα滤波并生成正交信号vα、q*vαSOGI-β对vβ滤波并生成正交信号vβ、q*vβ正序计算交叉运算得到正序分量vα、vβPark变换旋转坐标变换vd/vqPI调节器控制vq到零ω_pll相位积分器对角频率积分θ_pll如果是在纯数学仿真阶段三相电压源可以直接用正弦函数搭建并加入不平衡系数和谐波分量。更贴近实际的做法是把电压处理成带有负序分量的
上一篇/下一篇内容由系统自动关联
返回资讯列表 →