基于MATLAB的冰块变化仿真

embedded/2025/3/16 11:48:39/

如图1所示,边长为5cm的冰块,初始温度为-2℃,放在25℃的环境中自然冷却,对流换热系数为10W/m²K,本文将通过matlab编程求解冰块融化的过程,计算其温度场。

图片

图1 案例示意图

02

温度场计算

本文通过matlab分别计算t=1min、5min、10min和20min后的温度云图及瞬态温度变化过程(计算总时间30min),计算结果展示如下表:

图片

图片

1min

5min

图片

图片

10min

20min

 

% 参数设置
Lx = 0.05; Ly = 0.05;   % 冰块尺寸(5cm x 5cm)
nx = 31; ny = 31;         % 网格数量
dx = Lx/(nx-1); dy = Ly/(ny-1);
T_initial = -2;           % 初始温度(℃)
T_env = 25;               % 环境温度(℃)
h = 10;                   % 对流换热系数(W/m²K)% 材料属性(冰)
rho_ice = 920;           % 密度(kg/m³)
k_ice = 2.18;            % 导热系数(W/mK)
c_ice = 2100;            % 比热容(J/kgK)
L = 334000;              % 潜热(J/kg)% 材料属性(水)
k_water = 0.6;           % 导热系数(W/mK)
c_water = 4200;          % 比热容(J/kgK)% 时间参数
alpha_ice = k_ice/(rho_ice*c_ice);
dt = 1 * dx^2/(4*alpha_ice); % 时间步长
total_time = 605;             % 总模拟时间(秒)
n_steps = round(total_time/dt);% 初始化
T = T_initial * ones(nx, ny);
f = zeros(nx, ny);       % 液相分数
k = k_ice * ones(nx, ny);
c = c_ice * ones(nx, ny);% 创建图形窗口
figure;
h_plot = pcolor(T);
shading interp;          % 双线性插值
colormap(jet(1024));     % 1024级颜色渐变
colorbar;
axis equal tight;
title('Temperature (℃)');% 预计算常数
mass = rho_ice * dx^2;  % 每个节点的质量(假设厚度为1m)% 主循环
for step = 1:n_stepsT_old = T;f_old = f;k_old = k;c_old = c;% ========== 向量化热流计算 ========== %% 初始化各方向热流矩阵[Q_east, Q_west, Q_north, Q_south] = deal(zeros(nx, ny));% 东向热流 (i < nx)if nx > 1k_east = 2 * k_old(1:end-1,:) .* k_old(2:end,:) ./ (k_old(1:end-1,:) + k_old(2:end,:) + eps);Q_east(1:end-1,:) = k_east .* (T_old(2:end,:) - T_old(1:end-1,:));end% 西向热流 (i > 1)if nx > 1k_west = 2 * k_old(2:end,:) .* k_old(1:end-1,:) ./ (k_old(2:end,:) + k_old(1:end-1,:) + eps);Q_west(2:end,:) = k_west .* (T_old(1:end-1,:) - T_old(2:end,:));end% 北向热流 (j < ny)if ny > 1k_north = 2 * k_old(:,1:end-1) .* k_old(:,2:end) ./ (k_old(:,1:end-1) + k_old(:,2:end) + eps);Q_north(:,1:end-1) = k_north .* (T_old(:,2:end) - T_old(:,1:end-1));end% 南向热流 (j > 1)if ny > 1k_south = 2 * k_old(:,2:end) .* k_old(:,1:end-1) ./ (k_old(:,2:end) + k_old(:,1:end-1) + eps);Q_south(:,2:end) = k_south .* (T_old(:,1:end-1) - T_old(:,2:end));end% 边界对流条件Q_boundary = zeros(nx, ny);Q_boundary(1,:)   = h*(T_env - T_old(1,:))*dx;   % 西边界Q_boundary(end,:) = h*(T_env - T_old(end,:))*dx; % 东边界 Q_boundary(:,1)   = h*(T_env - T_old(:,1))*dx;   % 南边界Q_boundary(:,end) = h*(T_env - T_old(:,end))*dx; % 北边界% 总热流Q_total = Q_east + Q_west + Q_north + Q_south + Q_boundary;delta_Q = Q_total * dt;% ========== 向量化相变计算 ========== %T_new = T_old;f_new = f_old;% 计算材料属性掩膜is_water = f_old >= 1;% 情况1: 冰升温(T < 0)ice_mask = T_old < 0 & ~is_water;delta_T_ice = delta_Q ./ (mass * c_ice);T_new(ice_mask) = T_old(ice_mask) + delta_T_ice(ice_mask);% 处理过零冰节点over_zero = ice_mask & T_new >= 0;Q_used = (0 - T_old(over_zero)) * mass * c_ice;Q_remaining = delta_Q(over_zero) - Q_used;Q_remaining(Q_remaining < 0) = 0;delta_f = Q_remaining / (L * mass);T_new(over_zero) = 0;f_new(over_zero) = delta_f;% 情况2: 相变中(T == 0且f < 1)melting_mask = (T_old == 0) & (f_old < 1);delta_f_melt = delta_Q(melting_mask) / (L * mass);f_new(melting_mask) = f_old(melting_mask) + delta_f_melt;% 情况3: 水升温(T >= 0且f >= 1)water_mask = ~ice_mask & ~melting_mask;delta_T_water = delta_Q(water_mask) ./ (mass * c_water);T_new(water_mask) = T_old(water_mask) + delta_T_water(water_mask);% 处理完全融化full_melt = f_new > 1;excess = f_new(full_melt) - 1;T_new(full_melt) = excess * L / c_water;f_new(full_melt) = 1;% 更新材料属性k = k_water * full_melt + k_ice * ~full_melt;c = c_water * full_melt + c_ice * ~full_melt;% 更新场变量T = T_new;f = f_new;% ========== 可视化更新 ========== %if mod(step, 10) == 0set(h_plot, 'CData', T);title(sprintf('Time: %.2f s', step*dt));drawnow;end
end% 显示最终结果
figure;
pcolor(T);
shading interp;
colormap(jet(1024));
colorbar;
axis equal tight;
title('Final Temperature Distribution (℃)');
xlabel('X');
ylabel('Y');


http://www.ppmy.cn/embedded/173054.html

相关文章

RAG技术深度解析:从原理到企业级应用实战

一、RAG技术架构的核心价值 1.1 大模型时代的认知瓶颈 当前主流大语言模型(LLM)存在两大核心缺陷: 静态知识固化:GPT-4等模型的训练数据截止于2023年9月,无法实时更新行业动态领域专业知识缺失:在医疗、法律等高精度场景中,模型幻觉率高达12%-35%RAG(检索增强生成)通…

C++和C的区别

C和C语言虽然共享相似的语法&#xff0c;但在设计理念和功能特性上有显著区别。以下是两者的主要差异&#xff1a; 1. 编程范式 C&#xff1a;纯过程式编程&#xff0c;强调函数和步骤。C&#xff1a;支持多范式&#xff0c;包括面向对象编程&#xff08;类、继承、多态&…

linux Swap 分区

Swap 分区在 Linux 系统中的作用 Swap 分区&#xff08;交换分区&#xff09;相当于虚拟内存&#xff0c;在物理内存&#xff08;RAM&#xff09;不够用时&#xff0c;系统会将一部分磁盘空间作为虚拟内存使用。主要作用如下&#xff1a; 缓解内存不足&#xff1a;当物理内存…

内网渗透之内网基础知识(一)

工作组 工作组:工作组是局域网中的一个概念&#xff0c;他是长久的资源管理模式。默认情况下使 用工作组方式进行资源管理&#xff0c;将不同的 computer 按照不同的要求分类到不同的组 域:用来描述一种架构&#xff0c;和“工作组”相对应&#xff0c;由工作组升级而来的高级…

Winfrom基础知识41-60

41. 如何实现自定义控件的复杂绘制&#xff1f; 答案&#xff1a; 继承 Control 类并重写 OnPaint 方法&#xff0c;使用 Graphics 对象进行复杂绘制。 示例&#xff1a; public class CustomGraph : Control {protected override void OnPaint(PaintEventArgs e){base.OnPa…

TCP/IP原理详细解析

前言 TCP/IP是一种面向连接&#xff0c;可靠的传输&#xff0c;传输数据大小无限制的。通常情况下&#xff0c;系统与系统之间的http连接需要三次握手和四次挥手&#xff0c;这个执行过程会产生等待时间。这方面在日常开发时需要注意一下。 TCP/IP 是互联网的核心协议族&…

docker指令整理

以下是 Docker 常用指令的归纳整理&#xff0c;涵盖镜像管理、容器操作、网络配置、数据卷等核心场景&#xff0c;方便快速查阅&#xff1a; 一、镜像管理 命令说明示例docker pull拉取镜像docker pull nginx:latestdocker push推送镜像到仓库docker push my-registry.com/my-…

C++:二分习题

1. 借教室 503. 借教室 - AcWing题库 在大学期间&#xff0c;经常需要租借教室。 大到院系举办活动&#xff0c;小到学习小组自习讨论&#xff0c;都需要向学校申请借教室。 教室的大小功能不同&#xff0c;借教室人的身份不同&#xff0c;借教室的手续也不一样。  面对海…