马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
数据是用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 |