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

Project Euler Problem 67 Solution with Python

Maximum path sum II By starting at the top of the triangle below and moving to adjacent numbers on the row below, the maximum total from top to bottom is 23. 3 7 4 2 4 6 8 5 9 3 That is, 3 + 7 + 4 + 9 = 23. Find the maximum total from top to bottom in triangle.txt (right click and 'Save Link/Target As...'), a 15K text file containing a triangle with one-hundred rows.

Problem 43 Project Euler Solution with python

Sub-string divisibility The number, 1406357289, is a 0 to 9 pandigital number because it is made up of each of the digits 0 to 9 in some order, but it also has a rather interesting sub-string divisibility property. Let d 1 be the 1 st digit, d 2 be the 2 nd digit, and so on. In this way, we note the following: d 2 d 3 d 4 =406 is divisible by 2 d 3 d 4 d 5 =063 is divisible by 3 d 4 d 5 d 6 =635 is divisible by 5 d 5 d 6 d 7 =357 is divisible by 7 d 6 d 7 d 8 =572 is divisible by 11 d 7 d 8 d 9 =728 is divisible by 13 d 8 d 9 d 10 =289 is divisible by 17 Find the sum of all 0 to 9 pandigital numbers with this property. One might write a simple solution using direct if else statements for this problem. Using if else statements, the execution time may be a few seconds. But this is not a very good approach. I too had written a program with if else statement which will take each and every permutation of the 0-9 Pandigital and check for the conditions given in the qu...

Add/Embed SVG to Blogger website

In this post I will tell you my method(trick) of adding SVG images in a blogger website or blog. Before starting , the first thin g I am assu m ing is that you are aware of SVG if you are here. If not please see S calable V ec tor G raphics Recently when I tried to embed a SVG image for a post on pygal, I tried uploading the SVG file and blogger Image uploader came up with an error, because of which I had to find some other way.  SVG File upload Error in Blogger  I started sea rc hing Google " Embed SVG in Blogger " . I found blogorrhea , w h ich gave some i nformatio n on add ing SVG directly as a markup , which worked , but I faced another problem using this . Also th is guy has used lot of Javascript which was confusin g for me, being new to using SVG.   So I first t houg ht of learning on h ow to embed SVG in HTML and t his on e worked out. Actually we can embed SVG in HTML i n following ways: Using Object tag Using Iframe tag Using embed...