2023高教社数学建模国赛A题 - 定日镜场的优化设计 - 思路

2023-10-27

问题1:计算年平均光学效率和输出热功率

建立模型的坐标系:以圆形区域中心为原点,正东方向为x轴,正北方向为y轴,垂直地面向上为z轴。

计算吸收塔和定日镜的位置:吸收塔建于圆形定日镜场中心,根据给定的数据确定定日镜的位置。

计算每个定日镜的光学效率:使用光学效率的定义,考虑太阳光照射和镜面反射。

计算每个定日镜的输出热功率:使用输出热功率的定义,考虑吸收塔的热量吸收。

计算单位镜面面积的年平均输出热功率:将每个定日镜的输出功率相加并除以总面积。

% 设定问题1的参数
 
absorber_tower_location = [0, 0]; % 吸收塔位置坐标,假设位于坐标原点
 
mirror_size = [6, 6]; % 定日镜尺寸为6m x 6m
 
mirror_height = 4; % 安装高度为4m
 
mirror_locations = load('mirror_locations.txt'); % 从文件加载所有定日镜的位置坐标
 
 
 
% 初始化结果变量
 
total_optical_efficiency = 0;
 
total_heat_output = 0;
 
 
 
% 循环计算每个定日镜的光学效率和输出热功率
 
for i = 1:size(mirror_locations, 1)
 
    % 获取当前定日镜的位置坐标
 
    current_mirror_location = mirror_locations(i, :);
 
    
 
    % 计算当前定日镜的光学效率和输出热功率
 
    [optical_efficiency, heat_output] = calculate_efficiency_and_heat(absorber_tower_location, mirror_size, mirror_height, current_mirror_location);
 
    
 
    % 累加到总光学效率和输出热功率中
 
    total_optical_efficiency = total_optical_efficiency + optical_efficiency;
 
    total_heat_output = total_heat_output + heat_output;
 
end
 
 
 
% 计算单位镜面面积年平均输出热功率
 
unit_area_avg_heat_output = total_heat_output / (size(mirror_locations, 1) * mirror_size(1) * mirror_size(2));
 
 
 
% 输出结果
 
fprintf('年平均光学效率: %f\n', total_optical_efficiency);
 
fprintf('年平均输出热功率: %f\n', total_heat_output);
 
fprintf('单位镜面面积年平均输出热功率: %f\n', unit_area_avg_heat_output);
 
 
 
% 定义计算光学效率和输出热功率的函数
 
function [optical_efficiency, heat_output] = calculate_efficiency_and_heat(absorber_tower_location, mirror_size, mirror_height, current_mirror_location)
 
    % 在这里编写计算光学效率和输出热功率的代码
 
    % 可以使用物理模型,考虑太阳轨迹、镜面反射、吸收塔吸热等因素进行计算
 
    % 返回计算结果
 
end

 

问题2:设计定日镜场以达到额定功率

设定额定功率为60 MW。

制定优化模型:建立一个数学优化模型,以单位镜面面积的年平均输出热功率为目标函数,约束条件包括吸收塔位置、定日镜尺寸、安装高度、定日镜数目、定日镜位置等。

使用优化算法:通过数值优化算法(如遗传算法、模拟退火等),寻找最佳的参数组合,使得单位镜面面积的年平均输出热功率最大,并满足额定功率的要求。

记录最佳参数组合:记录吸收塔的位置坐标、定日镜尺寸、安装高度、定日镜数目、定日镜位置,并按照给定格式保存到result2.xlsx文件中。

% 设定问题2的参数
 
desired_annual_output = 60e6; % 额定年平均输出热功率为60 MW
 
mirror_locations = load('mirror_locations.txt'); % 从文件加载所有定日镜的位置坐标
 
 
 
% 初始化结果变量
 
best_parameters = [];
 
best_unit_area_avg_heat_output = 0;
 
 
 
% 设置优化选项
 
options = optimoptions('fmincon', 'Algorithm', 'interior-point', 'Display', 'iter');
 
 
 
% 定义优化目标函数
 
objective_function = @(x) -optimize_heat_output(x, mirror_locations, desired_annual_output);
 
 
 
% 定义初始参数猜测和参数上下界
 
x0 = initial_guess; % 根据具体情况提供初始猜测
 
lb = lower_bound; % 参数的下界
 
ub = upper_bound; % 参数的上界
 
 
 
% 进行优化
 
[x_opt, fval] = fmincon(objective_function, x0, [], [], [], [], lb, ub, [], options);
 
 
 
% 输出最优参数和结果
 
best_parameters = x_opt;
 
best_unit_area_avg_heat_output = -fval;

问题3:设计定日镜场以达到额定功率,允许定日镜尺寸和安装高度不同

制定新的优化模型:与问题2类似,但此时要考虑不同定日镜的尺寸和安装高度,这将增加优化变量的数量。

使用优化算法:使用适当的数值优化算法,搜索最佳的参数组合,以最大化单位镜面面积的年平均输出热功率,并满足额定功率的要求。

记录最佳参数组合:记录吸收塔的位置坐标、各定日镜尺寸、安装高度、定日镜位置,并按照给定格式保存到result3.xlsx文件中。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

2023高教社数学建模国赛A题 - 定日镜场的优化设计 - 思路 的相关文章

随机推荐

  • React通过docx-preview预览Word文档

    前言 在基于React的Web应用中 我们经常遇到需要预览和展示Word文档的需求 而docx preview是一个优秀的React组件库 可以帮助我们实现在Web页面上预览Word文档的功能 本文将介绍如何使用docx preview组件
  • React 路由使用-详细介绍

    路由初使用 抽象路由模块 src page Article index js const Article gt return div p 文章页 p div export default Article src router index j
  • selenium框架解析

    seleium框架解析 文章目录 seleium框架解析 前言 一 selenium驱动浏览器原理 二 selenium常用操作 1 四大操作 2 三大切换 3 三大等待 4 下拉框操作 5 时间控件操作 6 滚动条操作 7 文件操作 前言
  • java类的静态成员和非静态成员_Java SE之[静态成员/类成员]与[非静态成员/实例成员]【static】...

    定义 静态成员 又称类成员 使用static修饰符的方法和变量 非静态成员 又称实例成员 未使用static修饰符的方法和变量 结论 注 jdk1 8 测试源码 public class Main private int x 34 非静态变
  • linux path 多个目录,Linux下多路径Multipath的简单配置

    Linux下多路径Multipath的简单配置 1 启用Multipath 1 启动multipathd服务 service multipathd start 或者 etc init d multipathd start 2 修改multi
  • python房价预测_Python——决策树实战:california房价预测

    Python 决策树实战 california房价预测 编译环境 Anaconda Jupyter Notebook 首先 导入模块 1 importpandas as pd2 importmatplotlib pyplot as plt3
  • 手写算法-python代码实现Kmeans

    手写算法 python代码实现Kmeans 原理解析 代码实现 实例演示 sklearn对比 总结 原理解析 今天 我们来讲一下Kmeans 一种无监督聚类算法 也是最为经典的基于划分的聚类方法 它的思想是 对于给定的样本集 按照样本之间的
  • java中的 Set转List

    构造Map数据 Map
  • Mysql详解

    一 数据库的基本概念 数据库的英文单词 DataBase DB 数据库 用来存储和管理数据的仓库 数据库的特点 持久化存储数据 其实数据库就是一个文件系统 方便存储和管理数据 使用了统一的方式操作数据库 SQL 常见的数据库软件 MySQL
  • 两阶段最小二乘法_最小二乘法(Least Squares)简介

    最小二乘法简介 最小二乘法 Least Squares 是回归分析中的一种标准方法 它是用来近似超定系统 Overdetermined System 答案的一种方法 超定系统是指数学中的一种概念 一组包含未知数的方程组中 如果方程的数量大于
  • arm平台编译adb

    参考github https github com bonnyfone adb arm 本来的目的是在arm平台编译以后能够使用adb shell获取shell权限 然后就可以避开其他权限无法执行su的问题 最开始 先修改了android源
  • kodi刮削器 中文_手把手教您设置KODI播放器,3分钟打造家庭影院级媒体库,流畅播放NAS里的原盘电影!...

    创作立场声明 此文为比较基础的KODI播放器的保姆级安装和配置教程 希望可以帮助一些初入家庭影音的值友们 关于KODI KODI是一款播放器 也是一款媒体库管理软件 不仅在电视上可以安装 还可以在windows电脑上进行安装 当下载高清 高
  • Vue3记录

    Vue3快速上手 1 Vue3简介 2020年9月18日 Vue js发布3 0版本 代号 One Piece 海贼王 耗时2年多 2600 次提交 30 个RFC 600 次PR 99位贡献者 github上的tags地址 https g
  • 【1】TypeScript入门——基本认知

    一 基本认知 1 优点 TypeScript 更加可靠 它与使用 JavaScript 相比 不仅支持在任何地方直观地获取组件的接口定义 还能对属性 状态中的值是否为空进行自动检测并给出提示 容错处理 甚至还支持对 React JSX元素接
  • Java创建数组的方法

    最近学Java 一点小心得 希望和大家分享一下 第一次写文章 写的不好希望大家谅解 当然我也会尽力写好这篇文章 Java创建数组的方法大致有三种 说明 这里以int为数据类型 以arr为数组名来演示 一 声明并赋值 int arr 1 2
  • 嵌入式学习——c语言数据的输入输出

    嵌入式学习 c语言数据的输入输出 一 输入输出概念 1 2C语言本身不提供输入输出语句 1 3 include头文件放在程序中 二 printf输出数据 2 2格式字符 三 scanf输入数据 3 1scanf一般格式 四 输入输出函数 4
  • Spring Boot之分离测试和生产环境的应用配置

    多环境应用配置 将默认不变的配置 设置在application properties文件中 新建开发环境下的属性文件application dev properties 将开发中的配置 设置在该文件中 新建生产环境下的属性文件applica
  • “点两下”就能开发一个AI应用!百度砸亿元基金、千万算力要搞插件生态

    金磊 发自 武汉量子位 公众号 QbitAI 这年头 要想开发一个AI应用 怎么搞 只需要简单的 点击 动作就可以了 例如你想开发一个AI作画的App 只需要先点击与之相匹配的能力 简笔成画 根据手绘草图和语言 生成符合要求的图片 言语之美
  • fiddler设置好代理后不能上网(方法二)

    1 打开fiddler在工具栏找到Tools gt options Connections选项如下图 将Allow remote computers to connect 勾选上 然后记住默认8888这个端口 可更改 设置手机代理时会用到
  • 2023高教社数学建模国赛A题 - 定日镜场的优化设计 - 思路

    问题1 计算年平均光学效率和输出热功率 建立模型的坐标系 以圆形区域中心为原点 正东方向为x轴 正北方向为y轴 垂直地面向上为z轴 计算吸收塔和定日镜的位置 吸收塔建于圆形定日镜场中心 根据给定的数据确定定日镜的位置 计算每个定日镜的光学效