2022年亚太杯APMCM数学建模大赛
D题 储能系统中传热翅片的结构优化
原题再现
高效储能技术是解决可再生能源和余热资源波动性和间歇性的核心技术。相变蓄热以其较高的储能密度和近恒温蓄热放热而得到广泛应用。固-液相变材料具有相变前后相变潜热高、体积变化小等特点,易于储存和封装。然而,由于其导热系数普遍较低,导致蓄热和放热过程较长,成为制约其广泛应用的关键因素。为了提高蓄热系统的快速传热能力,需要对系统的结构设计和参数进行优化研究。目前,添加翅片作为一种简单、经济、有效的强化固液相变换热过程的手段得到了广泛的应用。
某公司需要对相变蓄热系统中水箱内的传热翅片结构进行设计,以进一步提高蓄热产品的传热性能。蓄热系统的核心部件是管壳式蓄热罐,如图1所示。横截面如图2所示。圆环需要填充蓄热式PCM和翅片结构。当相变材料吸热时,高温工质在内管内循环,储存和利用其余热。当相变材料释放热量时,低温工作流体在内管中循环,吸收和再利用相变材料中储存的热量。
公司拟开发小型相变蓄热罐,罐内径0.02 m,罐外径0.05 m,翅片导热系数214 W/(m K),相变材料密度780 kg/m3,相变材料导热系数0.15 W/(m K),相变温度333 K,管外绝热,并且内部充满温度为373 K的工作流体。现在需要您的团队回答以下问题,以提高蓄热系统的传热速率。
问题1:假设采用图3所示的矩形翅片均匀分布蓄热水箱的横截面。矩形翅片的长度为0.018 m,宽度为0.006 m,翅片之间的间隔角为θ。固态PCM通过吸收管中工作流体的热能来加热。请模拟蓄热罐中的传热过程,优化间隔角θ,并说明在此情况下,PCS平均温度从室温(293 K)上升到相变温度所需的时间。
问题2:翅片的形状和几何尺寸对蓄热器的传热速率有很大影响。以图4为例,对三角形翅片的尺寸和分布进行优化,研究其尺寸对相变材料升温速率的影响,并与问题1中矩形翅片结构的传热效果进行对比分析。
问题3:进一步优化翅片形状、参数和空间分布的设计,以实现相变材料的最佳传热能力。
问题4:请写信给公司,建议蓄热水箱的翅片设计。
整体求解过程概述(摘要)
公式部分由于md5码上传耗时,因此以特殊字符代替
在蓄热器中引入翅片是克服相变材料导热系数低,提高蓄热效率的有效途径传输效率。采用拓扑优化和分形优化相结合的方法,对翅片的结构和分布进行了优化。
针对问题1,建立了计算流体力学(CFD)的二维有限元模型(FEM)来研究换热过程。用焓-孔隙率法描述相变材料的相变。相变开始于矩形翅片周围,随后延伸至油箱外壁,导致PCM从固相变为液相。考虑到相变材料温度从293K上升到333K,初始相变时间(�1)在� 72°、60°、45°、36°、30°和24°的相变时间分别为47.6min、39.2min、31.4min、25.2min、20.7min、17.2min(�2)分别为158.5min、142.9min、123.4min、106.2min、92.4min、81.9min。这个�1、采用液相分数(fm)和强化比(ER)作为热行为评价指标。最优� 最小为24°�17.2min和最大值中的1个�� 12.3%。
对于问题2�, 翅片长度(�), 和宽度(�) 系统地研究了三角形翅片的性能。结果表明:� =与对照组相比,24°提高了63.83%、56.34%、46.73%、46.73%和31.71%的升温速率�=72°、60°、45°、36°、30°。� =0.024m比0.024m分别提高42.17%、70.04%和79.52%� =0.006m、0.012m和0.018m。� =0.01m升温速率比对照分别提高7.60%、22.55%、35.91%�=0.008m、0.006m、0.004m。fin参数的优先级顺序为� > � > �. 矩形翅片的加热效率�=72°、45°、30°和24°比三角形风机分别提高11.95%、14.99%、15.43%和15.62%。
针对问题3,提出了两种优化模型:拓扑优化模型和分形优化模型。对于拓扑优化,采用变密度法进行图像重建,获得最高平均温度。对于分形优化,最佳父子对象根据Murray定律和生长率生成分形树。结果表明,与矩形翅片和三角形翅片相比,拓扑优化分别提高了18.84%和28.17%,分形优化分别提高了14.01%和24.25%。
对于问题4,向fin公司写了一封推荐信,提出了优化设计的建议。
模型假设:
1) PCM的物理性质是均匀的、各向同性的、与温度无关的(液态密度除外)。
2) 相变材料的相变过程被认为是层流的、不稳定的、不可压缩的。
3) 液体相变材料的自然对流符合Boussinesq假设。
4) 假定液体分数随温度线性变化。
5) 模拟过程中忽略了粘性耗散的影响。
6) 忽略对环境的热损失。
问题重述:
问题背景
双壁相变储能罐是一种常用的储能材料。热传输液体流入油箱并将能量损失给PCM。PCM通过从固体到液体的相变吸收热量,并从液体到固体释放热量。翅片嵌入油箱壁之间的PCM中,以加速传热过程。使用翅片可缩短熔化时间,显著提高储能率。为了促进传热过程,需要优化翅片分布。
问题重述
问题1:给出了矩形翅片均匀分布的横截面。提出了模拟储罐内传热过程的模型。研究影响计算了相变材料在293K~333K温度范围内的传热时间。
问题2:基于三角形翅片的新截面,研究翅片尺寸对传热的影响。将结果与矩形翅片。
问题3:提出一个数学模型,以获得最佳的鳍分布。
问题4:写一封推荐信给当时的fin公司,以获得最佳的fin设计。
模型的建立与求解整体论文缩略图
全部论文及程序请见下方" 只会建模 QQ名片" 点击QQ名片即可
程序代码:
部分程序如下:
bash
import numpy
# sigmoid function:scipy.special.expit
import scipy.special
import matplotlib.pyplot
# %matplotlib inline
class neuralNetwork:
# initialise the neural network
def __init__(self, inputnodes, hiddennodes, outputnodes, learningrate):
# set nodes and learningrate
self.inodes = inputnodes
self.hnodes = hiddennodes
self.onodes = outputnodes
self.lr = learningrate
# set weight,include weight_input_hidden,weight_hidden_output (random)
self.wih = numpy.random.normal(0.0, pow(self.hnodes, -0.5), (self.hnodes, self.inodes))
self.who = numpy.random.normal(0.0, pow(self.onodes, -0.5), (self.onodes, self.hnodes))
# sigmoid function
self.activation_function = lambda x: scipy.special.expit(x)
pass
def train(self, inputs_list, targets_list):
# convert inputs list to 2d array
inputs = numpy.array(inputs_list, ndmin=2).T
targets = numpy.array(targets_list, ndmin=2).T
# calculate signals into hidden layer
hidden_inputs = numpy.dot(self.wih, inputs)
hidden_outputs = self.activation_function(hidden_inputs)
# calculate signals into output layer
final_inputs = numpy.dot(self.who, hidden_outputs)
final_outputs = self.activation_function(final_inputs)
output_errors = targets - final_outputs
# hidden_errors = who.T * output_errors
hidden_errors = numpy.dot(self.who.T, output_errors)
# update the weights for the links between the hidden and output layers
self.who += self.lr * numpy.dot((output_errors * final_outputs * (1.0 - final_outputs)),
numpy.transpose(hidden_outputs))
# updata the weights for the links between the input and hidden layers
self.wih += self.lr * numpy.dot((hidden_errors * hidden_outputs * (1.0 - hidden_outputs)),
numpy.transpose(inputs))
pass
def query(self, inputs_list):
inputs = numpy.array(inputs_list, ndmin=2).T
hidden_inputs = numpy.dot(self.wih, inputs)
hidden_outputs = self.activation_function(hidden_inputs)
final_inputs = numpy.dot(self.who, hidden_outputs)
final_outputs = self.activation_function(final_inputs)
return final_outputs