Nose Cone Shape Optimisation

This page illustrates how pysagas can be used for design optimisation. The example is applied to a nose cone at an operating point of Mach 6, 0 degrees angle-of-attack.

Literature Review

A review of literature reveals that the optimal shape for an axisymmetric nose at supersonic speeds which minimises drag for a given length and base diameter is given by the exponential function:

\[ y = R(x/L)^n \]

The exponent \(n\) depends weakly on the Mach number: for Mach 2-4, \(n\) should be approximately \(0.68\); for Mach >4, \(n \approx 0.69\)[1]. When \(n=1\), a sharp cone is produced.

The difference in drag for these exponnents is very slim, so previous experimental studies have made approximations with \(n=0.75\)[2],[3].

Nose cones

Geometry Definition

The nose geometry is defined by a Bezier curve with two internal control points, as shown in the figure below. These control points can move in both the horizontal and vertical direction. Therefore, there are 4 design parameters in this problem.

Geometry Definition

Optimisation Process

The optimisation process follows the schematic in the figure below. Starting with a nominal set of geometric parameters, HyperVehicle is used to generate STL files. These files are passed into an aerodynamic modelling package, in order to obtain the nominal flow solution for that geometry. HyperVehicle is also used to generate the geometry sensitivities, \(dv/dp\), which are used in conjunction with the flow solution to generate the design parameter sensitivities via pysagas. Finally, these sensitivities can be passed into an optimisation algorithm to update the geometric parameters, and perform another update iteration. The loop will continue until some convergence tolerance is satisfied, at which point the optimal geometry will have been reached. This loop has been implemented in pysagas.optimisation.cartd.ShapeOpt.

Shape optimisation workflow

In this example, the objective function is the drag coefficient of the nose cone, neglecting the base drag (as per the prior art).

\[ J = C_D \]

Geometry Generation and Differentiation

As mentioned above, the geometry and geometry-parameter sensitivities, \(dv/dp\), will be generated using the parametric geometry generation package, HyperVehicle. This package allows a user to parametrically define a vehicle and output STL files for aerodynamic modelling.

Aerodynamic Modelling

Given the STL files from the geometry generation module, the geometry will be simulated in the inviscid CFD solver, Cart3D. The figure below shows an example mesh produced by Cart3D.

Cart3D Mesh

The corresponding flow solution for this mesh is visualised in the figure below.

Cart3D flow visulatisation

Results

With the modules described above in place, the following output will be displayed when running ShapeOpt.

ShapeOpt printout

After 7 iterations, the following convergence plot can be created. Also shown on this plot is the ‘theoretical convergence’, which refers to the drag coefficient of the nose defined by the exponential function above, when simulated in the same manner used in the optimisation.

Objective function convergence

Finally, the nose geometry produced by pysagas can be compared to the theoretical optimal nose geometry, defined by the exponential function above. This comparison is shown in the figure below.

Comparison of nose shapes