☰
弱电网下并网充电装置阻抗自适应控制策略与Simulink仿真实现
2026/10/21 19:23:00 网站建设 项目流程

去年我在现场调试一套并网充电装置的时候,被弱电网狠狠上了一课。设备在实验室里跑得好好的,一拉到现场,充电功率刚往上加,直流母线电压就开始抖,接着变流器直接报过流停机。当时我以为是参数没调好,控制器里里外外改了三四版都没用,后来用录波器查了PCC点的电压和电流谐波,才发现根子全在电网阻抗上。

电网一弱,等效阻抗明显变大,PLL采到的电压里全是畸变和相位跳变,电流内环和电压外环之间互相扯皮,整个系统在某个频段上就像共振一样越抖越厉害。后来我把整套东西搬回Simulink里,用阻抗自适应的方式让控制器参数跟着电网阻抗走,问题才算真正理顺。

今天这篇文章就顺着这个思路,从弱电网模型搭建、阻抗辨识方法、自适应参数映射,到Simulink里逐步配置和仿真结果对比,完整过一遍。如果你在搞车载充电机、储能双向变流器、或者任何需要并网充电的电力电子装置,又刚好被“弱网不稳定”折磨过,那这篇文章基本就是照着你的需求写的。做仿真课题的研究生也好,做预研验证的工程师也好,都能直接参考,甚至抄作业。

1. 弱电网到底难在哪,阻抗自适应在解决什么问题

1.1 弱电网的“脾气”:电网阻抗不是小数字

聊弱电网之前,先明确一个概念:什么是弱电网。业内常用的判断指标是短路比(SCR,Short Circuit Ratio),也就是电网短路容量和变流器额定功率的比值。SCR大于10一般算强电网,5到10算中等强度,低于5基本就是弱电网了。SCR越低,意味着电网等效阻抗越大。

强电网下,你画的控制器模型里可以默认电网是理想电压源,PCC点电压稳如老狗。但弱电网下,电网阻抗Zg(主要是电感Lg和电阻Rg)不能忽略。变流器往电网灌电流的时候,电流在Zg上产生的压降会让PCC点电压发生明显的幅值变化和相位偏移。尤其当电网背景谐波大、或者附近还有别的负荷在不断投切时,PCC点电压就是一团乱麻。

这对控制系统的直接影响至少有三层。第一层,PLL采样到的电压相位和幅值都是污染的,锁相环输出会抖动,dq旋转坐标系的基准就不干净。第二层,电流内环在弱电网下等效于一个带大电感负载的电压源逆变,控制对象模型里多了一项电网阻抗,原来的解耦和前馈补偿就失配了。第三层,整机的中频段阻抗特性会被电网电感拉低相位裕度,系统出现负阻效应,表现为特定频段的振荡。

所以弱电网问题的本质是:电网阻抗这个不可控的外部变量,改变了控制对象的动态特性,而固定参数控制器没有能力应对这种改变。

1.2 阻抗自适应的核心思路:让控制器跟着电网阻抗走

既然问题是电网阻抗不确定、而且会随时间变化,那最直接的办法就是把Zg实时测出来,然后根据Zg去调整控制参数。这就是阻抗自适应框架的基本逻辑:在线辨识加参数映射。

听起来很直接,但落地有两个关键挑战。

第一个是阻抗辨识怎么做。电网阻抗不能直接拿万用表去量,尤其在设备运行状态下,电网本身有电压、有功负荷在动态波动,你要从测量信号里把电网阻抗的信息剥离出来。常用的方法有小信号注入法、基于PCC电压电流波动量的被动估计算法,以及特定工况下的解析计算。工程上小信号注入法最直观:在控制环里主动注入一个频率明显区别于基波和主要谐波的小幅扰动电流,然后检测PCC点在该频率下产生的电压响应,两者相除就能得到对应频率下的电网阻抗。

第二个挑战是辨识结果怎么映射成控制参数。电网阻抗主要影响电流环的等效被控对象,Lg变大后,电流环的增益裕度下降。映射策略可以是简化计算:把Lg叠加到逆变器滤波电感上,重新计算电流环PI参数,并把电压环带宽相应压低。也可以更精细一点,设计一个带阻抗前馈项的控制律,把电网阻抗的影响直接补偿掉。

这两件事做通之后,自适应控制逻辑就闭环了:每隔一段时间辨识一次Zg,如果Zg变化超过阈值,就重新计算控制器参数并平滑切换。这就是整套方案的骨架。

2. 把仿真框架搭起来:从电网模型到主电路和控制架构

2.1 弱电网模型怎么搭:RL串联加可控电压源

在Simulink里搭弱电网模型,很多人习惯直接用Three-Phase Source模块然后配一个串联阻抗。这个做法可以,但要注意几个细节。

电网模型至少应该包含两个部分:理想电压源和电网阻抗。理想电压源可以用Three-Phase Source模块,内部参数设置为理想平衡三相源,幅值按线电压有效值设,比如380V。频率50Hz,相位按120度分布。关键在串联阻抗参数:电阻Rg设小一点,比如0.1欧姆到0.5欧姆,电感Lg按目标SCR反算。SCR等于(电网短路容量)除以(装置额定功率),而短路容量又等于(额定电压的平方)除以(短路阻抗模值),所以给定SCR之后,可以直接反推Zg的大小。

举个例子:一台额定功率10kW的三相充电装置,额定线电压380V。如果电网母线短路容量是50kVA,那SCR就是5,Zg = (380²) / 50000 ≈ 2.89Ω。假设Rg取0.3Ω,那Lg就是sqrt(Zg² - Rg²) / (2πf),算出来大约9.2mH。这个电感值在仿真里是相当可观的,跟变流器自己的并网滤波电感差不多一个数量级。用这个参数跑仿真,你就能真实感受到弱电网的恶劣程度。

另外建议在模型中留一个电网阻抗切换开关,比如用定时器或Step模块控制一个三相断路器,让电网阻抗在仿真的某个时刻从1mH跳到9mH。这样你可以在一次仿真里直观看到控制系统在强网变弱网瞬间的动态响应,也是后面做对比实验的关键操作。

2.2 充电主电路选型:双级结构最稳妥

充电控制的主电路拓扑,我推荐最常用的双级结构:前级AC/DC是三相PWM整流器,后级DC/DC是双向Buck/Boost变换器。前级负责把电网交流电变成稳定的直流母线电压,同时控制输入电流的功率因数和谐波;后级负责电池侧的充电电流和电压控制。

为什么选双级?原因在于弱电网下前级要承受最大的稳定性压力,如果做成单级结构,充电电流的纹波和电压波动会直接耦合到电网侧,控制更难做。双级结构中间有个直流母线电容这个大惯性环节,可以把前后级的动态基本解耦开。前级只管母线电压稳定和网侧电流品质,后级只管电池充电曲线,调试思路清晰很多。

在Simulink里,前级用Universal Bridge模块或者自己搭IGBT半桥结构都可以。我习惯用Universal Bridge,功率开关选IGBT/Diodes,器件模型选平均值模型或者详细模型。注意:如果重点看控制策略和稳定性,用平均值模型仿真速度快、收敛性好;如果还要看开关纹波和谐波细节,就要用详细模型。本文后面的方案基于平均值模型,重点验证控制逻辑。

后级DC/DC用MOSFET或者IGBT搭双向Buck/Boost都可以,Simulink里有现成的半桥支路可以直接用。

2.3 控制器基础架构:电压外环加电流内环加PLL

主电路确定之后,控制器架构基本上是行业标配:三相PWM整流器采用电压外环和电流内环串级结构,外环输出d轴电流参考值,q轴电流参考值通常设0或者按无功需求给定。电流内环在dq旋转坐标系里实现对电感电流的快速跟踪,输出调制电压,经过SVPWM或者简单的PWM调制生成开关信号。

这里特别强调一下PLL的角色。弱电网下PLL是整个控制系统的薄弱环节之一,因为PCC点电压畸变会直接污染PLL的输出相位。建议使用基于双二阶广义积分器的锁相环(SOGI-PLL)或者带陷波器的同步参考坐标系PLL(SRF-PLL),不要用最基础的SRF-PLL裸奔。SOGI-PLL对谐波和不对称有不错的抑制能力,在弱电网仿真里明显更稳。

Simulink里搭PLL可以自己用函数模块搭,也可以直接用Simscape Electrical里的PLL模块。自己做的好处是内部结构透明,模块的全部参数可以直接看,方便排查问题。

3. 核心细节:阻抗辨识和自适应策略到底怎么落地

3.1 电网阻抗辨识:小信号注入加FFT提取

我现在在仿真里用的阻抗辨识方法,是小信号注入法的简化实现。

原理说起来很朴素。电网在基波频率下是个50Hz的电压源,控制回路里除了正常的控制电流之外,你额外叠加一个特定频率的小幅电流扰动。假设你注入的扰动频率是fp,那么变流器会在PCC点产生一个fp频率的电流分量。这个电流流过电网阻抗Zg,会在PCC点电压上产生一个fp频率的电压降落分量。你只要把PCC点电压和电流里fp频率的分量提取出来,用电压分量除以电流分量,就能得到Zg在fp频率下的值。又因为电网阻抗在低频段主要是感性的,fp选几十赫兹到几百赫兹之间,就可以近似认为你测到的是电网感抗和电阻的矢量和。

具体在Simulink里怎么做:

第一步,在电流内环的d轴参考值上加一个正弦扰动信号。扰动幅值设为额定电流幅值的1%到3%,频率选一个避开基波和谐波的频点,比如75Hz、125Hz这种非整数倍频。幅值不能太大,否则会影响充电功率并导致THD超标;也不能太小,否则PCC电压响应信号被噪声淹没,FFT提取不准确。

第二步,把PCC点的三相电压和三相电流采集下来,经过坐标变换得到dq轴分量,再送到FFT分析模块。在Simulink里可以用Powergui自带的FFT分析工具离线分析,但如果要做在线自适应,就得把FFT改成在线形式,比如用离散傅里叶变换(DFT)算法模块。只提取fp这一个频率点的幅值和相位,计算量很小。

第三步,用fp频率下电压扰动分量U_p除以电流扰动分量I_p,得到复阻抗幅值和相角。电阻分量Rg = |Zg| * cos(相位差),电感分量Lg = |Zg| * sin(相位差) / (2πfp)。

有几个实操细节要注意。扰动频率和采样频率要匹配,仿真步长决定了你能提取的最高频率,建议仿真步长不大于100微秒。另外,在强电网下,PCC点的电压响应非常小,信噪比低,这时候辨识出来的阻抗误差可能偏大,所以一般只在电网阻抗超过一定阈值时才启动辨识,强电网下直接用默认参数。

3.2 阻抗到控制参数的映射:核心是电流环带宽在线修正

辨识出Lg之后,怎么更新控制器参数?

先从电流环的角度推一遍。三相PWM整流器的电流内环被控对象是滤波电感Lf加电网等效电感Lg的串联,从数学上看,电流环的开环传递函数里有一个主导极点,位置在Rf / (Lf + Lg) 附近。Lg增大,这个极点往原点移动,对相同的PI参数来说,相位裕度会下降。为了保证稳定裕度,最直接的手段就是按 (Lf + Lg) 的实时值重新计算PI参数。

用工程上最常见的设计方法:令电流环PI的积分时间常数Ti等于被控对象电气时间常数 (Lf + Lg) / Rf,这样PI零点可以抵消被控对象的极点。比例增益Kp按期望的电流环带宽fc_i计算,Kp = (Lf + Lg) * 2π * fc_i。所以电网电感Lg一变大,Kp就要线性加大,Ti也要相应调整。

很多人到这里会犯一个错误:Kp直接随着Lg增大而增大,总以为加大增益就能稳住弱电网。实际上,Kp加大后电流环带宽上去了,抗扰动能力确实变强,但与此同时它对PCC电压畸变中的高频分量也会更敏感,而且带宽提得太高还会和PLL、电压环的带宽打架。所以在自适应映射里,我通常还会加一个限制:把fc_i限制在一个安全范围内,比如200Hz到800Hz。当Lg很大时,宁可适当压低带宽也不要无脑把Kp推高。

电压环的映射相对简单一点,弱电网下电压环容易与电网阻抗发生动态交互,推荐的策略是随着Lg增大,把电压环带宽略微调低,让电压环的响应速度慢于电流环一个数量级以上,给内环足够的稳定空间。

3.3 自适应切换的平滑过渡:不能生硬改参数

参数辨识和映射做完之后,还有一个工程上很容易忽视的问题:参数怎么切换。

如果每次检测到Lg变化就直接把Kp、Ti跳变到新值,那在切换瞬间会造成电流环控制量突变,反映到网侧就是电流尖峰和电压冲击,严重的话直接触发保护。所以自适应要加一个平滑处理。

我在仿真里用的是一个惯性和限速模块,相当于电磁学里的惯性环节:参数参考值算出来后,不直接送到控制器,而是经过一个一阶低通滤波器,时间常数取50到200毫秒。这样参数是从旧值渐近过渡到新值的,控制量的变化被拉伸到一个平缓的斜坡,系统就不会出现明显的切换冲击。

另外还要设计一个切换判定逻辑:如果辨识到的Lg变化量小于设定滞环(比如5%),就不更新参数,避免因为辨识噪声导致参数频繁来回变动。如果Lg突然变化很大,说明电网发生了严重的状态切换,不仅要尽快更新参数,还需要把充电功率降一点,先保证不断流,再慢慢恢复功率。这个滞环加降额策略,在仿真和现场都很有用。

4. 手把手搭建Simulink模型:关键环节与参数计算

4.1 模型顶层结构怎么组织

Simulink模型的组织方式直接影响调试效率,尤其这种多模块、带自适应回路的模型,一定要按功能分区。我习惯把模型分成六大块:电网模块、主电路模块、测量与坐标变换模块、控制模块、自适应模块、显示与记录模块。

电网模块在最左侧,包含三相电压源、串联RL阻抗和阻抗切换断路器。主电路模块在中间,左边接电网,右边接电池负载。测量模块从PCC点和直流母线采集电压电流,输出到控制模块和自适应模块。控制模块接受参考值和反馈值,输出调制信号。自适应模块独立放在下方,负责阻抗辨识和参数映射,并把计算出的PI参数在线更新到控制模块的PID控制器中。

这样分块之后的好处是:仿真跑崩了,你能一眼看出问题出在哪一块。比如说电流波形异常但直流母线正常,那问题大概率在控制模块或自适应模块,跟电网和主电路关系不大。

4.2 关键参数计算:从主电路到控制器

为了下面的参数计算有明确语境,我统一按一台10kW/380V三相充电机来做示范。

直流母线电压设为700V,电池侧电压范围250到450V,所以后级DC/DC选双向Buck/Boost很合适,母线侧升压、电池侧降压充电。前级交流侧滤波电感Lf取3mH,寄生电阻Rf取0.1Ω。直流母线电容取2000μF,它的作用是维持母线电压动态稳定,理论上电容越大母线越稳,但成本和体积受限,仿真里取这个量级没问题。

交流侧额定电流有效值:I_N = (10kVA / 3) / 220 ≈ 15A,按1.2倍裕量,前级器件选30A以上即可。

电流环参数计算是重点。设计带宽fc_i取500Hz,则设计角频率ω_i = 2π * 500 ≈ 3140 rad/s。电流环PI比例系数Kp = (Lf + Lg) * ω_i。强电网下Lg取1mH,则Kp ≈ (3mH + 1mH) * 3140 ≈ 12.56 V/A。积分时间常数Ti = (Lf + Lg) / Rf ≈ 0.04s,对应积分增益Ki = Kp / Ti ≈ 314。

弱电网下Lg变为9mH,则Kp_new ≈ (3mH + 9mH) * 3140 ≈ 37.7 V/A,Ti_new ≈ 0.12s,Ki_new ≈ 314。可以看到,Lg变大后Kp翻了三倍,积分增益基本不变。如果不用自适应,固定参数在弱网下必然会出现相位裕度不足,这也是固定参数控制器在弱电网下振荡的核心原因之一。

电压环带宽一般取电流环的十分之一左右,也就是50Hz。电压环的PI参数需要根据直流母线电容和负载等效电阻来设计,这里不再展开,给一组典型值:Kp_v ≈ 0.5 A/V,Ki_v ≈ 20。

4.3 自适应模块的Simulink实现要点

自适应模块是整个模型里最需要细心的地方,我分开说。

阻抗辨识部分,我建议用离散DFT模块而不是FFT。在Simulink里找Discrete Fourier Transform这个模块,设定要提取的谐波次数。但这里有个坑:谐波次数是按照基波频率的整数倍来定义的,而我们的扰动频率是75Hz,不是50Hz的整数倍,直接给模块设气固定次数是行不通的。

我在仿真里的做法是:不用现成的DFT模块,而是自己搭一个正交解调器——用两个乘法器,把采样信号分别乘以cos(2π fp t)和sin(2π fp t),然后经过低通滤波器,就能得到信号在fp频率下的实部和虚部。这个思路本质上就是锁相放大器,体积小、可灵活改频点,也方便讲解原理。用你设置的fp频率当作载波,PCC电压和电流各过一路解调器,提取出U_d、U_q、I_d、I_q,然后Zg_real = (U_d * I_d + U_q * I_q) / (I_d² + I_q²),Zg_imag = (U_q * I_d - U_d * I_q) / (I_d² + I_q²),再把Zg_imag除以 (2πfp) 得到Lg。

参数映射部分,我建议不写复杂的函数脚本,而是直接用Simulink的基本数学模块搭一个计算链路:Lg输入,经过一个加法器加上Lf,再乘以2π*fc_i限幅值,得到Kp。Ti则用除法模块计算 (Lf+Lg)/Rf。对Kp、Ti各接一个一阶低通滤波器做平滑。

最后一步是把更新后的Kp和Ti送到PID Controller模块的输入端口。这里要注意PID Controller模块默认的增益是内部参数,不能直接从外部改。有两种解法:一种是把PID Controller模块的内部P和I参数设为外部输入端口,另一种是干脆不用PID模块,自己用增益加积分器搭一个并联PI结构。我自己常用第二种,因为结构透明、参数随时可以在线改,也方便后续在FPGA或者DSP实现时做代码移植。

5. 仿真实战:三组工况让你看清稳定性的差距

5.1 工况一:强电网下固定参数控制

先把电网阻抗设成1mH,模拟SCR在10以上的强电网。用固定参数Kp=12.56、Ti=0.04跑仿真。设置额定充电功率从零开始斜坡加载,大概0.2秒加载到10kW。

跑出来的结果应该是很理想的:直流母线电压经过一个小的超调后稳定在700V附近,网侧电流正弦度好,功率因数接近1,稳态THD很低。这个仿真主要是验证你搭的模型本身是正确的,也是后面弱电网仿真对比的基准。

在这个阶段,建议把PCC点电压和电流波形录下来保存到工作区,后面做FFT对比用。

5.2 工况二:弱电网下固定参数控制

接着把电网阻抗切换到9mH,模拟SCR不足3的弱电网场景,其他参数不变。这是最关键的一组仿真。

在这个条件下,观察到的典型现象是:充电功率加到一半左右,直流母线电压开始出现持续的低频振荡,振荡频率通常在几十赫兹到一百多赫兹。网侧电流波形明显畸变,PCC点电压跌落。继续增大功率,振荡加剧,仿真报错或保护动作。这个结果和我在现场看到的故障完全一致:固定参数控制器在弱电网条件下会周期性失稳。

把PCC电压做FFT分析,你会看到除了基波外,在振荡频率附近出现明显的边带分量。这些分量不是电网背景谐波,而是变流器与电网阻抗交互产生的。如果你把这个结果录下来,再去和自适应控制的波形对比,差异会非常直观。

5.3 工况三:弱电网下自适应控制

把自适应模块接入控制环路。在0时刻电网阻抗为1mH,控制器以默认参数运行。2秒时切换电网阻抗到9mH,观察自适应模块的动作。

这里你能看到设计的核心效果:阻抗辨识模块在2秒后大约经过3到4个扰动周期(每个扰动周期约13ms)完成阻抗检测,检测结果传入参数映射模块,然后Kp经过低通滤波从12.56逐渐过渡到37.7,Ti从0.04逐渐过渡到0.12,大概用了100毫秒左右完成参数切换。整个切换过程中,直流母线电压没有出现大幅振荡,电流波形保持正弦,系统平稳过渡到弱电网工况。

如果试着把充电功率在满载和半载之间反复切换,自适应方案都能维持稳定,而固定参数方案在这个场景下基本会报警停机。这个指征对比已经足够说明阻抗自适应方法在弱电网稳定控制上的实际价值了。

6. 常见问题与仿真排查技巧实录

6.1 模型不收敛、仿真速度奇慢怎么办

Simulink里搭电力电子模型最容易踩的坑就是不收敛和仿真卡死。我先给几个排查顺序。

第一步,检查求解器设置。Simulink控制环和电力电子主电路混合仿真,建议用ode23tb或者ode15s这类变步长刚性求解器。不要用默认的ode45,因为变流器开关器件和电感电容产生的快变信号会让ode45步长缩到极小,仿真速度慢到怀疑人生。

第二步,检查PCC点的三相电压源参数。电网电压源的初始相位角和实际测量模块的参考相位要一致,否则第一个仿真周期内会有巨大的瞬态冲击,直接把非线性元件逼到收敛失败。

第三步,检查平均值模型和详细模型混用的接口。如果你前级用平均值模型,后级用详细模型,中间直流母线电容的等效串联电阻(ESR)不能设为0,否则会出现高频振荡。建议给电容串联一个小电阻,比如0.01Ω。

6.2 PLL在弱电网下失锁、相位跳变怎么处理

弱电网仿真里PLL失锁是个高频问题。典型现象是:d轴电压不再稳定在幅值附近,锁相环输出的相位来回摆,整个dq坐标系就乱了。

排查思路是先在静止坐标系里看PLL的输入电压波形。如果输入电压畸变过大,就检查PLL前端的滤波环节。我推荐在PLL前面加一个二阶低通滤波或者SOGI前置滤波,滤掉5次和7次谐波后再进锁相环。如果畸变里面还有直流偏置,那可能是测量模块的问题,需要加高通滤波器隔离。

另外要注意PLL的带宽设置。带宽太高,锁相环会跟着PCC电压的畸变一起抖;带宽太低,动态响应太慢。经验上,PLL带宽取20到30Hz比较合适,既能跟踪电网频率的小幅变化,又不会对谐波太敏感。

6.3 阻抗辨识结果跳变严重、不收敛

如果辨识出来的Lg在仿真过程中上下乱跳,先别急着怀疑算法,优先检查扰动信号的设置。

扰动幅值太小是最常见的原因。当幅值低于1%额定电流时,PCC电压响应信号往往低于1V,这时候数值噪声就会明显干扰提取结果。把扰动幅值提高到2%到3%,通常就能解决。但要注意幅值也不能太大,否则影响充电功率,THD会超标。

其次检查解调器的低通滤波器带宽。正交解调之后,你希望保留的是fp附近的基带分量,低通滤波器的截止频率要设得比fp小很多,比如fp是75Hz,低通截止频率设10Hz左右。如果截止频率设高了,基波和其他频率的泄露信号会混进解调结果,导致辨识结果里叠加重大的直流偏移和波动。

最后看扰动注入点。扰动信号要加在电流环的参考值端,不要加在调制波信号端,否则扰动会被电流环本身抑制掉,PCC点根本产生不了对应的电流响应。

结尾:一点个人体会

这整套方案我在Simulink里跑了不计其数的组合之后,才真正理解为什么弱电网问题是电力电子行业里常说难啃的硬骨头。很多看似突兀的振荡,归根到底都是控制器和外部阻抗之间的交互失稳,跟单纯的参数调优没有关系。

如果你打算基于这套思路做自己的仿真,我建议从工况二和工况三的对比入手,先把固定参数在弱网下振荡的现象复现出来,再接入自适应模块。有了“先病后医”的直观感受,你对阻抗辨识和参数映射每一步设计的必要性会有完全不同的认识。

最后再分享一个小技巧:Simulink里所有自适应相关的参数——扰动幅值、解调滤波器带宽、参数平滑时间常数——都集中放到一个初始化脚本里,用一组变量名统一管理。这样你每次改参数不用在模型图里翻来翻去,直接在脚本里改完数值重新跑一遍就行。这个习惯陪我做了好几个版本的迭代,省下的时间足够你多测十组工况。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询