做光伏并网仿真的人,对低电压穿越(LVRT)这几个字应该都不陌生。我第一次接到这个题目时,心里想的是“这不就是把正常并网控制调稳,再在电网故障时别脱网就行”。真把并网点电压从1.0p.u.瞬间拉到0.2p.u.以后,波形完全不是想象中那样:母线电压一路冲高,逆变器电流尖峰一下比一下猛,原本运行得好好的两级式光伏并网系统,几毫秒内就接近失控。从那以后我才明白,低电压穿越控制策略研究的核心难点,不在正常工况的稳态精度,而在故障瞬间和故障恢复瞬间,系统能不能在“并网安全”和“设备安全”之间找到平衡。
我先解释一下这里的对象。两级式光伏并网系统,典型结构是前级DC/DC变换器加后级DC/AC逆变器,前级负责把光伏阵列电压升高并完成最大功率跟踪,后级负责把直流能量逆变成交流送入电网。这个结构在正常电网条件下非常成熟,但电压跌落时,前后级之间会出现严重功率不平衡。本课题要解决的,就是在这种不平衡下通过改进型控制策略让系统完成低电压穿越,同时不烧毁直流母线电容、不触发逆变器过流保护。
这个方向非常适合两类人参考:一类是做新能源并网仿真和逆变器控制的学生,另一类是想把仿真结果落地到样机调试的工程师。仿真研究最大的价值在于可以低代价地验证各种极限工况,你不用真的去短路电网,就能在模型里反复测试电压跌落到不同深度时,控制算法、参数、保护逻辑各自的表现,然后带着结论去做实物验证。
1. 先理清要解决的核心问题:电压跌落为什么会让两级式系统瞬间失控
1.1 低电压穿越并不是“不断开”那么简单
电网电压跌落通常由短路故障、大电机启动或重负荷投入引起,持续时间从几十毫秒到一两秒不等。对于光伏并网系统来说,低电压穿越的基本要求是:并网点电压跌落到一定范围时,逆变器不能立刻跳闸脱网,而要维持并网运行一段时间。
但工程上真正苛刻的地方在于,只“不脱网”远远不够。故障期间逆变器还要主动发出无功电流去支撑电网电压,有功电流则需要按照剩余电压深度合理限制。电压深度不同,要求的无功支撑强度也不同。
可以这样理解:低电压穿越是把“尽量多发有功”的正常控制目标,临时切换成“保网为主、保设备为辅”的故障控制目标。切换不是简单的开关切换,因为电流内环、直流母线电压外环、锁相环这些模块在故障瞬间都会受到剧烈扰动,如果一个环节没有协调好,就很容易触发保护。
我见过很多初学者把低电压穿越等同于“故障时把逆变器闭锁,等电网恢复后再启动”,这在早期确实是一种保护策略,但现在已经不能满足并网要求。真正的穿越,是故障期间逆变器保持工作、输出无功、维持直流母线电压在安全范围,等电网电压恢复后又能平顺回到正常发电状态。
1.2 两级式拓扑对电压跌落比单级式更敏感
单级式光伏并网系统一般只有一个逆变级,光伏阵列直接通过逆变器并网。两级式系统中间多了一个DC/DC环节和直流母线电容,看起来只是多了几个器件,动态行为却完全不一样。
先看正常工况。前级Boost变换器从光伏阵列抽取能量,升压后送给直流母线;后级逆变器从直流母线抽取能量,送入电网。当光伏输入功率和逆变器输出功率相等时,直流母线电压稳定。母线电容在这里相当于一个能量缓冲池,只要进出水量一致,池子水位就保持不变。
电压跌落之后,井网点电压降低,后级逆变器为了保证不过流,输出有功电流必须受到限制,这就相当于水池的出水口被堵住了一半。但前级的MPPT控制并不知道外面发生了什么,仍然按最大功率点的功率向母线侧输送能量。进水多、出水少,多余的能量只能积在直流母线电容上,母线电压自然猛涨。
这就是两级式拓扑在低电压穿越中最核心的问题:前级功率通路和后级功率通路在故障时失去了平衡。仿真里你会看到,如果不做任何干预,直流母线电压能在几十毫秒内冲到额定值的1.5倍甚至更高,而母线电容和功率开关器件的耐压余量一般没有这么大。电容爆炸、IGBT击穿,往往就在一瞬间。
另一个容易被忽视的点是电流应力的转移。逆变器输出电流一旦被限制,前后级功率差会表现为直流电压升高;而直流电压升高后,逆变器在同样调制比下输出的交流电压也会升高,加剧并网电流畸变和过流风险。这种正反馈关系,依靠常规的PI调节器是很难压住的,因为直流电压外环的响应速度远赶不上故障变化速度。
1.3 “改进型”控制到底改在哪里
很多人听到“改进型”就会觉得是把现有的PID参数重新整定一下,或者换一种调制方式。实际上这个方向里的“改进型低电压穿越控制策略”,核心是给传统并网控制增加一个故障决策层和一个故障执行层。
传统控制结构在正常并网时是这样的:直流母线电压外环输出有功电流给定,无功电流给定通常为零或由调度指令决定,电流内环在dq坐标系下分别跟踪有功和无功电流,最后通过PWM生成驱动信号。这个结构在电网电压稳定的前提下没有问题。
一旦电网电压跌落,这个结构暴露出几个薄弱点:直流电压外环会试图维持母线电压而大幅增加有功电流指令,这会让逆变器过流;无功电流没有专门的跌落响应机制,无法为电网提供支撑;MPPT继续追踪最大功率,又加剧前后级功率不平衡。改进型策略就是逐一针对这些问题去修正。
我习惯把改进策略概括成四个动作:第一,快速判断故障发生并识别跌落深度;第二,将电流指令从“有功优先”切换为“无功优先”;第三,在母线电压过高时启动能量泄放或限制前级输入功率;第四,故障恢复后,通过平滑过渡切回正常并网控制,避免二次冲击。这四个动作不是取代传统控制的底层结构,而是在原有架构上增加状态判断和指令修正,这也是工程中比较容易落地的改进方式。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 改进型低电压穿越控制策略的完整设计框架
2.1 故障状态识别:判据不能太灵敏,也不能太迟钝
低电压穿越控制的第一步是判断“什么时候进入故障模式”。这个环节听着简单,做起来却有不少讲究。如果判据太灵敏,电网电压的正常波动或谐波畸变都可能误触发低压穿越模式,导致系统频繁切换控制目标;如果判据太迟钝,真正跌落时可能错过了最佳无功支撑时间。
我采用的方法是检测并网点电压的d轴正序分量。在电网电压定向矢量控制中,锁相环会跟踪电网电压矢量方向,正常情况下d轴电压接近电压幅值,q轴电压接近零。用d轴电压标幺值作为跌落判断信号是一个比较自然的选择。
跌落判据可以这样设置:当U_d小于0.9p.u.且持续超过2ms,认为进入低电压穿越模式;当U_d恢复大于0.9p.u.且持续超过20ms,认为电网电压恢复,切回正常模式。这里故意让“进入”的判断快一些,“退出”的判断慢一些,是为了防止故障恢复初期电压波动造成控制模式反复切换。
持续时间的判断很关键。单纯用瞬时值比较,电网正常时期的电压暂降或谐波畸变很容易造成误触发。加入一个2ms的时间窗,相当于对判断信号做了一次去毛刺处理,既能保证响应速度,又能避免高频干扰导致的误动作。
跌落深度也要检测。通常在LVRT模式内部再细分为浅度和深度跌落,跌落越深,无功电流指令越大,有功电流的可用余量越小。检测方式是在进入故障模式后的一个工频周期内,持续采集U_d的最小值,用这个值作为跌落深度参数。
2.2 故障期间的电流指令分配:有功让路,无功优先
低电压穿越期间,逆变器输出电流要兼顾两个目标:一方面要支撑电网电压,另一方面又不能超过开关器件允许的电流上限。所以电流指令分配是一个典型的约束优化问题,只不过工程实现上不需要严格优化,用优先级规则就能处理得很好。
我的做法是:
故障期间无功电流指令按跌落深度计算,通常采用下面的经验关系:
iq_ref = kq × (0.9 − Ug_pu) × In
其中Ug_pu是并网点电压标幺值,In是额定电流,kq是无功支撑系数,一般取1.5到2.0左右。电压跌落越深,需要的无功电流越大,但计算出来的iq_ref不能超过逆变器允许的最大电流,需要经过限幅。
有功电流指令在故障期间不再直接由直流母线电压外环控制,而是根据无功电流的占用空间重新计算。假设逆变器最大允许电流为Imax,那么有功电流的幅值上限可以通过id_ref = sqrt(Imax² − iq_ref²)来估算。这个公式来自电流矢量幅值的几何关系,目的是保证合成电流不超过器件限制。
这样分配的意义是:在电流容量有限的前提下,把电流容量优先让给无功需求,剩下的容量才用于有功输出。电压跌落很浅时,无功电流指令很小,有功电流基本不受影响;电压跌落很深时,无功电流占用了大部分电流容量,有功电流就会被限制到很低甚至接近零。
需要重点强调一下,不要简单地在故障时把有功电流指令直接清零,这样虽然能避免过流,但会导致系统输出功率瞬间中断,故障恢复时冲击更大,也不符合实际并网需求。正确做法是让有功电流平滑下降到一个受限于剩余容量的值,让系统尽量维持运行。
2.3 故障期直流母线能量管理:泄放与降载一起用
前级MPPT继续输入功率、后级输出功率受限,多余的能量必须找到出路。直流母线电压升高到越限值时,如果只依靠控制算法去调节,物理上是不可能把多余能量凭空消掉的。所以需要增加硬件配合或让前级停止追踪最大功率。
我在这套改进型策略里选用了一个比较简单有效的方案:在直流母线侧增加卸荷电路,也就是常说的Chopper电路。当母线电压超过设定阈值时,Chopper中的开关管导通,将多余能量通过卸荷电阻消耗掉;当母线电压回落到安全值以下时,关断卸荷电路。
卸荷控制不需要很复杂的算法,用滞环比较就能实现。比如直流母线额定电压为700V,设定卸荷启动阈值为750V,停止阈值为720V。母线电压超过750V时闭合卸荷开关,电阻开始泄放能量;母线电压降到720V以下时断开开关,防止反复投切。
单纯依靠卸荷电路的问题是,如果故障时间很长且前级功率很大,卸荷电阻需要持续消耗大量能量,电阻的功率等级和散热会变得非常夸张。所以更完整的方案还需要后级配合,在故障期间让前级Boost从MPPT模式切换到限功率模式。
限功率控制的实现也不复杂:正常时Boost按照MPPT算法给出的占空比运行;故障时不再追踪最大功率点,而是通过抬升光伏阵列的输出电压来降低输入功率,这样从源头上就减少了注入直流母线的能量,卸荷电阻的负担会小很多。我通常的做法是,在深度跌落时让前级直接退出MPPT并锁定当前占空比,再配合卸荷电路处理瞬态多余能量。这样既避免了MPPT在故障期间持续扰动,又能让母线电压在几百毫秒内稳定下来。
3. 仿真建模与每个环节的参数计算
3.1 主电路和控制链路在仿真环境里怎么搭
仿真平台我选用的是MATLAB/Simulink中的Simscape Electrical模块库,这套模块库在光伏并网仿真领域使用非常普遍,既能做详细开关模型,也能用平均模型加速仿真。
主电路模型从前往后大致需要搭建这几个部分:光伏阵列、Boost升压电路、直流母线电容、三相逆变桥、LCL滤波器和三相电网。
光伏阵列模块可以直接用Simscape Electrical自带的PV Array模块,设置组件参数时,我习惯先确定目标功率等级。这里以10kW的光伏系统为例,我设置的阵列参数大致是:最大功率点电压约310V,最大功率点电流约32A,开路电压约380V,短路电流约35A。这样前级Boost把电压从310V升到直流母线额定值700V左右,占空比大约0.55,效率比较合理。
Boost电路的电感参数要按电流纹波来设计。工程经验是以输出功率的10%作为允许纹波电流,假设Boost开关频率为10kHz,输入电压310V,输出电压700V,占空比约0.56,那么电感量可由基本关系估算出来并留出30%左右裕量。直流母线电容的容量则需要按母线电压纹波和故障时允许的最大电压升高来确定。电容太小,电压跌落瞬间母线电压上升过快;电容太大,成本高且动态响应慢。我按每千瓦功率配100到200微法的工程经验取值,10kW系统一般选2000微法左右,然后根据仿真中的波形微调。
三相逆变桥可以用Universal Bridge模块实现,开关器件选IGBT。并网侧LCL滤波器参数需要综合考虑高频衰减和谐振峰值,典型值可参考:逆变器侧电感1.5mH,网侧电感1.0mH,滤波电容5微法,阻尼电阻2欧姆左右。这个配置对10kHz开关频率的衰减效果明显,同时可以通过控制算法来抑制谐振。
电网部分要能模拟低电压穿越工况,我使用可编程三相电压源作为电网模型。在该模块中可以直接按时间分段设置电压幅值,比如:0到0.5s正常运行,0.5s到1.125s电压跌落到0.2p.u.,1.125s之后恢复正常。这种模式的优点是故障深度和持续时间都精确可控,适合先验证控制策略的正确性。
在模型收敛处理上,建议优先选用离散求解器,设置开关管采样时间为1e-6秒到1e-5秒之间。如果开关频率为10kHz,采样时间取1e-6秒可以比较准确地捕捉开关过程。模型刚搭完时可以先跑稳态工况,等波形稳定无误后再加入跌落故障。
3.2 内外环控制参数的设计思路
并网逆变器的控制参数不能靠随机试凑,设计时要有清晰的带宽概念。电流内环要响应快,一般带宽设计在1kHz左右;直流母线电压外环要比电流内环慢很多,一般在100Hz以下,否则内外环之间会产生相互激励。
这里我给出一个标幺化的控制参数设计表,方便照着一个基准去调整:
| 控制环节 | 控制对象 | 带宽参考值 | 参数调整思路 |
|---|---|---|---|
| 电流内环 | 并网电感电流 | 1000Hz左右 | Kp先给一个中等值,如果电流跟踪有静差再增大Ki |
| 锁相环 | 电网电压矢量角度 | 30-50Hz | 带宽太高会放大畸变,太低会跟不上动态 |
| 直流电压外环 | 母线电压 | 50-100Hz | Kp影响超调,Ki影响稳态误差 |
| Chopper滞环 | 母线电压上限 | 快通慢断 | 阈值由母线电容耐压决定 |
实际调节时最常用的方法是用Simulink的线性化分析工具或者直接看阶跃响应。电流内环的Kp如果太小,动态过程中电流跟踪会出现明显滞后;如果太大,电流波形会产生高频振荡。直流电压外环调节时要注意一个陷阱:电压环的输出是有功电流指令,它本身受电流内环带宽限制。如果把电压环带宽设得比电流环还高,整个系统就会不稳定。
前级Boost的MPPT控制使用扰动观察法即可,扰动步长在仿真中要设置得比较小,否则稳态功率波动会很大。限功率模式的控制方式是用电压环把光伏阵列工作点从最大功率点左边或者右边拉离,具体实现可以使用滞环逻辑。
3.3 控制模式切换逻辑的仿真实现
整个改进型LVRT控制策略在Simulink里实现时,可以分成两个层次:底层是正常的双闭环控制,上层是模式判断和指令修正逻辑。我的实现方法是把故障判断逻辑写在一个MATLAB Function模块里,输入量是电网电压d轴分量和直流母线电压,输出量是标志信号、修正后的有功无功指令以及Chopper的开关信号。
在一个典型的仿真时序里,你会看到这样的信号变化过程:
- 0到0.5s:电压正常,lvrt_enable信号为0,系统运行在MPPT加双闭环正常模式。
- 0.5s:可编程电压源设置电压跌落,检测逻辑在2ms左右识别出Ud低于0.9p.u.,lvrt_enable变为1。
- LVRT模式期间:无功指令按跌落深度计算生成,有功指令受电流上限约束,Chopper根据母线电压逻辑动作。
- 1.125s:电压恢复,退出判断需要等Ud持续大于0.9p.u.达到20ms,因此大约1.145s左右系统才完全切回正常模式。这段延时是刻意设计的,目的是让电网电压先稳定再恢复控制。
故障判断与指令切换不要使用硬切,也就是不要从正常模式的有功指令瞬间跳到故障模式的指令值。硬切在数学上会产生阶跃,电流内环和LCL滤波器对这个阶跃的响应就是过冲。我的做法是在指令切换点加一个斜坡限幅器,限制指令变化率。比如无功电流指令的变化率限制在每毫秒0.1倍额定电流以内,有功指令变化率限制在每毫秒0.2倍额定电流以内。这样的斜率限制可以有效减小电压跌落瞬间的电流冲击。
模式切换时另一个容易忽略的问题是PI控制器的积分器状态。正常模式下直流电压外环的积分器可能已经积累了一个比较大的值,故障模式把这个外环旁路时,如果不处理积分器,它仍然保持饱和状态。故障恢复后重新接入这个PI环节的瞬间,积分器输出会是一个很大的值,直接导致电流过冲。解决办法是给PI模块加外部重置功能,在切换时刻将积分器初始值设为故障后的合理工作点,同时加入抗饱和限幅。
3.4 自动批量测试不同跌落深度
研究改进型低电压穿越策略,只测一个跌落深度是不够的。并网设备往往需要应对不同故障深度和不同类型的电压跌落。我在模型调通后会固定一个基础模型,然后用一个简单的脚本自动修改故障电压值,批量跑不同工况。
示例的MATLAB参数扫描脚本如下:
matlab复制% depth_list 是需要测试的跌落剩余电压标幺值
depth_list = [0.2, 0.35, 0.5, 0.75];
results = [];
for k = 1:length(depth_list)
% 修改故障模块中的电压幅值参数
set_param('lvrt_model/Voltage Sag', 'VoltageMagnitude', ...
num2str(depth_list(k)));
% 运行仿真
simOut = sim('lvrt_model', 'StopTime', '1.5');
% 提取母线电压最大值和恢复时间
Udc = simOut.Udc.Data;
time = simOut.Udc.Time;
Udc_max = max(Udc);
% 简单判断穿越期间母线电压是否超限
is_ok = Udc_max < 750;
results(end+1, :) = [depth_list(k), Udc_max, is_ok]; %#ok<SAGROW>
end
disp(results);
这种自动批量扫描最大的价值,不是省下那几分钟点击运行的时间,而是让所有工况都在同一套参数和控制逻辑下执行,发现某个深度下的问题后,你立刻就能定位是策略本身的问题还是参数适用范围的问题。
4. 仿真结果怎么判:先看四个波形,再看穿越指标
4.1 低电压穿越期间必须盯住的四个关键波形
仿真跑完以后,不要只截一张电压波形就完事。我判断穿越效果时有一个固定的看波形顺序,强迫自己先看整体再看局部。
第一个是并网点三相电压波形。这个波形用来确认故障触发是否正确:电压应该有一个明显的跌落和恢复过程,跌落时刻和设定的故障时刻一致。如果波形在跌落前就出现畸变,说明稳定工况还没建立好就启动了故障,结果不准确。
第二个是逆变器三相输出电流波形。这是最直观反映控制稳定性的波形。故障发生的瞬间电流可能会有一定冲击,但经过限幅后应该在1到2个工频周期内恢复到可控状态。如果电流波形在故障期间剧烈振荡,或者幅值持续超过电流限幅值,说明电流环响应或者指令切换出了问题。
第三个是直流母线电压波形。母线电压是整个两级式系统能量平衡的指示器。合格的穿越过程中,母线电压会在故障瞬间有一定升高,但当卸荷或降载逻辑启动后,电压应该被限制在安全阈值以内,然后逐渐稳定到一个略高于正常值的水平。如果母线电压持续上升,说明能量泄放能力不足;如果电压在跌落瞬间暴跌,说明后级消耗的功率比前级供给的更多,可能是无功指令让输出功率发生了剧烈波动。
第四个是有功功率和无功功率波形。功率波形能够直接反映控制策略的指令执行效果。故障期间有功功率应该下降,无功功率应该上升;电压恢复后,有功功率应该在短时间内恢复到故障前水平,而无功功率应该平滑回落到接近零。
这四个波形的变化不是孤立的。母线电压波形异常,往往会在电流波形上体现为电流畸变;功率波形恢复延迟,又经常和电压外环重新切入时的积分器重置不当有关。所以我总会把四个波形放在同一个时间轴上看,对照它们的变化时刻。
4.2 故障恢复瞬间的二次过冲比故障瞬间更危险
很多人在仿真中把注意力全放在故障发生的瞬间,盯着电压跌落那一刻的冲击电流看。实际上,故障恢复瞬间往往更容易失控。原因在于电压恢复时,电网电压突然从0.2p.u.回升到1.0p.u.,逆变器并网点电压的相位和幅值都会发生较大变化。
如果控制策略只考虑了“故障时切换无功优先”,而没有考虑“故障恢复时如何退出”,那么在电压恢复的瞬间就会出现几种问题。第一种是锁相环需要重新捕获电压矢量,捕获过程中dq坐标变换的角度发生扰动,电流指令和实际电流出现偏差。第二种是故障期间无功电流指令可能很大,恢复时如果不加斜坡直接撤掉无功指令,电流内环会经历一个很大的阶跃。第三种是直流电压外环重新接管控制时,如果积分器状态没有正确恢复,有功电流指令会瞬间冲到很高,导致直流母线电压往另一个方向大幅跌落。
针对恢复瞬间的冲击,我的处理方法是设计一个“恢复过渡状态”。当电网电压回升到0.9p.u.以上时,系统不立即切回正常模式,而是先进入恢复过渡模式。在这个模式下,无功电流指令按照一定斜率逐步降低,有功电流指令按斜坡逐步放开,直流电压外环的积分器从当前实际直流电压对应的稳态点开始重新积分。过渡状态持续大约20到50ms,直到无功功率回落到接近零,有功功率恢复稳定,再完全切回正常并网控制。
这样做虽然会让有功功率的恢复时间稍微延长几十毫秒,但换来的是系统不会在电压恢复时发生二次冲击。工程上判断低电压穿越成功时,通常要求故障切除后在一定时间内恢复有功输出,这个时间窗口容得下一个50ms的平滑过渡。
4.3 整理指标数据时别只看波形最终状态
波形图能看出控制效果好不好,但写结论、做方案对比时需要有量化指标。我习惯在每次仿真结束后自动计算几个关键数据:直流母线电压最大值、故障期间无功电流平均响应时间、故障清除后有功功率恢复时间、故障期间逆变器最大电流。
| 跌落深度 | 母线电压最大值(V) | 无功响应时间(ms) | 功率恢复时间(ms) | 是否过流 |
|---|---|---|---|---|
| 0.75p.u. | 712 | 8 | 80 | 否 |
| 0.5p.u. | 735 | 12 | 120 | 否 |
| 0.35p.u. | 746 | 16 | 160 | 否 |
| 0.2p.u. | 760 | 22 | 210 | 否 |
类似这样的表格可以作为改进策略的评价依据。注意,“没有过流”并不等同于“穿越成功”,还需要看波形是否存在明显的振荡。有些控制参数可以做到电流不过流,但直流母线电压在故障期间会出现反复震荡,这种模型一旦参数老化或者电网阻抗变化,就可能失控。所以指标计算和波形观察要结合起来,不要只依赖数字。
数据提取方面,可以用Scope模块记录波形,也可以把关键信号导入到工作区。我建议批量仿真时把Udc、Id、Iq、P、Q都存成带时间标签的结构体,后续统计处理会方便很多。数据采样步长不宜太大,否则算出来的最大值会比真实峰值低很多,造成“模型正常”的假象。
5. 仿真调试中的常见坑和排查清单
5.1 模型一启动就发散,先查这几个原因
我遇到过很多次刚把LVRT模型搭完,点击运行后波形直接飞掉的情况。这种情况绝大多数不是控制策略的问题,而是模型本身存在配置错误。
最先查的是开关管模块的采样时间和求解器类型。用Simscape Electrical时,如果选连续求解器加理想开关,经常会因为开关动作导致数值刚度问题。我的惯例是使用离散求解器并给功率开关设置一个合理的采样时间。开关频率10kHz时,采样时间通常设置在1e-6秒量级;如果用的是平均值模型,则可以放大到1e-5秒。
然后是检查控制信号和主电路信号之间的单位一致性。很多PI参数调试困难,根源在于控制信号没有做标幺化,导致同一个PI参数在800V母线电压和400V母线电压下表现完全不同。电压信号、电流信号都先除以各自的基准值变成标幺值,再送进控制器,PI参数在一个统一标幺体系下调节,这样可移植性会好很多。
还有一个隐蔽的问题是直流母线电容初始电压设置。仿真开始时母线电容如果没有预充电过程,而控制模块在一开始就运行,逆变器会试图从一个很低的直流电压状态输出额定功率,产生巨大电流冲击。解决方法是让系统先自然预充电,或者在仿真初始化时把母线电容初始电压设置成额定值附近,等系统进入稳态后再执行后续操作。
5.2 跌落瞬间电流尖峰一直压不下去
控制逻辑正确、参数也没有明显问题,但电压跌落的那一刻电流尖峰仍然很大,这是LVRT仿真里最常见的调试难点。电流尖峰产生的原因主要有两类:一类是电压跌落导致锁相环输出角度发生跳变,dq坐标系瞬时不匹配;另一类是故障检测和指令切换之间有固有延迟,在这段延迟里原来的控制指令还在生效。
我在处理这个问题时的经验是:首先在锁相环输出后增加一个限幅和滤波,防止d轴电压突变时角度输出跳变过快。其次在故障检测到LVRT使能之间的2ms延迟内,先让电流限幅器开始工作。正常的电流内环输出限幅可能设得比较宽,为了让故障时响应更快,我会把逆变器电流总限幅从1.5倍额定下调到1.2倍额定,这样即使检测逻辑没有马上切到无功优先,电流尖峰也会被限幅器硬性压住。
限幅处理不是越紧越好。限幅太紧,系统在正常工况遇到负载扰动时会先于保护动作而限流,控制效果变差。限幅太松,又起不到保护效果。建议先把电流限幅作为单独模块独立出来,确认它能够正常工作后,再去优化检测逻辑的响应速度。
5.3 PI积分饱和问题在故障仿真中会放大
正常工况下,PI调节器的积分饱和问题不一定会造成严重后果,因为系统基本运行在平衡点附近。但在电压跌落这类大扰动场景中,积分饱和问题会被严重放大。
以直流母线电压外环为例,故障瞬间母线电压升高,电压误差变成很大的正值,PI输出也就是有功电流指令会迅速增大。可是这个指令在进入电流内环前通常会被限幅器限到1.2倍额定电流以下。由于输出被限幅,误差继续存在,积分器继续累积,就形成了深度饱和。如果故障结束后直接把这样的PI切回控制回路,积分器需要很长时间才能从饱和值退出来,期间有功电流会一直顶在限幅值上,导致系统恢复缓慢甚至振荡。
我在实际仿真中给所有在故障期间可能退出或者被旁路的PI控制器都加了两种功能:一是积分器累积值限幅,不让它无限累积;二是外部重置端口,在模式切换时把积分器强制重置到预设值。具体重置值可以根据故障期间的运行状态估算,也可以简单地将正常工况下的稳态输出作为初始值。
调试时可以通过观察PI模块内部输出变量来判断是否存在饱和。如果积分器输出在故障期间长期贴着上下限,就应该确认重置逻辑是否生效。
5.4 批量化工况测试时仿真太慢的加速方法
低电压穿越仿真需要跑较长时间尺度,因为要看故障前稳定、故障期间动态和故障后恢复三个阶段。如果使用详细开关模型,一个十来千瓦的并网系统跑1.5秒仿真可能就需要几分钟甚至更久。在做多工况扫描时,时间成本会非常高。
我的经验是分阶段处理。第一阶段先用平均值模型验证控制策略逻辑,确认LVRT模式切换顺序正确、功率指令分配合理。平均值模型没有开关纹波,仿真速度快很多,控制环路的基本参数也能在这个阶段完成整定。第二阶段再替换成详细开关模型,重点验证开关频率、纹波和硬件保护逻辑。把策略验证和波形验证分开,能节省大量时间。
另外一个技巧是合理设置故障模块的采样时间。电压跌落瞬间和恢复瞬间需要高采样率,而故障前稳态阶段不需要那么高的时间分辨率。可以先用固定小步长跑完整个工况,一旦确认波形规律,后续批量仿真时就可以把一些不影响结果的模块(比如显示波形、数据记录模块)从模型里暂停或删除。
6. 做完这个课题后的一些实际操作体会
6.1 先把正常并网模型调到足够稳定,再去做LVRT改进
做这个课题最不能跳过的步骤,是先搭出一个能够在额定工况稳定运行的并网模型。我见过不少同学一上来就急着模拟电网故障,结果故障波形和正常工况下的振荡混在一起,完全分不清是控制问题还是故障响应问题。
正常模型需要达到什么标准才算合格?我的判断方法是:空载到满载阶跃时,直流母线电压超调不超过10%,恢复时间不超过100ms;并网电流THD在5%以下;锁相环在电网电压有轻微谐波时不会出现角度抖动。这些条件都满足后,再开始修改控制策略进行低电压穿越仿真,后续排查问题会清晰很多。
6.2 调试过程中要做变量控制,每版只改动一个参数
低电压穿越控制涉及故障判断阈值、无功支撑系数、电流限幅值、卸荷阈值、模式切换斜坡速率等大量参数。如果每次仿真同时改好几个参数,一旦波形变差,你很难判断是哪一步改坏了。
我的实验纪律是:建立一个参数修改记录表,记录每一次仿真对应的工况、改动参数、改动原因和波形结论。每轮只改变一个关键量,比如先固定无功支撑系数,只调卸荷阈值;卸荷行为正常后,再固定卸荷阈值去调无功支撑系数。这种做法一开始会觉得效率低,但长期看反而是最快的调试方式,因为每个参数对系统性能的影响范围都会被清晰标记出来。
如果你也想通过仿真复现类似的结果,建议先选一个简单工况作为基准:设置母线额定电压700V,逆变器额定功率10kW,跌落深度0.5p.u.,持续时间0.6s。把这一工况下的母线电压、电流、功率波形全部调试到相对理想的状态,再逐步扩展到0.2p.u.、0.7p.u.等不同深度。一个小经验是从浅度跌落开始,逐渐加深,观察控制策略在哪个深度先出现性能拐点。找到这个拐点后,集中精力分析拐点附近的物理原因,就能比较深入地理解低电压穿越策略的适用边界。仿真只是第一步,把这些边界想清楚之后,再去做样机验证时心里就会有底很多。
