How do i plot multiple velocity profiles in one figure?

16 visualizaciones (últimos 30 días)
Karl Johan Josefsson
Karl Johan Josefsson el 21 de Feb. de 2015
Respondida: Yashika el 5 de Sept. de 2020
Hi, i need to construct a plot or a figure containing the velocity profiles on a simulated body. The figure should contain profiles for different locations along the body.
much like this picture to the left.
I have tried the streamline commant but i can't seem to understand it and quiver commant plots arrows, which i don't want. Can anyone please help me?
I need help or hints on how to construct a code for this where the velocity vector u can be plotted for the coordinates x1,y1 x2,y2 and x3,y3 compared to exerimental data data u_real. Here is my code.
clear all
%velocities
u=[36 38 40 41 41 42 44 44 45 46 47 48 48 48 49 49 48 48 47 47];
u_real=[36.411 38.774 40.375 41.617 42.741 44.298 45.544 46.647 47.543 48.122...
48.385 48.2 48.3 48.246 48.441 48.394 48.365 48.147 47.798 47.207];
v=zeros(1,20);
v_real=v;
%coordinates
x1=zeros(1,20);
x2=5*ones(1,20);
x3=10*ones(1,20);
y1=(0:1:20);
y2=(-2:1:18);
y3=(-5:1:15);
On the x-axis is the x coordinate y axis is the y coordinates for each velocity.
Hope someone knows a solution to my problem. Thanks, KJ

Respuestas (3)

Orides Golyjeswski
Orides Golyjeswski el 23 de Ag. de 2018
I had a similar problem and I'll show you my solution to it.
I needed to create something very similar to this figure:
(Source: Jovic, Srba & M. Driver, David. (1994). Backward-facing step measurements at low Reynolds number, Re (sub h)= 5000. NASA Technical Memorandum 108807.)
So I have a velocity profile for x = 4, 6, 10, 15 and 19... two vectors with y coordinates and u(y) velocities at those x positions.
I just made the translation of the vector velocity by a constant (4, 6, 10, 15 and 19) and worked with xticks and xticklabels functions.
p1 = plot(v_4 + 0 , y_4 ,'r', 'linewidth', 2); hold on; %grid on
p2 = plot(v_6 + 6 , y_6 ,'g', 'linewidth', 2);
p3 = plot(v_10 + 10, y_10,'b', 'linewidth', 2);
p4 = plot(v_15 + 15, y_15,'k', 'linewidth', 2);
p5 = plot(v_19 + 19, y_19,'m', 'linewidth', 2);
ylabel('y/h');
xticks([0 6 10 15 19]);
%xticklabels({'x = 4','x = 6','x = 10','x = 15','x = 19'});
%xticklabels({'0','0','0','0','0'});
annotation('textbox',[.37 .3 .6 .6],'String','4' ,'FitBoxToText','on', 'LineStyle','none');
annotation('textbox',[.52 .3 .6 .6],'String','6' ,'FitBoxToText','on', 'LineStyle','none');
annotation('textbox',[.60 .3 .6 .6],'String','10','FitBoxToText','on', 'LineStyle','none');
annotation('textbox',[.73 .3 .6 .6],'String','15','FitBoxToText','on', 'LineStyle','none');
annotation('textbox',[.83 .3 .6 .6],'String','19','FitBoxToText','on', 'LineStyle','none');
the code above creates this figure

Pjotr Muis
Pjotr Muis el 24 de Oct. de 2017
Same problem here. How do you divide the x-axis into multiple blocks and use the upper axis as velocity component for every block?

Yashika
Yashika el 5 de Sept. de 2020
Hello All,
I wanted to plot similar figure. I tried @Orides Golyjeswski trick, it helped me a little. However my velocity scales are of order 1000 and x-axis scale are in micron. I tried scaling velocities but as my x-axis grids aren't uniform Is there any quick way to plot y vrs velocity plots at different x locations? Here my x -axis has two limits one for position (O(micron)) another for velocity (O(1000)).

Categorías

Más información sobre Vector Fields en Help Center y File Exchange.

Productos

Community Treasure Hunt

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

Start Hunting!

Translated by