-1

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

我会尽量缩小范围,这是一种水滴在油流中移动的情况,这是一种潜在的流动(无粘、不可压缩和无旋),在这篇论文的基础上,我已经管理了为 $\dot{x}$ 和 $\dot{y}$ 得出他们的方程(1)(第 3 页),我希望以某种电影格式在 matlab 中显示液滴的运动

我只有流体动力学的基本知识,而且我从来没有使用过 matlab,而不仅仅是实现数学方法,所以我将不胜感激任何形式的帮助,如果需要有关问题的更多细节来帮助我理解该怎么做,请让我知道

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

4

1 回答 1

0

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

如果你可以这样做:

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)

只是为了好玩:

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 必须渲染每一帧。

于 2016-04-07T11:17:48.237 回答