柱体内温度分布图 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} ...
随机推荐
- 寄存器简介 与 ebp esp
http://www.cnblogs.com/zhuyuanhao/archive/2012/10/16/3262870.html 32位CPU所含有的寄存器有:4个数据寄存器(EAX.EBX.ECX ...
- luogu P2742 【模板】二维凸包
嘟嘟嘟 没错,我开始学凸包了. 其实挺简单的. 前置技能: 1.极坐标系 2.向量叉积 1.极坐标系 就是一种二维坐标系.只不过两个坐标分别表示向量和极轴的角度和自身的长度.对于不同的问题,极轴可以自 ...
- [19/04/26-星期五] GOF23_结构型模式(桥接模式、组合模式)
一.桥接模式(bridge) 场景:商城系统中常见的商品分类,以电脑为例,首先想到使用多层继承结构. —— 台式机(联想台式机.戴尔台式机.神舟台式机) 电脑 ——笔记本(联想笔记本.戴尔笔记本 ...
- C#ref和out的区别-ref是有进有出,out是只出不进
之前学习C#时候就遇到了这个问题,不过当时没有深究.昨晚想到这个问题时候自己尝试敲了敲代码,结果从运行的结果来看,越看越乱.在查看了一些资料的基础上,自己总结了一下. 可能会有点乱,但是自己总结出来的 ...
- Reading SketchVisor Robust Network Measurement for Sofeware Packet Processing
SIGCOMM17 摘要 在现有的网络测量任务中包括流量监测.数据收集和一系列网络攻击的预防.现有的基于sketch的测量算法存在严重性能损失.大量计算开销以及测量的精确性不足,而基于硬件的优化方法并 ...
- C# 4.0 不要跨程序集用dynamic指向匿名类型 (转载)
今天写代码时偷懒用了dynamic,结果遇到问题,运行时始终无法获取dynamic对象的属性.原问题简化后如下: 程序集A包含SampleClass类,有一个静态方法,接收一个dynamic类型参数并 ...
- Spring Boot Admin 2.1.0 全攻略
转载请标明出处: https://www.fangzhipeng.com 本文出自方志朋的博客 Spring Boot Admin简介 Spring Boot Admin是一个开源社区项目,用于管理和 ...
- 使用XWAF框架(5)——XML解析器:CXDP
XWAF推出了自己的组合式XML文档解析器,英文名叫:“CXDP”,是“Combined XML Document Parser”的缩写.核心代码属XWAF原创,注释.日志和帮助文档采用全中文描述,特 ...
- 触发器 of oracle
. 本文实例讲述了Oracle触发器用法.分享给大家供大家参考,具体如下: 一.触发器简介 触发器的定义就是说某个条件成立的时候,触发器里面所定义的语句就会被自动的执行. 因此触发器不需要人为的去调用 ...
- Docker 常用命令——镜像
Docker 常用命令 帮助命令 docker version --版本信息 docker info --详细信息 docker --help --帮助 镜像命令 1.doc ...