找回密码
 注册
Simdroid-非首页
查看: 44|回复: 0

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

[复制链接]
发表于 2014-7-30 15:34:47 | 显示全部楼层 |阅读模式 来自 香港
悬赏5仿真币未解决
本帖最后由 guohf 于 2014-7-30 15:36 编辑

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









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,[]); %%%这的表达好象也有问题
法二:将要画的切片数据分别保存出来,画等值线,但不知道怎么生成三维的。
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

附件: 您需要 登录 才可以下载或查看,没有账号?注册
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-5-6 08:17 , Processed in 0.026971 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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