利用matlab模拟微流体装置中液滴的运动



我想知道如何使用matlab模拟微流体设备中的液滴运动。

我会尽量缩小它的范围,这是一种水滴在油流中移动的情况,它是一种潜在的流动(Inviscid、Incompressible和Irrotary),在这篇论文的基础上,我已经设法得出了$\dot{x}$和$\dot{y}$的方程(1)(第3页),我希望在matlab中以某种电影格式显示水滴的移动

我只有流体动力学的基本知识,我从来没有使用过matlab来实现数学方法,所以我非常感谢任何形式的帮助,如果需要关于这个问题的更多细节来帮助我理解该怎么做,请让我知道

我在physics.stackexchange网站上发帖,建议我在这里发帖,因为它与编程有关。

要回答问题的第一部分,如何显示液滴运动:

如果你可以做的例子:

X = rand(10,1)*10;
Y = rand(10,1)*10;
figure
for i = 1:length(X)
    plot(X(i),Y(i),'o')
    xlim([0,10]) %fix the x and y limit 
    ylim([0,10]) %fix the x and y limit 
    F(i) = getframe;
    drawnow
end
movie(F)

我们必须修正x限制和y限制,否则你的点将总是出现在屏幕的中间。

如果您想保存视频(例如.avi):

X = rand(10,1)*10;
Y = rand(10,1)*10;
v = VideoWriter('test.avi'); %create a video in your current folder
open(v)
figure
for i = 1:length(X)
    plot(X(i),Y(i),'o')
    xlim([0,10])
    ylim([0,10])
    F(i) = getframe;
    writeVideo(v,F(i))
end
close(v)

在3d中只是为了好玩:

X = 1:100;
Y = 1:100;
Z = 1:100;
v = VideoWriter('test2.avi');
open(v)
[x,y,z] = sphere;
figure
for i = 1:length(X)
    surf(x+0.1*X(i),y+0.1*Y(i),z+0.1*Z(i));
    xlim([0,10])
    ylim([0,10])
    zlim([0,10])
    view(30,30)
    F(i) = getframe;
    writeVideo(v,F(i))
end

close(v)

但是由于matlab必须对每一帧进行渲染,所以这种方法速度较慢。

最新更新