Skip to main content

Velocity of a moving fluid using Matlab

Program

The velocity of a moving fluid can be found by calculating the difference between the total and static pressure Pt and Ps. For water, this is given by
Velocity of a moving fluid formula - water
Velocity of a moving fluid formula for water
Where,
Pt is Total pressure
Ps is Static Pressure.
Write a function that will receive as input arguments the total and static pressures and will return the velocity of the water.

Solution

This problem has been taken from the book A practical introduction to Matlab programming by Stormy Attaway. I suggest you to read this book if you want to become a professional without any pain.

Coming to solving the question we have already solved a similar question here: Total Amount after n years - bank interest calculation using Matlab.  If you have read the above post then you will be able to solve this problem directly if you are able to write the Matlab equivalent of the above equation.

As this program is direct to solve and there is no complicated thing to explain in this section unless you know Matlab functions you can refer to the Explanation section to get a detailed explanation of the program. Some of the concepts you need to know to solve the above problem are as follows:
1) Matlab functions
2) Comments in Matlab
3) if else in Matlab
4) variables in Matlab
5) fprintf
6) square root of a number using Matlab

Program

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
function velocity = moving_velocity(total_pressure, static_pressure)
%Documentation of the function:
%This function will take input of total_pressure and static_pressure
%and will calculate moving velocity of a fluid. 
%Here we will calculate the moving velocity of water.
%The input and the call function call should be as follows:
%>> moving_velocity(total_pressure, static_pressure

if total_pressure >= static_pressure
    velocity = 1.016*(sqrt(total_pressure - static_pressure));
else
    fprintf('Static pressure cannot be greater than total pressure.\n');
    fprintf('May be there is an error in the instrument :)');
    velocity = 'Imaginery!!';
end
I have saved this program as moving_velocity.m in my local computer.

Explanation

Line 1: This is the function definition. Here I am defining the function i.e. saying matlab that my program(function) will return velocity variable and the input will be total_pressure and static_pressure in the same sequence respectively. To be simple the function is as follows:
functions in matlab
How does a function look in Matlab
Note that here the parameters can be any number or variables that the programmer needs for calculation.
Line 2-7: These are the Matlab comments and also become the function documentation. So now you can access the function documentation by typing the following: 


>> help moving_velocity
and the output will be as follows:
help moving_velocity - Matlab documentation of a function
help moving_velocity - Matlab documentation of a function
Line 9: We are using the if statements to check if the static_pressure is greater than the total_pressure, and if it is not greater then we can calculate the moving_velocity. You can also calculate the value of the moving velocity if the static_velocity is greater than total_velocity but what happens is that after it is given as the input in the equation then the square root will generate an imaginary number but we know that velocity cannot be imaginary. Also in practice it is valid only when total_pressure is greater than static_pressure. If you want to know more about total_pressure and static_pressure then refer to the following links:
Line 10: After checking the condition I have converted the above equation to matlab equivalent and have equated it to velocity variable because it will be the return variable.
Line 11: If the user has violated the condition then the else statement on this line is executed and tells the user with fprintf statement that they have violated physics.
Line 14: Velocity is declared as imaginary and thus the user gets the output(answer) as imaginary.

Input/Output  

moving velocity of a fluid calculation using matlab
moving_velocity Matlab execution

Try it yourself

1) Try to write the above program in such a way that if the user violates the rule by entering a greater static_pressure value than the total_pressure value then use the higher value for total_pressure and smaller value for static_pressure. Comment your program below in the comment box below to help others.

Final Note 

I have tried to explain every part in this post in such a way that it is easy to understand for everyone. If you have any doubt or didn't understand anything then please do comment in the comment box below or do contact me. You can contact me from here: contact me
The above program was high lighted using hilite.me.
Keywords: velocity, pressure, Bernoulli equation, moving_velocity  

Popular posts from this blog

Making a quiz web app with python and flask

Edit : When you are creating a web app with h tml templates, then y ou will have to sa ve the html file in templates folder in the Current Wor ki ng Directory( CWD). If you save the file in the C W D directl y you will get a TemplateNotFound error. Thank you Udhay for pointing it out.   In this post we will create a quiz website using python . I will be using the flask framework . After reading this tutorial you will learn form submission , flask templates , python code in flask templates , shuffling the questions and options with the random module and few others.  Please note that this tutorial is not big as it seems to be. Some of the code has been rewritten to maintain consistency and also font size is somewhat big so that your eyes won't get stressed reading this tutorial. Also the content has not occupied the full width of the page. In this tutorial I am assuming that you are having a very basic understanding of the flask framework . Please refer the documentation

Problem 11 Project Euler Solution with python

Largest product in a grid In the 20×20 grid below, four numbers along a diagonal line have been marked in red. 08 02 22 97 38 15 00 40 00 75 04 05 07 78 52 12 50 77 91 08 49 49 99 40 17 81 18 57 60 87 17 40 98 43 69 48 04 56 62 00 81 49 31 73 55 79 14 29 93 71 40 67 53 88 30 03 49 13 36 65 52 70 95 23 04 60 11 42 69 24 68 56 01 32 56 71 37 02 36 91 22 31 16 71 51 67 63 89 41 92 36 54 22 40 40 28 66 33 13 80 24 47 32 60 99 03 45 02 44 75 33 53 78 36 84 20 35 17 12 50 32 98 81 28 64 23 67 10 26 38 40 67 59 54 70 66 18 38 64 70 67 26 20 68 02 62 12 20 95 63 94 39 63 08 40 91 66 49 94 21 24 55 58 05 66 73 99 26 97 17 78 78 96 83 14 88 34 89 63 72 21 36 23 09 75 00 76 44 20 45 35 14 00 61 33 97 34 31 33 95 78 17 53 28 22 75 31 67 15 94 03 80 04 62 16 14 09 53 56 92 16 39 05 42 96 35 31 47 55 58 88 24 00 17 54 24 36 29 85 57 86 56 00 48 35 71 89 07 05 44 44 37 44 60 21 58 51 54 17 58 19 80 81 68 05 94 47 69 28 73 92 13 86 52 17 77 04 89 55 40 04 52 08 83 97 35 99 16 07

Problem 60 Project Euler Solution with python

Prime pair sets The primes 3, 7, 109, and 673, are quite remarkable. By taking any two primes and concatenating them in any order the result will always be prime. For example, taking 7 and 109, both 7109 and 1097 are prime. The sum of these four primes, 792, represents the lowest sum for a set of four primes with this property. Find the lowest sum for a set of five primes for which any two primes concatenate to produce another prime. This problem is j u st a brute force problem. If you have come here because you don't know the limit upto which you will h ave to gener ate the prime numbers t hen go ahe ad and t r y with 10,000 . When I first start ed solving the problem I chose 1 million(beca use most of the problem s on project E uler have this limit ), but it took very long for the computer to fin d the solution. After searching on the internet then I found many people choosing 10, 000 so I have changed my in put f rom 1 million to 10000 and the output was f ast. He