You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何采用View Factor模型建模双面PV系统并计算总地面辐照度及背面辐照度

利用View Factor模型建模双面光伏系统并计算辐照度

核心概念

视角因子(View Factor,又称形状因子)用于描述一个表面发射的辐射能中,直接到达另一表面的比例。在双面光伏系统中,我们需要计算组件正/背面与天空、地面、相邻组件之间的视角因子,以此量化不同表面间的辐射交换关系。

建模步骤

1. 定义系统几何与环境参数

先明确所有关键参数:

  • 光伏组件:尺寸(长、宽)、安装倾斜角、离地高度、表面反射率
  • 阵列布局:行距、列距(多排场景)
  • 环境参数:地面反照率、太阳位置(时角、天顶角)、直射辐照度(DNI)、散射辐照度(DHI)

2. 划分表面单元

将系统拆分为可计算视角因子的简单面元:

  • 组件拆分为正面、背面两个独立面元
  • 地面按组件投影区域、行间区域拆分(多排场景)
  • 天空可简化为一个半球面元,或拆分不同天区的面元以提升计算精度

3. 计算视角因子

根据场景复杂度选择计算方法:

  • 解析法:适用于简单几何(如平行矩形、垂直矩形),可采用交叉线法(Crossed Strings Method)或现成解析公式。利用视角因子的互易性($F_{ij} \times A_i = F_{ji} \times A_j$)验证计算结果的正确性。
  • 数值法:适用于复杂阵列或非规则安装,常用蒙特卡洛法:随机从源面元发射射线,统计落到目标面元的比例,射线数量越多结果越精确。
  • 需覆盖所有辐射交换路径:组件↔天空、组件↔地面、组件↔相邻组件。

总地面辐照度计算

地面总辐照度由三部分组成:

  • 直射辐照度:$G_{dir, ground} = DNI \times \cos(\theta_z)$,其中$\theta_z$为太阳天顶角(水平地面时,地面法线与太阳入射方向的夹角)
  • 散射辐照度:直接取水平散射辐照度$DHI$
  • 反射辐照度:来自周围光伏组件或建筑的反射,计算公式为:$G_{ref, ground} = \sum (G_{module, total} \times \rho_{module} \times F_{module-ground})$,其中$G_{module, total}$是组件接收的总辐照度,$\rho_{module}$是组件反射率,$F_{module-ground}$是组件到地面的视角因子

总地面辐照度:$G_{ground, total} = G_{dir, ground} + DHI + G_{ref, ground}$

组件背面辐照度计算

组件背面的辐照度来自天空散射、地面反射、相邻组件反射三部分:

  1. 天空散射贡献:$G_{back, sky} = DHI \times F_{back-sky}$,其中$F_{back-sky}$是组件背面与天空的视角因子
  2. 地面反射贡献:$G_{back, ground} = G_{ground, total} \times \rho_{ground} \times F_{back-ground}$,其中$\rho_{ground}$是地面反照率,$F_{back-ground}$是组件背面与地面的视角因子
  3. 相邻组件反射贡献:$G_{back, module} = \sum (G_{neighbor, total} \times \rho_{module} \times F_{back-neighbor})$,其中$G_{neighbor, total}$是相邻组件接收的总辐照度,$F_{back-neighbor}$是组件背面与相邻组件的视角因子

总背面辐照度:$G_{back, total} = G_{back, sky} + G_{back, ground} + G_{back, module}$

简化场景示例

假设单排水平安装的双面组件,忽略相邻组件影响:

  1. 计算组件背面与天空的视角因子$F_{back-sky}$(可通过解析公式或蒙特卡洛法得到)
  2. 利用视角因子的完整性(所有方向的视角因子和为1),得到$F_{back-ground} = 1 - F_{back-sky}$
  3. 地面总辐照度$G_{ground, total} = DNI \times \cos(\theta_z) + DHI$
  4. 组件背面辐照度$G_{back, total} = DHI \times F_{back-sky} + G_{ground, total} \times \rho_{ground} \times F_{back-ground}$

蒙特卡洛法计算视角因子伪代码

import random
import math

def ray_intersects_rect(ray_origin, ray_dir, rect_points):
    # 实现射线与矩形面元的相交检测逻辑
    # rect_points为矩形的四个顶点坐标
    # 返回True/False表示是否相交
    pass

def calculate_view_factor(source_area, target_area, source_points, target_points):
    total_rays = 100000
    hit_count = 0
    for _ in range(total_rays):
        # 随机选择源面元上的点
        x, y, z = random.choice(source_points)
        # 随机生成半球方向的射线
        theta = random.uniform(0, math.pi/2)
        phi = random.uniform(0, 2 * math.pi)
        dx = math.sin(theta) * math.cos(phi)
        dy = math.sin(theta) * math.sin(phi)
        dz = math.cos(theta)
        # 检测射线是否击中目标面元
        if ray_intersects_rect((x,y,z), (dx,dy,dz), target_points):
            hit_count += 1
    # 返回视角因子
    return hit_count / total_rays

内容的提问来源于stack exchange,提问作者girl of data

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 10:57:10