ENABLING RAPID CONCEPTUAL DESIGN USING GEOMETRY- …

115
ENABLING RAPID CONCEPTUAL DESIGN USING GEOMETRY- BASED MULTI-FIDELITY MODELS IN VSP A Thesis presented to the Faculty of California Polytechnic State University San Luis Obispo In Partial Fulfillment of the Requirements for the Degree Master of Science in Aerospace Engineering by Joel B. Belben March 2013

Transcript of ENABLING RAPID CONCEPTUAL DESIGN USING GEOMETRY- …

Page 1: ENABLING RAPID CONCEPTUAL DESIGN USING GEOMETRY- …

ENABLING RAPID CONCEPTUAL DESIGN USING GEOMETRY-BASED MULTI-FIDELITY MODELS IN VSP

A Thesispresented to

the Faculty of California Polytechnic State UniversitySan Luis Obispo

In Partial Fulfillmentof the Requirements for the Degree

Master of Science in Aerospace Engineering

byJoel B. BelbenMarch 2013

Page 2: ENABLING RAPID CONCEPTUAL DESIGN USING GEOMETRY- …

© 2013Joel B. Belben

ALL RIGHTS RESERVED

ii

Page 3: ENABLING RAPID CONCEPTUAL DESIGN USING GEOMETRY- …

COMMITTEE MEMBERSHIP

TITLE: Enabling Rapid Conceptual Design Using Geometry-

Based Multi-Fidelity Models in VSP

AUTHOR: Joel B. Belben

DATE SUBMITTED: March 2013

COMMITTEE CHAIR: Rob A. McDonald, Ph.D., Associate Professor, Aerospace Engineering

COMMITTEE MEMBER: Nick J. Brake, Staff Aeronautical Engineer, Lockheed Martin

COMMITTEE MEMBER: Kurt Colvin, Ph.D., Professor, Industrial and Manufacturing Engineering

COMMITTEE MEMBER: David D. Marshall, Ph.D., Associate Professor, Aerospace Engineering

iii

Page 4: ENABLING RAPID CONCEPTUAL DESIGN USING GEOMETRY- …

ABSTRACT

Enabling Rapid Conceptual Design Using Geometry-Based Multi-FidelityModels in VSP

Joel B. Belben

The purpose of this work is to help bridge the gap between aircraft conceptual design

and analysis. Much work is needed, but distilling essential characteristics from a design

and collecting them in an easily accessible format that is amenable to use by inexpensive

analysis tools is a significant contribution to this goal. Toward that end, four types of

reduced-fidelity or degenerate geometric representations have been defined and implemented

in VSP, a parametric geometry modeler. The four types are degenerate surface, degenerate

plate, degenerate stick, and degenerate point, corresponding to three-, two-, one-, and zero-

dimensional representations of underlying geometry, respectively.

The information contained in these representations was targeted specifically at lifting

line, vortex lattice, equivalent beam, and equivalent plate theories, with the idea that suit-

ability for interface with these methods would imply suitability for use with many other

analysis techniques. The ability to output this information in two plain text formats—

comma separated value and Matlab script—has also been implemented in VSP, making it

readily available for use.

A modified Cessna 182 wing created in VSP was used to test the suitability of degenerate

geometry to interface with the four target analysis techniques. All four test cases were easily

completed using the information contained in the degenerate geometric types, and similar

techniques utilizing different degenerate geometries produced similar results.

The following work outlines the theoretical underpinnings of degenerate geometry and the

fidelity-reduction process. It also describes in detail how the routines that create degenerate

geometry were implemented in VSP and concludes with the analysis test cases, stating their

results and comparing results among different techniques.

iv

Page 5: ENABLING RAPID CONCEPTUAL DESIGN USING GEOMETRY- …

ACKNOWLEDGEMENTS

I would like to first and foremost express my sincere gratitude to my fiancee, Laurel

Hammang. I don’t know what I would have done without the love and support you’ve

provided throughout my educational career. I only hope that I can repay at least a fraction

of what you’ve given now that the shoe’s on the other foot.

I also owe a special debt of gratitude to my advisor Dr. Rob McDonald for suggesting

the topic, immeasurable help and guidance along the way, and trusting that I would get this

done in a timely manner even though I was moving halfway across the country.

v

Page 6: ENABLING RAPID CONCEPTUAL DESIGN USING GEOMETRY- …

Contents

List of Tables vii

List of Figures viii

1 Introduction 11.1 A Primer on VSP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.2 Justification for Degenerate Geometry . . . . . . . . . . . . . . . . . . . . . . 51.3 Target Analysis Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

1.3.1 ‘Stick’ Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71.3.2 ‘Plate’ Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81.3.3 Additional Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

2 Degenerate Geometry Definitions 112.1 Degenerate Surface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122.2 Degenerate Plate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142.3 Degenerate Stick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202.4 Degenerate Point . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

3 Implementation in VSP 283.1 Class Structure & Code definitions . . . . . . . . . . . . . . . . . . . . . . . . 28

3.1.1 DegenSurface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363.1.2 DegenPlate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383.1.3 DegenStick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 433.1.4 DegenPoint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

3.2 Components Covered . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 523.3 Output File Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

3.3.1 CSV File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 553.3.2 M File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

4 Demonstration Cases, Results, and Conclusions 624.1 Demonstration Cases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

4.1.1 Vortex Lattice: AVL . . . . . . . . . . . . . . . . . . . . . . . . . . . . 634.1.2 Lifting Line Theory . . . . . . . . . . . . . . . . . . . . . . . . . . . . 664.1.3 Equivalent Plate: ELAPS . . . . . . . . . . . . . . . . . . . . . . . . . 694.1.4 Equivalent Beam Theory . . . . . . . . . . . . . . . . . . . . . . . . . 71

4.2 Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73

Bibliography 75

A Matlab Scripts 78

B Target Analysis Input Files 85

vi

Page 7: ENABLING RAPID CONCEPTUAL DESIGN USING GEOMETRY- …

List of Tables

3.1 VSP components by category. . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

4.1 Comparison of key quantities predicted by AVL and lifting line theory. . . . . 674.2 Material properties used for ELAPS test case. . . . . . . . . . . . . . . . . . . 704.3 Comparison of ELAPS-calculated component properties with degenerate point. 70

vii

Page 8: ENABLING RAPID CONCEPTUAL DESIGN USING GEOMETRY- …

List of Figures

1.1 VSP design parameter groups allow quick and meaningful modification ofcomponent geometry. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.2 Visualization of wing plate and stick representations. . . . . . . . . . . . . . . 7

2.1 Cessna 182 model showing body (blue) and surface (red) type components. . 122.2 Cirrus SR22 model, showing degenerate surface representation. . . . . . . . . 132.3 An example degenerate surface normal vector on a wing section. . . . . . . . 142.4 Mapping between discretized surface points and degenerate plate points for

a wing section. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152.5 Degenerate Plate attribute definition using an airfoil section. . . . . . . . . . 152.6 Transformation from body component to degenerate plate using a right cir-

cular cylinder. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172.7 Cessna 182 degenerate plate three view. . . . . . . . . . . . . . . . . . . . . . 192.8 Degenerate stick model of Boeing 747 wing. . . . . . . . . . . . . . . . . . . . 212.9 Shell representation of an airfoil section using rectangles to model thickness. . 232.10 Transformation from body component to degenerate stick using a right cir-

cular cylinder. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

3.1 An overview of the relationship between the Vehicle class and componentgeometries. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

3.2 Composition of the DegenGeom class in VSP. . . . . . . . . . . . . . . . . . . 303.3 A leading edge view of a wing tip with rounded end cap. Cross-sections are

shown in different colors. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313.4 Sequence for creating degenerate geometry from the VSP main screen. . . . . 313.5 VSP’s internal degenerate geometry creation process. . . . . . . . . . . . . . . 323.6 VSP unreflected geometry storage ordering for both body and surface com-

ponent types. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333.7 Point and cross-section ordering for different types of reflected symmetry

using a Fuselage 2 VSP component. . . . . . . . . . . . . . . . . . . . . . . . 343.8 An example degenerate surface normal vector on a wing section. . . . . . . . 373.9 Ordering of degenerate surface nodes and computation of camber line points

on an airfoil section. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393.10 Point indexing used in creating two degenerate plates for body type components. 403.11 Computation of degenerate plate nodes from camber line nodes via vector

projection. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 413.12 Traversal of surface nodes to obtain maximum thickness for both fuselage and

airfoil cross-sections. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 443.13 Calculation of maximum thickness location along chord for an airfoil section. 453.14 Sweep angle at wing quarter chord. . . . . . . . . . . . . . . . . . . . . . . . . 473.15 Airfoil section showing vectors used in computation of cross-section area nor-

mal direction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 473.16 VSP external storage component showing optional pylon and two fin surfaces. 533.17 Five surfaces which comprise the VSP engine component. . . . . . . . . . . . 54

viii

Page 9: ENABLING RAPID CONCEPTUAL DESIGN USING GEOMETRY- …

3.18 Matlab structure format for degenerate geometry. . . . . . . . . . . . . . . . . 603.19 Format of additional Matlab structs describing propeller and point mass prop-

erties. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

4.1 Geometry plots of Cessna wing from both VSP and AVL. . . . . . . . . . . . 654.2 Trefftz Plane plot of Cessna wing force coefficients from AVL. . . . . . . . . . 654.3 Modified Cessna wing used in lifting line theory analysis. . . . . . . . . . . . 664.4 Aerodynamic properties of a modified Cessna wing computed with lifting line

theory. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 674.5 Comparison AVL and lifting line theory drag polars. . . . . . . . . . . . . . . 684.6 Comparison AVL and lifting line theory lift curves. . . . . . . . . . . . . . . . 684.7 Geometry plots of Cessna wing and plate representation from VSP and plate

in ELAPS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 704.8 Wing deflection computed by ELAPS for end-loaded wing . . . . . . . . . . . 714.9 Plot of wing geometry in VSP and the beam representation composed of

leading edge nodes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 714.10 Deflection on end-loaded wing treated as simple beam. . . . . . . . . . . . . . 73

ix

Page 10: ENABLING RAPID CONCEPTUAL DESIGN USING GEOMETRY- …

Chapter 1

Introduction

Aircraft design is comprised of three main stages: conceptual, preliminary, and detailed [1].

The conceptual phase is characterized by the exploration of large design spaces, which

generally translates to large geometric variation among candidate designs [2]. Traditionally,

concept geometry has borrowed heavily from past aircraft and relied on historical regressions

to establish a sensible baseline configuration. The reasoning lies in the inherent iterative

nature of design, the incredible resources consumed by CAD-style geometry modeling, and

the fact that analysis can be both computationally and monetarily expensive.

Iterative solutions start with a first “guess” and generally converge better if this first

guess is “good”, which in the present context may be taken to mean close to the final solution.

This methodology inevitably favors traditional designs, which are known to work, and hence

serve as good starting points in the iterative process. The perhaps unintended consequence

is that tradition heavily influences the eventual concept. Moreover, the approach is flawed

both pedagogically and from the standpoint of commercial competition as it:

1. Disincentivizes novel ideas since they are viewed as more likely to fail and will wasteresources on analysis, and

2. Necessarily does not explore the full design space; it is not a true requirements-drivenprocess.

Relying on past designs to guide future development can be a powerful pedagogical tool if

the focus is on the relationship between requirements—explicit or derived—and the eventual

product. However, technological advances and seemingly minor differences in the role a

vehicle is to fill may take the concept in an entirely different direction if it is allowed to do

so.

1

Page 11: ENABLING RAPID CONCEPTUAL DESIGN USING GEOMETRY- …

The same argument may be made in a commercial context, though with the added com-

plication of influences external to the design group such as budget, company management,

and the regulatory and competitive environment. Ideally, requirements alone should drive

a design, but they often don’t. Part of the problem stems from inability to produce the

multiple geometries needed without a large investment of man-hours. Neglecting exter-

nal influences, the inability to inexpensively analyze those potential designs comprises the

remainder.

To efficiently produce multiple geometries requires recognition of what differentiates

them beyond physical dimensions. Differences from a design standpoint represent variations

in metrics that affect performance—parameters such as wing aspect ratio, sweep, dihedral,

or fuselage fineness ratio. Small changes in these quantities may represent non-trivial mod-

ification of geometric dimensions and affect relationships among components. Fortunately,

Vehicle Sketch Pad (VSP), which was designed specifically with rapid aircraft conceptual

design in mind, enables quick creation and modification of design concepts using high-level

parameters, automatically adjusting component geometry accordingly.

The other challenge is timely analysis of each geometry with an eye toward overall

design feasibility and a fidelity appropriate to the conceptual design phase. Inexpensive, yet

accurate analysis tools exist, many of them open source, but thus far there has not been

a general solution for interfacing these tools with a geometry modeler. Bridging the gap

between a geometry modeler like VSP and inexpensive analysis tools will help mitigate the

risk in attempting non-traditional designs by drastically reducing the time from an idea

to an understanding of its feasibility. Translating a design concept into a general, distilled

geometric representation suitable for multi-physics, multi-fidelity analysis and implementing

the ability to generate and write out this geometry from VSP is the way to bridge this gap,

and serves as motivation for the present work.

1.1 A Primer on VSP

VSP is a parametric geometry modeler created specifically to aide in aircraft conceptual

design. It has been developed in various forms over the course of some twenty years at

NASA by J.R. Gloudemans and others [2, 3, 4]. Recent release under NASA Open Source

Agreement (NOSA) version 1.3 has facilitated access for users across the globe [3].

VSP’s true power lies in its parametric nature. Pre-defined aircraft components are

2

Page 12: ENABLING RAPID CONCEPTUAL DESIGN USING GEOMETRY- …

Figure 1.1: VSP design parameter groups allow quick and meaningful modification of com-ponent geometry.

easily modified using high-level design parameters in addition to geometric dimensions.

With this parametric approach, VSP enables a designer to explore a wide array of aircraft

configurations, creating multiple geometries in a fraction of the time required for just one

using traditional CAD programs.

Figure 1.1 shows two tabs used to modify VSP’s MS WING component, providing a small

example of how design parameters are quickly varied with simple sliders and numerical

input boxes. Increasing wingspan will automatically increase area, aspect ratio, and any

other affected quantities.

For each wing section, a designer has the choice of one of seven geometry driver groups.

Each group is composed of three independent parameters, and adjusting any of them auto-

matically adjusts dependent parameters. As an example, figure 1.1 shows the group Aspect

Ratio–Taper Ratio–Tip Chord selected from the drop down menu. Adjusting any of these

will automatically update the remainder—Area, Span, and Root Chord. Components can

be reflected across planes of symmetry with the click of a button, cross-sections modified

for sweep, twist, airfoil section with a few simple menus and sliders.

By design, the degree of control is reduced when compared to CAD programs. User-

defined parts are not currently supported in VSP (though they are rumored to be on the

3

Page 13: ENABLING RAPID CONCEPTUAL DESIGN USING GEOMETRY- …

horizon), leaving only a handful of stock components to choose among. This may appear

limiting, and depending on the context, can be. In the conceptual phase however, it is

actually a benefit. Freeing the designer from the minutia of dimensioning every segment of

every part and adjusting each of those dimensions to change, for example, sectional airfoils

or twist angle, enables them to concentrate on the real task at hand.

To be sure, arbitrary geometry with a high degree of precision is necessary for machine

drawings, but for exploration of high-level design concepts this degree of control is a hinder-

ance rather than a help. Millimeter precision, rivet placement and fillets don’t determine

in a gross sense whether or not a wing produces enough lift, and use of this level of fidelity

may well distract from the question of if it does.

Much in the same fashion, using high-fidelity analysis tools like CFD and FEA in the

conceptual design phase can be a misuse of resources. Though these tools should not be

explicitly dismissed, full-blown FEA and CFD are clearly not appropriate choices when

trying to figure out if a wing aspect ratio or tip deflection is in the right range. Something

like a vortex lattice or lifting line method would be an inexpensive and sufficiently accurate

substitute for CFD, and instead of FEA, a quick equivalent beam technique will give wing

tip deflections.

Current VSP outputs include high-quality CFD meshes and wetted volume and area

reports, but no method of interfacing with other analysis programs. Similarly, commercial

CAD software includes export for CFD meshers or FEA programs, but no efficient method

of capturing geometric characteristics needed for other analysis techniques. The advent and

development of high-fidelity analysis tools together with increased computational power

has driven the toolset of choice to the most complex options, evidenced by the fact that

most commercial modeling packages are set up to interface with meshing tools. Even if

one invests the large amount of time necessary to create a number of design concepts using

CAD, obtaining the information for analysis programs other than CFD or FEA can be both

time-consuming and arduous.

A general method of capturing geometric information to enable inexpensive, multi-

fidelity analysis techniques is needed. This should include the information necessary for

analysis, but should not include the original full-fidelity model. It should create a reduced-

order or degenerate geometric representation, serving as a conduit from design to analysis.

Incorporating the ability to write out this degenerate geometric information from VSP

will enable a new design methodology that leans less on the past and concentrates more

4

Page 14: ENABLING RAPID CONCEPTUAL DESIGN USING GEOMETRY- …

on the requirements at hand. It will facilitate exploration of non-traditional concepts while

simultaneously decreasing design cycle time. It will also break down the barriers to entry

in the conceptual design and analysis process. Coupling a freely-available, open-source

geometry modeler to classic analysis techniques—many of which are open-source or easily

programmed—encourages participation by more individuals and organizations who may not

have otherwise had the resources or opportunity to do so. It perhaps goes without saying

that increasing participation in any field generally leads to innovation and technological

progress, which benefits all involved.

A final point, though hardly an afterthought: optimization algorithms present an ideal

method for balancing competing objectives and have the potential to play a powerful role in

conceptual design. To truly realize their potential, they should also be a time-saving device,

which requires inexpensive objective function calls. For purposes of conceptual design,

inexpensive objective function calls means inexpensive analysis techniques and the ability

to interface the optimization scheme to these techniques. Coupling a scriptable geometry

modeler like VSP to analysis tools through degenerate geometry is an ideal path to achieving

this goal. In fact, effort on a VSP plugin for Model Center, an optimization environment,

is well underway at Phoenix Integration [5].

1.2 Justification for Degenerate Geometry

Invariably, analysis involves the use of equations or models which attempt to explain nat-

ural phenomena in a common language (mathematics). Moreover, real-world objects are

described in terms of their macroscopic characteristics. These models are never true repre-

sentations of underlying physics or material composition, but instead are chosen for their

accuracy within some set of constraints.

We analyze aerodynamic phenomena for a wide range of temperatures and densities using

a continuum assumption. It’s not correct, but the effects of ignoring individual molecular

contributions to pressure and other thermodynamic quantities are negligible under most

circumstances and indeed, including them would be an unnecessary waste of resources.

For the same range of densities and temperatures, but at a much smaller length scale,

ignoring the molecular nature of a fluid and a solid with which it is interacting would give

worthless results. This implied variance in the value of fidelity is rarely addressed explicitly,

but is encompassed by the question that the best engineers ask when confronted with a

5

Page 15: ENABLING RAPID CONCEPTUAL DESIGN USING GEOMETRY- …

choice of analysis techniques: is this the right tool for the job? The question is really

asking: is this the appropriate level of fidelity for the answers I seek?

Multi-physics, multi-fidelity models have been in use since the inception of modern aero-

dynamic and structural analysis. Most debuted as the contemporary state of the art. With

the advent of computing, higher-fidelity tools were developed, but the simplified techniques

persisted because of their ease of use, time-efficiency, and relatively accurate results. The

importance of these tools in conceptual design is paramount. If an engineer is trying to

decide on wing length, airfoil section choices or some gross sizing parameter, full CFD and

FEA analyses are not only unnecessary, but the wrong choice.

Preliminary lift and induced drag distributions are predicted accurately with Prandtl’s

lifting line theory [6], and recent additions to the technique have made it useful for wings

with sweep and dihedral [7]. Similarly, reduced-fidelity analysis using AVL or other vortex

lattice methods [8], equivalent beam theory [9], and equivalent plate representations [10,

11, 12, 13, 14] have all been shown to provide excellent accuracy at significantly reduced

expense versus CFD or FEA.

These tools are useful, accurate, and inexpensive, and none of them use a full-fidelity

representation of the geometry under analysis. There exists a need to develop a general

definition of the types of geometry that these and other tools like them use.

1.3 Target Analysis Types

Four target analysis techniques—vortex lattice, equivalent plate, equivalent beam, and lift-

ing line theory—helped guide the creation and definition of degenerate geometry. They

were chosen to encompass structures and aerodynamics, since these are primary fields of

concern in conceptual design. They can be divided into two categories of fidelity in geomet-

ric representation: “stick” and “plate” types. The former represents underlying geometry

as one-dimensional, while the latter treats it as two-dimensional.

Figure 1.2 shows a visualization of plate and stick representations of a wing. Lifting line

and equivalent beam theories treat the wing as a one-dimensional ‘stick’, like the one shown.

Also, something very similar to the plate representation is used in vortex lattice analysis

and equivalent plate theory.

6

Page 16: ENABLING RAPID CONCEPTUAL DESIGN USING GEOMETRY- …

Original Component

"Plate" Representation

"Stick" Representation

Figure 1.2: Visualization of wing plate and stick representations.

1.3.1 ‘Stick’ Types

What a stick model of an aircraft component actually is depends on the component in

question. For aerodynamic analysis of a wing, lifting line theory can be thought of as

treating the wing as a stick. There isn’t really a stick representation of a fuselage for

aerodynamics models, but specifying cross-sectional area at stations along the length is a

useful way to obtain a simple drag buildup.

From a structural standpoint, a wing or fuselage may be treated as a continuum beam

and analyzed to obtain bending and torsional behaviors [9]. More detail on these two

methods follows.

Lifting line theory

Prandtl’s lifting line theory was developed during the period 1911-1918 and according to

John D. Anderson, Jr., Professor Emeritus at University of Maryland:

“[It is] The first practical theory for predicting the aerodynamic properties of

a finite wing... The utility of Prandtl’s theory is so great that it is still in use

today for preliminary calculations of finite-wing characteristics.” [6]

The beauty of Prandtl’s theory is that it requires minimal geometric and aerodynamic

characteristics and is extremely computationally efficient. For angles of attack within the

linear lift curve slope region, all that is needed to solve for lift and induced drag at stations

along the wing is the geometric angle of attack (α), the zero-lift angle of attack (αL=0),

7

Page 17: ENABLING RAPID CONCEPTUAL DESIGN USING GEOMETRY- …

chord length (c), wing span (b), and platform area (S). If sectional airfoil data is also

included, this method can be extended to the entire range of angles of attack (including the

stall region) and will provide CL values that are accurate to within 20% [6]. Interestingly

enough, though lifting line theory was developed from incompressible, irrotational potential

flow theory, it has more recently been extended to treat the subject of supersonic flows [15].

Equivalent Beam Theory

VSP is capable of modeling of ribs, spars, and stringers, but at present these models target

high-fidelity FEA, so a structural stick model of a wing can only really encompass cross-

sectional area moments of inertia and center of gravity location. Specifying these, and other

properties at nodes along the span is a basic finite-element formulation which forms the

basis for equivalent beam methods (see [9] and [16] for two examples).

Even a simple one-dimensional beam model can give good preliminary estimates of static

deformation behavior. Equivalent beam techniques have been used successfully in aeroelastic

studies, and experimental validation has shown their accuracy for aspect ratios as low as

3 [17]. Even so, there is disagreement as to the meaning of an elastic axis and whether

shear center, flexural center, or center of twist should be used in its definition [18]. Often

one or more of these are considered the same, which further complicates matters. In either

case, the definitions and calculation methods vary, and the result can be highly dependent

on things like sectional skin thickness and depending on the problem, the idea of an elastic

or flexural axis may not even be valid [19, 20]. For these reasons, elastic axis calculations

are not considered in defining stick types for equivalent beam analysis.

1.3.2 ‘Plate’ Types

Both equivalent plate structural analysis and vortex lattice methods treat objects as two-

dimensional “plates”. Equivalent plate structural analysis has been studied extensively,

expanded upon, and used in tool design by Gary Giles at NASA Langley for more than

twenty years. The fruit of his labors is a program called Equivalent Laminated Plate Solution

(ELAPS). ELAPS will serve as a target analysis program and will be assumed to represent

a standard for equivalent plate methods.

Though there are many ways to implement a vortex lattice method, Athena Vortex

Lattice (AVL) serves as the de facto standard. Because it is freely available, popular, and

8

Page 18: ENABLING RAPID CONCEPTUAL DESIGN USING GEOMETRY- …

yields excellent results, AVL will serve as a target analysis program and a surrogate for all

vortex lattice methods.

Both of these codes are primarily concerned with wings and wing-like objects, and were

not designed with analysis of fuselages in mind [8]. For this reason, their role in guiding the

creation of Degenerate Geometry is limited to wing-like components.

Vortex Lattice/AVL

Vortex lattice methods are many and varied in their formulation[6]. Most treat a three-

dimensional wing as a flat “plate” of horseshoe vortices with appropriate boundary condi-

tions imposed for camber. Theoretical development of vortex lattice methods is beyond the

scope of the current discussion, but reference [21] is an excellent resource for the curious

reader.

Suffice to say that a plate representation of a wing for the purposes of vortex lattice

analysis should include nodes of a discretized wing planform and information about the

camber line slope and location in relation to those nodes. Also, vortex lattice analysis is

designed with thin lifting surfaces in mind and hence has no real treatment of fuselages or

other similar components [21]. Though AVL makes provisions for inclusion of fuselages, the

user manual recommends omitting them if at all possible [8].

Equivalent Plate/ELAPS

Equivalent plate structural analysis as envisioned by Gary Giles, requires only minimal

information about the structure being analyzed. All geometric information is given in the

form of polynomials in a global coordinate system. Equations for camber line location,

sectional thickness, and skin thickness (one for each layer of a composite skin) are defined

for each wing segment [10, 11]. Though later versions of ELAPS are capable of modeling

fuselage structures, their analysis is based on ring and shell equations, not by treating them

as equivalent plates [14].

Equivalent plate analysis has proven itself quite accurate when compared to finite element

methods not only for static deflections, but also in predicting component natural frequencies.

One study found a roughly 1% difference for the first two modes and less than 6.5% for up to

7 modes at a cost of about 1.5% of the time necessary to run FEM [10]. Stress distributions

and displacements were almost indistinguishable and also computed in a fraction of the

9

Page 19: ENABLING RAPID CONCEPTUAL DESIGN USING GEOMETRY- …

time [10, 11]. Additionally, equivalent plate methods have been coupled with aerodynamic

solvers to perform static aeroelastic analysis and validated against wind tunnel testing [22].

1.3.3 Additional Types

If plates and sticks are two- and one-dimensional representations of three-dimensional ob-

jects, then three- and zero-dimensional representations would complete the spectrum. A

three-dimensional degenerate representation of a three-dimensional object is simply a dis-

cretized surface represented by nodes that exist on the actual body. Vortex lattice methods

like AVL compute a plate representation internally and actually expect something like sur-

face nodes for input, rather than a pre-computed plate. The same may very well be true of

other analysis programs, so a degenerate surface should be included to ensure compatibility.

A zero-dimensional object is a geometric point, but full components are often treated

as point masses at their respective centers of gravity for inertia or energy calculations.

Moreover, drag buildups may rely on wetted area, and simple textbook lookups or hand

calculations are often concerned with component properties like mass moment of inertia or

volume. The purpose of degenerate geometry is to provide information to service the largest

selection of reduced-fidelity analysis techniques, so a degenerate point type is also included.

10

Page 20: ENABLING RAPID CONCEPTUAL DESIGN USING GEOMETRY- …

Chapter 2

Degenerate Geometry

Definitions

Aircraft components are broken up into two main categories for the purpose of defining de-

generate geometric representations. Surfaces are objects such as wings, stabilizers, aerody-

namic pylons, etc. They are essentially wing-like objects, lifting or non-lifting (symmetric).

Bodies encompass everything else from fuselages to propellor spinners and landing gear.

The inspiration for this classification system was taken directly from Athena Vortex Lattice

(AVL), which categorizes components in precisely this manner [8]. Bodies may play a po-

tentially large role in overall drag, but are not suitable for (basic) aeroelastic studies or to

the computation of lift. This classification is also convenient because certain characteristics

can be assumed about each geometry type. Surfaces for instance, will have one dimension

much smaller than the other two, meaning that qualities like thickness are easily defined.

Figure 2.1 shows a Cessna 182 model with body components in blue and surface com-

ponents in red. Notice that the wing and main gear struts are surface types since they are

made from aerodynamic, wing-like shapes, whereas the landing gear wheels and pants are

body types. Though not shown in this view, the nose gear strut is also a body type, since

it was modeled as a right circular cylinder.

Four levels of degenerate geometry have been defined. They are, in order of decreas-

ing fidelity: surface, plate, stick, and point, corresponding to three-, two-, one-, and zero-

dimensional representations, respectively. Both surface and body types can be distilled

into any one of these four, though their definitions are slightly different depending on the

11

Page 21: ENABLING RAPID CONCEPTUAL DESIGN USING GEOMETRY- …

Figure 2.1: Cessna 182 model showing body (blue) and surface (red) type components.

category of the original geometry. The following sections define each of these degenerate

geometries, for both surface and body type components. In each of these analyses, it is

assumed that a coordinate system is adopted whereby positive x is aft down the fuselage,

positive y is out the right wing, and positive z is up.

2.1 Degenerate Surface

An object’s true geometry is three-dimensional, continuous on a macroscopic scale, and may

be closely approximated by, but is never entirely amenable to mathematical description. In

fact, describing an object mathematically is the first stage in reducing it’s fidelity from true

geometry to some tractable characterization. Doing so generally requires selecting points

that comprise the object and connecting them in a piecewise fashion with curves of a desired

order, the simplest of which are straight lines. These control points then, can be thought

of as a reduced-fidelity representation of true, underlying geometry. In fact a degenerate

surface has been defined such that it contains a collection of these control points. Connected

together, they form a surface which approximates the original object.

12

Page 22: ENABLING RAPID CONCEPTUAL DESIGN USING GEOMETRY- …

Figure 2.2: Cirrus SR22 model, showing degenerate surface representation.

Figure 2.2 shows this discretization on a Cirrus SR22, with each component shown in

a different color. Note that the points have been grouped into cross-sections along each

component, and though not obvious in the figure, each cross-section contains the same

number of points within any component. The level of fidelity (or accuracy of representation)

of any cross-section is limited only by how many control points are used, with the model

approaching the actual object (in a continuum or macroscopic sense) as the number of

cross-sections and control points becomes infinite.

A natural question is what form this collection of control points takes. The answer is a

simple vector of coordinates ordered by cross-section. If a component has p cross-sections

and q points per cross-section, then there are m = p × q control points and the vector of

these control points is

X = [x1,x2, · · · ,xm]⊺

(2.1)

where each xi is a cartesian coordinate triplet (xi, yi, zi). The number of cross-sections

and points per cross-section are included as a means of effectively using this information.

Degenerate surface also provides outward surface normal vectors in the form

Xn = [n1, n2, · · · , nr]⊺

(2.2)

where each ni is a unit vector (nxi, nyi

, nzi) describing the outward-facing surface normal

13

Page 23: ENABLING RAPID CONCEPTUAL DESIGN USING GEOMETRY- …

direction. Since a point has no single outward direction, normal vectors are defined using

surrounding points. If control points within a cross-section are indexed by i and cross-

sections by j, then a normal vector nij = t1×t2, where t1 = xi,j+1−xij and t2 = xi+1,j−xij

and nij = nij/∥nij∥, as shown in figure 2.3. Though the normal vector is shown at the

node where its defining vectors intersect, it is in fact a best estimate of the red surface’s

normal direction. It is shown at the node to emphasize how it is determined and because

the red panel is not necessarily planar. Note also that for each cross-section, there will be

one less normal vector than control point, and the last cross-section will have no normal

vectors. The length of Xn is r = (p−1)(q−1). Note also that though degenerate geometries

are categorized as either surface or body types, both types can be described with the same

degenerate surface definition.

nij

t1

t2

Figure 2.3: An example degenerate surface normal vector on a wing section.

VSP stores a component internally as a collection of nodes, with each one described by

both a cartesian coordinate triplet and by a parametric coordinate (u,w), where u describes a

cross-section’s location “along” a component, and w describes each point’s location “around”

a cross-section. Parametric coordinates such as these can be extremely useful in mapping

between unique discretizations of the same component (for two different analysis techniques,

for example). These coordinates have been included in the VSP output (discussed in detail

in Chapter 3) in the form of two vectors: u and w.

2.2 Degenerate Plate

The next step in fidelity reduction is to represent a three-dimensional object as two-dimensional.

Since surface type components have one dimension much smaller than the other two, it

is quite natural to collapse them down on that dimension. In fact, this two-dimensional

14

Page 24: ENABLING RAPID CONCEPTUAL DESIGN USING GEOMETRY- …

Figure 2.4: Mapping between discretized surface points and degenerate plate points for awing section.

∆zcamb

t ncamb ai

bi

Figure 2.5: Degenerate Plate attribute definition using an airfoil section.

plate representation was inspired by both equivalent plate structural analysis and vortex

lattice aerodynamic analysis, which are primarily concerned with wings and wing-like com-

ponents [8, 12]. For this reason, degenerate plate’s definition relies on airfoil nomenclature

and general geometry. Unlike degenerate surfaces, degenerate plates need separate defini-

tions for surface and body type components. For simplicity, a surface definition is provided

first.

To create a degenerate plate, an object is first discretized into a series of cross-sections,

which are each represented by a number of coordinate points, essentially a degenerate surface

without normal vectors. These points are then collapsed down to a planar representation

as shown in figure 2.4.

Figure 2.5 shows details of how these points are mapped from a single cross-section to

a plate. First, the midpoints between corresponding upper and lower nodes are calculated

via

Xcamb =1

2(Xtop +Xbottom) (2.3)

where the Xs are vectors of coordinate points (x, y, z) defining the upper and lower surfaces.

15

Page 25: ENABLING RAPID CONCEPTUAL DESIGN USING GEOMETRY- …

These midpoints form the camber line shown in red. The computed camber points are

then projected onto the sectional chord line—formed by connecting the leading and trailing

edges—using vector projection. If xte and xle are the trailing and leading edge coordinates,

respectively, then a normalized vector along the chord pointing from the trailing edge to the

leading edge is given by

c =xle − xte

∥xle − xte∥(2.4)

If a vector from the trailing edge to a camber point a is given by a′, then the degenerate

plate point b corresponding to a is given by

b = xte + c× (a′ · c) (2.5)

At each node b, degenerate plate also reports the distance to a as a magnitude,

∆zcamb = ∥a− b∥ (2.6)

thickness of the original section t, which is simply the distance between corresponding top

and bottom points of the original cross-section,

t = ∥Xtop −Xbottom∥ (2.7)

and the camber line normal vector

ncamb =Xtop −Xbottom

∥Xtop −Xbottom∥(2.8)

Additionally, for each cross-section a plate normal vector nplate is given, which provides the

original orientation of the cross-section and defines the direction from the plate points b to

the camber line points a. This is computed using any corresponding points a and b via

nplate =a− b

∥a− b∥(2.9)

Once again, the VSP parametric coordinates, though not part of the definition of degenerate

plate, are reported in the output at each station and collected in vectors: u, wtop, and

wbottom. Note that in this instance a top and bottom w are reported since each plate point

corresponds to two nodes on the original geometry.

16

Page 26: ENABLING RAPID CONCEPTUAL DESIGN USING GEOMETRY- …

Figure 2.6: Transformation from body component to degenerate plate using a right circularcylinder.

Having sufficiently defined a degenerate plate representation of wing-like components,

a question arises concerning what this definition is for something like a fuselage. Defining

a general plate orientation to represent thick bodies is decidedly difficult. If an object is

axisymmetric, then any section which bisects it into two symmetric pieces would make an

appropriate plate. However, the vast majority of aircraft body parts are not axisymmetric

and so a different approach is necessary. Since it is virtually impossible to state, in a general

sense the “least dominant” dimension for arbitrary body geometry, it was decided that

collapsing a part along two separate dimensions was the best alternative. In this manner, a

truer representation of the original geometric characteristics is preserved, while still reducing

fidelity. This means that degenerate plates composed of body geometry actually contain two

plate objects. This is easiest to visualize using a right circular cylinder as shown in figure

2.6. The two plates are defined such that they equally divide the number of discretized nodes

in each cross-section. This means that though the plates will nominally be orthogonal, if

the nodes are unequally distributed (i.e more on the left than right half, etc.) the plates

will assume non-orthogonal orientations. Additionally, since this is done on a per cross-

section basis the plates’ locations can vary along a body, meaning that its degenerate plate

representation is not necessarily planar in a cartesian coordinate system. Aside from creating

two degenerate plates from each component, the definitions of thickness, distance to camber

line, et cetera are all analogous to surface type degenerate plates. Figure 2.7 shows a Cessna

182 degenerate plate model 3 view, with each component shown in a different color. All

17

Page 27: ENABLING RAPID CONCEPTUAL DESIGN USING GEOMETRY- …

components are surface types and hence collapse down to single plates, with the exception

of the fuselage, which is represented by two plates.

It might be of interest to note that the degenerate geometry definitions say nothing

about how various components are connected. In fact, figure 2.7 shows that they may not

intersect at all. This is beneficial as it provides an engineer, who will have insight into the

geometry and analysis techniques being used, with freedom to choose or ignore connections

between components and specify their material or aerodynamic properties as appropriate.

18

Page 28: ENABLING RAPID CONCEPTUAL DESIGN USING GEOMETRY- …

Figure 2.7: Cessna 182 degenerate plate three view.

Page 29: ENABLING RAPID CONCEPTUAL DESIGN USING GEOMETRY- …

2.3 Degenerate Stick

Degenerate stick reduces fidelity further from degenerate plate, creating a one-dimensional

representation, where each point on the degenerate stick corresponds to a cross-sectional slice

of the actual geometry. Like degenerate plate, degenerate stick relies on airfoil nomenclature,

but has separate definitions for surfaces and bodies. Once again, the surface definition is

presented first, followed by extension to the body definition.

If a degenerate plate is a degenerate surface collapsed to a plane, then a degenerate

stick is a degenerate plate collapsed to a line. To create a degenerate stick, an object is

first discretized into cross-sections, with each one corresponding to a degenerate stick node.

Figure 2.8 shows these nodes connected together (red line) along with the original wing.

Though the nodes and connecting line shown are an easy way to visualize a degenerate

stick, the points that define it are actually the leading and trailing edge points from the

original component (shown in blue). As with other degenerate geometries, node locations

are collected in vectors

Xle = [xle,1,xle,2, · · · ,xle,p]⊺

(2.10)

Xte = [xte,1,xte,2, · · · ,xte,p]⊺

(2.11)

where each xi is a cartesian coordinate triplet corresponding to one of the p discretized cross-

sections. Degenerate sticks also report maximum thickness non-dimensionalized by chord

length, the maximum thickness location as a fraction of the chord length, chord length,

cross-sectional area, an area normal vector, and top and bottom perimeters, as shown in

figure 2.8. The maximum thickness is defined as the maximum of the distances between

adjacent top and bottom nodes from the degenerate surface representation

tmax = max {∥Xtop −Xbottom∥} (2.12)

or alternately, as the maximum thickness reported for the degenerate plate nodes of the

same cross-section. The maximum thickness location is the location of the camberline

point at max thickness projected onto the chord line and is reported as a fraction of chord

length. This is the same as finding the chord location of the degenerate plate node with the

maximum thickness. The top and bottom perimeters are found by assuming that each set

of adjacent nodes is connected by a straight line and then adding up the length of each of

20

Page 30: ENABLING RAPID CONCEPTUAL DESIGN USING GEOMETRY- …

c

t

tloc

A

ptop

pbot

narea

Figure 2.8: Degenerate stick model of Boeing 747 wing.

those lines. The cross-sectional area is found via equation (2.17), the details of which are

given below. Since a cross-section is planar, an area normal vector can be found by taking

the cross product of two vectors defined by any points within the cross-section. Not shown

in figure 2.8, but included in degenerate stick is the quarter chord sweep angle, defined as

positive for rearward sweep. Note that this angle is defined in the x-y plane, so that a

component whose quarter chord locations align with the y-axis has a sweep angle of zero.

Of interest in equivalent beam structural analysis are sectional moments of inertia, specif-

ically those resisting lift and drag and a torsional moment of inertia. These can be provided

in a general manner for both solid and thin-walled “shell” sections without knowing the

units or wall thickness properties. Since creating a degenerate stick requires discretization

of a component into cross-sections composed of points, each cross-section can be treated

as a polygon defined by q points. Research by Steger [23] resulted in formulae for mo-

ments of arbitrary order for polygons. Those for area moments about the origin assuming

a cross-section confined to the x-z plane are given by

Jxx =1

12

q∑i=1

(xi−1zi − xizi−1)(z2i−1 + zi−1zi + z2i ) (2.13)

Jzz =1

12

q∑i=1

(xi−1zi − xizi−1)(x2i−1 + xi−1xi + x2

i ) (2.14)

The parallel axis theorem is employed in order to get moments of inertia about cross-section

21

Page 31: ENABLING RAPID CONCEPTUAL DESIGN USING GEOMETRY- …

centroid:

J∗xx = Jxx −Az2 (2.15)

J∗zz = Jzz −Ax2 (2.16)

where (x, z) is the cross-sectional centroid location and A the area. These can be found via

A =1

2

q∑i=1

xi−1zi − xizi−1 (2.17)

x =1

6a

q∑i=1

(xi−1zi − xizi−1)(xi−1 + xi) (2.18)

z =1

6a

q∑i=1

(xi−1zi − xizi−1)(zi−1 + zi) (2.19)

For all components, it is assumed that lift acts in the z-direction, and drag in the

x-direction. Equations (2.15) and (2.16) then correspond to resistance to lift and drag,

respectively. The resistance to torsion J∗yy is about the y-axis and is simply the sum of J∗

xx

and J∗zz. All solid cross-section inertias are given in units to the fourth power.

Degenerate stick also gives cross-sectional center of mass (gravity), which for a solid cross-

section of constant density coincides with the centroid. The center of gravity coordinates

then are given by equations (2.18) and (2.19) or

Xcg = (x, y, z) (2.20)

where y is simply the y-location of the cross-section.

If a cross-section composed of q points is instead treated as a shell with small thickness,

then each of the n = q − 1 internodal line segments can be treated as a rectangle. Figure

2.9 shows an airfoil section broken up into rectangles, with thickness exaggerated to show

detail. For each rectangle, if the length is b and the thickness t, then the moments of inertia

about its centroid c can be found via

J∗xx =

bt3

12(2.21)

J∗zz =

b3t

12(2.22)

J∗xz = 0 (2.23)

22

Page 32: ENABLING RAPID CONCEPTUAL DESIGN USING GEOMETRY- …

t

b

c

ϕ

x

x∗

z∗ z

Figure 2.9: Shell representation of an airfoil section using rectangles to model thickness.

Rotating these inertias by ϕ so that they align with the global coordinate system and

applying the parallel axis theorem, gives the contribution to cross-sectional inertia of each

discretized segment

Jxx =J∗xx + J∗

zz

2+

J∗xx − J∗

zz

2cos(2ϕ)− J∗

xz sin(2ϕ) + btd2z (2.24)

Jzz =J∗xx + J∗

zz

2− J∗

xx − J∗zz

2cos(2ϕ) + J∗

xz sin(2ϕ) + btd2x (2.25)

where dx and dz are the distances from c to the cross-section centroid along the x-axis and

z-axis, respectively. Substituting equations (2.21), (2.22), and (2.23) into (2.24) and (2.25)

yields equations of the form

Jxx = a1t3 + a2t (2.26)

Jzz = a3t3 + a4t (2.27)

where the coefficients a1, a2, a3, and a4 are given by

a1 =b

24[1 + cos (2ϕ)] a3 =

b

24[1− cos (2ϕ)]

a2 =b3

24[1− cos (2ϕ)] + bd2z a4 =

b3

24[1 + cos (2ϕ)] + bd2x

23

Page 33: ENABLING RAPID CONCEPTUAL DESIGN USING GEOMETRY- …

Notice that for small thickness—a critical assumption—the t terms a2 and a4, which include

the parallel axis theorem, dominate the t3 terms. Though the choice was made not to, one

would be justified in leaving out the t3 terms if desired.

The total cross-sectional inertia is simply the sum of the contributions of each segment

and is given in the form

Jxx,tot = A1t3 +A2t (2.28)

Jzz,tot = A3t3 +A4t (2.29)

where the coefficients are now the sum of the respective coefficients from each segment

A1 =n∑

i=1

a1,i A3 =n∑

i=1

a3,i

A2 =

n∑i=1

a2,i A4 =

n∑i=1

a4,i

Recall that since these are aligned with the global coordinate axes and lift is assumed to

act in the z-direction, Jxx,tot and Jzz,tot are cross-sectional resistances to bending due to

lift and drag, respectively. The resistance to torsion is Jyy,tot and is the sum of Jxx,tot and

Jzz,tot or

Jyy,tot = (A1 +A3) t3 + (A2 +A4) t (2.30)

Degenerate stick reports these four coefficients A1, A2, A3, and A4 for each cross-section

so that shell inertia is defined as a function of thickness and may be recovered by simply

inserting t into equations (2.28), (2.29), and (2.30). Note that approximating the surface as

a series of rectangles relies on a thin wall assumption so that the error due to overlapping

segments is small. Most shell structures for aerospace applications fit this criterion.

The center of gravity for an object of composite shapes, again assumed to be confined

to the x-z plane, may be found via

x =1

M

n∑i=1

ximi (2.31)

z =1

M

n∑i=1

zimi (2.32)

24

Page 34: ENABLING RAPID CONCEPTUAL DESIGN USING GEOMETRY- …

where (xi, zi) is the location of each rectangle’s center of mass,

M =n∑

i=1

mi (2.33)

and y is the simply the y-location of the cross-section. The mass of each rectangle is given

by the product of its area and density or

mi = ρiAi (2.34)

where the area, as shown in figure 2.9 is given by

Ai = bit (2.35)

Substituting equations (2.33), (2.34), and (2.35) into equations (2.31) and (2.32) results in

x =

∑ni=1 xiρibit∑ni=1 ρibit

(2.36)

z =

∑ni=1 ziρibit∑ni=1 ρibit

(2.37)

The thickness is assumed to be the same for all rectangles. If the density is also assumed

not to vary between rectangles, then all ρi are equal to one value, ρ which can be factored

out of the summations and divided out along with t. The final expressions for the center of

gravity location then become

x =1

B

n∑i=1

xibi (2.38)

z =1

B

n∑i=1

zibi (2.39)

where

B =n∑

i=1

bi (2.40)

The center of gravity then can be specified without regard to the thickness of the shell.

Obviously the same caveat applies that in order to represent a shell as a series of rectangles,

the thickness must be small.

Just like the other Degenerate Geometries, when implemented in VSP (see Chapter 3)

the internal parametric coordinates are appended to the output. For degenerate stick, only

25

Page 35: ENABLING RAPID CONCEPTUAL DESIGN USING GEOMETRY- …

Figure 2.10: Transformation from body component to degenerate stick using a right circularcylinder.

the coordinate u is reported, since each node representing a cross-section corresponds to

some u coordinate along a component.

As mentioned previously, the definition of degenerate stick needs some extension to deal

with body type components. In a similar manner to degenerate plate, this is accomplished by

collapsing underlying geometry down along two separate (nominally orthogonal) directions

and reporting two sets of information for each cross-section. This is again most easily shown

using a right circular cylinder. Figure 2.10 shows how a body component is transformed

into a degenerate stick. The “leading edge” points are shown in blue, while the “trailing

edge” points are shown in red. Note that the degenerate stick shown in black with black and

teal nodes actually has two sets of data reported at each node, or there are two degenerate

sticks overlying one another.

2.4 Degenerate Point

The final step in fidelity reduction is to treat a component as zero-dimensional, or a geometric

point. Degenerate point does this for shell or solid components, reporting the center of

gravity location for each of these two cases. Additional information that degenerate point

contains is the component volume, area, wetted volume, wetted area, and mass moments of

inertia for a solid and shell.

The wetted properties make degenerate point unique among the degenerate representa-

tions, in that it is the only one that relies on other components for information. External

26

Page 36: ENABLING RAPID CONCEPTUAL DESIGN USING GEOMETRY- …

component geometry is needed to find what portions of the area and volume of the compo-

nent of interest are intersected.

Six inertia values are given for both a solid and shell representation of each component:

Ixx, Iyy, Izz, Ixy, Ixz, Iyz, with the products of inertia assumed symmetric (i.e. Ixy = Iyx).

For solid components, these are given per density and for shell components per surface

density. To get moments of inertia, simply multiply by density ρ, or by density and thickness,

ρ and t depending on which set of inertias, solid or shell, are desired.

There are multiple discretization methods for obtaining three-dimensional properties like

those found in degenerate point. A recommended approach is that outlined by Dobrovolskis,

in which a triangular surface mesh is created and used to define tetrahedra, which together

comprise the volume of the original object [24]. A similar method already existed in VSP

and was used in the computation of degenerate geometry properties (see section 3.1.4).

27

Page 37: ENABLING RAPID CONCEPTUAL DESIGN USING GEOMETRY- …

Chapter 3

Implementation in VSP

Vehicle Sketch Pad has been developed over the course of many years and has taken a few

different forms [3, 4]. Though it is written in C++, work was begun before much of what is

colloquially called the Standard Template Library (STL) existed. For instance, dynamically-

sized container classes didn’t exist and needed to be created [25]. Additionally, though

VSP doesn’t adhere very strictly to accepted object-oriented design patterns (Model-View-

Controller, Factory, etc.), and despite its evolutionary growth, the class inheritance structure

is well organized [26]. This is important as it allowed degenerate geometry computation and

write-out capabilities to be implemented in relatively short order and with the ability to

easily add support for future components, which is one of the primary benefits of object-

oriented languages.

The purpose of this chapter is to give an overview of VSP’s code structure and organiza-

tion, and how degenerate geometry fits into that structure. It will also explain some of the

lower level details of how various degenerate types are computed, what VSP components

can be distilled into these types, and how future, user-defined components can interface with

the degenerate geometry routines. Finally, the output file types for degenerate geometry

will be discussed.

3.1 Class Structure & Code definitions

Vehicle Sketch Pad is centered around the vehicle, both in principle and in practice. Whether

in batch mode or using the UI, the top level class is Vehicle, which holds references to all

component geometries, and which are active and/or top level (no parents). It also holds a

28

Page 38: ENABLING RAPID CONCEPTUAL DESIGN USING GEOMETRY- …

Vehicle

-activeGeomVec:vector<Geom*>

-topGeomVec:vector<Geom*>

-geomVec:vector<Geom*>

-degenGeomVec:vector<DegenGeom*>

MS_wing_geom

Geom

«inherits»

Figure 3.1: An overview of the relationship between the Vehicle class and component ge-ometries.

fair amount of information about GUI components like a reference to the ScreenMgr class

(which manages GUI screens), which components are highlighted, etc. Some of this may

change as a standalone geometry kernel is created, but Vehicle will likely still act as a

top-level class that tracks component geometry. Figure 3.1 shows the relationship between

Vehicle and the various component geometries that make up the vehicle. References to

all components are contained in geomVec, with subsets contained in activeGeomVec and

topGeomVec. Every component is actually a subclass of the abstract Geom class, each with

fields, methods and attributes specific to itself.

Vehicle also includes methods for file read/write, mass properties, and the CompGeom

routines, among others. This arrangement is reasonable since all component geometry is

visible at the Vehicle level. The motivation for implementing the methods responsible

for degenerate geometry creation and write-out was much the same: since all component

geometry is accessible from Vehicle, it is easy to loop though each component and create

its corresponding degenerate geometry from Vehicle as well.

Each set of degenerate geometries that is created is contained in an instance of the class

DegenGeom. As shown in figure 3.2, DegenGeom contains four C-structs corresponding to

the four degenerate geometry types and an enumeration which tags a component as either

a body or surface type. The difference between surfaces and bodies and definitions of each

of the degenerate geometric types is discussed in chapter 2. Before covering the specifics

of how each degenerate geometry is created, it is best to look at how geometry is stored in

VSP and a high-level view of the path taken and function calls made to create degenerate

geometry.

Every component type in VSP is a subclass of the Geom class. VSP stores each compo-

nent geometry in instances of a class called Xsec_surf as two-dimensional arrays of point

locations grouped into cross-sections. In other words, every component at its core is simply a

29

Page 39: ENABLING RAPID CONCEPTUAL DESIGN USING GEOMETRY- …

Figure 3.2: Composition of the DegenGeom class in VSP.

collection of point locations stored in an instance of Xsec_surf, or a ready-made degenerate

surface. The methods to create all types of degenerate geometry except degenerate point

belong to Xsec_surf. The write-out capabilities are implemented here as well. Degenerate

point creation is handled at the Vehicle level, since all components need to be visible to

calculate wetted volume and area.

VSP has a few items that either don’t contain geometry or aren’t really components

that comprise the vehicle. Because of this they are not part of the degenerate geometry

computations. They are provided here with some description:

• BLANK: doesn’t consist of any geometry. Provided as a convenient way to group com-

ponents.

• CABIN LAYOUT: allows blocking for internal configurations. Also doesn’t consist of any

geometry.

• MESH GEOM: a mesh representation of an existing VSP component, created whenever

meshing is required (CompGeom, Mass Prop, etc.).

MS WING is a fourth item that requires a little special treatment. MS WING is actually unique

among the predefined VSP components in that it has the option for rounded end caps. This

wouldn’t necessarily be a problem except that the end caps are created using four “cross-

sections” that are not in fact planar, cross-sectional slices. Figure 3.3 shows a leading edge

view of a wing tip. The gray portion, bounded by the blue and green cross-sections, is the

wing tip without an end cap. Adding a rounded end cap, shown in red, causes the red, cyan,

magenta, and black “cross-sections” to be added. Since the definitions of degenerate plate

and degenerate stick assume that discretized cross-sections are planar slices of underlying

geometry, the end cap cross-sections cannot be distilled into these types. To rectify the

problem the end caps, if they exist, are removed prior to computation of degenerate surface,

degenerate plate, and degenerate stick, and replaced afterward. Adding rounded end caps

does not appreciably change the wing span, and hence removing them does not appreciably

30

Page 40: ENABLING RAPID CONCEPTUAL DESIGN USING GEOMETRY- …

Figure 3.3: A leading edge view of a wing tip with rounded end cap. Cross-sections areshown in different colors.

Figure 3.4: Sequence for creating degenerate geometry from the VSP main screen.

change the wing’s degenerate representations. The exception of course is degenerate point.

Since degenerate point relies on intersections with other components to define wetted volume

and area and it is not adversely affected by non-planar cross-sections, wing end caps are

retained for its computation.

Accessing degenerate geometry creation and write-out in VSP is very simple. Like other

geometric information and conversion capabilities, degenerate geometry is under the Geom

menu. The Degen Geom user interface (UI) allows a designer to compute all four degenerate

geometry types and to output them in one or both of a comma-separated value (csv) file

or a Matlab script (m-file). Figure 3.4 shows how to access these capabilities. Along with

the compute button, there are file browser/selector and output enable buttons for both

output types. There is also a status display screen, which gives basic information to the

user including how many components were written and to what location(s) if output was

enabled. The computed degenerate geometry isn’t currently accessible except through the

31

Page 41: ENABLING RAPID CONCEPTUAL DESIGN USING GEOMETRY- …

Figure 3.5: VSP’s internal degenerate geometry creation process.

output files. However it is stored, so the upcoming API or other future capabilities will

almost certainly expose degenerate geometry to access and/or manipulation.

When the user tells VSP to create degenerate geometry, the function calls are passed all

the way down to Xsec_surf, which returns an instance of DegenGeom back up to Vehicle

to be stored. An overview of this process is shown in figure 3.5 using an MS WING compo-

nent as an example. The top level createDegenGeom() method belongs to Vehicle. When

it is invoked, Vehicle loops through the vector of all geometries, and calls the individual

createDegenGeom() methods for each component that has its output flag enabled and isn’t

a MESH GEOM, BLANK, or CABIN LAYOUT. If a component is an instance of MS WING, rounded

end caps, if there are any, are first removed. Each component’s createDegenGeom() con-

tains a call to either createSurfDegenGeom() or createBodyDegenGeom() in its Xsec_surf.

For instance, MS WING is a surface type component whose points are stored in an in-

stance of Xsec_surf called mwing_surf. MS WING’s createDegenGeom() calls mwing_surf’s

createSurfDegenGeom(). The instance of DegenGeom that’s eventually passed back to

Vehicle is created here.

It might be of interest to note that cleanup of DegenGeom objects is handled by Vehicle’s

deconstructor. This allows degenerate geometry to persist as long as Vehicle does and

since Vehicle already holds a vector of references to all degenerate geometries, it can easily

release their allocated memory. Note that though degenerate geometry can be out of sync

with the current Vehicle, there is no danger of accidentally accessing this information since

it is recomputed before it is written to file. It should also be noted that two instances of

DegenGeom are created for any component with symmetry, one for the original component

and one for the reflected part.

32

Page 42: ENABLING RAPID CONCEPTUAL DESIGN USING GEOMETRY- …

1,n2 n-1

Front

1

n-1 n

2

1

2

n-1n

n

z

xy

Figure 3.6: VSP unreflected geometry storage ordering for both body and surface componenttypes.

Once an instance of DegenGeom has been created, it is tagged as either a SURFACE_TYPE

or BODY_TYPE (see figure 3.2). The appropriate creation methods for degenerate surface,

degenerate plate, and degenerate stick are then called. After these three degenerate types

are created, a reference to their containing DegenGeom is passed back to Vehicle, which then

moves on to the next component. Once all component geometries have had an associated

DegenGeom created, modified versions of the CompGeom and MassProp routines are run, which

mesh the entire aircraft and compute all component degenerate points at once.

The following sections will cover, in detail, how each type of degenerate geometry is

created and stored. First, VSP’s internal storage mechanism should be discussed. As

previously mentioned, VSP stores the points comprising each component geometry as a

two-dimensional array of cartesian coordinate triplets. Figure 3.6 shows the ordering of

points within a cross-section and the ordering of cross-sections within a component for both

a FUSE2 (body) and an MS WING (surface) in their default orientations.

The default orientation for a body component is with its longitudinal axis lying along

the x-direction, with cross-section numbering starting at the smallest x value and increasing

in the direction of increasing x. Looking along the x-axis in the positive direction, points

within a cross-section are numbered starting at the top and increasing in a counter-clockwise

direction. Note that the first and last points are coincident.

Since the creation of degenerate geometry relies on certain assumptions (like the default

orientation of components), it is important for a designer to understand how the way they

33

Page 43: ENABLING RAPID CONCEPTUAL DESIGN USING GEOMETRY- …

1, n n, 1

1, n

n

1

1

n

z

y

Original

Symmetry:

Symmetry:Original

Symmetry: y-z

xz

y

x-y

x-z

Figure 3.7: Point and cross-section ordering for different types of reflected symmetry usinga Fuselage 2 VSP component.

create geometry can affect the validity of the degenerate geometry that results from their

design. The numbering system mentioned above is only good for default component orienta-

tions. Rotations and reflections will change it. For instance, if a FUSE2 is reflected across the

y-z plane, the cross-section numbering will increase in the negative x-direction, but main-

tain its intra cross-sectional number order. If instead the same FUSE2 were reflected across

the x-z plane, the cross-section ordering would remain the same, but the point numbering

would be reflected (increasing from the top in a clockwise direction when viewed from the

front). Figure 3.7 shows this effect for different types of reflected symmetry.

The default orientation for a surface component is with its longitudinal axis lying along

the y-direction, with cross-section numbering starting at the smallest magnitude of y values,

nominally 0, and increasing along the y-axis either positive or negative. The wing shown in

figure 3.6 starts at y = 0 and increases cross-section number along the positive y-direction.

If it had a reflected mate (the left wing, assuming reflection across the x-z plane), that

component would start at y = 0 and increase cross-section number along the negative y-

direction. Points within surface cross-sections are numbered starting at the trailing edge

and increasing across the top surface to the leading edge around the bottom surface back

to the trailing edge. Once again, the first and last points are coincident.

Though it is assumed that aircraft is oriented such that the freestream (at zero angle of

attack) is in the x-direction, it is important to note that the trailing edge of a wing (part of

34

Page 44: ENABLING RAPID CONCEPTUAL DESIGN USING GEOMETRY- …

degenerate stick’s definition) is defined by its default orientation and so does not necessarily

correspond to the downwind side. Just like the FUSE2 example shown in figure 3.7, reflection

across various planes (choosing a symmetry option in VSP) can affect point or cross-section

ordering. If a wing is reflected across the y-z plane for instance, the “trailing” edge will

actually be the upwind side. The point numbering is the same, namely “trailing” edge to

“leading” edge to “trailing” edge, top to bottom. The same is true if a wing is rotated, say

180 degrees, about the z-axis. The points will be reported in their correct, rotated locations,

but the “leading” edge points will actually be downwind and cross-section numbering will

increase along the negative y-direction.

Each cross-section within a given component has the same number of points that define

it, though this number can vary from component to component. This means that the

fuselage beginning and end “points” labeled in figure 3.6 as cross-sections 1 and n actually

contain 17 points each overlaying one another.

Additionally, though components can be rotated and translated from their default ori-

entation, these movements don’t affect how and where the points are stored. All rotation

and translation information is stored in a 4×4 matrix for each component at the Geom level

(this is shown for an MS WING in figure 3.5 as the matrices model_mat and reflect_mat, for

the primary half of the component and any reflected symmetry, respectively). The points in

a cross-section can move (changing/scaling an airfoil section, for instance), but component-

level rotation and/or translation does not affect the stored points. This is a double-edged

sword. On the one hand it is incredibly important for degenerate geometry computation,

as one can always assume component orientation and certain properties, which degenerate

geometry relies on. On the other hand, unintended consequences can occur, like rotating

a wing 180 degrees so that the leading edge is downstream and then basing subsequent

analysis on the “leading” and “trailing” edges from degenerate stick.

The only real caveat is one that can be broadly applied to aircraft or any other engi-

neering design: the designer must be aware of a process’ underlying assumptions and what

effect, if any, violation of those assumptions results in. He or she must also be aware of

enough of a process’ detail to know what’s happening “under the hood”, lest poor or invalid

results are obtained. With this in mind, degenerate geometry computation will be looked

at in detail, starting with the simplest, degenerate surface.

35

Page 45: ENABLING RAPID CONCEPTUAL DESIGN USING GEOMETRY- …

3.1.1 DegenSurface

Degenerate surface (defined in section 2.1) requires almost no computation as the majority of

information is simply a record how VSP already stores its components internally (see figure

3.6). Degenerate surface information is stored in a C/C++ structure called DegenSurface

that is a member variable of the class DegenGeom. The code definition is:

typedef struct {

vector < vector <vec3d > > x;

vector < vector <vec3d > > nvec;

vector <double > u;

vector <double > w;

} DegenSurface;

where x and nvec are two-dimensional arrays (actually vectors of vectors) of node locations

and node normal vector components, respectively. If there are p cross-sections and q points

per cross section, both x and nvec will be size p× q. Both the cartesian coordinate triplets

and normal vectors are of type vec3d, which is a VSP storage class specifically created to

store coordinates or vector components. It has a two-dimensional analog called vec2d. Both

of these storage classes have methods like dot and cross-product (3D only), normalization,

magnitude, etc. The vectors u and w are VSP parametric coordinates, and are of length p

and q, respectively. Each cross-section has a parametric coordinate u and each point within

a cross-section has a parametric coordinate w, which is the same for a given point (say the

second) in all cross-sections.

Recording x, u, and w is merely a matter of iterating over their respective variables and

copying the information into corresponding DegenSurface members. Calculating nvec, as

discussed in section 2.1, is a bit more involved and depends on whether or not a component

is the original or reflected. Figure 3.8 shows an unreflected airfoil section, which is a surface

type, with an example normal vector. The surface normal definition does not hinge on

surface/body designation, but whether or not the component is reflected, so it is important

to note that the component shown is not a reflected part.

At each degenerate surface node where a normal vector is to be recorded, two vectors

are defined, labeled in figure 3.8 as t1 and t2. The inset shows the points that bound a

given surface patch and how these nodes relate to t1 and t2. From the figure, the following

36

Page 46: ENABLING RAPID CONCEPTUAL DESIGN USING GEOMETRY- …

j = 0

j = n

Cross-s

ection i

Cross-s

ection i+

1

nij

t1

t2

Figure 3.8: An example degenerate surface normal vector on a wing section.

definitions should be obvious:

t1 = x(i+ 1, j)− x(i, j) (3.1)

t2 = x(i, j + 1)− x(i, j) (3.2)

The unit normal vector corresponding to node x(i, j) is computed via vector cross product

n(i, j) =t1 × t2∥t1 × t2∥

(3.3)

where the double vertical bars denote the vector norm.

Since each surface normal looks at adjacent nodes that are “forward” in point number or

cross-section there is one less normal vector than node for each cross-section and no normal

vectors for the last cross-section. Though not necessary, these “missing” vectors are padded

with NANs, making output file formatting uniform and easier to carry out.

For reflected parts one of the following things is true with respect to default orientations:

1. The numbering of nodes within cross-sections is reversed, or

2. The cross-section numbering is reversed

meaning that equation (3.3) gives inward-facing normals instead of outward-facing. The

remedy is to cross t1 and t2 in the reverse order for all reflected components.

37

Page 47: ENABLING RAPID CONCEPTUAL DESIGN USING GEOMETRY- …

3.1.2 DegenPlate

Degenerate plate, defined in section 2.2, shares some similarities with degenerate surface in

its code definition:

typedef struct {

vector < vector <vec3d > > x;

vector < vector <double > > zcamber;

vector < vector <vec3d > > nCamber;

vector < vector <double > > t;

vector <vec3d > nPlate;

vector <double > u;

vector <double > wTop;

vector <double > wBot;

} DegenPlate;

Both have a two-dimensional array (vector of vectors) holding node locations organized

by cross-section, both have normal vectors, and both store the VSP parametric coordinates

u and w. Unique to degenerate plate are two-dimensional arrays for distance to camber line

from node (zcamber) and sectional thickness at node (t). It also has two sets of normal

vectors, camber line and plate, and two different vectors of w coordinates, top and bottom.

Degenerate plate node locations are based on degenerate surface nodes. They are in fact

camber line points projected onto a chord line. Because the leading and trailing edge points

of an airfoil define the chord line, if the underlying geometry is a surface type component,

then the leading and trailing edge points from degenerate surface are the same as the first

and last points on the degenerate plate. If a cross-section is composed of q nodes, then there

will be r = (q + 1)/2 degenerate plate nodes and (using one-based indexing)

xplate(i, 1) = xsurf (i, 1) xplate(i, r) = xsurf (i, r) (3.4)

where the index i indicates the ith cross-section. Note that the first node is the degenerate

surface trailing edge and the rth node is the leading edge (see figure 3.6).

Recall that for a body type component, two plates are created. The following discussion

treats first and second plate variables as separate, but the two are actually concatenated,

making DegenPlate member variables twice as long for a body as for a surface.

Equation 3.4 holds for the (nominally) vertical plate. For the horizontal plate, the chord

is rotated by one-quarter, or s = (q − 1)/4, of the nodes, so the “trailing” and “leading”

38

Page 48: ENABLING RAPID CONCEPTUAL DESIGN USING GEOMETRY- …

r1

2

qq-1

j

k1

Figure 3.9: Ordering of degenerate surface nodes and computation of camber line points onan airfoil section.

edge points are respectively given by

xplate(i, 1) = xsurf (i, 1 + s) xplate(i, r) = xsurf (i, r + s) (3.5)

To compute the intermediate plate node locations, camber line nodes must first be

obtained. A mean camber line is formed by the locus of points midway between the upper

and lower surfaces, as measured normal to the mean camber line [27]. Fortunately, obtaining

the points that define a section’s mean camber line, whether surface or body type, merely

entails marching from one side of a section to the other and finding the midpoint locations

between pairs of opposing points.

Figure 3.9 provides a more clear description for an airfoil (surface) section. If camber

line nodes are denoted xcamb and degenerate surface nodes xsurf then the jth camber line

node of the ith cross-section is given by

xcamb(i, j) =1

2[xsurf (i, j) + xsurf (i, k1)] ; j ∈ {2, 3, . . . , r − 1} (3.6)

where k1 = (q + 1) − j. Note that j only runs from node 2 to node r − 1 because the first

and last camber line points are coincident with the degenerate surface nodes.

Figure 3.10 shows the two degenerate plates created for a circular, body type cross-

section along with point indexing. Equation 3.6 holds for the first, vertical cross-section,

but for the second, the node indexing must be modified. The camber line points are instead

given by

xcamb(i, j) =1

2[xsurf (i, j + s) + xsurf (i, k2)] ; j ∈ {2, 3, . . . , r − 1} (3.7)

where k2 = {(s+ q − j) mod (q − 1)}+ 1. Though it’s not entirely clear upon inspection,

this ensures that k2 ∈ {s, s− 1, . . . , 1, q − 1, q − 2, . . . , r + s+ 1}.

39

Page 49: ENABLING RAPID CONCEPTUAL DESIGN USING GEOMETRY- …

k2

1 + s r + s

1, q

r

j k1

j + s

Figure 3.10: Point indexing used in creating two degenerate plates for body type compo-nents.

The next step is to project the camber line points onto the plate or plates, depending on

component type. For a surface this is the sectional chord line, or that line drawn between

the leading and trailing edge nodes. For a body, there are two: one described by the same

formulae as for a surface, and one for the second, nominally orthogonal plate. The following

steps will be described in terms of a surface component, but with two equations listed at

every step. The first will be labeled with a subscript 1, and is for the surface, as described

and also used to compute the first plate for a body type component. The second, labeled

with a subscript 2 will exclusively pertain to body type components and be for computing

the second plate.

Figure 3.11 shows how camber line nodes are projected onto a section’s chord line. For

each camber line node, a vector from the trailing edge to that node is given by

a1 = xcamb(i, j)− xsurf (i, 1) ; j ∈ {2, 3, . . . , r − 1} (3.8)

a2 = xcamb(i, j + s)− xsurf (i, 1 + s) ; j ∈ {2, 3, . . . , r − 1} (3.9)

A unit vector pointing from the trailing edge to the leading edge is given by

c1(i) =xsurf (i, r)− xsurf (i, 1)

∥xsurf (i, r)− xsurf (i, 1)∥(3.10)

c2(i) =xsurf (i, r + s)− xsurf (i, 1 + s)

∥xsurf (i, r + s)− xsurf (i, 1 + s)∥(3.11)

40

Page 50: ENABLING RAPID CONCEPTUAL DESIGN USING GEOMETRY- …

a

c

xcamb(i, j)

xplate(i, j)zcamb(i, j)

Figure 3.11: Computation of degenerate plate nodes from camber line nodes via vectorprojection.

and the jth plate point is computed via

xplate,1(i, j) = xsurf (i, 1) + (a1 · c1(i)) c1(i) (3.12)

xplate,2(i, j) = xsurf (i, 1 + s) + (a2 · c2(i)) c2(i) (3.13)

The distances from these nodes to their corresponding camber line nodes, stored in the

member variable zcamber, are computed for either surface or body components via

zcamb(i, j) = ∥xcamb(i, j)− xplate(i, j)∥ (3.14)

The values of the first and last point are set to zero, since by definition, the degenerate plate

nodes at these locations coincide with the first and last camber line nodes.

Thickness at each degenerate plate node is simply the distance between corresponding

degenerate surface “upper” and “lower” nodes. Thickness at the jth degenerate plate node

is

t1(i, j) = ∥xsurf (i, j)− xsurf (i, k1)∥ (3.15)

t2(i, j) = ∥xsurf (i, j + s)− xsurf (i, k2)∥ (3.16)

where the indexes k1 and k2 are given by

k1 ∈ {q − 1, q − 2, . . . , r + 1} (3.17)

k2 ∈ {s, s− 1, . . . , 1, q − 1, q − 2, . . . , r + s+ 1} (3.18)

Once again, the first and last points are set equal to zero.

41

Page 51: ENABLING RAPID CONCEPTUAL DESIGN USING GEOMETRY- …

The camber line normal vectors for the first and last node location are both set to the

zero vector, since there is no defined direction from a location to itself. For the intermediate

nodes, camber line normal vectors are in the direction of the thicknesses or

ncamb,1(i, j) =xsurf (i, j)− xsurf (i, k1)

∥xsurf (i, j)− xsurf (i, k1)∥(3.19)

ncamb,2(i, j) =xsurf (i, j + s)− xsurf (i, k2)

∥xsurf (i, j + s)− xsurf (i, k2)∥(3.20)

where k1 and k2 are given by equations (3.17) and (3.18), respectively.

Each cross-section has a plate normal vector that points toward the “top” of the original

surface. Referring to figures 3.9 and 3.10, this is the j or j + s side.

nplate(i) =c(i)× narea(i)

∥c(i)× narea(i)∥(3.21)

where c is the chord vector, given by equation (3.10) or (3.11) and the cross-sectional area

normal vector narea is defined by the process given in section 3.1.3.

The VSP parametric coordinate u has one value for each cross-section and hence one

value for each degenerate plate section. VSP stores these parametric coordinates in a vector

called uArray, and degenerate plate merely copies it over for each node (twice in the case

of a body type component)

u(i, j) = uArray(i) ; j ∈ {1, 2, . . . , r} (3.22)

Since each degenerate plate node corresponds to two nodes from the original VSP ge-

ometry, degenerate plate reports two w coordinates at each node, wtop and wbot. These are

obtained from the VSP variable wArray with the following formulae

wtop,1(i, j) = wArray(j) wbot,1(i, j) = wArray(k1) (3.23)

wtop,2(i, j) = wArray(j + s) wbot,2(i, j) = wArray(k2) (3.24)

where once again j ∈ {1, 2, . . . , r}. The indexes k1 and k2 are expanded so the first and last

plate nodes are captured

k1 ∈ {q, q − 1, . . . , r} k2 ∈ {1 + s, s, . . . , 1, q − 1, . . . , r + s} (3.25)

42

Page 52: ENABLING RAPID CONCEPTUAL DESIGN USING GEOMETRY- …

For the first plate (or only surface plate), since there are two coincident nodes at the trailing

edge, the top and bottom values for w at the first degenerate plate node will be unique,

specifically 0 and 1, respectively. The final degenerate plate node, however is assigned from

the location of the leading edge point, and hence the top and bottom values of w will be

identical. For the second plate, the first and last nodes have only a single value of w and so

wtop and wbot are identical. If the index k2 from equation (3.25) is examined, it is apparent

that for the coincident node location halfway along the second degenerate plate (the two

original “trailing” edge points) the value of wbot is set to 0.

3.1.3 DegenStick

Degenerate stick is defined in section 2.3. Though its representation of underlying geometry

is a reduction in fidelity from other degenerate forms, its member variable list is expanded:

typedef struct {

vector <vec3d > xle;

vector <vec3d > xte;

vector <double > toc;

vector <double > tLoc;

vector <double > chord;

vector <double > sweep;

vector < vector <double > > Ishell;

vector < vector <double > > Isolid;

vector <vec3d > xcgSolid;

vector <vec3d > xcgShell;

vector <double > area;

vector <vec3d > areaNormal;

vector <double > perimTop;

vector <double > perimBot;

vector <double > u;

} DegenStick;

Using the same convention as section 3.1.2, all discussion of degenerate stick variable com-

putation will focus on surface type components, but with two sets of equations listed. The

first, labeled with a subscript 1 will pertain to the single surface component degenerate

stick and the first degenerate stick for a body type component. The second, labeled with a

subscript 2, will pertain to the second body type component degenerate stick.

43

Page 53: ENABLING RAPID CONCEPTUAL DESIGN USING GEOMETRY- …

k2

1 + s r + s

1, q

r

j k1

j + s

r1

2

qq-1

j

k1

Figure 3.12: Traversal of surface nodes to obtain maximum thickness for both fuselage andairfoil cross-sections.

The variables xle and xte refer to sectional leading and trailing edges, respectively.

They are obtained for the ith cross-section from the degenerate surface representation via

xle,1(i) = xsurf (i, r) xle,2(i) = xsurf (i, r + s) (3.26)

xte,1(i) = xsurf (i, 1) xte,2(i) = xsurf (i, 1 + s) (3.27)

where the each cross-section has q nodes and

r =1

2(q + 1) s =

1

4(q − 1) (3.28)

Maximum thickness to chord, stored in the variable toc, is obtained by traversing pairs of

degenerate surface nodes to obtain thicknesses, and then dividing the maximum value by

the chord length. This traversal and thickness calculation is performed in the same manner

as for degenerate plate. Figures 3.9 and 3.10 are repeated here as figure 3.12 for reference.

44

Page 54: ENABLING RAPID CONCEPTUAL DESIGN USING GEOMETRY- …

tmax

d1

c1

xcamb,1(i, j1)

xsurf (i, 1)

Figure 3.13: Calculation of maximum thickness location along chord for an airfoil section.

Chord is found via

c1(i) = ∥xsurf (i, r)− xsurf (i, 1)∥ (3.29)

c2(i) = ∥xsurf (i, r + s)− xsurf (i, 1 + s)∥ (3.30)

where r and s are given by equation (3.28). Maximum thickness to chord is obtained by

toc1(i) =max {∥xsurf (i, j)− xsurf (i, k1)∥}

c1(i)(3.31)

toc2(i) =max {∥xsurf (i, j + s)− xsurf (i, k2)∥}

c2(i)(3.32)

where j ∈ {2, 3, . . . , r − 1} and k1 and k2 are given by equations (3.17) and (3.18), respec-

tively.

The maximum thickness location is given in percent chord and is found by first projecting

the degenerate surface camber line point corresponding to the maximum thickness location

down onto the sectional chord line as shown in figure 3.13. This gives the distance from the

trailing edge to the maximum thickness location along the chord. If the camber line point

corresponding to the max thickness locations for the two sticks are given by xcamb,1(i, j1)

and xcamb,2(i, j2), then the distances d1 and d2 are found via

d1(i) = [xcamb,1(i, j1)− xsurf (i, 1)] · c1(i) (3.33)

d2(i) = [xcamb,2(i, j2)− xsurf (i, 1 + s)] · c2(i) (3.34)

45

Page 55: ENABLING RAPID CONCEPTUAL DESIGN USING GEOMETRY- …

where c1 and c2 are given by equations (3.10) and (3.11), respectively. Thickness location

in percent chord is then given by

tLoc1(i) = 1− d1(i)

c1(i)(3.35)

tLoc2(i) = 1− d2(i)

c2(i)(3.36)

Quarter-chord sweep angle, like the degenerate surface normal vectors (section 3.1.1)

depends on adjacent cross-sections for their computation, and hence there will be one less

angle than the number of cross-sections reported. If there are p cross-sections, the following

formulae assume i ∈ {1, 2, . . . , p− 1}. Computation starts with finding the coordinate

location of the current section quarter chord via

qccrnt,1(i) = xsurf (i, 1) +3

4c1(i)c1(i) (3.37)

qccrnt,2(i) = xsurf (i, 1 + s) +3

4c2(i)c2(i) (3.38)

and the quarter chord location of the adjacent cross-section via

qcnext,1(i) = xsurf (i+ 1, 1) +3

4c1(i+ 1)c1(i+ 1) (3.39)

qcnext,2(i) = xsurf (i+ 1, 1 + s) +3

4c2(i+ 1)c2(i+ 1) (3.40)

The next step is to get a vector from the current to adjacent cross-section quarter chord

location and to zero out the z-component. The reasoning is the same given in previous

sections, namely that it is assumed the upstream location is in the −x-direction, and that

z is up. For aerodynamic purposes, the sweep angle is then confined to the x-y plane and

is that angle off of the y- or −y-axis (depending on which direction is outboard) toward the

x-axis.

Next, the signed angle between this vector and the appropriate side of the y-axis is

obtained. If the y-component of the vector to the next cross-section is negative, the appro-

priate axis is the negative y-axis and the angle sign convention is positive counter-clockwise

about the z-axis. If instead it is positive, the appropriate axis is the positive y-axis and

the angle sign convention is positive clockwise about the z-axis. Figure 3.14 shows inboard

section sweep angles for both a left and right wing. Angles are reported in degrees, with

the pth sweep angle set to NAN.

46

Page 56: ENABLING RAPID CONCEPTUAL DESIGN USING GEOMETRY- …

y

xΛ Λ

Figure 3.14: Sweep angle at wing quarter chord.

ab

Figure 3.15: Airfoil section showing vectors used in computation of cross-section area normaldirection.

Cross-section area normal vectors are computed by taking the cross product of two

vectors within a section. The choice is arbitrary since any two vectors in a planar cross-

section will give a vector normal to that section. For consistency, a chord vector pointing

from the trailing to leading edge and a vector between the bottom and top points directly

adjacent to the trailing edge were chosen, as shown in figure 3.15. The area normal vector

is narea = b× a, where

a(i) = xsurf (i, r)− xsurf (i, 1) (3.41)

b(i) = xsurf (i, 2)− xsurf (i, q − 1) (3.42)

These formulae hold for both surface and body type components.

Cross-section area and moments of inertia and center of gravity location for solid cross-

sections are found using the work of Carsten Steger [23] as discussed in section 2.3. In order

to calculate cross-section area, the points are first rotated (denoted by the prime symbol)

so that the area normal aligns with the y-axis, ensuring that the cross-section is entirely in

47

Page 57: ENABLING RAPID CONCEPTUAL DESIGN USING GEOMETRY- …

the x-z plane. The area is then found via

a(i) =1

2

q−1∑j=1

x′surf,x(i, j)x

′surf,z(i, j + 1)− x′

surf,x(i, j + 1)x′surf,z(i, j) (3.43)

+1

2

[x′surf,x(i, q)x

′surf,z(i, 1)− x′

surf,x(i, 1)x′surf,z(i, q)

]where the subscripts x and z denote those respective coordinate components.

For solid components, both surface and body type, the cross-sectional center of gravity is

found by first rotating the degenerate surface nodes into the x-z plane. The cg components

are then found via

x′(i) =1

6

q−1∑j=1

[x′surf,x(i, j) + x′

surf,x(i, j + 1)]

(3.44)

+1

6

[x′surf,x(i, q) + x′

surf,x(i, 1)]

z′(i) =1

6

q−1∑j=1

[x′surf,z(i, j) + x′

surf,z(i, j + 1)]

(3.45)

+1

6

[x′surf,z(i, q) + x′

surf,z(i, 1)]

The y-component is identical for all nodes since the cross-section was rotated into the x-z

plane, so y′ = x′surf,y(i, 1) is used. The points are then rotated back into their original

orientation, giving the correct center of gravity location.

Three moments of inertia are reported for solid components. They are two bending

moments and one torsional. For a surface type component the two bending moments of

inertia are about the x- and z-axes and represent resistance to bending due to drag and lift,

respectively. The torsional moment of inertia is about the y-axis and represents resistance

due to a pitching moment. These are computed via

Ixx(i) =a(i)

12

q−1∑j=1

[x2surf,z(i, j) + xsurf,z(i, j)xsurf,z(i, j + 1) + x2

surf,z(i, j + 1)]

(3.46)

+a(i)

12

[x2surf,z(i, q) + xsurf,z(i, q)xsurf,z(i, 1) + x2

surf,z(i, 1)]+ a(i)z2(i)

Izz(i) =a(i)

12

q−1∑j=1

[x2surf,x(i, j) + xsurf,x(i, j)xsurf,x(i, j + 1) + x2

surf,x(i, j + 1)]

(3.47)

+a(i)

12

[x2surf,x(i, q) + xsurf,x(i, q)xsurf,x(i, 1) + x2

surf,x(i, 1)]+ a(i)x2(i)

Iyy(i) = Ixx(i) + Izz(i) (3.48)

48

Page 58: ENABLING RAPID CONCEPTUAL DESIGN USING GEOMETRY- …

where a(i) is given by equation (3.43), and x(i) and z(i) by the rotated results of equations

(3.44) and (3.45), respectively.

A similar process is followed for body type components except that the bending moments

of inertia are about the y- and z-axes and torsion is about the x-axis, and so are computed

via

Iyy(i) =a(i)

12

q−1∑j=1

[x2surf,z(i, j) + xsurf,z(i, j)xsurf,z(i, j + 1) + x2

surf,z(i, j + 1)]

(3.49)

+a(i)

12

[x2surf,z(i, q) + xsurf,z(i, q)xsurf,z(i, 1) + x2

surf,z(i, 1)]+ a(i)z2(i)

Izz(i) =a(i)

12

q−1∑j=1

[x2surf,y(i, j) + xsurf,y(i, j)xsurf,y(i, j + 1) + x2

surf,y(i, j + 1)]

(3.50)

+a(i)

12

[x2surf,y(i, q) + xsurf,y(i, q)xsurf,y(i, 1) + x2

surf,y(i, 1)]+ a(i)y2(i)

Ixx(i) = Iyy(i) + Izz(i) (3.51)

The area is computed by rotating the cross-section into the y-z plane:

a(i) =1

2

q−1∑j=1

x′surf,y(i, j)x

′surf,z(i, j + 1)− x′

surf,y(i, j + 1)x′surf,z(i, j) (3.52)

+1

2

[x′surf,y(i, q)x

′surf,z(i, 1)− x′

surf,y(i, 1)x′surf,z(i, q)

]The cross-sectional centroid z coordinate is given by equation (3.45), y-coordinate is

y(i) =1

6

q−1∑j=1

[xsurf,y(i, j) + xsurf,y(i, j + 1)] (3.53)

+1

6[xsurf,y(i, q) + xsurf,y(i, 1)]

and this time the x-coordinate is y′ = x′surf,x(i, 1).

Moments of inertia of thin-walled components are computed as functions of wall-thickness

and are reported as coefficients of these functions. The description of underlying assump-

tions and relevant formulae are given in section 2.3 and equations (2.28), (2.29), and (2.30).

Figure 2.9 shows how the thin section is discretized into rectangles of thickness t. Assuming

that the index q + 1 refers to node 1, each line segment connecting adjacent degenerate

49

Page 59: ENABLING RAPID CONCEPTUAL DESIGN USING GEOMETRY- …

surface nodes can be expressed as the vector

b(i, j) = xsurf (i, j + 1)− xsurf (i, j) (3.54)

The magnitude of this vector is

b(i, j) = ∥xsurf (i, j + 1)− xsurf (i, j)∥ (3.55)

The distance from the midpoint between each set of adjacent nodes to the cross-section

center of gravity

d(i, j) =1

2[xsurf (i, j + 1) + xsurf (i, j)]− x(i) (3.56)

The moment of inertia function coefficients for a surface component are then found via

A1(i) =1

24

q∑j=1

{b(i, j) [1 + cos (2ϕ(i, j))]} (3.57)

A2(i) =1

24

q∑j=1

{b3(i, j) [1− cos (2ϕ(i, j))] + b(i, j)d2z(i, j)

}(3.58)

A3(i) =1

24

q∑j=1

{b(i, j) [1− cos (2ϕ(i, j))]} (3.59)

A4(i) =1

24

q∑j=1

{b3(i, j) [1 + cos (2ϕ(i, j))] + b(i, j)d2x(i, j)

}(3.60)

A5(i) = A1(i) +A3(i) (3.61)

A6(i) = A2(i) +A4(i) (3.62)

where ϕ(i, j) is the angle of b(i, j) with respect to the positive x-axis. The bending and

torsional moments of inertia can be recovered if wall thickness t is specified via

Ixx(i) = A1(i)t3 +A2(i)t (3.63)

Izz(i) = A3(i)t3 +A4(i)t (3.64)

Iyy(i) = A5(i)t3 +A6(i)t (3.65)

For a body type component, the moments of inertia are instead calculated in the y-z

plane. The function coefficients A1-A3, A5, and A6 are identical except that ϕ(i, j) is now

50

Page 60: ENABLING RAPID CONCEPTUAL DESIGN USING GEOMETRY- …

the angle of b(i, j) off of the positive y-axis and the remaining function coefficient is

A4(i) =1

24

q∑j=1

{b3(i, j) [1 + cos (2ϕ(i, j))] + b(i, j)d2y(i, j)

}(3.66)

The two bending and one torsional moment of inertia are now about the y-, z-, and x-axes,

respectively and are recovered via

Iyy(i) = A1(i)t3 +A2(i)t (3.67)

Izz(i) = A3(i)t3 +A4(i)t (3.68)

Ixx(i) = A5(i)t3 +A6(i)t (3.69)

The cross-sectional center of gravity for shell components is found by first rotating the

degenerate surface nodes into the x-z plane (once again denoted by the prime symbol). The

cg components are then found via

x′(i) =

∑qj=1

12

[x′surf,x(i, j) + x′

surf,x(i, j + 1)]b(i, j)∑q

j=1 b(i, j)(3.70)

z′(i) =

∑qj=1

12

[x′surf,z(i, j) + x′

surf,z(i, j + 1)]b(i, j)∑q

j=1 b(i, j)(3.71)

The y-component is identical for all nodes since the cross-section was rotated into the x-z

plane, so y = xsurf,y(i, 1) is used. The points are then rotated back into their original

orientation, giving the correct center of gravity location.

The top and bottom perimeters are found by summing up line segments connecting

adjacent degenerate surface nodes within a cross-section, or

ptop(i) =r−1∑j=1

b(i, j) +1

2b(i, q) (3.72)

pbot(i) =

q−1∑j=r

b(i, j) +1

2b(i, q) (3.73)

Once again the VSP parametric coordinate u is simply copied over for each cross-section

u(i) = uArray[i]

where uArray is the VSP variable for storing the parametric coordinates u.

51

Page 61: ENABLING RAPID CONCEPTUAL DESIGN USING GEOMETRY- …

3.1.4 DegenPoint

The final degenerate geometry type is degenerate point, which is defined in section 2.4. The

code definition is:

typedef struct {

vector < double > vol;

vector < double > volWet;

vector < double > area;

vector < double > areaWet;

vector < vector < double > > Ishell;

vector < vector < double > > Isolid;

vector < vec3d > xcgShell;

vector < vec3d > xcgSolid;

} DegenPoint;

Degenerate point properties require discretizing components into tetrahedra or triangu-

lar surface meshes. For the wetted area and volume, all components’ meshes need to be

intersected. Reference [24] gives a treatment of how to discretize arbitrary polyhedra into

tetrahedra.

Fortunately, the routines to calculate degenerate point’s member variables already ex-

isted in VSP and had been in use for some time. The volume and area and their wetted

counterparts were obtained using the CompGeom routines. The moments of inertia and cg

location came from a modified version of the MassProp routines that calculated inertia per

density (ρ) for the solid and per surface density (ρt) for the shell.

3.2 Components Covered

VSP currently has 12 components available for use from the geometry browser window. All

12 are subclasses of the top-level geometry class Geom. Table 3.1 lists these components by

category: surface, body, or neither.

Table 3.1: VSP components by category.

Surface Body Uncategorized

MS_WING PROP* POD EXT_STORE* BLANK

DUCT HWB FUSE ENGINE* CABIN_LAYOUT

HAVOC FUSE2

* Composites of more than one Xsec_surf

52

Page 62: ENABLING RAPID CONCEPTUAL DESIGN USING GEOMETRY- …

Body

Pylon (optional)

Fins

Figure 3.16: VSP external storage component showing optional pylon and two fin surfaces.

The two uncategorized components, BLANK and CABIN LAYOUT are primarily used for

model design and layout and are not strictly part of the actual vehicle. Any CABIN LAYOUT

component is ignored when calculating degenerate geometry. BLANK components however,

can be designated as point masses in VSP. Location and mass information is recorded and

output for any that are point masses and all others are ignored.

MS WING is the prototypical surface type component and DUCT and HWB are essentially just

modified versions of it. Each of these components has its geometry held in a single instance of

Xsec_surf and all have their entire geometry taken into account when computing degenerate

geometry.

POD, FUSE, HAVOC, and FUSE2 are much the same: each store their geometry in one

instance of Xsec_surf, and that entire geometry gets written out in the various degenerate

forms. The starred components in table 3.1 require a little special attention.

PROP is composed of multiple instances of Xsec_surf, one for each blade. As these are

all identical, only one degenerate geometry, corresponding to one blade is computed and

output. However, rotation center, a vector denoting axis of rotation, and the number of

blades is also output, meaning the original propeller could be reconstructed if need be.

EXT STORE, shown in figure 3.16, is composed of four Xsec_surfs, one each for the body

(blue), pylon (green), and two fins (red and cyan). There is an option to turn on/off the

pylons and if the tank type is selected there are no fins. In any case, the most relevant

portion is the body section, and only that is converted to degenerate geometry, the other

parts are ignored.

53

Page 63: ENABLING RAPID CONCEPTUAL DESIGN USING GEOMETRY- …

Engine

Inlet

External Inlet

Duct

Nozzle

Figure 3.17: Five surfaces which comprise the VSP engine component.

ENGINE, shown in figure 3.17, is composed of five Xsec_surfs: an inlet (magenta), two

portions of an inlet duct (red and cyan), a nozzle (green), and the main engine itself (blue).

It was decided early on that the engine would not be supported by degenerate geometry

routines for the following reasons:

1. ENGINE is not suitable for simple aerodynamic or structural analysis.

2. Degenerate surface assumes a certain discretization method that ENGINE may not

comply with.

3. Effort is currently underway to replace ENGINE with an updated and more capable

version [28].

Toward the first point, inexpensive aerodynamic analysis on an engine might simply look

at its contribution to drag. For that, a simple FUSE2 can be used. Also, though engines are

structural components, they are not typically part of the aircraft’s structural load paths.

Toward the second point, the ducts would likely be classified as surface components, while

the engine would be a body, leaving the classification of ENGINE undefined. The portion that

is computed and output by the degenerate geometry routines is the engine section, which

comprises the main core, and will suffice for a simple drag buildup.

3.3 Output File Types

VSP has the capability to write out degenerate geometry information in two file formats,

a comma-separated value file and a Matlab script. The purpose behind the csv file was

54

Page 64: ENABLING RAPID CONCEPTUAL DESIGN USING GEOMETRY- …

to create a collection of degenerate geometry information that was easily parsable in any

number of languages or could be loaded into Excel and manually manipulated.

The m-file was created primarily as a means of writing degenerate geometry information

directly into Matlab variables, skipping the need for parsing. Since Matlab is often used

for engineering analysis, this potentially puts the necessary information into the analysis

program directly. The m-file also holds enormous benefits for design students, as their

analysis tools very likely center around Matlab. The following sections describe these two

formats.

3.3.1 CSV File

The csv file has a keyword-driven format and is an easily human-readable, ready-made Excel

file, complete with comments. The symbol # denotes a comment line, and is followed by a

comma-separated list of descriptive column headings (i.e. what comes below).

The file has two header lines, a title and a blank line, followed by a comment line stating

that the next line will be the number of components contained within the file.

# DEGENERATE GEOMETRY CSV FILE | title depicting file contents

| blank line

# NUMBER OF COMPONENTS | comment line

42 | number of components

...

The title is mainly to identify the file to any human reading it, say in Excel. The number of

components (which does not include point masses) could be useful for storage preallocation

during parsing.

If any BLANK components in VSP have been designated as point masses, they are listed

immediately following the header lines and are designated by the keyword BLANK_GEOMS, fol-

lowed by the number of point masses, a comment line, and then one line for each containing

its name, location, and mass:

BLANK_GEOMS , 3

# Name , xLoc , yLoc , zLoc , Mass

Blank_0 , 2.50, 3.25, 0.00, 155

...

These lines (if they exist) are followed by degenerate geometry information for each

component. The keyword BODY or SURFACE denotes the beginning of a component, and is

55

Page 65: ENABLING RAPID CONCEPTUAL DESIGN USING GEOMETRY- …

followed by the component name. If the component is a propeller, the next two lines are

a comment line and a line beginning with the keyword PROP followed by propeller-specific

information:

SURFACE , Prop_0

# Propeller , Num Blades , xLoc , yLoc , zLoc , nRotX , nRotY , nRotZ

PROP , 4, 5, 5, 3, 0, 1, 0

...

where the location given is the center of rotation, and the vector (nRotX, nRotY, nRotZ)

is a normalized vector denoting the axis of rotation.

If the component is not a propeller, the next line following the BODY or SURFACE keyword

is a comment line, followed by the type of degenerate geometry and the number of cross-

sections for all types except degenerate point. For degenerate surface and degenerate plate,

the number of points per cross-section is also included. The order is not crucial, but each

component’s degenerate geometry is listed in order of degenerate surface, degenerate plate,

degenerate stick, and degenerate point. These are specified by the keywords FULL_SURFACE,

PLATE, STICK, and POINT, respectively. The first two, degenerate surface and degenerate

plate have the following structure:

BODY (or SURFACE), Fuselage

#DegenGeom Type , nXsecs , nPnts/Xsec

FULL_SURFACE , 24, 41

#x, y, z, xn , yn , zn , u, w

0, 1, 3, 0.5, 0.2, 0.3, 0, 1

...

#DegenGeom Type , nXsecs , nPnts/Xsec

PLATE , 48, 21

#xn , yn , zn

0, 1, 0

...

#x, y, z, zCamb , t, nCambX , nCambY , nCambZ , u, wTop , wBot

0, 1, 3, 0, 1, .5, 2.3, 0, 1, 0, 0.35, 0.45, 0.55

...

The first line states that the component is a body type named ‘Fuselage’. The comment

line serves as headers for the information directly beneath. FULL_SURFACE denotes that the

following is a degenerate surface, and the numbers indicate that there are 24 cross-sections

composed of 41 points each. This means that there will be 24×41 = 984 lines of information

following (excluding any comment lines). Each line thereafter has a node coordinate location

(x,y,z), surface normal vector coordinates (xn,yn,zn) corresponding to that node (could

56

Page 66: ENABLING RAPID CONCEPTUAL DESIGN USING GEOMETRY- …

be NANs) and the VSP parametric coordinates u and w.

After all 984 nodes have been reported, there is an additional comment line followed by

the keyword PLATE, the number of cross-sections, and the number of points per cross-section.

Since there are 48 cross-sections, the next 48 lines will be plate normal vector components

for each of those cross-sections (xn,yn,zn). After the plate normals (and another comment

line for the humans), there will be 48 × 21 = 1008 lines with the degenerate plate node

coordinates (x,y,z), the distance to the camber line from those nodes (zCamb), the thickness

(t), direction to camber line from node (nCambX,nCambY,nCambZ), and VSP parametric

coordinates (u,wTop,wBot).

Degenerate stick has too many columns to effectively show in the present format, and

so its structure will be explained instead.

#DegenGeom Type , nXsecs

STICK , 48

# xle , yle , zle , xte , yte , zte , xcgSolid , ycgSolid , ...

0.6, 0.0, 1.0, 0.6, 0.0, 5.0, 0.6, 0.0, ...

The first line contains the keyword STICK and the number of cross-sections, which will

be the number of lines following. Next is a comment line that serves as column head-

ings for all information to follow. The fields on each line are, in order: leading edge node

location (xle,yle,zle), trailing edge node location (xte,yte,zte), center of gravity lo-

cation for a solid (xcgSolid,ycgSolid,zcgSolid), center of gravity location for a shell

(xcgShell,ycgShell,zcgShell), maximum thickness to chord (toc), location of maxi-

mum thickness in percent chord (tLoc), chord length (chord), sweep angle (sweep, can be

NAN), shell moment of inertia coefficients (A1,A2,A3,A4,A5,A6), solid moments of inertia

(Ixx,Izz,Iyy for surfaces or Iyy,Izz,Ixx for bodies), area, area normal vector components

(areaNormalX, areaNormalY, areaNormalZ), top and bottom perimeters, and finally the

VSP parametric coordinate u.

The final degenerate geometry type, degenerate point, is denoted by the keyword POINT

and is only one line. The fields, in order are volume (vol), wetted volume (volWet), area

(area), wetted area (areaWet), shell mass moments of inertia followed by solid mass mo-

ments of inertia (Ixx,Iyy,Izz,Ixy,Ixz,Iyz), shell center of gravity location followed by

solid center of gravity location (xcg,ycg,zcg).

After degenerate point, either another component will begin with the keyword BODY or

SURFACE or the end of file will be reached. There is no keyword signifying the end of file.

57

Page 67: ENABLING RAPID CONCEPTUAL DESIGN USING GEOMETRY- …

3.3.2 M File

The m-file output is a script that loads all degenerate geometry information into a Matlab

structure. The resulting variable, called degenGeom is a 1× n struct of structs, where each

field corresponds to a component of the original geometry (fuselage, etc.). Note that when a

component has reflected symmetry, it is split into two components for output. For instance

a component named Wing with reflected symmetry (presumably x-z) will be output in two

different structures with names Wing and Wing_refl.

Figure 3.18 shows the composition of the struct degenGeom and its members. Each

member contains a string named ‘type’ which is either ‘SURFACE’ or ‘BODY’, and a string

named ‘name’ which contains the name of the original component. Each one also contains

four structs, corresponding to the four degenerate geometry types.

Both degenGeom.surf and degenGeom.plate contain a struct of structs called sect

which corresponds to the original component cross-sections. Referring to figure 3.18 and

assuming 'Fuselage' is the tenth component in degenGeom, to access the fourth surface

normal vector from the second cross-section one would execute the following Matlab com-

mand:

degenGeom(10).surf.sect(2).Xn(4,:)

Indexing into the other variables is accomplished in a similar manner. It should be

pointed out that any variables in figure 3.18 with sizes like <2px3> or <1x2r> are that

size because the example component is a BODY (meaning that two plates and two sticks

are constructed). The same variables would respectively be <px3> and <1xr> for SURFACE

components.

One additional area that deserves clarification is that of the inertias in degenGeom.stick

and degenGeom.point. Both shell and solid moments of inertia given in degenGeom.point

are listed in the order Ixx, Iyy, Izz, Ixy, Ixz, and Iyz. As previously mentioned, these are

mass moments of inertia per density or per surface density for solid and shell, respectively.

To obtain the mass moment of inertia for a solid about the x-axis for the ith component,

one would execute the Matlab command

degenGeom(i).point.Isolid(1)*rho

where rho is the user-supplied component density.

58

Page 68: ENABLING RAPID CONCEPTUAL DESIGN USING GEOMETRY- …

Shell inertias in degenGeom.stick are the coefficients A1-A6 given in equations (3.57)

to (3.62) and (3.66). Referring once again to figure 3.18, the Matlab command

degenGeom(i).stick.Ishell(3,1)*t^3 + degenGeom(i).stick.Ishell(3,2)*t

where t is the user-supplied shell thickness, would return Ixx or Iyy for the third cross-section

of the ith component, depending on if it was a SURFACE or BODY.

Much in the same manner each row of degenGeom.stick.Isolid contains the area

moments of inertia Ixx, Izz, Iyy for surfaces and Iyy, Izz, Ixx for bodies. To get the area

moment of inertia for the same section above if it were instead a solid, one would execute

degenGeom(i).stick.Isolid(3,1)

In addition to degenGeom, two other structs—blankGeom and propGeom—are created

when there are point masses or propellers present. Point masses are collected in blankGeom

which is a struct of structs, each corresponding to a point mass. Similarly, propGeom is a

struct of structs corresponding to each PROP component.

Figure 3.19 shows the member fields of each of these two structs. The point mass

information is simply name, location, and mass. The fields propGeom.rotCenter and

propGeom.rotVec correspond to the propeller’s rotation center location and a vector about

which it rotates. The field propGeom.idx is the index in degenGeom corresponding to the

propeller information given. For instance if propGeom(4).idx = 17, then the component

whose degenerate geometric information is contained in degenGeom(17) is a propeller with

the rotation center, etc. specified in propGeom(4).

59

Page 69: ENABLING RAPID CONCEPTUAL DESIGN USING GEOMETRY- …

degenGeom

<1xn struct>

<1x1 struct>

type 'BODY'name 'Fuselage'degenSurf <1x1 struct>degenPlate <1x1 struct>degenStick <1x1 struct>degenPoint <1x1 struct>

<1x1 struct>

type 'SURFACE'name 'Wing'degenSurf <1x1 struct>degenPlate <1x1 struct>degenStick <1x1 struct>degenPoint <1x1 struct>

<1x1 struct>

type 'SURFACE'name 'Duct'degenSurf <1x1 struct>degenPlate <1x1 struct>degenStick <1x1 struct>degenPoint <1x1 struct>

surf <1x1 struct>

sect <1xp struct>u <1xp double>w <1xq double>

plate <1x1 struct>

nPlate <2px3 double>sect <1x2p struct>u <1x2p double>wTop <1x2r double>wBot <1x2r double>

stick <1x1 struct>

Xle <2px3 double>Xte <2px3 double>toc <1x2p double>tLoc <1x2p double>chord <1x2p double>sweep <1x2p double>Ishell <2px6 double>Isolid <2px3 double>XcgShell <2px3 double>XcgSolid <2px3 double>area <1x2p double>areaNormal <2px3 double>perimTop <1x2P double>perimBot <1x2p double>u <1x2p double>

point <1x1 struct>

vol <1x1 double>volWet <1x1 double>area <1x1 double>areaWet <1x1 double>Ishell <1x6 double>Isolid <1x6 double>xcgShell <1x3 double>xcgSolid <1x3 double>

sect <1x1 struct>

X <qx3 double>Xn <qx3 double>

sect <1x1 struct>

X <qx3 double>Xn <qx3 double>

sect <1x1 struct>

X <rx3 double>zCamber <1xr double>t <1xr double>nCamber <rx3 double>

sect <1x1 struct>

X <rx3 double>zCamber <1xr double>t <1xr double>nCamber <rx3 double>

Figure 3.18: Matlab structure format for degenerate geometry.

Page 70: ENABLING RAPID CONCEPTUAL DESIGN USING GEOMETRY- …

<1x1 struct>

name 'Blank_38'X <1x3 double>mass <1x1 double>

<1x1 struct>

name 'Fuel Mass'X <1x3 double>mass <1x1 double>

blankGeom

<1xm struct>

<1x1 struct>

idx <1x1 int>rotCenter <1x3 double>rotVec <1x3 double>numBlades <1x1 int>

<1x1 struct>

idx <1x1 int>rotCenter <1x3 double>rotVec <1x3 double>numBlades <1x1 int>

propGeom

<1xn struct>

<1x1 struct>

name 'Blank_02'X <1x3 double>mass <1x1 double>

<1x1 struct>

name 'Blank_50'X <1x3 double>mass <1x1 double>

<1x1 struct>

idx <1x1 int>rotCenter <1x3 double>rotVec <1x3 double>numBlades <1x1 int>

<1x1 struct>

idx <1x1 int>rotCenter <1x3 double>rotVec <1x3 double>numBlades <1x1 int>

Figure 3.19: Format of additional Matlab structs describing propeller and point mass properties.

Page 71: ENABLING RAPID CONCEPTUAL DESIGN USING GEOMETRY- …

Chapter 4

Demonstration Cases, Results,

and Conclusions

Having defined four types of degenerate geometry, the focus must now shift to demonstration

of their usefulness. This final chapter will show that the information contained in the four

degenerate types is sufficient to interface with the four target analysis techniques. Since these

techniques are representative of the types of analysis in conceptual design, the demonstration

cases should also inductively show that degenerate geometry is suitable for a wide array of

reduced-order techniques.

The chapter will conclude with a summary of the work completed in defining degenerate

geometry and implementing it in VSP. Lessons learned from the demonstration cases will

also be presented, with the hope that future work can build in a meaningful way on what

has been presented.

4.1 Demonstration Cases

In order to demonstrate the utility and suitability of degenerate geometry for multi-fidelity

analysis, four demonstration cases were performed using a simplified Cessna 182 wing. Each

corresponds to one of the target analysis techniques described in section 1.3. The purpose is

to verify the suitability of degenerate geometry to interface with these four, and by extension

with a wide array of lower-order techniques.

It should be noted that while the four degenerate geometry types were created with these

62

Page 72: ENABLING RAPID CONCEPTUAL DESIGN USING GEOMETRY- …

four analysis techniques in mind, none are intended as direct input to any particular program

or formula. In fact, none were defined to necessarily provide all the information needed for

their respective target analysis, but rather as a geometric representation on the same order.

It is hoped that together these degenerate geometries provide a general set of information

that allows interface with any number of techniques and analysis tools, providing maximum

flexibility to aircraft designers.

Also of importance is the fact that no attempt was made to validate the results of

these test cases or the techniques themselves. Ample literature exists for the latter and the

former is beyond the point of the current investigation. In short, these test cases seek to

demonstrate the usefulness of degenerate geometry in interfacing with analysis tools, not

the usefulness of analysis tools in predicting design characteristics.

The previous statements notwithstanding, the analysis techniques used here have long

track records of providing good results and their shortcomings are well understood. All test

cases performed should yield reasonable, if not entirely accurate predictions, and comparison

of outcomes between analysis techniques that utilize different sets of degenerate geometric

information can therefore be used to show veracity among these different geometries. For

this purpose, the aerodynamic test cases begin with AVL and structures with ELAPS, two

commercial-grade analysis programs whose accuracy has been vetted, and conclude with

lifting line and equivalent beam theory techniques for which there are no standard, off-the-

shelf codes. Similar results between AVL and lifting line theory, and ELAPS and equivalent

beam analysis will provide further support for the degenerate geometry creation process and

the information contained in the various degenerate types.

4.1.1 Vortex Lattice: AVL

For the first test case, Athena Vortex Lattice was used to analyze a simplified version

of the wing from the Cessna 182 example model that VSP ships with. The number of

cross-sections was reduced to simplify the model and to enable global discretization options

in AVL. Specifically, the model was reduced to the two center sections, eliminating the

“bunched-up” cross-sections at the wing root and tip.

Translation from degenerate geometry to AVL input file was accomplished using a very

brief Matlab script, which is provided in the appendix. AVL collapses geometry to a plane

internally, so degenerate plate was not used in creating this file. If a fuselage is omitted (as

63

Page 73: ENABLING RAPID CONCEPTUAL DESIGN USING GEOMETRY- …

it is in this test case), the AVL user guide recommends connecting the two wings together

instead of leaving a gap in the center. Treating both wings as a single component has

this effect since AVL assumes all cross-sections supplied within any given component are

connected.

Degenerate stick supplied a reference span, cross-section leading edge locations, and

chord lengths. Degenerate stick was also used to define a reference chord, which was a

simple mean of all sectional chord lengths. Degenerate point provided a global center of

gravity, and the airfoil definitions were created using the nodes in degenerate surface.

Figure 4.1 shows the AVL geometry plot (magenta) with trailing vortex filaments and

force plots along with the original geometry from VSP. The grey portions are those defined

in VSP, while the center panel is “created” in AVL by simply treating the two wings as one

component (supplying all cross-sections in order and letting AVL connect them together). It

should be pointed out that the “plate” from AVL is, at the very least, qualitatively similar

to the original component, and since the airfoil sections were defined by degenerate surface

nodes, their representation in AVL carries the same degree of fidelity as the original VSP

model.

The single test case performed was rather bland compared to AVL’s full capabilities,

but sufficient nonetheless. More importantly, it provided a set of conditions amenable to

lifting line theory’s capabilities. Analysis was performed at zero degrees angle of attack, no

sideslip, and zero Mach (incompressible flow) with no angular rates. Figure 4.2 shows the

Trefftz plane plot from this test. Without attempting to validate the results, the remark

can be made that the lift and induced angle of attack distributions are reasonable across

the span. The maximum sectional cl value is at the center of the wing and is about 0.65.

Lift drops off toward the wing tips, which is partially a function of larger negative induced

angle of attack and partially because the original geometry has about a 4◦ washout.

Other quantities of interest (for comparison with lifting line theory) are CL and CD,i

which are 0.5128 and 0.0117, respectively. Finally, it is a safe observation at this point that

all information necessary to evaluate a wing in AVL is readily obtained from degenerate

geometry.

64

Page 74: ENABLING RAPID CONCEPTUAL DESIGN USING GEOMETRY- …

Figure 4.1: Geometry plots of Cessna wing from both VSP and AVL.

Figure 4.2: Trefftz Plane plot of Cessna wing force coefficients from AVL.

65

Page 75: ENABLING RAPID CONCEPTUAL DESIGN USING GEOMETRY- …

4.1.2 Lifting Line Theory

To solve for lift, induced drag, and induced angle of attack on a finite wing, classical lifting

line theory needs total wing span, and geometric and zero-lift angles of attack along with

chord at each station for which properties are to be computed. All of this information is

contained in degenerate stick except the zero-lift angle of attack, which though a result of

geometry is actually an aerodynamic property and is obtained through external analysis

tools like XFoil [29].

In keeping with classical thin airfoil theory, a lift curve slope of 2π is assumed, though

this can be modified if sectional properties are known. Perhaps future versions of VSP

will have the capability to efficiently calculate these sectional airfoil properties, but for now

zero-lift angle of attack is considered a quantity for input by the analyst, and sectional lift

curve slopes are assumed to follow thin airfoil theory.

Figure 4.3 shows the modified Cessna wing used for this test case. Like the one used

in AVL the grey portions are the original component from VSP. For lifting line theory the

wing is assumed continuous, as shown by the center panel. Since there is no standard lifting

line code in popular use, one was created in Matlab following the methods outlined in [6],

with zero-lift angles of attack obtained from [27].

Figure 4.4 shows the results of analysis at zero degrees angle of attack, presented in a

similar manner to AVL’s Trefftz Plane plot. The sectional Cl distribution is qualitatively

very similar. It has a maximum value of about 0.65 at mid-span, and falls off toward the

wing tips with a flattening out near y = ±10 ft. The 3D lift coefficient is 0.5005 and the

induced drag coefficient 0.0115, which differ from those predicted by AVL by 2.4% and 1.7%,

respectively. Table 4.1 summarizes key results obtained by AVL and lifting line theory and

notes their differences.

Figure 4.3: Modified Cessna wing used in lifting line theory analysis.

66

Page 76: ENABLING RAPID CONCEPTUAL DESIGN USING GEOMETRY- …

−20 −15 −10 −5 0 5 10 15 200

0.2

0.4

0.6

0.8

cl[-

]CL = 0.5005, CD,i = 0.0115

−20 −15 −10 −5 0 5 10 15 20−0.07

−0.06

−0.05

−0.04

−0.03

−0.02

−0.01

Y [ft]

αi[r

ad]

c l

c lc/c r efα i

Figure 4.4: Aerodynamic properties of a modified Cessna wing computed with lifting linetheory.

Table 4.1: Comparison of key quantities predicted by AVL and lifting line theory.

CL cl,center CD,i αi,tip αi,center

AVL 0.5128 0.65 0.0117 -0.08 -0.07

Lifting Line Theory 0.5005 0.65 0.0115 -0.08 -0.035

Percent Difference 2.4% 0% 1.7% 0% 50%

67

Page 77: ENABLING RAPID CONCEPTUAL DESIGN USING GEOMETRY- …

0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09−0.4

−0.2

0

0.2

0.4

0.6

0.8

1

1.2

1.4

C D , i

CL

Lifting Line TheoryAVL

Figure 4.5: Comparison AVL and lifting line theory drag polars.

−10 −8 −6 −4 −2 0 2 4 6 8 10−0.4

−0.2

0

0.2

0.4

0.6

0.8

1

1.2

1.4

α [d eg ]

CL

Lifting Line Theory

AVL

Figure 4.6: Comparison AVL and lifting line theory lift curves.

68

Page 78: ENABLING RAPID CONCEPTUAL DESIGN USING GEOMETRY- …

Another interesting comparison between AVL and lifting line theory is their respective

drag polars and lift curves. These are shown in figures 4.5 and 4.6. As with the first case,

the two methods are in excellent agreement considering that classical lifting line theory does

not take the wing’s dihedral into account. The only discrepancies seem to be induced angle

of attack near the centerline and the difference in αi around y = ±10 feet for the α = 0

case. Also the AVL lift curve slope is slightly less than lifting line theory’s 2π.

In either case this still provides a nice demonstration of the accuracy between different

degenerate types, and verifies that all necessary information for lifting line theory analysis

is readily obtained from degenerate stick.

4.1.3 Equivalent Plate: ELAPS

Using the same simplified Cessna wing geometry (right wing only), a test case was performed

in ELAPS. Once again a simple Matlab script, also provided in the appendix, was written

to translate degenerate geometry into a suitable input file. ELAPS requires node locations

defining a plate in global coordinates, with a depth (thickness) and distance to camber line

specified at each node. It also requires Young’s modulus (E) in both the spanwise and

chordwise directions, Poisson’s ratio (ν), shear modulus (G), and material density (ρ).

All geometric information was available via degenerate plate. The material properties,

which are design variables that should be input by the analyst, were taken from the first

calibration region in [22]. These values correspond to a Vascomax T200© (steel) wind

tunnel model wing and so are deemed reasonable, albeit somewhat arbitrary, choices. A

point load (P ) of 1550 pounds was applied at the wingtip mid-chord.

Figure 4.7 shows the original VSP geometry and the degenerate plate output along with

the ELAPS nodes at which displacements were reported. ELAPS defines the node locations

at which displacements are reported based on user-supplied options. For this test case,

5 grid locations were chosen for each plate in the spanwise and chordwise directions. The

locations are interpolated using a polynomial fit of user-defined order between supplied plate

nodes.

There were 5 defined cross-sections from VSP, corresponding to 4 plate regions in ELAPS.

The same material properties were used for each plate region and are summarized in table

4.2. Note that both the grid discretization and material properties can vary among plate

regions, but were chosen to be identical for simplicity.

69

Page 79: ENABLING RAPID CONCEPTUAL DESIGN USING GEOMETRY- …

VSP Internal Definition

VSP Degnerate Plate

ELAPS Nodes on Reference

Plane (z = 0)

Figure 4.7: Geometry plots of Cessna wing and plate representation from VSP and plate inELAPS.

Table 4.2: Material properties used for ELAPS test case.

Echord [ksi] Espan [ksi] ν [−] G [ksi] ρ[lbmin3

]3169 3169 0.32 1200 0.288

ELAPS computes component properties like volume and center gravity location and

reports them back to the user along with any deflections. Since these properties are also

computed in degenerate point, an interesting comparison can be made between those prop-

erties computed solely from degenerate plate, and those that were computed from the full

surface representation. Table 4.3 gives a comparison of select component properties as com-

puted by ELAPS and contained in degenerate point. Given the plate representation, ELAPS

comes up with almost identical values for volume and center of gravity location. Only the

center of gravity z-location deviates appreciably when compared to other properties.

Figure 4.8 shows the ELAPS-computed wing deflection, exaggerated to show detail,

with the undeflected wing shown in grey for reference. The maximum deflection was at the

wing tip, as expected, and was about 1.55 inches. The reader should be reminded that no

Table 4.3: Comparison of ELAPS-calculated component properties with degenerate point.

ELAPS DegenPoint % Difference

Volume 27.841 27.370 1.723

xcg 4.167 4.153 0.334

ycg 8.529 8.532 0.032

zcg 1.956 2.106 7.109

70

Page 80: ENABLING RAPID CONCEPTUAL DESIGN USING GEOMETRY- …

P

1.55"

Figure 4.8: Wing deflection computed by ELAPS for end-loaded wing

attempt was made to validate either ELAPS or the given solution. The conclusion can still

be drawn, however that degenerate geometry has sufficient information to interface with a

respected equivalent plate structural code. In this case degenerate plate supplied the entirety

of needed information, save material properties, which are of course design parameters and

not intrinsic to the geometry.

4.1.4 Equivalent Beam Theory

The final demonstration case was an equivalent beam analysis. In the absence of a de facto

equivalent beam theory standard, a simple, static cantilevered beam bending analysis a la

mechanics of materials was performed.

Figure 4.9 shows the original wing from VSP along with its stick representation. The

same modified Cessna wing was used, but for the sake of simplicity any dihedral was removed.

The leading edge node locations reported by degenerate stick were used to construct the

beam. Though sectional centers of gravity could have been used (and may have provided

a more accurate representation), leading edge nodes were chosen since without dihedral or

sweep, they define a truly one-dimensional line for this wing.

VSP Internal Definition Beam Compsed of Leading

Edge Nodes

Figure 4.9: Plot of wing geometry in VSP and the beam representation composed of leadingedge nodes.

71

Page 81: ENABLING RAPID CONCEPTUAL DESIGN USING GEOMETRY- …

In addition to the leading edge nodes, sectional area moments of inertia were also ob-

tained from degenerate stick. The node locations and moments of inertia were linearly

interpolated, and the resulting beam was subjected to a point load, P on the free end (wing

tip). Analysis followed Euler-Bernoulli beam theory, which if the beam lies along the y-axis

is given by

d2

dy2

(EI

d2w

dy2

)= 0 (4.1)

where w is the deflection, E is Young’s modulus, and I is the area moment of inertia (in

this case a function of y). The boundary conditions for this type of problem are

w|y=0 = 0dw

dy

∣∣∣∣y=0

= 0

d2w

dy2

∣∣∣∣y=L

= 0 −EId3w

dy3

∣∣∣∣y=L

= P

where L is the length of the beam. It can be shown that the deflection at any point y0 on

the beam is given by

δ(y0) =

∫ y0

0

Mm

EIdy (4.2)

The elastic modulus, E is supplied by the analyst along with the moment M via the end

load. The moment is given as either M = Py or M = P (L− y) depending on the direction

of integration (free end to fixed or vice versa) and the unit load m is just M/P . The only

remaining items are the physical dimensions of the beam and the area moment of inertia,

both of which may be obtained from degenerate stick.

For analysis, the same value of Young’s modulus given in table 4.2 was used, and the

same point load of 1550 lb. was applied at the tip. Figure 4.10 shows the deflected beam,

again exaggerated for detail, as well as its undeflected state in grey. The maximum de-

flection was at the free end (wing tip) and was about 2.62 inches. This represents roughly

a 41% difference from the ELAPS solution, but is on the same order. The difference is

almost certainly due to the simplicity of the 1D beam bending model compared to ELAPS’

sophistication. Note also that the geometry between the two cases was slightly different.

Regardless of differences between the two methods, degenerate geometry has been shown

to supply information sufficient to this type of analysis, and indeed with the preceding three

methods. Together, these four demonstration cases show that degenerate geometry is a

powerful tool for translating conceptual design geometry to analysis methods.

72

Page 82: ENABLING RAPID CONCEPTUAL DESIGN USING GEOMETRY- …

P

2.62"

Figure 4.10: Deflection on end-loaded wing treated as simple beam.

4.2 Conclusions

The preceding work set out with the goal of helping to bridge the gap between conceptual de-

sign and analysis, to define and implement a method of distilling arbitrary, three-dimensional

geometry into its essential characteristics. The low-level aim was simply enabling design

analysis without the arduous, manual tinkering that has heretofore been necessary. The

broader cause was to begin a process of breaking down the barriers to entry in conceptual

design and analysis, to partially mitigate the risk of attempting novel ideas by coupling

geometry modeling with inexpensive analysis techniques.

Four different levels of geometry distillation were defined, and four degenerate geometries

created from them. They span from three- to zero-dimensional representations of underlying

geometry. Two—degenerate plate and degenerate stick—were created with vortex lattice

and equivalent plate, and lifting line and equivalent beam theories in mind. The other

two—degenerate surface and degenerate point— were added to complete the dimensional

spectrum and ensure all needed information was captured.

The ability to create and write out all four degenerate geometry types was implemented

in VSP. Write out types include a comma separated value text file, and a Matlab script.

Using the Matlab script, four analysis cases, corresponding to the four target analysis types,

were run to ensure that degenerate geometry truly captured the underlying geometric char-

acteristics needed for inexpensive analysis. The results were largely positive. Different

methods even came up with similar (albeit not identical) results using different types of

degenerate geometry. This showed that not only are the degenerate geometry types suit-

able to interface with external analysis techniques, but their definitions and implementation

methods produce models that are true to the underlying geometry and consistent with one

another.

73

Page 83: ENABLING RAPID CONCEPTUAL DESIGN USING GEOMETRY- …

The one area identified for improvement was the ability to obtain aerodynamic char-

acteristics (sectional lift curves, for example) from the VSP geometry. This would remove

any manual work remaining from interfacing with lifting line theory. Even so, the methods

needed to obtain this information are currently within the purview of external analysis tools,

which are the targets of degenerate geometry. The work is therefore complete in its current

stage and to be considered a success, from the distillation and interface standpoint.

The true test of success is not readily available though, as it may only be measured by

how the use of degenerate geometry (and its inevitable successors) helps spur innovation

and the participation in conceptual design by a wider array of individuals and organizations,

especially design students.

It is the author’s sincere desire that time will show the work presented here to be a true

success, that others may build on it in a meaningful fashion, and that it will in some small

way help the field to progress into the future.

74

Page 84: ENABLING RAPID CONCEPTUAL DESIGN USING GEOMETRY- …

Bibliography

[1] L. M. Nicolai, G. Carichner, and American Institute of Aeronautics and Astronautics.,

Fundamentals of Aircraft and Airship Design. Volume I-Aircraft Design. Reston, Va:

AIAA, 2010.

[2] A. Hahn, “Vehicle Sketch Pad: A Parametric Geometry Modeler for Conceptual Air-

craft Design,” in Proceedings of the 48th AIAA Aerospace Sciences Meeting, no. Jan-

uary, (Orlando, FL), 2010.

[3] “OpenVSP.” http://www.openvsp.org/, 2012.

[4] J. Gloudemans, P. Davis, and P. Gelhausen, “A Rapid Geometry Modeler for Con-

ceptual Aircraft,” in Proceedings of the 34th Aerospace Sciences Meeting, no. January,

(Reno, NV), 1996.

[5] A. Ko, “The OpenVSP ModelCenter Plug-In,” Presented at the First OpenVSP Work-

shop, California Polytechnic State University, San Luis Obispo, CA, 2012.

[6] J. D. Anderson, Fundamentals of Aerodynamics. New York: McGraw-Hill, 2011.

[7] W. Phillips and D. Snyder, “Modern Adaptation of Prandtl’s Classic Lifting-Line The-

ory,” Journal of Aircraft, vol. 37, pp. 662–670, July 2000.

[8] M. Drela and H. Youngren, “AVL 3.30 User Primer,” Aug. 2010.

[9] U. Lee, “Equivalent Continuum Beam-Rod Models of Aircraft Wing Structures for

Aeroelastic Analysis,” in Archive Set 536, Meeting Paper Archive, American Institute

of Aeronautics and Astronautics, Jan. 1963.

[10] G. L. Giles, Equivalent Plate Analysis of Aircraft Wing Box Structures with General

Planform Geometry. Hampton, Va.: National Aeronautics and Space Administration,

Langley Research Center, 1986.

75

Page 85: ENABLING RAPID CONCEPTUAL DESIGN USING GEOMETRY- …

[11] G. L. Giles, “Further Generalization of an Equivalent Plate Representation for Aircraft

Structural Analysis,” Journal of Aircraft, no. February, 1989.

[12] G. L. Giles, “Equivalent Plate Modeling for Conceptual Design of Aircraft Wing Struc-

tures,” (Los Angeles, CA), 1995.

[13] G. L. Giles, “Design Oriented Structural Analysis,” NASA STI/Recon Technical Report,

1994.

[14] G. L. Giles, “Design-Oriented Analysis of Aircraft Fuselage Structures,” Journal of

Aircraft, vol. 36, no. 1, 1999.

[15] I. Jadic and V. Constantinescu, “Lifting Line Theory for Supersonic Flow Applica-

tions,” AIAA Journal, vol. 31, no. 6, pp. 987–994, 1993.

[16] J. Chapman and F. Shaw, “Equivalent Beam Modeling Using Numerical Reduction

Techniques,” Marshall Space Flight Center Structural Dynamics and Control Interac-

tion of Flexible Structures, pp. 567–594, 1987.

[17] N. Nguyen and I. Tuzcu, “Flight Dynamics of Flexible Aircraft with Aeroelastic and

Inertial Force Interactions,” in AIAA Atmospheric Flight Mechanics Conference, pp. 1–

23, 2009.

[18] Y. Fung, An Introduction to the Theory of Aeroelasticity. Phoenix Edition Series,

Dover, 2002.

[19] J. Kosmatka, “Flexure-Torsion Behavior of Prismatic Beams, Part I: Section Properties

via Power Series,” AIAA Journal, vol. 31, pp. 170–179, Jan. 1993.

[20] T. Megson, Aircraft Structures for Engineering Students. Oxford; Burlington, MA:

Butterworth-Heinemann, 2007.

[21] W. Mason, “Aerodynamics of 3D Lifting Surfaces through Vortex Lattice Methods,”

in Applied Computational Aerodynamics Text/Notes, ch. 6, Blacksburg, VA: Virginia

Polytechnic Institute and State University, 1998.

[22] D. Allison and P. Cavallo, Static Aeroelastic Predictions for a Transonic Transport

Model Using an Unstructured-grid Flow Slover Coupled with a Structural Plate Tech-

nique. No. March, 2003.

76

Page 86: ENABLING RAPID CONCEPTUAL DESIGN USING GEOMETRY- …

[23] C. Steger, “On the Calculation of Arbitrary Moments of Polygons,” . . .Munchen, Ger-

many, Tech. Rep. FGBV-96 . . . , no. October, 1996.

[24] A. Dobrovolskis, “Inertia of Any Polyhedron,” Icarus, vol. 124, pp. 698–704, Dec. 1996.

[25] B. Eckel, Thinking in C++. Upper Saddle River, N.J.: Prentice Hall, 2000.

[26] E. Freeman, E. Freeman, K. Sierra, and B. Bates, Head First Design Patterns. Se-

bastopol [etc.]: O’Reilly, 2004.

[27] I. H. Abbott and A. E. Von Doenhoff, Theory of Wing Sections : Including a Summary

of Airfoil Data. New York: Dover Publications, 1959.

[28] R. Denney, J. Gladin, J. Tai, and D. Mavris, “Propulsion Systems Modeling with

Vehicle Sketch Pad,” in 51st AIAA Aerospace Sciences Meeting including the New

Horizons Forum and Aerospace Exposition, Aerospace Sciences Meetings, American

Institute of Aeronautics and Astronautics, Jan. 2013.

[29] M. Drela and H. Youngren, “XFOIL 6.9 User Primer,” 2001.

[30] D. Flanagan, Java in a nutshell. Beijing; Sebastopol, CA: O’Reilly, 2005.

[31] S. Ziemer and G. Stenz, “The Case for Open Source Software in Aeronautics,” Aircraft

Engineering and Aerospace Technology, vol. 84, no. 3, pp. 133–139, 2012.

[32] Y.-H. Na and S. Shin, “Equivalent-Plate Analysis for a Composite Wing with a Control

Surface,” Journal of Aircraft, pp. 1–10, Feb. 2013.

[33] J. Belben, “Enabling Rapid Conceptual Design Using Geometry-Based Multi-Fidelity

Models in VSP,” in 51st AIAA Aerospace Sciences Meeting including the New Horizons

Forum and Aerospace Exposition, Aerospace Sciences Meetings, American Institute of

Aeronautics and Astronautics, Jan. 2013.

77

Page 87: ENABLING RAPID CONCEPTUAL DESIGN USING GEOMETRY- …

Appendix A

Matlab Scripts

78

Page 88: ENABLING RAPID CONCEPTUAL DESIGN USING GEOMETRY- …

A.1 Cessna Wing to AVL File Conversion

1 % Convert degenGeom struct with one wing into AVL input file %2

3 clear all; close all; clc;4

5 % Load info6 run cessnaWing7

8 % Create AVL file for writing9 fid = fopen('cessnaWing.avl','w+');

10

11 % Case name12 fprintf(fid,'Cessna Wing Test\n');13

14 % Description Comment15 fprintf(fid,'# This is a test of DegenGeom interfacing with AVL\n');16

17 % Mach, iYsym, iZsym, Zsym18 fprintf(fid,'0.0\n0 0 0\n');19

20 % Mean chord21 Cref = mean(degenGeom(1).stick.chord);22

23 % Wing semi−span24 Bref = norm( degenGeom(1).stick.XcgSolid(end,:) ...25 − degenGeom(2).stick.XcgSolid(end,:) ) / 2;26

27 % Wing reference area28 Sref = 2*Bref*Cref;29

30 % Global CG31 cg = ( degenGeom(1).point.xcgSolid + degenGeom(2).point.xcgSolid) / 2;32

33 % Reference quantities34 fprintf(fid,'%f %f %f\n%f %f %f\n',Sref,Cref,Bref,cg(1),cg(2),cg(3));35 fprintf(fid,'SURFACE\nWing\n300 1.0 20 −1.5\n');36 for i = [2,1]37 if i == 138 jVec = 1:numel(degenGeom(i).plate.sect);39 else40 jVec = fliplr(1:numel(degenGeom(i).plate.sect));41 end42 for j = jVec43 fprintf(fid,'SECTION\n');44 xle = degenGeom(i).stick.Xle(j,:);45 chord = degenGeom(i).stick.chord(j);46

47 fprintf(fid,'%f %f %f %f %d\n', xle(1), xle(2), xle(3), ...48 chord , 0 );49 afFile = [pwd '/cwAF' num2str(i) num2str(j) '.dat'];50 afid = fopen(afFile,'w');51 pnts = degenGeom(i).surf.sect(j).X(:,[1 3]);52 pnts(:,1) = pnts(:,1) − xle(1);53 pnts = pnts / chord;54 for k = 1:size(pnts,1)55 fprintf(afid,'%f %f\n',pnts(k,1),pnts(k,2));56 end57 fclose(afid);58 fprintf(fid,['AFILE\n' afFile '\n'] );59 end60 end61 fprintf(fid,'# This is the end of the file\n');62 fclose(fid);

79

Page 89: ENABLING RAPID CONCEPTUAL DESIGN USING GEOMETRY- …

A.2 Lifting Line Analysis on Cessna Wing

1 % Use degenStick from Cessna wing for lifting line code %2

3 %% Preliminaries4 clear all; close all; clc5

6 % Load info7 run cessnaWing8

9 % Wing span, assumed aligned with y−axis10 b = abs(degenGeom(1).stick.Xle(end,2) − degenGeom(2).stick.Xle(end,2));11

12 % Vector of chord lengths, assumed these align with x−axis13 c = [fliplr(degenGeom(2).stick.chord), degenGeom(1).stick.chord];14

15 % Reference area16 S = mean(c)*b;17

18 % Aspect ratio19 AR = bˆ2/S;20

21 % Angles of attack at each section22 delX = [flipud(degenGeom(2).stick.Xte(:,1) − degenGeom(2).stick.Xle(:,1)); ...23 degenGeom(1).stick.Xte(:,1) − degenGeom(1).stick.Xle(:,1)];24 delZ = [flipud(degenGeom(2).stick.Xte(:,3) − degenGeom(2).stick.Xle(:,3)); ...25 degenGeom(1).stick.Xte(:,3) − degenGeom(1).stick.Xle(:,3)];26

27 a = −atan2(delZ,delX);28

29 % Location along wing30 y = [flipud(degenGeom(2).stick.Xte(:,2)); degenGeom(1).stick.Xte(:,2)];31 t = real(acos(−2*y/b));32

33 % Zero lift angles of attack34 a0 = pi/180*−2*ones(size(y));35

36 %% Chop it up!37

38 % Number of discretized points39 N = 1000;40

41 % Interpolated y locations42 tt = linspace(0+eps,pi−eps,N);43

44 % Chord lengths45 cc = interp1(t,c,tt);46

47 % Angles of attack48 aa = interp1(t,a,tt);49

50 % Zero−lift angles of attack51 aa0 = interp1(t,a0,tt);52

53

54 %% Solution55

56 % Build right hand side57 rhs = ((aa − aa0).*sin(tt))';58

59 % Build coefficient matrix60 M = zeros(N);61 for i = 1:N62 for j = 1:N63 M(i,j) = (2*b)/(pi*cc(i))*sin(j*tt(i))*sin(tt(i)) + j*sin(j*tt(i));64 end

80

Page 90: ENABLING RAPID CONCEPTUAL DESIGN USING GEOMETRY- …

65 end66

67 % Solve for Fourier coefficients68 A = M\rhs;69

70 % Globl lift coefficient71 CL = A(1)*pi*AR;72

73 % Efficiency factor74 del = 0;75 for i = 2:N76 del = del + i*(A(i)/A(1))ˆ2;77 end78 e = 1/(1+del);79

80 % Induced drag coefficient81 CDi = CLˆ2/(pi*e*AR);82

83 % Sectional lift coeffcient and induced alpha84 Cl = zeros(N,1);85 ClcC = zeros(N,1);86 ai = zeros(N,1);87 for i = 1:N88 Q1 = 0;89 Q2 = 0;90 for j = 1:N91 Q1 = Q1 + A(j)*sin(j*tt(i));92 Q2 = Q2 + j*A(j)*sin(j*tt(i))/sin(tt(i));93 end94 Cl(i) = 4*b/cc(i)*Q1;95 ClcC(i) = Cl(i)*cc(i)/mean(cc);96 ai(i) = −Q2;97 end98

99 figure100 subplot(2,1,1)101 h(1) = plot(−b/2*cos(tt),Cl,'r−−');102 hold all;103 h(2) = plot(−b/2*cos(tt),ClcC,'g');104 ylabel('$c l$ [−]','Interpreter','Latex');105 title(['$C L = ' num2str(CL,'%0.4f') ',\;C {D,i} = ' num2str(CDi,'%0.4f')...106 '$'], 'Interpreter','Latex')107

108 subplot(2,1,2)109 h(3) = plot(−b/2*cos(tt),ai,'b:');110 xlabel('Y [ft]');111 ylabel('$\alpha i$ [rad]','Interpreter','Latex');112

113 subplot(2,1,1)114 lh = legend(h,'$c l$','$c lc/c {ref}$','$\alpha i$');115 set(lh,'Box','off','Interpreter','Latex')

81

Page 91: ENABLING RAPID CONCEPTUAL DESIGN USING GEOMETRY- …

A.3 Cessna Wing to ELAPS File Conversion

1 % Convert degenGeom struct with one wing into ELAPS input file %2

3 clear all; close all; clc;4

5 % Load info6 run cessnaWing7

8 % Create ELAPS file for writing9 fid = fopen('cessnaWing.elaps','w+');

10

11 fprintf(fid, '''TEXT'' 1\n''This is a test file for degenGeom.''\n');12 fprintf(fid, '''CONTRL'' 10\n 2 0 2 0\n');13 fprintf(fid, '''NDFUN'' 3\n 11 4 0 1 2 3 4 2 3 4 5\n');14 fprintf(fid, ' 22 4 0 1 2 3 4 1 2 3 4\n');15 fprintf(fid, ' 33 4 0 1 2 3 4 2 3 4 5\n');16 fprintf(fid, '''NDSYS'' 1\n 1234 11 22 33 0 0\n');17

18 % Init empty vars to hold plate points19 xP = []; yP = []; zP = [];20

21 for j = 1:numel(degenGeom(1).plate.sect)22 xP = [xP;degenGeom(1).plate.sect(j).X(:,1)];23 yP = [yP;degenGeom(1).plate.sect(j).X(:,2)];24 end25

26 % Bounds of reference surface27 xPmin = min(xP)−1; xPmax = max(xP)+1;28 yPmin = min(yP)−1; yPmax = max(yP)+1;29 fprintf(fid, [' ' num2str(xPmin) ' ' num2str(yPmin) ' 0.0\n']);30 fprintf(fid, [' ' num2str(xPmax) ' ' num2str(yPmax) ' 0.0\n']);31

32 % Calc number of sections on wing33 nSecs = numel(degenGeom(1).plate.sect) − 1;34 fprintf(fid, ['''NMATL'' ' num2str(nSecs) '\n']);35

36 Echord = num2str(3.196E+6*144); Espan = Echord;37 G = num2str(1.200E+6*144); nu = '0.32';38 rho = num2str(0.0144*12ˆ3);39

40 for j = 1:nSecs41 fprintf(fid,[ ' ' Echord ' ' Espan ' ' nu ' ' G ' ' rho...42 ' 0.0 0.0\n']);43 end44

45 fprintf(fid, ['''NSEGMT'' ' num2str(nSecs) '\n']);46

47 for j = 1:nSecs48 fprintf(fid, ['''PLATE'' ' num2str(j) '\n 1234\n']);49 fprintf(fid, [' ''PLANF'' ' num2str(j) '\n']);50

51 % Bounds of inboard section52 xPmin = min(degenGeom(1).plate.sect(j).X(:,1));53 yPmin = min(degenGeom(1).plate.sect(j).X(:,2));54 xPmax = max(degenGeom(1).plate.sect(j).X(:,1));55 fprintf(fid, [' ' num2str(xPmin, '%.6f') ' ' ...56 num2str(yPmin, '%.6f') ' ' num2str(xPmax, '%.6f') '\n']);57

58 % Bounds of outboard section59 xPmin = min(degenGeom(1).plate.sect(j+1).X(:,1));60 yPmin = min(degenGeom(1).plate.sect(j+1).X(:,2));61 xPmax = max(degenGeom(1).plate.sect(j+1).X(:,1));62 fprintf(fid, [' ' num2str(xPmin, '%.6f') ' ' ...63 num2str(yPmin, '%.6f') ' ' num2str(xPmax, '%.6f') '\n']);64

82

Page 92: ENABLING RAPID CONCEPTUAL DESIGN USING GEOMETRY- …

65 fprintf(fid, [' ''DEPTH'' ' num2str(j) '\n']);66 fprintf(fid, ' ''TABPTS'' ''XIETA''\n');67 fprintf(fid, ' 6 1\n');68

69 numPnts = size(degenGeom(1).plate.sect(j).X,1);70 thckString = [];71 cambString = [];72 pnts = flipud(degenGeom(1).plate.sect(j).X(:,1));73 chrd = sqrt((pnts(end) − pnts(1))ˆ2);74 pnts = ( pnts − pnts(1,:) ) / chrd;75 thck = flipud(degenGeom(1).plate.sect(j).t');76 camb = flipud(degenGeom(1).plate.sect(j).zCamber' ...77 + degenGeom(1).plate.sect(j).X(:,3) );78 fprintf(fid, [' ' num2str(2*numPnts) ' ''XIETA''\n']);79 for k = 1:numPnts80 if thck(k) == 081 thck(k) = 0.0001;82 end83 if pnts(k,1) == 084 pnts(k,1) = 0.0;85 end86 thckString = [thckString ' ' num2str(pnts(k,1), '%.6f') ...87 ' 0.000000 ' num2str(thck(k), '%.6f') '\n'];88 cambString = [cambString ' ' num2str(pnts(k,1), '%.6f') ...89 ' 0.000000 ' num2str(camb(k), '%.6f') '\n'];90 end91 pnts = flipud(degenGeom(1).plate.sect(j+1).X(:,1));92 chrd = sqrt((pnts(end) − pnts(1))ˆ2);93 pnts = ( pnts − pnts(1,:) ) / chrd;94 thck = flipud(degenGeom(1).plate.sect(j+1).t');95 camb = flipud(degenGeom(1).plate.sect(j+1).zCamber' ...96 + degenGeom(1).plate.sect(j+1).X(:,3) );97 for k = 1:numPnts98 if thck(k) == 099 thck(k) = 0.0001;

100 end101 if pnts(k,1) == 0102 pnts(k,1) = 0.0;103 end104 thckString = [thckString ' ' num2str(pnts(k,1), '%.6f') ...105 ' 1.000000 ' num2str(thck(k), '%.6f') '\n'];106 cambString = [cambString ' ' num2str(pnts(k,1), '%.6f') ...107 ' 1.000000 ' num2str(camb(k), '%.6f') '\n'];108 end109 fprintf(fid, thckString);110 fprintf(fid, [' ''CAMBR'' ' num2str(j) '\n']);111 fprintf(fid, ' ''TABPTS'' ''XIETA''\n');112 fprintf(fid, ' 6 1\n');113 fprintf(fid, [' ' num2str(2*numPnts) ' ''XIETA''\n']);114 fprintf(fid, cambString);115

116 fprintf(fid, [' ''SOLID'' ' num2str(j) '\n']);117 fprintf(fid, [' ' num2str(j) ' 0.0\n']);118 end119 fprintf(fid, '''NFORC'' 1\n 1 1234 1.0\n');120 fprintf(fid, ' 5 1\n 1\n');121

122 xPmax = mean(degenGeom(1).plate.sect(end).X(:,1));123 yPmax = max(degenGeom(1).plate.sect(end).X(:,2));124

125 fprintf(fid, [' 3 ' num2str(xPmax) ' ' num2str(yPmax) ' 0.0 1550\n']);126 fprintf(fid, '''STAT'' 1\n 1\n');127 fprintf(fid, '''OSOLTNV'' 21\n 1 1 7\n');128 fprintf(fid, ['''PDISP'' 1\n 1 1\n 1 ' num2str(nSecs) '\n']);129 sSpan = abs(degenGeom(1).plate.sect(end).X(1,2) ...130 − degenGeom(1).plate.sect(1).X(1,2) );131 fprintf(fid, [' 6 6\n 2 ' num2str(sSpan) '\n''ENDDATA'' 1\n']);132 fclose(fid);

83

Page 93: ENABLING RAPID CONCEPTUAL DESIGN USING GEOMETRY- …

A.4 Beam Bending Analysis on Cessna Wing

1 % Use degenStick from Cessna wing for beam bending %2

3 clear all; close all; clc4 % Load info5 run cessnaWing6

7 % Number of dicretized points8 N = 1000;9

10 % End loading11 P = 1550;12

13 % Young's modulus14 E = 3.169e6*144;15

16 % Dimension along a 1D beam.17 y = degenGeom(1).stick.Xle(:,2);18

19 % Make root start from zero20 y = y − y(1);21

22 % Add y points for interpolation23 yy = linspace(y(1),y(end),N);24

25 % Length of beam26 L = y(end);27

28 % Inertia in lift (z) direction29 I = degenGeom(1).stick.Isolid(:,1);30

31 % Linearly interpolate inertia32 II = flipud(interp1(y,I,yy));33

34 del = cumtrapz(yy,P*yy.ˆ2./(E*II));35

36 figure37 scatter3(zeros(N,1),yy,del,5,del,'filled');38 caxis([min(min(del)) max(max(del))]);39 axis equal;40 ylim([−1 16]);41 zlim([−1 4]);42 view(−90,0);43 axis off;44

45 figure46 plot3(zeros(length(y),1),y,zeros(length(y),1),'LineWidth',5);47 axis equal;48 ylim([−1 16]);49 zlim([−1 4]);50 view(−90,0);51 axis off;

84

Page 94: ENABLING RAPID CONCEPTUAL DESIGN USING GEOMETRY- …

Appendix B

Target Analysis Input Files

85

Page 95: ENABLING RAPID CONCEPTUAL DESIGN USING GEOMETRY- …

B.1 AVL Input File

Cessna Wing Test

# This is a test of DegenGeom interfacing with AVL

0.0

0 0 0

163.741307 4.788814 17.096226

4.152763 0.000000 2.105484

SURFACE

Wing

300 1.0 20 -1.5

SECTION

2.390664 -17.096265 2.354235 3.700000 0

AFILE

/Users/joel/Dropbox/vsp/vspTest/cwAF25.dat

SECTION

2.195332 -12.598788 2.257002 4.477840 0

AFILE

/Users/joel/Dropbox/vsp/vspTest/cwAF24.dat

SECTION

2.000000 -8.101310 2.159768 5.256011 0

AFILE

/Users/joel/Dropbox/vsp/vspTest/cwAF23.dat

SECTION

2.000000 -5.050655 2.079884 5.254210 0

AFILE

/Users/joel/Dropbox/vsp/vspTest/cwAF22.dat

SECTION

2.000000 -2.000000 2.000000 5.256011 0

AFILE

/Users/joel/Dropbox/vsp/vspTest/cwAF21.dat

SECTION

2.000000 2.000000 2.000000 5.256011 0

86

Page 96: ENABLING RAPID CONCEPTUAL DESIGN USING GEOMETRY- …

AFILE

/Users/joel/Dropbox/vsp/vspTest/cwAF11.dat

SECTION

2.000000 5.050655 2.079884 5.254210 0

AFILE

/Users/joel/Dropbox/vsp/vspTest/cwAF12.dat

SECTION

2.000000 8.101310 2.159768 5.256011 0

AFILE

/Users/joel/Dropbox/vsp/vspTest/cwAF13.dat

SECTION

2.195332 12.598788 2.257002 4.477840 0

AFILE

/Users/joel/Dropbox/vsp/vspTest/cwAF14.dat

SECTION

2.390664 17.096265 2.354235 3.700000 0

AFILE

/Users/joel/Dropbox/vsp/vspTest/cwAF15.dat

# This is the end of the file

87

Page 97: ENABLING RAPID CONCEPTUAL DESIGN USING GEOMETRY- …

B.2 Airfoil Files for AVL

cwAF11.dat

0.994522 0.276024

0.853407 0.321035

0.718201 0.356694

0.590007 0.385071

0.469738 0.406472

0.358350 0.420946

0.257050 0.428451

0.167361 0.428983

0.091391 0.422543

0.032576 0.408707

0.000000 0.380517

0.030835 0.350589

0.087877 0.332753

0.161769 0.319553

0.249304 0.309774

0.348706 0.302556

0.458847 0.297003

0.578959 0.292168

0.708447 0.287178

0.846956 0.281418

0.994522 0.276024

88

Page 98: ENABLING RAPID CONCEPTUAL DESIGN USING GEOMETRY- …

cwAF12.dat

0.996917 0.317419

0.854672 0.358722

0.718579 0.390831

0.589685 0.415843

0.468897 0.434090

0.357168 0.445643

0.255707 0.450496

0.166034 0.448680

0.090259 0.440255

0.031827 0.424884

0.000000 0.395851

0.031608 0.366740

0.089097 0.350403

0.163310 0.339142

0.251070 0.331656

0.350628 0.327042

0.460876 0.324373

0.581074 0.322683

0.710649 0.321083

0.849260 0.318949

0.996917 0.317419

89

Page 99: ENABLING RAPID CONCEPTUAL DESIGN USING GEOMETRY- …

cwAF13.dat

0.998630 0.358596

0.855352 0.396163

0.718464 0.424699

0.588960 0.446330

0.467735 0.461410

0.355742 0.470036

0.254188 0.472231

0.164594 0.468070

0.089066 0.457664

0.031055 0.440770

0.000000 0.410914

0.032360 0.382641

0.090257 0.367813

0.164739 0.358498

0.252665 0.353311

0.352309 0.351304

0.462590 0.351521

0.582791 0.352976

0.712363 0.354768

0.850983 0.356262

0.998630 0.358596

90

Page 100: ENABLING RAPID CONCEPTUAL DESIGN USING GEOMETRY- …

cwAF14.dat

0.998981 0.458919

0.855309 0.494076

0.718178 0.520591

0.588533 0.540481

0.467248 0.554118

0.355260 0.561633

0.253758 0.563091

0.164248 0.558607

0.088821 0.548337

0.030919 0.532117

0.000000 0.504038

0.032483 0.477999

0.090470 0.464681

0.165042 0.456582

0.253055 0.452352

0.352777 0.451058

0.463117 0.451767

0.583350 0.453520

0.712917 0.455439

0.851482 0.456897

0.998981 0.458919

91

Page 101: ENABLING RAPID CONCEPTUAL DESIGN USING GEOMETRY- …

cwAF15.dat

0.999391 0.601392

0.855173 0.633122

0.717707 0.656762

0.587874 0.674178

0.466514 0.685765

0.354543 0.691701

0.253125 0.692111

0.163742 0.687169

0.088466 0.677092

0.030723 0.661831

0.000000 0.636280

0.032655 0.613416

0.090765 0.602245

0.165458 0.595875

0.253586 0.593005

0.353410 0.592723

0.463825 0.594130

0.584092 0.596306

0.713641 0.598406

0.852114 0.599814

0.999391 0.601392

92

Page 102: ENABLING RAPID CONCEPTUAL DESIGN USING GEOMETRY- …

cwAF21.dat

0.994522 0.276024

0.853407 0.321035

0.718201 0.356694

0.590007 0.385071

0.469738 0.406472

0.358350 0.420946

0.257050 0.428451

0.167361 0.428983

0.091391 0.422543

0.032576 0.408707

0.000000 0.380517

0.030835 0.350589

0.087877 0.332753

0.161769 0.319553

0.249304 0.309774

0.348706 0.302556

0.458847 0.297003

0.578959 0.292168

0.708447 0.287178

0.846956 0.281418

0.994522 0.276024

93

Page 103: ENABLING RAPID CONCEPTUAL DESIGN USING GEOMETRY- …

cwAF22.dat

0.996917 0.317419

0.854672 0.358722

0.718579 0.390831

0.589685 0.415843

0.468897 0.434090

0.357168 0.445643

0.255707 0.450496

0.166034 0.448680

0.090259 0.440255

0.031827 0.424884

0.000000 0.395851

0.031608 0.366740

0.089097 0.350403

0.163310 0.339142

0.251070 0.331656

0.350628 0.327042

0.460876 0.324373

0.581074 0.322683

0.710649 0.321083

0.849260 0.318949

0.996917 0.317419

94

Page 104: ENABLING RAPID CONCEPTUAL DESIGN USING GEOMETRY- …

cwAF23.dat

0.998630 0.358596

0.855352 0.396163

0.718464 0.424699

0.588960 0.446330

0.467735 0.461410

0.355742 0.470036

0.254188 0.472231

0.164594 0.468070

0.089066 0.457664

0.031055 0.440770

0.000000 0.410914

0.032360 0.382641

0.090257 0.367813

0.164739 0.358498

0.252665 0.353311

0.352309 0.351304

0.462590 0.351521

0.582791 0.352976

0.712363 0.354768

0.850983 0.356262

0.998630 0.358596

95

Page 105: ENABLING RAPID CONCEPTUAL DESIGN USING GEOMETRY- …

cwAF24.dat

0.998981 0.458919

0.855309 0.494076

0.718178 0.520591

0.588533 0.540481

0.467248 0.554118

0.355260 0.561633

0.253758 0.563091

0.164248 0.558607

0.088821 0.548337

0.030919 0.532117

0.000000 0.504038

0.032483 0.477999

0.090470 0.464681

0.165042 0.456582

0.253055 0.452352

0.352777 0.451058

0.463117 0.451767

0.583350 0.453520

0.712917 0.455439

0.851482 0.456897

0.998981 0.458919

96

Page 106: ENABLING RAPID CONCEPTUAL DESIGN USING GEOMETRY- …

cwAF25.dat

0.999391 0.601392

0.855173 0.633122

0.717707 0.656762

0.587874 0.674178

0.466514 0.685765

0.354543 0.691701

0.253125 0.692111

0.163742 0.687169

0.088466 0.677092

0.030723 0.661831

0.000000 0.636280

0.032655 0.613416

0.090765 0.602245

0.165458 0.595875

0.253586 0.593005

0.353410 0.592723

0.463825 0.594130

0.584092 0.596306

0.713641 0.598406

0.852114 0.599814

0.999391 0.601392

97

Page 107: ENABLING RAPID CONCEPTUAL DESIGN USING GEOMETRY- …

B.3 ELAPS Input File

'TEXT' 1

'This is a test file for degenGeom.'

'CONTRL ' 10

2 0 2 0

'NDFUN ' 3

11 4 0 1 2 3 4 2 3 4 5

22 4 0 1 2 3 4 1 2 3 4

33 4 0 1 2 3 4 2 3 4 5

'NDSYS ' 1

1234 11 22 33 0 0

1 1 0.0

8.2488 18.0996 0.0

'NMATL ' 4

460224000 460224000 0.32 172800000 24.8832 0.0 0.0

460224000 460224000 0.32 172800000 24.8832 0.0 0.0

460224000 460224000 0.32 172800000 24.8832 0.0 0.0

460224000 460224000 0.32 172800000 24.8832 0.0 0.0

'NSEGMT ' 4

'PLATE ' 1

1234

'PLANF ' 1

2.000000 2.000000 7.227218

2.000000 5.050655 7.238013

'DEPTH ' 1

'TABPTS ' 'XIETA '

6 1

22 'XIETA '

0.000000 0.000000 0.000100

0.031623 0.000000 0.305710

0.089443 0.000000 0.472462

0.164317 0.000000 0.576111

98

Page 108: ENABLING RAPID CONCEPTUAL DESIGN USING GEOMETRY- …

0.252982 0.000000 0.625309

0.353553 0.000000 0.624531

0.464758 0.000000 0.578407

0.585662 0.000000 0.491903

0.715542 0.000000 0.369080

0.853815 0.000000 0.211044

1.000000 0.000000 0.000100

0.000000 1.000000 0.000100

0.031623 1.000000 0.305605

0.089443 1.000000 0.472300

0.164317 1.000000 0.575914

0.252982 1.000000 0.625095

0.353553 1.000000 0.624317

0.464758 1.000000 0.578209

0.585662 1.000000 0.491734

0.715542 1.000000 0.368954

0.853815 1.000000 0.210971

1.000000 1.000000 0.000100

'CAMBR ' 1

'TABPTS ' 'XIETA '

6 1

22 'XIETA '

0.000000 0.000000 2.000000

0.031623 0.000000 1.969756

0.089443 0.000000 1.916632

0.164317 0.000000 1.852016

0.252982 0.000000 1.781595

0.353553 0.000000 1.709721

0.464758 0.000000 1.640150

0.585662 0.000000 1.576311

0.715542 0.000000 1.521429

0.853815 0.000000 1.478590

99

Page 109: ENABLING RAPID CONCEPTUAL DESIGN USING GEOMETRY- …

1.000000 0.000000 1.450785

0.000000 1.000000 2.079884

0.031623 1.000000 2.053980

0.089443 1.000000 2.008792

0.164317 1.000000 1.954450

0.252982 1.000000 1.896194

0.353553 1.000000 1.838116

0.464758 1.000000 1.783796

0.585662 1.000000 1.736533

0.715542 1.000000 1.699454

0.853815 1.000000 1.675564

1.000000 1.000000 1.667785

'SOLID ' 1

1 0.0

'PLATE ' 2

1234

'PLANF ' 2

2.000000 5.050655 7.238013

2.000000 8.101310 7.248808

'DEPTH ' 2

'TABPTS ' 'XIETA '

6 1

22 'XIETA '

0.000000 0.000000 0.000100

0.031623 0.000000 0.305605

0.089443 0.000000 0.472300

0.164317 0.000000 0.575914

0.252982 0.000000 0.625095

0.353553 0.000000 0.624317

0.464758 0.000000 0.578209

0.585662 0.000000 0.491734

0.715542 0.000000 0.368954

100

Page 110: ENABLING RAPID CONCEPTUAL DESIGN USING GEOMETRY- …

0.853815 0.000000 0.210971

1.000000 0.000000 0.000100

0.000000 1.000000 0.000100

0.031623 1.000000 0.305710

0.089443 1.000000 0.472462

0.164317 1.000000 0.576111

0.252982 1.000000 0.625309

0.353553 1.000000 0.624531

0.464758 1.000000 0.578407

0.585662 1.000000 0.491903

0.715542 1.000000 0.369080

0.853815 1.000000 0.211044

1.000000 1.000000 0.000100

'CAMBR ' 2

'TABPTS ' 'XIETA '

6 1

22 'XIETA '

0.000000 0.000000 2.079884

0.031623 0.000000 2.053980

0.089443 0.000000 2.008792

0.164317 0.000000 1.954450

0.252982 0.000000 1.896194

0.353553 0.000000 1.838116

0.464758 0.000000 1.783796

0.585662 0.000000 1.736533

0.715542 0.000000 1.699454

0.853815 0.000000 1.675564

1.000000 0.000000 1.667785

0.000000 1.000000 2.159768

0.031623 1.000000 2.138197

0.089443 1.000000 2.100928

0.164317 1.000000 2.056845

101

Page 111: ENABLING RAPID CONCEPTUAL DESIGN USING GEOMETRY- …

0.252982 1.000000 2.010739

0.353553 1.000000 1.966445

0.464758 1.000000 1.927369

0.585662 1.000000 1.896686

0.715542 1.000000 1.877421

0.853815 1.000000 1.872501

1.000000 1.000000 1.884784

'SOLID ' 2

2 0.0

'PLATE ' 3

1234

'PLANF ' 3

2.000000 8.101310 7.248808

2.195332 12.598788 6.668609

'DEPTH ' 3

'TABPTS ' 'XIETA '

6 1

22 'XIETA '

0.000000 0.000000 0.000100

0.031623 0.000000 0.305710

0.089443 0.000000 0.472462

0.164317 0.000000 0.576111

0.252982 0.000000 0.625309

0.353553 0.000000 0.624531

0.464758 0.000000 0.578407

0.585662 0.000000 0.491903

0.715542 0.000000 0.369080

0.853815 0.000000 0.211044

1.000000 0.000000 0.000100

0.000000 1.000000 0.000100

0.031623 1.000000 0.242516

0.089443 1.000000 0.374798

102

Page 112: ENABLING RAPID CONCEPTUAL DESIGN USING GEOMETRY- …

0.164317 1.000000 0.457021

0.252982 1.000000 0.496050

0.353553 1.000000 0.495432

0.464758 1.000000 0.458843

0.585662 1.000000 0.390220

0.715542 1.000000 0.292786

0.853815 1.000000 0.167418

1.000000 1.000000 0.000100

'CAMBR ' 3

'TABPTS ' 'XIETA '

6 1

22 'XIETA '

0.000000 0.000000 2.159768

0.031623 0.000000 2.138197

0.089443 0.000000 2.100928

0.164317 0.000000 2.056845

0.252982 0.000000 2.010739

0.353553 0.000000 1.966445

0.464758 0.000000 1.927369

0.585662 0.000000 1.896686

0.715542 0.000000 1.877421

0.853815 0.000000 1.872501

1.000000 0.000000 1.884784

0.000000 1.000000 2.257002

0.031623 1.000000 2.239643

0.089443 1.000000 2.209756

0.164317 1.000000 2.174613

0.252982 1.000000 2.138192

0.353553 1.000000 2.103698

0.464758 1.000000 2.073993

0.585662 1.000000 2.051750

0.715542 1.000000 2.039524

103

Page 113: ENABLING RAPID CONCEPTUAL DESIGN USING GEOMETRY- …

0.853815 1.000000 2.039790

1.000000 1.000000 2.054968

'SOLID ' 3

3 0.0

'PLATE ' 4

1234

'PLANF ' 4

2.195332 12.598788 6.668609

2.390664 17.096265 6.088410

'DEPTH ' 4

'TABPTS ' 'XIETA '

6 1

22 'XIETA '

0.000000 0.000000 0.000100

0.031623 0.000000 0.242516

0.089443 0.000000 0.374798

0.164317 0.000000 0.457021

0.252982 0.000000 0.496050

0.353553 0.000000 0.495432

0.464758 0.000000 0.458843

0.585662 0.000000 0.390220

0.715542 0.000000 0.292786

0.853815 0.000000 0.167418

1.000000 0.000000 0.000100

0.000000 1.000000 0.000100

0.031623 1.000000 0.179339

0.089443 1.000000 0.277160

0.164317 1.000000 0.337964

0.252982 1.000000 0.366825

0.353553 1.000000 0.366369

0.464758 1.000000 0.339311

0.585662 1.000000 0.288565

104

Page 114: ENABLING RAPID CONCEPTUAL DESIGN USING GEOMETRY- …

0.715542 1.000000 0.216513

0.853815 1.000000 0.123805

1.000000 1.000000 0.000100

'CAMBR ' 4

'TABPTS ' 'XIETA '

6 1

22 'XIETA '

0.000000 0.000000 2.257002

0.031623 0.000000 2.239643

0.089443 0.000000 2.209756

0.164317 0.000000 2.174613

0.252982 0.000000 2.138192

0.353553 0.000000 2.103698

0.464758 0.000000 2.073993

0.585662 0.000000 2.051750

0.715542 0.000000 2.039524

0.853815 0.000000 2.039790

1.000000 0.000000 2.054968

0.000000 1.000000 2.354235

0.031623 1.000000 2.341089

0.089443 1.000000 2.318583

0.164317 1.000000 2.292378

0.252982 1.000000 2.265640

0.353553 1.000000 2.240945

0.464758 1.000000 2.220610

0.585662 1.000000 2.206808

0.715542 1.000000 2.201622

0.853815 1.000000 2.207076

1.000000 1.000000 2.225151

'SOLID ' 4

4 0.0

'NFORC ' 1

105

Page 115: ENABLING RAPID CONCEPTUAL DESIGN USING GEOMETRY- …

1 1234 1.0

5 1

1

3 3.9073 17.0996 0.0 1550

'STAT' 1

1

'OSOLTNV ' 21

1 1 7

'PDISP ' 1

1 1

1 4

6 6

2 15.0853

'ENDDATA ' 1

106