Python-based Framework for CFD-based Simulation of Free-Flying Flexible Aircraft: Progress

28
Python-based Framework for CFD-based Simulation of Free-Flying Flexible Aircraft: Progress A. Da Ronch University of Liverpool, U.K. IC, London, U.K. 07 February 2013 email: [email protected] web: http://www.cfd4aircraft.com/

description

Python-based Framework for CFD-based Simulation of Free-Flying Flexible Aircraft: Progress A. Da Ronch University of Liverpool, U.K. email: [email protected] w eb: http://www.cfd4aircraft.com/. IC, London, U.K. 07 February 2013. Motivation - PowerPoint PPT Presentation

Transcript of Python-based Framework for CFD-based Simulation of Free-Flying Flexible Aircraft: Progress

Page 1: Python-based Framework for CFD-based Simulation of Free-Flying Flexible Aircraft: Progress

Python-based Framework for CFD-based Simulation of Free-Flying

Flexible Aircraft: Progress

A. Da RonchUniversity of Liverpool, U.K.

IC, London, U.K.07 February 2013

email: [email protected] web: http://www.cfd4aircraft.com/

Page 2: Python-based Framework for CFD-based Simulation of Free-Flying Flexible Aircraft: Progress

MotivationPhysics-based simulation of very flexible aircraft gust interaction

• large amplitude/low frequency modes

• coupled rigid body/structural dynamics

• nonlinearities from structure/fluid (& control)

Nonlinear model reduction for control design• system identification methods

• manipulation of full order residual

Control design for FCS of flexible aircraft

Page 3: Python-based Framework for CFD-based Simulation of Free-Flying Flexible Aircraft: Progress

Full Model- fluid/structure/flight- large order

Page 4: Python-based Framework for CFD-based Simulation of Free-Flying Flexible Aircraft: Progress

Full Model- fluid/structure/flight- large order

Worst-case Gust- shape- wavelength- altitude

Page 5: Python-based Framework for CFD-based Simulation of Free-Flying Flexible Aircraft: Progress

Full Model- fluid/structure/flight- large order

Worst-case Gust- shape- wavelength- altitude

Reduced Model- build once- time integration

Page 6: Python-based Framework for CFD-based Simulation of Free-Flying Flexible Aircraft: Progress

Full Model- fluid/structure/flight- large order

Worst-case Gust- shape- wavelength- altitude

Reduced Model- build once- time integration

Candidate Gust

Page 7: Python-based Framework for CFD-based Simulation of Free-Flying Flexible Aircraft: Progress

Full Model- fluid/structure/flight- large order

Worst-case Gust- shape- wavelength- altitude

Reduced Model- build once- time integration

Candidate Gust

Page 8: Python-based Framework for CFD-based Simulation of Free-Flying Flexible Aircraft: Progress

Worst-case Gust- shape- wavelength- altitude

Reduced Model- build once- time integration

Candidate Gust

GLA- control on SS form

Full Model- fluid/structure/flight- large order

Page 9: Python-based Framework for CFD-based Simulation of Free-Flying Flexible Aircraft: Progress

Worst-case Gust- shape- wavelength- altitude

Reduced Model- build once- time integration

Candidate Gust

GLA- control on SS form

Full Model- fluid/structure/flight- large order

done for linear aero + nonlinear beam

ready for CFD + aerofoil

to be done for CFD + nonlinear beam

Page 10: Python-based Framework for CFD-based Simulation of Free-Flying Flexible Aircraft: Progress

PML: Parallel MeshLess

• Simulation of complex geometries in relative motion

• Cloud of points

• Euler, laminar and RANS

• Schur complement

Kennett et al., “An Implicit Meshless Method for Application in Computational Fluid Dynamics”, International Journal for Numerical Methods in Fluids; 2012

Page 11: Python-based Framework for CFD-based Simulation of Free-Flying Flexible Aircraft: Progress

Pitch-Plunge Aerofoil with CFD

• Structure: linear/nonlinear

• Euler equations

• 7974 points

“Heavy” caserα = 0.539µ = 100ωξ/ωα = 0.343

Page 12: Python-based Framework for CFD-based Simulation of Free-Flying Flexible Aircraft: Progress

Parameter:• α0 = 15 deg• U* = 2.0• M = 0.3Nonlinear:• βξ3 = 10

Free response - full model

Page 13: Python-based Framework for CFD-based Simulation of Free-Flying Flexible Aircraft: Progress

Full model dofs > 32,000Reduced model dofs = 2

Free response - full/reduced model

Page 14: Python-based Framework for CFD-based Simulation of Free-Flying Flexible Aircraft: Progress

Gust param:• “1-cos”• hg = 12.5• w0 = 0.01

Full model dofs > 32,000Reduced model dofs = 2

Gust response - full/reduced model

Page 15: Python-based Framework for CFD-based Simulation of Free-Flying Flexible Aircraft: Progress

Goland Wing with CFD

Gust response - full/reduced modelFull model dofs > 100,000Reduced model dofs = 2

Page 16: Python-based Framework for CFD-based Simulation of Free-Flying Flexible Aircraft: Progress

Fluid-Structure Interaction

Coupling CFD + CSD• incompatible topology

• transfer forces/displacements between domains

1. Surface mesh deformationMoving Least Square method (MLS) [1]

• mesh-free, conservative, linear, ...

2. Volume mesh deformationInverse Distance Weighting (IDW) [2] or MLS

[1] Quaranta et al., “A Conservative Mesh-Free Approach for Fluid-Structure Interface Problems”, Coupled Problems, 2005

[2] Witteveen, “Explicit and Robust Inverse Distance Weighting Mesh Deformation for CFD”, AIAA-2010-0165

Page 17: Python-based Framework for CFD-based Simulation of Free-Flying Flexible Aircraft: Progress

More at http://www.cfd4aircraft.com/research_flexflight_fsi.html

Open Source Fighterstruct points: 429fluid points : 32,208

DSTL UAVstruct points: 1336fluid points : 8310

Page 18: Python-based Framework for CFD-based Simulation of Free-Flying Flexible Aircraft: Progress

Deformation:Δx = 5 chordsΔy = 5 chords

Page 19: Python-based Framework for CFD-based Simulation of Free-Flying Flexible Aircraft: Progress
Page 20: Python-based Framework for CFD-based Simulation of Free-Flying Flexible Aircraft: Progress

Simulation:M = 0.755α = 0.016 degconv = 10-14

Page 21: Python-based Framework for CFD-based Simulation of Free-Flying Flexible Aircraft: Progress

Flight Dynamics with CFD

Page 22: Python-based Framework for CFD-based Simulation of Free-Flying Flexible Aircraft: Progress
Page 23: Python-based Framework for CFD-based Simulation of Free-Flying Flexible Aircraft: Progress
Page 24: Python-based Framework for CFD-based Simulation of Free-Flying Flexible Aircraft: Progress

# PyFlexFlight.pyimport Aerodynamicsimport RigidBodyDyn

...

# Coupled unsteady simulationfor n in range(nstep):

self.RunTimestep()

# Aerodynamics.pyfrom wrap_CFD import *

# Wrap C/C++/F77 code# Access dynamic shared library

# RigidBodyDyn.pyfrom wrap_Beam import *

# Wrap F90 code# Access dynamic shared library

# MeshDeformation.pyfrom wrap_MeshDef import *

# Wrap C code# Access dynamic shared library

A “new” framework implemented to add flexibility/coupling different codes

Page 25: Python-based Framework for CFD-based Simulation of Free-Flying Flexible Aircraft: Progress

# PyFlexFlight.pyimport Aerodynamicsimport RigidBodyDyn

...

# Coupled unsteady simulationfor n in range(nstep):

self.RunTimestep()

# Perform inner iterationsdef RunIteration():

Aerodynamics.UpdateRigidMotion()Aerodynamics.RunIteration()Aerodynamics.GetBodyLoads()

self.TransferLoads()

RigidBodyDyn.RunIteration()RigidBodyDyn.GetPosVel()

self.TransferMotion()

Page 26: Python-based Framework for CFD-based Simulation of Free-Flying Flexible Aircraft: Progress

# PyFlexFlight.pyimport Aerodynamicsimport RigidBodyDyn

...

# Coupled unsteady simulationfor n in range(nstep):

self.RunTimestep()

# Perform inner iterationsdef RunIteration():

Aerodynamics.UpdateRigidMotion()Aerodynamics.RunIteration()Aerodynamics.GetBodyLoads()

self.TransferLoads()

RigidBodyDyn.RunIteration()RigidBodyDyn.GetPosVel()

self.TransferMotion()

# Perform time-step iterationdef RunTimeStep():

Aerodynamics.AdvanceTime()RigidBodyDyn.AdvanceTime()

while(not converged):

self.RunIteration()

Aerodynamics.WriteData()RigidBodyDyn.WriteData()

Page 27: Python-based Framework for CFD-based Simulation of Free-Flying Flexible Aircraft: Progress

# PyFlexFlight.pyimport Aerodynamicsimport RigidBodyDyn

...

# Coupled unsteady simulationfor n in range(nstep):

self.RunTimestep()

# Perform inner iterationsdef RunIteration():

Aerodynamics.UpdateRigidMotion()Aerodynamics.RunIteration()Aerodynamics.GetBodyLoads()

self.TransferLoads()

RigidBodyDyn.RunIteration()RigidBodyDyn.GetPosVel()

self.TransferMotion()

# Perform time-step iterationdef RunTimeStep():

Aerodynamics.AdvanceTime()RigidBodyDyn.AdvanceTime()

while(not converged):

self.RunIteration()

Aerodynamics.WriteData()RigidBodyDyn.WriteData()

Page 28: Python-based Framework for CFD-based Simulation of Free-Flying Flexible Aircraft: Progress

ConclusionSystematic approach to model reduction

• applicable to any (fluid/structure/flight) systems

• control design done in the same way

Python-based framework• flight dynamics + CFD shown

• FSI method implemented

• to add structural flexibility

Towards CFD-based analysis of free-flying flexible aircraft • gust loads prediction, worst case search, GLA

• SAS, performance optimization

email: [email protected] web: http://www.cfd4aircraft.com/