Section Simplified flow around a propeller for the course CFD with OpenSource Software Gonzalo Montero Applied Mechanics/Fluid Dynamics, Chalmers University of Technology, Gothenburg, Sweden 2015-12-08 Gonzalo Montero Simplified flow around a propeller 2015-12-08 1 / 37 Section Subsection Contents Introduction Erik Svenning’s work What can we do with propellerSimpleFoam? Theoretical background Mesh and m4 Xfoil How to define a propeller Seting up of a case Some results and validation Future work Gonzalo Montero Simplified flow around a propeller 2015-12-08 2 / 37 Section Subsection Introduction An actuator disk is a simplification of a propeller that helps in seeing how it affects the surroundings Useful when not to much detail is needed, can not see the flow Add momentum directly to fluid flowing through the area it in Gonzalo Montero Simplified flow around a propeller 2015-12-08 3 / 37 Section Subsection Erik Svenning’s work Erik implemented an actuator disk model for OpenFOAM 1.5-dev. My implementation is built in top of that. Gonzalo Montero Simplified flow around a propeller 2015-12-08 4 / 37 Section Subsection Erik Svenning’s work Thrust and torque known and Goldstein optimum distribution Gonzalo Montero Simplified flow around a propeller 2015-12-08 5 / 37 Section Subsection What can we do with propellerSimpleFoam? Take into account for the geometry of the propeller Take into account the operating conditions Analyze a propeller with different propeller sections Obtained the polars automatically or define them Gonzalo Montero Simplified flow around a propeller 2015-12-08 6 / 37 Section Subsection Theoretical background Velocities are parametrized by ψ Gonzalo Montero Simplified flow around a propeller 2015-12-08 7 / 37 Section Subsection Theoretical background Ua = V + ua λw (ψ) = Ut = Ωr − ut q U = Ua2 + Ut2 rWa RWt Wa (ψ) = 0.5Ua + 0.5U sinψ r f (ψ) = 0.5B 1 − R Wt (ψ) = 0.5Ut + 0.5U cosψ F (ψ) = va (ψ) = Wa − Ua vt (ψ) = Ut − Wt α(ψ) = β − arctan(Wa /Wt ) q W (ψ) = Wa2 + Wt2 Gonzalo Montero ! 2 arccos(e−f ) π v u 4πr u F t1 + Γ(ψ) = vt B 1 λw 4λw R πBr !2 1 Γ = W ccl 2 Simplified flow around a propeller 2015-12-08 8 / 37 Section Subsection Theoretical background The Newton update for psi then reads: δψ = − R dR/dψ ψ ← ψ + δψ Gonzalo Montero Simplified flow around a propeller 2015-12-08 9 / 37 Section Subsection 1.5 0.12 1 0.1 0.5 0.08 Cd Cl Theoretical background 0 0.06 -0.5 0.04 -1 0.02 -1.5 -15 -10 -5 0 5 10 15 0 -1.5 Gonzalo Montero -1 -0.5 0 0.5 1 1.5 Cl α Simplified flow around a propeller 2015-12-08 10 / 37 Section Subsection Theoretical background 1 dT = B ρW 2 (cl cosφ − cd sinφ)c dr 2 1 dQ = B ρW 2 (cl sinφ + cd cosφ)c r dr 2 Devide T with ρV nCellCirc and Q with ρV rnCellCirc Gonzalo Montero Simplified flow around a propeller 2015-12-08 11 / 37 Section Subsection Mesh and m4 Gonzalo Montero Simplified flow around a propeller 2015-12-08 12 / 37 Section Subsection Mesh and m4 m4 allows us to parametrize blockMeshDict very easy to use m4 fileName.m4 > blockMeshDict Gonzalo Montero Simplified flow around a propeller 2015-12-08 13 / 37 Section Subsection Xfoil Gonzalo Montero Simplified flow around a propeller 2015-12-08 14 / 37 Section Subsection How to define a propeller In fvSolution dictionary Two or three .txt files geometry.txt polarDistribution.txt polarsData.txt (not compulsary) Gonzalo Montero Simplified flow around a propeller 2015-12-08 15 / 37 Section Subsection How to define a propeller Gonzalo Montero Simplified flow around a propeller 2015-12-08 16 / 37 Section Subsection How to define a propeller Gonzalo Montero Simplified flow around a propeller 2015-12-08 17 / 37 Section Subsection How to define a propeller geometry.txt 10 0.3220 0.3626 0.3934 0.4450 0.5076 0.6230 0.7349 0.8468 0.9586 0.9900 0.0568 0.0634 0.0682 0.0738 0.0761 0.0717 0.0625 0.0510 0.0365 0.0325 Gonzalo Montero 15.8540 13.8499 12.1941 9.3355 6.3916 2.7624 0.4000 -1.4360 -3.0595 -3.5147 Simplified flow around a propeller 2015-12-08 18 / 37 Section Subsection How to define a propeller polarsData.txt 2 3 2 -2 0 -5 -1 6 2 7 0.6648 0.7890 0.3544 0.7131 1.0977 0.8188 1.2003 Gonzalo Montero 0.0314 0.0422 0.0160 0.0287 0.0160 0.0203 0.0330 //number of rows given for polar 1 //number of rows given for polar 2 //number of rows given for polar 3 //point 1 of polar number 1 //point 2 of polar number 1 //point 1 of polar number 2 //point 2 of polar number 2 //point 3 of polar number 2 //point 1 of polar number 3 //point 2 of polar number 3 Simplified flow around a propeller 2015-12-08 19 / 37 Section Subsection How to define a propeller polarDistribution.txt 10 0.382 0.3926 0.4334 0.445 0.5376 0.613 0.724 0.8558 0.9516 0.99 Gonzalo Montero Simplified flow around a propeller 2015-12-08 20 / 37 Section Subsection Seting up of a case OF24x cd erikSvenning2.4/ cp -r cavityActuatorDisk $FOAM_RUN cp cylindricalMesh.m4 $FOAM_RUN/cavityActuatorDisk/ constant/polyMesh cp *.txt $FOAM_RUN/cavityActuatorDisk/ run cd cavityActuatorDisk/constant/polymesh (gedit cylindricalMesh.m4) If wanted the mesh can be modified by cylindricalMesh.m4 Gonzalo Montero Simplified flow around a propeller 2015-12-08 21 / 37 Section Subsection Seting up of a case m4 cylindricalMesh.m4 > blockMeshDict cd ../.. blockMesh cd 0 gedit U Gonzalo Montero Simplified flow around a propeller 2015-12-08 22 / 37 Section Subsection Seting up of a case internalField boundaryField { inlet{ type } outlet{ type } walls{ type } } gedit p Gonzalo Montero uniform (15 0 0); zeroGradient; zeroGradient; slip; Simplified flow around a propeller 2015-12-08 23 / 37 Section Subsection Seting up of a case internalField boundaryField { inlet{ type } outlet{ type } walls{ type } } Gonzalo Montero uniform 0; zeroGradient; zeroGradient; zeroGradient; Simplified flow around a propeller 2015-12-08 24 / 37 Section Subsection Seting up of a case We have to initialize the volVectorField VolumeForce. For that lets make a copy of the U file and modify it. cp U VolumeForce Change the dimensions and the object to VolumeForce. The rest will be set as: gedit VolumeForce dimensions [0 1 -2 0 0 0 0]; internalField Gonzalo Montero uniform (0 0 0); Simplified flow around a propeller 2015-12-08 25 / 37 Section Subsection Seting up of a case boundaryField { inlet{ type value } outlet{ type value } walls{ type value } } Gonzalo Montero fixedValue; uniform (0.0 0.0 0.0); fixedValue; uniform (0.0 0.0 0.0); fixedValue; uniform (0.0 0.0 0.0); Simplified flow around a propeller 2015-12-08 26 / 37 Section Subsection Seting up of a case Now we need to create another one for the volScalarField xDimension, so since it is a scalar this time we will copy and modify the pressure file: cp p xDimension gedit xDimension Once again remember to change the dimension, in this case to meters and also to change the object field to xDimension. Finally it should be like this one: dimensions [0 1 0 0 0 0 0]; internalField uniform 0; Gonzalo Montero Simplified flow around a propeller 2015-12-08 27 / 37 Section Subsection Seting up of a case boundaryField { inlet{ type value } outlet{ type value } walls{ type value } } Gonzalo Montero fixedValue; uniform 0; fixedValue; uniform 0; fixedValue; uniform 0; Simplified flow around a propeller 2015-12-08 28 / 37 Section Subsection Seting up of a case Now lets go on and modify the fvSolution dictionary. cd ../system/ gedit fvSolution In the SIMPLE subdictionary add: pRefCell pRefValue 0; 0; Rename the actuatorDisk as propellerData. Add the missing fields so that it ends up looking like this: Gonzalo Montero Simplified flow around a propeller 2015-12-08 29 / 37 Section Subsection Seting up of a case propellerData{ numberOfPolars flightSpeed deltaBeta centrePoint density interiorRadius exteriorRadius rpm temperatureKelvin numberOfBlades dynamicViscosity ReRef ReExp } Gonzalo Montero 2; 15; 30; (15 0 0); 0.36518; 0.49; 1.524; 500; 216.86; 3; 0.1433e-4; 50000; 0; Simplified flow around a propeller 2015-12-08 30 / 37 Section Subsection Seting up of a case In fvSolution create a subdictionary with the following structure and named polarsData. polarsData { generatePolars 2; type1 airfoilName1 naca; 2412; type2 airfoilName2 geometry; NACA0012.txt; } gedit fvSchemes Gonzalo Montero Simplified flow around a propeller 2015-12-08 31 / 37 Section Subsection Seting up of a case and add the following change the divergence schemes so they look like: default div(phi,U) div(phi,k) div(phi,epsilon) div(phi,R) div(R) div(phi,nuTilda) div((nuEff*dev(grad(U).T()))) div((nuEff*dev(T(grad(U))))) Gonzalo Montero none; bounded Gauss upwind; bounded Gauss upwind; bounded Gauss upwind; Gauss upwind; Gauss linear; Gauss upwind; Gauss linear; Gauss linear; Simplified flow around a propeller 2015-12-08 32 / 37 Section Subsection Seting up of a case Now we are ready to run the case: cd .. propellerSimpleFoam Gonzalo Montero Simplified flow around a propeller 2015-12-08 33 / 37 Section Subsection Some results and validation Gonzalo Montero Simplified flow around a propeller 2015-12-08 34 / 37 Section Subsection Some results and validation Gonzalo Montero Simplified flow around a propeller 2015-12-08 35 / 37 Section Subsection Some results and validation 0.18 NACA report 640 OpenFOAM 0.16 0.14 Ct 0.12 0.1 0.08 0.06 0.04 0.02 0 0 0.5 1 1.5 2 J Gonzalo Montero Simplified flow around a propeller 2015-12-08 36 / 37 Section Subsection Future work Try to account for tip losses Another model that allows highers speed flows Solve the flow discretizing each blade Compressible solver implementation Gonzalo Montero Simplified flow around a propeller 2015-12-08 37 / 37
© Copyright 2024 Paperzz