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 byVelocity of a moving fluid formula for water |
Pt is Total pressure
Ps is Static Pressure.
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
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 |
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:
How does a function look in Matlab |
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:
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:
help moving_velocity - Matlab documentation of a function |
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 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