我想知道,如何使用matlab模拟微流体装置中的液滴运动。
我会尽可能地缩小范围,这是一个水滴在油流中移动的情况,它是潜在的流动(Inviscid,Incompressible and Irrotational) ),在this paper的基础上,我已经设法得到$ \ dot {x} $和$ \ dot {y} $的等式(1)(第3页),我希望显示matlab中的水滴以某种电影格式
我只掌握流体动力学的基本知识,而且我从未使用过matlab而不仅仅是实现数学方法,所以如果需要有关问题的更多细节来帮助我理解该怎么做,我会感激任何帮助。 ,请让我知道
我发布了physics.stackexchange网站,我被建议在这里发布,因为它与编程有关。
答案 0 :(得分: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)
只是为了在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必须渲染每一帧。