1

我已经为圆柱周围的潜在流动制作了这个 matlab 脚本,我想添加一个点源。见图中点源的定义。matlab怎么定义theta?并绘制它的流线 Psi?

在此处输入图像描述

clear
% make axes
xymax = 2;
x = linspace(-xymax,xymax,100);
y = linspace(-xymax,xymax,100);
% note that x and y don't include 0
[xmesh,ymesh] = meshgrid(x,y);
x_c=0;
y_c=0;
q=1;
U=1
 r = sqrt((xmesh-x_c).^2+(ymesh-y_c).^2);
sin_th= ((ymesh-y_c)./r)

%(ymesh-y_c)./r = sin(teta)
%(xmesh-x_c)./r = cos(teta)



psi1 = -q./r.*((ymesh-y_c)./r);
psi2 = r.*sin_th;

 psi=psi1+psi2;

figure
contour(xmesh,ymesh,psi,[-xymax:.25:xymax],'-b');
4

1 回答 1

1

要绘制潜在流中的流线,您必须绘制恒定流函数的等高线是正确的。

在点源的情况下,如果您在 MATLAB 中以笛卡尔坐标绘图,则必须使用反正切将 theta 转换为笛卡尔坐标,如下所示theta = arctan(y/x):在 MATLAB 中,使用atan2将不连续点数限制在 -PI 和 PI 之间的函数:https ://www.mathworks.com/help/matlab/ref/atan2.html

您的代码应为:psi2 = ( m/(2*PI) ) * atan2(y,x)

有关在 2D 笛卡尔坐标中绘制势流元素的更多信息,请参阅此处的更多信息:

https://potentialflow.com/flow-elements

https://potentialflow.com/equations

于 2018-07-09T00:14:01.567 回答