柱体内温度分布图 MATLAB
对于下底面和侧面绝热,上底面温度与半径平方成正比的柱体,绘制柱体内温度分布图。
这里给出两种尝试:1、散点图;2、切片云图
1. 散点图仿真
首先使用解析算法求的场解值的解析表达,其次求解Bessel函数零点,带入场解表达。对于空间点阵划分,采用每一定半径划分圆周上等数量点,在总方向复制累计。
下面给出散点图的仿真代码,Nt为划分精度,Nt越大空间划分点越多。
% function y = cal117(R,h,Nt,N)
close all; clear all
R = ;
h = ;
Nt = ; %% 求bessel函数零点
pi0 = besal_pi0(,Nt); %% 计算圆柱体分割点坐标,作为u的前三列坐标
m = ;
cot = ;
for i = :
[x_,y_,z_] = cylinder((R*i/),m-);
for k = : m
for j = :
cot = cot + ;
u(cot,) = x_(,k);
u(cot,) = y_(,k);
u(cot,) = h*j/();
u(cot,) = ; %test
end
end
end %% 计算温度值 u第四列为温度值
for i = : cot
for j = : Nt
ct(j) = *(R^)*(-/(pi0(j)^))/(pi0(j)*besselj(,pi0(j))*sinh(pi0(j)*h/R));
u(i,) = u(i,)+ ct(j)*sinh(pi0(j)*u(i,)/R)*besselj(,pi0(j)*sqrt(u(i,)^+u(i,)^)/R);
if(u(i,)>)
u(i,)=NaN;
end
end
end %% 图像绘制
[x0,y0,z0] = cylinder(R,); %画圆柱体轮廓
z0 = h * z0;
plot3(x0(,:),y0(,:),z0(,:),'k');hold on
plot3(x0(,:),y0(,:),z0(,:),'k');hold on
for i = : :
plot3([x0(,i),x0(,i)],[y0(,i),y0(,i)],[z0(,i),z0(,i)],'k');hold on
end x = u(:,);
y = u(:,);
z = u(:,);
c = u(:,); % [X,Y] = meshgrid(linspace(min(x),max(x),)',linspace(min(y),max(y),30)');
% Z = griddata(x,y,z,X,Y,'v4');
% C =griddata(x,y,c,X,Y,'v4'); scatter3(x,y,z,,'filled','k');
axis([-(R+) (R+) -(R+) (R+) (h+)]); % scatter3(x,y,z,,c,'filled');
% axis([-(R+) (R+) -(R+) (R+) (h+)]);
% colorbar;
2. 切片云图绘制
空间点集划分同上,其中将四位数组转化为三维数组,坐标三维即坐标点位置,值即温度值。
可以绘制出纵向切片图、整体剖面图和等温面图三张图:
clear; clc;
pi0 = besal_pi0(,);
R = ;
h = ;
xa = ;
xb = ;
xc = ;
v = zeros(xa,xb,xc); for i = : xa
for j = : xb
for k = : xc
for t = :
ct(t) = *(R^)*(-/(pi0(t)^))/(pi0(t)*besselj(,pi0(t))*sinh(pi0(t)*h/R));
v(i,j,k)=v(i,j,k)+ ct(t)*sinh(pi0(t)*k/R)*besselj(,pi0(t)*sqrt((i-)^+(j-)^)/R);
end
% if(k>)
% v(i,j,k) = NaN;
% end
if((i-)^+(j-)^>)
v(i,j,k) = NaN;
end
end
end
end [x,y,z]=meshgrid(:xb,:xa,:xc);% 坐标值的范围
h=figure();% 第一幅图
% 各大切片
set(h,'name','取单切片')
subplot()% 切片1
slice(x,y,z,v,[],[],[]);
shading interp
% set(gca,'zdir','reverse');
axis equal
grid on
colorbar subplot()% 切片2
slice(x,y,z,v,[],[],[]);
shading interp
colormap('jet')
% set(gca,'zdir','reverse');
axis equal
grid on
colorbar subplot()% 切片3
slice(x,y,z,v,[],[],[]);
shading interp
% set(gca,'zdir','reverse');
axis equal
grid on
colorbar subplot()% 切片4
slice(x,y,z,v,[],[],[]);
shading interp
% set(gca,'zdir','reverse');
axis equal
grid on
colorbar
%%
h2=figure();
figure('menubar','figure');
% rotate 3D
set(h2,'name','全空间切片','MenuBar','none','ToolBar','none')
slice(x,y,z,v,[::xb],[ ],[ ])
shading interp
colorbar
colormap('jet')
% set(gca,'zdir','reverse');
axis equal
grid on
% box on %%
h3=figure();
figure('menubar','figure');
set(h3,'name','定值包络立体图','MenuBar','none','ToolBar','none')
set(gcf,'InvertHardcopy','off')
fw=; %%此值为最外层包络面取值
fv=isosurface(x,y,z,v,fw);% 等值面
p=patch(fv); set(p,'facecolor','b','edgecolor','none');
patch(isocaps(x,y,z,v, fw), 'FaceColor', 'interp', 'EdgeColor', 'none');
colorbar colormap('jet')
box on
daspect([,,])
view() camlight
camproj perspective
lighting phong % 光照处理
axis equal
grid on
title(['最外层表面的值为: ' , num2str(fw),'^{o}C']);
最后贴上一些效果图哈:







柱体内温度分布图 MATLAB的更多相关文章
- 【转】判断点在多边形内(matlab)
inpolygon -Points inside polygonal region Syntax IN = inpolygon(X,Y,xv,yv)[IN ON] = inpolygon(X,Y,xv ...
- MATLAB R2018b Mac中文版安装教程
MATLAB r2018b mac中文版是一款强大的可视化数学分析软件,专门用于在Mac上执行数值计算,编程和可视化任务时极大地提高您的工作效率.在MATLAB的帮助下,您可以分析数据,创建应用程序, ...
- 无线智联-程序篇:让python与matlab牵手
python和matlab本来是青梅竹马的好基友,奈何相爱相杀,经常放在一起做对比,就好比经常听到的,“你看看隔壁xx家的孩子”,其实每个孩子都有每个孩子的优点,如果能发挥每个孩子的优点,岂不是更好. ...
- python调用matlab
官网链接: https://ww2.mathworks.cn/help/matlab/matlab_external/call-user-script-and-function-from-python ...
- Ubuntu 18.04 MATLAB 安装及配置
转载请注明出处,谢谢 原创作者:Mingrui 原创链接:https://www.cnblogs.com/MingruiYu/p/12367846.html 本文要点: Ubuntu 18.04 安装 ...
- matlab中exist 检查变量、脚本、函数、文件夹或类的存在情况
参考: 1.https://ww2.mathworks.cn/help/matlab/ref/exist.html?searchHighlight=exist&s_tid=doc_srchti ...
- 解气!哈工大被禁用MATLAB后,国产工业软件霸气回击
提起哈尔滨工业大学,相信很多人都不会陌生. 它是中国顶级的C9院校之一,从1920年建校的百余年来,哈工大一直享誉"工科强校"的美称,因其在航天领域的不凡成就,更是被人们誉为&qu ...
- 【转】GPS连续运行单参考站解决方案
GPS连续运行单参考站解决方案 一. 前言 随着国家信息化程度的提高及计算机网络和通信技术的飞速发展,电子政务.电子商务.数字城市.数字省区和数字地球的工程化和现实化,需要采集多种实时地理 空间 ...
- Cocos2d-x学习小结 开始篇
Cocos2d-x学习小结 开始篇 想要学习Cocos2d-x,是因为在高中物理课上找不到某些物理定律的证明,例如欧姆定律. 为此,我翻阅了稍高等级的物理教材,其中关于欧姆定律\(R=\frac{U} ...
随机推荐
- Java学习---TCP Socket的学习
基础知识 1. TCP协议 TCP是一种面向连接的.可靠的.基于字节流的运输层(Transport layer)通信协议.在简化的计算机网络OSI模型中,它完成第四层传输层所指定的功能,UDP是同一层 ...
- JQuery的getJSON函数跨域
由于一开始看到“$”等类似符号就头晕,所以注定与PHP和JQuery无缘了,不过自己用JavaScript可不代表其他人也得用,这不,麻烦到了... 两个网站:A.B A站点提供了一个重要的API,由 ...
- python网络爬虫--简单爬取糗事百科
刚开始学习python爬虫,写了一个简单python程序爬取糗事百科. 具体步骤是这样的:首先查看糗事百科的url:http://www.qiushibaike.com/8hr/page/2/?s=4 ...
- C#关于排程举一个小例子
执行后程序会一直执行. 下面是一个例子
- leaflet 中文API
LeafLet js 官网:http://leafletjs.com/index.html LeafLet js 官网demo: http://leafletjs.com/examples.html ...
- [转]墨卡托投影坐标系(Mercator Projection)原理及实现C代码
墨卡托投影是一种“等角正切圆柱投影”,荷兰地图学家墨卡托(Mercator)在1569年拟定:假设地球被围在一个中空的圆柱里,其赤道与圆柱相接触,然后再假想地球中心有一盏灯,把球面上的图形投影到圆柱体 ...
- 图文助你打开MS SQL Serever的ldf和mdf文件
第一步:在C盘下找到”program files”双击打开 第二步:打开Microsoft SQL Server 第三步:选择MSSQL.1打开DATA文件 第四步:将你的ldf文件和mdf文件复制到 ...
- 如何异步的处理restful服务(基础)
1.使用Runnable 2.使用DeferredResult 3.异步处理的一些配置 正常请求方式 package com.nxz.controller; import lombok.extern. ...
- log4j与logback包冲突原因及解决,不可忽视的Warning
场景 一个简单的spring-boot程序,需要用kafka做消息队列,于是在maven中引入kafka依赖,一切看似没问题,在启动时,打印出Warning信息: SLF4J: Class path ...
- Android系统架构(一)
一.Android系统版本简介 Android操作系统已占据了手机操作系统的大半壁江山,截至本文写作时,Android操作系统系统版本及其详细信息,已发生了变化,具体信息见下表,当然也可以访问http ...