Drawing Wired Closed Objects Using Rankine Oval

8 次查看(过去 30 天)
[x,y] = meshgrid(-10:0.01:10);
Here is my code and picture
m=5;
a=2;
U=1;
psi = U*y-m*atan2(2*a*y,x.^2+y.^2-a.^2);
contour(x,y,psi,100);
grid on;
......PNG
I want to represent a closed object by wire in Rankin Oval code.
The picture you want is:asd.PNG
How should I change my code?

回答(1 个)

suen
suen 2025-4-17
移动:Mathieu NOE 2025-4-17
% Parameters for the Rankine Oval
V_inf = 10; % Uniform flow velocity (m/s)
b = 1; % Distance of source and sink from origin (m)
Lambda = 20; % Source strength (m^2/s)
% Define grid for plotting
[x, y] = meshgrid(linspace(-5, 5, 200), linspace(-5, 5, 200));
% Uniform flow stream function
psi_uniform = V_inf * y;
% Stream function for the source at (-b, 0)
r_source = sqrt((x + b).^2 + y.^2); % Distance to the source
theta_source = atan2(y, x + b); % Angle to the source
psi_source = (Lambda / (2 * pi)) * theta_source;
% Stream function for the sink at (b, 0)
r_sink = sqrt((x - b).^2 + y.^2); % Distance to the sink
theta_sink = atan2(y, x - b); % Angle to the sink
psi_sink = -(Lambda / (2 * pi)) * theta_sink;
% Total stream function
psi_total = psi_uniform + psi_source + psi_sink;
% Adjust streamline density
num_contours = 30; % Change this value to adjust streamline intensity
min_psi = min(psi_total(:)); % Minimum value of the stream function
max_psi = max(psi_total(:)); % Maximum value of the stream function
contour_levels = linspace(min_psi, max_psi, num_contours); % Custom contour levels
% Plot the streamlines
figure;
contour(x, y, psi_total, contour_levels, 'LineColor', 'blue', 'LineWidth', 1); % Draw streamlines
hold on;
% Mark the source and sink locations
plot(-b, 0, 'ro', 'MarkerSize', 8, 'MarkerFaceColor', 'r'); % Source
plot(b, 0, 'ko', 'MarkerSize', 8, 'MarkerFaceColor', 'k'); % Sink
% Plot the Rankine Oval shape
% The oval corresponds to a specific streamline (e.g., psi = 0)
contour(x, y, psi_total, [0 0], 'r-', 'LineWidth', 2); % Extract the oval shape
% Add labels and title
title('Streamlines and Rankine Oval Shape');
xlabel('x (m)');
ylabel('y (m)');
axis equal;
grid on;
% Add a legend
legend('Streamlines', 'Source', 'Sink', 'Rankine Oval', 'Location', 'Best');
% Close hold state
hold off;
% you can adjust the velocity and the strength yourself

类别

Help CenterFile Exchange 中查找有关 Thermal Analysis 的更多信息

产品

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by