Skip to content
Closed
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
67 commits
Select commit Hold shift + click to select a range
9e5959c
adding the new tutorials for the release
planes Apr 12, 2016
e8d64eb
Added files via upload
tarikorra Apr 17, 2016
a0b79a1
Added files via upload
tarikorra Apr 17, 2016
68b50ae
Update 2015-06-17-Payload_Range_Diagram.md
tarikorra Apr 17, 2016
dd07ed1
reverting changes (master instead of develeop!)
tarikorra Apr 17, 2016
2a78f89
updating formatting
tarikorra Apr 17, 2016
a306ad4
Merge branch 'master' of https://github.com/suavecode/suavecode.githu…
planes Apr 18, 2016
d287296
updates to FAQ, and some solar changes
planes Apr 18, 2016
f890b53
solar uave opt
planes Apr 18, 2016
20abe3f
Merge branch 'develop' of https://github.com/suavecode/suavecode.gith…
jmvegh Apr 18, 2016
54639bc
guides
planes Apr 18, 2016
9a908ff
fixing merge
planes Apr 18, 2016
8d3c001
adding logos
planes Apr 18, 2016
e0ab15d
fixing typo
planes Apr 18, 2016
546889e
fixing sauve
planes Apr 18, 2016
9aea9ef
cleanup of guides
planes Apr 18, 2016
72bc70f
more cleanup of tutorials
planes Apr 18, 2016
e41a8b5
fixed path on optimization images
jmvegh Apr 19, 2016
66840e6
updates to faq
planes Apr 19, 2016
97fa1aa
updated email
planes Apr 19, 2016
e12469a
updating release name
planes Apr 19, 2016
9aede7b
fixing address for email
planes Apr 19, 2016
84e6c04
some minor changes to the release email
jmvegh Apr 19, 2016
3d44b10
another couple of small email changes
jmvegh Apr 19, 2016
a14a484
adding link for anil paper
planes Apr 20, 2016
cdf0389
removing avl
planes Apr 27, 2016
23e94d4
fixing name of file for payload range
planes May 2, 2016
4f67019
Merge pull request #1 from suavecode/develop
planes May 2, 2016
7cbfa1e
changing email
planes May 2, 2016
519718c
Concorde tutorial updates
May 3, 2016
d300795
Merge branch 'master' of https://github.com/suavecode/suavecode.githu…
May 3, 2016
f1426fb
Removed concorde line numbers
May 3, 2016
03d62b5
adding mission solver to faq
planes May 5, 2016
e544d29
editing faq
planes May 5, 2016
5645e33
Update 2018-06-15-FAQ.md
timdmacdo May 5, 2016
7bfb5ad
missing section 2 and 4 of B737
planes May 31, 2016
c2fd440
Attempting to remove forum from guides
timdmacdo Jun 10, 2016
7fda4a2
Testing buttons
timdmacdo Jun 10, 2016
67adfac
Test 2
timdmacdo Jun 10, 2016
b841183
Test 3
timdmacdo Jun 10, 2016
7ebcfcc
Fixing buttons
timdmacdo Jun 10, 2016
140f1c5
Revert "Fixing buttons"
timdmacdo Jun 10, 2016
d499a55
Revert "Test 3"
timdmacdo Jun 10, 2016
008f7b9
Revert "Test 2"
timdmacdo Jun 10, 2016
98c4fd5
Revert "Testing buttons"
timdmacdo Jun 10, 2016
99dcf9a
Test 4
timdmacdo Jun 13, 2016
8d84d24
Test 5
timdmacdo Jun 13, 2016
d060d9f
Test 6
timdmacdo Jun 13, 2016
ba96378
new SUAVE email
planes Jan 9, 2017
c3b8caa
.gitignore is now working
planes Jan 10, 2017
f0ffcac
merge annoyingness
planes Jan 10, 2017
7db6146
Merge branch 'master' of https://github.com/suavecode/suavecode.githu…
planes Jan 10, 2017
98ae0b0
Concorde update
timdmacdo Jan 10, 2017
4b5bc88
reordering concorde
planes Jan 10, 2017
8c69932
updated B737
planes Jan 10, 2017
472f975
BWB tutorial
planes Jan 11, 2017
fde5f44
bwb change intro
planes Jan 11, 2017
6bee98a
moving BWB down list;
planes Jan 11, 2017
ff394ae
update release name
planes Jan 11, 2017
0fd98e4
fixing license
planes Jan 11, 2017
f79926a
updating develop tasks
planes Jan 11, 2017
ec60f7c
putting in scikitlearn
planes Jan 11, 2017
f793d96
created new branch
jmvegh Jan 26, 2017
fd70d05
added a bunch of stuff; not done yet
jmvegh Jan 27, 2017
8311f65
more bigly additions to the new tutorial
jmvegh Jan 27, 2017
f0592c2
added Li-Air optimization
jmvegh Jan 31, 2017
0cb64b8
some small additions
jmvegh Jan 31, 2017
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
more cleanup of tutorials
  • Loading branch information
planes committed Apr 18, 2016
commit 72bc70f1a05c142e64fbda7cbf0554adbeb7fa3c
4 changes: 2 additions & 2 deletions _posts/2015-06-14-Boeing_737-800.md
Original file line number Diff line number Diff line change
Expand Up @@ -133,7 +133,7 @@ turbofan.nacelle_diameter = 2.05
turbofan.working_fluid = SUAVE.Attributes.Gases.Air()
</code></pre>

Next the components of the turbofan are initialized and added to the engine as shown in the energy networks section. The turbofan is composed of an inlet diffuser(nozzle), low and high pressure compressors, a combustor, a fan, a low and high pressure turbine and exit nozzles for the core and the fan.
Next the components of the turbofan are initialized and added to the engine as shown in the energy networks section. The turbofan is composed of an inlet diffuser (nozzle), low and high pressure compressors, a combustor, a fan, a low and high pressure turbine and exit nozzles for the core and the fan.

Finally the network is added to the aircraft as shown below.

Expand All @@ -158,7 +158,7 @@ The data structure associated with the Boeing 737-800 can be visualized [here](/
This visualization shows the hierarchy of data in a SUAVE vehicle. Some of the values are defaulted, for example costs. This is because we are not performing cost analysis on the Boeing 737-800. Additionally, this snapshot of the data structure was taken prior to analysis. Therefore weights have not been calculated and are not part of the data. During the mission analysis component weights will be determined and weights will be populated.

#### configs_setup()
The aircraft geometry created is converted into configurations that can be used to make simple modifications to the geometric paramaters while not modifying the aircraft geometry completely. An example of the use of this feature is when high-lift devices need to be deployed during landing and takeoff. Thus a landing and takeoff configuration can be added as shown below and then during say the flaps and slats settings can be set differently for each of the configurtaions.
The aircraft geometry created is converted into configurations that can be used to make simple modifications to the geometric parameters while not modifying the aircraft geometry completely. An example of the use of this feature is when high-lift devices need to be deployed during landing and takeoff. Thus a landing and takeoff configuration can be added as shown below and then during say the flaps and slats settings can be set differently for each of the configurations.

<pre><code class="python"># ------------------------------------------------------------------
# Cruise Configuration
Expand Down
11 changes: 1 addition & 10 deletions _posts/2015-06-15-Lithium_Air_Regional_Jet_Sizing.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,16 +17,9 @@ permalink: /guides/lithium_air_regional_jet_analysis.html
## Introduction
The purpose of this tutorial is to highlight some of SUAVE's more exotic propulsion system capabilities. This tutorial assumes that the user has completed the Boeing 737-800 tutorial, and has some familiarity with SUAVE's propulsion system data structures.

<<<<<<< HEAD:_posts/2015-06-15-Lithium_Air_Regional_Jet_Analysis.md
## Baseline Case
Open the file called "tut_lithium_air_jet.py" in
=======
##Baseline Case
Open the file called "tut_lithium_air_jet_sizing.py" in a text editor or IDE.


Run the program (cd to the folder, then type python tut_lithium_air_jet_sizing.py).

Look over the plots, to gain a feel for the various idiosyncrasies of the design. Note the significant rise in aircraft mass, as a result of the lithium-air batteries.

![li air mass](../images/li_air_mass.png)
Expand All @@ -37,9 +30,7 @@ The purpose of this tutorial is to highlight some of SUAVE's more exotic propuls
battery.specific_power =.67*Units.kW/Units.kg
</code></pre>

run the script (python tut_lithium_air_jet.py).


Run the script (python tut_lithium_air_jet.py).

Now try changing the motor efficiency from .95 to .9 and running the script (line 513).

Expand Down
2 changes: 1 addition & 1 deletion _posts/2015-06-15-Turbofan_Network.md
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ The basic components used to model the turbofan are described below.

#### Ram

The 'Ram' component is used to convert the freestream quantities that are passed into the Turbofan network into stagnation quantities. As the turbofan network as based on a 1D gasdynamic analysis, most of the energy transfer across the different components are modelled as changes in the stagnation quantities. Thus the Ram component acts as a preprocessor converting the input 'Conditions' into quantities required by the network.
The 'Ram' component is used to convert the freestream quantities that are passed into the Turbofan network into stagnation quantities. As the turbofan network is based on a 1D gasdynamic analysis, most of the energy transfer across the different components are modelled as changes in the stagnation quantities. Thus the Ram component acts as a preprocessor converting the input 'Conditions' into quantities required by the network.

<pre><code class="python"># ------------------------------------------------------------------
# Component 1 - Ram
Expand Down
2 changes: 1 addition & 1 deletion _posts/2015-06-17-Payload_Range_Diagram.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ permalink: /guides/payload_range_diagram.html
---

### Embraer E-190 Payload Range Diagram Tutorial
1) Locate the tutorial script folder, SUAVE/scripts/tutorial. If necessary cd to this directory.
1) Locate the tutorial script folder. If necessary cd to this directory.

2) Open the test_payload_range.py script in your favorite editor or IDE.

Expand Down
6 changes: 3 additions & 3 deletions _posts/2015-07-15-Concorde.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ However, the supersonic aerodynamics can still handle the subsonic portions of t
Some of the calculations are changed to account for different properties that are not automatically captured in the model.

* Vortex lift is set to true. This causes the vortex lift module to add a Cl increment to the aircraft.
* High mach is set to true. This changes the way that high subsonic compressibility drag is calculated and brings it more in line with Concorde behavior.
* High Mach is set to true. This changes the way that high subsonic compressibility drag is calculated and brings it more in line with Concorde behavior.

```
wing.vortex_lift = True
Expand Down Expand Up @@ -65,8 +65,8 @@ nozzle = SUAVE.Components.Energy.Converters.Expansion_Nozzle()

### Mission Segments:

The mission typically flown by Concorde calls for mission segments that are not utilized in the Boeing 737 case. These are mach number dependent, and require different inputs from the segments previously given.
The new mission segments are linear mach constant rate (climb and descent). Both require a starting and ending mach number, which will vary linearly in time over the descent. For example check the third climb segment (line 894):
The mission typically flown by Concorde calls for mission segments that are not utilized in the Boeing 737 case. These are Mach number dependent, and require different inputs from the segments previously given.
The new mission segments are linear Mach constant rate (climb and descent). Both require a starting and ending Mach number, which will vary linearly in time over the descent. For example check the third climb segment (line 894):


segment = Segments.Climb.Linear_Mach_Constant_Rate(base_segment)
Expand Down
22 changes: 8 additions & 14 deletions _posts/2016-02-112-Regional_Jet_Optimization.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ Some important files for the optimization problem can be seen below
#### Optimize.py:
Defines the optimization framework of the problem, wherein one minimizes an assigned objective, subject to certain constraints, by altering some design variables.

In order to ensure that the subfunctions can communicate with eachother, as well as that SUAVE can communicate with the external optimizer, a special data object called the "nexus" is used. The nexus object contains all of the vehicles, missions, as well as results, altering them at each optimizer iteration, depending on the input parameters defined in Optimize.py.
In order to ensure that the subfunctions can communicate with eachother, as well as that SUAVE can communicate with the external optimizer, a special data object called the "Nexus" is used. The nexus object contains all of the vehicles, missions, as well as results, altering them at each optimizer iteration, depending on the input parameters defined in Optimize.py.

In this particular setup, there are two design variables: wing area and cruise altitude. The objective is fuel burn, while there is only one constraint: fuel margin.. The default inputs are defined in the following lines.

Expand Down Expand Up @@ -52,7 +52,7 @@ Note that in this case, only a single constraint is used; Multiple constraints m



This file also defines the "aliasing," i.e. how the design variables, constraints, and objective "map" to the variables used in Procedure.py (which is runs the problem). The aliases for this problem are defined in the lines below. Note that the first entry refers to the tag defined in either problem.inputs, problem.objective, or problem.constraints.
This file also defines the "aliasing," i.e. how the design variables, constraints, and objective "map" to the variables used in Procedure.py (which is runs the problem). The aliases for this problem are defined in the lines below. Note that the first entry refers to the tag defined in either problem.inputs, problem.objective, or problem.constraints.

<pre><code class="python">
problem.aliases = [
Expand All @@ -65,18 +65,14 @@ Note that in this case, only a single constraint is used; Multiple constraints m

</code></pre>

Note that, sometimes, a single input can map to multiple outputs, such as the "wing_area" design variable; in this case, use a list for the outputs, as seen above.




Note that, sometimes, a single input can map to multiple outputs, such as the "wing_area" design variable; in this case, use a list for the outputs, as seen above. The use of a wild card "*", can also allow values to map to multiple outputs. Values to be outputted cannot contain wild cards as that would be ambiguous to an optimizer.

#### Procedure.py:
Links everything together, defining the steps you would use to size and analyze the aircraft at each optimizer iteration.

This file contains a number of subfunctions to alter the vehicle and mission. The function setup() instantiates the procedure, defining the functions that are called at each step of the optimizer in their order of execution.

1. simple_sizing defines the geometry of the aircraft based on the input parameters (in this case, wing area and cruise altitude).
1. simple_sizing() defines the geometry of the aircraft based on the input parameters (in this case, wing area and cruise altitude).

2. weights() determines the weight breakdown of the aircraft

Expand All @@ -90,35 +86,33 @@ Each step of the procedure takes as the nexus object as an input, and returns th
#### Vehicles.py:
Initializes whatever vehicles are used in the optimization problem. This includes two subfunctions: base_setup(), where the vehicle structure is itself defined, including the fuselage, wing, vertical and horizontal tail, as well as the propulsion system.

configs_setup() takes in the vehicle that was defined in base_setup() and defines other configurations (such as takeoff and landing, which include different flap settings). This may be used to define other parameters, such as changing the sweep angle of a variable-sweep-wing at higher Mach Numbers, or the use of afterburners.
configs_setup() takes in the vehicle that was defined in base_setup() and defines other configurations (such as takeoff and landing, which include different flap settings). This may be used to define other parameters, such as changing the sweep angle of a variable-sweep-wing at higher Mach Numbers, or the use of afterburners.

#### Missions.py:
Initializes the missions that are run at each iteration. In this case, only a single mission is run.

#### Analyses.py:
Defines the set of features that are used in this particular problem (e.g. weights correlations, aerodynamics correlations, etc.).



#### Plot_Mission.py:
Plots the mission outputs using matplotlib.

### Running the Problem:
1. Locate the tutorial script folder "regional_jet_optimization." If necessary cd to this directory.
2. Open the Optimize.py script in a text editor or IDE

2. Open the Optimize.py script in a text editor or IDE

3. Run it with the default set of inputs; uncomment out the following line in Optimize.py;

<pre><code class="python">
output = problem.objective()
</code></pre>

open up a terminal, and type "python Optimize.py." You should see a set of output plots.
Open up a terminal, and type "python Optimize.py." You should see a set of output plots.


### Running a Sweep of the Inputs
Now try running a 2D sweep of the problem to observe the shape of the design space: recomment "output = problem.objective" then uncomment the following.
Now try running a 2D sweep of the problem to observe the shape of the design space: re-comment "output = problem.objective" then uncomment the following.

<pre><code class="python">
variable_sweep(problem)
Expand Down
2 changes: 1 addition & 1 deletion _posts/2016-05-11-solar_uav_optimization_tutorial.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ permalink: /guides/solar_uav_optimization.html

The purpose of this tutorial is to illustrate a different type of problem. We assume you have gone through the first optimization tutorial: Regional Jet Optimization. This tutorial will illustrate a little more complex setup that modifies a mission parameter.

Your objective is simple; get an airplane to fly from here to there. In fact you can pose that as an optimization problem, with some constraints that govern how it works. There is no requirement to minimize this or maximize that. Of course you could try to minimize something, but you just want something that works for now. Later iterations can do fancier things.
Your objective is simple: get a small UAV to fly from San Francisco to San Diego. In fact you can pose that as an optimization problem, with some constraints that govern how it works. There is no requirement to minimize this or maximize that. Of course you could try to minimize something, but you just want something that works for now. Later iterations can do fancier things.

Next we will go into detail about some of the required files. *Analyses.py* and *Plot_mission.py* are straightforward from prior tutorials. So we will not go into those in detail, except to say that we are using a UAV weight model in *Analyses.py*.

Expand Down