• No results found

5.5 Discussion

6.1.2 MDF Framework

The MDF framework for this problem is setup so that all expensive computations and numerical challenges are in the constraints. The optimization problem is

min

x∈R26,tLD∈R,tw∈R tw/tLD (6.2)

s.t. tw− w(x) = 0 tLD− LD(x) = 0

max{σyield, σvonM ises(x)} − σyield = 0 h(x) = 0,

where the objective is to minimize a target weight, tw, divided by a target lift-to-drag ratio, tLD, subject to constraints that the structural weight is equal to the target weight, the lift-to-drag ratio is equal to the target lift-lift-to-drag ratio, the maximum stress in the structure is less than the yield stress, and some simple geometric constraints, represented as h(x) = 0, are satisfied. Each constraint evaluation requires an iterative solve between Panair and Nastran to find the lift-to-drag ratio of the deformed wing and the maximum von Mises stress. The constraint evaluation only returns a value approximately 81% of the time due to (1) Nastran failures, (2) Panair failures, and (3) aerostructural solver convergence failures.

The aerostructural solver is a Gauss-Seidel iteration with a successive over-relaxation factor of 0.9. Moreover, the output of Panair only has six decimal places and the input file for Nastran has five decimal places so the value of the constraints and objectives are highly non-smooth. For example, Figure 6-4 shows finite-difference estimates of the directional

derivative, [f (x0+ δxp/kpk) − f (x0)] /δx, for various step sizes, δx, in random directions, p, from four random initial designs, x0. We observe that the directional derivative for

Figure 6-4: Projected gradient in random direction for four random initial wing designs for weight divided by the lift-to-drag ratio. Missing points on the plot are caused by evaluation failures. The flat portion of the projected gradient are when changes in the lift-to-drag ratio are below the precision of Panair and only the weight of the wing is changing.

weight divided by the lift-to-drag ratio varies by over four orders of magnitude for typical finite-difference step sizes. The derivative estimate becomes flat when the change in the lift-to-drag ratio is below the precision of Panair and only the weight, computed analytically, is changing. The poor behavior of the constraints mean that a gradient-based optimization method cannot be used. Therefore, we will solve this aerostructural optimization problem using Algorithm 5.2, which enables gradient-free optimization. However, due to the high failure rate of the evaluations, we need some small changes to the method of building fully linear models, Algorithm 2.2, and to the filter and trust region updates in Algorithm 5.2.

We first discuss the modifications required to build fully linear models in the presence of evaluation failures, and then we discuss the modifications to the update steps in Algorithm 5.2.

Fully Linear Model Construction with Failures

The algorithm used to create fully linear models in the previous chapters, Algorithm 2.2, assumed that the function being approximated returns a result every time. The flexibility in only using a fully linear calibration scheme enables a calibrated surrogate model to be created even if the function occasionally fails to return a result, because the calibration points can be relocated. The only modifications required to Algorithm 2.2 are in step 2f where the function is evaluated at locations in the nullspace of the span of vectors in Y. This step needs to accommodate potential evaluation failures. When we encounter an evaluation failure we select a basis for the nullspace of the span of vectors in Y. For each basis vector we then draw a random number, t ∈ [0.25, 0.75] and evaluate the function at the points,

xk+ (−1)l−1tdl/2e−1kp,ˆ l = 1, 2, 3, . . . (6.3)

where ˆp are the unit directions in the nullspace, until a successful evaluation is found. This operation starts at the edge of the trust region and progressively searches closer to the current iterate (which must have been successful) on the right and left sides until another successful calibration point is found. For example, if t = 12, the sequence (−1)l−1tdl/2e−1 evaluates to 1, −1,12, −12,14, . . ..

Trust Region Updating with Failures

Three challenges with Algorithm 5.2 are apparent in the presence of evaluation failures, (1) we need the filter acceptance criteria to verify that xk+ sk returned a valid result, (2) it is significantly cheaper to attempt evaluating the function at a few new points as opposed to simply rejecting sk and constructing a new fully linear model, and (3) the assumption that the constraint Jacobian has full rank, is no longer valid and robustness should be addressed.

To mitigate challenges (1) and (2) we assume the step sk is an improving direction and evaluate the high-fidelity functions at locations along sk up to a set number of times. Our algorithm draws a random number t ∈ [0.5, 1) and evaluates F (xk+tl−1sk) and H(xk+tl−1sk) for l = 1, 2, 3, . . . until either lmax is reached or a successful evaluation is found. However, if

the functions are evaluated lmax times without success, then sk is rejected.

To address the faulty assumption that the constraint Jacobian has full rank we limit the number of iterates contained on the filter. Without this assumption it is possible for Algorithm 5.2 to terminate at a point that has nonzero constraint violation. To ensure the constraint violation is generally decreasing, we impose a decreasing upper limit for the constraint violation. We define ˆkmax to be a user-set parameter for the maximum number of points on the filter, and establish an upper limit by treating the ˆkmaxth point on the filter as the initial iterate, i.e., by removing all iterates on the filter with constraint violation higher than the ˆkmaxth point and adding (−∞, kH(xˆkmax)k) to the filter. (The presence of (−∞, kH(xkˆmax)k) on the filter prevents the filter from accepting any iterates with constraint violation larger than kH(xˆkmax)k.) We only truncate the filter if the constraint violation at xk is less than the constraint violation at xˆkmax, otherwise the filter acceptance criteria will block desirable future iterates. This decreasing upper bound for the constraint violation helps to drive Algorithm 5.2 towards feasibility even when the surrogate Jacobian does not have full rank throughout the design space. The parameter values used in Algorithm 5.2 are presented in Table 5.2. We also use lmax= 2 and ˆkmax = 3.