You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
<p>This tutorial gives an overview of changes made to the setup to evaluate a supersonic mission.</p>
75
+
<p>This tutorial is designed to provide the information needed to modify a SUAVE aerodynamic analysis and create new ones. Many of the items discussed here also apply to other analysis types within SUAVE. For this tutorial, the Concorde is used to demonstrate switching the aerodynamic analysis to one that can handle supersonic conditions.</p>
<p>The basic aerodynamic analysis used in SUAVE is called Fidelity_Zero. It is based on a mix of low fidelity physical and empirical methods, similar to what you might find in a typical conceptual design textbook. This is what is used for the 737 in the previous tutorial, and is specified in the analysis settings:</p>
<p>In the SUAVE code structure, the analysis is broken into two sections. One is what you see above, which is the analysis class. The other is the individual methods that are used in the analysis class, which are stored in separate Methods folders. The purpose of splitting them is to make it easier for the different analysis classes to share methods. We will start with an explanation of the individual bits of the analysis class in the file trunk/Analyses/Aerodynamics/Fidelity_Zero.py.</p>
75
91
76
-
<p>To allow aerodynamic calculations in supersonic flight, we use the zero fidelity supersonic module. This is quite easy to swap with the subsonic zero fidelity model. This model and the zero fidelity subsonic module are in the same directory, so they can be switched by changing a single line in the analysis section:</p>
92
+
<p>The first section is the imports. These are mix of standard imports and a few specific items needed for the analysis. They are described individually as they appear in the body of the class. The first function in the fidelity zero class is __defaults__. This contains the primary functionality as it sets the default settings and the methods that will be used to compute aerodynamics.</p>
<p>self.settings is inherited from the base Markup class and therefore is not redefined. Instead, these values and several more are added. Items in this group control how the aerodynamic methods operate. Variables that are set to None typically mean that a method specific default will be used instead. For example, span efficiency controls whether or not a blanket span efficiency is used to override the drag output for the vortex lattice method.</p>
103
+
104
+
<p>The next group builds the evaluation procedure. It is constructed as a set of processes which include a number of functions from the methods group. The Process class is essentially a container for all the functions added to it, and will evaluate those functions in the order they are added. Another process can also be added instead of a function, as is initially done with compute.drag.parasite. There is also a special type of process class called Process_Geometry, which will iterate through the vehicle geometry and apply the submethod to all components in the specified group. Altogether, this code block creates a process for lift and drag and sets up the analysis to run the relevant methods in the order shown (however they are not run as we step through this code block). self.process.compute is a process itself as well.</p>
<li>Vortex lift is set to true. This causes the vortex lift module to add a CL increment to the aircraft.</li>
93
-
<li>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.</li>
<p>The other function in this class is the initialize function. This allows a surrogate of the lift model to be built. A surrogate is often used here in order to avoid the time required to evaluate the vortex lattice every time the aerodynamic analysis is called.</p>
<p>The next question is how to change this analysis class to allow for calculations in supersonic conditions. For this, we switch over to the Supersonic_Zero class and examine the differences. Generally, changes that are required are updates to the settings and changes in which methods are used. The primary settings additions that are needed for this analysis type are those that control the transonic drag rise and wave drag scaling.</p>
129
+
<divclass="highlight_code"><divclass="highlight_code"><preclass="highlight_code"><codeclass="language-python"># this multiplier is used to determine the volume wave drag at the peak Mach number
130
+
# by multiplying the volume wave drag at the end drag rise Mach number
<p>Note also that Concorde does not have a horizontal tail, so this is not included in the vehicle setup.</p>
143
+
<p>For the methods, a subset must be swapped. Two groups of methods are imported this time. The first is designated as Common, which is the same group as was used in Fidelity_Zero. The second is designated as Methods, and contains methods specific to the supersonic case. These new methods replace their subsonic-only variants. Once all of these methods have been replaced, the new analysis class is ready.</p>
103
144
104
-
<h3id="turbojet-module">Turbojet Module:</h3>
145
+
<p>In order for the new analysis class and any new methods created to function properly, they must also be added to the relevant __init__.py files that link together SUAVE as a library. This requires adding a line to trunk/Analyses/Aerodynamics/__init__.py:</p>
105
146
106
-
<p>Since Concorde has a diverging nozzle that allows for supersonic outflow, a modified turbojet is used that can account for this. This turbojet component is again switched out with a single line.</p>
<p>New files must also be created for the supersonic methods folder structure, which can be found as trunk/Methods/Aerodynamics/Supersonic_Zero/__init__.py, trunk/Methods/Aerodynamics/Supersonic_Zero/Lift/__init__.py, and trunk/Methods/Aerodynamics/Supersonic_Zero/Lift/__init__.py.</p>
115
155
116
-
<h3id="mission-segments">Mission Segments:</h3>
156
+
<p>Once all of the files are ready, a couple modifications are needed in the vehicle and analysis setup. These can be seen the tut_concorde.py tutorial file. First, to switch the analysis type used, we replace</p>
117
157
118
-
<p>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 an example, check the third climb segment:</p>
<p>Since Concorde does not have flaps or slats, specific takeoff and landing configurations are not used.</p>
170
+
<p>This turns on the vortex lift correction at low speeds and changes the compressibility equations at high subsonic speeds to better match Concorde-type behavior.</p>
134
171
135
-
<br>
172
+
<p>You can run the tut_concorde.py tutorial file to see the results of these changes. If you have any more questions on how to modify the aerodynamic analyses or any other types of analyses, please let us know on our forum.</p>
0 commit comments