christopher silva openvsp workshop...

21
ALPINE: Automated Layout with a Python Integrated NDARC Environment (NDARC-OpenVSP Linkage) Christopher Silva OpenVSP Workshop 2019 September 17-19, 2019 Long Beach, CA

Upload: others

Post on 01-Apr-2020

14 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Christopher Silva OpenVSP Workshop 2019openvsp.org/wiki/lib/exe/fetch.php?media=workshop19:...ALPINE: Automated Layout with a Python Integrated NDARC Environment (NDARC-OpenVSP Linkage)

ALPINE: Automated Layout with a Python

Integrated NDARC Environment

(NDARC-OpenVSP Linkage)Christopher Silva

OpenVSP Workshop 2019September 17-19, 2019

Long Beach, CA

Page 2: Christopher Silva OpenVSP Workshop 2019openvsp.org/wiki/lib/exe/fetch.php?media=workshop19:...ALPINE: Automated Layout with a Python Integrated NDARC Environment (NDARC-OpenVSP Linkage)

Recalibrate on why ALPINE exists: US Army needs

2September 2019

• US Army has shown ALPINE in 2016, 2017 OpenVSP workshops

Page 3: Christopher Silva OpenVSP Workshop 2019openvsp.org/wiki/lib/exe/fetch.php?media=workshop19:...ALPINE: Automated Layout with a Python Integrated NDARC Environment (NDARC-OpenVSP Linkage)

ALPINE connects design information to OpenVSP

3September 2019

• OpenVSP can help with generation of geometry for some of these

Page 4: Christopher Silva OpenVSP Workshop 2019openvsp.org/wiki/lib/exe/fetch.php?media=workshop19:...ALPINE: Automated Layout with a Python Integrated NDARC Environment (NDARC-OpenVSP Linkage)

Process for Vertical Lift Conceptual Design

• Conceptual Design of VTOL and V/STOL

vehicles

– Urban air mobility

– Unmanned aircraft

• Link tools for practical conceptual design

– NDARC (sizing, analysis)

• AIDEN (IDE for NDARC)

– OpenVSP (geometry)

– OpenMDAO (optimization)

– M4 Structures Studio (structures)

– CAMRAD II/ CHARM/ RCAS

(comprehensive analysis)

– ANOPP2/AARON (acoustics)

– FlightCODE (flight dynamics/

handling qualities)

– NPSS (propulsion)

– OVERFLOW/FUN3D (CFD)

4September 2019

• OpenVSP brings:

– Layout checks/visualization

– Mass properties

– Wetted areas

– Projected areas

– Some internal layout

– Lightweight, fast, robust

– Widely available and used

– STEP, IGES export (to continue

in Rhino, Solidworks, etc.)

• Tools linking directly to OpenVSP:

– M4 Structures Studio• NASTRAN (strength and stiffness)

• Indirect to LS-DYNA (crash)

• Newly created geometry breaks

links: need a solution

Page 5: Christopher Silva OpenVSP Workshop 2019openvsp.org/wiki/lib/exe/fetch.php?media=workshop19:...ALPINE: Automated Layout with a Python Integrated NDARC Environment (NDARC-OpenVSP Linkage)

Examples of vehicles we have modeled recently

5September 2019

Tilt nacelles, V-tail Tilt wing extensionsCoaxial rotors, turbojets,

H-tailCabin cutout

Multicopter, support booms,

blade landing gear Morph into another size Intermeshing rotorsStopping rotors,

support booms

Tilt wingDucted rotor, circulation

control, reaction jet

Page 6: Christopher Silva OpenVSP Workshop 2019openvsp.org/wiki/lib/exe/fetch.php?media=workshop19:...ALPINE: Automated Layout with a Python Integrated NDARC Environment (NDARC-OpenVSP Linkage)

Some Limitations in OpenVSP must be accepted

• PROP component does not capture important rotor information

– Kinematics of flap, pitch, lag, or controls

– Elasticity, strength in blades

– Mass distribution in blades

• Internal layout of components lacks detail

– Wires, fluid plumbing, drive shafts

– Ducting

– Glazing and cutouts

• Advanced surfacing not available

– Intersection control (filleting, welding, etc)

– Tradeoff for robust geometry

– High-fidelity CFD results will be limited

• Marketing-quality graphics require another tool

• Arbitrary shapes and complex shapes not easy

– Gearboxes, shafts, brackets

• VSP Aero is developmental, but we still produce aero analysis Sets in OpenVSP6September 2019

Page 7: Christopher Silva OpenVSP Workshop 2019openvsp.org/wiki/lib/exe/fetch.php?media=workshop19:...ALPINE: Automated Layout with a Python Integrated NDARC Environment (NDARC-OpenVSP Linkage)

ALPINE workflows

• Legacy ALPINE (versions 1, 2)

– Helicopter, Compound, Tilt rotor

– Use custom components

• Fuselage, nacelle, rotor, wing

• AngelScript for new components

– New .vsp3 file each execution

7September 2019

ALPINE 1, 2

OpenVSP

Standard

Components

OpenVSP

Custom

Components

NDARC

solution file

ALPINE 3

• ALPINE 3

– More geometries available

• User can generate geometry in

OpenVSP GUI

– Standard components preferred

– Either new (custom or generic) or

updated .vsp3 files each execution

Page 8: Christopher Silva OpenVSP Workshop 2019openvsp.org/wiki/lib/exe/fetch.php?media=workshop19:...ALPINE: Automated Layout with a Python Integrated NDARC Environment (NDARC-OpenVSP Linkage)

Need an ‘update-vsp3’ type of aircraft

• AlpineVehicle.vehicle(cfg=‘update-vsp3’) introduced for

ALPINE version 3

– Often do fixed point iteration (wetted areas, download)

– M4 Structures Studio compatibility (other tools also need fixed IDs)

– Easier to make prettier or novel geometries without AngelScript

• Populate the linkage dictionary mapdict

– Auto-linking can work if you build vsp3 model with standard names

– Manual population of mapdict if you want different names

• Linkage dictionary defines how to map from NDARC to OpenVSP

– Names of components must be unique

– OpenVSP component features should have some specific attributes

• e.g. Length_fus to Fuselage:Design:Length

• Mapping identified in Python script; user can edit if desired

8September 2019

Page 9: Christopher Silva OpenVSP Workshop 2019openvsp.org/wiki/lib/exe/fetch.php?media=workshop19:...ALPINE: Automated Layout with a Python Integrated NDARC Environment (NDARC-OpenVSP Linkage)

Example: Use legacy first, then update mode later

9September 2019

OpenVSP

Standard

Components

OpenVSP

Custom

Components

NDARC

solution file

ALPINE 3

Page 10: Christopher Silva OpenVSP Workshop 2019openvsp.org/wiki/lib/exe/fetch.php?media=workshop19:...ALPINE: Automated Layout with a Python Integrated NDARC Environment (NDARC-OpenVSP Linkage)

Step 1: Use ALPINE in legacy mode to create .vsp3

10September 2019

OpenVSP

Standard

Components

OpenVSP

Custom

Components

NDARC

solution file

ALPINE 3

Page 11: Christopher Silva OpenVSP Workshop 2019openvsp.org/wiki/lib/exe/fetch.php?media=workshop19:...ALPINE: Automated Layout with a Python Integrated NDARC Environment (NDARC-OpenVSP Linkage)

Step 1: Use ALPINE to build a vehicle

• liftcruiseTE6=AlpineVehicle.vehicle(solnfile=‘liftcruiseTE6.soln’, filename=‘liftcruiseTE6.vsp3’, cfg=‘tiltrotor’)

11September 2019

Page 12: Christopher Silva OpenVSP Workshop 2019openvsp.org/wiki/lib/exe/fetch.php?media=workshop19:...ALPINE: Automated Layout with a Python Integrated NDARC Environment (NDARC-OpenVSP Linkage)

Step 2: Use OpenVSP GUI to fix the vehicle

• It’s a good start, but some user intervention is required

12September 2019

Nacelles need work

Fuselage needs work

Wing needs work

Landing gear needs work

Systems, Propulsion(s), FuelTank(s), Payload need to be placed

Need rotor supports

Page 13: Christopher Silva OpenVSP Workshop 2019openvsp.org/wiki/lib/exe/fetch.php?media=workshop19:...ALPINE: Automated Layout with a Python Integrated NDARC Environment (NDARC-OpenVSP Linkage)

Step 3: Some assembly required…

change, create, locate, and identify components

13September 2019Many BLANK components placed (can use parent components and offsets) and named

Page 14: Christopher Silva OpenVSP Workshop 2019openvsp.org/wiki/lib/exe/fetch.php?media=workshop19:...ALPINE: Automated Layout with a Python Integrated NDARC Environment (NDARC-OpenVSP Linkage)

Step 4: Things to consider for auto-linking

• Instead of AlpineVehicle.build(), call

AlpineVehicle.link(mapdict), AlpineVehicle.update()

• Not every component represented in NDARC, OpenVSP

– Propulsion in NDARC (Transmission, shafts) missing information:

• Does not have SL, WL, BL placement information

• Does not specify multiple components

• Often massive, these are worth getting right

– LandingGear in NDARC has only a single SL, WL, BL

– FuelTank in NDARC does not have SL, WL, BL (unless aux tank)

– Systems in NDARC does not have SL, WL, BL

– Payload in NDARC does not have SL, WL, BL (maybe not even a

single, easily-identified mass)

14September 2019

Page 15: Christopher Silva OpenVSP Workshop 2019openvsp.org/wiki/lib/exe/fetch.php?media=workshop19:...ALPINE: Automated Layout with a Python Integrated NDARC Environment (NDARC-OpenVSP Linkage)

FUSELAGE:

Fuselage

Rotor-1-hub

Rotor-1-support

Rotor-2-hub

Rotor-2-support

Rotor-3-hub

Rotor-3-support

Rotor-4-hub

Rotor-4-support

Rotor-5-hub

Rotor-5-support

Rotor-6-hub

Rotor-6-support

Rotor-7-hub

Rotor-7-support

Rotor-8-hub

Rotor-8-support

Rotor-9-hub

EngineGroup-10

FuelTank-1

FuelTank-2-empty

FuelTank-2-full

PROP:

Rotor-1-blades

Rotor-2-blades

Rotor-3-blades

Rotor-4-blades

Rotor-5-blades

PROP (cont’d):

Rotor-6-blades

Rotor-7-blades

Rotor-8-blades

Rotor-9-blades

WING:

Wing-1 (symmetry Planar XZ)

Tail-1 (symmetry Planar XZ)

Tail-2

LangingGear-020_mainleftst

LandingGear-020_mainrightst

LandingGear-010_nosestr

BLANK:

Systems

Rotor-1-mass

Rotor-2-mass

Rotor-3-mass

Rotor-4-mass

Rotor-5-mass

Rotor-6-mass

Rotor-7-mass

Rotor-8-mass

Rotor-9-mass

Propulsion-1

Propulsion-2

Propulsion-3

Propulsion-4

Propulsion-5

Propulsion-6

BLANK (cont’d):

Propulsion-7

Propulsion-8

Propulsion-9

Propulsion-10

EngineGroup-1

EngineGroup-2

EngineGroup-3

EngineGroup-4

EngineGroup-5

EngineGroup-6

EngineGroup-7

EngineGroup-8

EngineGroup-9

EngineGroup-11

BODYOFREVOLUTION:

LandingGear-020_mainlefttire

LandingGear-020_mainrighttire

LandingGear-010_nosetire

Step 4: If you use standard naming, can auto-link

• Built from standard components

• Use -XXX_ident to fractionally assign mass to

multiple components

15September 2019

Page 16: Christopher Silva OpenVSP Workshop 2019openvsp.org/wiki/lib/exe/fetch.php?media=workshop19:...ALPINE: Automated Layout with a Python Integrated NDARC Environment (NDARC-OpenVSP Linkage)

In general, need to add information to NDARC

• Split Propulsion 1

• Identify Wing-1-ext

16September 2019

• Split FuelTank

• Split Systems

• Split LandingGear

• Split Payload

Propulsion 1 at tips, plus

shaft and mid-wing GB

(use 3 BLANKs?)

Outboard Wings tilt

(use Wing-1-ext)

LandingGear

(use 3 BLANKs)

Retracting not considered

Systems

(use multiple BLANKs)

Payload

(use multiple PodMan?)

FuelTank-1

(use multiple BLANKs

or Conformal)

Page 17: Christopher Silva OpenVSP Workshop 2019openvsp.org/wiki/lib/exe/fetch.php?media=workshop19:...ALPINE: Automated Layout with a Python Integrated NDARC Environment (NDARC-OpenVSP Linkage)

Assign Sets in OpenVSP for mass properties and aero

• Prioritize mass properties and structural analysis (8/10 sets)

– Differing payload and fuel loads for flight dynamics

– Rotor blades omitted for airframe modes, some flight dynamics

• Two (2) sets as configurations for VSPAero (e.g. takeoff, cruise)

• Glad to see OpenVSP 3.18.0 has 20 Sets!

17September 2019

Contingency smeared over all weight empty components

OpenVSP

Set ID General description

Systems

(except rotor

blade anti-ice) Fuselage

Landing

Gear

Rotor

Blades

Rotor

Blade

Blank

Rotor

Hub

Rotor

Support

Boom

Rotor

Disk Wing Tail

FuelTank

(empty)

FuelTank

(full) Propulsion

EngineGroup

JetGroup

ChargeGroup

Design

Payload

0 Weight empty 1 1 1 1 0 1 1 0 1 1 1 0 1 1 0

1 Operating Weight 1 1 1 1 0 1 1 0 1 1 1 0 1 1 0

2 SDGW/DGW/WMTO 1 1 1 1 0 1 1 0 1 1 0 1 1 1 1

3 Zero Fuel Design Payload 1 1 1 1 0 1 1 0 1 1 1 0 1 1 1

4 Weight Empty - Rotors 1 1 1 0 0 0 1 0 1 1 1 0 1 1 0

5 Oper Wt - Rotors 1 1 1 0 0 0 1 0 1 1 1 0 1 1 0

6 DGW - Rotors 1 1 1 0 0 0 1 0 1 1 0 1 1 1 1

7 DGW (rotor mass blanks) 1 1 1 0 1 0 1 0 1 1 0 1 1 1 1

8 VSPAero 1 1 1 0 0 1 1 1 1 1 0 0 0 0 0

9 VSPAero (alt config) 1 1 1 0 0 1 1 1 1 1 0 0 0 0 0

Page 18: Christopher Silva OpenVSP Workshop 2019openvsp.org/wiki/lib/exe/fetch.php?media=workshop19:...ALPINE: Automated Layout with a Python Integrated NDARC Environment (NDARC-OpenVSP Linkage)

To use ‘Update-vsp3’ mode

• What user needs:

– Existing .vsp3 with following components

• BLANK, FUSELAGE, WING, PROP, Disk, Rotor as appropriate

– If you want to auto-link to initialize:

• Name components using the identified convention

• Your geometry linkages will be generated

– Length, diameter, solidity, WL, SL, BL

• Your mass properties linkages will be generated

– Density linked to NDARC weight and OpenVSP CompGeom

– OpenVSP Sets will be assigned for mass, structure, aero

– If you want to connect components yourself, can easily do so

18September 2019

Page 19: Christopher Silva OpenVSP Workshop 2019openvsp.org/wiki/lib/exe/fetch.php?media=workshop19:...ALPINE: Automated Layout with a Python Integrated NDARC Environment (NDARC-OpenVSP Linkage)

Now can use update mode for future iterations

19September 2019

OpenVSP

Standard

Components

OpenVSP

Custom

Components

NDARC

solution file

ALPINE 3Mapping dictionary

.vsp3 file

Page 20: Christopher Silva OpenVSP Workshop 2019openvsp.org/wiki/lib/exe/fetch.php?media=workshop19:...ALPINE: Automated Layout with a Python Integrated NDARC Environment (NDARC-OpenVSP Linkage)

ALPINE 3 future plans

• Improve robustness

– Still testing different configurations (NASA/Army)

• Unmanned aircraft come in lots of styles

• Need to figure out best way to model ducts

– Regression testing to ensure that past models function correctly

• OpenMDAO design studies

• M4 Structures Studio

• Discuss with developers and users what they want to see

• Document code theory and best practices

• Prepare training material to integrate into NDARC/AIDEN training

• Release on NDARC website in late October

20September 2019

Page 21: Christopher Silva OpenVSP Workshop 2019openvsp.org/wiki/lib/exe/fetch.php?media=workshop19:...ALPINE: Automated Layout with a Python Integrated NDARC Environment (NDARC-OpenVSP Linkage)

21January 2018 21May 2017 2121