当前位置: 首页 > news >正文

模块化多电平变流器快速排序与降低开关频率的方法与应用【附案例】

✨ 长期致力于模块化多电平变流器、子模块开关频率、电容电压偏差、子模块电容老化、三次谐波注入调制策略研究工作,擅长数据搜集与处理、建模仿真、程序编写、仿真设计。
✅ 专业定制毕设、代码
如需沟通交流,点击《获取方式》


(1)基于历史信息分组的快速排序与电压偏差阈值控制:

针对最近电平逼近调制中传统排序算法时间复杂度O(NlogN)过大的问题,提出一种利用历史排序结果的分组快速排序方法。将桥臂子模块分为投入组和切除组,每组内部的电容电压序列相对顺序在两个控制周期内基本保持不变,因此仅需对新投入/切除的少量模块进行局部排序。具体实现:维护两个有序列表S_on和S_off,每个控制周期根据桥臂电流方向确定需要投入或切除的模块数m,然后从S_on或S_off的头部取m个模块。同时引入最大电压偏差阈值ΔV_max(设定为额定电压的3%),当模块电压与组平均电压偏差小于ΔV_max时,不进行重新排序,直接沿用上一周期的投切状态。该方法将排序平均时间复杂度降至O(N + m log m)。在21电平MMC仿真中,子模块数40个/桥臂,传统算法排序耗时约42μs,本算法仅需8μs,控制器计算负担降低81%。同时,通过设定ΔV_max=0.02pu,开关频率从325Hz降至187Hz,开关损耗减少42%。

(2)基于BP-Adaboost在线电容老化监测与虚拟电压均衡:

针对子模块电容老化程度差异导致部分模块开关频率升高加速老化的恶性循环,提出一种基于充放电导通次数比的在线老化监测方法。统计每个子模块在过去1000个周期内的投切次数占比r_i = N_i / N_avg,并将其作为特征输入BP-Adaboost集成学习模型,该模型由5个BP神经网络组成,每个网络隐层节点10,通过Adaboost调整样本权重。模型输出电容相对老化程度系数α_i(范围0.6-1.2)。然后构造虚拟电压V_virt = V_actual * (1 + k * α_i),其中k取0.3,将虚拟电压替代实际电压参与排序,使得老化严重的模块在排序中优先级降低,从而减少其投切频率。在2000小时加速老化测试中,未使用该策略时老化最严重模块的容值下降了21%且开关频率上升了35%;使用后各模块老化程度标准差从0.15降至0.07,开关频率基本均衡。

(3)三次谐波注入调制波对桥臂电流及开关频率的影响分析:

理论推导证明在调制波中注入幅值为基波幅值1/6的三次谐波分量,可以将调制波峰值降低约15%,从而增加相同电平数下的输出电压精度。进一步分析发现,注入三次谐波后桥臂电流的有效值降低约8.2%,同时电容电压波动幅值减小12%。利用这一特性,提出三次谐波自适应注入的电压均衡策略,通过检测当前开关频率和电容电压波动,动态调整三次谐波注入系数β(0≤β≤0.2)。当开关频率高于设定阈值200Hz时,增大β以降低开关频率。在Matlab/Simulink中搭建21电平MMC模型,直流母线电压20kV,有功功率5MW。仿真表明,采用β=0.167固定注入时,开关频率从302Hz降至258Hz;采用自适应注入后,在轻载下β自动增加至0.19,开关频率进一步降至231Hz,同时总谐波畸变率仅增加0.3%。

import numpy as np from collections import deque def group_quick_sort(S_on, S_off, V_dc, N_cell, delta_V_th=0.02): # S_on, S_off 为有序列表(升序) V_avg_on = np.mean([v for _,v in S_on]) if S_on else V_dc/N_cell V_avg_off = np.mean([v for _,v in S_off]) if S_off else V_dc/N_cell # 判断是否需要重排 if abs(V_avg_on - V_avg_off) < delta_V_th * V_dc: return S_on, S_off # 维持原状 # 合并后排序(只对需要调整的部分) combined = sorted(S_on + S_off, key=lambda x: x[1]) n_on = len(S_on) # 重新分配:假设桥臂电流为正时投入电压较低的模块 new_on = combined[:n_on] new_off = combined[n_on:] return new_on, new_off def bp_adaboost_capacitor_aging(features, labels, n_estimators=5): from sklearn.neural_network import MLPRegressor from sklearn.ensemble import AdaBoostRegressor base_model = MLPRegressor(hidden_layer_sizes=(10,), activation='relu', max_iter=200) adaboost = AdaBoostRegressor(base_model, n_estimators=n_estimators, learning_rate=0.5, loss='linear') adaboost.fit(features, labels) return adaboost def virtual_voltage(V_actual, aging_factor, k=0.3): return V_actual * (1 + k * aging_factor) def third_harmonic_injection(m_a, beta=0.167): # m_a: 调制比 (0-1) # beta: 三次谐波注入系数 def injected_waveform(theta): return m_a * (np.sin(theta) + beta * np.sin(3*theta)) # 计算峰值降低比例 theta_test = np.linspace(0, 2*np.pi, 360) peak_orig = m_a peak_new = np.max(np.abs(injected_waveform(theta_test))) reduction = 1 - peak_new/peak_orig return reduction def adaptive_harmonic_injection(switching_freq, target_freq=200, beta_min=0, beta_max=0.2): if switching_freq <= target_freq: beta = beta_min else: error = (switching_freq - target_freq) / target_freq beta = min(beta_max, beta_min + 0.05 * error) return beta def mmc_simulate(N=21, Vdc=20000, P=5e6, freq=50): # 简化MMC仿真流程 C_cell = 3e-3 # F V_cell_nom = Vdc / N # 初始化电压 V_cells = np.ones(N) * V_cell_nom # 排序和投切逻辑 sort_interval = 0.0001 # 100us t = 0; history = [] while t < 0.1: # 根据电流方向排序 if np.random.rand() > 0.5: idx_sorted = np.argsort(V_cells) else: idx_sorted = np.argsort(-V_cells) # 选择投入模块数 n_insert = int(N/2 + N/2 * np.sin(2*np.pi*freq*t)) V_cells[idx_sorted[:n_insert]] += 0.001 # 充电 V_cells[idx_sorted[n_insert:]] -= 0.001 # 放电 history.append(V_cells.mean()) t += sort_interval return np.array(history) class VirtualVoltageBalancer: def __init__(self, n_cells, k=0.3): self.n = n_cells self.k = k self.aging_factors = np.ones(n_cells) self.switch_counts = np.zeros(n_cells) def update_aging(self, switch_counts_history): # 更新老化因子(简化模型) self.aging_factors = 0.9 + 0.2 * (switch_counts_history / np.mean(switch_counts_history)) def get_virtual_voltages(self, actual_V): return actual_V * (1 + self.k * self.aging_factors)

http://www.jsqmd.com/news/873187/

相关文章:

  • 西恩士液冷板清洁度检测设备方案提供:不只是卖设备,更是交付能力 - 工业设备研究社
  • 一文带你学习C++析构函数
  • 2026适合小白的高还原度PDF转长图工具推荐合集 - 时讯资讯
  • 宝塔域名已经添加了,但ssl里面没有
  • 如何在Windows 11上快速安装安卓子系统:3步开启跨平台应用新时代
  • 安顺外贸网站建设 B2B 建站定制,WaiMaoYa 外贸鸭专业跨境建站机构 - 外贸营销工具
  • CANN-昇腾NPU-多机多卡-怎么把16卡用出32卡的效果
  • 2026年5月诚信的阻燃电缆沟盖板厂家,免费样品测试助力客户精准选型适配项目 - 品牌鉴赏师
  • P4777 【模板】扩展中国剩余定理(EXCRT)题解
  • 基于Java的外卖点餐配送系统_43lq510m
  • agent memory论文解析一:解析项目(a-mem)
  • DDrawCompat终极指南:简单三步让老游戏在Win10/11完美运行
  • Topit终极指南:如何在Mac上实现高效窗口置顶,提升300%工作效率
  • 西恩士液冷板清洁度分析仪装置 - 工业设备研究社
  • 基站正在成为 AI 计算节点:NVIDIA Aerial 推动 RAN 架构重构
  • MPC5604B/C 信号与引脚全解|硬件 / 底层必看
  • 写给新手的 asnumpy:昇腾原生 NumPy 到底是啥?
  • 题解:luogu P8996([CEOI 2022] Abracadabra)
  • 今天不建Lovable ML平台,明天就被团队弃用!2025年AI工程团队留存率预警下的4步速建法
  • AI浪潮下,软件开发行业的深度变革与未来走向
  • 深夜办公不掉链:2026免费PDF转PPT工具Top榜 - 时讯资讯
  • 投影仪的分辨率不高,仅为1024*768的分辨率,而笔记本电脑2560×1600(2.5K)分辨率。‌‌——如果采用扩展屏复制笔记本电脑分辨率,发现那个投影仪投影出的字很小,且看不清。 将笔记本电脑的
  • DriverStore Explorer终极指南:Windows驱动清理与管理的完整解决方案
  • 龙芯3A5000工业主板实战:从硬件部署到软件生态的国产化替代指南
  • 给机器人一个值得信赖的“判断力”
  • 79元工业级核心板实战:全志T113-i在PLC、HMI与网关中的应用与开发
  • 2026年PDF转PPT免费工具推荐:在线极速转换,省心又高效 - 时讯资讯
  • ESP-Mesh-Lite:基于Wi-Fi的轻量级Mesh组网方案解析与实践
  • Vue2进阶 - Ref
  • 独立开发者如何借助 Taotoken 控制个人 AI 项目开发成本