christopher silva openvsp workshop...
TRANSCRIPT
ALPINE: Automated Layout with a Python
Integrated NDARC Environment
(NDARC-OpenVSP Linkage)Christopher Silva
OpenVSP Workshop 2019September 17-19, 2019
Long Beach, CA
Recalibrate on why ALPINE exists: US Army needs
2September 2019
• US Army has shown ALPINE in 2016, 2017 OpenVSP workshops
ALPINE connects design information to OpenVSP
3September 2019
• OpenVSP can help with generation of geometry for some of these
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
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
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
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
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
Example: Use legacy first, then update mode later
9September 2019
OpenVSP
Standard
Components
OpenVSP
Custom
Components
NDARC
solution file
ALPINE 3
Step 1: Use ALPINE in legacy mode to create .vsp3
10September 2019
OpenVSP
Standard
Components
OpenVSP
Custom
Components
NDARC
solution file
ALPINE 3
Step 1: Use ALPINE to build a vehicle
• liftcruiseTE6=AlpineVehicle.vehicle(solnfile=‘liftcruiseTE6.soln’, filename=‘liftcruiseTE6.vsp3’, cfg=‘tiltrotor’)
11September 2019
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
Step 3: Some assembly required…
change, create, locate, and identify components
13September 2019Many BLANK components placed (can use parent components and offsets) and named
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
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
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)
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
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
Now can use update mode for future iterations
19September 2019
OpenVSP
Standard
Components
OpenVSP
Custom
Components
NDARC
solution file
ALPINE 3Mapping dictionary
.vsp3 file
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
21January 2018 21May 2017 2121