目录
基于Simulink的高压直流输电下的模块化多电平逆变器建模仿真
1. 背景介绍
1.1 项目背景
1.2 系统描述
1.3 应用场景
2. 具体的仿真建模过程
2.1 系统模型构建
2.1.1 子模块模型
2.1.2 MMC主电路模型
2.1.3 控制器模型
2.1.4 滤波器模型
2.2 连接各模块
2.3 添加输出显示
3. 仿真设置与运行
3.1 设置仿真参数
3.2 运行仿真
3.3 分析仿真结果
4. 结果分析与讨论
4.1 结果分析
4.2 讨论
5. 示例代码片段
6. 结束语
1. 背景介绍
1.1 项目背景
高压直流输电(HVDC, High Voltage Direct Current)是一种高效的远距离电力传输技术,广泛应用于长距离输电、海上风电并网以及跨区域电网互联。模块化多电平逆变器(MMC, Modular Multilevel Converter)是现代高压直流输电系统的核心设备之一,具有高可靠性、低谐波失真和灵活控制等优点。
本项目旨在通过Simulink对模块化多电平逆变器进行建模与仿真,重点研究其在高压直流输电系统中的动态响应特性、功率传输效率以及稳定性。
1.2 系统描述
模块化多电平逆变器由多个子模块(SM, Submodule)组成,每个子模块通常包含一个半桥电路或全桥电路。通过级联多个子模块,可以实现高电压输出,并通过PWM调制实现精确的电压控制。
主要组成部分包括:
1.3 应用场景
2. 具体的仿真建模过程
2.1 系统模型构建
在Simulink中,我们将分别建立子模块、MMC主电路、控制器以及滤波器,并将其集成到一个完整的MMC-HVDC系统中。
2.1.1 子模块模型
子模块是MMC的基本单元,通常采用半桥结构。
matlab
深色版本
% 添加子模块模型
add_block('simulink/Simscape/Electrical/Specialized Technology/Fundamental Blocks/Power Electronics/Universal Bridge', [modelName '/Submodule']);
set_param([modelName '/Submodule'], 'SnubberResistance', 'inf'); % 无缓冲电阻
set_param([modelName '/Submodule'], 'SnubberCapacitance', '0'); % 无缓冲电容
set_param([modelName '/Submodule'], 'Ron', '0.01'); % 开关导通电阻
set_param([modelName '/Submodule'], 'Lon', '0'); % 开关导通电感
set_param([modelName '/Submodule'], 'Roff', '1e6'); % 开关截止电阻
set_param([modelName '/Submodule'], 'Loff', '0'); % 开关截止电感
set_param([modelName '/Submodule'], 'Configuration', 'Half bridge (2 legs)'); % 半桥配置
2.1.2 MMC主电路模型
MMC主电路由多个子模块级联而成,形成三相结构。
matlab
深色版本
% 添加MMC主电路模型
add_block('simulink/Simscape/Electrical/Specialized Technology/Power Converters/Modular Multilevel Converter', [modelName '/MMC']);
set_param([modelName '/MMC'], 'NumberOfSubmodules', '16'); % 每相子模块数量为16
set_param([modelName '/MMC'], 'DCVoltage', '400'); % 设置直流侧电压为400V
2.1.3 控制器模型
控制器包括PWM调制器、环流抑制控制器和臂电流控制器。
matlab
深色版本
% 添加PWM调制器模型
add_block('simulink/Simscape/Electrical/Specialized Technology/Control & Measurements/Measurements/Controlled PWM Voltage Source', [modelName '/PWMModulator']);
set_param([modelName '/PWMModulator'], 'Amplitude', '400'); % 设置PWM调制器的幅度为400V
set_param([modelName '/PWMModulator'], 'Frequency', '50'); % 设置PWM调制器的频率为50Hz
% 添加环流抑制控制器模型
add_block('simulink/User-Defined Functions/MATLAB Function', [modelName '/CirculatingCurrentController']);
set_param([modelName '/CirculatingCurrentController'], 'MATLABFunction', 'function y = fcn(u)\n % PI控制器\n Kp = 1;\n Ki = 0.1;\n persistent integral\n if isempty(integral)\n integral = 0;\n end\n error = u(1) - u(2);\n integral = integral + error * Ts;\n y = Kp * error + Ki * integral;\nend');
set_param([modelName '/CirculatingCurrentController'], 'SampleTime', '1e-3'); % 设置采样时间为1ms
2.1.4 滤波器模型
滤波器用于平滑输出电压波形,减少谐波成分。
matlab
深色版本
% 添加LC滤波器模型
add_block('simulink/Simscape/Foundation Library/Electrical/Elements/Capacitor', [modelName '/Capacitor']);
set_param([modelName '/Capacitor'], 'C', '100e-6'); % 电容值为100uF
add_block('simulink/Simscape/Foundation Library/Electrical/Elements/Inductor', [modelName '/Inductor']);
set_param([modelName '/Inductor'], 'L', '1e-3'); % 电感值为1mH
2.2 连接各模块
将上述各个模块连接起来,形成完整的MMC-HVDC系统。
matlab
深色版本
% 连接MMC主电路到滤波器
add_line(modelName, '/MMC/1', '/Inductor/1', 'autorouting', 'on');
add_line(modelName, '/Inductor/1', '/Capacitor/1', 'autorouting', 'on');
% 连接PWM调制器到MMC主电路的控制信号输入端口
add_line(modelName, '/PWMModulator/1', '/MMC/2', 'autorouting', 'on');
% 连接环流抑制控制器到PWM调制器
add_line(modelName, '/CirculatingCurrentController/1', '/PWMModulator/1', 'autorouting', 'on');
2.3 添加输出显示
使用Scope
块显示系统输出。
matlab
深色版本
% 添加Scope块显示系统输出
add_block('simulink/Sinks/Scope', [modelName '/Scope']);
connect_blocks(modelName, {'/MMC', '/Scope'}); % 连接MMC输出到Scope
connect_blocks(modelName, {'/Capacitor', '/Scope'}); % 连接滤波器输出到Scope
3. 仿真设置与运行
3.1 设置仿真参数
在上述代码中,已经设置了仿真时间为0.5秒,并保存了模型。
matlab
深色版本
% 设置仿真时间
set_param(modelName, 'StopTime', '0.5'); % 设置仿真时间为0.5秒
save_system(modelName); % 保存模型
3.2 运行仿真
打开Simulink模型,点击工具栏中的“Run”按钮运行仿真。
matlab
深色版本
% 打开Simulink模型并运行仿真
open_system(modelName); % 打开Simulink模型
sim(modelName); % 运行仿真
3.3 分析仿真结果
在Simulink模型中,打开Scope
块查看系统响应曲线。
matlab
深色版本
% 打开Scope窗口
open_system([modelName '/Scope']);
4. 结果分析与讨论
4.1 结果分析
在Scope
窗口中,你可以看到以下主要曲线:
4.2 讨论
假设你希望评估MMC-HVDC系统在不同负载条件下的动态响应特性和稳定性,并观察其响应效果。通过观察Scope
窗口中的曲线,可以得出以下结论:
5. 示例代码片段
以下是一个完整的基于高压直流输电的模块化多电平逆变器仿真模型的搭建过程,包括模型创建、参数设置、模块连接及仿真运行。
matlab
深色版本
% Step 1: Define model name and create a new system
modelName = 'MMC_HVDC_System';
new_system(modelName);
open_system(modelName);
% Step 2: Add MMC main circuit block
add_block('simulink/Simscape/Electrical/Specialized Technology/Power Converters/Modular Multilevel Converter', [modelName '/MMC']);
set_param([modelName '/MMC'], 'NumberOfSubmodules', '16'); % 每相子模块数量为16
set_param([modelName '/MMC'], 'DCVoltage', '400'); % 设置直流侧电压为400V
% Step 3: Add PWM Modulator block
add_block('simulink/Simscape/Electrical/Specialized Technology/Control & Measurements/Measurements/Controlled PWM Voltage Source', [modelName '/PWMModulator']);
set_param([modelName '/PWMModulator'], 'Amplitude', '400'); % 设置PWM调制器的幅度为400V
set_param([modelName '/PWMModulator'], 'Frequency', '50'); % 设置PWM调制器的频率为50Hz
% Step 4: Add Circulating Current Controller block
add_block('simulink/User-Defined Functions/MATLAB Function', [modelName '/CirculatingCurrentController']);
set_param([modelName '/CirculatingCurrentController'], 'MATLABFunction', 'function y = fcn(u)\n % PI控制器\n Kp = 1;\n Ki = 0.1;\n persistent integral\n if isempty(integral)\n integral = 0;\n end\n error = u(1) - u(2);\n integral = integral + error * Ts;\n y = Kp * error + Ki * integral;\nend');
set_param([modelName '/CirculatingCurrentController'], 'SampleTime', '1e-3'); % 设置采样时间为1ms
% Step 5: Add LC Filter block
add_block('simulink/Simscape/Foundation Library/Electrical/Elements/Capacitor', [modelName '/Capacitor']);
set_param([modelName '/Capacitor'], 'C', '100e-6'); % 电容值为100uF
add_block('simulink/Simscape/Foundation Library/Electrical/Elements/Inductor', [modelName '/Inductor']);
set_param([modelName '/Inductor'], 'L', '1e-3'); % 电感值为1mH
% Step 6: Connect blocks
% 连接MMC主电路到滤波器
add_line(modelName, '/MMC/1', '/Inductor/1', 'autorouting', 'on');
add_line(modelName, '/Inductor/1', '/Capacitor/1', 'autorouting', 'on');
% 连接PWM调制器到MMC主电路的控制信号输入端口
add_line(modelName, '/PWMModulator/1', '/MMC/2', 'autorouting', 'on');
% 连接环流抑制控制器到PWM调制器
add_line(modelName, '/CirculatingCurrentController/1', '/PWMModulator/1', 'autorouting', 'on');
% Step 7: Add Scope block to display results
add_block('simulink/Sinks/Scope', [modelName '/Scope']);
connect_blocks(modelName, {'/MMC', '/Scope'}); % 连接MMC输出到Scope
connect_blocks(modelName, {'/Capacitor', '/Scope'}); % 连接滤波器输出到Scope
% Step 8: Set simulation parameters
set_param(modelName, 'StopTime', '0.5'); % 设置仿真时间为0.5秒
save_system(modelName); % 保存模型
% Step 9: Run simulation
open_system(modelName); % 打开Simulink模型
sim(modelName); % 运行仿真
% Step 10: Open Scope window to view results
open_system([modelName '/Scope']); % 打开Scope窗口
6. 结束语
通过这个项目文档,我们详细介绍了如何在Simulink中建立基于高压直流输电的模块化多电平逆变器仿真模型,并展示了具体的建模步骤和仿真结果分析。希望这个示例能够帮助读者更好地理解和应用MMC-HVDC系统的设计原理,并为相关领域的研究和开发提供有价值的参考。如果需要进一步的优化或扩展,可以根据具体的应用需求进行相应的调整和改进。