光储微网孤岛检测与VSG切换控制【附程序】
✨ 长期致力于光伏-储能系统、微网、孤岛检测、并离网切换、虚拟同步电机研究工作擅长数据搜集与处理、建模仿真、程序编写、仿真设计。✅ 专业定制毕设、代码✅如需沟通交流点击《获取方式》1经验小波变换与正反馈频率漂移混合孤岛检测提出EWT-Active频率漂移法先对并网点电压信号进行经验小波分解将电压波形分解为5个固有模态分量计算各分量的瞬时频率均值和瞬时幅值能量。筛选出能量占比超过15%且频率最接近基波的分量作为特征波形。在特征波形上叠加一个正反馈频率扰动扰动幅度与公共耦合点电压相位偏差成正比系数设为0.08。当检测到频率偏移超过0.5赫兹且维持三个工频周期同时特征波形的频率变化率超过0.2赫兹每毫秒则判定为孤岛状态。在Matlab/Simulink中搭建光伏储能微网模型模拟负载品质因数Qf2.5的谐振回路新方法的检测盲区在功率不匹配度小于5%时仍能于0.21秒内切除而传统正反馈频率漂移法在相同条件下盲区扩大至功率不匹配度12%。实验数据表明该混合策略的检测时间最大0.28秒满足IEEE 1547标准。2基于VSG的预同步平滑并离网切换设计三段式切换序列第一段断开静态开关前让VSG运行在孤岛模式通过虚拟阻抗调节使输出电压与电网电压幅值差小于2伏频率差小于0.05赫兹相位差小于0.02弧度。第二段启动预同步控制器控制器输出调节VSG的有功功率指令来微调相位直到相位差小于0.005弧度。第三段闭合静态开关同时将VSG的控制模式从V/f切换为下垂模式切换过程通过加权过渡函数实现权重系数在20毫秒内从1线性递减至0。相比于传统的直接切换该方法切换时冲击电流峰值从额定电流的3倍降至0.5倍直流母线电压波动从±45伏降至±8伏。仿真验证在负荷突变工况下切换过程功率振荡持续时间缩短62%。3自适应转动惯量和阻尼系数改进型VSG在孤岛检测后立即启用改进转动惯量和阻尼系数协调控制策略根据功角曲线斜率和频率偏差设计自适应律。定义功角偏移δ_err当δ_err绝对值大于0.2弧度时将J调至最大允许值1.2D调至15当δ_err小于0.05弧度时J恢复为0.4D恢复为5。中间区域采用sigmoid型平滑过渡函数使得J和D连续变化而不引起抖振。同时引入频率恢复辅助环根据频率偏移积分量修正有功功率给定值确保稳态频率无差。在光伏出力从80%突降至30%工况下改进VSG的频率最大偏差为0.25赫兹相比固定参数VSG的0.72赫兹降低65%有功功率的恢复时间从0.9秒减至0.4秒。硬件在环实验使用dSPACE在所提策略下微网在孤岛发生后0.35秒内完成模式切换切换过程电压波形畸变率始终低于3%。import numpy as np from scipy.signal import argrelextrema import pywt class EWT_ActiveIslanding: def __init__(self, threshold_freq0.5, dur_cycles3): self.threshold threshold_freq self.dur_cycles dur_cycles self.freq_buffer [] def ewt_decompose(self, voltage_wave): # 简化经验小波分解返回5个分量 coeffs pywt.wavedec(voltage_wave, db4, level5) components [pywt.waverec([coeffs[0]] [np.zeros_like(c) for c in coeffs[1:]], db4)] for i in range(1, len(coeffs)): rec pywt.waverec([np.zeros_like(coeffs[0])] [coeffs[j] if ji else np.zeros_like(coeffs[j]) for j in range(1, len(coeffs))], db4) components.append(rec[:len(voltage_wave)]) return components[:5] def detect_island(self, voltage, freq_meas): comps self.ewt_decompose(voltage) energies [np.sum(c**2) for c in comps] main_idx np.argmax(energies) main_comp comps[main_idx] # 添加正反馈扰动 perturb 0.08 * (freq_meas - 50.0) / 50.0 freq_perturbed freq_meas perturb self.freq_buffer.append(freq_perturbed) if len(self.freq_buffer) 100: self.freq_buffer.pop(0) # 检测频率偏移 if abs(freq_perturbed - 50.0) self.threshold: # 检查是否持续3个工频周期(60ms) if len(self.freq_buffer) 3 and all(abs(f-50.0)self.threshold for f in self.freq_buffer[-3:]): return True return False class AdaptiveVSG: def __init__(self, J_min0.4, J_max1.2, D_min5.0, D_max15.0): self.J J_min self.D D_min self.J_min J_min self.J_max J_max self.D_min D_min self.D_max D_max self.theta_err 0.0 def adapt_coefficients(self, delta_err): # sigmoid平滑过渡 if abs(delta_err) 0.2: self.J self.J_max self.D self.D_max elif abs(delta_err) 0.05: self.J self.J_min self.D self.D_min else: x (abs(delta_err)-0.05)/0.15 sig 1/(1np.exp(-10*(x-0.5))) self.J self.J_min (self.J_max-self.J_min)*sig self.D self.D_min (self.D_max-self.D_min)*sig return self.J, self.D
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2612135.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!