搞谐波抑制仿真,尤其是MATLAB/Simulink里要做“无源PPF+有源APF混合型”方案的同学和工程师,大概率是已经在网上搜过一圈了。搜索结果里要么是纯理论PPT,要么是模块截图看不清楚参数,要么给了模型但没讲为什么这么接、为什么效果出不来。我自己也是从“搭模型-发散-调参-再发散”一路走过来的,这篇文章就把我在0.4kV配电系统谐波治理仿真里摸索出来的经验,尽量完整地写出来。核心围绕PPF、APF、混合型HAPF的建模与协同控制来展开,包含可以直接参考的模块选型、参数计算思路和调试顺序,希望能帮你们少走几周弯路。
先说清楚一个前提:如果你只是想要论文里那种“补偿前THD 25%、补偿后THD 3%”的漂亮结果,那这篇适合你;如果你想把它落成一套能解释每一步物理意义的仿真模型,这篇更合适。仿真里最容易出问题的往往不是滤波器本体,而是谐波检测环节、电流跟踪控制、直流侧稳压,以及“电源内阻为零导致受控源无法并联”这种阴间报错。这些我在后面都会专门讲。
1. 谐波治理为什么是个“系统问题”,而不只是滤波器选型
1.1 谐波从哪来:网侧电流畸变与公网污染
谐波治理的核心对象是非线性负载,最常见的就是三相整流桥带阻感负载、变频器前端、开关电源,还有电弧炉这类冲击性负载。它们的共同特征是:输入电流不是正弦波,而是通过傅里叶级数分解后,会有一堆特定频率的谐波分量,典型的是6k±1次,也就是5次(250Hz)、7次(350Hz)、11次、13次。
电网电压本身通常是干净的,谐波电流流过供电线路阻抗(包括变压器漏抗、线缆阻抗)以后,才会在公共连接点(PCC)形成电压畸变。所以仿真里不能把电网当成理想电压源直接并联整流桥,那样你会得到一个“电压正弦、电流畸变”的模型,和实际工程现场完全不同。
1.2 治理目标与评价手段:THD、特征谐波、国标限值
评价谐波治理效果,最常用的指标有三个:总谐波畸变率THD、单次谐波含有率HRn、以及各次谐波电流有效值。国内工程上做电能质量评估,基本绕不开GB/T 14549-1993《电能质量 公用电网谐波》,它规定了0.38kV公用电网PCC点电压总谐波畸变率不超过5%,奇次电压谐波含有率不超过4%,偶次电压谐波含有率不超过2%。
仿真里怎么看这个数?Simulink的Powergui里自带FFT Analysis工具,把SCope数据导入,设定基波频率50Hz、周期数选10个,就能读出补偿前和补偿后的THD。注意一点:读取区间必须选稳态段,千万不要从0时刻开始取,因为启动瞬间电流冲击大,FFT分析会把暂态分量也算进去,THD结果会失真。
提示:做仿真对比的时候,一定要保持FFT分析窗口一致,控制变量。比如补偿前取0.2s-0.4s,补偿后也取同样的时间段,这样前后对比才有说服力。
1.3 先搞清楚场景再选拓扑:容量、动态响应、成本三维度
滤波方案不是越贵越好,而是越匹配越好。仿真选型也一样,你先要搞清楚负载工况:
- 负载容量多大,谐波电流总量大概多少A;
- 谐波是稳态长时间存在,还是短时冲击;
- 除了滤谐波,还要不要兼顾无功补偿。
这三条直接决定你走纯无源、纯有源,还是混合型。纯PPF只能针对固定频率滤波,负载变动或电网阻抗变化时容易失谐;纯APF动态响应好、能补偿未知频率,但大容量场合成本感人;混合型就是冲着“容量互补、成本折中”去的。
2. PPF、APF、HAPF三类滤波器的分工逻辑与选型思路
2.1 无源PPF:LC旁路的核心原理与“失谐死穴”
无源滤波器本质上是针对特定次谐波频率设计的低阻抗旁路。以5次单调谐滤波器为例,它由电容C和电感L串联而成,谐振频率为:
f_r = 1 / (2π√(LC))
当频率恰好在f_r附近时,LC串联支路阻抗最小,该次谐波电流会被“吸”进这个支路,不再流入电网。这是PPF的物理基础,简单、可靠、成本低,还能通过电容发出基波无功。
但致命的弱点是“失谐”。实际工程中,电容会老化、电感会饱和、环境温度会变化,而且电网频率也可能有微小偏差,一旦谐振点偏移,滤波效果迅速恶化。更麻烦的是,PPF和电网等效阻抗之间可能形成并联谐振,某些次谐波不但没被滤掉,反而被放大。这就是为什么现在大容量场合很少单独用纯无源。
2.2 有源APF:谐波检测+反向补偿的本质
APF的工作逻辑可以概括为三步:检测负载谐波电流 → 取反生成补偿指令 → 变流器输出反相谐波电流注入电网。相当于一个“反向的谐波源”,把畸变电流“抵消”回去。因为控制链路是实时的,它不仅能滤5次7次,连间谐波、偶次谐波、动态变化的谐波都能处理。
在Simulink里,APF一般由这几部分构成:谐波电流检测模块、电流跟踪控制器、PWM变流器、直流侧电容和稳压控制环。这部分也是仿真里最容易出bug的地方,后面我会单独拆开讲。
2.3 混合型由来:压缩有源容量、抑制无源谐振
为什么要做混合型?两个原因。
第一,纯APF必须承担全部谐波电流容量。比如负载谐波电流100A,那APF的变流器容量基本就得按100A以上设计。但实际谐波里大头往往是5次、7次这种固定特征谐波,这些用无源来“扛”更划算。无源先把主要谐波吃掉,APF只需要处理残余谐波和动态变化,容量可以压缩到纯有源方案的20%-30%,成本直接降一大截。
第二,APF可以主动抑制PPF的谐振问题。PPF和电网阻抗形成的并联谐振点,APF可以等效成在谐振频率附近注入一个阻尼项,让原本可能被放大的谐波被“压住”,这在实际工程里比单纯调无源参数管用得多。
我用一个具体场景来说话:0.4kV系统、负载容量约100kVA、三相整流型负载,THD大约在25%-30%。如果纯用APF,变流器容量至少得40A以上;如果纯用PPF,5次7次能压下去,但负载波动时滤波效果会飘;用混合型,PPF承担主要的5次、7次滤波,APF只负责残余补偿和阻尼,整体体积、成本、动态性能都更均衡。仿真模型里也特别好体现这种“分工”逻辑,因为PPF支路的参数是可计算、可固定的,APF部分调好之后,总THD很容易做到3%以内。
3. Simulink里先把三相非线性负载和畸变源做扎实
3.1 用整流桥+RL负载造出“教科书级”谐波源
在Simulink中搭三相谐波源,最经典的方式是“三相交流源 + 二极管整流桥 + 直流侧RL负载”。在Simscape Electrical库里,Powergui是必须的,它决定你整个仿真到底是连续、离散还是相量模式。搭建步骤大致是:
- 用Three-Phase Source搭网侧电源,线电压设为380V、频率50Hz;
- 用Universal Bridge搭建三相整流桥,选Diode类型;
- 直流侧接一个串联的R和L,作为整流负载;
- 用Three-Phase V-I Measurement测量负载侧三相电流和电压;
- 接上Powergui并设为Continuous或Discrete模式。
R和L的取值直接决定谐波含量比例。负载电流越大、直流侧电感越小,谐波畸变越明显,THD会高一些;直流电感越大,电流越平滑,谐波含量会略微下降,但5次7次依然存在,只是幅值变化。你可以扫几组参数,看看不同负载电感下THD的变化趋势,这也是论文里很好用的“负载特性对谐波影响”的分析素材。
3.2 电源、线路阻抗、负载的建模参数怎么给
这是新手最容易糊弄但也最重要的地方。三相电源不要用“理想电压源直接并接”,一定要考虑电网内阻抗。做谐波仿真时,我会在Three-Phase Source内部设置Source resistance和Source inductance,典型值可以是Rs=0.01Ω、Ls=50μH左右,或者按变压器短路阻抗估算。为什么必须加阻抗?
第一,如果没有内阻抗,电网侧就是一个理想的无穷大母线,谐波电流对PCC电压畸变的影响完全无法体现,你也就没法评价“电压THD”这个指标。
第二,APF的受控电流源和理想电压源直接并联,在仿真里会报错或出现奇怪的数值振荡。多了一个小阻抗,从物理和数值上都好解。
整流负载直流侧参数给一个参考起点:直流侧R=5Ω,L=10mH。在这个参数下,流过三相整流桥的电流会呈典型的尖顶波,FFT分解后能看到清晰的5次、7次、11次、13次分量。用这个负载做后面滤波效果对比,频谱特征很清楚。
3.3 测量点与功率分析模块的正确接法
仿真模型的信号测量是下一步控制逻辑的基础,接错位置会做出错误结论。这里有一条实用经验:谐波电流检测点放在负载入口处,性能评价点放在电网PCC处。
也就是说,检测APF补偿指令时,应该检测“负载电流”,因为APF要补偿的就是负载的谐波电流;而判断治理效果时,应该看“电网侧电流”或者PCC电压经过FFT分析后的THD。这两个点搞混了,就会看到“补偿后负载电流THD还是很高”的奇怪现象,其实APF工作正常,只是你看错了对象。
Simscape的测量模块输出通常是Simulink信号,往下串“Clarke变换、Park变换、低通滤波”这些普通Simulink模块时,中间要注意信号类型转换,必要的时候用Goto/From或Data Type Conversion整理。所有测量信号在接入控制模块之前,最好都经过一个单位增益的Gain或直接连线,确认信号路径里没有隐性的单位问题。
4. 谐波电流检测模块:dq同步旋转坐标系法的Simulink实现
4.1 从Clarke到Park:为什么谐波在dq轴上是交流量
APF性能好不好,很大程度上取决于谐波检测准不准。最常用的是dq同步旋转坐标系法,本质上是把三相电流变换到和基波电压同步旋转的d-q坐标系里。
克拉ark变换先把abc三相电流变成αβ两相,然后Park变换再变成dq两相,其中d轴、q轴以基波角频率ω同步旋转。转换的关键效果是:基波正序分量在dq轴上是直流,而谐波分量(尤其是6k±1次)在dq轴上变成交流量,最低的5次和7次会变成6次(300Hz)、11次13次变成12次(600Hz)。于是,我们想提取基波或者提取谐波,本质就变成了“分离直流和交流”的问题,用一个低通滤波器(LPF)就能把基波直流分量拎出来,总电流减去基波电流就是谐波电流。
4.2 低通滤波器截止频率与相位延迟的取舍
这是整个检测环节里最影响动态性能的模块。LPF的截止频率不能设太高也不能太低:太高,6倍频的交流分量滤不干净,基波提取里会混入残余波动;太低,滤出来的直流量滞后严重,动态响应变慢,补偿会有明显的延迟感。
我自己的经验值是:截止频率取100~150Hz。用二阶巴特沃斯低通滤波器,在100-150Hz范围内的衰减特性可以把300Hz交流分量压到可接受的水平,同时对基波直流的跟随滞后控制在几个毫秒级别。如果你对动态响应要求高,可以用100Hz;如果系统谐波成分比较多,建议用120Hz作为折中。
低通滤波器的相位延迟是客观存在的。在实测中,检测延迟会导致补偿后的电网电流在波形过零点附近出现毛刺,严重时THD不仅没降反而升高。遇到这种情况,可以考虑在检测通道里做一点相位补偿,或者在电流跟踪控制器里把增益往上调,让控制系统对误差更敏感。但相位补偿的系数不要盲目加,得结合仿真的稳定裕度来调。
4.3 用MATLAB Function封装检测环节,方便复用
在Simulink里,dq检测可以拆成一个个Gain、Sum、Product模块连出来,这样可视性好但对初学者来说连线太多,一处接错就找不到。我自己习惯用一个MATLAB Function把整个检测算法封装起来,输入是三相电流ia、ib、ic和同步角θ(由PLL给出),输出是基波d轴分量id1、q轴分量iq1和谐波电流总量。
function [id1, iq1, ih_a, ih_b, ih_c] = harmonicDetector(ia, ib, ic, sin_theta, cos_theta) % 三相电流 -> Clarke变换 ialpha = (2/3) * (ia - 0.5*ib - 0.5*ic); ibeta = (2/3) * ((sqrt(3)/2)*ib - (sqrt(3)/2)*ic); % 三相电流 -> Park变换(dq轴) id = ialpha * cos_theta + ibeta * sin_theta; iq = -ialpha * sin_theta + ibeta * cos_theta; % 低通滤波后的直流分量,即基波分量 % 这里用离散低通滤波,代码示意为主 global id_lpf_prev iq_lpf_prev; wc = 2 * pi * 120; % 截止角频率 Ts = 1e-5; % 控制周期,需和仿真步长匹配 alpha = wc * Ts / (1 + wc * Ts); id_lpf = alpha * id + (1 - alpha) * id_lpf_prev; iq_lpf = alpha * iq + (1 - alpha) * iq_lpf_prev; id_lpf_prev = id_lpf; iq_lpf_prev = iq_lpf; % 反Park变换,得到基波电流 ia1 = id_lpf * cos_theta - iq_lpf * sin_theta; ib1 = (ia1 + sqrt(3) * ( id_lpf * sin_theta + iq_lpf * cos_theta)) / 2; ib1 = (-0.5) * ia1 + (sqrt(3)/2) * ( id_lpf * sin_theta + iq_lpf * cos_theta); ic1 = -ia1 - ib1; % 谐波电流 = 总电流 - 基波电流 ih_a = ia - ia1; ih_b = ib - ib1; ih_c = ic - ic1; id1 = id_lpf; iq1 = iq_lpf; end上面代码里的低通滤波是实现示意,真正工程中我建议直接用Simulink的Discrete Transfer Fcn模块来做滤波,避免在MATLAB Function里维护全局变量,而且更容易调试参数。封装思想是通用的:模块内部只做算法,外部给它喂正确的输入,输出就是稳定的控制指令。
锁相环PLL必不可少。dq变换需要“同步角”,在仿真里一般用Three-Phase PLL模块,输入三相PCC电压,输出sin和cos。PLL的动态收敛很快,大概几个基波周期就稳定了,不会对整体仿真造成太大负担。
5. 有源补偿器的核心:电流跟踪控制与直流侧稳压
5.1 滞环比较PWM:让开关自己“追”参考电流
谐波电流检测出来后,APF需要生成一个和它“反相”的补偿电流。这个电流控制环节我推荐先用滞环比较PWM,因为它最容易理解,调试也最直观。
滞环控制的思路非常简单:把实际的补偿电流和参考补偿电流做差,当误差超过正向环宽时,让开关管动作让电流增大;当误差低于负向环宽时,让开关管动作让电流减小。结果就是实际电流在一个“环”内不断跟踪参考电流,环越宽跟踪误差越大、开关频率越低;环越窄跟踪精度越高、开关频率越高,但仿真步长不够小时容易抖。
在Simscape里,用Relay模块就能实现滞环比较。三相各自独立做一相滞环,三个比较输出分别作为变流器三个桥臂的开关信号。
滞环宽度怎么选?我一般是取额定电流的5%左右。比如补偿电流额定30A,环宽取1.5A左右,折合到仿真里看就是电流高点和低点大约1.5A的起伏。实测下来,这个参数能兼顾THD和开关频率,不会让模型在固定步长下产生大量抖动。
5.2 APF直流侧电容与PI稳压:为什么必须加有功通道
APF本质上是一个PWM变流器,交流侧输出补偿电流,直流侧必须有稳定的直流电压,否则变流器无法正常工作。补偿过程中,变流器和电网之间会有少量有功交换,导致直流电容电压波动。这个波动必须用闭环拉回来。
具体做法是:用直流电压实测值Vdc和参考值Vdc_ref做差,送入PI控制器,PI输出作为一个d轴有功电流的附加参考值,叠加到电流内环指令上。当直流电压偏低,说明变流器从电网吸收的有功不够,PI输出的附加分量会引导变流器多吸收一点有功来抬升电压;反之亦然。仿真中,Vdc_ref要根据交流侧线电压来定。0.4kV系统常用750V左右,具体取决于PWM调制方式和调制度,你可以用“直流电压≥1.414×交流相电压幅值”的约束来估算。
直流电容的值也有讲究。容量太小,电压纹波大,补偿电流里会混入低频脉动;容量太大,电压建立慢,稳压环反应迟钝。我常用的粗算是按“kW级APF配500~1000μF”的量级去取,具体在仿真里先给一个值,看看电压纹波是不是超了5%,再往大或往小调。
5.3 主电路连接方式:受控电流源vs全桥变流器
仿真APF主电路有两种做法,两种我都试过,各有利弊。
第一种,直接用Three-Phase Controlled Voltage Source或者Controlled Current Source,把控制模块生成的补偿电流指令输给受控源。这种做法的优点是搭建简单、仿真速度快,适合先验证控制和检测算法;缺点是太“理想化”,没有开关动作、没有直流电容,也就没有开关频率纹波,结果偏理想。
第二种,用Universal Bridge搭三相两电平变流器,开关信号由滞环PWM给出,直流侧接大电容。这种更接近真实APF,输出补偿电流有开关纹波,能真实反映谐波补偿后的残余纹波,论文里更有说服力。缺点是仿真步长要够小,全模型跑起来比较慢。
我的建议是:前期验证算法用受控源模型,跑通了以后再换成全桥变流器做精细化验证。直接把全桥模型当第一步,调试时一旦发散,你根本不知道是检测环节的问题、控制环的问题,还是开关逻辑的问题,排查成本高很多。
6. 混合型HAPF的协同策略:PPF打底、APF精修
6.1 典型HAPF拓扑与容量分配关系
混合型HAPF在仿真里最常见的拓扑是“无源PPF支路与APF并联接入电网”。无源支路设计成5次、7次单调谐滤波器(必要时加高通),主要吸收特征谐波;APF并联在PCC,负责动态补偿剩余谐波。国内工程上还有一种“注入式HAPF”,有源部分通过变压器和无源支路串联,这样APF承受电压小、容量可以大幅降低,但仿真模型更复杂,控制耦合也更强。作为入门,我建议先把并联型HAPF弄通,再去看注入式。
容量分配上有个很直观的关系:PPF滤掉谐波电流的60%~70%,APF只需处理剩下30%左右。反映到APF额定电流上,就是变流器容量可以做小很多。这个“容量压缩”的故事,是混合型方案在工程论证里最亮眼的点。
6.2 无源支路参数计算:以5次、7次单调谐滤波器为例
无源PPF的参数要按“谐振频率躲开系统谐振点、基波无功容量合适”来整定。以0.4kV系统、补偿容量按负载无功需求粗略估计为例,我们来算一组展示用参数,步骤如下:
先定5次滤波支路电容,比如C5=100μF,按谐振频率公式反推电感:
L5 = 1 / (4π² × f₅² × C₅) = 1 / (4π² × 250² × 100×10⁻⁶) ≈ 4.05 mH
7次滤波支路同理,C7=80μF,则:
L7 = 1 / (4π² × 350² × 80×10⁻⁶) ≈ 2.58 mH
电容的耐压要按照PCC电压和谐波电压叠加来选,仿真里主要看支路电流是否在可承受范围。电感需要有内阻,否则谐振阻抗为零,仿真容易数值振荡,内阻按电感量估算,取零点几欧姆量级。
提示:上面这组参数是教学演示用,不是某一个具体工程现场的精确整定值。真实项目里还要考虑变压器的短路阻抗、无功补偿容量、并联谐振校验,仿真里确认趋势没问题后,再按实际情况迭代。
6.3 有源部分只补偿“剩余谐波”的控制流程
并联型HAPF里,APF的控制指令并不是“全部谐波电流”,而是“负载总谐波电流减去PPF已经旁路掉的部分”。最准确的仿真做法是:在PCC点用电流传感器测出“流过PPF支路的电流”,然后用“负载谐波电流-无源支路电流”作为APF参考。但实际控制里很难精确测量“PPF滤了多少”,工程上常用近似方案:APF仍检测负载总谐波电流,但只补偿其中一部分,比如通过一个增益系数k(0~1)来控制APF补偿比例。k=0表示纯无源,k=1表示完全补偿所有谐波。混合型一般取k=0.2~0.4,就能把THD压到很低。
这个增益系数在仿真里特别有用,你可以快速对比不同补偿深度下的THD,顺便画出“APF容量与THD”的关系曲线,这个图在论文或答辩里相当有说服力。
6.4 抑制无源滤波器和电网阻抗谐振的关键设计
PPF和电网阻抗的谐振问题,如果没有APF压着,在仿真里很容易观察到:某些频率下电网侧谐波电流不降反升。加入APF以后,这只“有源阻尼器”会输出与谐振电流反相的分量,把谐振峰的幅值压下去。这个效果在频域上看起来就是“谐振峰被削平”。
仿真验证方法:把PPF支路单独投入,扫描不同频率下的PCC阻抗或者观察特定次谐波的放大情况;然后把APF按混合型控制投上,再看同样频率点的响应。你会发现APF对谐振的抑制是实打实的,这也是混合型比单纯PPF在“鲁棒性”上好一大截的原因。
7. 跑通仿真后的调参与避坑记录
7.1 一上电就发散:连续/离散求解器与步长怎么选
仿真发散是新手遭遇的第一大坑,表现通常是波形瞬间飞到十万八千里,或者直接报“Simulink cannot solve the algebraic loop”。根据我的经验,原因排名前三的是:电源内阻为0、控制周期和仿真步长不匹配、滞环比较产生的高频开关信号在连续求解器里造成过零振荡。
我的做法是:全模型用Discrete(离散)仿真模式,固定步长取10μs(1e-5),Powergui里选离散,然后把所有控制环节的采样周期设成和步长一致。如果你用变步长连续模式,滞环开关动作会让求解器不断缩小步长,速度慢到怀疑人生。步长取10μs,对于0.4kV、100A以内容量的仿真模型足够了,既能体现开关纹波,又不至于跑太慢。
7.2 补偿效果差:先查检测相位,再查控制增益
如果波形看起来补偿了但又没完全补偿,比如THD只从25%降到15%,第一件事不是调PI,而是检查PLL输出的同步角是不是对的。dq变换的相位错了,检测出来的“基波”里混着谐波,“谐波”里混着基波,整个控制指令就是乱的。看PLL输出的sin波形和A相电压波形是否对齐,这一步5分钟能确认。
相位没问题,再看滞环环宽和控制增益。滞环太宽跟踪误差大,补偿会“不到位”;增益过高则可能出现高频振荡,甚至把谐波放大。我一般先把环宽放到额定电流的8%,看波形趋势,再逐步收紧到5%、3%,观察THD变化。
7.3 THD分析操作细节:FFT窗口、基波频率、稳态区间
Powergui的FFT Analysis用起来不难,但有三处容易错:
- 基波频率要填50Hz,不是100,不是60;
- FFT窗口的起始时间要选在稳态段,我个人习惯0.2s到0.4s;
- 周期数选10,最大频率拉到2000Hz左右,这样能看到40次内所有主要谐波。
另外,比较补偿前后的THD时,采样数据的原始波形时间范围要一致。如果你是把Scope数据导出到Workspace再分析,记得把Time向量对齐,否则FFT结果没法对比。
7.4 我的调试顺序建议(从开环到闭环)
调试HAPF模型,最容易让人崩溃的就是“搭好全模型然后黑了灯”。我后来总结出一套顺序,省了很多事:
- 先把整流负载模型跑起来,确认负载电流波形和THD符合预期;
- 搭PPF支路,单独投PPF,看THD降到多少,记录此时的无源滤波效果;
- 搭APF检测环节,先不接主电路,用Scope看一下检测出来的谐波电流波形是否正确;
- 用受控电流源搭ADF主电路,跑闭环,确认补偿逻辑,THD应大幅下降;
- 最后把受控源换成全桥变流器,加滞环PWM和直流稳压,整体联调。
每一步都验证过了再往下走,比一次性堆完所有模块再Debug要高效得多。我见过太多同学卡在最终联调上,其实就是中间少了一次“阶段验证”。
最后再分享一个小技巧
我在实际做这个仿真时,习惯做一张“参数对照表”,把PPF参数、APF滞环宽度、PI参数、直流侧电容、负载参数全部列在一起,每一轮调参都在表里记录一组和对应的THD结果。这样看起来像是在做实验记录,实际上帮了大忙——当你回头想恢复某个好的状态时,不用靠记忆去猜参数。而且答辩时拿出这份“调参记录表”,比只给最终波形要扎实得多。
谐波抑制仿真,尤其是有源无源混合型,本质上是一个“检测+控制+主电路”的三层系统,每一层都有坑,但也正因为如此,它是个非常好的综合仿真练习。按我上面说的顺序一步步搭,大概率能在两周内拿到一份稳定、能复现、效果达标的模型。跑通了以后,你会在代码和波形上长出一层“手感”,再去看其他电能质量仿真题目,思路就顺了。