Sie sind auf Seite 1von 94

rAviExp in Action

Hao Li
02/Oct/2018

How to use this book


If you are reading the PDF or EPUB version of this book, use the ' bookmark ' for a
list of contents with links.
Go to Contents for a list of sections and subsections
Go to Preface to see what task is going to be solved and why the tools are
constructed in certain ways to be useful
Go to Quickstart for a fast and simple demonstration of R and rAviExp.
Go to Underlying Physics ideas … for the required understanding of different aspects
of the problem.
Go to Case Studies for worked examples.
Go to Access Help for information about the releases and support of the program,
including documentations, repositories, tutorials.
Go to Appendixes for Logbook (development history) list of other software tools.
Go to Full Bibliography to see the all references.
If any parts are marked [needed update] It is either missing some important
components or not yet been written at all. The other parts may be updated and
reedited as well in the future.
Have fun using the outcome of the project.
Hao Li
02/Oct/2018 (1st Ed.)

Contents
• Preface
• QuickStart
• Case Studies
• Access Help
• References and External Support
• Appendix 1 Project Logbook
• Appendix 2 List of Free Softwares for Aircraft Design
• Appendix 3 List of Wolfram Widgets for Aviation
• Full Bibliography

Preface
Purpose of the Package
Background: definition of 'design'
Drones and model airplanes are more and more popular. The applications give
higher standard of requirements to the designers.
Aircraft is usually considered as a complexed system and modelling a system and
solve for a design is more difficult than simply coming up with random concepts.
Thus ' designing ' a plane is far more than ' drawing ' a plane. The process of
designing can be seen as the realization of a preceded value. The quality of the ideas
and the execution affects the outcome of a design.
To model and solve for a certain system, there are 2 most essential aspects: purpose
and method. Although sometime at the beginning of the work neither is clear, the
designer himself or herself must, at some stage, make clear of these 2 things.
1. The purpose is the requirements for the product. The potential users may
require different aspects to different extents. The design MUST meet the
industrial standards and CAN be optimized for certain performance(s). Such
optimization may have its side effects and must be considered in terms of
fitness for the circumstances. Sometimes parameters of the performance of
existing products are taken as a part of the initial parameters of the
requirements so that the new design, if can be solved, is guaranteed to be
superior to the existing ones at the selected aspects. For example to design a
fighter plane it is better to know the performances of its potential opponents. In
other occasions, the requirements might be taken directly from the details of
the mission that the plane is designed to carry.

2. The main part of the method is the workflow, the designers may pin some
inspirations, conceptualize them and mock up the concepts and make
prototypes. Such workflow is feasible for a number of products but the missing
part is how to solve for and analyse the concepts. Only with the known
parameters and properties can we safely make a product.

For small product design this is not a problem because the target is clear, with small
amount of parameters involved and the relationship between the parameters are
clear. Also you can make a lot of prototypes and test them to get enough empirical
knowledge for a better design. Whereas for a complexed system, like an aeroplane,
the same rule does not necessarily apply here, thus the workflow would be broken if
one tries to apply the same method. The methods can be either quantitative or
qualitative, the results of each step of a model can be used either as a prediction for
other parameters or as a suggestive value that help make decisions. Furthermore,
there are some recursive cases, where the system will be consistent after several
rounds of looped solving and analysis.
But looking around, we do see planes there. In a number of cases the solution exists
and sometimes even a good one. Designers and engineers work in team to crunch
the cross-subject puzzle. At the beginning of the 20C planes were na??ve and the
task performed were relatively simple, thus no much professionalism (at least not to
the extent we see today) were needed. In the mid 20C a good design bureau need
well-oriented tasks and well-coordinated groups of top scientists and engineers. The
story of 2 designers: Kelly Johnson, who insisted some engineers to work in the
same laboratory with the designers, and Andrei Tupolev, who had a good feeling on
the engines and served as a great leader, could be used examples. But still modelling
a system was very difficult and took large amount of power for calculation. The
Dassault Company was the first to use Computer Aided Designing in aircraft design
and the same company is still selling the popular CAD software (e.g. Solidworks,
CATIA). The Mi-50 experimental bomber was said to be the first airplane to be
designed with massive use of computerized math modelling. Over the years the
design teams are still very crucial, but essentially 2 things changed: The
development of computer and the more sophisticated mathematic models.
With the invention of APL there is finally a user-friendly way of typing formulas. But
still, typing the equations is far from solving a model, which is also far from
designing an aircraft. Then different types of software appear, which are for certain
mathematic model by performing limited algorithm with limited options. For
example it is possible to analyse some aerodynamic properties for certain geometric
form at certain state, but it is not possible to know the states before analysing the
kinetic balances. It is possible to calculate the region of thrust-to-weight ratio with
respect to wing-loading with kinetic requirements, but it is not possible to get the
lift and drag coefficients without the access to some existing databases or empirical
models.
Merits and demerits of CAD/CAE/CAM

Merits and demerits of Flight Simulators


Merits and demerits of Calculation Widgets
'To summarize the existing tools can be classified:
1. CAD,CAM,CAE software for design, manufacture, and engineering: These are
usually commercial software that help the customer to make product when
they already know the specifications (e.g. dimensions) of the product, that is,
before the input, the user already know how long the plane is, what the aspect
ratio is, which power plant to select. These software may help analyse the
strength and aerodynamic performance when the draft of the plane is drawn
and could hopefully tell the user how the design is, which might be useful for
evaluations, but the user do not expect the software to suggest what the initial
plan is or how it should be modified. Also since most of these software (not
including FreeCAD) are commercial and non-programmable; thus not open
source. So it is difficult to modify the functions. Worse, sometimes they cannot
even be called from outside the software and import/exporting files is crucial.
The software that I had used are: Autodesk Fusion(robust and intuitive,
unfortunately not suitable for initial design), Autodesk Flow (a very user-
friendly virtual wind tunnel program), Google Sketchup (For 3d drawings) and
Free CAD(base on python).
2. Conceptual design codes and worksheets: If we search something like 'aircraft
design' on github some code might appear, however, they are limited to their
specific planes and the scientific computing code is not always elegant–they are
unlikely to be reused. The codes are indeed for conceptual designs and work for
some models but there are lots of equations that are repeatedly coded for a
new design even if the plane is similar, which is not a sustainable way to build a
platform for more complex or more general packages. However often they are
licensed under MIT, GPLV2 or other open source licences so that I can learn
from their structures and compare them. For package developments and
computing in scientific computing languages, the codes are usually backed up
with published papers and books which created great convenient for research.
3. Flight simulators: There are flight simulators built specially for model planes,
which I had been using for years to sharpen skills. Some simulators have large
user communities so the swap files are numerous (sim.de for Aerofly Deluxe 1.9
and Knife Edge swap pages for RealFlight 7). Some are completely open source,
Flight Gear being the most successful of which, has lots of volunteers all over
the world. Because it is open source it can be called from other software to test
flight control systems and aircraft handling and manoeuvrability. But again,
Flight simulators does few suggestions during the initial design process. It is
possible to modify the planes within some simulators but it does not tell the
users which parameter should be changed directly. It could only be done, if
without calculations, with lots of empirical knowledge which could be
imprecise and time-consuming.
4. Gadgets: There are some gadgets that handle some physical laws, empirical
formula, sizing criterias but with a plane, there is lots of parameters and
multiple models to be applied. If we keep using these as separate GUIs it is not
much different from a calculator. Even if the program is reusable the tedious
process of manually inputting data (and sometimes there are multiple entries
for each one value, making the problem multidimensional) is undoable. The use
of equations should be encouraged, but not in this way.' –From
AviationExploratory development history, by Hao Li

Previous Efforts towards Integrated Tools


The efforts to develop integrated tools had never stopped: 1. In ICAS 2012 a paper
from TU Delft suggested a way that different software performing different tasks
can be glued together. The option is to use python as the gluing language to let
different software pass the data with XML. The structure is very complicated and
some part of it must be used with a cloud server. Such solution may be very useful
for the analysis of high-fidelity models but not for initial design. It suggested the
empirical functions to be gradually replaced with more physical parameters.
2. It was said that in 2006 Boeing made a decision to integrate the software
considering that the people are working with at least 200 types of software
already.

3. In 2017 Wolfram Company introduced its tools for system modelling. Each
function can be called as a ' black box ' and can be employed as a ' block ' of
design.

4. NASA developed OpenVSP and the components of which had grown over the
years. And there is more. rAviExp is a part of my ' Aviation Exploratory '
project. And I intend to make this a functional, programmable modelling tool
for aviation exploratory design in R. R provides an open-source environment
for statistical and scientific computing with more than 7000 free packages on
CRAN and more on other platforms. Also this package is free and open-source
and follows the GPL-3.0 license.

It is also important to remember that the tools shall be used for different purposes.
It is better to allow usages of different programs even we have integrated tools. This
book is about how to use the integrated tool to link different stages of design
together.

With Objective Functional Programming: Crunching the 3


problems
Design: Realize an idea for a preceded value.
From an existing plane, solve and analyse its performance
From requirements, solve for the parameters of the plane
The slide shows an ideal form of working process, compared to the reality that we
usually face.
In reality there are mainly 3 problems that could break workflows.

1.The amount of variables involved


All the aspects you can think of about a plane can be a parameter. Therefore they
can be constants or variables. The more choices given the wider range of
possibilities we have and the more aspects to consider. But they must let the models
to be consistent.
Suggestions: Use the requirements to solve for a feasible range and then a coarse
solution to start with.
First simplify by putting constant terms and then begin explore more possibilities.
The amount of variables involved

2. Lack of data and relationships


For solving: Usually there is no method to directly get the solution of the system
from a rough question.
For analysis: Even the geometry of a plane is given, the calculation for the
aerodynamic and structural properties may take hours.
Suggestions: get a coarse solution (from constraint analysis/existing plans) run the
analysis and gradually replace the empirical models with more deterministic ones.

3. Lack of restrictions and targets


For optimizations we must know what properties are required (restrictions) and
also the importance of them. Trade-off analysis takes long to run and maybe tedious.
Suggestions: run sensitivity analysis, replace the previous ' constants' as 'variables'
and either calculate criticality of the requirement on the design itself, or the
influence on performance of some parameters.
To create an environment that is suitable for system modelling, it must meet these 3
requirements
The requirement for the package

1. Flexible
• The algorithms should be coded as functions within a package to extend
functionalities of a language. The advantage of functional programming is that
certain procedure can be remembered and called easily so that the user do not
have to repeat unecessary coding.
• The models can be customized at different levels, not only the numerical inputs
can be changed but also the assuption functions and some other aspects of the
model.
• The functions accept different levels of input, therefore objective. When taking
in certain type(class) of input it recognizes the type of model and apply the
corresponding procedure to it.
• The workflow can be scripted instead of being ' clicked '. In this way the
computer language shows the work along with the result. If the user want to
modify the workflow for some reasons (e.g. found a mistake, require more
functionalities, make a slight change to the design), the work process can be
easily repeated by computer instead of rounds of manually clicking and
dragging. Also, scripting can be explanatory and instuitive if the naming is
carefully chosen. In this case, the class of the data list is a noun(e.g. Alpha_lin,
Constraint) that states the type of the model whereas functions are named after
verbs (create, Optim, plot, etc.)
Within a model

2. Systematic
• The models to be included should have certain ways to be processed. And no
matter what the model is the process of creating, optimization, vaisualization
can be described and coded in certain ways.
• The workflow may be different and allow comminications between models.
• Each model can be processed in a similar method(steps) to that described in
the book Mathematic Modelling by M. Meerschaert.
• There should be a template of classed list to store certain group of parameters
to get the variables organized.

3. Intuitive
• It must be well-structured so that developing is easy.
• Have some default visualization functions to create default 2D and 3D plot, and
some predefined plot can be called by certain indexes.
• Have sensational (suggestive/ explainatory) values to compare and make
intuitional sense to people.
The tools we have are:
Tools to crunch the problems
• Mathematical modelling
• Physics ideas
• Functional Programming
The rAviExp Program uses the language structure shown below:
Nouns - lists: store paramterisedssumptions of models
- classes: classify the type of models
Verbs: - functions: do certain things to the model with customizable procedures
Procedures include: - create the analysis - visualize the analysis - pass parameters
and analyze the procedures
To actually use these tools:
Within one of any of the models,
Between the models, the ‘%takein%’ function makes communications. These
aspects are the linguistic of this package. To see how these practically works watch
the next chapter for a quickstart.

Quickstart
This chapter is a quick demonstration of the simple functionalities of R and the
package.
Quick Installation
'R is a free software environment for statistical computing and graphics.' There are a
number of platforms that provide R.
First install R from (https://www.r-project.org/), or install Rstudio with R from
(https://www.rstudio.com/products/rstudio/download/), or install Microsoft R for
visual studio from (https://visualstudio.microsoft.com/zh-hans/vs/features/rtvs/?
rr=https%3A%2F%2Fwww.google.com%2F).
Open it and install devtools and use devtools to download and install rAviExp with
these R commands.
install.packages('devtools')
library('devtools')
install_github('HaoLi111/rAviExpPrerelease')

Also you are encouraged to install


install_github('HaoLi111/MFVN')

And other packages for plotting


install.packages('rgl')
install.packages('scatterplot3d')
install.packages('doParallel')

Alternative way is to download a built-version to your lib-path. Alternatively if you


want to install R with the packages on an SD card or an USB drive, copy R into the
drive and copy these package and dependencies to
YourDrive:\Program Files\R\R-3.5.1\library\

to run it on other computers without installing R.

A Brief Introduction to R
This section is for people completely new to R as a programming language. If you
have already been using R, skip to the next section directly.
As a Touring-complete language, R can be used (although unlikely to be used) to
perform any programmable tasks.
Start with basic calculations
1+5

## [1] 6

#Assignments
A<-1
B=-2
A+B

## [1] -1

#Vectors and matrixes. (Put a bracket on the command to print as it


runs).
A=c(1,2,8,10.9)
B=c(1,15,23)
A+B#Note it will completes and recurse if the lengths are different

## Warning in A + B: 长的对象长度不是短的对象长度的整倍数

## [1] 2.0 17.0 31.0 11.9

max(A)

## [1] 10.9

min(B)

## [1] 1

#Indexing
B[-1]

## [1] 15 23

A[B[1]]

## [1] 1

B=c(B,0.232)#Appending
(M<-rbind(A,B))#row bind

## [,1] [,2] [,3] [,4]


## A 1 2 8 10.900
## B 1 15 23 0.232

N<-matrix(1:8,2,4)
M+N#Guess what is the answer

## [,1] [,2] [,3] [,4]


## A 2 5 13 17.900
## B 3 19 29 8.232

#List
(Passage<-list(title='rAviExp in Action',Author='Hao Li',question='Who
the hell is he?',rate=0))

## $title
## [1] "rAviExp in Action"
##
## $Author
## [1] "Hao Li"
##
## $question
## [1] "Who the hell is he?"
##
## $rate
## [1] 0

#Let us be kind
(Passage$rate=Passage$rate+1)

## [1] 1

#Functions
Square<-function(x) x^2
Square(1.5)

## [1] 2.25

Square(complex(real=1.1,imaginary=.8))

## [1] 0.57+1.76i

#S3 functions
isPassage<-function(x,...) UseMethod('isPassage')# Not a good example
isPassage.list=function(x) FALSE
isPassage.function=function(x) FALSE
isPassage.numeric=function(x) FALSE
isPassage.passage=function(x) TRUE
isPassage(Passage)

## [1] FALSE

class(Passage)='passage'
isPassage(1)

## [1] FALSE

isPassage(Square)

## [1] FALSE

isPassage(Passage)

## [1] TRUE

Plotting and pointing (Adding to the plot)


plot(1:10,seq(from=22,to=40,by=2),col='red',lty=2,xlab='independent
variable',ylab='dependent variable',main='title')
points(c(2.5,35.8),c(3.6,22),pty=2,col='purple')
#Contour
contour(volcano)
filled.contour(volcano)

Basic functionalities
This section demonstrates the very basic uses of functions of the package briefly.
Sourced from (https://aviexptemp.weebly.com/features/something-interesting-to-
try-with-the-1st-released-version).
#every time you want to use the package use library(), or click on the
square in the 'packages' list

library(rAviExp)#or require(rAviExp) if loaded within functions

#Good to go

#Now let's do our first model - Alpha (Angla of attack) analysis


#For simplicity let us use the default list first
Alpha_lin.default#it is a classified list

## [1] "Alpha_lin:Cla= 0.1 alpha0= -5 CdiF= 0.0397887313856378 Cd0=


0.02"

#You could define your ones by using myalpha=list(...) then


class(myalpha)='Alpha_Lin'
a<-create(Alpha_lin.default)#create an analysis from these assumptions
#And name it a
#Now let us see what's inside
a

## [1] "Generated from $Raw"


## [1] "Alpha_lin:Cla= 0.1 alpha0= -5 CdiF= 0.0397887313856378 Cd0=
0.02"
## [1] "Out : "
## alpha Cl Cd k
## 1 -5.0 0.00 0.02000000 0.0000000
## 2 -4.9 0.01 0.02000398 0.4999005
## 3 -4.8 0.02 0.02001592 0.9992049
## 4 -4.7 0.03 0.02003581 1.4973191
## 5 -4.6 0.04 0.02006366 1.9936540
## 6 -4.5 0.05 0.02009947 2.4876276
## [1] "......"
## alpha Cl Cd k
## 146 9.5 1.45 0.1036558 13.98860
## 147 9.6 1.46 0.1048137 13.92948
## 148 9.7 1.47 0.1059795 13.87061
## 149 9.8 1.48 0.1071532 13.81200
## 150 9.9 1.49 0.1083350 13.75364
## 151 10.0 1.50 0.1095246 13.69555

#The matrix (data) is folded for convenience


#to see the full frame , use
a$Out

## alpha Cl Cd k
## 1 -5.0 0.00 0.02000000 0.0000000
## 2 -4.9 0.01 0.02000398 0.4999005
## 3 -4.8 0.02 0.02001592 0.9992049
## 4 -4.7 0.03 0.02003581 1.4973191
## 5 -4.6 0.04 0.02006366 1.9936540
## 6 -4.5 0.05 0.02009947 2.4876276
## 7 -4.4 0.06 0.02014324 2.9786669
## 8 -4.3 0.07 0.02019496 3.4662106
## 9 -4.2 0.08 0.02025465 3.9497107
## 10 -4.1 0.09 0.02032229 4.4286350
## 11 -4.0 0.10 0.02039789 4.9024685
## 12 -3.9 0.11 0.02048144 5.3707152
## 13 -3.8 0.12 0.02057296 5.8328997
## 14 -3.7 0.13 0.02067243 6.2885690
## 15 -3.6 0.14 0.02077986 6.7372930
## 16 -3.5 0.15 0.02089525 7.1786662
## 17 -3.4 0.16 0.02101859 7.6123084
## 18 -3.3 0.17 0.02114989 8.0378652
## 19 -3.2 0.18 0.02128915 8.4550092
## 20 -3.1 0.19 0.02143637 8.8634396
## 21 -3.0 0.20 0.02159155 9.2628833
## 22 -2.9 0.21 0.02175468 9.6530940
## 23 -2.8 0.22 0.02192577 10.0338530
## 24 -2.7 0.23 0.02210482 10.4049687
## 25 -2.6 0.24 0.02229183 10.7662758
## 26 -2.5 0.25 0.02248680 11.1176356
## 27 -2.4 0.26 0.02268972 11.4589347
## 28 -2.3 0.27 0.02290060 11.7900849
## 29 -2.2 0.28 0.02311944 12.1110218
## 30 -2.1 0.29 0.02334623 12.4217045
## 31 -2.0 0.30 0.02358099 12.7221144
## 32 -1.9 0.31 0.02382370 13.0122541
## 33 -1.8 0.32 0.02407437 13.2921465
## 34 -1.7 0.33 0.02433299 13.5618336
## 35 -1.6 0.34 0.02459958 13.8213757
## 36 -1.5 0.35 0.02487412 14.0708498
## 37 -1.4 0.36 0.02515662 14.3103488
## 38 -1.3 0.37 0.02544708 14.5399802
## 39 -1.2 0.38 0.02574549 14.7598651
## 40 -1.1 0.39 0.02605187 14.9701369
## 41 -1.0 0.40 0.02636620 15.1709403
## 42 -0.9 0.41 0.02668849 15.3624302
## 43 -0.8 0.42 0.02701873 15.5447708
## 44 -0.7 0.43 0.02735694 15.7181343
## 45 -0.6 0.44 0.02770310 15.8827000
## 46 -0.5 0.45 0.02805722 16.0386535
## 47 -0.4 0.46 0.02841930 16.1861859
## 48 -0.3 0.47 0.02878933 16.3254924
## 49 -0.2 0.48 0.02916732 16.4567721
## 50 -0.1 0.49 0.02955327 16.5802271
## 51 0.0 0.50 0.02994718 16.6960613
## 52 0.1 0.51 0.03034905 16.8044804
## 53 0.2 0.52 0.03075887 16.9056909
## 54 0.3 0.53 0.03117665 16.9998996
## 55 0.4 0.54 0.03160239 17.0873130
## 56 0.5 0.55 0.03203609 17.1681369
## 57 0.6 0.56 0.03247775 17.2425758
## 58 0.7 0.57 0.03292736 17.3108327
## 59 0.8 0.58 0.03338493 17.3731086
## 60 0.9 0.59 0.03385046 17.4296020
## 61 1.0 0.60 0.03432394 17.4805090
## 62 1.1 0.61 0.03480539 17.5260226
## 63 1.2 0.62 0.03529479 17.5663329
## 64 1.3 0.63 0.03579215 17.6016262
## 65 1.4 0.64 0.03629746 17.6320856
## 66 1.5 0.65 0.03681074 17.6578905
## 67 1.6 0.66 0.03733197 17.6792164
## 68 1.7 0.67 0.03786116 17.6962347
## 69 1.8 0.68 0.03839831 17.7091130
## 70 1.9 0.69 0.03894342 17.7180147
## 71 2.0 0.70 0.03949648 17.7230991
## 72 2.1 0.71 0.04005750 17.7245212
## 73 2.2 0.72 0.04062648 17.7224320
## 74 2.3 0.73 0.04120341 17.7169781
## 75 2.4 0.74 0.04178831 17.7083020
## 76 2.5 0.75 0.04238116 17.6965419
## 77 2.6 0.76 0.04298197 17.6818321
## 78 2.7 0.77 0.04359074 17.6643026
## 79 2.8 0.78 0.04420746 17.6440792
## 80 2.9 0.79 0.04483215 17.6212840
## 81 3.0 0.80 0.04546479 17.5960349
## 82 3.1 0.81 0.04610539 17.5684461
## 83 3.2 0.82 0.04675394 17.5386277
## 84 3.3 0.83 0.04741046 17.5066863
## 85 3.4 0.84 0.04807493 17.4727248
## 86 3.5 0.85 0.04874736 17.4368423
## 87 3.6 0.86 0.04942775 17.3991346
## 88 3.7 0.87 0.05011609 17.3596940
## 89 3.8 0.88 0.05081239 17.3186095
## 90 3.9 0.89 0.05151665 17.2759667
## 91 4.0 0.90 0.05222887 17.2318482
## 92 4.1 0.91 0.05294905 17.1863334
## 93 4.2 0.92 0.05367718 17.1394988
## 94 4.3 0.93 0.05441327 17.0914179
## 95 4.4 0.94 0.05515732 17.0421614
## 96 4.5 0.95 0.05590933 16.9917972
## 97 4.6 0.96 0.05666929 16.9403908
## 98 4.7 0.97 0.05743722 16.8880048
## 99 4.8 0.98 0.05821310 16.8346994
## 100 4.9 0.99 0.05899694 16.7805326
## 101 5.0 1.00 0.05978873 16.7255598
## 102 5.1 1.01 0.06058848 16.6698342
## 103 5.2 1.02 0.06139620 16.6134071
## 104 5.3 1.03 0.06221187 16.5563273
## 105 5.4 1.04 0.06303549 16.4986418
## 106 5.5 1.05 0.06386708 16.4403956
## 107 5.6 1.06 0.06470662 16.3816318
## 108 5.7 1.07 0.06555412 16.3223917
## 109 5.8 1.08 0.06640958 16.2627148
## 110 5.9 1.09 0.06727299 16.2026390
## 111 6.0 1.10 0.06814436 16.1422005
## 112 6.1 1.11 0.06902370 16.0814338
## 113 6.2 1.12 0.06991098 16.0203723
## 114 6.3 1.13 0.07080623 15.9590474
## 115 6.4 1.14 0.07170944 15.8974896
## 116 6.5 1.15 0.07262060 15.8357277
## 117 6.6 1.16 0.07353972 15.7737893
## 118 6.7 1.17 0.07446679 15.7117009
## 119 6.8 1.18 0.07540183 15.6494876
## 120 6.9 1.19 0.07634482 15.5871736
## 121 7.0 1.20 0.07729577 15.5247816
## 122 7.1 1.21 0.07825468 15.4623337
## 123 7.2 1.22 0.07922155 15.3998506
## 124 7.3 1.23 0.08019637 15.3373522
## 125 7.4 1.24 0.08117915 15.2748575
## 126 7.5 1.25 0.08216989 15.2123845
## 127 7.6 1.26 0.08316859 15.1499502
## 128 7.7 1.27 0.08417524 15.0875712
## 129 7.8 1.28 0.08518986 15.0252628
## 130 7.9 1.29 0.08621243 14.9630399
## 131 8.0 1.30 0.08724296 14.9009165
## 132 8.1 1.31 0.08828144 14.8389058
## 133 8.2 1.32 0.08932789 14.7770205
## 134 8.3 1.33 0.09038229 14.7152727
## 135 8.4 1.34 0.09144465 14.6536736
## 136 8.5 1.35 0.09251496 14.5922341
## 137 8.6 1.36 0.09359324 14.5309644
## 138 8.7 1.37 0.09467947 14.4698740
## 139 8.8 1.38 0.09577366 14.4089721
## 140 8.9 1.39 0.09687581 14.3482674
## 141 9.0 1.40 0.09798591 14.2877680
## 142 9.1 1.41 0.09910398 14.2274815
## 143 9.2 1.42 0.10023000 14.1674152
## 144 9.3 1.43 0.10136398 14.1075759
## 145 9.4 1.44 0.10250591 14.0479700
## 146 9.5 1.45 0.10365581 13.9886035
## 147 9.6 1.46 0.10481366 13.9294821
## 148 9.7 1.47 0.10597947 13.8706110
## 149 9.8 1.48 0.10715324 13.8119952
## 150 9.9 1.49 0.10833496 13.7536393
## 151 10.0 1.50 0.10952465 13.6955476

#Now let us do some numerical Optimization


Optim(a)

## $kmax
## alpha Cl Cd k
## 72 2.1 0.71 0.0400575 17.72452
##
## $Cdmin
## alpha Cl Cd k
## 1 -5 0 0.02 0
##
## $Clmax
## alpha Cl Cd k
## 151 10 1.5 0.1095246 13.69555

#See that is fetching some interesting points


#Where are they? can we visually see them?
lines(a)#Of course, use lines() for the S3 data to do default 2d plot
#And also
plot(a)#a 3D one

## Loading required package: scatterplot3d


#Now what if I want other values?
fetchAlpha_Clmax(a$Out)#at Cl max

## alpha Cl Cd k
## 151 10 1.5 0.1095246 13.69555

fetchAlpha_Cl(a$Out,.6)#at Cl=6

## Loading required package: MFVN

##
## Attaching package: 'MFVN'

## The following object is masked from 'package:base':


##
## Map

## alpha Cl Cd k
## 61 1 0.6 0.03432394 17.48051

#Pretty cool eh?

#-----------------------------------------------------------------

#Let us do a second analysis, still using a default a data frame


# And it follows very similar structure.
# At this stage do not worry about what the model does
(cons<-create(Constraint.default))#use parenthesis to print while
executing

## NULL
## W_S CA_TURN CA_ENERGY_LEVEL CA_CLIMB CA_CRUISE_V
## [1,] 5.0 0.9614092 1.0113307 0.8755383 0.9621314
## [2,] 5.1 0.9425622 0.9924821 0.8649651 0.9432989
## [3,] 5.2 0.9244402 0.9743585 0.8547997 0.9251913
## [4,] 5.3 0.9070022 0.9569189 0.8450190 0.9077677
## [5,] 5.4 0.8902100 0.9401252 0.8356017 0.8909900
## [6,] 5.5 0.8740286 0.9239421 0.8265279 0.8748229
## CA_SERVICE_CEILING CA_TO_DISTANCE
## [1,] 7.673934 7.249945
## [2,] 7.598968 7.125045
## [3,] 7.526176 7.004949
## [4,] 7.455454 6.889385
## [5,] 7.386705 6.778102
## [6,] 7.319840 6.670865
## [1] "......"
## W_S CA_TURN CA_ENERGY_LEVEL CA_CLIMB CA_CRUISE_V
## [446,] 49.5 0.09814710 0.1473694 0.4025223 0.1052967
## [447,] 49.6 0.09795344 0.1471742 0.4024416 0.1051175
## [448,] 49.7 0.09776057 0.1469797 0.4023613 0.1049390
## [449,] 49.8 0.09756849 0.1467861 0.4022815 0.1047614
## [450,] 49.9 0.09737718 0.1465932 0.4022022 0.1045845
## [451,] 50.0 0.09718665 0.1464011 0.4021232 0.1044084
## CA_SERVICE_CEILING CA_TO_DISTANCE
## [446,] 2.483378 1.523486
## [447,] 2.480939 1.522189
## [448,] 2.478508 1.520897
## [449,] 2.476083 1.519610
## [450,] 2.473666 1.518329
## [451,] 2.471257 1.517052

#Now repeat
plot(cons)#does not look good, shift the y of legends
plot(cons,y=8)
Optim(cons)

## Min W_S_optim.W_S
## 2.471257 50.000000

#This solves for the feasible range of T/W~W/S and aim for the most
#energy saving condition
#You do not have to use this point as the value to take in the next
#step but this suggests the point that the kinetic constraints
#are least critical.
#Hold on, what are the constraints?
cons$Raw

## [1] "W/S ranging:"


## [1] 5
## [1] 50
## [1] "D W/S"
## [1] 0.1
## [1] "Constant v turn"
## List of 6
## $ Cd_min: num 0.02
## $ v : num 20
## $ H : num 200
## $ k : num 0.0398
## $ n : num 0.357
## $ q : num 240
## [1] "Energy Level"
## List of 8
## $ Cd_min: num 0.02
## $ k : num 0.0398
## $ n : num 0.181
## $ Ps : num 1
## $ v : num 20
## $ H : num 200
## $ rho : num 1.2
## $ q : num 240
## [1] "Rate of Climb"
## List of 7
## $ v_v : num 5
## $ v : num 15
## $ k : num 0.0398
## $ Cd_min: num 0.02
## $ H : num 200
## $ q : num 135
## $ rho : num 1.2
## [1] "Cruise v"
## List of 7
## $ H : num 200
## $ k : num 0.0398
## $ Cd_min: num 0.02
## $ v : num 20
## $ H : num 200
## $ rho : num 1.2
## $ q : num 240
## [1] "Service_CEILING"
## List of 6
## $ v_v : num 20
## $ Cd_min: num 0.02
## $ H : num 400
## $ k : num 0.0398
## $ rho : num 1.18
## $ q : num 236
## [1] "takeoff"
## List of 8
## $ ClTO: num 1.2
## $ CdTO: num 0.5
## $ H : num 0
## $ v : num 20
## $ SG : num 30
## $ mew : num 0.2
## $ rho : num 1.22
## $ q : num 245

#Isnt that familiar?


#Did we see $Raw before?
a$Raw#Yes, as the assumptions are a part of the study
## [1] "Alpha_lin:Cla= 0.1 alpha0= -5 CdiF= 0.0397887313856378 Cd0=
0.02"

#And the size is relatively small, we store that as well

#Now you have seen 2 models already


#They can have some connections.
#What if we suggest that data a has the lift/drag property of the
#concept, where as we use the maximum lift coefficient for take off
#to lower the speed, and then use the highest lift to drag ratio (k)
#for cruising?

takein#see this strange function here

## function(x,...) UseMethod('takein')
## <bytecode: 0x000000001dcbbd90>
## <environment: namespace:rAviExp>

newCons<-Constraint.default %takein% a
newCons$TO_DISTANCE$ClTO# Now it fills the new parameter in

## [1] 1.5

#And we are actually connecting the different dimentions


#now look at this line:
Optim(create(Constraint.default %takein% create(Alpha_lin.default)))

## Min W_S_optim.W_S
## 2.471257 50.000000

#This line actually does all things above


#Although not encouraged for building fine model,
#such grammar could be fast and convenient for a coarse model

General structure of the package [needed update]


The package contains a number of models that can be applied in different stages of
design. But essentially there are 3 things to remember. 1. Create or import a study
Create a list with certain structure specified Classify the list Create the study and
print the results 2. To extract properties from results Use Optim() to find
numerically or symbolically some specific points Use plot(), lines() and %plot% to
create default plots Use Analyse() to find suggestive values Use Extract() to try to
inversely find the properties from the result (if the raw is not found). 3. Link them
with the data structure Use %takein% or %>takein>% to assign parameters to new
study Load and save data These functions will be further demonstrated in the case
studies. For a more formal introduction of each function, use help() to find the
documentation. E.g.
help(create)
Underlying Physics ideas about Aircraft design:Introduction to
Relevant Physics Ideas of Airplane Conceptual Design (2nd Ed.)
by Hao Li [need update]
Rewrite from
[Introduction_to_Relevant_Physics_Ideas_in_Airplane_Conceptual_Design.pdf] This
was rewritten from my physics internal paper in March 2018.
Introduction to Relevant Physics Ideas of Airplane Conceptual Design
There are many physis ideas linked to aircraft conceptual design. For people doing
evaluations and design works it is cruicial to have a good understanding of not only
the physics theories but also the connections between them.

1 Aerodynamics of plane
1.1 Properties of air
Air is matter, and the density of dry air at sea level is approximately 1.225 kg/m3.
Although air is consisted of particles and can be compressed, more practically we
assume the air is consistent and not compressible at low speed.
require(rAviExp)
plot(1:10000,Rho(1:10000),xlab='Height[meters]',ylab='Estimation of Air
density [kgm^-3]',type='l')
Fluid dynamics assume the fluid is consistent to study the general patterns. For a
plane at lower speed the compressibility does not greatly affect the results and for
other cases some correction formulae can be used. Every model has its assumptions
thus limitations. And even if the assumptions are reasonable, the relationship is not
always deterministic.
The diagram suggests that although air is consist of particle, when the object is large
enough (not in the same scale of molecules) it is roughy consistent. In reverse, we
can simulate the way that a consistent flow behaves by analysing the groups of
particles. The higher the resolution is the more precise the answer we get, if it does
not involve chao theory, but also the longer time it takes to calculate. The amount of
calculation of particles tracking is so tremendous that it is not very feasible even if
we use the GPU for parallel calculation in PC (for a subsonic UAV). This is why we
want to discover and model the general patterns of it.
This section Re, which states the property of frictional drag, is not considered.
Unless specified, all calculations are at Re=12000 which is one of the normal cases of
subsonic planes.
1.2 Flux, Bernoulli principles
The Bernoulli equation base on the Bernoulli principles. Assume that the fluid is
incompressible, and also, the difference in height can be ignored,(not considering
the acceleration on the speed of the fluid done by gravity). At this stage no
turbulence involved to simplify the model. The difference of the kinetic energy can
be calculated given the volume passed by certain cross-section area is the same,
which is the concept of flux.
The flux stays constant before/after the fluid passes. This is suggesting if you get a
closed tube with one end with sectional area 10m^2 and another end 1m^2. If wee
blow 100M^3 of air per sec in the end that have 10m^2 sectional area, we expect to
have 100m^3 to get out at the other end.
And for 100m^3 to go through the end that have 10m^2 sectional area,

v i n=100/10=10 m s−1

For the 1m^2 area

v o u t =100/1=100 m s−1

The work done on the certain volume of the fluid is equal to the work done by the
shape of the tube.
1
m∗[ Δ(v 2 )]=Δ E k=W =F∗d= p∗S∗d
2
In our example the difference between v is 1002-102=99900ms^-1

W = Δ E k=1/2∗( ρ∗V )∗(v2f − v 2i )


1/2*(1*100)*(99900)

## [1] 4995000

We expect this much of energy to be transferred. Although air is not very dense, the
energy that can be obtained through difference of pressure can be large (4995000J).
V V
=
Δt 1 Δt 2
The force acting on a section of the fluid can be calculated by the pressure (static), p.

F F G m∗g ρ∗V∗g V
p= = = = = ∗ρ∗g
S S S S S
And for a vertical volume of liquid,
V =h∗S
So
p=ρ∗g∗h
Bernoulli equation suggest that (P is the pressure in the fluid)
1
P+ ρ∗v 2 + ρ∗g∗h=C o n s t a n t
2
Where P is the pressure of the fluid.

Tunnel. By suggesting that it is not compressible, the volume passes per unit time is
same, from where the Ek is derives from the speed change and the work is done by
fluid.
If we take a closer look at the equation
1
q= ρ∗v 2
2
is kinetic energy density (amount of kinetic energy per volume).
p=ρ∗g∗h
is potential energy density (amount of kinetic energy per volume).

1.3 Forces and torques on the wings with empirical


formulae(Differentiation and complex number solution of the derivatives)
For airplanes, the main lift source (wings), if without large sweep, can be simplified
to 2D problems. Actually, because of the complexity of the system, if possible, the
problems in fluid dynamic are usually degraded in dimensions.
Force and drag of lift and drag on a wing can be calculated from the 2D property of
wing profiles (cross-section of the wing along y-axis). Cy,Cx for profiles are easier
for calculations and data manipulations.
But unlike the tube question we have visited, the wing is positioned in the flow, not
enclosing the flow, also it is a 2D shape. To analyse the property of an airfoil we have
to analyse the exterior flow, which is unbounded.
Cy(or Cl) and Cx (or Cd)have similar definitions:
Lse c t i o n
C l=
q∗c
If we relate back to the other form of Bernoulli’s law, when P is constant.
p+q=C o n s t a n t
1
L= ∗C l∗ρ∗S∗v 2 =q∗C l∗S
2
Where q is a term for dynamic pressure. We can substitute and see how the Cy
equation (definition) works.
We can calculate Cy/Cd by doing glider experiment (and we can prove that it is
equal) but more conceptually when not stalled some wind tunnel tests suggest that
Cy of wing is roughly proportional to angle of attack(AoA or Alpha). (Alpha in
radians in this equation)
C lα =C l(α )≃ C l 0 +2 π α

Since it is linear it does not matter if we use the point with Cl=0 or Alpha=0 to locate
the line as long as we get the gradent.
This is the gradient of Cl with respect to angle of attack. The alpha0 is the angle of
attack when no lift is generated on the profile. We could also say the integral of the
pressure on the 2D surface area (perimeter) is 0.
This relationship of Cl and alpha enables people to further simplify the model. As Cl
at any state can be calculated when the 2Cls at alpha are measured. Also it is notable
that the value of alpha0 can be estimated with empirical formula, as the property of
the airfoil is affected by the 2D shape.
The angle of attack for L=0 can be estimated from the (x,y) coordinates of the
profile, where A(x) gives correstion along x axis and yu and yLstand for the y
coordinates of the upper and lower boundary of the profile(the plot above).
1
α 0=− Σ A (x)( ( y u + yl ))
2
We can plot the empirical data for A(x) and plot the average y value.(Or you can look
up A(x) in the table from the reference).
Our airfoil compresses air at the top so the air on the upper side should have larger
velocity across the x axis than the lower side, because when incompressible,
narrower tube of air means larger velocity. When the empirical data prediction fails
I would suggest that using a linear model to fit the data from experiment. For
example if using a glider, we know that Cl = 0 when AoA = -5, Cl=1 when AoA = 3,
then the gradient is 1/8 = 0.125. Thus you can continue to work out the formulae for
Cl(AoA).
In the diagram the senario of the profile in a wind tunnel is shown, although in real
cases there are no boundaries of air, it is reasonable to simplify this as the affect on
air in greater distances is small. Also the pressure is shown as simplified model, as
the pressure of the wing itself is not shown in this diagram.

Sum the pressure over a surface and we get lift/Drag


Always remember that it only applies in the domain when Cl is positive and when it
does not stall. Predictions based on models can be dangerous if arbitrarily extended
outside the range of the original observations.
For a rectangular wing that have infinitely large aspect ratio and ignoring the
interference along the span axis(y). But we can minimize the prediction error of this
formula by adjusting and fitting new terms in a more complexed model.The
correction of the Cl formula gives,
2∗π∗A R
C l α=
√ ¿¿ ¿
Where 1-Ma^2 gives correction to the relative speed of plane and the speed of
sound (for subsonic planes). AR is the wing aspect ratio, which is calculated by
span/geometric average cord of wing. The term of AR gives corrections to the
compression along the y axis (span), because when accumulating 2D fluid dynamics
we assume that the sections do not interfere with each other but this is more
realistic when corrected.Also for a plane with fuselage the term of the radius of the
fuselage must be added for a better approximation.
The drag of the airfoil can also be modelled with different equations , since we have
the Cl we can also use Cl at alpha as a term, and then it can be corrected to 3D
simmilarly. You do not always have to refer to the datas as long as the predictions
are close. It is recommended to used simple models when possible.
*The fluid will also cause torque on the wings, but the pivot is hard to decide, thus
more practically we use the idea of neutral points which will be discussed in 2.3.2.
2 Motions
2.1 Angular torque and momentum
Motions can be grouped into translational motion and rotational motion.
Translational motion states the motion of the change of position vector of an object
(point mass); whereas, rotational motion states the change of direction vector of a
directional object(e.g. A lever).
The kinematics follows some equations (assume time and space is consistent),and
the terms have their specific physical meaning.
The linear motion follows(and assume time and space is consistent)
Δ P(t ) d P(t)
v(t )= =
Δt dt
states the rate of change of P due to time (how fast position change due to time)
Similarly(how fast velocity changes due to time)
2
Δ v(t) d v(t ) d P(t)
a(t)= = =
Δt dt d t2
Momentum -product of mass and the modular of velocity
I =m∗v
1
E k= m∗v 2= ∫ I (v)d v
2
Linear kinetic energy(modular) is equal to the integration of momentum(modular)
In other words, momentum states how hard it is for the kinetic energy to change
due to its speed (also note that as Ek is positively proportional to v^2, the faster the
object the more momentum is required to put in the system to change Ek by the
same scale). Thus mass is a constant that restrict the capability of altering speed.
d Ek
I =m∗v=
dv
The angular motion, in comparison, or similarly, follows:
Δθ(t) d θ(t)
ω= =
Δt dt
Where theta is the angular position, and according to the definition of radian we
have.
l=r∗θ
lim P(t + Δt )− P(t ) lim l( Δ t) lim r∗θ( Δt )
Δ t →0 Δt→0
v= = = Δt→0 =r∗ω
Δt Δt Δt
Thus the corresponding linear speed can be calculated.

Δ ω(t) d ω(t ) d 2 θ(t )


α= = =
Δt dt d t2
(angular acceleration) Similar to the statement that force is proportional to
acceleration.For angular force (Torque), if we divide it by angular acceleration we
get:
T =I∗α
where I stands for rotational inertia, also
L=I∗ω
which is the rotational momoentum, Therefore to be consistent in terms of energy
and motion
1 1
E k r o t = ∗m∗v 2 = ∗m ω2 r 2
2 2
The idea of rotational inertia and rotational momentum is important as altering the
angle of attack is one of the way the plane changes the magnitute of lift and
therefore change its linear motion.
Angular question
For example, a plane is descending at some descending angle and at a certain height.
For the plane to increase the Lift to pitch up and avoid crashing, it needs to gain
angle of attack from 2.5 degrees to 10 degrees. (Simplify the model by using the
pivot of the plane to study the angular motion instead of using the ground) We
assume that at the same time the pilot throuttle up to maintain a speed of 70 ms^-1,
the change of attack angle must be done within 70m, then it has 1 second to change
the angle of attack (AoA). Now we assume that - a constant torque is applied by the
horizontal wing with a length (perpendicular distance) of d= 3m - the mass of the
plane is 100kg and distributed as a symmertrical lever about the pivot with length d
= 3m(same d, but extend in 2 directionsn so 1.5m to the front, 1.5m to the back) -
ignore the change in length of perpendicular distance of lift generated by the
horizontal tail. - Since from rotational stationary, we have
Δ θ= A o A 2 − A o A 1 =10 − 2.5=7.5 d e g r e e s=7.5∗π /180 r a d i a n
1
Δ θ= α t 2
2
t m a x =¿ Δ Pm a x∨¿∨v∨¿ 1

Solve for angular acceleration we need


α =2∗Δ θ=15∗π /180=T / I
Now consider I,
I for a particle with m is

I p a r t i c l e=m r 2

The evenly distributed rod is the commulation of the inertia of particles each with
mass per length m/r
1
I r o d f r o m c e nt e r = m r 2 =100∗d /12
12
We are not going to derive the equation for I, but this should give people an intuition
that the closer the mass is distrubuted to the roitational center the easier it is to spin
it.Finally,
F=T /d=(100∗3/12)∗(15∗π /180)/3
(100*3/12)*(15*pi/180)/3

## [1] 2.181662

2.18N is needed for the horizontal tail. If you keep the parameters unsubstituted
then you can derive some more general formulaes to suggest the weight distibution
of the mass on plane. Generally, putting the mass close to center reduce the force
needed to spin the plane the pitch axis, but probably structually and
aerodynamically more difficult. If you want the plane to be less sensitive to the pitch
teh mass should be spread out.

2.2Balance on a plane at a certain state(Newton)


In equilibrium, an object is to have:
F ne t =0=Σ F

T n e t =0=Σ T

According to the Definitions of forces, the direction and magnitude of the forces
acting on a plane is defined:
Gravitational force: vertically downwards and have the magnitude
F G =m∗g
Thrust: In the direction(usually the pointing direction of nose, not necessarily the
direction of velocity). At the certain moment is given by the applied power divided
by speed .
F T =P/ v

Note that DIfferent P may also apply for different v because of the properties of
engines and fans.
Lift: perpendicular to the direction of velocity and wing span. If the plane is rolling
then lift direction changes. Drag: perpendicular to the direction of wing span, but in
the opposite direction of velocity.
1
L= C y∗ρ∗S∗v 2
2
1
D= C x∗ρ∗S∗v 2
2
For a specific airframe, the magnitude of Lift and drag corresponds with the
magnitude of velocity, and angle of attack.
*We must make clear that the linear motion of the plane changes not because of the
turning of heading. The throttle and control surfaces give torques to change the
direction and magnitude of forces and it is the change in forces that cause the
change in motions. For example, when taking off it is the change in power changes
the speed, and pulling the lever changes angle of attack; therefore lift get larger
giving a net acceleration upwards.

2.3 Solve the kinematics in a certain state


If a state of the plane is known, the rest of the term will follow deterministic
relations, thus we can solve for them. We should start with some simple states to
not only get a better intuition but also suggest the requirements of the plane which
can be generalized to solve for feasible region for later. The key idea of solving the
state is to figure out some key parameters of the non-linear system and get some
general properties that can suggest the tradeoffs of a plane. If you don't get this look
at the next section of optimization.
2.3.1 Horizontal flying, gliding, climbing at a constant rate.

Horizontal flying, gliding, climbing at a constant rate


For example, for a plane that is flying horizontal with a constant speed
L=F G ; F T =D

Therefore,
1 P ow er 1
C y∗ρ∗S∗v 2=m∗g ; = C x∗ρ∗S∗v 2
2 v 2
The least requirement of horizontal flying of v is stated. When at minimum speed,
maximum Lift/Drag ratio is used thus lift is most used. The plane is at the edge of
stall.

v m i n=
√ 2∗F G
C y∗ρ∗S
To maximize the horizontal speed, suppose the efficiency of power plant is 1 at
maximum v and P.
v m a x =¿
It suggests if you want to fly fast, you shouyld use smaller attack angle, wings with
smaller drag coefficient and smaller area, so long as it can generate enough lift.
Power should also be increased.
How does it correlates to the aerodynamical properties?
K =C l /C d @ α
Angle of attack is the angle between the direction of the heading of wing string;
whereas, the climbing or gliding angle theta is the angle between the horizontal axis
and the velocity of the plane.Both may have effect on the direction of thrust, but
comparatively in most cases angle of attack is controlled within 10 degrees so we
can assume that (and also because of assembly angle) the thrust is in the same
direction with v.
For a gliding plane it has
F G =L∗c o s (θ)+D∗s i n(θ); L∗s i n(θ)=D∗c o s(θ)

And because of the definition of direction of L and D related to direction of v.


dhor z L C l
c o t (θ)= = = =K (@ α , R e)
dv e r t D C d

Take a glider using the airfoil Clark Y for example.If we want the optimized gliding
ratio, we should balance tha plane to use its alpha for maximum Cy/Cl. According to
the table (for Re=120000) when alpha = 2.5 deg it has largest
K =92
So it can glide 92m forward when only go down 1m, threoretically, but we have
mentioned a number of reasons this number is too optimistic. If the plane weights
100kg and have a wing area of 5m^2and if it glides at this idea state. It is going to
have speed.

v g l i d i n g=√ c o s θ
√ 2∗F G
C y∗ρ∗S √
= √ c o s(c o t (92))∗
−1 2∗(100)∗9.8
0.7∗1.225∗5
sqrt(cos(atan(1/92)))*sqrt((2*100*98)/(.7*1.225*5))

## [1] 67.61034

The gliding speed is 67.6 ms^-1.


But this state is ideal for measureing the Cy/Cl of the real aircraft. If, through a
number of adjustments a glider can glide 30km when descending 1 km, then the
effective K of this airframe have an relative optimum of 30, and if we change the
wing profiles for this glider we can compare different properties of different airfoils.

2.3.2 Angular motions, heading control, tradeoffs and sizing criterias


Because a plane is a moving lever, it is hard to determine the pivot of it. However
there is a term of NP(neutral point) of a plane,s.t., when CG(center of gravity is
positioned on it, change in lift (due to AoA and velocity)) will not cause torque on it.
We can compare it with the concept of pivot of a stationery of lever. Note that being
balanced does not means stable.
The NP may not ba in the exact same place with CG ,nor aerodynamic center. For
planes with different dynamic properties it might be estimated from different
formuli.
XN P 1 1+2/ A R m ai n 4
≃ + (1− )∗V h
C o r d 4 1+2/ A Rh o r z A R+2

In this formula for low speed planes it is calculated from Area Reference and
horizontal tail volume coefficient. Most of the terms is not making sence but 2 things
makingb this term important are:
• we can always estimate and evaluate the pitch stability by putting terms in
certain models

• this equation is robust because the term added to 1/4 is very close to 0. In some
paper plane contests (if you have not seen any watch the Genus record video)
the player throw the paper plane holding roughly the front 1/4 not just because
of the strength of paper and center of gravity.
X N P − XC G
S t a b i l it y . M ar g in=
C or d
Now this can be used to explain why it is really dangerous for large airliner/
trasporters to stall. If a plane focus on efficiency, it is going to use a proper power
plant with an optimied airfoil corresponding to the aimed cruising speed and
weighted over the performance at different states.
When CG(Center of gravity) is positioned at the back of the neutual point, in terms
of the lever, the lever balances when both horizontal wing and main wing produce
force pointing upwards so that around acertain point the torque balances. But in
terms of neutral points when there are interferes the viberations keep enlarging and
when either ascending angle or attack angle gets large enough the plane or airfoil is
going to stall.
However recall that rotational inertia states how hard it is for some objects to
change angular motion, if the mass of goods on a transporter are spread out along
the fuselage instead of being tucked together, the plane can be not sensitive to the
interfere (e.g. sudden wind etc.). This term also states why they are not flexible–Not
purely because of the size. In real life if you get 2 rackets of the same weight, same
size but with different balance point and then you swing them it is also going to feel
differently, unless you are too strong to notice the difference.
If we go the other extreme and think of aerobatic planes, they typically have more
allowance in performance, with CG placed at the front or at NP, also having a
relatiely condenced distribution of mass. So it is not a contradiction to say this plane
(e.g. Extra 330) is both stable and flexible. So there are two aspects we discribe
control.
There are also ways to analyse the roll and pitch controls similar to that and also
ways they can influence each other, which is because it is a 3D motion problem.

2.3.4 More ways of analysing motion


We Forces and torques are what we can control, and the motions are caused by that.
When designing a plane the stability will be considered. One way of analysing the
tendency (will it stablize itself when interrupted) is by analysing the eigen-value of
the matrix of the derivatives.
Derivatives are rate of change, thus 0 derivative suggest no change. Now, for
motions, they are with respect to t (time). So all the linear position, velocity,
acceleration, and angular heading, angular velocity, angular acceleration can be
written in the forms of vectors and matrices. By solving with linear algebra or
simulate with some algorithms we are able to analyse more complexed state of
kinematics. Simulations by taking some initial values as a start and let the time go
forward by a reasonaby small period and get the next state.
More essentially, the performance of the plane and the aerodynamic of the plane are
related in physics and when a number of connections and patterns are understood
we are enabled to model and suggest something useful to a specific design.

3 References
Lab 8 Notes ' Basic Aircraft Design Rules. (2018). [ebook] mitopencourseware.
Available at: https://ocw.mit.edu/courses/aeronautics-and-astronautics/16-01-
unified-engineering-i-ii-iii-iv-fall-2005-spring-2006/systems-labs-06/spl8.pdf
[Accessed 2 Mar. 2018].
Mark M., M. (2012). Mathematical Modeling (Fourth Edition). 4th ed. Academic
Press.
Tan chu xiong. (2007). Mo xing fei ji tiao zheng yuan li. Bei jing: Hang kong gong ye
chu ban she, pp.18-92.
Zhang wei., Su jian min. and Zhang ya feng. (2007). Mo xing fei ji de yi xing yu ji yi.
Bei jing: Hang kong gong ye chu ban she, pp.20-59.
En.wikipedia.org. (2018). Density of air. [online] Available at:
https://en.wikipedia.org/wiki/Density_of_air [Accessed 14 Mar. 2018].
Khan Academy. (2018). What is Bernoulli’s equation?. [online] Available at: https://
www.khanacademy.org/science/physics/fluids/fluid-dynamics/a/what-is-
bernoullis-equation [Accessed 14 Mar. 2018].
Raymer, D. (2012). Aircraft design. Reston, VA: American Institute of Aeronautics
and Astronautics.
Zhou xin. (2014). Gong cheng liu ti li xue. Bei jing: Zhong guo dian li chu ban she.

Case Study1: Simple Evaluations of existing projects [need


update]

Case Study2: Design a plane with rAviExp [need update]


iView UAV workflow report
The aim of this conceptual design is to create a mission-specific aircraft that could
perform aerial photography in order to track native birds with the Birds iView
project by Felix Backhouse.

1. The design requirements


The requirements are sourced from Felix???s presentation during the 1st model
aviators??? meeting on Sep 2nd 2018.
The original piece of the requirements for the plane is (although it might change as
further developments goes on): ' - Small enough to transport on foot in a backpack -
Max packed dimensions: 90 x 60 x 30 cm - Hand Launchable - Total Range: At least
10 km - Payload Weight: 250 g - Payload Volume: 6 x 8 x 10 cm - Payload Power
Draw: 10 W - Durable enough for belly landing on rough terrain. '
–From Felix_Proposal See also:
(https://www.brightsparks.org.nz/competition/past-competitions/2017-awards/
felix-backhouse-2017-birds-iview/)
As the habitats of different birds is different and therefore might include some
windy areas, the plane should be able to fly in considerably strong wind. So the
following parameters are set initially:
• The plane must be able to climb at the rate of 5ms-1 vertically and have 10ms-1
magnitude of the velocity at the height of 120 meters. (To avoid crashing
caused by sudden change in wind direction and strength).
• The requirement for cruising speed is set to 20ms-1 which is about the
maximum speed of DJI phantom 4. Cruising height is set to 400 meters for
coarse analysis.
• The plane must be able to perform a steady level turn and the radius can be
controlled within 25 meters top ensure safe landing and smooth transition
between targets. The turning speed is limited to 15 ms-1
• The plane must be able to take off within 10 meters of grass or dirt surface. Or
it must be able to get hand-launched.
• In order to land safely it must be able to fly at a velocity below 10. To take off
safely we assume the plane does not lift off before reaching 12. The friction of
the ground is considered really large, about 0.4 . The previous parameters
restricts the existence of possible kinetic states. Also to reach and stabilize the
kinetic states it is necessary to set the stability and control parameters.
• The static margin must be smaller or equal to 0.1 to make it less critical for the
future integration of the autopilot system.
• It can have small amount of spiral instability (e.g. Blaine factor is 3-4).
• The volume coefficients of the horizontal tail and vertical tail must lie in a
reasonable range.
• Control surfaces are to be set up according to empirical parameters to lower
the risk and also for convenience.
Material constraints:
• The primary materials to consider are Depron boards, EPS boards since the
designer (myself) have some experience working on them. KT board is cheaper
and easier to get but heavier, and will be considered the secondary choice. -The
vital frames can be made out of plywood and carbon rods. Sandwich structures
to enhance the structural durability with minimum weight shall be encouraged.
Note that most requirements listed should be numerically restricted.

2. Constraint Analysis
Constraint analysis is to be carried with the package. Further analysis include
analysing the criticality of some aspects that need to be questioned. Remember that
constraint analysis should be carried before the concept is sketched.
According to the recognized format, the constraint list can be defined.
#iView V
#Author: Hao LI
#Date: Sep 9th 2018

library(rAviExp)
#1 .constraint analysis
#Constraint.default
climb=list(v_v=5,
v=10,
H=120)
climb=CompleteCA(climb)
cruise=list(H=400,
v=20)
cruise=CompleteCA(cruise)
turn=list(v=15,
H=120,
n=1-cosd(atand(15^2/9.8/25)))
turn=CompleteCA(turn)
takeoff=list(SG=10,
H=0,
v=12,
mew=.4)
takeoff=CompleteCA(takeoff)

cons_init<-list(W_S=seq(from=1,to=5,by=.1),
CLIMB=climb,
CRUISE_V=cruise,
TO_DISTANCE=takeoff,
TURN=turn)
class(cons_init)='Constraint'

But at this stage the assumptions need other initial inputs, we can use either
empirical data or other methods.
The parameters that the requirement did not provide include:
Aerodynamic properties ClTO, CdTO: Take-off Lift and drag Coefficient. Cd_min:
Minimum drag Coefficient K: lift-induced drag coefficient
These can be taken into the Constraint analysis from the angle of attack analysis.
Generally there are 2 ways to get these parameters.

Import polar[!needed update]


The first way is to import a polar of an air foil and fit the data with thin air foil
model. Using the aerodynamic properties of airfoil during constraint analysis is
feasible for the gliders and glider-like planes. Because they have high aspect ratio
and the main wing contribute to large percentage of the total aerodynamic force. But
for the planes with higher wing-loading, less aspect ratio and larger angle of sweep
this fails.
To extract the parameters, simply import the air foil polar and perform a linear
regression for the lift coefficient curve and then find the k, which is lift-induced drag
factor. The minimum drag coefficient is taken as Cd0 (Cdi0+Cdf).
The function shall be called extract()
Use Alpha_lin
The second way is to use empirical data of the coefficients at different levels. K is
affected by aspect ratio and the Oswald Span wise efficiency factor, e. Calculation of
e can be very complicated and we can either find the empirical data by typing
e_type

## $elliptical
## [1] 1
##
## $rectangular
## [1] 0.7

Or calculate from Aspect ratio (usually for trapezoid shaped wing) using method 1
introduced in General Aviation Aircraft Design.
e_GAAD_M1(AR=9)

## [1] 0.7831239

AR and taper ratio are restricted because of the material restrictions. If AR and taper
ratio is enlarged the efficiency of a low-speed wing can increase (with higher lift to
drag ratio with same air foil, same sweep angle).
We can find the typical AR and taper ratio from the mission specific worksheet
provided by Blucraft. In this case we use AR=9, taper ratio= 0.8.
To get Cd_min, either run a trail wind simulation or use the existing wind tunnel
result.

Take in and create


In either way you can get an output classified as ???AlphaOut???. Then by calling the
%takein% or %>takein>% function.
cons_init=takein(cons_init,create(Alpha_lin.default))

The properties are taken into the new model.


cons_init<-create(cons_init,func=c('CA_CLIMB',
'CA_CRUISE_V',
'CA_TO_DISTANCE',
'CA_TURN'))
#results
plot(cons_init)
Optim(cons_init)

## Min W_S_optim.W_S
## 0.9437431 5.0000000

#saveRDS(cons_init,'cons_init.rds')

The initial constraint analysis shows that the smallest thrust to weight ratio
required for this plane is 0.94 which occurs at the large bound of the wing loading
(5). The red line (cruise velocity) gives the most critical restrictions to the power
plant whereas the take off performance can be bettered.

Criticality
Before moving on let us see how changing some assumptions can affect the
criticality on the power selection.
By changing the requirements the criticality of the plane could change. But
sometimes the requirement of performance do not exert an sudden increase to the
requirement of the parameters of the concept.
Start by registering parallel computing cores as this may save us some time. In this
case we are using the doParallel package to write some embarassing parallel loops.
library(doParallel)

## Loading required package: foreach


## Loading required package: iterators

## Loading required package: parallel

registerDoParallel(cores = 6)

~Takeoff run
First let us do the take-off criticality, using some parallel computing.
Let us use the existing data structure of the lists to write a snesitivity function.
Sensi_TO_SG<-function(cons,SG=1:20,func= c('CA_TO_DISTANCE',
'CA_CRUISE_V',
'CA_TURN',
'CA_CLIMB')){
#system.time({
crit<-foreach(i=SG,.combine = rbind) %dopar% {
require(rAviExp)
cons$TO_DISTANCE$SG=i
Optim(create(cons,func =func))
}
#})
crit<-cbind(SG,crit)
crit
}

Now as you see, using the parallel loop requires the function dependencies so we
are loading the library for each branch. This may lower the effectiveness of parallel
computing as it needs extra cost. In the future some sensitivity functions will be
encoded in the library so that the users will not have to write their own ones.
cons_init_sg<-Sensi_TO_SG(cons_init$Raw,SG=seq(from=1,to=20,by=.1))
head(cons_init_sg)

## SG Min W_S_optim.W_S
## result.1 1.0 1.387190 3.4
## result.2 1.1 1.274813 3.7
## result.3 1.2 1.179299 4.0
## result.4 1.3 1.097120 4.3
## result.5 1.4 1.025667 4.6
## result.6 1.5 0.962969 4.9

plot(cons_init_sg[,1],cons_init_sg[,2],type='l',xlab='SG from initial


CA',ylab='T/W')
plot(cons_init_sg[,1],cons_init_sg[,2],type='l',xlab='SG from initial
CA',ylab='T/W',
xlim = c(1,2))
~Cruise v
Sensi_CRUISE_V_v<-function(cons,v=1:40,func= c('CA_TO_DISTANCE',
'CA_CRUISE_V',
'CA_TURN',
'CA_CLIMB')){
#system.time({
crit<-foreach(i=v,.combine = rbind) %dopar% {
require(rAviExp)
cons$CRUISE_V$v=i
cons$CRUISE_V<-CompleteCA(cons$CRUISE_V)
Optim(create(cons,func =func))
}
#})
crit<-cbind(v,crit)
crit
}

system.time(cons_init_v<-Sensi_CRUISE_V_v(cons_init$Raw,v=1:40))

## user system elapsed


## 0.04 0.00 0.03

head(cons_init_v)

## v Min W_S_optim.W_S
## result.1 1 0.7454713 5
## result.2 2 0.7454713 5
## result.3 3 0.7454713 5
## result.4 4 0.7454713 5
## result.5 5 0.7454713 5
## result.6 6 0.7454713 5

plot(cons_init_v[,1],cons_init_v[,2],type='l',xlab='Cruise v for
initial CA',
ylab='T/W required')
plot(cons_init_v[,1],cons_init_v[,2],type='l',xlab='Cruise v for
initial CA',
ylab='T/W required',xlim=c(15,20),ylim=c(0.6,1))
Constraint adjustments
#trail 1
cons_t1<-cons_init$Raw
cons_t1$TO_DISTANCE$SG=1.6
cons_t1$CRUISE_V$v=18
cons_t1$CRUISE_V<-CompleteCA(cons_t1$CRUISE_V)
cons_t1$W_S<-seq(from=1,to=6,by=.01)
cons_t1=create(cons_t1,func= c('CA_TO_DISTANCE',
'CA_CRUISE_V',
'CA_TURN',
'CA_CLIMB'))
plot(cons_t1)

Optim(cons_t1)

## Min W_S_optim.W_S
## 0.7498356 5.1000000

This set of constraints probably give more balanced performance

3. Coarse Conceptual drawing and stability constraints


First to reduce risk and speed up the design process we use the conventional layout
with trapezoid planer form of wings and stabilizers, and symmetrical fuselage with
square-shaped cross-sections. Since we have portability restrictions the horizontal
lever arms should not exceed 70% of the longest side of the available capacitance.
They shall be set to maximum to reduce the area required for stabilizers.
These conditions will result in a very compact layout. The main wing can be
disassembled and the joint of which with the fuselage is the opening where tuning
and maintenance take place. The joint is designed with slot and nylon screws.
Concept 1
Concept 2
4 carbon rods will be fixed on the bottom (1 on each side of fuselage, 1 at each wing
tip) for rough landing. Carbon rods can enhance the overall strength as well.
The wing is to be made out of folded foam boards with ribs supporting from inside.

4. Coarse Weight Analysis


We can use the simplified coarse weight analysis for electric planes to solve for
other parameters of the plane. In this part the payload details are used.
The empirical assumptions include:
Main Wing lift usage fraction: total lift divided by lift on the main wing. For a
conventional aircraft if the horizontal tail gives negative lift force then it may have
better stability but less efficiency. The lift generated by the body can also be taken
into account at this stage.
Power plant efficiency (mew): The fraction of mechanical energy transferred from
electrical energy. Typically for an electric power plant with brushless motor this
value could be quite high. Power plant thrust to weight ratio (including the
propeller, electric motor and Electric Speed Controller): Battery energy density:
Capacity to mass ratio of the battery. Instead of manually selecting the battery,
during weight analysis
#Weight Analysis
payload_init=list(m=.25,mFrac=.25,
P_draw=10)
class(payload_init)='Payload'

weight_coarse_init=list(range=1e4,
PAYLOAD=payload_init)#m
class(weight_coarse_init)='Weight_coarse'

weight_coarse_init<-(weight_coarse_init %takein% cons_t1)

weight_init<-create(weight_coarse_init)
weight_init

## $m_gross
## [1] 1
##
## $FG_gross
## [1] 9.803
##
## $FT_cruise
## [1] 7.350638
##
## $Power_T
## [1] 132.3115
##
## $Time
## [1] 555.5556
##
## $Energy
## [1] 79061.94
##
## attr(,"class")
## [1] "Weight_coarseOut"

Note that in this model not only weight is analysed but also the force and power
needed. From the power and force needed it can estimate the type, size and weight
of the power plant and capacity and weight of the battery.

5. Air foil and Power plant selection


The cost and complexity of the system should be considered in this section.

6. Wing design and positioning


During Weight Analysis the area needed for the wing is calculated. Taper ratio and
aspect ratio is fixed at this stage. So the planar form of the main wing can be solved.
This simplified algorithm does this by assuming that the aerodynamic focus on
every wing ribs are lined up so that carbon rods can be put there to enhance
strength.
Then to position the wing we get several options. Let us start with the easiest one.
Remember that the box has restrictions on the size of the tails (as tails cannot be
disassembled from the fuselage). There is a maximum height of the vertical tail and
maximum span of the horizontal tail. Also we assume maximum lever length is used.
It is estimated to be 70% of the length of the box. From a desired Vh and Vv (Volume
coefficient) and a known Mean Aerodynamic Chord of the main wing it is possible to
know the area of the vertical and horizontal tail required. Still we can use the AR
and taper ratio to calculate the dimensions but they should not exceed the
portability limit.
From Vv we can estimate the neutral point. When the CG is positioned at that point
the partial derivative of moment coefficient with respect to angle of attack is 0. We
can use either the static margin or non-dimensionized stability coefficient to find an
ideal position of CG. If there is any possibility of the change in mass of load, it should
be positioned there for convenience.
Batt<-list(EnergyDensity=135,
S=3,
P=1,
V_cell=3.8,
C=25,
Usage=.5)

size_Battery_coarse<-function(E,
ita,
V,
EnergyDensity=486000#[W*s/kg]
){
Ee<-E/ita
Capacity<-Ee/V
m<-Ee/EnergyDensity

re<-
list(E=E,Ee=Ee,V=V,ita=ita,EnergyDensity=EnergyDensity,Capacity=Capacit
y,
m=m)
class(re)='Battery'
re
#q=Da
#C=q*V
#E = V*I*t
}
batt_init<-size_Battery_coarse(E = weight_init$Energy,
ita=.4,
V=3.7*3)

plane_init<-size_concept_simple(S = as.numeric(weight_init$m_gross)/
(as.numeric(Optim(cons_init))[2]),
l=.7,
xWM = .2)

## B.P is missing from call, Extracting from wing


## B.P is missing from call, Extracting from wing
## B.P is missing from call, Extracting from wing
## B.P is missing from call, Extracting from wing

fuselage_init = list(Length = 1.05,


r =c(.05,.075,.075,.02,.01,0),
x =c(0,.2,.4,.9,1,1.05)
)
class(fuselage_init) ='fuse'

plane_init$fuselage = fuselage_init
class(plane_init) ='conventionalConcept'
str(plane_init)

## List of 4
## $ WM :List of 9
## ..$ Span : num 1.26
## ..$ Sweep: num 1.79
## ..$ CordR: num 0.198
## ..$ CordT: num 0.119
## ..$ Type : num 0
## ..$ Xf_C : num 0.25
## ..$ x : num 0.2
## ..$ z : num 0
## ..$ y : num 0
## ..- attr(*, "class")= chr "wing"
## $ WV :List of 9
## ..$ Span : num 0.147
## ..$ Sweep: num 4.76
## ..$ CordR: num 0.0491
## ..$ CordT: num 0.0491
## ..$ Type : num 1
## ..$ Xf_C : num 0.25
## ..$ x : num 0.958
## ..$ z : num 0
## ..$ y : num 0
## ..- attr(*, "class")= chr "wing"
## $ WH :List of 9
## ..$ Span : num 0.288
## ..$ Sweep: num 0
## ..$ CordR: num 0.048
## ..$ CordT: num 0.048
## ..$ Type : num 0
## ..$ Xf_C : num 0.25
## ..$ x : num 0.965
## ..$ z : num 0
## ..$ y : num 0
## ..- attr(*, "class")= chr "wing"
## $ fuselage:List of 3
## ..$ Length: num 1.05
## ..$ r : num [1:6] 0.05 0.075 0.075 0.02 0.01 0
## ..$ x : num [1:6] 0 0.2 0.4 0.9 1 1.05
## ..- attr(*, "class")= chr "fuse"
## - attr(*, "class")= chr "conventionalConcept"

plotxy(plane_init)

## Warning in rbind(front, frontT, rearT, rear): number of columns of


result
## is not a multiple of vector length (arg 2)

## Warning in rbind(front, frontT, rearT, rear): number of columns of


result
## is not a multiple of vector length (arg 2)

## Warning in rbind(front, frontT, rearT, rear): number of columns of


result
## is not a multiple of vector length (arg 2)

## B.P is missing from call, Extracting from wing


## B.P is missing from call, Extracting from wing
## B.P is missing from call, Extracting from wing
## B.P is missing from call, Extracting from wing
7. Overall adjustment and analysis[needed update]
Balance the unloaded plane with position of the power plant so that the length is
decided. The concept should be ready for the fined design.
You can run analysis for a design with settled parameters.

Further Developments [need update]

Access Help
Package Help and Online Supports
Help documentations
Use ? and help() to access documentations with R
?takein
help(takein)

Package Temporary Website


Go to (https://aviexptemp.weebly.com/) for further informations.
The ' feature ' blog on (https://aviexptemp.weebly.com/features) provides tutorials,
documents for new features and is mainly used as a blog to post news.
The ' versions & platforms ' (https://aviexptemp.weebly.com/get-your-
copyversions--platforms.html) is where you can get the package for R and also other
languages.

References and External Support

Appendix 1 Project Logbook: Hao Li rAviationExploratory Project


development
Problem investigations
Nowadays airplane models and drones has been more popular than any time in the
past, there are numerous competitions, exhibitions where a range of aircrafts are
applied to different tasks.
There are different communities online where people share their experiences
building the airframes, tuning them and also a range of design softwares that could
be used for airplane design. It was not long before I learned to make 3d models and
do structural simulations with Autodesk Fusion and Autodesk Flow– arguably these
are not specifically for aviation. In an old computer I had OpenVSP (an open source
plane design software by NASA). There are also a range of lift and drag calculators
for airfoils, for example, NASA has some aerospace calculators on the education
website.
To summarize the existing tools can be classified:
CAD,CAM,CAE softwares for design, manufacture,and engineering: These are usually
commercial softwares that help the customer to make product when they already
know the specifications (e.g. dimensions) of the product, that is, before the input,
the user already know how long the plane is, what the aspect ratio is, which power
plant to select. These software may help analyse the strength and aerodynamic
performance when the draft of the plane is drawn and could hopefully tell the user
how the design is, which might be useful for evaluations, but the user do not expect
the software to suggest what the initial plan is or how it should be modified. Also
since most of these softwares (not including FreeCAD) are commercial and non-
programmable; thus not open source. So it is difficult to modify the functions.
Worse, sometimes they cannot even be called from outside the software and
import/exporting files is crucial. The software that I had used are : Autodesk
Fusion(robust and intuitive, unfortunately not suitable for initial design), Autodesk
Flow (a very user-friendly virtual wind tunnel program), Google Sketchup (For 3d
drawings) and FreeCAD(base on python). Conceptual design codes: If we search
something like ‘aircraft design' on github some code might appear, however, they
are limited to their specific planes and the scientific computing code is not always
elegant–they are unlikely to be reused. The codes are indeed for conceptual designs
and work for some models but there are lots of equations that are repeatedly coded
for a new design even if the plane is similar, which is not a sustainable way to build a
platform for more complex or more general packages. However often they are
licensed under MIT, GPLV2 or other open source licences so that I can learn from
their structures and compare them. For package developments and computing in
scientific computing languages, the codes are usually backed up with published
papers and books which created great convenient for research. Flight simulators:
There are flight simulators built specially for model planes, which I had been using
for years to sharpen skills. Some simulators have large user communities so the
swap files are numerous (sim.de for Aerofly Deluxe 1.9 and Knife Edge swap pages
for RealFlight 7). Some are completely open source,Flight Gear being the most
successful of which, has lots of volunteers all over the world. Because it is open
source it can be called from other softwares to test flight control systems and
aircraft handling and maneuverability. But again, Flight simulators does few
suggestions during the initial design process. It is possible to modify the planes
within some simulators but it does not tell the users which parameter should be
changed directly. It could only be done, if without calculations, with lots of empirical
knowledges which could be imprecise and time-consuming. Gadgets: There are
some gadgets that handle some physical laws, empirical formula, sizing criterias but
with a plane, there is lots of parameters and multiple models to be applied. If we
keep using these as separate GUIs it is no much different from a calculator. Even if
the program is reusable the tedious process of manually inputting data (and
sometimes there are multiple entries for each one value, making the problem
multidimensional) is undoable. The use of equations should be encouraged, but not
in this way.
%Screenshot running a virtual tunnel in Autodesk Flow
Wolfram Alpha Widgets - Airfoil lift calculator

Editing a plane in RealFlight 7.5 simulator


Most of the tools mentioned above does evaluation but not solving for concept from
requirement, and have limited outputs, some of the calculation codes that does both
is not functional programmed (not programmable) so not flexible for customizing
mathematical models.
Existing solutions:
The massive use of mathematical models for computing for complexed system has
already been developed. For example, there are specific workflows for certain types
of plane design(workflow for military aircraft design, general aviation airplane
design, solar powered UAV design, mission-specific aircraft design etc# sources will
be listed in the reference).
These highly complexed models are usually developed by specialists and only teams
of highly trained people are able to operate the design. If some new concept is to be
developed, either solved or evaluated, it is not realistic for the builder himself to
come up with models and code them. Mathematical modelling, even with computers
could take a lot of time but if the code from some models can be reused it could save
a lot of time.

Initial Brief
I am to build an package that aim to help modelling process of aircraft design, in
which the manipulation of mathematical models are put to priority.
Potential Users:
Myself (the program must first solve the existing problems and must be helpful to
my designs. This is the first step to check its fitness for purpose).
Aeromodellers and UAV users/builders/ enthusiasts. (on blogs: RCforms , 5iRC,
some groups on facebook)
Airplane model/UAV developers/designers (individuals/ companies)
Studios
Schools/Colleges/Universities/Moocs

Features:
It must have a structualized architecture, and the functions should be easy and
intuitive to use. It must significantly minimize the code being used to call functions
as well. It must be possible for the user to choose to use or not to use certain type of
mathematical model for certain type of plane so as to enable different workflows,
leaving some namespaces for further developments. The functions must BE NAMED
PROPERLY. Problem: Definition of the problem
Airplane design is a problem that has lots of variables involved. To solve
multivariable problems we need computerized processes for mathematical
modelling, which could be predictive or suggestive.
####1.design Since it is for aircraft design, it is crucial to find a definition of
‘design'.The one in General Aviation Airplane Design by Snorri Gudmundsson could
possibly clarify the problem. To summarize the authors view, design as a verb
describes the process of realizing some preceded value. This is suggesting the 2
fundamental parts of the software to have something to do with requirements (the
described preceded value) and concept(s). The author also stressed about the
importance of meeting the requirement instead of just showing off innovations in a
ted talk.
The perils of unconventional aircraft design: Snorri Gudmundsson at TEDx Embry
Riddle (https://www.youtube.com/watch?v=dUCFVXqondU)
Also what is important is that I took DVC(Design Visual Communication) and though
I had not designed model planes in class, the idea of the structure shown in the
diagram is greatly affected by the workflow used in some assessments and the
modernism view of form and functionality. ####2 . Mathematical modeling The
inspiration came from the ‘five-step-method' of mathematical modelling described
in the famous Mathematical Modeling (4th Edition) by Mark M. Meerschaert, by
working through which book preparing for a math modeling competition I realized
the importance of being systematical, not only for solving applied math problems
but also for coding–especially coding to solve math problems. It values the
‘robustness' and ‘usefulness' of the model instead of saying it is true or not. And
more than that, The suggestions that the model gives are also important. Even if
some models are not capable of solving the real situations they do suggest some
important facts(for example the simulation of some dynamic models, which
sometimes relate to chao theory). There is a website made by the author to share
codes being used to some the example questions. (#)
Diagram of the five step method, from
(https://sites.oxy.edu/ron/math/396/08/weeks/week5.pdf)
Another reference would be Time Series Analysis–Predict And Control (2th edition)
by(#) The models aid for better precisions of prediction with less complexity. The
book also classifies the assumptions that the models are based on: some are
empirical, or deterministic (that the physics within which is fully understood, not
saying it is absolutely true in philosophy), but most models have assumptions
somewhere in between. This property enables us to classify the models but also give
more difficulty considering safety. If a simple equation is to be used as assumption
in some cases, some other equations with a better accuracy should be applied when
necessary but the code should not be rewritten. This forces the package to involve a
lot of functional programming and more than 1 layers are required.
Mathematical modelling may not be compulsory for a number of designs but is very
necessary for aircraft design. By solving the models or using some existing
evaluation parameters the calculation process help the designers to plan the
direction of idea explorations, evaluate the outcome and make better decisions at
lower risks.

3. Aircraft design software developing


COMMUNICATION IN AIRCRAFT DESIGN: CAN WE ESTABLISH A COMMON
LANGUAGE? from ICAS 2012 described a way the tools can be integrated (arguably
existing programs glued with python). This program is intended for design teams/
groups, within which designers are specially trained. Also the components are not
for personal computers as servers are needed for large scale of computation.
However, the establishment of a standardised data structure could be useful, upon
which the functions could be used to manipulate models. Other sources include how
to make CFD and FEM which take lots of time for computation but could give a
better prediction if properly used.
The important message from this paper is that communication within a highly
complexed problem is crucial. For multidimensional problems, there are a number
of parameters, theories, models involved. To manipulate lots of different models for
the same questions there must be a structualized way of managing variables.

4. package
‘Packages are extensions of a language' and can also be seen as a set of functions
wrapped in an environment for certain use. Packages can call other packages by
function calls so they could focus on one certain subject.
What is missing from most commencial program is that scripting is underestimated.
Because there is no certain workflow to design a plane for all missions, recording
every step and every assumptions made is crucial to the workflow. It will be
beneficial for correcting mistakes, rewriting for different functionalities. Most of the
conceptual design codes on GitHub is not reusable because it only work for a fixed
way of crunching the puzzle, but if some models, as optional components of the
solving process, can be written as functions, they can be called and reused. In this
way, although the designer is actually customizing the algorithm, the time taken to
develop such solving script can be shortened. Also, considering most functions are
named after verbs, the code would be shorter and easy to understand.

Research
Possible techniques:
Functional programming: Symbolic calculations: Computational
geometry(considered unnecessary): Pipelines: Linear algebra: Reactive
page(considered not appropriate):
The choice of programming language:
Fortran:-formula translation, F77, F95, F03 standards: fast (for loops) suitable for
large scale computation, but hard to develop and debug. (the ergonomic calculator I
did last year was using fortran and most work was put in to format the text instead
of managing models) (Lots of ‘goto's.).
Python(with math,numpy, scipy, sageMath): Suitable for gluing tools together Lots
of packages to look for, most of which are open source. Has Notebooks and
markdown formats.
Matlab/Octave: matrix laboratory. Highly integrated and have very intuitive linear
algebra functions. Lots of examples codes for math modelling in matlab. It also has
the simulink environment but mainly for electrical engineering.
S/R: Highly integrated scientific computing language, initially intended for statistics
at first but also suitable for managing data. Lots of packages from CRAN. Has
Notebooks and markdown formats.
Maxima: an open source symbolic calculation language.
Julia: Fast (loops and functions), need compilation, but compliation for packages are
rather slow.
I decided to make the prototype in R.

Planning:
There are mainly 2 things to consider within the program: data structure and
functions. The theoretical equations/ relations should be written as functions and
the development is not affected by other parts of the structure.
The conflicting part of the plan is that to before writing the wrapper functions, a
clear outline should be put up for all the functions to manipulate data in one agreed
way within the package, but this is not possible since we do not know what
structure to put parameter in before the function of the models are working.
Research on what type of data structure should be carried while mastering new
mathematical models. The first version of the package should only contain the
elemental parts and some basic models as example. This may not be practical for its
application at first but could be beneficial to the structure.

Concept design
Concept predesign

1.Previous attempts
The coding of the first concept started a long time ago, even before the plan I was
trying to code some functions in sciLab. The next step I was trying was to conject the
functions to a fixed workflow, but this was soon proved to be impractical. By the
time this initial draft was coded I did not know about multivariable questions and
my math skills was limited.
Another version of the tools was using Excel to construct a calculation table, still, it
does not solve the problem of consistency of variables and cannot do reverse
solving.
previous attempts to write base functions in R

some calculation tables (this is the new version as I cannot find the original copy, The
tables are mainly used for prototyping)
Copy of the General Sizing sheet from bluecraft company, which also offer courses for
mission specific aircraft design on youtube

2. Modelling and package development background


I started learning mathematical modeling in 2017 and started working through the
book with R and maxima. I developed package MFVN that could handle some 2d and
3d functions, spin matrices and automatically read non-existing values within a data
frame of discrete data, by either connecting the 2 adjacent data points and solve the
intercept of the line segment with the vertical line from a known independent value
or fitting the data with polynomials.
In March 2nd 2018 I started maintaining for Ryacas, the r interface for Yacas (yet
another computer arithmetic system) which is an open-source package on CRAN (R
Official package sharing platform). I contacted one of the main author G
Grothendieck (also the author of the ‘zoo' package for time series analysis) through
email and got inspired by the idea of using ‘sym' object for variables while
computing. Still CAS is not the main function of the package.
R has its base packages containing some visualization functions which are faster and
simpler than that in most of the other packages and their functions are considered
adequate for this package I am doing. A range of functions for data manipulations
(tidying, subsetting,faceting,arranging,summarizing) are introduced in another book
I found Data Mining with R by Louis Torgo. Lots of functions that are prebuilt in R
are to be used to minimize dependencies on other packages, and they are
introduced in this book. The author also has his own package called DMwR.
Although intended for data mining, this book was mainly regarded as a general
introduction for a range of packages. The most commonly used plotting packages in
R are ggplot2 (by Hadley Wickham), lattice,and car. Lattice and car are suitable for
making multiple plots in the panel by faceting, while ggplot2 features the idea
presented in Grammar of Graphics (I haven't read that book). Ggplot2 make plots by
using ‘g' objects that has attributes of aesthetic (called by aes() function, the data
information), facet, and ‘geom' for layers. The ggplot belongs to the group of tools
called ‘tidyverse'. I have used these for statistic paper so as to get rid of the rusty
inzight which has not been updated for years.
For 3d plots the scatterplot3d is used instead of the more powerful rgl because rgl
always require windows platform and is not on CRAN anymore since it is not
maintained one way of installing it is to use the devtools to grab it from GitHub but
since r has been updated to 3.3.x it does not work well either. This is an important
reminder that no matter how powerful or popular the package is it might not be
long-lasting. Similar problems also appears in Ryacas as the xml package it depends
on is too old and create false alerts, warnings.
Therefore my package should not depend heavily on the non-official packages. They
could be called from functions as add-on features but not fundamental part of the
project, besides, the base R could be already powerful if properly used.

3. The very basic models to be included:


The geometrical properties should be included and the geometric properties should
be stored (with minimum parameters possible for a layout because they can be
extended or extracted easily and does no harm to the fidelity of the model since the
relations of geometric form are deterministic).
From the geometric properties some aerodynamic properties could be solved or
corrected. It could also be used to fill in the empirical equations for aircraft
handling. Although not all parameters needed for handling is provided at this stage,
it could solve for the relationship between other factors with a constraint of
handling and performance, vice versa.
Since it is for planes, some aerodynamic models (usually empirical) should be
included and provide easy ways for customizations, that is to achieve a reasonable
prediction with least effort when using (the models could be complex but the usage
must be intuitive and efficient).
From the power plants data and the aerodynamic properties the performance can
be calculated. Another crucial part is the use of the constraint diagram to solve for
the restrictions of the concept to achieve certain performance.
All of these components can be called into sub-workflows and even the entire
concept could be optimized (e.g. the easiest way is to loop for a range and get their
performance).
Some models and physical ideas were introduced in my physics internal paper this
year. And in terms of design, the models can be summarized as shown in the
following diagram.
Brainstorm

initial ideas that did not make to the development stage.


‘Feed' models with inputs and tell them where to find them
Within a model
The relationship between parameters within a model could be very complicated,
and the boundary between different models are not clear. This is especially obvious
when we are doing designing, because getting an existing design finding its
performance at certain stage is easy (at least relatively), but solving for an intended
design is hard. The difference can be explained by the simple example below:
In physics we say that strength and weight of an object is related to material and
structure. But material has no direct link to structure. But TO ACHIEVE A DESIRED
STRENGTH, some relationship between material selection and structure may be
solved, therefore for a design to have certain strength and certain weight, different
structures may be designed for different materials (but they have similar weight and
strength as targets).
There are a lot more variables within the range of considerations of the plane and
obviously more links between them, however there are some general workflows.
We can select the models to be applied when we get the input for it. For example, if
gradient of linear model of Cy is given, Cy can be calculated from alpha and vice
versa, but not with missing values.
A certain workflow with some initial guesses might be used to fill in the gaps at first,
and when generating the table of Cl, Cd(lift and drag coefficients ) with respect to
alpha there are default values of AR (wing aspect ratio), after the real AR is decided
the concept list may be taken to use the new AR to check the consistency of the
variables. Same operations can be done to constraint analysis and other initial sizing
models.
As I was coding for the workflow I found that the same equation might be used at
different situations, and if the numerical functions could only be employed with one
set of inputs it cannot be used in different models at the same time and also the
problem of naming would be serious. So the first attempt was to keep the functions
in the simplest form and let the wrappers take them.
But also there might be complete different models for the same relationship
(because of different assumptions, different accuracy and sensitivity to some
parameters). The most biased one is probably the generation of Cl,Cd at alpha table.
The simplest model uses thin airfoil theory which suggest that the Cl is directly
proportional to alpha and the gradient is 2*Pi rad^-1(for convenience all are
corrected to degrees in the package). And the induced drag is estimated by aspect
ratio (set to 8 as default) and e (Oswald span efficiency factor). Neglect frictional
drag. This would be okay for some small trainer airplanes or profile planes which do
not require high efficiency (because it is impossible to solve for the max k and it has
low fidelity). It would be easy to use for initial sizing but not analysis. But it is using
the same ‘wrapper' to generate alpha table.This means only one wrapper for alpha
table is needed and functions should be taken as inputs. Not only can a wrapper
function call the bottom functions but also it is enabled to ‘take in' different bottom
functions as one call. The user could even define their own functions, and by using
only alpha as the only required variable, put their own functions to the predefined
wrappers to make it work (so that also it does not even have to be consistent).
To summarize the following diagram is made. None of the functions are
fundamental so that they can usually be changed.
Also certain naming rules are defined: Otherwise the functions and data structures
will have same names.
The stability model is the first one being built. The first prototype has a lot of
preload functions, then it ‘sources' the code and do not load them in to .Global Env.
Within a script the user define the geometric properties of the wing and from
another file, main calculation was done by getting the global parameters and
applying these functions. Such design was soon proved to be impractical as the user
have to remember the correct corresponding name for each parameter, and the
suggestion is clear–numerical functions itself is not enough, there should be some
wrappers that call the more detailed relationship (‘assumption').
The functions provide crucial transitions between datas and this was how it was
supposed to work.

Between models and structures


Class
The most critical part of the objective programming is to decide what is an object.
The data should have a proper complexity. I have decided to use the objective lists
to specify the object. R has S3 and S4 types of functions, S3 is extensible but S4 is
not. Arguably S4 type could be safer as it prevents addition of new term, but since
the objects is not frozen yet S3 is more practical and the errors can usually be
spotted when listing the structure.

Noun Usage
As mentioned above, verbs are used to name the functions. Nouns are used to name
the classes. It corresponds to the way we deal with mathematical models. Nouns, or
classes, states what type does a model belongs to, where as verbs, or functions, do
corresponding things to the specific type or class of the model, in this way it can be
more intuitive.
Evaluation

the screenshot of the package manual of the prerelease version


The green colored ones are properly named and is unlikely to change in future
developments. The yellow parts are functional but inconvenient to use. The
calculation codes are minimized within some models but the connections between
them are poorly developed.
Generally the first version is still a box of gadgets written as functions, which is not
much better than working with existing softwares. Worse, not having a interface
kept it away from a lot of potential users. The models are slightly integrated as
separated customizable models but are insufficient for it to greatly simplify the
workflow. The connections are unintuitive to those who have not read books about
aircraft design .This is likely because not all aeromodellers know the design that
well.
It could only make the design process faster if the reader read the manual which is a
long one. The main data structure, and a few basic models are described in detail in
the manual.

Further developments
The advantages of using S3 is obvious and it is now being used to replace large
chunks of original structure. Due to the rush of the usage the first version was built
before I learned about this idea. The new version was likely to be called
rObjectiveAviationExploratory and meanwhile some advantages are already seen in
the latest prototype model. It is helping building more connections and easier
connections between the models. Besides, since the matrix like objects are not
classified they could be called from the concept list so that the concept itself does
not have to contain the foil data.

New models are coded and the original models are modified for more general
definitions.

Planning: developing with case studies


(July/2018)
Examples of calculations, for a real project instead of a case study with made up
number , should be done. A number of plane designs can be found in books or on
websites which are to be analysed. Also this project has some use for some ongoing
projects, e.g. the FPV by Z H Su now has no other substitutions for balancing CG.
I started the development of a new F3P design last year and the initial dimensions
are adjusted from Phoenix 5.5 simulator. The plane was then drawn on paper with
the data and when scanned the plan was cut to stencils. Because of the lack of
proper equipments in NZ this was hauled but now the algorithms are to be tested on
it.
A Chinese brand producing aerobatic RC aircraft named UltraFlight is designing a
new version of 3D plane and it was agreed that I can participate in calculation for a
new aerobatic model design.
Generally the program is most powerful when doing conventional layout design
because there are plenty of existing models. Some difficulties occurs during the
design of the canard wing and lift body, therefore some specific functions are
written for these objects.

A lite prototype in Excel


The XLSAviationExploratory is made with Excel to provide a limited range of
functions for Aviation Exploratory users who have no experience using scientific
computing language. It is prototypical and would only be used as calculation tables.
Making this worksheet let me see the possible outcome of the program earlier but
did not help much for the mathematical modelling itself.

Screenshots of XLSAviationExploratory

Development with Case Studies


(August-September 2018)
To develop the design tool the developer should have some real design experience
but without this tool getting the works done for a real plane is rather difficult. The
functions in the package is adjusted simultaneously the case studies run. First to
benefit the design processes the models in the prerelease version was not enough. I
added several new functions with documentations.
Evaluation of the existing planes (not prioritised as we also have other evaluation
tools) A number of plans are found from book simple airplane models
(Jianyihangkongmoxing) and the profili2 website. I chose a number of them to check
the evaluation tools. My previous scratch of designs (some never built) will be
tested in the program. In the future I will take some measurement from my planes
to check the program. Development for new models (prioritized) 3 projects are
most likely to be done in the near future: (Unnamed) a new F3P ultralite indoor
aerobatic plane for myself to enter future competitions: This work will start by
comparing the kinetic, stability, and control performance of existing products and
find a proper target function and do sensitivity analysis after that. Because the F3P
planes nowadays are very developed and the adjustment will not be too
unconventional. (Unnamed) a mission specific UAV for aerial photography: This
plane got its initial requirement from the slide from ‘Birds iView' project by Felix
Backhouse. The concept was solved within a week, with its geometric sketched and
is ready for simulation with higher fidelity. Zhenghan's Jet: a twin-EDF powered FPV
plane: The program is expected to do minor calculations for aerodynamic center and
from there workout proper CG. It has repeated the constraint analysis process
although this stage was already done before the program came out.

Promotion
Holding an aeromodelling meeting in our high school
On 4th September 2018, I held the Model Aviators' Meeting in Burnside High School
with the help from Mr Creighton, Mr Watson (from physics department) and Mr
Knight and was approved by our dean Ms Higginson. This meeting featured
presentations of 3 projects including this one, Zhenghan's project and Felix's
project. There were more than 10 other students. After the presentation we
demonstrated the use of a number of software tools including Autodesk Fusion (a
CAD-CAE-CAM software environment), Autodesk Flow (a flow simulation tool) and
R (with my package). We also discussed some future possibilities considering our
different backgrounds.
Poster and invitation of the meeting.
Appendix 2 List of Free Softwares for Aircraft Design
List of free software tool for UAV and model airplane design

Nam Explan
No e Use Type Website ations
1 Xflr Analy execut http:// Downl
5 sis able www.xflr oad
and 5.com/ the
Evalu xflr5.htm softwa
ation re and
tool some
examp
le files
to play
with
2 Ope Integ execut http:// Downl
nVS rated able openvsp. oad
P tools org/ the
softwa
re and
some
examp
le files
to play
with
3 Evalu web https: Click the green
vjmer ation UI // button to
kl/Air Gadge App github download the
craft- t .com/ zip and extract
Desig jmerkl and run it
ner /
Aircra
ft-
Desig
ner
4 CG Evalu Online https://
calcul ation Fluid www.scaleaer
ator Gadge Page o.com/
t CG_Calculator.
htm
5 BluCr Prede Excel
aft sign Form
calcul tool
ation
table
6 XLSAv Excel
iExp Form
Prede
sign
tool
7 Flight Flight executable
Gear Simul
ator
8 FMS execut https://
Flight able www.modelsimulator.c
Simul om/
ator
9 SimSc Simul cloud https://
ale ation based www.simscale.
com/ Register
and create
project and
upload the files
to use the CFD
and FEM
10 Profili Integr execut http://
2 ated able www.profili2.c
tools om/eng/
default.asp
Access a list of
tools with free
trails and a
free web based
plan and airfoil
database
11 Airfoil Evalu Online http://
Tools ation datab www.airfoiltoo
Gadge ase ls.com/
t
12 UIUC Datab Online http://m-
Airfoil ase datab selig.ae.illinois.
Coord ase edu/ads/
inates coord_databas
Datab e.html
ase
13 Xfoil Evalu comm http://
ation and web.mit.edu/
Gadge line drela/Public/
t App web/xfoil/
14 rAviE Integr R package
xp ated
tools
15 eCalc Evalu Online https://
ation Fluid www.ecalc.ch/
Gadge Page cgcalc.php
t

Appendix 3 List of Wolfram Widgets for aviation


N UR
o Name L Developer
1 NACA htt davidlvann
Airfoi p:/
l /
ww
w.
wol
fra
ma
lph
a.c
om
/
wi
dge
ts/
vie
w.j
sp?
id=
d9
a5c
f48
7c8
31
7d
ba
2cc
8fa
fcf
8a
18
a8
2 Airfoi htt davidlvann
l Lift p:/
Calcu /
lator ww
w.
wol
fra
ma
lph
a.c
om
/
wi
dge
ts/
vie
w.j
sp?
id=
75
ef1
bba
53
e4
12
ef9
7e
4a
24
1fa
58
8d
dd
3 Drag htt davidlvann
Force p:/
Calcu /
lator ww
w.
wol
fra
ma
lph
a.c
om
/
wi
dge
ts/
vie
w.j
sp?
id=
c11
19
9cd
caa
77
bc8
d3
2a
14
45
b1
6b
ed
0d
4 Airsp htt davidlvann
eed p:/
at /
Thrus ww
t/Dra w.
g wol
fra
ma
lph
a.c
om
/
wi
dge
ts/
vie
w.j
sp?
id=
6d
87
53
16
07
dc0
de
16
16
09
af8
5f5
cfd
60
5 Take htt davidlvann
off p:/
Spee /
d ww
Calcu w.
lator wol
fra
ma
lph
a.c
om
/
wi
dge
ts/
vie
w.j
sp?
id=
c4d
97c
26
35
3c4
ff4
c65
39
82
1b
67f
7cc
7
6 Jet htt davidlvann
Rang p:/
e vs /
Thrus ww
t w.
Calcu wol
lator fra
ma
lph
a.c
om
/
wi
dge
ts/
vie
w.j
sp?
id=
e6
4d
d5
76
52
e7
08
27
b4
61
32f
3f6
3b
60
48
7 Dista htt davidlvann
nce p:/
to /
Reac ww
h w.
Veloc wol
ity fra
ma
lph
a.c
om
/
wi
dge
ts/
vie
w.j
sp?
id=
f30
54
79
b5
5d
82
50
57
9d
eab
87
ac1
ac1
03

For list of tools for general problems


(http://www.wolframalpha.com/widgets/gallery/?category=physics)
(http://www.wolframalpha.com/widgets/gallery/?category=engineering)

Appendix 5

Full Bibliography:
Mathematic Modelling
Mark M., M. (2012). Mathematical Modeling (Fourth Edition). 4th ed. Academic
Press.

Physics
En.wikipedia.org. (2018). Density of air. [online] Available at:
https://en.wikipedia.org/wiki/Density_of_air [Accessed 14 Mar. 2018].
Khan Academy. (2018). What is Bernoulli’s equation?. [online] Available at: https://
www.khanacademy.org/science/physics/fluids/fluid-dynamics/a/what-is-
bernoullis-equation [Accessed 14 Mar. 2018].
Zhou xin. (2014). Gong cheng liu ti li xue. Bei jing: Zhong guo dian li chu ban she.
Design
Tan chu xiong. (2007). Mo xing fei ji tiao zheng yuan li. Bei jing: Hang kong gong ye
chu ban she, pp.18-92.
Zhang wei., Su jian min. and Zhang ya feng. (2007). Mo xing fei ji de yi xing yu ji yi.
Bei jing: Hang kong gong ye chu ban she, pp.20-59.
Raymer, D. (2012). Aircraft design. Reston, VA: American Institute of Aeronautics
and Astronautics.
Gudmundsson, Snorri. General Aviation Aircraft Design : Applied Methods and
Procedures, Elsevier Science & Technology, 2013. ProQuest Ebook Central.
Lab 8 Notes ' Basic Aircraft Design Rules.' (2018). [ebook] mitopencourseware.
Available at: https://ocw.mit.edu/courses/aeronautics-and-astronautics/16-01-
unified-engineering-i-ii-iii-iv-fall-2005-spring-2006/systems-labs-06/spl8.pdf
[Accessed 2 Mar. 2018].

Programming
Nagel, B., Bohnke, D., Gollnick, V., Schmollgruber, P., Alonso, J. J., Rizzi, A., & La Rocca,
G. (2012). Communication in Aircraft Design: Can we establish a Common
Language? In I. Grant (Ed.), Proceedings of the 28th congress of the International
Council of the Aeronautical Sciences, paper ICAS2012-1.9.1 (pp. 1-13). Brisbane:
ICAS.
Matloff, N. (2013). The art of R programming. San Francisco: No Starch Press.
End of book

Das könnte Ihnen auch gefallen