当前位置: 首页 > news >正文

2019年第八届数学建模国际赛小美赛B题数据中心冷出风口的设计解题全过程文档及程序

2019年第八届数学建模国际赛小美赛

B题 数据中心冷出风口的设计

原题再现:

  这是数据中心空调设计面临的一个问题。在一些数据中心,计算机机柜是开放的,在一个房间里排列成三到四排。冷却后的空气通过主管进入房间,并分为三到四个支管。支管的出口只能放在天花板上,向下吹,热空气从房间一侧的热空气安全壳中排出。每个支管的出口不应超过三个1。由于冷空气和热空气的混合,冷空气的利用效率降低。因此,我们需要考虑空气流量,以减少走廊和缝隙中浪费的制冷量。

  我们需要考虑天花板的高度、橱柜的高度以及不同橱柜的典型热输出。我们假设空调的总制冷量能够满足机房的运行要求。当我们确定机柜的布局时,如何设置空调出风口的位置是最好的解决方案?
在这里插入图片描述

整体求解过程概述(摘要)

  数据通信机房是一个巨大的耗能系统。近年来,随着网络通信技术的飞速发展,在机房的建设和改造过程中,面临着许多能源和安全问题。为了保证数据通信机房的高效冷却和安全运行的重要保证,运营商希望在正常工作的前提下改善机房内的气流组织,并在消除可能的安全隐患的前提下,将散热、功耗降至最低。针对此类工程应用问题,本文对机房空调配置及运行状况进行了综合评价。基于ANSYS的icepak模块,成功构建了机房内部温度场和气流方向,建立了机房数学模型,模拟了机房温度场。对数据通信机房的分布状况、冷负荷核算、实验设计和优化进行了研究。最后,建立筛选软件,提供不同的冷却方案。

  首先分析了机房的俯视图、侧视图和主视图,并在每个视图中设置了敏感区域和路径的特殊点。由于机房内的温度随时间呈线性变化,但随位置变化具有明显的区域性特征,为了能够简单地获得温度情况,可以对机房内的温度变化进行有限元模拟,在仿真结果中可以方便地得到特殊点的温度。在设定的路径上进行曲线拟合,得到温度随位置变化的函数。由于计算机室内的空间是特定的,通过在所有空间中依次设置路径,可以很容易地检测到空间中的任何位置的温度变化。然后对温度进行时间积分,得到热的变化。

模型假设:

  1、各种材料的导热系数是恒定的,不随时间变化。
  2、各出风口风量始终相同。
  3、各风口风速为固定值。
  4、假设不存在能源浪费(冷水机组效率为100%),达到机房设定温度所需的冷量为合理的参考冷负荷。
  5、假设日常空调运行前机房内外温度相同。
  6、假设机房电气设备冷负荷全年不变。
  7、假设房间位置的温度是恒定的。
  8、忽略空调内部水管阻力和自身能耗。
  9、假设出风口位置、底盘高度、室内吊顶高度、底盘类型为自变量。
  10、假设底盘随高度增加,热量均匀增加。

问题分析:

  由于支管的位置只能放在顶棚上,风冷气体只能从顶棚吹出,在顶棚处可以改变冷却气体的出口位置,以达到最佳的冷却效果。对于不同类型的出风口位置,可设置不同类型的机柜放电。由于从天花板吹来的冷却气体密度较高,部分气体与走廊和缝隙中的热风混合,消耗不必要的冷却,不会显著降低机柜的热量。这部分气体理论上需要实现。增加冷却效率的最小值。
  由于机柜的高度将直接影响机柜中服务器的数量,从而影响总产热量,因此机柜的高度对提高冷却效率起着重要作用。由于重力的下降,从天花板上的冷却气体出口吹出的冷却气体在不同高度会产生不同的影响。在最高空气温度下,冷却气体的密度高于冷却气体的密度,且冷却气体的下降速度较快。在逐渐下降的过程中,由于机柜释放的热量的影响,一些较热的气体和冷却气体混合,使冷却气体的温度逐渐上升和下降。冷却气体吸收并混合底盘在干燥垂直方向释放的所有热量,由于冷却气体的温升和温降速率,这部分气体的温度达到最大值。升温气体继续上升,为保证带走底盘热量的冷却气体能及时排出室外,冷却气体出口应尽量远离出口风口,以便及时带走底盘热量,但此时,离冷却口最远的机柜会因为少量冷却而达到非常高的温度。另外,由于不同的散热方式和不同机柜的散热方式不同,周围空气的热传导也不同,因此不同类型的机柜对散热也有重要影响。
  为了说明这一问题,本文设置了两组实验。第一组实验在风口在吊顶上位置固定的情况下,确定影响室内总冷量的主要因素,并采用显著性检验确定影响室内总冷量的主要因素。通过检验,计算显著性系数,粗略确定影响因素权重,建立底盘高度、室内吊顶高度与底盘类型之间的函数关系。第二组测试在确定箱体高度、室内天花板高度和底盘类型之间作为变量的函数关系的基础上,重置天花板上出风口的位置。

模型的建立与求解整体论文缩略图

在这里插入图片描述

在这里插入图片描述

全部论文请见下方“ 只会建模 QQ名片” 点击QQ名片即可

部分程序代码:(代码和文档not free)

function main() 
clc % clear screen 
clear all; % clear memory armor to speed up computing 
close all; % current figure images 
warning off; % mask does not have the necessary warning 
SamNum=20; % input sample number is 20 
TestSamNum=20; % test sample size is 20 
ForcastSamNum=2;% predicted sample size is 2 
HiddenUnitNum=8;% in the middle layer the number of hidden layers is 8 
InDim=3; % network input dimension is 3 
OutDim=2; % network output size is 2 % Raw data 
% 
sqrs=[0.46 0.46 0.46 0.44 0.44 0.44
0.35 0.50 0.50 0.48 0.48 0.47
0.30 0.55 0.52 0.45 0.50 0.45
0.23 0.59 0.55 0.46 0.53 0.40]; 
% 
sqjdcs=[0.520.52 0.48 0.48 0.48
0.56 0.55 0.49 0.55 0.54
0.59 0.59 0.58 0.58 0.55
0.61 0.65 0.61 0.59 0.59
0.63 0.68 0.62 0.62 0.62]; 
sqglmj=[0.52 0.52 0.48 0.48 0.48
0.56 0.55 0.49 0.55 0.54
0.59 0.59 0.58 0.58 0.55
0.61 0.65 0.61 0.59 0.59
0.63 0.68 0.62 0.62 0.62]; 
% 
glkyl=[0.52 0.52 0.48 0.48 0.48
0.56 0.55 0.49 0.55 0.54
0.59 0.59 0.58 0.58 0.55
0.61 0.65 0.61 0.59 0.59
0.63 0.68 0.62 0.62 0.62]; 
% 
glhyl=[0.45 0.45 0.45 0.55 0.55 0.55
0.42 0.50 0.55 0.56 0.59 0.58
0.40 0.52 0.58 0.61 0.62 0.62
0.38 0.54 0.61 0.60 0.64 0.61
0.35 0.59 0.64 0.61 0.65 0.63]; p=[sqrs;sqjdcs;sqglmj]; % input data matrixt 
t=[glkyl;glhyl]; % target data matrix 
[SamIn,minp,maxp,tn,mint,maxt]=premnmx(p,t); % Initial sample pair (input and output) initialization rand('state',sum(100*clock)); % Generate random numbers based on system clock seeds 
NoiseVar=0.01; % noise intensity is 0.01 (the purpose of adding noise is to prevent network overfitting)
Noise=NoiseVar*randn(2,SamNum); % Generate noise 
SamOut=tn+Noise; % Add noise to the output sample TestSamIn=SamIn; % The input sample is the same as the test sample because the sample size is too small 
TestSanOut=SamOut; % The output sample is the same as the test sample MaxEpochs=50000; % Maximum training times is 50000 
lr=0.035; % Learning rate is 0.035 
E0=0.65*10^(-3); % Target error is 0.65*10^(-3) 
W1=0.5*rand(HiddenUnitNum,InDim)-0.1;% Initializes the weight between the input layer and the hidden layer 
B1=0.5*rand(HiddenUnitNum,1)-0.1;% Initializes the weight between the input layer and the hidden layer 
W2=0.5*rand(OutDim,HiddenUnitNum)-0.1;% Initializes the weight between the output layer and the hidden layer 
B2=0.5*rand(OutDim,1)-0.1;% Initialize the weight between the output layer and the hidden layer 
ErrHistory=[]; % Pre-occupies memory for intermediate variables 
for i=1:MaxEpochs HiddenOut=logsig(W1*SamIn+repmat(B1,1,SamNum)); % Hidden layer network output NetworkOut=W2*HiddenOut+repmat(B2,1,SamNum); % Output layer network output Error=SamOut-NetworkOut; % The difference between the actual output and the network output SSE=sumsqr(Error); % Energy function (square of error) ErrHistory=[ErrHistory SSE]; if SSE<E0,break,end % Jump out of the learning loop if the error is met % The following 6 lines are the core programs of the BP network % They are weights (values) dynamically adjusted for each step according to the energy function negative gradient descent 
principle Delta2=Error; Delta1=W2'*Delta2.*HiddenOut.*(1-HiddenOut); % Correct the weights and thresholds between the output layer and the hidden layer dW2=Delta2*HiddenOut'; dB2=Delta2*ones(SamNum,1); 
% Correct the weights and thresholds between the input layer and the hidden layerdW1=Delta1*SamIn'; dB1=Delta1*ones(SamNum,1); W2=W2+lr*dW2; B2=B2+lr*dB2; W1=W1+lr*dW1; B1=B1+lr*dB1; end HiddenOut=logsig(W1*SamIn+repmat(B1,1,TestSamNum)); % Implicit layer output prediction 
NetworkOut=W2*HiddenOut+repmat(B2,1,TestSamNum); % Output layer output prediction result 
a=postmnmx(NetworkOut,mint,maxt); % Restore the results of the network output layer 
x=1990:2009; % Timeline scale 
newk=a(1,:); % Network output passenger traffic 
newh=a(2,:); % Network output freight volume 
figure; 
subplot(2,1,1);plot(x,newk,'r-o',x,glkyl,'b--+'); 
legend('network output', 'actual amount'); 
xlabel('Year'); ylabel('Passenger traffic / 10,000 people'); 
title('Source program neural network passenger traffic learning and test comparison chart'); subplot(2,1,2);plot(x,newh,'r-o',x,glhyl,'b--+'); % Drawing a comparison chart
legend('network output', 'actual amount'); 
xlabel('Year'); ylabel('Passenger traffic / 10,000 people'); 
title(' source program neural network freight volume learning and test comparison chart '); % Use trained data for forecasting 
% When using the trained network to predict the new data pnew, it should also be processed 
pnew=[73.39 75.55 3.9635 4.0975 0.9880 1.0268]; % 2018 related data 
pnewn=tramnmx(pnew,minp,maxp); %normalizes the new data using the normalized parameters of the original input data 
HiddenOut=logsig(W1*pnewn+repmat(B1,1,ForcastSamNum)); % 
anewn=W2*HiddenOut+repmat(B2,1,ForcastSamNum); % 
% Restore the network predicted data to the original order of magnitude 
format short 
anew=postmnmx(anewn,mint,maxt)
Differential Evolution Algorithm MATLAB Source Code
N = 20; %set population
F = 0.5; %sets the differential scaling factor
P_cr = 0.5; %sets the crossover probability
T = 300; %sets the maximum number of iterations
f = @(x,y) -20.*exp(-0.2.*sqrt((x.^2+y.^2)./2))-exp((cos(2.*pi.*x)+cos(2.*pi.*y))./2)+20+exp(1); % defines the objective function
%population initialization
population = -4 + rand(N,2).*8;
t = 0; % algebra initialization
%starts iteration
while t < T% variationH_pop = [];for i = 1:Nindex = round(rand(1,3).*19)+1;add_up = population(index(1),:) + F.*(population(index(2),:)-population(index(3),:));H_pop = [H_pop; add_up];end
全部论文请见下方“ 只会建模 QQ名片” 点击QQ名片即可

相关文章:

2019年第八届数学建模国际赛小美赛B题数据中心冷出风口的设计解题全过程文档及程序

2019年第八届数学建模国际赛小美赛 B题 数据中心冷出风口的设计 原题再现&#xff1a; 这是数据中心空调设计面临的一个问题。在一些数据中心&#xff0c;计算机机柜是开放的&#xff0c;在一个房间里排列成三到四排。冷却后的空气通过主管进入房间&#xff0c;并分为三到四个…...

mmpose 使用笔记

目录 自己整理的可以跑通的代码&#xff1a; 图片demo&#xff1a; 检测加关键点 自己整理的可以跑通的代码&#xff1a; 最强姿态模型 mmpose 使用实例-CSDN博客 图片demo&#xff1a; python demo/image_demo.py \tests/data/coco/000000000785.jpg \configs/body_2d_k…...

<url-pattern>/</url-pattern>与<url-pattern>/*</url-pattern>的区别

<url-pattern>/</url-pattern> servlet的url-pattern设置为/时&#xff0c; 它仅替换servlet容器的默认内置servlet&#xff0c;用于处理所有与其他注册的servlet不匹配的请求。直白点说就是&#xff0c;所有静态资源&#xff08;js&#xff0c;css&#xff0c;ima…...

Spring IoCDI

文章目录 一、Spring、Spring boot、Spring MVC之间的区别1. Spring 是什么2. 区别概述 一、Spring、Spring boot、Spring MVC之间的区别 1. Spring 是什么 Spring 是包含了众多工具方法的 IoC 容器 &#xff08;1&#xff09;容器 容器是用来容纳某种物品的基本装置&#xf…...

vue使用el-tag完成添加标签操作

需求&#xff1a;做一个添加标签的功能&#xff0c;点击添加后输入内容后回车可以添加&#xff0c;并且标签可以删除 1.效果 2.主要代码讲解 鼠标按下后触发handleLabel函数&#xff0c;根据回车的keycode判断用户是不是按下的回车键&#xff0c;回车键键值为13&#xff0c;用…...

ACM-MM2023 DITN详解:一个部署友好的超分Transformer

目录 1. Introduction2. Method2.1. Overview2.2. UFONE2.3 真实场景下的部署优化 3. 结果 Paper: Unfolding Once is Enough: A Deployment-Friendly Transformer Unit for Super-Resolution Code: https://github.com/yongliuy/DITN 1. Introduction CNN做超分的缺点 由于卷…...

STM32超声波——HC_SR04

文章目录 一.超声波图片二.时序图三.超声波流程四.单位换算五.取余计算六.换算距离七.超声波代码 一.超声波图片 测量距离&#xff1a;2cm——400cm 二.时序图 (1).以下时序图要先提供一个至少10us的脉冲触发信号&#xff0c;告诉单片机我准备好了&#xff0c;然后该超声波…...

[Excel] vlookup函数

VLOOKUP用法 VLOOKUP(lookup_value, table_array, col_index_num, [range_lookup])其中&#xff1a; lookup_value是你要查找的值table_array是你要在其中进行查找的表格区域col_index_num是你要返回的在table_array中列索引号range_lookup是一个可选参数&#xff0c;用于指定…...

Python入门第5篇(爬虫相关)

目录 爬虫初步说明 html相关基础 urllib之读取网页内容 http相关基础 requests之webapi调用 爬虫初步说明 爬虫&#xff0c;一句话来说&#xff0c;即模拟浏览器爬取一些内容&#xff0c;如自动下载音乐、电影、图片这种的 具体可能是直接访问网页进行解析&#xff0c;也…...

单元测试二(实验)-云计算2023.12-云南农业大学

1、实践系列课《深入浅出Docker应用》 https://developeraliyun.com/adc/scenarioSeries/713c370e605e4f1fa7be903b80a53556?spma2c6h.27088027.devcloud-scenarioSeriesList.13.5bb75b8aZHOM2w 容器镜像的制作实验要求 创建Dockerfile文件: FROM ubuntu:latest WORKDIR data…...

Axure动态面板的使用以及示例分享

目录 一. 什么是动态面板 二. 动态面板教程——以轮播图为例 2.1 创建动态面板 2.2 动态面板自适应大小 2.3 重复状态&#xff0c;将图片导入 2.4 添加交互事件——图片切换 2.5 效果展示 三. 多方式登录示例展示 四. 后台主界面左侧菜单栏示例展示 一. 什么是动态面板…...

容斥原理的并

文章目录 简介AcWing 890. 能被整除的数思路解析CODE 简介 推荐题解&#xff1a;https://www.acwing.com/solution/content/126553/ 画了图&#xff0c;清晰易懂&#xff0c;懒得打字了。 总之就是以下公式&#xff1a; S S 1 S 2 S 3 − S 1 ∩ S 2 − S 1 ∩ S 3 − S 2 …...

JavaSE第7篇:封装

文章目录 一、封装1、好处:2、使用 二、四种权限修饰符三、构造器1、作用2、说明3、属性赋值的过程 一、封装 封装就是将类的属性私有化,提供公有的方法访问私有属性 不对外暴露打的私有的方法 单例模式 1、好处: 1.只能通过规定的方法来访问数据 2.隐藏类的实例细节,方便…...

mysql数据库相关知识【MYSQL】

mysql数据库相关知识【MYSQL】 一. 库1.1 登录数据库管理系统1.2 什么是数据库1.2.1 mysqld与mysql 1.3 编码集和校验集1.3.1 什么是编码集和校验集1.3.2 查看库对应的编码集和校验集1.3.3 用指定的编码集和校验集 1.4 库的操作 一. 库 1.1 登录数据库管理系统 这个算是第一个…...

android studio 创建按钮项目

1&#xff09;、新建一个empty activity项目&#xff0c;切换到project视图&#xff1a; 2&#xff09;、修改app\src\main\res\layout\activity_main.xml文件&#xff0c;修改后如下&#xff1a; <?xml version"1.0" encoding"utf-8"?> <andr…...

gitee提交代码步骤介绍(含git环境搭建)

1、gitee官网地址 https://gitee.com; 2、Windows中安装git环境 参考博客&#xff1a;《Windows中安装Git软件和TortoiseGit软件》&#xff1b; 3、设置用户名和密码 这里的用户名和密码就是登录gitee网站的用户名和密码如果设置错误&#xff0c;可以在Windows系统的“凭据管理…...

【MyBatis-Plus】常用的插件介绍(乐观锁、逻辑删除、分页)

&#x1f973;&#x1f973;Welcome Huihuis Code World ! !&#x1f973;&#x1f973; 接下来看看由辉辉所写的关于MyBatis-Plus的相关操作吧 目录 &#x1f973;&#x1f973;Welcome Huihuis Code World ! !&#x1f973;&#x1f973; 一.为什么要使用MyBatis-Plus中的插…...

DApp测试网络Ganache本地部署并实现远程连接

文章目录 前言1. 安装Ganache2. 安装cpolar3. 创建公网地址4. 公网访问连接5. 固定公网地址 前言 Ganache 是DApp的测试网络&#xff0c;提供图形化界面&#xff0c;log日志等&#xff1b;智能合约部署时需要连接测试网络。 Ganache 是一个运行在本地测试的网络,通过结合cpol…...

好用的硬盘分区工具,傲梅分区助手 V10.2

傲梅分区助手软件可以帮助用户在硬盘上创建、调整、合并、删除分区&#xff0c;以及管理磁盘空间等操作。它可以帮助你进行硬盘无损分区操作。 支持系统 目前这款软件支持 Windows 7、Windows 8、Windows 10、Windows 11 等个人系统&#xff0c;还支持 Windows 2012/2016/2019…...

【华为鸿蒙系统学习】- HarmonyOS4.0开发|自学篇

​ &#x1f308;个人主页: Aileen_0v0 &#x1f525;热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法 &#x1f4ab;个人格言:"没有罗马,那就自己创造罗马~" 目录 HarmonyOS 4.0 技术介绍&#xff1a; HarmonyOS三大特征&#xff1a; 1.实现硬件互助&#…...

.Net框架,除了EF还有很多很多......

文章目录 1. 引言2. Dapper2.1 概述与设计原理2.2 核心功能与代码示例基本查询多映射查询存储过程调用 2.3 性能优化原理2.4 适用场景 3. NHibernate3.1 概述与架构设计3.2 映射配置示例Fluent映射XML映射 3.3 查询示例HQL查询Criteria APILINQ提供程序 3.4 高级特性3.5 适用场…...

(二)原型模式

原型的功能是将一个已经存在的对象作为源目标,其余对象都是通过这个源目标创建。发挥复制的作用就是原型模式的核心思想。 一、源型模式的定义 原型模式是指第二次创建对象可以通过复制已经存在的原型对象来实现,忽略对象创建过程中的其它细节。 📌 核心特点: 避免重复初…...

srs linux

下载编译运行 git clone https:///ossrs/srs.git ./configure --h265on make 编译完成后即可启动SRS # 启动 ./objs/srs -c conf/srs.conf # 查看日志 tail -n 30 -f ./objs/srs.log 开放端口 默认RTMP接收推流端口是1935&#xff0c;SRS管理页面端口是8080&#xff0c;可…...

华为OD机试-食堂供餐-二分法

import java.util.Arrays; import java.util.Scanner;public class DemoTest3 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseint a in.nextIn…...

根据万维钢·精英日课6的内容,使用AI(2025)可以参考以下方法:

根据万维钢精英日课6的内容&#xff0c;使用AI&#xff08;2025&#xff09;可以参考以下方法&#xff1a; 四个洞见 模型已经比人聪明&#xff1a;以ChatGPT o3为代表的AI非常强大&#xff0c;能运用高级理论解释道理、引用最新学术论文&#xff0c;生成对顶尖科学家都有用的…...

Unsafe Fileupload篇补充-木马的详细教程与木马分享(中国蚁剑方式)

在之前的皮卡丘靶场第九期Unsafe Fileupload篇中我们学习了木马的原理并且学了一个简单的木马文件 本期内容是为了更好的为大家解释木马&#xff08;服务器方面的&#xff09;的原理&#xff0c;连接&#xff0c;以及各种木马及连接工具的分享 文件木马&#xff1a;https://w…...

Spring是如何解决Bean的循环依赖:三级缓存机制

1、什么是 Bean 的循环依赖 在 Spring框架中,Bean 的循环依赖是指多个 Bean 之间‌互相持有对方引用‌,形成闭环依赖关系的现象。 多个 Bean 的依赖关系构成环形链路,例如: 双向依赖:Bean A 依赖 Bean B,同时 Bean B 也依赖 Bean A(A↔B)。链条循环: Bean A → Bean…...

【分享】推荐一些办公小工具

1、PDF 在线转换 https://smallpdf.com/cn/pdf-tools 推荐理由&#xff1a;大部分的转换软件需要收费&#xff0c;要么功能不齐全&#xff0c;而开会员又用不了几次浪费钱&#xff0c;借用别人的又不安全。 这个网站它不需要登录或下载安装。而且提供的免费功能就能满足日常…...

Python+ZeroMQ实战:智能车辆状态监控与模拟模式自动切换

目录 关键点 技术实现1 技术实现2 摘要&#xff1a; 本文将介绍如何利用Python和ZeroMQ消息队列构建一个智能车辆状态监控系统。系统能够根据时间策略自动切换驾驶模式&#xff08;自动驾驶、人工驾驶、远程驾驶、主动安全&#xff09;&#xff0c;并通过实时消息推送更新车…...

Proxmox Mail Gateway安装指南:从零开始配置高效邮件过滤系统

&#x1f49d;&#x1f49d;&#x1f49d;欢迎莅临我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐&#xff1a;「storms…...