Advertisement

手把手教你学simulink(21.2)--Simulink 电力电子场景:基于Simulink的单相光伏并网逆变器系统

阅读量:

目录

项目概述

项目背景

项目目标

系统架构

硬件架构

软件架构

硬件设计

太阳能电池板

DC-DC升压变换器

单相逆变器

软件设计

Simulink模型

控制算法

仿真设置

仿真结果分析

结果分析

项目总结


本研究将在电力电子领域中介绍另一个项目的案例研究。该项目旨在阐述如何利用Simulink进行设计与仿真这一单相光伏并网逆变器系统的构建过程。主要功能是将太阳能电池板产生的直流电转换为交流电后导入电网。

项目概述

项目背景

随着可再生能源的广泛应用, 光伏并网逆变器作为太阳能发电系统的关键组件而被广泛采用。该设备不仅需要实现直流转交流的高效转换,还必须确保输出的交流电符合电网标准,以确保系统的稳定性和可靠性。

项目目标

本项目主要致力于开发一个基于Simulink平台的单相光伏并网逆变器系统。该系统具备高效的能量转换能力。

  1. 搭建单相逆变器模型并进行仿真分析。
  2. 开发最大功率点跟踪(MPPT)算法以优化太阳能电池板的输出功率。
  3. 构建并网控制算法确保并网时逆变器输出的交流电符合电网标准要求。
  4. 经过系统仿真全面评估其性能表现包括动态响应指标以及稳态特性参数。

系统架构

硬件架构
  1. 太阳能电池板:其直流电输出被提供。
  2. DC-DC升压变换器:其作用是将太阳能电池板产生的电压提升至与逆变器输入电压相匹配。
  3. 单相逆变器:其功能是将直流电转换为单相交流电。
  4. 电网:它接受来自逆变器的交流电输入。
  5. 传感器:它的作用包括检测太阳能电池板的电压和电流值以及电网中的电压和电流参数。
软件架构
  1. Simulink模型:基于Simulink构建系统模型并完成仿真过程。
    2. 控制算法:开发并实现MPPT控制器及其并网控制策略。
    3. 数据采集与分析:对仿真数据进行采集、分析以及结果展示。

硬件设计

太阳能电池板
  1. 电池板选择 :选择符合要求的太阳能电池板。
  2. 安装温度传感器装置后会持续监测并记录所述电池板的工作温度。
DC-DC升压变换器
  1. 变换器选择 :选择合适的DC-DC升压转换器(如BOOST转换器)。
  2. 控制电路 :以确保输出电压稳定的设计控制电路用于该变换器。
单相逆变器

配置合适的单相逆变器组件

配置合适的单相逆变器组件

软件设计

Simulink模型
  1. Solar Panel Model: Based on the Solar Panel module library in Simulink, establish a solar panel model.
  2. DC-DC Step-Up Converter Model: Construct a DC-DC step-up converter model using the Power Electronics module library in Simulink.
  3. Single-Phase Inverter Model: Assemble a single-phase inverter model using the Power Electronics module library from Simulink.
  4. Grid Model: Employ the Power System module library from Simulink to build a grid model.
  5. Control Algorithm: Realize the MPPT algorithm and grid-connected control algorithm.
复制代码

matlab

深色版本

复制代码
 % 创建一个新的Simulink模型

    
 new_system('PV_Grid_Tie_Inverter');
    
  
    
 % 添加太阳能电池板模块
    
 add_block('powerlib/Solar Cell/Solar Cell','PV_Grid_Tie_Inverter/Solar Panel');
    
  
    
 % 添加DC-DC升压变换器模块
    
 add_block('powerlib/Power Electronics/Boost Converter','PV_Grid_Tie_Inverter/Boost Converter');
    
  
    
 % 添加单相逆变器模块
    
 add_block('powerlib/Power Electronics/Single-Phase Inverter','PV_Grid_Tie_Inverter/Single-Phase Inverter');
    
  
    
 % 添加电网模块
    
 add_block('powerlib/Electrical Sources/Sinusoidal Voltage','PV_Grid_Tie_Inverter/Grid Voltage');
    
 add_block('powerlib/Electrical Sources/R-L Load','PV_Grid_Tie_Inverter/Grid Load');
    
  
    
 % 添加传感器模块
    
 add_block('powerlib/Sensors and Measurements/Voltage Measurement','PV_Grid_Tie_Inverter/Panel Voltage Sensor');
    
 add_block('powerlib/Sensors and Measurements/Current Measurement','PV_Grid_Tie_Inverter/Panel Current Sensor');
    
 add_block('powerlib/Sensors and Measurements/Voltage Measurement','PV_Grid_Tie_Inverter/Grid Voltage Sensor');
    
 add_block('powerlib/Sensors and Measurements/Current Measurement','PV_Grid_Tie_Inverter/Grid Current Sensor');
    
  
    
 % 添加控制算法模块
    
 add_block('simulink/User-Defined Functions/MATLAB Function','PV_Grid_Tie_Inverter/MPPT Control');
    
 add_block('simulink/User-Defined Functions/MATLAB Function','PV_Grid_Tie_Inverter/Grid Tie Control');
    
  
    
 % 连接模块
    
 connect('PV_Grid_Tie_Inverter/Solar Panel/1','PV_Grid_Tie_Inverter/Boost Converter/1');
    
 connect('PV_Grid_Tie_Inverter/Boost Converter/2','PV_Grid_Tie_Inverter/Single-Phase Inverter/1');
    
 connect('PV_Grid_Tie_Inverter/Single-Phase Inverter/2','PV_Grid_Tie_Inverter/Grid Load/1');
    
 connect('PV_Grid_Tie_Inverter/Grid Voltage/1','PV_Grid_Tie_Inverter/Grid Load/2');
    
 connect('PV_Grid_Tie_Inverter/Panel Voltage Sensor/1','PV_Grid_Tie_Inverter/Solar Panel/2');
    
 connect('PV_Grid_Tie_Inverter/Panel Current Sensor/1','PV_Grid_Tie_Inverter/Solar Panel/3');
    
 connect('PV_Grid_Tie_Inverter/Grid Voltage Sensor/1','PV_Grid_Tie_Inverter/Grid Voltage/2');
    
 connect('PV_Grid_Tie_Inverter/Grid Current Sensor/1','PV_Grid_Tie_Inverter/Grid Load/3');
    
 connect('PV_Grid_Tie_Inverter/Panel Voltage Sensor/2','PV_Grid_Tie_Inverter/MPPT Control/1');
    
 connect('PV_Grid_Tie_Inverter/Panel Current Sensor/2','PV_Grid_Tie_Inverter/MPPT Control/2');
    
 connect('PV_Grid_Tie_Inverter/Grid Voltage Sensor/2','PV_Grid_Tie_Inverter/Grid Tie Control/1');
    
 connect('PV_Grid_Tie_Inverter/Grid Current Sensor/2','PV_Grid_Tie_Inverter/Grid Tie Control/2');
    
 connect('PV_Grid_Tie_Inverter/MPPT Control/1','PV_Grid_Tie_Inverter/Boost Converter/Control Input');
    
 connect('PV_Grid_Tie_Inverter/Grid Tie Control/1','PV_Grid_Tie_Inverter/Single-Phase Inverter/Control Input');
    
  
    
 % 设置参数
    
 set_param('PV_Grid_Tie_Inverter/Solar Panel','NominalPower','300');
    
 set_param('PV_Grid_Tie_Inverter/Solar Panel','NominalVoltage','37');
    
 set_param('PV_Grid_Tie_Inverter/Boost Converter','DutyCycle','0.5');
    
 set_param('PV_Grid_Tie_Inverter/Grid Voltage','Amplitude','230');
    
 set_param('PV_Grid_Tie_Inverter/Grid Voltage','Frequency','50');
控制算法
  1. MPPT算法基于增量电导法(Incremental Conductance Method)实现。
  2. 该并网控制算法通过集成锁相环(PLL)和PI控制器来调节逆变器输出的交流电与电网同步。
复制代码

matlab

深色版本

复制代码
 function duty_cycle = mppt_control(v_pv, i_pv, v_pv_prev, i_pv_prev)

    
     % 增量电导法
    
     delta_v = v_pv - v_pv_prev;
    
     delta_i = i_pv - i_pv_prev;
    
     g_pv = i_pv / v_pv;
    
     g_pv_prev = i_pv_prev / v_pv_prev;
    
  
    
     if delta_i * v_pv > 0
    
     duty_cycle = 0.5 + 0.01; % 增加占空比
    
     elseif delta_i * v_pv < 0
    
     duty_cycle = 0.5 - 0.01; % 减小占空比
    
     else
    
     duty_cycle = 0.5; % 保持不变
    
     end
    
 end
    
  
    
 function control_signal = grid_tie_control(v_grid, i_grid, v_grid_ref)
    
     % 锁相环(PLL)
    
     omega = atan2(v_grid(2), v_grid(1)) / (2 * pi * 50); % 计算频率
    
     theta = atan2(v_grid(2), v_grid(1)); % 计算相位
    
  
    
     % PI控制器
    
     Kp = 1; % 比例增益
    
     Ki = 0.1; % 积分增益
    
  
    
     % 电压误差
    
     v_error = v_grid_ref - v_grid(1);
    
  
    
     % 控制信号
    
     control_signal = pid_controller(v_error, Kp, Ki, theta);
    
  
    
     function output = pid_controller(error, Kp, Ki, theta)
    
     persistent integral_error prev_error
    
     if isempty(integral_error)
    
         integral_error = 0;
    
     end
    
     if isempty(prev_error)
    
         prev_error = 0;
    
     end
    
  
    
     integral_error = integral_error + error * 0.01; % 时间步长
    
     derivative_error = (error - prev_error) / 0.01;
    
  
    
     output = Kp * error + Ki * integral_error;
    
     prev_error = error;
    
     end
    
 end

仿真设置

  1. Simulation Parameters: Configure the simulation time, step size, and solver settings.
  2. Data Collection: Introduce the Scope block and To Workspace block to implement data collection during simulation.
复制代码

matlab

深色版本

复制代码
 % 设置仿真参数

    
 set_param('PV_Grid_Tie_Inverter','StopTime','10');
    
 set_param('PV_Grid_Tie_Inverter','Solver','ode45');
    
  
    
 % 添加Scope模块
    
 add_block('simulink/Sinks/Scope','PV_Grid_Tie_Inverter/Voltage Scope');
    
 add_block('simulink/Sinks/Scope','PV_Grid_Tie_Inverter/Current Scope');
    
  
    
 % 添加To Workspace模块
    
 add_block('simulink/Sinks/To Workspace','PV_Grid_Tie_Inverter/Voltage Data');
    
 add_block('simulink/Sinks/To Workspace','PV_Grid_Tie_Inverter/Current Data');
    
  
    
 % 连接Scope模块
    
 connect('PV_Grid_Tie_Inverter/Grid Voltage Sensor/2','PV_Grid_Tie_Inverter/Voltage Scope/1');
    
 connect('PV_Grid_Tie_Inverter/Grid Current Sensor/2','PV_Grid_Tie_Inverter/Current Scope/1');
    
  
    
 % 连接To Workspace模块
    
 connect('PV_Grid_Tie_Inverter/Grid Voltage Sensor/2','PV_Grid_Tie_Inverter/Voltage Data/1');
    
 connect('PV_Grid_Tie_Inverter/Grid Current Sensor/2','PV_Grid_Tie_Inverter/Current Data/1');

仿真结果分析

  1. 电压与电流波形特征:研究逆变器输出中的电压与电流波形特征,并评估其对并网控制策略表现的影响。
  2. 工作状态下的变化规律:考察太阳能电池板工作状态下的电压与电流变化规律,并评估单极性最大功率跟踪算法的作用。
  3. 运行特征研究:研究系统在稳态条件下的运行特征,并涵盖其在电压稳态误差及电流稳态误差影响下的表现。
复制代码

matlab

深色版本

复制代码
 % 运行仿真

    
 sim('PV_Grid_Tie_Inverter');
    
  
    
 % 获取仿真数据
    
 voltage_data = out.Voltage_Data.signals.values;
    
 current_data = out.Current_Data.signals.values;
    
  
    
 % 绘制电压波形
    
 figure;
    
 plot(voltage_data(:,1), voltage_data(:,2));
    
 xlabel('Time (s)');
    
 ylabel('Voltage (V)');
    
 title('Grid Voltage');
    
  
    
 % 绘制电流波形
    
 figure;
    
 plot(current_data(:,1), current_data(:,2));
    
 xlabel('Time (s)');
    
 ylabel('Current (A)');
    
 title('Grid Current');
    
  
    
 % 绘制太阳能电池板的电压和电流
    
 figure;
    
 subplot(2,1,1);
    
 plot(voltage_data(:,1), voltage_data(:,2));
    
 xlabel('Time (s)');
    
 ylabel('Voltage (V)');
    
 title('Solar Panel Voltage');
    
  
    
 subplot(2,1,2);
    
 plot(current_data(:,1), current_data(:,2));
    
 xlabel('Time (s)');
    
 ylabel('Current (A)');
    
 title('Solar Panel Current');

结果分析

  1. 考察逆变器输出端
    考察逆变器输出端的电压与电流波形特征,并评估并网控制策略的有效性。其理想形态应为正弦曲线,并与主电源电网电压保持一致。
  2. 研究太阳能电池组件两端
    研究太阳能电池组件两端电压及流经其的电流变化规律,并检验最大功率跟踪算法的工作性能。系统中涉及的主要稳态误差项目应维持在最大输出功率状态。
  3. 考察系统运行时的各项
    考察系统运行时的各项稳态参数指标及其相互关系,并分析系统的总体稳定性指标表现情况。其中涉及的主要稳态误差项目应维持在最大输出功率状态。

项目总结

通过本项目的实施,在深入研究与实践的基础上,我们圆满完成了基于Simulink平台的单相光伏并网逆变器系统的总体设计与实现工作。该项目不仅完整地阐述了从系统建模到仿真验证的整体流程,并且在实际应用中取得了显著的效果;这一开发实践为光伏并网逆变器的技术创新提供了重要的参考价值

全部评论 (0)

还没有任何评论哟~