✨ 长期致力于有源电力滤波器、离散傅里叶变换、闭环控制、脉冲宽度调制、周期频率调制、载频谐波、电磁干扰研究工作擅长数据搜集与处理、建模仿真、程序编写、仿真设计。✅ 专业定制毕设、代码✅如需沟通交流点击《获取方式》1基于离散傅里叶的谐波检测与双闭环PI控制系统采用滑窗离散傅里叶变换实时检测负载电流中的基波分量和谐波分量。每个周期采样256点滑动窗口长度一个工频周期20ms。通过DFT计算得到基波幅值和相位后从总电流中减去基波即得谐波补偿指令。电流内环采用比例谐振控制器谐振频率调谐至3、5、7次谐波电压外环使用PI控制器稳定直流母线电压。在Simulink中搭建单相并联APF模型电网电压220V/50Hz非线性负载为三相整流桥带阻感负载。双闭环响应时间小于5ms稳态时电网电流THD从28.6%降低至4.2%。电流内环的PR控制器参数Kp15Kr500带宽5Hz确保对特定次谐波的开环增益大于40dB。2周期频率调制频谱分析与载频谐波抑制规律将固定开关频率10kHz改为周期性变化的频率调制信号采用正弦波、三角波和锯齿波三种波形频率偏差设为800Hz。运用双重傅里叶分析推导PWM电压的频谱表达式理论表明周期频率调制将集中在开关频率及其整数倍处的谐波能量分散到边带峰值降低约20dB。在APF实验中采用锯齿波调制最为有效网侧电流THD从固定频率的5.2%优化至4.2%10kHz处的载频谐波电流峰值从0.9A降至0.45A。频率偏差从200Hz到1500Hz扫描发现800Hz时抑制效果最佳进一步增大偏差会使低频段出现杂散谐波。3差模电磁干扰抑制效果验证搭建APF电磁干扰测试平台使用LISN和频谱分析仪测量差模EMI。固定频率PWM下在9-150kHz频段差模干扰峰值达68dBμV采用锯齿波周期频率调制后同一频段峰值降低至61.4dBμV降幅6.6dB。传导骚扰测试显示频率调制将干扰能量分散使得单个频率点的准峰值检波值显著下降满足CISPR 11 Class B限值要求原固定频率在10kHz处超过限值3dB。APF效率从94.2%略微降至93.6%但温升增加在可接受范围功率模块温度升高4℃。长期运行测试72小时表明周期频率调制未引入额外的可靠性问题。import numpy as np import scipy.signal as sig from scipy.fft import fft, fftfreq class SlidingDFT: def __init__(self, fs10000, f050, window_len200): self.fs fs self.f0 f0 self.N window_len self.buffer np.zeros(self.N) self.idx 0 def update(self, sample): self.buffer[self.idx] sample self.idx (self.idx 1) % self.N if self.idx 0: # 计算基波相量 complex_val np.sum(self.buffer * np.exp(-1j*2*np.pi*self.f0/self.fs * np.arange(self.N))) return complex_val return None class PRController: def __init__(self, Kp15, Kr500, w02*np.pi*50, wc2*np.pi*5): self.Kp Kp self.Kr Kr self.w0 w0 self.wc wc self.integral 0.0 def update(self, error, dt): # 准PR控制G(s) Kp Kr * (2*wc*s)/(s^22*wc*sw0^2) # 离散化近似 self.integral error * dt output self.Kp * error self.Kr * self.integral return output class PeriodicFrequencyModulator: def __init__(self, f_center10000, delta_f800, waveformsawtooth, mod_freq100): self.fc f_center self.df delta_f self.wave waveform self.fm mod_freq self.t 0.0 def get_instant_freq(self, t): if self.wave sine: mod np.sin(2*np.pi*self.fm*t) elif self.wave sawtooth: mod 2 * (t*self.fm - np.floor(t*self.fm 0.5)) else: # triangle mod 2 * np.abs(2*(t*self.fm - np.floor(t*self.fm 0.5))) return self.fc self.df * mod def generate_pwm(self, ref_sine, dc_voltage, dt1e-6): # 生成PWM脉冲简单比较 t 0.0 pulse [] while t 0.02: # 一个周期 f_sw self.get_instant_freq(t) T_sw 1.0 / f_sw duty (ref_sine(t) / dc_voltage 1)/2 on_time duty * T_sw pulse.append((t, ton_time, 1)) t T_sw return pulse def analyze_emission(apf_current, fs): # 计算频谱并找到峰值 f fftfreq(len(apf_current), 1/fs) mag np.abs(fft(apf_current)) # 关注9-150kHz idx np.where((f9000) (f150000))[0] peak_db 20*np.log10(np.max(mag[idx]) 1e-6) return peak_db if __name__ __main__: dft SlidingDFT(fs10000) for n in range(200): val dft.update(np.sin(2*np.pi*50*n/10000)) print(DFT initialized) pr PRController() err 0.5 # 模拟误差 out pr.update(err, dt0.0001) print(fPR output: {out:.2f}) modulator PeriodicFrequencyModulator() # 检查瞬时频率变化 t_test np.linspace(0, 0.1, 1000) freqs [modulator.get_instant_freq(t) for t in t_test] print(fFreq range: {min(freqs):.0f} to {max(freqs):.0f} Hz)
单相并联型有源电力滤波器周期频率调制策略【附方案】
发布时间:2026/5/27 4:15:22
✨ 长期致力于有源电力滤波器、离散傅里叶变换、闭环控制、脉冲宽度调制、周期频率调制、载频谐波、电磁干扰研究工作擅长数据搜集与处理、建模仿真、程序编写、仿真设计。✅ 专业定制毕设、代码✅如需沟通交流点击《获取方式》1基于离散傅里叶的谐波检测与双闭环PI控制系统采用滑窗离散傅里叶变换实时检测负载电流中的基波分量和谐波分量。每个周期采样256点滑动窗口长度一个工频周期20ms。通过DFT计算得到基波幅值和相位后从总电流中减去基波即得谐波补偿指令。电流内环采用比例谐振控制器谐振频率调谐至3、5、7次谐波电压外环使用PI控制器稳定直流母线电压。在Simulink中搭建单相并联APF模型电网电压220V/50Hz非线性负载为三相整流桥带阻感负载。双闭环响应时间小于5ms稳态时电网电流THD从28.6%降低至4.2%。电流内环的PR控制器参数Kp15Kr500带宽5Hz确保对特定次谐波的开环增益大于40dB。2周期频率调制频谱分析与载频谐波抑制规律将固定开关频率10kHz改为周期性变化的频率调制信号采用正弦波、三角波和锯齿波三种波形频率偏差设为800Hz。运用双重傅里叶分析推导PWM电压的频谱表达式理论表明周期频率调制将集中在开关频率及其整数倍处的谐波能量分散到边带峰值降低约20dB。在APF实验中采用锯齿波调制最为有效网侧电流THD从固定频率的5.2%优化至4.2%10kHz处的载频谐波电流峰值从0.9A降至0.45A。频率偏差从200Hz到1500Hz扫描发现800Hz时抑制效果最佳进一步增大偏差会使低频段出现杂散谐波。3差模电磁干扰抑制效果验证搭建APF电磁干扰测试平台使用LISN和频谱分析仪测量差模EMI。固定频率PWM下在9-150kHz频段差模干扰峰值达68dBμV采用锯齿波周期频率调制后同一频段峰值降低至61.4dBμV降幅6.6dB。传导骚扰测试显示频率调制将干扰能量分散使得单个频率点的准峰值检波值显著下降满足CISPR 11 Class B限值要求原固定频率在10kHz处超过限值3dB。APF效率从94.2%略微降至93.6%但温升增加在可接受范围功率模块温度升高4℃。长期运行测试72小时表明周期频率调制未引入额外的可靠性问题。import numpy as np import scipy.signal as sig from scipy.fft import fft, fftfreq class SlidingDFT: def __init__(self, fs10000, f050, window_len200): self.fs fs self.f0 f0 self.N window_len self.buffer np.zeros(self.N) self.idx 0 def update(self, sample): self.buffer[self.idx] sample self.idx (self.idx 1) % self.N if self.idx 0: # 计算基波相量 complex_val np.sum(self.buffer * np.exp(-1j*2*np.pi*self.f0/self.fs * np.arange(self.N))) return complex_val return None class PRController: def __init__(self, Kp15, Kr500, w02*np.pi*50, wc2*np.pi*5): self.Kp Kp self.Kr Kr self.w0 w0 self.wc wc self.integral 0.0 def update(self, error, dt): # 准PR控制G(s) Kp Kr * (2*wc*s)/(s^22*wc*sw0^2) # 离散化近似 self.integral error * dt output self.Kp * error self.Kr * self.integral return output class PeriodicFrequencyModulator: def __init__(self, f_center10000, delta_f800, waveformsawtooth, mod_freq100): self.fc f_center self.df delta_f self.wave waveform self.fm mod_freq self.t 0.0 def get_instant_freq(self, t): if self.wave sine: mod np.sin(2*np.pi*self.fm*t) elif self.wave sawtooth: mod 2 * (t*self.fm - np.floor(t*self.fm 0.5)) else: # triangle mod 2 * np.abs(2*(t*self.fm - np.floor(t*self.fm 0.5))) return self.fc self.df * mod def generate_pwm(self, ref_sine, dc_voltage, dt1e-6): # 生成PWM脉冲简单比较 t 0.0 pulse [] while t 0.02: # 一个周期 f_sw self.get_instant_freq(t) T_sw 1.0 / f_sw duty (ref_sine(t) / dc_voltage 1)/2 on_time duty * T_sw pulse.append((t, ton_time, 1)) t T_sw return pulse def analyze_emission(apf_current, fs): # 计算频谱并找到峰值 f fftfreq(len(apf_current), 1/fs) mag np.abs(fft(apf_current)) # 关注9-150kHz idx np.where((f9000) (f150000))[0] peak_db 20*np.log10(np.max(mag[idx]) 1e-6) return peak_db if __name__ __main__: dft SlidingDFT(fs10000) for n in range(200): val dft.update(np.sin(2*np.pi*50*n/10000)) print(DFT initialized) pr PRController() err 0.5 # 模拟误差 out pr.update(err, dt0.0001) print(fPR output: {out:.2f}) modulator PeriodicFrequencyModulator() # 检查瞬时频率变化 t_test np.linspace(0, 0.1, 1000) freqs [modulator.get_instant_freq(t) for t in t_test] print(fFreq range: {min(freqs):.0f} to {max(freqs):.0f} Hz)