Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab中的圆柱绕流流场_Matlab_Fluid Dynamics - Fatal编程技术网

Matlab中的圆柱绕流流场

Matlab中的圆柱绕流流场,matlab,fluid-dynamics,Matlab,Fluid Dynamics,我对Matlab中的不同绘图非常陌生,我正试图编写一个代码,在Matlab中显示圆柱体周围的流场。我在一开始,首先我想让圆在一个矩形域(圆柱体不应该是正确的在中场)。p> 到目前为止,我已经做了这个设置,但我想知道是否有可能使圆柱体看起来更圆,更不像椭圆形,特别是因为域是矩形而不是正方形。圆上的点是正确的,但我希望它看起来更好。有什么建议吗?我目前掌握的代码是: U_i = 20; % Ambient velocity a = 4; % cyli

我对Matlab中的不同绘图非常陌生,我正试图编写一个代码,在Matlab中显示圆柱体周围的流场。我在一开始,首先我想让圆在一个矩形域(圆柱体不应该是正确的在中场)。p> 到目前为止,我已经做了这个设置,但我想知道是否有可能使圆柱体看起来更圆,更不像椭圆形,特别是因为域是矩形而不是正方形。圆上的点是正确的,但我希望它看起来更好。有什么建议吗?我目前掌握的代码是:

U_i = 20;            % Ambient velocity
a = 4;               % cylinder radius

c = -a*5;            % starting coordinate (x)
b = a*10;            % ending coordinate (x)
d = -60;             % starting coordinate (y)
e = 60;              % ending coordinate (y)

n = a*50;            % number of intervals (step size in grid)

[x,y] = meshgrid([c:(b-c)/n:b],[d:(e-d)/n:e]');

for i = 1:length(x)
    for k = 1:length(x);
        f = sqrt(x(i,k).^2 + y(i,k).^2);
        if f < a
            x(i,k) = 0;
            y(i,k) = 0;
        end
    end
end

% Definition of polar variables
r = sqrt(x.^2+y.^2);
theta = atan2(y,x);                               

%% Creation of Streamline function 
z = U_i.*r.*(1-a^2./r.^2).*sin(theta);%- G*log(r)/(2*pi);

%% Creation of Figure

m = 100; 
s = ones(1,m+1)*a;
t = [0:2*pi/m:2*pi];

%% Streamline plot

contour(x,y,z,50);
hold on 
polar(t,s,'-k');
% axis square
title('Stream Lines');
grid off
U_i=20;%环境速度
a=4;%圆柱半径
c=-a*5;%起始坐标(x)
b=a*10;%结束坐标(x)
d=-60;%起始坐标(y)
e=60;%结束坐标(y)
n=a*50;%间隔数(网格中的步长)
[x,y]=meshgrid([c:(b-c)/n:b],[d:(e-d)/n:e]';
对于i=1:长度(x)
对于k=1:长度(x);
f=sqrt(x(i,k)。^2+y(i,k)。^2;
如果f
轴是否相等
?(照片不错!)当然!谢谢你,我真傻。我最初有轴正方形,但不太正确。有时我也会被轴相等和轴正方形混淆。我也经常被这两个混淆。在
equal
之上,您可以尝试
axis-tight
,它将删除域中未定义的部分。顺便说一句,您的代码在
(1-a^2./r.^2)
,如果您介意的话。。