手抄报 安全手抄报 手抄报内容 手抄报图片 英语手抄报 清明节手抄报 节约用水手抄报

MATLAB利用streamslice()函数绘制流线

时间:2024-10-13 05:00:33

1、第一,想要绘制的图形如下图:流场绕过半圆形物体时的流线图。

MATLAB利用streamslice()函数绘制流线

2、第二,针对上述流场绕过半圆形物体的问题,给出了如下MATLAB代码,但是该段代码运行不行,这里先给出绕流公式(如下图)。我想画出下面那样绕过去的样子[x,y] = meshgrid(-20:0.1:20,-10:0.1:10);r = sqrt(x.*x+y.*y);costheta=x./r;sintheta=y./r;d=10./2./r; %10是下图⚪的直径ur=-0.5*costheta.*(d.^3-d*3+2);utheta=-0.5*sintheta.*(d.^3-d*3+4);u=-ur.*costheta-utheta.*sintheta;v=-ur.*sintheta+utheta.*costheta;figurestarty = 0:2:20;startx = zeros(size(starty));streamline(x,y,u,v,startx,starty)

MATLAB利用streamslice()函数绘制流线

3、第三,在上述代码的基础上进行了改进,给出如下MATLAB代码,该段代码可以运行出流场绕过半圆形物体时的流线。close all; clear all; clc[x,y] = meshgrid(-20:0.1:20,0:0.1:10);r = sqrt(x.*x+y.*y);costheta=x./r; sintheta=y./r; d=10./2./r; ur=-0.5*costheta.*(d.^3-d*3+2);utheta=-0.5*sintheta.*(d.^3-d*3+4);u=-ur.*costheta-utheta.*sintheta;v=-ur.*sintheta+utheta.*costheta;figure('Position',[100 100 800 300]);hold onstreamslice(x,y,u,v);fai = 0:0.1:1.1*pi; R=5; x=R*cos(fai);y=R*sin(fai);% 圆的参数方程fill(x,y,[1,1,1]); % 填充式画半圆plot(R*cos(fai),R*sin(fai),'k-','LineWidth',3); % 线条式画半圆axis([-20,20,0,10]);axis fill;box onset(gca,'TickDir','in','XTick',[-20:10:20],'YTick',[0:2:10])

MATLAB利用streamslice()函数绘制流线

4、第四,保存和运行上述代码,得到如下流场绕过半圆形物体时的流线图。

MATLAB利用streamslice()函数绘制流线

5、第五,如果把代码中的fill(x,y,[1,1,1])注释掉或者删除掉,得到图像如下,就会发现流场穿过半圆形物体,这显然不合适,所以fill()这个用来填充颜色(这里填充的是白色)的函数很有用。

MATLAB利用streamslice()函数绘制流线

6、第六,streamslice(x,y,u,v)函数用于绘制流线,关于它的用法参见MATLAB帮助文档。

MATLAB利用streamslice()函数绘制流线
© 手抄报圈