matlab 3d 可视化,matlab – 如何分析和可视化3D速度场?

我强烈怀疑这里的问题是数据,而不是可视化技术.但总的来说,问题是以下一个或多个问题:

1)您没有足够的数据来捕捉潜在的动态(空间动力学的运行频率高于您采样的空间频率)

2)数据对于您收集的数据点数量而言太嘈杂.

3)流动基本上是湍流,因此希望不会发生类似层状的情节.

当您在查看数据时遇到问题时,第一条经验法则总是抛弃任何试图以任何方式逼近导数(或渐变)的可视化.原因是当你试图用真实数据逼近导数时,噪声几乎总是使估计无意义.例如,假设我们有一个被一些噪声破坏的余弦,我们试图用数字估计数据的导数

figure

% Create a signal

dt = .1;

t = 0:.1:10;

x = cos(t);

% Add some noise

y = x + .5 * randn(size(x));

% Compute the first order approximation of the derivatives of the signals

dx = diff(x)/dt;

dy = diff(y)/dt;

% Plot everything

subplot(2,1,1)

plot(t,x,t,y)

axis tight

subplot(2,1,2)

plot(t(2:end),dx,t(2:end),dy)

axis tight

206af319f03ff28e8310651e2a41b394.png

在显示原始数据的第一个图中,噪声看起来并不坏,但是当我们查看衍生估计时!哎呀…噪音确实​​被放大了.因此,请忘记流的高阶特性,例如卷曲和涡度,这需要数据的梯度.

那么在这样的情况下我们能做些什么呢?基本上,只需查看原始数据.如果有一个模式,它将揭示自己.例如,让我们从3个不同的角度看你的原始速度向量:

data = dlmread('data.csv','\s')

x = data(:,1);

y = data(:,2);

z = data(:,3);

vx = data(:,4);

vy = data(:,5);

vz = data(:,6);

close all

figure

subplot(1,3,1);

quiver3(x,y,z,vx,vy,vz);

view([1,0,0])

subplot(1,3,2);

quiver3(x,y,z,vx,vy,vz);

view([0,1,0])

subplot(1,3,3);

quiver3(x,y,z,vx,vy,vz);

view([0,0,1])

4882a629ab6bf2f2feec91a5027428c5.png

唯一看起来有点结构化的是最后一个情节.然而,该情节告诉我们,我们可能还有湍流(除了噪音)以应对.

具体来说,从视图3来看,您肯定会在紧紧拥抱物体的流中进行速度测量.在这种情况下,您的测量结果可能太紧了……而且可能在边界层.如果是这种情况(测量位于边界层中),那么您可以在流中获得时变效果,这意味着在没有时间组件的情况下查看任何内容都没有意义.你的答案中的“漂亮”情节只有当流动是层流时才真正有用,我们可以看到这些漂亮,一致的流线.如果它是湍流,那么无论你多么努力,流动中都没有可辨别的模式.

总而言之,我不认为您能够为您的数据找到一个很好的可视化,因为您使用的传感器太嘈杂,或者流动太紊乱.

暂时……考虑一下当我们从“好”数据集中查看原始速度向量时会发生什么:

b9c3980fbc1deed9623ebd23819a08e3.png

那个,我的朋友,是一个训练有素的家养宠物.你手上有一只野山狮.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值