ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

虚拟同步发电机离网并网无缝切换Simulink仿真实现

虚拟同步发电机离网并网无缝切换Simulink仿真实现 离网并网切换0ms冲击我在Simulink里把VSG无缝切换调通了先说结论虚拟同步发电机VSG这套控制策略放到MATLAB/Simulink里做离网到并网、并网到离网的无缝切换仿真是完全可以落地的而且仿真结果对后续硬件实验有非常直接的指导意义。我花了两周时间把模型从零搭到了调通中间踩了不少坑也把预同步、模式切换状态机、断路器合闸判据这些东西从头到尾理了一遍。这篇文章就把完整的建模思路、核心参数、切换逻辑和几个特别容易出问题的环节都展开讲清楚适合正在做微网逆变器控制、VSG毕业设计或者工程项目预研的朋友参考。我接触VSG完全是因为一个实际项目需求微网里有一台逆变器需要在电网断电时无缝接管本地负载电网恢复后再无缝连回去。传统P/Q控制离网没法建压V/f控制并网又没法控功率两者切换瞬间电压相位和幅值对不上电流冲击能把实验平台上的保险丝炸掉。VSG的好处在于它的外特性就是一台虚拟的同步发电机有功-频率、无功-电压之间天然有耦合关系在离网和并网两种状态下用同一套控制方程切换时不用大幅改变控制结构这给了无缝切换很大的操作空间。1. 离网与并网无缝切换VSG为什么是当前最顺手的方案1.1 传统逆变器控制模式在切换场景下的硬伤传统逆变器在离网状态下通常用V/f控制自己建立电压和频率给本地负载供电。并网状态下用P/Q控制输出功率跟随指令电压和频率完全交给电网撑住。这两个控制模式的控制目标、控制器结构、参考坐标系都不一样模式切换时如果直接切过去最典型的问题是两个第一V/f控制的电压参考相位和电网实际相位不一致断路器合闸瞬间会有巨大冲击电流第二P/Q控制的调制波启动需要时间建立中间哪怕只有一两个控制周期的空档输出电压也会出现畸变。很多防孤岛保护装置里要求切换时间在20ms以内甚至更快传统方案做起来非常吃力。说到底无缝切换的本质要求其实就两条切换前后负载电压连续可追踪以及并网瞬间冲击电流可控。要做到这两点单纯靠V/f和P/Q两个控制器之间做逻辑互锁是远远不够的需要一个从控制结构上就统一、同时具备离网建压能力和并网功率调节能力的方案。1.2 VSG的转子运动方程把同步发电机的手感搬到逆变器上VSG的核心思想是让逆变器模拟同步发电机的机电暂态特性。同步发电机转子运动方程的经典形式是J * d(ω)/dt Pm - Pe - D * (ω - ω₀)其中J是虚拟惯量D是阻尼系数Pm是机械功率参考对应调速器给定Pe是电磁功率对应逆变器输出功率ω₀是额定角频率。把这个方程放到逆变器控制里物理含义非常直观有功功率指令和实际输出功率的偏差会通过J和D转换为频率的变化频率再积分得到相位这就给逆变器注入了惯性和阻尼。电网频率变化时逆变器不会立刻跟着跳变而是像一个有质量的转子那样缓慢过渡这就是VSG能支撑微网稳定运行的根基。无功-电压通道对应同步发电机的励磁调节无功功率偏差积分得到励磁电动势幅值最终决定输出电压幅值。对应的控制方程可以写成E E₀ Kq * ∫(Qref - Q)dtE₀是额定空载电动势Kq是调压系数Qref是无功功率指令Q是实际输出无功。这套方程离网时能自主建压并网时能按无功指令调节电压控制目标完全统一。1.3 无缝切换的标准先把指标定清楚再做仿真做仿真之前一定要先明确无缝的量化标准不然最后根本没法判断切换成不成功。我参考IEC 61000以及微网工程验收的常见要求在仿真里按下面这套指标来卡切换过程负载电压最大偏差不超过额定电压幅值的10%持续时间不超过20ms并网瞬间冲击电流不超过额定电流的1.5倍最好控制在1.2倍以内频率偏差离网转并网过程中心频率偏移不超过±0.5Hz同步判据合闸前电压幅值差小于5%额定值频率差小于0.1Hz相位差小于0.1°等效误差时间不超过几十微秒这几条指标既是仿真波形评估的标尺也是后面调预同步控制器参数的目标。没有这套指标仿真波形看着好像还行是没有任何意义的。2. 仿真模型的顶层架构从拓扑到控制分层先把地图画出来2.1 主电路拓扑直流源、三相逆变桥、LC滤波、断路器和电网我搭的主电路模型是三相两电平拓扑直流侧用理想直流源代替光伏或储能变换器容量按10kVA设计直流母线电压750V逆变桥用Universal Bridge开关频率10kHz交流侧接LC滤波器滤波电感L2mH、滤波电容C20μF电网用Three-Phase Source模拟380V/50Hz无穷大电网电网侧串联一个线路阻抗0.1Ω0.5mH模拟馈线长度本地负载按10kW阻性负载加一点感性负载来设置。关键点是LC滤波器和电网之间要放一个断路器Simulink里面我用Three-Phase Breaker模块外部控制信号来控制合闸和分闸。断路器位置决定了离网/并网两种工况的边界也决定了切换瞬间电流采样点的位置建议把电流采样放在断路器电网侧和逆变器侧分别采便于分析切换前后电流路径的变化。2.2 控制层模块划分六个功能块各司其职控制层我拆成了六个模块每个模块单独封装成子系统调试时可以逐个验证功率计算模块采集逆变器侧三相电压和电流用瞬时功率理论算有功P和无功QVSG核心算法模块转子运动方程、无功励磁方程输出三相对称参考电压的幅值和相位电压电流双闭环模块电容电压外环、电感电流内环输出调制波预同步控制模块离网转并网前把VSG输出电压的幅值、频率、相位拉向电网模式切换状态机模块管理离网运行、预同步、并网运行、离网跳变四个状态的转换PWM调制模块载波三角波比较输出脉冲到Universal Bridge这个分层的好处是每个子系统都能独立喂测试信号验证而且后续如果要换S函数写VSG核心算法只需要替换一个模块。2.3 MATLAB版本、求解器和仿真步长的选型建议我用的是MATLAB R2023b搭配Simulink电力电子模块库Simscape Electrical以前叫SimPowerSystems。求解器选择有两个比较重要的经验离散求解器必须选离散Discrete固定步长步长根据开关频率定。10kHz的PWM载波仿真步长至少取1e-6秒才能分辨清楚调制细节取5e-7秒更稳连续求解器如果坚持用连续求解器PWM调制会产生非常密集的事件仿真速度慢到难以接受而且数值容易抖动。我实测同参数下连续求解器算一次要一个多小时离散求解器只要十多分钟另外想真正看切换细节的人仿真结束时间要合理。我跑600ms的工况离网运行200ms、预同步100ms、合闸并网200ms、再离网100ms离散步长1e-6秒总步数60万步在普通i5处理器上跑一轮大概20分钟这个耗时是完全可以接受的。3. 核心控制算法建模转子运动方程怎么落到Simulink的积木块上3.1 有功-频率通道J和D的物理意义与参数取值转子运动方程在Simulink里搭建最直观的方式是用积分模块和增益模块拼。第一步计算机械功率参考PmPm Pref Kf * (ω₀ - ω)其中Pref是有功功率指令Kf是一次调频下垂系数。第二步用瞬时功率算到的Pe和Pm做差。第三步差除以J再积分得到角频率ω。第四步ω再积分得到相位θ。布局要注意的是J的单位应该换算成关注转速的惯量形式。我习惯把方程归一化J乘以ω₀变成H * 2 * S_n / ω₀的形式其中H是惯性时间常数S_n是额定容量。具体操作上直接在方程里用国际单位rad/s一路算下去最简单把J设置成1 kg·m²级别的量配合D设置成20~50 N·m·s/rad仿真中频率动态过程大约几百毫秒到几秒视觉效果和物理逻辑都对得上。D的取值可以从稳态关系反推额定功率输出时允许频率偏差1%那么D ≈ P_n / (0.01 * ω₀)。10kVA、ω₀314.16rad/s算出来D约为31.8 N·m·s/rad。我最终取D30仿真结果符合预期。J的取值偏大会让频率变化更慢惯性大但动态响应也变慢系统振荡周期变长J偏小则频率容易快速波动抗扰动差。实际调试时我先取J0.5跑一个突加负载的工况看频率恢复的时间大概在1秒以内就定下来了。3.2 无功-电压通道励磁电动势怎么跟踪无功指令无功-电压通道我用积分型励磁调节器表达式是E E₀ Kq * ∫(Qref - Q)dt这个积分项在Simulink里就是一个Integrator输入是无功误差输出乘以调节系数再加初始电动势E₀我设成311V对应380V线电压的相电压幅值。Kq的取值逻辑无功功率变化ΔQ时希望电压偏差在额定值的5%以内所以Kq ≈ ΔQ / ΔV 5000Var / 15V ≈ 333。我同事习惯用标幺值但我直接用实际值调起来更直观。离网时这个积分器保证输出电压幅值稳定在E₀附近并网时无功指令给零输出无功被压到零附近电压跟着电网走两者完全统一。无功通道还需要配合一个电压幅值计算模块把三相反馈电压做Clark变换V sqrt(Vd² Vq²)得到当前输出电压幅值用于计算无功误差。3.3 电压电流双环带宽匹配和工程整定思路VSG输出的参考电动势是三相正弦量Ea E * sin(θ)Eb、Ec依次相差120°。这个参考电压送给电压外环电压环控制LC滤波器的电容电压生成电流内环的参考指令电流环控制电感电流输出调制波。电压电流双环我用了同步旋转坐标系下的PI控制器需要做Park变换这也意味着需要一个和输出相位锁定的参考坐标系角——直接拿VSG的θ_abc相位来用。电压环PI参数按典型II型系统整定带宽取开关频率的1/10左右即1kHz附近。电流环带宽取比电压环高3~5倍保证内环足够快外环才有稳定裕度。我实际调试的起点参数是电压环Kp0.8、Ki200电流环Kp20、Ki1000然后根据阶跃响应微调。双环输出限幅一定要加调制波限幅在±0.9pu防止启动瞬间积分饱和导致过调制。4. 预同步与模式切换逻辑无缝切换的灵魂所在4.1 离网转并网的预同步流程幅值、频率、相位三步对齐离网运行时VSG自由建压电压频率基本都是额定值但相位和电网相位之间会有一个缓慢漂移的偏差。如果直接把断路器合上这个相位偏差是冲击电流的主要来源。预同步要解决的就是这个问题流程分三步第一步幅值同步无功励磁调节器已经让输出电压幅值稳定在311V附近但电网电压幅值可能因为线路压降等原因略有偏差偏差要靠无功通道的积分作用拉到允许范围内。我在预同步使能信号拉高后把电压环参考值从311V切换为电网电压幅值Vg_amp强制输出电压幅值跟踪电网。第二步频率同步通过PLL锁住电网相位计算出电网角频率ωg把这个频率作为VSG转子运动方程外环的基准替代原本的ω₀。同时把一次调频下垂的偏差量清零让VSG输出频率慢慢跟随电网频率。第三步相位同步这是预同步的核心。我采用一个预同步PI调节器输入是电网相位和VSG相位之间的偏差用sin(θg - θvsg)形式目的是避免相位差接近180°时线性误差失真输出是一个附加的频率修正量Δω注入到转子运动方程里。这个PI把相位偏差逐渐拉到接近零。PI参数我取Kp10、Ki100相位拉入过程大约100ms内可以完成。4.2 断路器合闸时刻的判据设定合闸判据不能在Simulink里放大话要写成可执行的逻辑。我在预同步控制模块里同时监测三个量电压幅值偏差 |Vg - Vvsg| / Vn 5%频率偏差 |ωg - ωvsg| 0.1Hz数值上约0.628rad/s相位偏差 |θg - θvsg| 0.1°对于50Hz一个周期20ms0.1°对应时间差5.6微秒这不是笔误这个精度用连续系统做仿真完全做得到如果做硬件就要看PLL精度了三个条件同时满足且持续5ms防止瞬时扰动导致的误判后给出合闸信号。合闸信号接到Three-Phase Breaker控制端断路器200ms内完成闭合。合闸后立即断开预同步修正量模式切换状态机转入并网运行状态有功无功指令切到并网给定值。4.3 并网转离网过渡不是断开断路器那么简单并网转离网最容易犯的错误是孤立地分闸结果本地负载瞬间失去电源电压跌到零。正确做法是检测到电网失电信号后首先要让VSG立即切换到自主建压状态把电压参考从电网跟踪状态恢复到额定311V/50Hz这一步要在几个控制周期内完成然后才能分闸。但如果电压参考直接硬切到311V/50Hz合闸前VSG输出电压跟随的是电网电压这个信号里面往往带着电网畸变或者电压小毛刺切换那一瞬间还是会有电压跳变。我做了两个处理优化第一并网状态下VSG本身的转子运动方程一直在运行输出相位和电网相位基本一致所以掉电后不需要切换控制算法只需要让无功励磁积分器从跟踪电网幅值平滑过渡到跟踪311V我用一个rate limiter限制参考变化速率让电压参考在10ms内爬升到311V。第二并网时功率指令是给定的切换离网后功率指令要立即改成给本地负载供电否则功率外环可能瞬间输出一个大偏差。我用一个简单的负载功率预估切换前10ms的平均有功作为离网功率指令这样切换瞬间功率外环偏差最小。4.4 模式切换状态机的Simulink实现方式模式切换逻辑我建议用Stateflow状态关系一目了然也方便加保护逻辑和计时条件。状态机包含四个状态ISLAND离网运行VSG自主建压负载由逆变器供电SYNC检测到电网恢复进入预同步执行4.1的三步对齐GRID合闸完成并网运行功率跟随指令ISLAND_FAULT并网状态下检测到电网失电执行离网过渡然后回到ISLAND转移条件是状态机的关键ISLAND到SYNC的触发条件是电网电压幅值高于阈值且PLL锁定成功SYNC到GRID的触发条件是4.2的三个判据满足GRID到ISLAND_FAULT的触发条件是电网电压低于阈值持续5ms。每个转移都带上一个状态进入动作entry action用于复位计时器和置位相关控制信号这样切换逻辑永远干净利落。如果不方便用Stateflow用普通的逻辑门和Memory模块也能做但状态多的时候比如还要加软启动、保护停机状态机的可维护性优势非常明显。我强烈建议至少在这个模块上用Stateflow。5. 仿真工况设计、参数整定与结果判读5.1 完整参数表我把一套能跑通的参数完整列在下面方便复现参数数值说明直流母线电压750V理想直流源电网线电压有效值380V50Hz理想三相源额定容量10kVA基准值滤波电感L2mH内阻0.05Ω滤波电容C20μF星形连接开关频率10kHz三角载波虚拟惯量J0.5 kg·m²1.5秒左右惯性时间常数阻尼系数D30 N·m·s/rad对应1%频率偏差下垂一次调频下垂系数Kf1000 W·s/rad频率偏差修正调压系数Kq333 Var/V无功偏差对应电压修正预同步PIKp10, Ki100相位校正通道电压环PIKp0.8, Ki200Djordjevic整定起点电流环PIKp20, Ki1000内环带宽更高5.2 离网转并网波形怎么判读第一个典型工况且逆变器离网带10kW负载运行200ms时电网恢复进入预同步300ms左右同步完成断路器合闸合闸后功率指令设为5kW其余功率与电网交换。波形判读顺序第一步看负载电压Ua切换点前后不能出现跳变理想情况是一根连续正弦波。如果这里看到锯齿或断相说明模式切换时序有问题。第二步看并网电流Ia合闸前电流为零离网电流走的是逆变器到负载回路合闸瞬间电流不应该出现明显冲击。我实测冲击电流最小能压到额定电流的1.1倍左右峰值约1.5倍如果仿真里出现3倍以上的尖峰说明预同步没完成或者合闸判据太松。第三步看有功功率P和频率f合闸后功率指令从0平滑上升到5kW频率在合闸瞬间有个不超过0.2Hz的小扰动然后恢复到50Hz附近。如果频率出现振荡周期和J相关说明阻尼系数D偏小。5.3 并网转离网波形又要看什么第二个工况且并网带载运行500ms时电网断路器分闸模拟电网失电。分闸后VSG应保持负载电压连续频率不跌出±0.5Hz有功功率由5kW指令切到10kW负载对应的值。这里最容易出的问题是分闸瞬间本地负载突然只能靠逆变器供电而逆变器输出功率指令还没切过来那么电压和频率会瞬间塌下去一大块。我调rate limiter和功率指令切换时间把频率跌落在仿真里的最小值控制在49.8Hz左右大约200ms内恢复到50Hz负载电压有效值偏差不超过8%。这个指标在仿真里算过了关。5.4 参数敏感性J和D不匹配时的波形特征调参数阶段我专门跑了几组对照实验J从0.1到2.0扫一遍D从20到60扫一遍。总结下来这几个规律非常有用J太小0.1频率跟随性极好但切换瞬间频率有高频抖振容易触发频率保护。J太大2.0频率响应慢离网转并网时合闸瞬间相位同步过程变长预同步PI要拉更久并网转离网时频率跌落更深。D太小20功率振荡衰减慢并网功率阶跃后要震荡好几拍才稳定。D太大60稳态频率偏差变大但动态特别稳适合电网比较强的场景。工程上先通过稳态下垂关系定D再用动态响应调J这个先后顺序不要搞反。6. 踩坑记录三个问题我各花了整整一个晚上才定位到6.1 断路器合闸瞬间的电流尖峰竟然不是同步没做好最初的版本预同步判据都满足了合闸仍然有接近3倍额定电流的尖峰。排查到最后发现是Three-Phase Breaker模块内部的断路器闭合电阻的问题。Simulink里断路器默认闭合时有一个过渡电阻逐渐减小这个过渡过程如果太短等效于一个瞬间短路电流冲击就特别大。我把Breaker内部电阻过渡时间从默认的2ms拉长到10ms问题大幅缓解。这个参数在技术文档里不太显眼但实际影响很大硬件断路器也确实有十几个ms的机构动作时间所以10ms反而更贴近实际。6.2 功率计算模块的低通滤波器延迟把预同步害惨了有功功率和无功功率的瞬时值包含2次纹波必须滤掉。我在功率计算模块里加了低通滤波器截止频率100Hz。结果预同步阶段相位已经拉近了但功率环还在用滞后严重的有功值导致频率修正量不断震荡相位越拉越偏。后来我把功率滤波拆成两级给预同步控制器用截止频率400Hz、延迟小一点的滤波器给功率外环显示用100Hz的滤波器相位拉入过程变得更平滑。这个教训是控制回路里的滤波器延迟和带宽选择本身就是一个控制参数不能随便拿个滤波就当信号调理。6.3 模式切换信号保持与复位问题状态机从SYNC进入GRID之后预同步修正量如果不清零它会继续在频率环里叠加一个虚假的频率偏差导致VSG输出频率慢慢偏离电网。我排查了很久才发现不是参数问题而是状态机里没有在entry action里把预同步PI输出复位为0同时把积分器清零。还有并网状态下的无功励磁积分初值如果直接取离网时的自主建压值并网后要经过很长的过渡才能把无功压到给定值。正确做法是并网合闸时把励磁积分器的初值重设为当前电网电压幅值对应的电动势这样无功切换几乎无感。控制里最怕就是这种状态残留问题Stateflow的entry动作一定要把所有与该状态无关的信号复位这点用文字逻辑列清单比在图上找要靠谱得多。6.4 对扩展的一点建议这套模型后续接入硬件在环HIL实验时建议把PLL的延迟单独建模验证一遍。仿真里PLL是理想锁频锁相而硬件PLL有几十微秒的跟踪延迟这个延迟在同步判据中留的相位裕度会被吃掉我在预同步阶段把允许相位差改成0.2°再做的余量设计就稳当了。另一个扩展方向是加入不平衡负载场景把双环改到静止坐标系用PR控制器但目前这个版本对三相平衡场景已经够用了。我自己的体会是VSG无缝切换这件事算法的数学推导其实十几页纸就能写完真正花时间的是把每个积分器、每个状态变量、每个模块参数在切换瞬间的行为都理清楚。整个模型里最关键的调试工具就是Scope波形记得给每个控制模块的关键信号都拉出来观察线预同步修正量、励磁积分器输出、模式状态、断路器控制信号这些内部信号在切换瞬间的变化过程一目了然比盯着最终波形猜原因要省太多时间。
返回列表