目录
手把手教你学Simulink实例——基于Simulink的电力电子设备并联运行控制仿真实例
手把手教你学Simulink实例——基于Simulink的电力电子设备并联运行控制仿真实例
引言
在现代电力系统中,多个电力电子设备(如逆变器、整流器等)并联运行可以提高系统的容量和可靠性。然而,并联运行需要解决诸如电流分配不均、环流等问题。本文将详细介绍如何使用MATLAB中的Simulink工具进行电力电子设备的并联运行控制仿真,涵盖模型构建、控制器设计、参数优化及结果分析等步骤。
并联运行控制策略简介
1. 并联运行
并联运行是指多个电源或负载通过公共母线连接在一起工作的方式。常见的应用场景包括多台逆变器并联供电、多台整流器并联充电等。
2. 控制目标
在电力电子设备并联运行中,常见的控制目标包括:
- 电流均衡:确保各并联设备之间的电流分配均匀。
- 环流抑制:减少或消除设备之间的环流现象。
- 稳定性增强:保证系统在各种工况下的稳定运行。
系统框架
1. 系统架构概述
本示例将以两个逆变器并联运行为例,展示如何利用Simulink进行并联运行控制仿真。该系统由以下部分组成:
- 逆变器:产生PWM调制信号,驱动电机或其他负载。
- 传感器:用于采集各逆变器输出的电压、电流等数据。
- 控制器:根据采集的数据计算控制量,调整逆变器输出。
- 性能评估模块:评估系统的性能指标(如电流均衡度、环流大小等)。
系统架构视图:
plaintext
深色版本
+-------------------+ +------------------+ +-----------------+ +--------------+
| | | | | | | |
| Inverter_1 |----->| Load |----->| Sensors | | |
| (PWM Signal) | | (Electrical & | | (Voltage, | | |
| | | Mechanical) | | Current) | | |
+-------------------+ +------------------+ +-----------------+ +--------------+
|
v
+------------------+
| |
| Controller |
| (Parallel Run |
| Control Strategy|
| ) |
| |
+------------------+
|
v
+------------------+
| |
| Performance |
| Evaluation |
| (Current Balance|
| , Circulating |
| Current) |
| |
+------------------+
+-------------------+ +------------------+ +-----------------+ +--------------+
| | | | | | | |
| Inverter_2 |----->| Load |----->| Sensors | | |
| (PWM Signal) | | (Electrical & | | (Voltage, | | |
| | | Mechanical) | | Current) | | |
+-------------------+ +------------------+ +-----------------+ +--------------+
Simulink建模过程
1. 创建新模型
- 启动MATLAB并打开Simulink界面。
- 在Simulink启动窗口中选择“Blank Model”,创建一个新的空白模型。
2. 添加模块
接下来按照系统架构添加所需的Simulink模块:
-
逆变器
- 从
Simscape > Electrical > Specialized Power Systems > Fundamental Blocks > Power Electronics
库中找到IGBT/Diode
模块,并根据需要复制多个IGBT模块来构建逆变器电路。 - 配置IGBT模块的导通电阻等参数。
- 从
Simulink > Discontinuities
库中找到PWM Generator
模块并添加至模型。 - 设置PWM频率为20kHz,初始占空比为50%。
- 从
-
负载
- 从
Simscape > Electrical > Specialized Power Systems > Fundamental Blocks > Machines
库中找到DC Machine
模块并加入模型作为负载。 - 配置电机参数(如额定电压、额定转速等)。
- 从
-
传感器
- 从
Simscape > Electrical > Specialized Power Systems > Fundamental Blocks > Measurements
库中找到Voltage Measurement
和Current Measurement
模块,分别用于测量电压和电流。
- 从
-
控制器
- 使用
Simulink > Continuous
库中的State-Space
模块建立逆变器的状态空间模型。 - 使用
Simulink > Math Operations
库中的相关模块实现电流均衡控制算法(如主从控制、下垂控制等)。
- 使用
-
性能评估模块
- 使用
Simulink > Sinks
库中的Scope
模块观察各物理量的变化情况(如电压、电流等)以及控制器的输出。 - 使用
Simulink > Math Operations
库中的相关模块计算性能指标(如电流均衡度、环流大小等)。
- 使用
以下是详细的Simulink模型脚本示例:
matlab
深色版本
% 清除当前工作区的所有变量
clear all; close all;
% 定义PWM频率和周期
PWM_Frequency = 20e3; % PWM频率为20kHz
Initial_Duty_Cycle = 0.5; % 初始占空比为50%
% 创建一个新的Simulink模型
modelName = 'ParallelInverterControl';
new_system(modelName);
open_system(modelName);
% 添加第一个逆变器模块
for i = 1:6 % 假设是三相逆变器,每相两个开关
add_block('simulink/Extras/Ideal Switch', [modelName sprintf('/Switch1_%d', i)]);
set_param([modelName sprintf('/Switch1_%d', i)], 'Ron', '0.1'); % 开关导通电阻
end
add_block('simulink/Discontinuities/PWM Generator', [modelName '/PWM_Generator1']);
set_param([modelName '/PWM_Generator1'], 'Frequency', num2str(PWM_Frequency));
set_param([modelName '/PWM_Generator1'], 'Amplitude', '1');
set_param([modelName '/PWM_Generator1'], 'PhaseDelay', '0');
set_param([modelName '/PWM_Generator1'], 'SampleTime', '1e-6');
add_block('simscape/Electrical/Specialized Power Systems/Fundamental Blocks/Machines/DC Machine', [modelName '/Motor1']);
set_param([modelName '/Motor1'], 'RatedVoltage', '24'); % 设置额定电压为24V
set_param([modelName '/Motor1'], 'RatedSpeed', '1500'); % 设置额定转速为1500rpm
add_block('simscape/Electrical/Specialized Power Systems/Fundamental Blocks/Measurements/Voltage Measurement', [modelName '/Voltage_Measurement1']);
add_block('simscape/Electrical/Specialized Power Systems/Fundamental Blocks/Measurements/Current Measurement', [modelName '/Current_Measurement1']);
% 添加第二个逆变器模块
for i = 1:6
add_block('simulink/Extras/Ideal Switch', [modelName sprintf('/Switch2_%d', i)]);
set_param([modelName sprintf('/Switch2_%d', i)], 'Ron', '0.1'); % 开关导通电阻
end
add_block('simulink/Discontinuities/PWM Generator', [modelName '/PWM_Generator2']);
set_param([modelName '/PWM_Generator2'], 'Frequency', num2str(PWM_Frequency));
set_param([modelName '/PWM_Generator2'], 'Amplitude', '1');
set_param([modelName '/PWM_Generator2'], 'PhaseDelay', '0');
set_param([modelName '/PWM_Generator2'], 'SampleTime', '1e-6');
add_block('simscape/Electrical/Specialized Power Systems/Fundamental Blocks/Machines/DC Machine', [modelName '/Motor2']);
set_param([modelName '/Motor2'], 'RatedVoltage', '24'); % 设置额定电压为24V
set_param([modelName '/Motor2'], 'RatedSpeed', '1500'); % 设置额定转速为1500rpm
add_block('simscape/Electrical/Specialized Power Systems/Fundamental Blocks/Measurements/Voltage Measurement', [modelName '/Voltage_Measurement2']);
add_block('simscape/Electrical/Specialized Power Systems/Fundamental Blocks/Measurements/Current Measurement', [modelName '/Current_Measurement2']);
% 添加状态空间模型
add_block('simulink/Continuous/State-Space', [modelName '/State_Space_Model']);
set_param([modelName '/State_Space_Model'], 'A', '[0 1; -10 -1]'); % A矩阵
set_param([modelName '/State_Space_Model'], 'B', '[0; 10]'); % B矩阵
set_param([modelName '/State_Space_Model'], 'C', '[1 0]'); % C矩阵
set_param([modelName '/State_Space_Model'], 'D', '0'); % D矩阵
% 添加电流均衡控制算法
add_block('simulink/Math Operations/Add', [modelName '/Add_Current']);
add_block('simulink/Math Operations/Product', [modelName '/Product_Current']);
set_param([modelName '/Product_Current'], 'Gain', '0.5'); % 设置增益系数
% 添加示波器
add_block('simulink/Sinks/Scope', [modelName '/Scope']);
% 连接各模块
add_line(modelName, [modelName '/Switch1_1'], [modelName '/PWM_Generator1'], 'autorouting', 'on');
add_line(modelName, [modelName '/PWM_Generator1'], [modelName '/Motor1'], 'autorouting', 'on');
add_line(modelName, [modelName '/Motor1'], [modelName '/Voltage_Measurement1'], 'autorouting', 'on');
add_line(modelName, [modelName '/Motor1'], [modelName '/Current_Measurement1'], 'autorouting', 'on');
add_line(modelName, [modelName '/Switch2_1'], [modelName '/PWM_Generator2'], 'autorouting', 'on');
add_line(modelName, [modelName '/PWM_Generator2'], [modelName '/Motor2'], 'autorouting', 'on');
add_line(modelName, [modelName '/Motor2'], [modelName '/Voltage_Measurement2'], 'autorouting', 'on');
add_line(modelName, [modelName '/Motor2'], [modelName '/Current_Measurement2'], 'autorouting', 'on');
add_line(modelName, [modelName '/Current_Measurement1'], [modelName '/Add_Current'], 'autorouting', 'on');
add_line(modelName, [modelName '/Current_Measurement2'], [modelName '/Add_Current'], 'autorouting', 'on');
add_line(modelName, [modelName '/Add_Current'], [modelName '/Product_Current'], 'autorouting', 'on');
add_line(modelName, [modelName '/Product_Current'], [modelName '/PWM_Generator1'], 'autorouting', 'on');
add_line(modelName, [modelName '/Product_Current'], [modelName '/PWM_Generator2'], 'autorouting', 'on');
add_line(modelName, [modelName '/State_Space_Model'], [modelName '/Scope'], 'autorouting', 'on');
% 设置仿真参数
set_param(modelName, 'StopTime', '10');
set_param(modelName, 'Solver', 'ode45');
% 保存模型
save_system(modelName);
% 运行仿真
sim(modelName);
参数设置与仿真运行
1. 参数设置
- 逆变器:配置IGBT模块的导通电阻等参数,并设定PWM频率和占空比。
- 负载:配置电机参数(如额定电压、额定转速等)。
- 传感器:设置电压、电流传感器的采样率和精度。
- 控制器:选择合适的电流均衡控制算法(如下垂控制、主从控制等),并设置相应的参数(如增益系数等)。
2. 仿真设置
- 在Simulink菜单栏中选择
Simulation > Model Configuration Parameters
。 - 设置合适的仿真停止时间和求解器类型(通常选择
ode45
)。
3. 开始仿真
点击工具栏中的“Run”按钮开始仿真,观察仿真结果是否符合预期。可以通过Scope
模块查看各物理量的变化情况(如电压、电流等)以及控制器的输出。
结果分析与优化
1. 观察结果
- 使用示波器观察电压、电流等变化曲线,评估系统的运行状态。
- 分析控制器输出的控制量(如PWM占空比),判断其是否达到了电流均衡效果。
- 计算系统的性能指标(如电流均衡度、环流大小等),评估控制策略的有效性。
例如,如果电流分布不均匀,可能表明控制器参数设置不当;如果存在较大环流,可能需要进一步调整增益系数。
2. 性能评估
- 计算系统的电流均衡度和环流大小,确保其在可接受范围内。
- 对比不同控制器(如下垂控制和主从控制)下的系统响应,寻找最佳控制策略。
3. 参数优化
如果发现某些方面不满足要求,可以通过调整控制器参数来进行优化。也可以尝试其他控制策略或改进系统设计,以进一步提升系统性能。
实例应用:复杂并联运行控制策略仿真
1. 复杂多逆变器并联
实际电力电子系统中,可能存在多个逆变器并联运行的情况。这时需要考虑更多的因素,例如如何处理多个逆变器之间的相互影响,以及如何确保整个系统的稳定性和效率。
2. Simulink建模
- 在Simulink中添加多个逆变器模块,并按照上述方法配置每个逆变器。
- 设计一个统一的控制器,能够同时控制所有逆变器的输出,确保电流均衡和环流抑制。
例如,假设我们有三个逆变器并联运行,可以采用以下结构:
plaintext
深色版本
+-------------------+ +------------------+ +-----------------+ +--------------+
| | | | | | | |
| Inverter_1 |----->| Load |----->| Sensors | | |
| (PWM Signal) | | (Electrical & | | (Voltage, | | |
| | | Mechanical) | | Current) | | |
+-------------------+ +------------------+ +-----------------+ +--------------+
|
v
+------------------+
| |
| Unified |
| Controller |
| (Current |
| Balancing, |
| Circulating |
| Current Suppression)|
| |
+------------------+
|
v
+------------------+
| |
| Performance |
| Evaluation |
| (Current Balance|
| , Circulating |
| Current) |
| |
+------------------+
+-------------------+ +------------------+ +-----------------+ +--------------+
| | | | | | | |
| Inverter_2 |----->| Load |----->| Sensors | | |
| (PWM Signal) | | (Electrical & | | (Voltage, | | |
| | | Mechanical) | | Current) | | |
+-------------------+ +------------------+ +-----------------+ +--------------+
+-------------------+ +------------------+ +-----------------+ +--------------+
| | | | | | | |
| Inverter_3 |----->| Load |----->| Sensors | | |
| (PWM Signal) | | (Electrical & | | (Voltage, | | |
| | | Mechanical) | | Current) | | |
+-------------------+ +------------------+ +-----------------+ +--------------+
3. 参数优化
- 调整控制器的参数,以平衡各个逆变器之间的电流分配。
- 可以通过仿真对比不同参数组合下的系统响应,选择最优方案。
总结
通过上述步骤,我们完成了基于Simulink的电力电子设备的并联运行控制仿真。以下是总结要点:
- 背景介绍:介绍了并联运行的基本概念及其在电力电子系统中的作用。
- 系统架构:详细描述了两个逆变器并联运行系统的并联运行控制策略设计与仿真系统的组成和工作原理,并给出了系统架构视图。
- 建模过程:逐步演示了如何在Simulink中搭建并联运行控制策略模型,包括模块的选择、参数设置及模块间的连接。
- 仿真测试:展示了如何设置仿真参数并运行仿真,以及如何观察和分析仿真结果。
- 优化建议:提出了几种可能的优化方案,帮助读者进一步提升系统的并联运行性能,包括参数调整和复杂多逆变器并联运行的模拟。