Mekanika Fluida - Josiah Enrico S (1906356286)

From ccitonlinewiki
Revision as of 13:15, 18 June 2021 by JosiahEnrico (talk | contribs) (Abstract)
Jump to: navigation, search

Title: Modelica-based Simulation of Viscous Flow Through Pipes Using Finite Element Formulation

Abstract

As the piping system has always become an integral part of any fluid-related mechanical system, controlling and measuring the flow properties, such as pressure, flow rate and Reynolds number inside the pipe is a necessary field to master in order to engineer the efficient arrangement. These properties are critical and can be analytically computed by considering fluid factors like density or viscosity and the pipe dimension. Unfortunately, this current method is not scalable since it is examined too onerous and time-consuming to address complex systems. On the other hand, many numerical method programming has been developed to help engineers overcome those problems. This white paper will recreate one simple problem of a multiple pipes system utilizing Modelica programming language and compare it with the current analytical technique to verify the results. This simulation is expected to be a base in developing a scalable program for multiple pipe systems in further work.

Introduction

Objectives

Methodology

model Tugas_Besar_Mekflu

// ==================================== DEFINITION PHASE ====================================

parameter Real miu = 0.3 "dynamic viscosity";
parameter Real rho = 900 "density";

parameter Real Qinlet = 5e-4 "flow rate inlet";
parameter Real Pinlet = 39182 "pressure inlet";
parameter Real Poutlet = -3665 "pressure inlet";
parameter Integer boundary[:] = {1, 6} "Boundary Point";

parameter Integer nPipe = 6 "number of piping";
parameter Integer nPoint = 6 "number of point connected";
final constant Real pi=2*Modelica.Math.asin(1.0);

//Inputing pipe connection, length (L) and diameter (D)
parameter Real data[nPipe,2] = [ 70.71, 0.1   ;
                                 50.99, 0.075 ;
                                 50   , 0.075 ;
                                 53.85, 0.05  ;
                                 70.71, 0.05  ;
                                 60   , 0.1   ];

parameter Integer no[nPoint,2] = [ 1, 2;
                                   2, 3;
                                   2, 4;
                                   3, 5;
                                   4, 5;
                                   5, 6];

//Solution
Real Pressure[nPoint], Flowrate[nPipe], Reynolds[nPipe];                          

protected
Real g[nPoint,nPoint], G[nPoint,nPoint], id[nPoint,nPoint]=identity(nPoint), P[nPoint], Res;
       
// ==================================== SOLUTION PHASE ====================================
                                 
algorithm
//Iterating to create global matrice
for i in 1:nPipe loop
  Res:= pi*data[i,2]^4/(128*data[i,1]*miu);
  
  g:=zeros(nPoint,nPoint);          
  g[no[i,1],no[i,1]]:= Res;
  g[no[i,1],no[i,2]]:= -Res; 
  g[no[i,2],no[i,1]]:= -Res; 
  g[no[i,2],no[i,2]]:= Res;
 
  G:= G+g;
end for;

//Implementing boundary
for i in boundary loop
  for j in 1:nPoint loop
    G[i,j]:= id[i,j];
  end for;
end for;

//Solving pressure in each point connected
P[boundary[1]]:= Pinlet;
P[boundary[2]]:= Poutlet;
Pressure:= Modelica.Math.Matrices.solve(G,P);

//Solving flowrate in each pipe
for i in 1:nPipe loop
  Flowrate[i]:= pi*data[i,2]^4/(128*data[i,1]*miu)*(Pressure[no[i,1]]-Pressure[no[i,2]]);
end for;

//Solving Reynolds Number in each pipe flow
for i in 1:nPipe loop
  Reynolds[i]:= 4*rho*Flowrate[i]/(pi*miu*data[i,2]);
end for;

end Tugas_Besar_Mekflu;

Result and Analysis

Conclusions

Acknowledgement

References