基于MMC的两端柔性直流输电系统设计仿真:包含电压平衡控制策略、最近电平调制策略、环流抑制及详...
基于MMC的两端柔性直流输电系统设计仿真 1、MMC-HVDC 电压平衡控制策略为了实现桥臂子模块的电压动态平衡 在正常运行时由于桥臂子模块投切存在不一致性以及级联的子模块中的电容不断的在充电、放电或者闭锁状态切换 2、最近电平调制策略详细说明了桥臂环流产生的原因 并分别得到了交流系统正常工况下和故障工况下三相桥臂环流的分布情况 3、环流抑制应用了一种桥臂二倍频环流抑制策略实现了桥臂环流二倍频的有效抑制在实现子模块电容电压平衡控制的同时尽量降低功率器件开关损耗 4、设计文档内容研究背景及意义、研究现状、基本原理及数学模型、主电路及控制系统设计、MMC-HVDC 电容电压平衡控制、相间环流抑制、仿真建模、 仿真结果分析 资料内容41页详细设计报告参考文献最近捣鼓MMC-HVDC仿真的时候发现这玩意儿真是个既要技术又要耐心的活儿。特别是子模块电容电压平衡简直像在玩跷跷板——这边刚压下去那边又飘起来了。今天就跟大伙儿聊聊怎么在仿真里驯服这些调皮的电容电压顺便搞定那些恼人的环流。先说说电压平衡控制这档子事。子模块电容充放电就像在自助餐厅排队总有几个插队的模块导致电压不齐。我们得搞个智能调度系统这里头核心是电容电压排序算法。看这段伪代码def sort_capacitors(arm_modules): sorted_modules sorted(arm_modules, keylambda x: x.voltage, reverseTrue) required_count calculate_required_modules(current_direction) return sorted_modules[:required_count], sorted_modules[required_count:]这可不是简单的冒泡排序每次投切都要重新计算当前方向下的最优组合。有个坑得注意开关频率和排序频率得匹配。之前试过用全排序结果开关损耗直接爆炸后来改成滑动窗口局部排序才把开关次数压到合理范围。说到调制策略最近电平逼近法真是让人又爱又恨。举个栗子当目标电压是5230V而单个模块是2500V时算法会自动选择2个模块投入2500*25000V这时候的误差电压230V就靠PWM来补偿。Matlab里实现起来大概是这样function n nearest_level(V_ref, V_sub) n round(V_ref / V_sub); n max(min(n, max_modules), 0); % 钳位在可用模块数范围内 end不过实际操作中发现交流侧故障时的环流分布和正常工况完全不是一回事。正常时环流像温顺的小猫三相基本对称故障时直接变身炸毛老虎二次谐波分量能占到总电流的30%以上。这时候就得搬出二倍频环流抑制的大杀器// 二倍频环流抑制核心算法 double harmonic_compensation(double i_circ, double theta) { double w 2*PI*100; // 基波频率 double k_pr 0.5; // 比例系数 double k_ir 20; // 积分系数 static double integrator 0; double error i_circ - 0; // 目标是把环流压到零 integrator error * Ts; // 积分项 return k_pr * error k_ir * integrator * sin(2*w*theta); }这个闭环控制的关键在于相位对齐有次仿真忘了锁相环同步结果补偿信号和实际环流差90度相位直接上演环流加强版的悲剧...说到仿真建模主电路参数配置绝对是个精细活。比如桥臂电抗值选大了影响动态响应选小了又抑制不住环流。经过多次试错发现这个经验公式挺管用$$基于MMC的两端柔性直流输电系统设计仿真 1、MMC-HVDC 电压平衡控制策略为了实现桥臂子模块的电压动态平衡 在正常运行时由于桥臂子模块投切存在不一致性以及级联的子模块中的电容不断的在充电、放电或者闭锁状态切换 2、最近电平调制策略详细说明了桥臂环流产生的原因 并分别得到了交流系统正常工况下和故障工况下三相桥臂环流的分布情况 3、环流抑制应用了一种桥臂二倍频环流抑制策略实现了桥臂环流二倍频的有效抑制在实现子模块电容电压平衡控制的同时尽量降低功率器件开关损耗 4、设计文档内容研究背景及意义、研究现状、基本原理及数学模型、主电路及控制系统设计、MMC-HVDC 电容电压平衡控制、相间环流抑制、仿真建模、 仿真结果分析 资料内容41页详细设计报告参考文献L{arm} \frac{V{dc}}{6f{sw}\Delta I{pp}}$$其中$f{sw}$是等效开关频率$\Delta I{pp}$是允许的电流纹波峰峰值。套用这个公式配置参数至少不会跑出离谱的结果。最后看个仿真波形对比图伪代码版plt.plot(t, i_circ_before, labelBefore Suppression) plt.plot(t, i_circ_after, --, labelAfter Suppression) plt.annotate(谐波分量降低72%, xy(0.02, 0.85), xycoordsaxes fraction) plt.legend() plt.show()实际跑出来的效果就跟过山车改平路似的二次谐波基本被拍平了。不过要注意环流抑制和电压平衡是跷跷板的两头调参时得找到那个微妙的平衡点——就像在钢丝上跳芭蕾稍不注意就会顾此失彼。仿真这玩意儿说到底就是个不断试错的过程有时候参数调得想砸键盘但看到漂亮的波形图那一刻又觉得值了。下次有机会再聊聊故障穿越时那些惊心动魄的仿真现场吧。