Advertisement

手把手教你学simulink(94.4)--三相逆变器实例:基于Simulink的风力发电系统场景下的三相逆变器建模仿真

阅读量:

目录

基于Simulink的风力发电系统场景下的三相逆变器建模仿真

1. 背景介绍

1.1 项目背景

1.2 系统描述

1.3 应用场景

2. 具体的仿真建模过程

2.1 系统模型构建

2.1.1 永磁同步发电机(PMSG)模型

2.1.2 整流器模型

2.1.3 逆变桥模型

2.1.4 控制器模型

2.1.5 滤波器模型

2.1.6 电网接口模型

2.2 连接各模块

2.3 添加输出显示

3. 仿真设置与运行

3.1 设置仿真参数

3.2 运行仿真

3.3 分析仿真结果

4. 结果分析与讨论

4.1 结果分析

4.2 讨论

5. 总结

附录:完整代码示例


基于Simulink的风力发电系统场景下的三相逆变器建模仿真


1. 背景介绍
1.1 项目背景

伴随全球对可再生能源需求的持续增长

本项目的目标在于利用Simulink平台对风力发电系统的三相逆变器进行建模和仿真实验。主要关注其动态过程特性和稳态性能,并分析并网系统的性能表现。

1.2 系统描述

基于风力发电系统的三相逆变器主要包括以下几个部分:

  • 永磁同步式发电机系统(PMSG):基于风能的发电装置,在运行状态下持续产生稳定的三相交流电。
    • 整流器:将发电机产生的三相交流电转化为直流电能源。
    • 逆变桥:主要由六个开关器件构成的主要电路组件,在工作时将直流电压转化为符合要求的三相交流电压。
    • 控制器:通过发送控制指令来调节逆变桥的工作状态,并精确调节输出电压和调制频率以满足系统需求。
    • 滤波器:采用先进的滤波技术去除电源中的高频噪声成分,并有效去除谐波干扰能量来源。
    • 网络接口:该模块主要负责模拟电网特性,并根据实时反馈信息自动优化运行状态以实现与主电网的有效连接与能量共享。
1.3 应用场景
  • 分散式发电技术:在边远地区或小城镇中部署多台风力发电机阵列以提供稳定的电力支持。
  • 大型风电场系统:通过多台风力发电机协同运作构成大型风电场,并网至电网获取电能。
  • 综合能源系统框架:将多种可再生能源(如太阳能)与传统能源相结合构建综合能源系统框架,在提升供能系统的稳定性和可靠性水平的同时实现资源高效利用。

2. 具体的仿真建模过程
2.1 系统模型构建

在Simulink环境中, 我们将依次建立永磁同步发电机(PMSG)、整流器、逆变桥、控制器、滤波器以及与电网接口的模块, 并将其整合为一套完整的风力发电系统模型。

2.1.1 永磁同步发电机(PMSG)模型

该系统采用PMSG技术以实现风能向电能的转化。我们可以通过Simulink平台利用Permanent Magnet Synchronous Machine模块来模拟该系统的运行行为。

复制代码

matlab

深色版本

复制代码
 % 添加PMSG模型

    
 add_block('simulink/Simscape/Foundation Library/Electrical/Machines/Permanent Magnet Synchronous Machine', [modelName '/PMSG']);
    
 set_param([modelName '/PMSG'], 'NominalPower', '1000'); % 设置额定功率为1000W
    
 set_param([modelName '/PMSG'], 'NominalVoltage', '400'); % 设置额定电压为400V
    
 set_param([modelName '/PMSG'], 'NominalCurrent', '2.5'); % 设置额定电流为2.5A
    
 set_param([modelName '/PMSG'], 'NominalSpeed', '1500'); % 设置额定转速为1500rpm
    
 set_param([modelName '/PMSG'], 'NominalFrequency', '50'); % 设置额定频率为50Hz
2.1.2 整流器模型

该系统中采用整流器将PMSG产生的交流电变换成直流电,并通过Universal Bridge模块实现全波整流器的配置方式。

复制代码

matlab

深色版本

复制代码
 % 添加整流器模型

    
 add_block('simulink/Simscape/Electrical/Specialized Technology/Fundamental Blocks/Power Electronics/Universal Bridge', [modelName '/Rectifier']);
    
 set_param([modelName '/Rectifier'], 'SnubberResistance', 'inf'); % 无缓冲电阻
    
 set_param([modelName '/Rectifier'], 'SnubberCapacitance', '0'); % 无缓冲电容
    
 set_param([modelName '/Rectifier'], 'Ron', '0.01'); % 开关导通电阻
    
 set_param([modelName '/Rectifier'], 'Lon', '0'); % 开关导通电感
    
 set_param([modelName '/Rectifier'], 'Roff', '1e6'); % 开关截止电阻
    
 set_param([modelName '/Rectifier'], 'Loff', '0'); % 开关截止电感
    
 set_param([modelName '/Rectifier'], 'Configuration', 'Full wave rectifier (6 legs)'); % 配置为全波整流器
2.1.3 逆变桥模型

逆变桥由六个关键组件构成,并且这些组件通常包括IGBT或MOSFET两种类型。我们能够借助Universal Bridge模块来模拟其运行机制。

复制代码

matlab

深色版本

复制代码
 % 添加逆变桥模型

    
 add_block('simulink/Simscape/Electrical/Specialized Technology/Fundamental Blocks/Power Electronics/Universal Bridge', [modelName '/InverterBridge']);
    
 set_param([modelName '/InverterBridge'], 'SnubberResistance', 'inf'); % 无缓冲电阻
    
 set_param([modelName '/InverterBridge'], 'SnubberCapacitance', '0'); % 无缓冲电容
    
 set_param([modelName '/InverterBridge'], 'Ron', '0.01'); % 开关导通电阻
    
 set_param([modelName '/InverterBridge'], 'Lon', '0'); % 开关导通电感
    
 set_param([modelName '/InverterBridge'], 'Roff', '1e6'); % 开关截止电阻
    
 set_param([modelName '/InverterBridge'], 'Loff', '0'); % 开关截止电感
    
 set_param([modelName '/InverterBridge'], 'Configuration', '3-level bridge (6 legs)'); % 三相逆变桥配置
2.1.4 控制器模型

控制器负责发送控制信号至逆变桥开关以调节其动作,并旨在通过精确调节输出电压与频率来优化系统性能。通常采用比例积分(PI)控制系统来实现精确调节。

复制代码

matlab

深色版本

复制代码
 % 添加PI控制器模型

    
 add_block('simulink/Continuous/PID Controller', [modelName '/PIDController_Voltage']);
    
 set_param([modelName '/PIDController_Voltage'], 'P', '10'); % 设置比例系数
    
 set_param([modelName '/PIDController_Voltage'], 'I', '0.1'); % 设置积分系数
    
 set_param([modelName '/PIDController_Voltage'], 'D', '0'); % 设置微分系数
    
 set_param([modelName '/PIDController_Voltage'], 'SampleTime', '1e-4'); % 设置采样时间为100us
    
  
    
 add_block('simulink/Continuous/PID Controller', [modelName '/PIDController_Frequency']);
    
 set_param([modelName '/PIDController_Frequency'], 'P', '5'); % 设置比例系数
    
 set_param([modelName '/PIDController_Frequency'], 'I', '0.05'); % 设置积分系数
    
 set_param([modelName '/PIDController_Frequency'], 'D', '0'); % 设置微分系数
    
 set_param([modelName '/PIDController_Frequency'], 'SampleTime', '1e-4'); % 设置采样时间为100us
2.1.5 滤波器模型

滤波网络能够消除输出电压的纹波并抑制高频谐波。我们可以通过设计LC滤流网络来实现这一目标。

复制代码

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.1.6 电网接口模型

电力系统接口用于模拟电力系统条件,以确保逆变器输出符合并网技术的要求。我们可以采用AC电压源模块来模拟电网电压。

复制代码

matlab

深色版本

复制代码
 % 添加电网接口模型

    
 add_block('simulink/Sources/AC Voltage Source', [modelName '/GridInterface']);
    
 set_param([modelName '/GridInterface'], 'Amplitude', '380'); % 设置电网电压幅值为380V
    
 set_param([modelName '/GridInterface'], 'Frequency', '50'); % 设置电网频率为50Hz
2.2 连接各模块

将上述各个模块连接起来,形成完整的风力发电系统。

复制代码

matlab

深色版本

复制代码
 % 连接PMSG到整流器

    
 add_line(modelName, '/PMSG/1', '/Rectifier/1', 'autorouting', 'on');
    
  
    
 % 连接整流器到逆变桥
    
 add_line(modelName, '/Rectifier/1', '/InverterBridge/1', 'autorouting', 'on');
    
  
    
 % 连接PI控制器到逆变桥的控制端口
    
 add_line(modelName, '/PIDController_Voltage/1', '/InverterBridge/Control', 'autorouting', 'on');
    
 add_line(modelName, '/PIDController_Frequency/1', '/InverterBridge/Control', 'autorouting', 'on');
    
  
    
 % 连接逆变桥输出到LC滤波器
    
 add_line(modelName, '/InverterBridge/1', '/Inductor/1', 'autorouting', 'on');
    
 add_line(modelName, '/Inductor/1', '/Capacitor/1', 'autorouting', 'on');
    
  
    
 % 连接LC滤波器输出到电网接口
    
 add_line(modelName, '/Capacitor/1', '/GridInterface/1', 'autorouting', 'on');
2.3 添加输出显示

使用Scope块显示系统输出。

复制代码

matlab

深色版本

复制代码
 % 添加Scope块显示系统输出

    
 add_block('simulink/Sinks/Scope', [modelName '/Scope']);
    
 connect_blocks(modelName, {'/PMSG', '/Scope'}); % 连接PMSG输出到Scope
    
 connect_blocks(modelName, {'/Rectifier', '/Scope'}); % 连接整流器输出到Scope
    
 connect_blocks(modelName, {'/PIDController_Voltage', '/Scope'}); % 连接电压PID控制器输出到Scope
    
 connect_blocks(modelName, {'/PIDController_Frequency', '/Scope'}); % 连接频率PID控制器输出到Scope
    
 connect_blocks(modelName, {'/InverterBridge', '/Scope'}); % 连接逆变桥输出到Scope
    
 connect_blocks(modelName, {'/Capacitor', '/Scope'}); % 连接滤波器输出到Scope
    
 connect_blocks(modelName, {'/GridInterface', '/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窗口中,你可以看到以下主要曲线:

PMSG输出信号(PMSG Output Signals) :展示了PMSG输出的三相交流电压与电流。
整流器输出信号(Rectifier Output Signals) :呈现了整流器输出的直流电压波形。
电压PID控制器输出信号(Voltage PID Controller Output Signals) :显示了电压PID控制器产生的控制指令。
频率PID控制器输出信号(Frequency PID Controller Output Signals) :揭示了频率PID控制器所发出的控制命令。
逆变桥输出信号(Inverter Bridge Output Signals) :展示了逆变桥模块提供的三相交流电源参数。
滤波器输出电压(Filtered Output Voltage) :记录了经过LC滤波电路处理后的电网侧电压变化特征。
电网接口输出信号(Grid Interface Output Signals) :记录了电网侧采集到的电压与电流变化信息。

通过这些曲线,你可以评估系统的性能:

  • 并网性能:评估逆变器输出是否符合并网标准;包括幅值、频率及相位的一致性。
    • 动态特性:分析逆变器对负载波动或参考输入变化的动态响应特性。
    • 电压波形特征:考察输出电压波形与理想正弦波的高度一致性。
    • 系统稳定性:检验系统在多种工作状态下的稳定性表现。
4.2 讨论

假如你旨在考察逆变器在突然变化下的动态反应速度,并注意其反应情况,则可以在风速突变时评估逆变器的动态响应速度并观察其反应效果

  • 电网接入质量:若逆变器输出符合电网接入规范,则说明该系统具备优异的电网连接能力。
    • 动态响应特性:若逆变器对风速变化表现出较强的动态适应能力,则说明该系统具备较强的动态调节能力。
    • 电压波形品质:若输出电压波形与理想正弦波 waveform极为接近,则说明该滤波器设计达到了较高水平。
    • 鲁棒性:若在面对风速波动时展现出稳定的运行状态,则证明系统的鲁棒性能表现突出。

5. 总结

在本次项目实施过程中, 我们完成了于Simulink环境中构建了一个基于风力发电系统的三相逆变器仿真模型,并对该模型进行了全面的仿真实验与深入分析. 该模型有助于我们深入了解逆变器在风力发电系统中的运行状态特征, 并能进一步推动相关技术的发展与实践应用.

请特别注意此示例代码是一个简化的版本。其中,在实际应用中可能会涉及更为复杂的模型架构以及更加细致的处理流程。比如:

  • 电机特性 :考虑到PMSG具有的具体特性包括温度变化引起的电阻值变化以及磁饱和带来的阻抗非线性等。
  • 电源特性 :考虑到电源运行时的稳定性表现和效率损耗问题,并建立相应的损耗评估模型。
  • 控制器优化 :基于不同应用场景的需求设定,在必要时需要对控制器参数进行调整或优化设计,并探索应用模糊控制或自适应控制等更高阶的控制策略以提升性能。
  • 更多传感器数据 :可以通过增加包括温度传感器和电流传感器在内的多种传感器设备来进一步提高系统性能。

附录:完整代码示例

在此基础上, 我们针对风力发电系统的场景构建了一个三相逆变器仿真模型的过程, 并涉及到了模型创建. 参数设置. 模块连接以及仿真运行

复制代码

matlab

深色版本

复制代码
 % Step 1: Define model name and create a new system

    
 modelName = 'ThreePhaseInverter_WindPower';
    
 new_system(modelName);
    
 open_system(modelName);
    
  
    
 % Step 2: Add PMSG block
    
 add_block('simulink/Simscape/Foundation Library/Electrical/Machines/Permanent Magnet Synchronous Machine', [modelName '/PMSG']);
    
 set_param([modelName '/PMSG'], 'NominalPower', '1000'); % 设置额定功率为1000W
    
 set_param([modelName '/PMSG'], 'NominalVoltage', '400'); % 设置额定电压为400V
    
 set_param([modelName '/PMSG'], 'NominalCurrent', '2.5'); % 设置额定电流为2.5A
    
 set_param([modelName '/PMSG'], 'NominalSpeed', '1500'); % 设置额定转速为1500rpm
    
 set_param([modelName '/PMSG'], 'NominalFrequency', '50'); % 设置额定频率为50Hz
    
  
    
 % Step 3: Add Rectifier block
    
 add_block('simulink/Simscape/Electrical/Specialized Technology/Fundamental Blocks/Power Electronics/Universal Bridge', [modelName '/Rectifier']);
    
 set_param([modelName '/Rectifier'], 'SnubberResistance', 'inf'); % 无缓冲电阻
    
 set_param([modelName '/Rectifier'], 'SnubberCapacitance', '0'); % 无缓冲电容
    
 set_param([modelName '/Rectifier'], 'Ron', '0.01'); % 开关导通电阻
    
 set_param([modelName '/Rectifier'], 'Lon', '0'); % 开关导通电感
    
 set_param([modelName '/Rectifier'], 'Roff', '1e6'); % 开关截止电阻
    
 set_param([modelName '/Rectifier'], 'Loff', '0'); % 开关截止电感
    
 set_param([modelName '/Rectifier'], 'Configuration', 'Full wave rectifier (6 legs)'); % 配置为全波整流器
    
  
    
 % Step 4: Add Inverter Bridge block
    
 add_block('simulink/Simscape/Electrical/Specialized Technology/Fundamental Blocks/Power Electronics/Universal Bridge', [modelName '/InverterBridge']);
    
 set_param([modelName '/InverterBridge'], 'SnubberResistance', 'inf'); % 无缓冲电阻
    
 set_param([modelName '/InverterBridge'], 'SnubberCapacitance', '0'); % 无缓冲电容
    
 set_param([modelName '/InverterBridge'], 'Ron', '0.01'); % 开关导通电阻
    
 set_param([modelName '/InverterBridge'], 'Lon', '0'); % 开关导通电感
    
 set_param([modelName '/InverterBridge'], 'Roff', '1e6'); % 开关截止电阻
    
 set_param([modelName '/InverterBridge'], 'Loff', '0'); % 开关截止电感
    
 set_param([modelName '/InverterBridge'], 'Configuration', '3-level bridge (6 legs)'); % 三相逆变桥配置
    
  
    
 % Step 5: Add PI Controller blocks
    
 add_block('simulink/Continuous/PID Controller', [modelName '/PIDController_Voltage']);
    
 set_param([modelName '/PIDController_Voltage'], 'P', '10'); % 设置比例系数
    
 set_param([modelName '/PIDController_Voltage'], 'I', '0.1'); % 设置积分系数
    
 set_param([modelName '/PIDController_Voltage'], 'D', '0'); % 设置微分系数
    
 set_param([modelName '/PIDController_Voltage'], 'SampleTime', '1e-4'); % 设置采样时间为100us
    
  
    
 add_block('simulink/Continuous/PID Controller', [modelName '/PIDController_Frequency']);
    
 set_param([modelName '/PIDController_Frequency'], 'P', '5'); % 设置比例系数
    
 set_param([modelName '/PIDController_Frequency'], 'I', '0.05'); % 设置积分系数
    
 set_param([modelName '/PIDController_Frequency'], 'D', '0'); % 设置微分系数
    
 set_param([modelName '/PIDController_Frequency'], 'SampleTime', '1e-4'); % 设置采样时间为100us
    
  
    
 % Step 6: 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 7: Add Grid Interface block
    
 add_block('simulink/Sources/AC Voltage Source', [modelName '/GridInterface']);
    
 set_param([modelName '/GridInterface'], 'Amplitude', '380'); % 设置电网电压幅值为380V
    
 set_param([modelName '/GridInterface'], 'Frequency', '50'); % 设置电网频率为50Hz
    
  
    
 % Step 8: Connect blocks
    
 % 连接PMSG到整流器
    
 add_line(modelName, '/PMSG/1', '/Rectifier/1', 'autorouting', 'on');
    
  
    
 % 连接整流器到逆变桥
    
 add_line(modelName, '/Rectifier/1', '/InverterBridge/1', 'autorouting', 'on');
    
  
    
 % 连接PI控制器到逆变桥的控制端口
    
 add_line(modelName, '/PIDController_Voltage/1', '/InverterBridge/Control', 'autorouting', 'on');
    
 add_line(modelName, '/PIDController_Frequency/1', '/InverterBridge/Control', 'autorouting', 'on');
    
  
    
 % 连接逆变桥输出到LC滤波器
    
 add_line(modelName, '/InverterBridge

全部评论 (0)

还没有任何评论哟~