Advertisement

手把手教你学simulink实例--基于Simulink的光伏发电系统建模与仿真

阅读量:

目录

基于Simulink的光伏发电系统建模与仿真

1. 背景介绍

1.1 项目背景

2. 系统建模与仿真

2.1 光伏发电系统组成

2.2 光伏阵列模型

2.3 DC-DC变换器模型

2.4 最大功率点跟踪(MPPT)控制器

2.5 逆变器模型

3. Simulink仿真模型

3.1 创建Simulink模型

3.2 添加模块

3.2.1 光伏阵列模块

3.2.2 MPPT控制器

3.2.3 DC-DC变换器

3.3 连接模块

3.4 设置仿真参数

4. 示例代码片段

5. 结束语


基于Simulink的光伏发电系统建模与仿真


1. 背景介绍
1.1 项目背景

光伏发电系统的主要作用是将太阳能转化为电能,并被归类为一种清洁能源技术

本项目旨在建立一个完整且精确的光伏发电系统模型,并涵盖光伏阵列、DC-DC变换器、逆变器以及最大功率点跟踪(MPPT)控制器等关键组件;随后借助仿真软件对系统的运行性能进行验证以确保设计的有效性


2. 系统建模与仿真
2.1 光伏发电系统组成

光伏发电系统通常由以下几个部分组成:

  1. 光伏系统的主要功能是将太阳能转化为直流电能。
  2. DC-DC转换器的作用是根据负载需求调节光伏阵列的输出电压。
  3. 逆变器的功能是将直流电转换为交流电以供电网或负载使用。
  4. MPPT控制器通过实时调整工作点来最大化光伏系统的输出功率。
  5. 该传感器网络用于采集光照强度、温度等关键环境参数。

2.2 光伏阵列模型

光伏阵列的输出特性可以用以下数学模型描述:

电流-电压关系
描述光伏阵列在不同光照强度和温度下的输出特性:

I=Iph−I0⋅[exp⁡(V+I⋅Rsn⋅VT)−1]−V+I⋅RsRshI=Iph​−I0​⋅[exp(n⋅VT​V+I⋅Rs​​)−1]−Rs​hV+I⋅Rs​​

其中:

  • II:输出电流的符号
    其中II被定义为电路中输出端的电流值。

  • VV:输出电压的符号
    VV被定义为电路中输出端的电压值。

  • Iph(光生电流):光生效应产生的电流
    Iph被定义为在光照作用下产生的光生电流量。

  • I0(二极管反向饱和电流):二极管反向工作时的饱和电流
    I0被定义为二极管在反向截止状态下的饱和漏current.

  • Rs(串联电阻):电路中的串联电阻
    Rs被定义为连接在电源两端的串联电阻值。

  • Rsh(并联电阻):电路中的并联电阻
    Rsh被定义为连接在电源两端并联使用的电阻值。

  • nn(二极管理想因子):二极管的理想因素
    nn被定义为表征二极管理想特性的无量纲参数。

  • VTVT(热电压):温度相关的电压常数
    VT VT被称为温度相关的基本电压常数。

光照强度与温度的重要性

光照强度与温度的重要性

Iph=Isc⋅GGrefIph​=Isc​⋅Gref​G​

Voc=Voc,ref⋅[1−α⋅(Tc−Tref)]Voc​=Voc,ref​⋅[1−α⋅(Tc​−Tref​)]

其中:

  • GG: 真实的光照强度
    • GrefGref: 基准光照下的入射光强
    • TcTc: 电池工作状态下的温度
    • TrefTref: 基准环境温度
    • αα: 额定电压下的温控系数

2.3 DC-DC变换器模型

常见的DC-DC变换器拓扑结构有三种:boost型、buck型及buck-boost型电路。其中一种是boost变换器,在此情况下其数学模型描述为:

电感电流方程

L⋅dILdt=Vin−Vout⋅DL⋅dtdIL​​=Vin​−Vout​⋅D

输出电压方程

C⋅dVoutdt=IL1−D−IloadC⋅dtdVout​​=1−DIL​​−Iload​

其中,DD 为占空比,LL 为电感值,CC 为电容值。


2.4 最大功率点跟踪(MPPT)控制器

为了动态优化光伏系统的发电效率并实现能效最大化,在系统运行过程中通过实时调整工作点来实现最佳能量捕获。现有技术中常用的有:

  1. 动态变化观测技术(P &O):通过动态调整充荷率并分析功率变化来定位最大输出功率位置。
  2. 增量式电导分析:基于光伏阵列的电导特性确定最佳输出位置。
  3. 模糊逻辑调节方法:采用预设的模糊逻辑关系模型用于自适应MPPT调节过程。

2.5 逆变器模型

逆变器可将直流电转换为交流电;常用的拓扑结构主要涉及单相全桥型和三相型设计;其控制策略主要包括:

  1. PWM技术:能够通过调节开关信号的时间比例来实现对电压波形的精准控制。
  2. PLL系统:确保逆变器输出频率与电网频率保持高度一致。

3. Simulink仿真模型
3.1 创建Simulink模型
  1. 打开MATLAB并新建一个Simulink模型文件。
  2. 定义模型名称为PV_System.
复制代码

matlab

深色版本

复制代码
 modelName = 'PV_System';

    
 new_system(modelName);
    
 open_system(modelName);
3.2 添加模块
3.2.1 光伏阵列模块

定义光伏阵列模型,模拟其输出特性。

复制代码

matlab

深色版本

复制代码
 add_block('simulink/User-Defined Functions/Matlab Function', [modelName '/PV_Array']);

    
 set_param([modelName '/PV_Array'], 'Mask', 'on');
    
 set_param([modelName '/PV_Array'], 'MaskDisplay', 'PV Array');
    
  
    
 % 在Matlab Function中定义光伏阵列模型
    
 function [I_out] = fcn(V_out, G, Tc)
    
     % 参数初始化
    
     Isc = 8; % 短路电流 (A)
    
     Voc = 21; % 开路电压 (V)
    
     Imp = 7; % 最大功率点电流 (A)
    
     Vmp = 17; % 最大功率点电压 (V)
    
     alpha = -0.004; % 开路电压温度系数
    
     beta = 0.0005; % 短路电流温度系数
    
     
    
     % 温度修正
    
     Voc_temp = Voc * (1 + alpha * (Tc - 25));
    
     Isc_temp = Isc * (1 + beta * (Tc - 25));
    
     
    
     % 光照强度修正
    
     Isc_light = Isc_temp * (G / 1000);
    
     Imp_light = Imp * (G / 1000);
    
     
    
     % 拟合输出电流
    
     if V_out <= 0
    
     I_out = Isc_light;
    
     elseif V_out >= Voc_temp
    
     I_out = 0;
    
     else
    
     I_out = polyval([Imp_light / (Vmp^2), -2*Imp_light/Vmp, Isc_light], V_out);
    
     end
    
 end
3.2.2 MPPT控制器

定义MPPT控制器,实现最大功率点跟踪。

复制代码

matlab

深色版本

复制代码
 add_block('simulink/User-Defined Functions/Matlab Function', [modelName '/MPPT_Controller']);

    
 set_param([modelName '/MPPT_Controller'], 'Mask', 'on');
    
 set_param([modelName '/MPPT_Controller'], 'MaskDisplay', 'MPPT Controller');
    
  
    
 % 在Matlab Function中定义MPPT控制器
    
 function [D] = fcn(P_prev, P_curr, D_prev)
    
     if P_curr > P_prev
    
     D = D_prev + 0.01; % 增加占空比
    
     else
    
     D = D_prev - 0.01; % 减小占空比
    
     end
    
 end
3.2.3 DC-DC变换器

定义DC-DC变换器模型,调节光伏阵列输出电压。

复制代码

matlab

深色版本

复制代码
 add_block('simulink/User-Defined Functions/Matlab Function', [modelName '/DC_DC_Converter']);

    
 set_param([modelName '/DC_DC_Converter'], 'Mask', 'on');
    
 set_param([modelName '/DC_DC_Converter'], 'MaskDisplay', 'DC-DC Converter');
    
  
    
 % 在Matlab Function中定义DC-DC变换器
    
 function [V_out] = fcn(V_in, D)
    
     V_out = V_in / (1 - D);
    
 end
3.3 连接模块

将各个模块按照系统框图连接起来。

复制代码

matlab

深色版本

复制代码
 % 连接光伏阵列到DC-DC变换器

    
 add_line(modelName, '/PV_Array/1', '/DC_DC_Converter/1', 'autorouting', 'on');
    
  
    
 % 连接DC-DC变换器到MPPT控制器
    
 add_line(modelName, '/DC_DC_Converter/1', '/MPPT_Controller/1', 'autorouting', 'on');
3.4 设置仿真参数

设置仿真时间为60秒。

复制代码

matlab

深色版本

复制代码
 set_param(modelName, 'StopTime', '60'); % 设置仿真时间为60秒

    
 save_system(modelName); % 保存模型

4. 示例代码片段

以下是一个完整的基于Simulink的光伏发电系统仿真过程。

复制代码

matlab

深色版本

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

    
 modelName = 'PV_System';
    
 new_system(modelName);
    
 open_system(modelName);
    
  
    
 % Step 2: Add PV Array Module
    
 add_block('simulink/User-Defined Functions/Matlab Function', [modelName '/PV_Array']);
    
 set_param([modelName '/PV_Array'], 'Mask', 'on');
    
 set_param([modelName '/PV_Array'], 'MaskDisplay', 'PV Array');
    
  
    
 % 在Matlab Function中定义光伏阵列模型
    
 function [I_out] = fcn(V_out, G, Tc)
    
     % 参数初始化
    
     Isc = 8; % 短路电流 (A)
    
     Voc = 21; % 开路电压 (V)
    
     Imp = 7; % 最大功率点电流 (A)
    
     Vmp = 17; % 最大功率点电压 (V)
    
     alpha = -0.004; % 开路电压温度系数
    
     beta = 0.0005; % 短路电流温度系数
    
     
    
     % 温度修正
    
     Voc_temp = Voc * (1 + alpha * (Tc - 25));
    
     Isc_temp = Isc * (1 + beta * (Tc - 25));
    
     
    
     % 光照强度修正
    
     Isc_light = Isc_temp * (G / 1000);
    
     Imp_light = Imp * (G / 1000);
    
     
    
     % 拟合输出电流
    
     if V_out <= 0
    
     I_out = Isc_light;
    
     elseif V_out >= Voc_temp
    
     I_out = 0;
    
     else
    
     I_out = polyval([Imp_light / (Vmp^2), -2*Imp_light/Vmp, Isc_light], V_out);
    
     end
    
 end
    
  
    
 % Step 3: Add MPPT Controller
    
 add_block('simulink/User-Defined Functions/Matlab Function', [modelName '/MPPT_Controller']);
    
 set_param([modelName '/MPPT_Controller'], 'Mask', 'on');
    
 set_param([modelName '/MPPT_Controller'], 'MaskDisplay', 'MPPT Controller');
    
  
    
 % 在Matlab Function中定义MPPT控制器
    
 function [D] = fcn(P_prev, P_curr, D_prev)
    
     if P_curr > P_prev
    
     D = D_prev + 0.01; % 增加占空比
    
     else
    
     D = D_prev - 0.01; % 减小占空比
    
     end
    
 end
    
  
    
 % Step 4: Add DC-DC Converter
    
 add_block('simulink/User-Defined Functions/Matlab Function', [modelName '/DC_DC_Converter']);
    
 set_param([modelName '/DC_DC_Converter'], 'Mask', 'on');
    
 set_param([modelName '/DC_DC_Converter'], 'MaskDisplay', 'DC-DC Converter');
    
  
    
 % 在Matlab Function中定义DC-DC变换器
    
 function [V_out] = fcn(V_in, D)
    
     V_out = V_in / (1 - D);
    
 end
    
  
    
 % Step 5: Connect Blocks
    
 add_line(modelName, '/PV_Array/1', '/DC_DC_Converter/1', 'autorouting', 'on');
    
 add_line(modelName, '/DC_DC_Converter/1', '/MPPT_Controller/1', 'autorouting', 'on');
    
  
    
 % Step 6: Set Simulation Parameters
    
 set_param(modelName, 'StopTime', '60');
    
 save_system(modelName);

5. 结束语

本项目文档旨在详细阐述如何利用Simulink平台搭建光伏发电系统的仿真模型,并实现相应的控制系统设计。该文档旨在帮助读者更好地理解并灵活运用相关技术方案,并为其在实际工程中的应用提供有益的参考依据。如需进一步优化或拓展功能,则可以根据具体的应用需求进行相应地调整和完善。

全部评论 (0)

还没有任何评论哟~