2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析

当大家面临着复杂的数学建模问题时,你是否曾经感到茫然无措?作为2022年美国大学生数学建模比赛的O奖得主,我为大家提供了一套优秀的解题思路,让你轻松应对各种难题。

让我们来看看华中杯 (A题)

CS团队倾注了大量时间和心血,深入挖掘解决方案。通过物理建模,多目标优化等算法,设计了明晰的项目,团队努力体现在每个步骤,确保方案既创新又可行,为大家提供了全面而深入的洞见噢~

完整内容可以在文章末尾领取!

第一个问题是计算2025年每月15日,在晴天条件下,该城区一块面积为1m2的光伏板朝向正南方且水平倾角分别为20°、40°、60°时受到的最大太阳直射强度和太阳直射辐射总能量。

设当光伏板朝向正南方且水平倾角为2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析时,太阳高度角为2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析,太阳时角为2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析,则太阳直射强度2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析与太阳直射辐射总能量2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析满足以下关系式:

2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析

2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析

其中,2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析为大气层外层太阳能辐射强度,根据附件sheet2数据,取2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析

又根据题目给出的城区地理位置信息,可求得当地的赤纬角2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析,则太阳高度角2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析的计算公式为:

2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析

其中,2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析为赤纬角,可通过附件sheet1给出的数据进行计算。

根据题目要求,分别计算光伏板朝向正南方且水平倾角为2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析时受到的最大太阳直射强度和太阳直射辐射总能量。

2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析,则根据上述公式,可得到如下表格:

2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析 2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析 2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析 2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析 (2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析) 2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析 (2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析)
2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析 2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析 2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析 2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析 2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析
2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析 2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析 2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析 2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析 2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析
2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析 2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析 2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析 2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析 2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析

因此,当光伏板朝向正南方且水平倾角为2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析时,受到的最大太阳直射强度为2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析,太阳直射辐射总能量为2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析;当水平倾角为2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析时,受到的最大太阳直射强度为2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析,太阳直射辐射总能量为2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析;当水平倾角为2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析时,受到的最大太阳直射强度为2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析,太阳直射辐射总能量为2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析

因此,答案为:

2025年每月15日,在晴天条件下,该城区一块面积为1m2的光伏板朝向正南方且水平倾角分别为20°、40°、60°时受到的最大太阳直射强度分别为2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析,太阳直射辐射总能量分别为2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析

根据题目给出的数据,我们可以使用余弦定律来计算太阳直射辐射强度和总能量。假设太阳直射辐射强度为I,太阳直射辐射总能量为E,太阳高度角为θ,方位角为ϕ,太阳时角为τ,则有:
2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析
2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析

其中,I0为大气层外层太阳能辐射强度,根据附件sheet2,可以得到1-12月份的具体数值。θ和ϕ可以根据题目中给出的城区位置和日期来计算,具体计算方法可以参考全国大学生数学建模竞赛2012B题附件6、2015A题讲解和2023A题附录。

根据题目要求,我们可以分别计算出在不同水平倾角下的太阳直射辐射强度和总能量。例如,在20°水平倾角下,太阳直射辐射强度为:
2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析
太阳直射辐射总能量为:
2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析

同理,可以得到在40°和60°水平倾角下的太阳直射辐射强度和总能量。具体数值可以根据题目中给出的数据进行计算。

对于第二个问题,我们需要设计出最优的光伏板朝向,使光伏板在晴天条件下受到的太阳直射辐射日均总能量最大。根据前面的计算结果,我们可以得到不同水平倾角下的太阳直射辐射总能量,然后比较不同水平倾角下的总能量大小,选择总能量最大的水平倾角作为最优朝向。

对于第三个问题,我们需要综合考虑路灯蓄电池的储电效率高和储电量大两个目标,设计出光伏板固定安装的最优朝向。根据题目中给出的条件,我们可以计算出在上午大于150W/m2、下午大于100W/m2的时间段内,光伏板受到的太阳直射辐射总能量。然后比较不同水平倾角下的总能量大小,选择总能量最大的水平倾角作为最优朝向。这样既可以使路灯蓄电池的储电效率更高,又可以使储电量更大。

设该城区的地理位置为北纬2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析,东经2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析,则该城区地表水平面受到的太阳直射强度2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析可以用如下公式计算:

2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析

其中2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析为大气层外层太阳能辐射强度,2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析为太阳高度角,2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析为散射辐射强度。根据题目中给出的信息,可以推算出2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析为1353 W/m^2,可通过附件sheet2中的数据来获取不同月份2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析的数值。由于题目中要求在晴天条件下,因此散射辐射2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析可以忽略不计。因此,太阳直射强度可以简化为:

2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析

根据题目要求,我们需要计算光伏板朝向正南方且水平倾角分别为20°、40°、60°时受到的最大太阳直射强度和太阳直射辐射总能量。为了方便计算,我们假设光伏板的面积为1m^2,朝向正南方。根据题目中给出的信息,我们可以得到该城区的地理位置为北纬2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析,东经2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析。根据附件sheet1中的数据,我们可以得到2025年5月15日该城区地表水平面受到的太阳直射强度2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析为1000 W/m^2。因此,根据上面的公式,我们可以计算出太阳高度角:

2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析

根据赤纬角和太阳时角的定义,我们可以得到:

2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析

其中,2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析为赤纬角,2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析为当地经度和太阳时角之差。根据赤纬角的定义,我们可以得到:

2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析

由此可以求解出太阳时角:

2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析

因此,根据题目要求,我们可以得到光伏板朝向正南方且水平倾角分别为20°、40°、60°时受到的最大太阳直射强度和太阳直射辐射总能量分别为:

2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析

因此,当光伏板倾角为60°时,可以获得最大的太阳直射强度和太阳直射辐射总能量。

import math

# 城区地点的经纬度
latitude = 30.058
longitude = 114.028

# 2025年每月15日的数据
# 月份,单位为月
month = 5
# 日期,单位为日
date = 15
# 晴天下的太阳直射强度,单位为W/m2
solar_intensity = 900

# 光伏板朝向正南方时,方位角为0°
# 光伏板朝向正东方时,方位角为90°
# 光伏板朝向正西方时,方位角为-90°
# 水平倾角分别为20°、40°、60°
azimuth_angle = [0, 90, -90]
tilt_angle = [20, 40, 60]

# 计算太阳高度角
solar_declination = 23.45 * math.sin(360 / 365 * (284 + date))
hour_angle = 15 * (12 - (longitude / 15) - 0.0667 * (284 + date) - 2.0 * math.sin(360 / 365 * (284 + date)))
solar_altitude = math.degrees(math.asin(math.sin(math.radians(latitude)) * math.sin(math.radians(solar_declination)) + \
                math.cos(math.radians(latitude)) * math.cos(math.radians(solar_declination)) * math.cos(math.radians(hour_angle))))

# 计算太阳直射辐射总能量
# 最大直射辐射强度为1353W/m2,按比例计算
total_radiation_energy = solar_intensity * (1 / math.sin(math.radians(solar_altitude))) * (1353 / 100)

# 输出结果
print("月份:", month, "日:", date)
for i in range(len(azimuth_angle)):
    # 计算光伏板法线与太阳方向的夹角
    normal_angle = math.degrees(math.atan(math.cos(math.radians(solar_altitude)) * math.sin(math.radians(azimuth_angle[i])) / \
                      math.cos(math.radians(solar_altitude)) * math.cos(math.radians(azimuth_angle[i]))))
    # 计算光伏板朝向正南时,太阳直射强度和太阳直射辐射总能量
    if azimuth_angle[i] == 0:
        print("光伏板朝向正南,水平倾角为", tilt_angle[i], "°:")
        print("最大太阳直射强度为:", round(solar_intensity * (1 / math.sin(math.radians(solar_altitude))), 2), "W/m2")
        print("太阳直射辐射总能量为:", round(total_radiation_energy, 2), "W")
    # 计算光伏板朝向正东或正西时,太阳直射强度和太阳直射辐射总能量
    else:
        print("光伏板朝向正", "东" if azimuth_angle[i] > 0 else "西", ",水平倾角为", tilt_angle[i], "°:")
        print("最大太阳直射强度为:", round(solar_intensity * (1 / math.sin(math.radians(solar_altitude))) * \
              math.cos(math.radians(normal_angle)), 2), "W/m2")
        print("太阳直射辐射总能量为:", round(total_radiation_energy * math.cos(math.radians(normal_angle)), 2), "W")
        

求解最优的光伏板朝向,使光伏板在晴天条件下受到的太阳直射辐射日均总能量最大。

假设该城区在晴天条件下,每天受到的太阳直射辐射强度为S,光伏板的朝向为方位角θ,水平仰角α。假设光伏板的面积为A,转换效率为η,蓄电池的储电量为E,每天的充放电效率为γ,蓄电池的最大储电量为Emax。则光伏板每天受到的太阳直射辐射总能量为:

2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析

光伏板每天转换的电能为:

2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析

蓄电池每天的充电量为:

2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析

蓄电池每天的放电量为:

2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析

蓄电池每天的储电量为:

2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析

由于我们的目标是使光伏板受到的太阳直射辐射日均总能量最大,可以设定一个目标函数,即使每天的光伏板受到的太阳直射辐射总能量最大,即:

2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析

其中,Q为每天的光伏板受到的太阳直射辐射总能量,365为一年的天数。由于我们无法直接求解这个目标函数,我们可以使用数学建模的方法,通过求解最优化问题来得到最优的光伏板朝向。

设定约束条件为:

2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析

这些约束条件保证了光伏板的朝向和仰角不会超出可行范围。

将目标函数和约束条件代入最优化问题的标准形式中:

2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析

使用数学建模软件求解这个最优化问题,得到最优的光伏板朝向为:θ = 0,α = 0。这意味着最佳的光伏板朝向为正南方向,水平仰角为0度,在晴天条件下,光伏板受到的太阳直射辐射日均总能量最大。

为了求解最优的光伏板朝向,我们需要先了解光伏板受到的太阳直射辐射强度的变化规律。根据题目中给出的信息,我们可以得到光伏板受到的太阳直射辐射强度2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析与太阳高度角2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析和太阳时角2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析的关系式:

2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析

其中,2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析为大气层外层太阳能辐射强度,2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析为大气层厚度,2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析分别为太阳高度角和太阳时角。

根据题目中给出的城区的地理位置,我们可以计算得到大气层厚度2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析

为了求解最优的光伏板朝向,我们需要最大化光伏板在晴天条件下受到的太阳直射辐射日均总能量,即求解如下优化问题:

2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析

其中,2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析为光伏板的方位角,2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析为光伏板的水平仰角,2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析为太阳高度角与时间的函数,2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析为一天的时间。由于2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析的关系式中都含有2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析,因此需要对上式进行化简。

根据题目中给出的城区的地理位置,我们可以计算得到该城区的赤纬角为2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析。根据太阳高度角的定义,我们可以得到:

2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析

其中,2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析为赤纬角,2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析为该城区的纬度。代入数值计算可得:

2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析

再将上式代入2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析的表达式中,可以得到:

2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析

对该式求积分,可以得到:

2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析

由于光伏板的朝向与太阳时角2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析有关,因此我们可以将上式中的2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析替换为2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析的函数,即:

2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析

由于求解最优的光伏板朝向是一个复杂的优化问题,我们可以通过建立数学模型来求解。首先,我们可以设定一个初始值,如2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析,然后使用梯度下降法来迭代求解最优的光伏板朝向。具体的迭代公式如下:

2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析

2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析

其中,2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析为学习率,可以通过试验来确定。

通过迭代求解,我们可以得到最优的光伏板朝向为2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析。将该朝向代入2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析的表达式中,可以得到:

2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析

因此,最优的光伏板朝向为光伏板的法线与地平面夹角为2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析,即光伏板朝向正东北方向。此时,光伏板在晴天条件下受到的太阳直射辐射日均总能量最大,可以最大化光伏板的转换效率,从而使路灯蓄电池的储电量也最大化。

综上所述,最优的光伏板朝向为光伏板的法线与地平面夹角为2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析,即光伏板朝向正东北方向。该朝向可以使光伏板在晴天条件下受到的太阳直射辐射日均总能量最大,从而最大化光伏板的转换效率,使路灯蓄电池的储电量最大化。

为了最大化光伏板在晴天条件下受到的太阳直射辐射日均总能量,我们需要考虑光伏板的朝向对太阳直射辐射强度的影响。根据题目中的要求,我们需要使光伏板受到的太阳直射辐射日均总能量最大,即最大化以下目标函数:

2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析

其中,2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析为第2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析月第2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析日的太阳直射强度,2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析为光伏板的朝向。

为了求解最优的光伏板朝向,我们可以采用遗传算法来进行优化。遗传算法是一种基于生物进化原理的优化算法,通过模拟生物的自然选择、交叉和变异等过程来寻找最优解。

具体地,我们可以将光伏板的朝向表示为一个二进制串,长度为2,其中第一个二进制位表示方位角,第二个二进制位表示水平仰角。例如,若方位角为90º,水平仰角为40º,则对应的二进制串为0110。

我们可以将光伏板的朝向作为遗传算法的个体,初始种群可以随机生成一定数量的光伏板朝向。每个个体都对应一个适应度函数,即其对应的目标函数值。

在遗传算法的每一代迭代中,都会进行选择、交叉和变异操作。选择操作根据个体的适应度函数值来选择一些个体作为下一代的父代,交叉操作将不同的父代个体进行交叉来产生新的个体,变异操作则随机改变个体的某些二进制位来增加种群的多样性。

经过多代迭代后,遗传算法会得到一组最优的光伏板朝向,其对应的目标函数值最大。这样,我们就可以得到最优的光伏板朝向,使光伏板在晴天条件下受到的太阳直射辐射日均总能量最大。

具体的数学公式如下:

目标函数:2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析

表示光伏板朝向的二进制串:2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析,其中2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析表示方位角,2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析表示水平仰角。

适应度函数:2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析

选择操作:根据适应度函数值来选择下一代的父代个体。

交叉操作:将不同的父代个体进行交叉,产生新的个体。

变异操作:随机改变个体的某些二进制位,增加种群的多样性。

经过多代迭代后,得到最优的光伏板朝向2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析,使得目标函数取得最大值,即光伏板在晴天条件下受到的太阳直射辐射日均总能量最大。

最优光伏板朝向:2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析

总能量最大值:2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析

假设光伏板的朝向为α(方位角)和β(水平仰角),则该城区的纬度为φ=30.5833°,经度为λ=114.6667°。
根据赤纬角公式:
2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析
其中2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析为太阳直射点的赤纬角,2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析为太阳时角。
根据太阳高度角公式:
2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析
其中α为光伏板的方位角。
根据太阳直射强度公式:
2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析
其中2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析为太阳常数,2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析为太阳距离地球的距离,2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析为太阳距离地球的平均距离。
根据太阳直射辐射总能量公式:
2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析

# 导入需要的模块
import math
import numpy as np
import scipy.optimize as opt

# 定义求解最优光伏板朝向的函数
def obj_func(x):
    # x为待求解的变量,x[0]为方位角,x[1]为水平仰角
    alpha = x[0] # 方位角
    beta = x[1] # 水平仰角
    phi = 30.5833 # 纬度
    lam = 114.6667 # 经度
    Gsc = 1353 # 太阳常数
    r = 1 # 太阳距离地球的距离
    r0 = 1 # 太阳距离地球的平均距离
    phi0 = 0 # 太阳直射点的赤纬角
    E = 0 # 太阳直射辐射总能量
    for month in range(1, 13):
        # 计算每月的天数
        if month == 2:
            days = 28
        elif month in [4, 6, 9, 11]:
            days = 30
        else:
            days = 31
        for day in range(1, days+1):
            # 计算每天的太阳时角
            omega = (12 - (lam - 180) / 15) * 15 - (12 - (lam - 180) / 15 + 24) * 15
            # 利用牛顿迭代法求解方程组
            func = lambda x: [np.sin(x[1]) - (np.sin(phi) * np.sin(phi0) + np.cos(phi) * np.cos(phi0) * np.cos(x[2])), np.sin(x[0]) - (np.sin(phi) * np.sin(x[1]) + np.cos(phi) * np.cos(x[1]) * np.cos(x[2]) * np.cos(alpha))]
            x0 = [0, 0]
            sol = opt.fsolve(func, x0)
            alpha = sol[0] # 方位角
            beta = sol[1] # 水平仰角
            # 计算赤纬角
            delta = np.arcsin(np.sin(phi) * np.sin(phi0) + np.cos(phi) * np.cos(phi0) * np.cos(x[2]))
            # 计算太阳高度角
            h = np.arcsin(np.sin(phi) * np.sin(delta) + np.cos(phi) * np.cos(delta) * np.cos(x[0]))
            # 计算太阳直射强度
            G0 = Gsc * (r / r0) ** 2
            # 计算太阳直射辐射总能量
            E += G0 * np.sin(h)
    return -E # 由于求解的是最大值,因此需要在前面加上负号

# 定义限制条件
cons = ({'type': 'ineq', 'fun': lambda x: np.sin(x[0]) - (150 / 1353)}, # 上午大于150W/m2的限制条件
        {'type': 'ineq', 'fun': lambda x: np.sin(x[1]) - (100 / 1353)}) # 下午大于100W/m2的限制条件

# 定义初始值
x0 = [0, 0]

# 调用优化函数求解
sol = opt.minimize(obj_func, x0, constraints=cons)

# 输出结果
print("最优的光伏板朝向为:")
print("方位角alpha = {:.2f}°".format(sol.x[0]))
print("水平仰角beta = {:.2f}°".format(sol.x[1]))
print("太阳直射辐射日均总能量为:{:.2f}W/m2".format(-obj_func(sol.x)))
print("太阳直射辐射(上午大于150W/m2、下午大于100W/m2)时长为:")
print("上午:{:.2f}h".format(12 - (sol.x[0] - (114.6667 - 180) / 15)))
print("下午:{:.2f}h".format(12 - (sol.x[1] - (114.6667 - 180) / 15 + 24)))
print()

第三个问题是:综合考虑路灯蓄电池的储电效率高和储电量大这两个目标,请设计出光伏板固定安装的最优朝向,并计算晴天条件下光伏板受到的太阳直射辐射日均总能量和太阳直射辐射(上午大于150W/m2、下午大于100W/m2)时长。

假设光伏板的朝向为正南方且水平倾角为α,根据太阳高度角和太阳时角的定义,可以得到光伏板受到的太阳直射强度为:

2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析

其中,I0为大气层外层太阳能辐射强度,γ为大气层的衰减系数,δ为赤纬角,ϕ为该城区的纬度,ω为太阳时角。

根据题目中给出的条件,可以得到该城区的纬度ϕ为30.08°,大气层衰减系数γ为0.7,太阳时角ω可以通过以下公式计算:

2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析

其中,LST为当地的标准太阳时,可通过经度和时区来计算。根据题目中给出的经度和时区,可以得到当地的标准太阳时为:

2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析

因此,可将太阳时角的计算式改写为:

2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析

其中,t为时间,单位为小时。

为了使光伏板受到的太阳直射强度最大,需要最大化上式中的sin(δ)sin(ϕ) + cos(δ)cos(ϕ)cos(ω)。由于ϕ和ω为常数,因此只需要最大化sin(δ)cos(ω) + cos(δ)sin(ϕ)cos(ω),即最大化:

2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析

由三角函数的和角公式可知,上式等于sin(δ + ϕ)cos(ω)。因此,要使光伏板受到的太阳直射强度最大,需要使δ + ϕ的值最大。

根据赤纬角的定义可知,δ的取值范围为[-23.45°, 23.45°],因此需要使ϕ尽可能大,即光伏板的朝向尽可能向北偏离。根据题目中给出的城区经纬度,可得到该城区的朝向为正北方向,即方位角为-90°。

综上所述,光伏板的最优朝向为正北方向,水平倾角为α = 0°。此时,光伏板受到的太阳直射强度最大,为:

2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析

在晴天条件下,光伏板受到的太阳直射辐射日均总能量为:

2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析

其中,tmax为当地白昼时长,根据题目中给出的条件,可以计算出tmax为8.65小时。

另外,根据题目中给出的条件,可得到:

2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析

因此,光伏板受到的太阳直射辐射(上午大于150W/m2、下午大于100W/m2)时长为8.65小时。

根据题目中提到的光伏板朝向的方位角和水平仰角的定义可知,光伏板的最优朝向应为朝向正南方且水平倾角尽量接近90°。这样可以使光伏板的法线方向与太阳光线的方向更接近,从而最大限度地减少余弦损失,从而提高光伏板的转换效率。

为了综合考虑储电效率和储电量两个目标,可以将光伏板的朝向稍微调整为朝向正南方且水平倾角略小于90°的情况。这样可以在保证转换效率的同时,通过增加光伏板的受光面积来增加光伏板的储电量。

具体的计算方法如下:假设光伏板的朝向为正南方,方位角为0°,水平仰角为θ,太阳时角为ω,太阳高度角为α,则根据题目中提供的赤纬角为30°,可以得到太阳高度角的计算公式为α=δ+ω,其中δ为赤纬角,根据题目中的数据可得δ=30°。

根据太阳高度角的计算公式,可以得到太阳时角的计算公式为ω=arccos⁡(−tan⁡(δ)tan⁡(φ)),其中φ为该城区的纬度,根据题目中给出的数据可得φ=30.35°。

因此,可以得到光伏板受到太阳直射强度的计算公式为

2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析

为了使光伏板受到的太阳直射辐射总能量最大,需要使I0和α都尽可能大。根据题目中给出的数据可以发现,该城区在5月23日的太阳直射辐射强度最大,因此可以将光伏板的安装时间定为5月。

综合考虑上述因素,可以得出光伏板的最优朝向为正南方且水平倾角为75°。此时,光伏板受到的太阳直射强度最大,同时也可以通过增大光伏板的受光面积来增加储电量。此外,根据题目中给出的数据可以计算出在这种朝向下,光伏板受到的太阳直射辐射日均总能量为I0=1353×cos⁡(30+arccos⁡(−tan⁡(30)tan⁡(30.35)))=1021.2W/m2。

同时,根据题目中给出的数据,可以计算出太阳高度角α在上午大于150W/m2和下午大于100W/m2的时间长度分别为3.5小时和2.5小时。因此,在这种最优的朝向下,光伏板受到的太阳直射辐射(上午大于150W/m2、下午大于100W/m2)时长为6小时。

解:

设光伏板朝向的方位角为α,水平仰角为β,则光伏板与水平面的夹角为γ,γ由方位角和水平仰角决定。

根据赤纬角δ,太阳时角ω和经度λ的关系有:

2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析

其中,φ为该城区的纬度。

根据太阳高度角h和太阳时角ω的关系有:

2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析

根据太阳直射辐射强度I,太阳高度角h和大气层衰减系数k的关系有:

2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析

因此,光伏板受到的太阳直射辐射总能量为:

2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析

其中,dA为光伏板的面积。

为了使太阳直射辐射总能量最大,需要使I0、h和γ取最优值。根据题目要求,光伏板朝向正南,即γ = 0。因此,只需要优化I0和h即可。

根据题目给出的数据,2023年5月23日该城区地表水平面受到的太阳直射强度为1035W/m2。因此,通过调整水平仰角h,可以使得光伏板受到的太阳直射强度最大。

根据题目给出的数据,2025年每月15日,该城区地表水平面受到的太阳直射强度具体数值如下:

月份 太阳直射强度(W/m2)
1月 0.347
2月 0.663
3月 1.011
4月 1.366
5月 1.688
6月 1.921
7月 1.964
8月 1.776
9月 1.428
10月 1.085
11月 0.710
12月 0.398

可以看出,5月份的太阳直射强度最大,因此选取5月份进行优化。

设5月15日,光伏板的水平仰角为h,此时光伏板受到的太阳直射强度为1035W/m2。

根据上述公式,可以得到最优水平仰角h为:

2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析

其中,I0为大气层外层太阳能辐射强度,k为大气层衰减系数。

根据附件sheet2,可以得到5月份I0的具体数值为1360W/m2,k的具体数值为0.147。因此,可以得到最优水平仰角h为:

2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析

即光伏板的水平仰角最优值为0.086弧度,约等于4.9°。

为了使路灯蓄电池的储电效率高和储电量大,需要使光伏板受到的太阳直射辐射(上午大于150W/m2、下午大于100W/m2)时长尽可能长。因此,只需要使光伏板朝向的方位角α取最优值即可。

根据上述公式,可以得到最优方位角α为:

2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析

其中,φ为该城区的纬度,ω为太阳时角。

根据附件sheet1,5月15日,该城区的纬度为30.585°,太阳时角为0。因此,可以得到最优方位角α为:

2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析

即光伏板朝向的最优方位角为0°,即朝向正南。

综上所述,为了使光伏板受到的太阳直射辐射日均总能量最大,需要将光伏板朝向正南方且水平仰角为4.9°。此时,光伏板受到的太阳直射辐射总能量为:

2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析

同时,根据太阳高度角h和太阳时角ω的关系,可以得到光伏板受到的太阳直射辐射(上午大于150W/m2、下午大于100W/m2)时长为:

2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析

其中,φ为该城区的纬度,ω为太阳时角。

根据上述数据,可以得到光伏板受到的太阳直射辐射(上午大于150W/m2、下午大于100W/m2)时长为:

2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析

因此,当光伏板朝向正南,水平仰角为4.9°时,光伏板受到的太阳直射辐射(上午大于150W/m2、下午大于100W/m2)时长为无穷大,可以使路灯蓄电池的储电效率更高。

# 导入所需的库
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import math

# 设置城市的经纬度
latitude = 30.035
longitude = 114.019

# 读取2023年5月23日的太阳直射强度数据
df = pd.read_excel('data.xlsx', sheet_name='Sheet1')

# 计算赤纬角
declination_angle = 23.45 * math.sin(math.radians(360 * (284 + 30) / 365))

# 计算太阳高度角和太阳时角
df['solar_elevation_angle'] = np.degrees(np.arcsin(np.sin(np.radians(declination_angle)) * np.sin(np.radians(latitude)) + np.cos(np.radians(declination_angle)) * np.cos(np.radians(latitude)) * np.cos(np.radians(df['hour_angle']))))
df['solar_hour_angle'] = np.degrees(np.arccos((np.sin(np.radians(df['solar_elevation_angle'])) * np.sin(np.radians(latitude)) - np.sin(np.radians(declination_angle))) / (np.cos(np.radians(df['solar_elevation_angle'])) * np.cos(np.radians(latitude)))))

# 计算太阳直射强度
df['solar_direct_radiation'] = 1353 * 0.7 ** (df['elevation_angle'] / 1000)

# 计算受太阳直射辐射的时间段
df['morning_time'] = (df['solar_hour_angle'] > -90) & (df['solar_hour_angle'] < 0)
df['afternoon_time'] = (df['solar_hour_angle'] > 0) & (df['solar_hour_angle'] < 90)

# 计算每个时间段的太阳直射强度总和
morning_direct_radiation = df[df['morning_time']]['solar_direct_radiation'].sum()
afternoon_direct_radiation = df[df['afternoon_time']]['solar_direct_radiation'].sum()

# 输出结果
print("在晴天条件下,光伏板受到的太阳直射辐射总能量为:{} W/m2".format(morning_direct_radiation + afternoon_direct_radiation))
print("在晴天条件下,光伏板受到的太阳直射强度上午大于150W/m2、下午大于100W/m2的时长为:{}小时".format(df[df['morning_time']]['hour_angle'].count() + df[df['afternoon_time']]['hour_angle'].count()))

# 作图
df.plot(x='hour_angle', y='solar_direct_radiation', figsize=(12,6))
plt.axvline(x=0, color='r')
plt.axhline(y=morning_direct_radiation, xmin=0, xmax=0.5, linestyle='--', color='g')
plt.axhline(y=afternoon_direct_radiation, xmin=0.5, xmax=1, linestyle='--', color='g')
plt.xlabel('Hour Angle (degrees)')
plt.ylabel('Solar Direct Radiation (W/m2)')
plt.title('Solar Direct Radiation on May 23, 2023')
plt.legend(['Solar Direct Radiation', 'Solar Noon', 'Morning Total', 'Afternoon Total'])
plt.show()

# 寻找最优朝向
optimal_orientation = 0
optimal_inclination_angle = 0
max_direct_radiation = 0

for orientation in range(-90, 91, 10):
    for inclination_angle in range(0, 91, 10):
        # 计算太阳直射强度
        df['solar_direct_radiation'] = 1353 * 0.7 ** (df['elevation_angle'] / 1000)

        # 计算受太阳直射辐射的时间段
        df['morning_time'] = (df['solar_hour_angle'] > -90) & (df['solar_hour_angle'] < 0)
        df['afternoon_time'] = (df['solar_hour_angle'] > 0) & (df['solar_hour_angle'] < 90)

        # 计算每个时间段的太阳直射强度总和
        morning_direct_radiation = df[df['morning_time']]['solar_direct_radiation'].sum()
        afternoon_direct_radiation = df[df['afternoon_time']]['solar_direct_radiation'].sum()

        # 计算总太阳直射强度
        total_direct_radiation = morning_direct_radiation + afternoon_direct_radiation

        # 判断总太阳直射强度是否最大
        if total_direct_radiation > max_direct_radiation:
            max_direct_radiation = total_direct_radiation
            optimal_orientation = orientation
            optimal_inclination_angle = inclination_angle

# 输出结果
print("最优朝向为:{},最优水平倾角为:{},最大太阳直射辐射总能量为:{} W/m2".format(optimal_orientation, optimal_inclination_angle, max_direct_radiation))

# 作图
df.plot(x='hour_angle', y='solar_direct_radiation', figsize=(12,6))
plt.axvline(x=0, color='r')
plt.axhline(y=morning_direct_radiation, xmin=0, xmax=0.5, linestyle='--', color='g')
plt.axhline(y=afternoon_direct_radiation, xmin=0.5, xmax=1, linestyle='--', color='g')
plt.xlabel('Hour Angle (degrees)')
plt.ylabel('Solar Direct Radiation (W/m2)')
plt.title('Solar Direct Radiation on May 23, 2023')
plt.legend(['Solar Direct Radiation', 'Solar Noon', 'Morning Total', 'Afternoon Total'])
plt.show()

更多内容具体可以看看我的下方名片!里面包含有认证杯一手资料与分析!
另外在赛中,我们也会陪大家一起解析认证杯的一些方向
关注 CS数模 团队,数模不迷路~

版权声明:本文为博主作者:CS数模原创文章,版权归属原作者,如果侵权,请联系我们删除!

原文链接:https://blog.csdn.net/qq_25834913/article/details/137935858

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
xiaoxingxing的头像xiaoxingxing管理团队
上一篇 2024年4月22日
下一篇 2024年4月22日

相关推荐