MATLAB|基于转换器 (MMC) 技术和电压源转换器 (VSC) 的高压直流 (HVDC) 模型

💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

📋📋📋本文目录如下:🎁🎁🎁

目录

💥1 概述

1.1 简化电网

1.2 转换器 1

1.3 直流电路

1.4 控制器

1.5 示波器和测量

📚2 运行结果

🎉3 参考文献

🌈4 Simulink仿真、Matlab代码、数据、pdf文档


💥1 概述

"SimPowerSystems模型的1000兆瓦HVDC-MMC互联。本SPS模拟通过使用一个合并MMC模型进行了优化。直流电链已成为国家之间电力交换以及可再生能源(水电厂、近岸风电和太阳能发电场)向电网输电的首选方式。目前有几个这样的系统正在运行,例如INELFE项目(法国-西班牙互联)、Dolwin1项目(近海风电HVDC链),或者计划中的未来项目,比如北部通道(加拿大-美国1090兆瓦直流链)。

我们的示例将说明目前广泛使用的一种典型VSC拓扑结构:模块化多电平变流器(MMC)技术。在这个示例中,MMC变流器使用一个合并模型来模拟每个臂上的36个功率模块。通过这个合并模型,控制系统动态、变流器谐波和循环电流现象都得到了很好的表征。然而,由于只有一个虚拟电容器来代表臂上的36个电容器,该模型假定所有功率模块的电容器电压都是平衡的。与使用每个单独功率模块的两个开关器件和一个电容器的详细模型相比,这个合并模型运行速度要快得多。这个合并模型也非常适合实时仿真。

1.1 简化电网

电网使用 400 kV、50 Hz 等效电压和两个断路器为转换器 1 供电.

1.2 转换器 1

转换器 1 使用 6 个半桥 MMC 模块实现,每个模块代表 36 个电源模块。此自定义 SPS 模块使用开关功能模型,其中仅使用一个等效模块来表示所有电源模块。控制信号是一个二元向量 [Nin, Nbl],其中 Nin 表示插入模块的数量,Nbl 表示处于阻塞状态的模块数量。输出 Vc(电容器电压)只有一个元素,并给出电容器模块的平均值。

1.3 直流电路

在直流电路子系统中,将会发现电缆的简化模型,以及使用直流电源和理想开关建模的第二个转换器。您还将找到一个开关,用于在电缆上应用故障。

1.4 控制器

控制器子系统包含操作互连所需的各种控制系统。它包括以下子系统:有功和无功功率调节器-直流电压调节器-带前馈的dq电流调节器-PLL和测量子系统-用于控制转换器1(Converter1 )半桥MMC的PWM发电机。在文件夹中还可以找到对转换器1的各种操作模式进行编程的排序器区域。

1.5 示波器和测量

该子系统包含用于在仿真期间观察多个信号的所有示波器。功率和基波电压计算也在子系统中进行。

📚2 运行结果

   

可视化matlab代码:

close all
%
load CompareResultsData
%
h1=figure;
set(h1,'Name','DC');
ScreenS=get(0,'Screensize');
set(h1,'Position',[ScreenS(3)*0.01 ScreenS(4)*0.52 ScreenS(3)*0.32 ScreenS(4)*0.37])
subplot(2,1,1)
plot(results.time3,results.signals(1).values*1e-3,'b', ...
results.time3,results.signals(11).values*1e-3,'r')
ylabel('(kV)')
grid
title('Vdc Conv1')
axis([0 10 0 700])
legend('SwD','Agg')
subplot(2,1,2)
plot(results.time3,results.signals(2).values,'b', ...
results.time3,results.signals(12).values,'r')
ylabel('(A)')
xlabel('(s)')
grid
title('Idc Conv1')
legend('SwD','Agg')
axis([0 10 -2000 1000])
%
h1=figure;
set(h1,'Name','PQ');
ScreenS=get(0,'Screensize');
set(h1,'Position',[ScreenS(3)*0.34 ScreenS(4)*0.52 ScreenS(3)*0.32 ScreenS(4)*0.37])
subplot(2,1,1)
plot(results.time2,results.signals(3).values,'b', ...
results.time2,results.signals(13).values,'r')
ylabel('(MW)')
grid
title('Active Power')
axis([0 10 -500 1500])
legend('SwD','Agg','Location','southeast')
subplot(2,1,2)
plot(results.time2,results.signals(4).values,'b', ...
results.time2,results.signals(14).values,'r')
ylabel('(Mvar)')
xlabel('(s)')
grid
title('Reactive Power')
axis([0 10 -300 300])
legend('SwD','Agg','Location','southeast')
%

h1=figure;
set(h1,'Name','Iprim');
ScreenS=get(0,'Screensize');
set(h1,'Position',[ScreenS(3)*0.67 ScreenS(4)*0.52 ScreenS(3)*0.32 ScreenS(4)*0.37])
plot(results.time1(1:25000),results.signals(5).values(1:25000),'b')
hold on
plot(results.time1(1:25000),results.signals(15).values(1:25000),'r')
ylabel('(A)')
xlabel('(s)')
grid
title('Primary current, phase A')
axis([0.35 0.45 -250 250])
text(0.38,225,'(during capacitors energization)')
legend('SwD','Agg','Location','southeast')
%
h1=figure;
set(h1,'Name','Vcap');
ScreenS=get(0,'Screensize');
set(h1,'Position',[ScreenS(3)*0.01 ScreenS(4)*0.06 ScreenS(3)*0.32 ScreenS(4)*0.37])
subplot(2,2,1)
plot(results.time1(225000:250000),results.signals(6).values)
ylabel('(V)')
axis([9.9 9.98 16000 20000])
grid
title('Vcap 4 modules; SwD')
subplot(2,2,2)
plot(results.time1(225000:250000),results.signals(16).values,'r')
axis([9.9 9.98 16000 20000])
ylabel('(V)')
grid
title('Vcap average: Agg')
subplot(2,2,[3:4])
plot(results.time1(225000:250000),results.signals(7).values,'b', ...
results.time1(225000:250000),results.signals(17).values,'r')
ylabel('(V)')
axis([9.9 9.98 16000 20000])
xlabel('(s)')
grid
title('Capacitors average voltage, upper arm phA')
legend('SwD','Agg','Location','northeast')
%
h1=figure;
set(h1,'Name','Iarm');
ScreenS=get(0,'Screensize');
set(h1,'Position',[ScreenS(3)*0.34 ScreenS(4)*0.06 ScreenS(3)*0.32 ScreenS(4)*0.37])
plot(results.time1(225000:250000),results.signals(8).values,'b', ...
results.time1(225000:250000),results.signals(18).values,'r')
ylabel('(A)')
xlabel('(s)')
grid
title('Iarm, upper arm, phase A')
axis([9.9 10.0 -2000 2000])
legend('SwD','Agg','Location','southeast')
%
h1=figure;
set(h1,'Name','Iprim');
ScreenS=get(0,'Screensize');
set(h1,'Position',[ScreenS(3)*0.67 ScreenS(4)*0.06 ScreenS(3)*0.32 ScreenS(4)*0.37])
plot(results.time1(225000:250000),results.signals(5).values(225000:250000),'b', ...
results.time1(225000:250000),results.signals(15).values(225000:250000),'r')
ylabel('(A)')
xlabel('(s)')
grid
title('Primary current phase A')
axis([9.9 10.0 -2500 2500])
text(9.935,2300,'(in steady-state)')
legend('SwD','Agg','Location','southeast')
%  

🎉3 参考文献

文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。

🌈4 Simulink仿真、Matlab代码、数据、pdf文档

  • 19
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值