2023 数学建模高教社杯 国赛(A题)建模秘籍&文章代码思路大全

铛铛!小秘籍来咯!

小秘籍希望大家都能轻松建模呀,国赛也是

让我们看看A题~

2023 数学建模高教社杯 国赛(A题)建模秘籍&文章代码思路大全_第1张图片

题目一

1. 太阳位置计算:

  • 计算太阳高度角(as)和方位角(ys):

    • 太阳高度角: sinas=cosθcosδcosH+sinθsinδ

    • 太阳方位角:sinys=sinθ−sinassinδ

    • cosys=cosascosδsinH​

    其中:

    • θ 为地点的纬度。
    • δ 为太阳赤纬角,可以根据日期计算。
    • H 为太阳时角,可以根据当地时间计算。

2. 太阳辐射计算:

  • 计算法向直接辐射辐照度(DNI):

    DNI = G_0 \left( a + b \exp\left(-C\right) \right)

    其中:

    • G0​ 为太阳常数,通常取1.366 kW/m²。
    • a,b,C 可以根据经验公式计算,与地点的海拔高度(H)有关。

3. 定日镜光学效率计算:

  • 定日镜的光学效率(η)计算如下: η=sb⋅cos⋅at⋅trunc

    其中:

    • 阴影遮挡效率 sb 、余弦效率cos 、大气透射率 at 和集热器截断效率 trunc 可根据问题描述中的公式进行计算。

4. 输出热功率计算:

  • 对于每个定日镜,可以使用以下公式计算其每个月的输出热功率: 输出热功率=DNI⋅Ai​⋅η

5. 年平均计算:

  • 对每个月的输出功率进行平均,得到年平均输出热功率。

6. 单位镜面面积年平均计算:

  • 将年平均输出热功率除以总镜面面积,得到单位镜面面积年平均输出热功率。
import math

# 给定地理位置信息
latitude = math.radians(39.4)  # 北纬39.4度
altitude = 3000  # 海拔高度3000m

# 太阳常数
solar_constant = 1366  # W/m²

# 初始化结果变量
annual_avg_optical_efficiency = 0
annual_avg_thermal_output_power = 0
unit_area_avg_thermal_output_power = 0

# 循环计算每个月的数据
for month in range(1, 13):
    # 计算太阳赤纬角(delta) - 这里只是示例,需要根据日期计算
    delta = math.radians(23.45 * math.sin(math.radians(360 * (284 + month) / 365)))#后续代码见完整版

题目二

问题2的目标是设计定日镜场的参数,以使得在给定定日镜尺寸和安装高度相同的情况下,单位镜面面积年平均输出热功率尽量大,同时达到额定功率(60 MW)。

  1. 太阳辐照度(Direct Normal Irradiance,DNI)的计算:

    DNI是地球上某一点上,垂直于太阳光线的单位面积上每秒接收到的太阳辐射能量。根据问题描述,可以使用以下公式来计算:DNI = G_0 \cdot [a + b \cdot \exp(-C)]

    • G0​ 是太阳常数,通常取为1.366 kW/m²。
    • a、b、C 是常数,根据海拔高度(H)来计算。
    • H 是海拔高度(单位:km)。
  2. 定日镜光学效率的计算:

    定日镜的光学效率取决于多个因素,包括镜面的形状、清洁程度、阴影遮挡等。您需要根据具体的定日镜设计和地理条件来计算光学效率。

  3. 输出热功率的计算:

    定日镜场的输出热功率可以通过以下公式计算:

    Poutput​=DNI⋅Ai​⋅η

    其中:

    • tPoutput​ 是输出热功率。
    • DNI 是太阳辐照度。
    • Ai​ 是单个定日镜的面积。
    • η 是定日镜的光学效率。
  4. 单位镜面面积年平均输出热功率的计算:

    单位镜面面积年平均输出热功率可以通过计算所有定日镜的输出热功率并取平均值来获得。

import numpy as np
import random
import math

# 随机生成初始配置
def generate_initial_configuration():
    num_mirrors = 100  # 定日镜数量
    mirror_size = (6, 6)  # 定日镜尺寸 (宽度, 高度)
    mirror_height = 4  # 定日镜安装高度
    return num_mirrors, mirror_size, mirror_height

# 计算输出热功率
def calculate_output_power(num_mirrors, mirror_size, mirror_height):
    # 根据定日镜配置计算光学效率、太阳辐照度等
    # 这里需要根据具体的计算公式进行计算
    optical_efficiency = calculate_optical_efficiency(num_mirrors, mirror_size, mirror_height)
    dni = calculate_dni()  # 计算太阳辐照度
    output_power = dni * mirror_size[0] * mirror_size[1] * optical_efficiency
    return output_power#见完整版

题目三

  1. 定义参数空间: 首先,需要定义参数空间,包括吸收塔的位置坐标、定日镜尺寸(宽度和高度)、安装高度、定日镜数量、以及定日镜的位置坐标。这些参数将被用来设计定日镜场。

  2. 目标函数: 定义一个目标函数,该函数的输入是参数空间中的配置,输出是单位镜面面积年平均输出热功率。目标函数应该考虑光学效率、太阳辐照度、定日镜的布局等因素,以计算输出热功率。

  3. 约束条件: 确定约束条件,包括满足额定功率的约束以及其他可能的约束条件,如定日镜尺寸范围、安装高度范围、遮挡避免等。

  4. 优化算法: 使用优化算法来搜索最佳参数配置。常见的优化算法包括模拟退火、遗传算法、粒子群优化等。这些算法可以在参数空间中搜索,找到最优配置以最大化单位镜面面积年平均输出热功率。

  5. 评估结果: 评估最终的优化结果,确保满足所有约束条件,并获得最大的输出热功率。您需要计算年平均光学效率、年平均输出热功率以及单位镜面面积年平均输出热功率。

  6. 保存结果: 将最佳参数配置保存到结果文件中,包括吸收塔位置坐标、定日镜尺寸、安装高度、定日镜数量以及定日镜位置坐标,按照表格格式保存。

  7. 迭代优化: 如果需要,可以多次运行优化算法,调整参数范围和约束条件,以获得更好的结果。

  8. 总结和分析: 最后,对优化结果进行总结和分析,检查是否满足设计要求,如额定功率,并评估不同参数配置的性能差异。

import numpy as np
import random
import math

# 定义目标函数:单位镜面面积年平均输出热功率
def objective_function(params):
    num_mirrors, mirror_sizes, mirror_heights, tower_position = params
    
    # 根据参数计算光学效率、太阳辐照度等
    # 这里需要根据具体的计算公式进行计算
    optical_efficiency = calculate_optical_efficiency(num_mirrors, mirror_sizes, mirror_heights)
    dni = calculate_dni()  # 计算太阳辐照度
    
    # 计算输出热功率
    output_power = dni * sum([size[0] * size[1] * optical_efficiency[i] for i, size in enumerate(mirror_sizes)])
    
    # 满足额定功率的约束条件
    constraint = max(output_power - 60, 0)#见完整版

完整代码+论文在这里:

2023 数学建模高教社杯 国赛(A题)建模秘籍&文章代码思路大全-知乎(zhihu.com)

你可能感兴趣的:(数学建模)