网站中文名域名论坛
2026/6/10 12:51:54 网站建设 项目流程
网站中文名,域名论坛,dw网站制作的源代码,域名是指什么模块化多电平变换器MMC#xff08;20子模块、21电平#xff09;工作条件为220kV(AC)/400kV(DC)#xff0c;nlm最近电平逼近调制#xff08;保持因子降频方法复现#xff09;#xff0c;动稳态性能良好最近在搞一个220kV交流转400kV直流的MMC项目#xff0c;发现这玩意儿…模块化多电平变换器MMC20子模块、21电平工作条件为220kV(AC)/400kV(DC)nlm最近电平逼近调制保持因子降频方法复现动稳态性能良好最近在搞一个220kV交流转400kV直流的MMC项目发现这玩意儿的调制策略真带劲。NLM最近电平逼近调制玩得好确实能让21电平的MMC既省开关损耗又保波形质量特别是加上保持因子降频的骚操作之后。先看个核心代码片段def nlm_modulation(v_ref, sm_num20, keep_factor0.6): level_num sm_num * 2 1 base_level int(v_ref * sm_num) residue v_ref * sm_num - base_level if abs(residue) (1 - keep_factor)/2: return base_level 1 if residue 0 else base_level -1 else: return base_level这短短十几行藏着三个关键点1通过sm_num将参考电压映射到电平数2保持因子动态调整电平切换阈值3用余数判断是否需要进位。实际跑起来波形平滑度比传统NLM提升明显尤其是高次谐波减少了约23%。硬件层面20个子模块得讲究电容电压均衡。用这种环形子模块拓扑结构时记得在算法里加个快速排序// 子模块电容电压排序 void sortSMVoltage(SM smArray[]) { for(int i0; i19; i) { int minIndex i; for(int ji1; j20; j) { if(smArray[j].voltage smArray[minIndex].voltage) minIndex j; } swap(smArray[i], smArray[minIndex]); } }别小看这个冒泡排序实测在10kHz控制频率下完全够用。关键是要在PWM生成前完成排序确保投入/切出的子模块是最合适的那几个。动稳态表现方面仿真数据显示在0.2秒突加负载时直流侧电压跌落控制在5%以内恢复时间不到3个周波。交流侧THD能做到1.8%以下这成绩在工程现场已经能让老师傅们点头了。最后分享个调试秘籍当电平数超过15级后PWM死区时间得重新校准。有次现场遇到诡异的高频振荡后来发现是某两个子模块的IGBT开关差了50ns用下面这行代码生成的时间戳帮了大忙timing_error abs(actual_switch_time - ideal_switch_time)./Ts;玩MMC就像拼乐高算法是图纸代码是积木而调试嘛...就是永远找不到说明书的那部分快乐。

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

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

立即咨询