声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1810|回复: 0

[绘图技巧] matlab 如何在有矩形截面的三维弯槽上生成等值线云图切

[复制链接]
发表于 2014-7-30 15:29 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
数据是用CFD计算出来的,因要在切片云图中叠加其他的计算结果,不好用TECPLOT等其他画图软件来处理。想用MATLAB编程来画,查看相关算例,都是对立体区域进行切片处理的,而我的计算区域是有矩形截面的三维(直或弯曲)弯槽,想得到下图结果:
                               1.jpg
用了两种方法,但都有问题,请高手指点迷经,谢谢。
法一:直接加载三维流场(第一列是节点数,第二到4列分别是x,y,z坐标,第5列是相应的z向速度值)
vzvelo.part01.rar (1.72 MB, 下载次数: 0)     压了两次

vzvelo.part02.rar (1.9 MB, 下载次数: 0)

vzvelo.part03.rar (658.03 KB, 下载次数: 0)


clear;clc;
load vzvelo
x=vzvelo(:,2);y=vzvelo(:,3);z=vzvelo(:,4);u=vzvelo(:,5);
mm=[min(x) max(x)min(y) max(y) min(z) max(z)];
del=[(mm(2)-mm(1))/30,(mm(4)-mm(3))/30,(mm(6)-mm(5))/30];
[xi,yi,zi] =meshgrid(mm(1):del(1):mm(2),mm(3):del(2):mm(4),mm(5):del(3):mm(6));
ui=griddata(x,y,z,u,xi,yi,zi,'cubic'); %%这里报错“Too many input arguments.”用TriScatteredInterp也不行,应是弯管的问题。想把直角弯管分成三部分来做,但在相交部分的切片不知怎么生成?另外,对于有弯头的弯管在弯头部分又该怎样处理?
contourslice(xi,yi,zi,ui,[],0,[]); %%%这的表达好象也有问题
法二:将要画的切片数据分别保存出来,画等值线,但不知道怎么生成三维的。
slices.rar (110.2 KB, 下载次数: 0)
clear all; clc;
x0r1=['D:\fluent\ x0vzre1'];
x2r1=['D:\fluent\ x2vzre1'];
y0r1=['D:\fluent\y0vzre1'];
hold on
data_al=importdata(x0r1);
dat=data_al.data;
x0r1=dat(:,3:5);%% x0r1=dat(:,2:5);
x=x0r1(:,1);y=x0r1(:,2); w=x0r1(:,3);%%z=x0r1(:,3); w=x0r1(:,4);
mm=[min(x) max(x) min(y)max(y)] %% min(z) max(z)];
del=[(mm(2)-mm(1))/50,(mm(4)-mm(3))/50]  %%,(mm(6)-mm(5))/50];
[xi,yi]=meshgrid(mm(1):del(1):mm(2),mm(3):del(2):mm(4))%% mm(5):del(3):mm(6) %用三维网格生成时xi, yi, zi都为空矩阵,因x值不变
wi=griddata(x,y, w,xi,yi,'cubic');
[cs, h]=contourf(xi,yi,wi,200);
set(h,'Color','None');  %colorbar
clear xywmmdel xi yi wi cs h    %%不能将云图画在x=0的面上
data_al2=importdata(x2r1);
dat2=data_al2.data;
x2r1=dat2(:,3:5);
x=x2r1(:,1);y=x2r1(:,2); w=x2r1(:,3);
mm=[min(x) max(x)min(y) max(y)];
del=[(mm(2)-mm(1))/50,(mm(4)-mm(3))/50];
[xi,yi]=meshgrid(mm(1):del(1):mm(2),mm(3):del(2):mm(4));
wi=griddata(x,y,w,xi,yi,'cubic');
[cs,h]=contourf(xi,yi,wi,50);
set(h,'Color','None');  %colorbar
clear xywmmdel xi yi wi cs h   %%不能将云图画在x=0.0002的面上
data_al3=importdata(y0r1);
dat3=data_al3.data;
y0r1=dat3(:,[2,4:5]);
x=y0r1(:,1);y=y0r1(:,2); w=y0r1(:,3);
mm=[min(x) max(x)min(y) max(y)];
del=[(mm(2)-mm(1))/50,(mm(4)-mm(3))/50];
[xi,yi]=meshgrid(mm(1):del(1):mm(2),mm(3):del(2):mm(4));
wi=griddata(x,y,w,xi,yi,'cubic');
[cs,h]=contourf(xi,yi,wi,50);
%shadinginterp
set(h,'Color','None'); %colorbar  %%不能将云图画在y=0的面上
hold off
回复
分享到:

使用道具 举报

您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-15 15:45 , Processed in 0.065013 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表