A constraint satisfaction programming approach for computing manufacturable stacking sequences

A constraint satisfaction programming approach for computing manufacturable stacking sequences

Computers and Structures 136 (2014) 56–63 Contents lists available at ScienceDirect Computers and Structures journal homepage: www.elsevier.com/loca...

628KB Sizes 0 Downloads 117 Views

Computers and Structures 136 (2014) 56–63

Contents lists available at ScienceDirect

Computers and Structures journal homepage: www.elsevier.com/locate/compstruc

A constraint satisfaction programming approach for computing manufacturable stacking sequences S. Zein a,⇑, P. Basso b, S. Grihon c a

LMS Samtech, 8 rue des chasseurs ardennais, 4031 Angleur, Belgium Airbus Germany, Kreetslag 10, 21129 Hamburg, Germany c Airbus France, 1 Rond-point Maurice Bellonte, 31700 Blagnac, France b

a r t i c l e

i n f o

Article history: Received 22 October 2013 Accepted 14 January 2014 Available online 18 February 2014 Keywords: Constraint satisfaction programming Backtracking Manufacturable composite structures

a b s t r a c t An algorithm is proposed to generate stacking sequences which comply with the requirements of the composite manufacturers. These rules are the blending and the design rules. The novelty of the proposed algorithm is that it can handle a general blending scheme, where a stacking sequence can be blended with other stacking sequences and it can also be the base of others. This algorithm can have two purposes: generating a manufacturable structure given the results of a preliminary design or defining a design space of a composite structure in a design process. Ó 2014 Elsevier Ltd. All rights reserved.

1. Introduction Composite structures have a growing importance in the aeronautical and automotive domains due to the weight reduction and the strengthening that they can exhibit. A composite structure can have, for example, a set of panels (like in Fig. 1) and each panel can have its own stacking sequence. The fiber orientation in each ply is one of these four conventional values: f45; 0; 45; 90g. The design of the stacking sequences must be such that the responses of the structure to a set of load cases do not violate some safety criterion. Moreover, the stacking sequences must be designed at the computer level such that they meet the requirements of the composite manufacturers. Otherwise, the structure cannot be manufactured. The manufacturing rules are the design and the blending rules. The design rules define the sequence layout. They can be like, for example, having a certain number of plies per orientation, being symmetric, starting with a 45 ply. Many papers have addressed the problem of satisfying these rules. However, these rules have been considered as the constraints of an optimization problem where the objective function is the buckling load. In [1–3], the genetic algorithms are used with the penalty method in order to satisfy these rules. In [4–6], the topology approach is used where the design rules are formulated as a penalty function of four real decision variables per ply. These two approaches, based on the ⇑ Corresponding author. Tel.: +32 492700759. E-mail addresses: [email protected] (S. Zein), [email protected] (P. Basso), [email protected] (S. Grihon). http://dx.doi.org/10.1016/j.compstruc.2014.01.016 0045-7949/Ó 2014 Elsevier Ltd. All rights reserved.

penalty method, have the drawback of being unable to satisfy all the design rules at the same time due to the combinatorial nature of these constraints. In [7], the integer programming approach is used where the design rules are formulated using four binary decision variables per ply. Here, all the design rules are satisfied, but this approach is only applicable to linear objective functions. The blending rule consists in the following. Two adjacent panels must have their stacking sequences such that one is a subset of the other. In [8–11], the stacking sequence guide is used to ensure the blending between panels. The sequence of a panel is a subsequence of the stacking sequence guide. A subsequence of n plies must be the first or the last n plies of the stacking sequence guide. This assumption constitutes the limitation of the method. In [12–15], a shared layer approach is used to ensure the blending. In a first step, the sequences of the panels are optimized without the blending constraint. Then, in a second step, the sequences are rearranged to find a blended structure. This second step is the drawback of the method because it does not take into account the objective function (the buckling) of the initial step. In [16,17], a general definition for the blending is considered without any assumption on the ply drop-offs between the panels. A penalty function, based on the differences (the edit distance) between the sequences of two adjacent panels, is used in the optimization process. This approach showed that is it not efficient when it is coupled with the design rules. In summary, the previous research has addressed the manufacturing rules using the penalty method in an optimization context. It is not an adequate approach given the combinatorial nature of all the rules. This approach makes a trade-off between satisfying the

S. Zein et al. / Computers and Structures 136 (2014) 56–63

Fig. 1. A composite structure which is a part of a fuselage.

57

structure respectively. In order to reduce the weight of the structure, the panels do not have the same number of plies. Some plies are dropped between two adjacent panels following the blending principle. Fig. 2 is a vertical cut of a structure like the one in the example. One can see the stacking sequences of the panels and the ply drop-offs between them. In this example, there are seven stacking sequences (named A–G). The sequence G is the thickest one, it is composed of the plies ð1; 2; 3; 4; 5; 6Þ. The sequence F has the plies ð1; 2; 3; 4; 6Þ. Ply 5 is dropped between these two stacking sequences. The sequence B with plies ð1; 3; 6Þ is blended with two stacking sequences A and C with plies ð1; 3; 4; 6Þ. Plies number 1, 3 and 6 are the same in these three sequences, and the two plies numbered 4 are dropped. 2.2. The design rules

constraints and the objective function. Therefore, it does not guarantee the satisfaction of all the rules. This paper proposes an algorithm which generates stacking sequences which comply with the blending and design rules. It can handle a blending scheme where the stacking sequence can be blended with other stacking sequences and it can also be the base of others. The advantage of this algorithm is its efficiency in satisfying all the design and blending rules, and thus generating a completely manufacturable structure. This algorithm is only dedicated to the generation of one or many stacking sequences satisfying the manufacturing rules. However it does not give compute the number of admissible stacking sequences. The algorithm does not deal with optimization. In [18] the authors have proposed a combinatorial method to optimize a buckling load based on this algorithm but for a special blending scheme (the first one in numerical experiments): one thickness is associated to one stacking sequence. This work is compared with the topology optimization of the paper [6,19]. The general blending scheme considered in this paper is the case of many industrial applications. It also provides a catalog of stacking sequences which meets the requirements of the composite manufacturers. This catalog can be considered as the design space of a composite structure in a design process. Therefore, this paper does not focus on the mechanical response or the finite elements analysis related to a composite structure. It only concerns the combinatorial algorithm generating manufacturable stacking sequences which are the input of finite elements analysis. 2. Definition of the manufacturing rules 2.1. The blending rule The blending rule is the following. Let A and B be two adjacent stacking sequences such that the thickness of A is higher than the thickness of B. If A and B are blended, the plies of B are a subset of the plies of A. To illustrate this, consider the composite structure which is a part of the fuselage of an aircraft in Fig. 1. This structure is composed of a set of panels arranged in a grid layout. In this example, a panel can be adjacent to two, three or four other panels depending if its position is at a corner, on a border or inside the

Fig. 2. Blending rule: a vertical cut of a structure showing the ply drop-offs between the panels.

The design rules consist in assigning an orientation to each ply in the structure such that the following rules are satisfied.  R1: The orientation in each ply must be chosen such that two consecutive plies do not have a gap in the orientation equal to 90 . Thus, ð0; 90Þ and ð45; 45Þ cannot be two consecutive plies.  R2: Maximum four consecutive plies can have the same orientation.  R3: Symmetric sequences.  R4: A fixed number of plies of each orientation is defined in each panel. These numbers of plies are the results of a preliminary optimization with the orientation percentages as design variables (see [20,21,13]).  R5: Uniform distribution of 0 and 90 plies through the sequence: these orientations are not gathered in one part of the sequence. For example the sequence ð0; 0; 0; 0; 45; 90; 45Þ is not admissible because the zeros are grouped together and they are not uniformly distributed over the sequence.  R6: A maximum of four consecutive interleaved plies: a maximum of four consecutive plies can be dropped to obtain a subsequence. For example, the two sequences which have the ply numbers ð1; 2; 3; 4; 5; 6; 7; 8Þ and ð1; 7; 8Þ are not admissible because five consecutive plies are dropped (2–5).  R7: Symmetrical except for odd number of plies in the 45 and 45 directions: a dissymmetry in the center of the laminate is allowed. Asymmetric 45 layers in the center of the laminate are separated at maximum by one layer. It is not possible to have a symmetric sequence with an odd number of plies in 45, thus a dissymmetry is allowed in the middle of the sequence. For example, consider a sequence with ð3; 2; 3; 2Þ plies of ð45; 0; 45; 90Þ. The only possible way to generate a sequence is like this: ð45; 0; 45; 90; 45 j 45; 90; 45; 0; 45Þ. It is a symmetric sequence except in the middle where we have the 45 j 45 dissymmetry. Another allowed dissymmetry in the middle is 45; 0; 45 and 45; 90; 45. Note that if this rule is considered with the symmetry rule and the fixed number of plies per orientation, the number of 0 or 90 must be odd otherwise the symmetry rule is violated. 3. Graph representation of a composite structure The constraint satisfaction programming approach is based on building a constraint graph which represents the stacking sequences of a structure together with the manufacturing rules. Consider the set of stacking sequences to be computed. Each stacking sequence is represented with a node. If two stacking sequences are blended together, their nodes are connected with an edge. The constraint graph can be derived in two cases. The first one is when the stacking sequences need to be computed after the preliminary design of a structure. Fig. 3 shows an example of

58

S. Zein et al. / Computers and Structures 136 (2014) 56–63

Panel 1 Sequence 1 16 plies 4,8,4

Panel 2 Sequence 2

Panel 3 Sequence 2

Panel 4 Sequence 3 8 plies 2,4,2

12 plies 4,4,4

12 plies 4,4,4

1

2

Panel 1 Sequence 1 16 plies 4,8,4

Panel 2 Sequence 2

Panel 3 Sequence 2

Panel 4 Sequence 3 8 plies 2,4,2

12 plies 4,4,4

12 plies 3,6,3

1

2

3

4

3

Fig. 3. Examples of a constraint graph derived from a four panel structure.

two structures which each has four panels. The number of plies of each sequence, the number of plies per orientation and the blending scheme are supposed to be known in advance from the preliminary design. The structure at the left in the figure has panel one adjacent to panels two and three which are adjacent to panel four. Panels two and three have the same sequence. The graph representing the sequences is derived as follows: sequence one (panel one) is blended with sequence two (panels two and three) which is blended with sequence three (panel four). The same reasoning applies to the structure at the right of the figure with four different sequences. The second case is the construction of a database of stacking sequences before performing the design of the structure. This database contains stacking sequences of any thickness and any number of plies per orientation and they are blended together. The purpose of this database is to define a design space to be used by the design process. Fig. 6 shows an example of a database of sequences. The nodes represent stacking sequences with a total number of plies going from 9 to 15 plies and the number of plies per orientation is from 10% to 65% of the total number of plies. In a constraint graph, the design rules are unary constraints. They are applied to each node and they do not involve more than one node. Naming convention. Two nodes connected with an edge correspond to two stacking sequences of different thicknesses. We denote by the parent node the one with the larger thickness and by the child node the one with the smaller thickness. A root node is a node which does not have a parent. In the example at the left of Fig. 3, node 1 is a root node because it is not blended with another thicker sequence, node 2 is the child of node 1 and the parent of node 3.

4. The constraint satisfaction programming approach 4.1. A double loop algorithm Consider the case of a constraint graph only having two connected nodes. The root node has a sequence of N plies and the child node has a sequence of M plies with M < N. The generation of the sequence of the root does not depend on the sequence of any node. It only depends on the design rules. Therefore, the root has N variables which are the orientations of the plies. Each variable can take one of the four orientation values. On the other hand, the child

node has its sequence blended with the one of its parent. The child node has N binary variables and M variables out of N must be equal to one. These binary variables define the ply drop-offs between the parent and the child sequences. The generation of the sequence of a child consists in finding a subsequence of the parent one which complies with the design rules. Finding stacking sequences which comply with the manufacturing rules can be formulated as a constraint satisfaction programming problem. It is a combinatorial approach which enumerates all the possible combinations of the stacking sequences until finding an admissible one. The enumeration algorithm is defined with a double loop. The inner loop seeks to find sequences which comply with the design rules. It is applied to each node individually. The outer loop is the one for the blending rule. It enumerates design-admissible stacking sequences of each the nodes, using the inner loop, to find the blended ones according to the constraint graph. The following section describes the enumeration algorithms of the inner and outer loops. 4.2. The inner loop: satisfaction of the design rules Finding admissible stacking sequences with respect to the design rules is not a trivial task given the combinatorial nature of the rules. Most of the time, such sequences cannot be easily guessed and computer-based algorithms must be used to perform this task. The easiest but not the efficient way to find design-admissible sequences is the so-called brute-force enumeration. It consists in enumerating all possible sequences and checking for each one its admissibility. The main disadvantage of this method is that its computational cost grows exponentially with the number of plies. For example, for N ¼ 16 plies there are 416 ¼ 4294967296 sequences to be checked and for N ¼ 32 plies there are 432 u1:844 1019 sequences! A more sophisticated technique has to be used in order to decrease the number of possibilities to be checked. Enumerating the all possible sequences consists in building an enumeration tree like in Fig. 4. Each level of the tree represents a ply and each node has four children which are the four possible angle values of the next ply. The enumeration tree must have N þ 1 levels. The tree has its root which does not correspond to a ply and the N levels which are the N plies of a sequence. A stacking sequence is a branch of the tree connecting the root to a leaf (the lowest node). One can see that the size of the tree grows

59

S. Zein et al. / Computers and Structures 136 (2014) 56–63

−45

−45

0

0

45

90

−45

0

45

45

90

−45

0

90

45

90

−45

0

45

90

Fig. 4. Bactracking enumeration tree with pruned branches.

exponentially with N and spanning the whole tree becomes quickly unfeasible. The idea of backtracking is to span the entire tree and to check at each node the admissibility of the partial stacking sequence constituted by the branch going from the root to the current node. If this partial sequence violates a constraint, then all the sub tree derived from the current node is eliminated (see Fig. 4). This pruning technique reduces considerably the size of the tree and makes the enumeration efficient. For example in Fig. 4, all the sub-sequences starting with ð45; 45Þ, ð0; 90Þ, ð45; 45Þ and ð90; 0Þ are pruned from the tree because they violate the 90 gap rule. The leaves of the pruned tree are the admissible sequences. A detailed explanation of the backtracking concept can be found in [22–24]. The paragraph below gives a description of the inner loop algorithm with details on its implementation. The algorithm Let S½1 . . . N be the orientation sequence of N plies of a root node. Each element of this sequence is a variable which can take one of four values: f45; 0; 45; 90g. This set of values is called the domain of the variable. Suppose that a partial sequence S½1 . . . k  1 is available. A value h of the domain of S½k is inconsistent with S½1 . . . k  1 if the sequence S½1 . . . k with S½k ¼ h is not admissible with respect to the design rules. By eliminating the inconsistent values from de variable domain, the assignment of a ply orientation is always admissible. For example, consider a sequence of eight plies, with two plies of each orientation. Suppose that the first four orientations have been assigned such that the partial sequence is f45; 0; 45; 0g. The fifth ply orientation has to be assigned. The initial domain of this variable is f45; 0; 45; 90g. The values 45 and 0 have to be removed from the domain of this variable because they violate the rule of the fixed number of plies per orientation. The value 90 has also to be removed because of the 90 gap rule and the previous assignments. This implies that the only possible value for the fifth orientation is 45. If the domain of a variable S½k is empty then a dead end is found. There is no consistent value for S½k with the previous assignments. They must be changed to be able to assign a consistent value to S½k. The backtracking algorithm can take four possible actions: computing the consistent values of a ply k, assigning a value to the ply k, moving forward (k ¼ k þ 1) and moving backward (k ¼ k  1). An iteration of the backtracking procedure is summarized as follows. For ply number k, compute the consistent values of S½k. If there is no dead end, assign a consistent value for S½k and move

forward. If a dead end is found, move backward until finding a not previously assigned consistent value. Assign it and move forward. If k ¼ N þ 1, the algorithm has found a complete admissible stacking sequence. If k ¼ 0, there are no stacking sequence which complies the defined design rules. This backtracking procedure is summarized in Algorithm 1 and it generates the first design-admissible stacking sequence in the alphabetical order f45; 0; 45; 90g. Algorithm 2 generates the next admissible one following the same approach. These two algorithms return 1 if they succeed to generate a sequence and 0 otherwise. Algorithm 1. Generating the first design-admissible stacking sequence of N plies Let k ¼ 1 while True do repeat put the domain of S½k equal to f45; 0; 45; 90g remove from the domain of S½k the inconsistent values with S½1::k  1 if the domain of S½k is empty then exit the loop else remove the first value from the domain of S½k and assign it to S½k k=k+1 end if until k ¼ N þ 1 if k ¼ N þ 1 then return 1 end if repeat if k = 0 then return 0 end if k = k-1 until the domain of S½k is not empty remove the first value from the domain of S½k and assign it to S½k k=k+1 end while

60

S. Zein et al. / Computers and Structures 136 (2014) 56–63

Algorithm 2. Inner loop: generating the next designadmissible stacking sequence of N plies Let k ¼ N þ 1 while True do repeat if k = 0 then return 0 end if k = k-1 until the domain of S½k is not empty put the domain of S½k equal to f45; 0; 45; 90g remove the first value from the domain of S½k and assign it to S½k k=k+1 repeat remove from the domain of S½k the inconsistent values if the domain of S½k is empty then exit the loop else remove the first value from the domain of S½k and assign it to S½k k=k+1 end if until k ¼ N if k = n then return 1 end if end while

Computing the ply drop-offs. The generation of the ply drop-offs which are design-admissible is similar to the above case. If the child node has a parent node with a sequence of N plies, the variables of the child node are N binary variables which define the ply drop-offs. The same backtracking algorithm applies as the preceding one except that the domain of each variable is f0; 1g. Sequence blended with more than one. If a child node has more than one parent, its sequence must be a subsequence of all its parent ones. As a consequence, its sequence must be blended with the Longest Common Subsequence (LCS) of its parent sequences. For example, consider a child node which has two parent nodes with these two sequences f45; 0; 0; 45; 90g and f45; 0; 45; 90; 90g. The sequence of the child node must be blended with these two sequences, thus with their LCS which is f45; 0; 45; 90g. The sequence is computed as if the child node has one virtual parent whose sequence is the LCS. 4.3. The outer loop: satisfaction of the blending rules Consider a constraint graph having r nodes. Each node is associated to a stacking sequence generator which uses the inner loop to generate design-admissible stacking sequences with the Algorithms 1 and 2. The outer loop aims to find blended stacking sequences among the design-admissible sequences of each node. The nodes are indexed from 1 to r in a decreasing order with respect to their number of plies. The outer loop computes iteratively the sequence of each node in this order. This guarantees that each node has all its parent sequences computed before computing its sequence. The outer loop uses a backtracking with a back jump

Fig. 5. Test cases 1 and 2: a constraint graph with eight sequences.

procedure to satisfy the constraint graph. This is explained in the following. A flag is associated to each node of the graph. The first sequence operation is executed on a node if its flag is equal to 1. Otherwise, this operation does not compute the stacking sequence of the node; it keeps its current one. The flag is set to 0 each time this operation succeeds. At the beginning, all the flags of the nodes are set to 1. The sequences of the nodes are computed iteratively from 1 to r. Suppose that at node d, the algorithm finds a dead end. This means that the first sequence operation applied to node d failed to find a stacking sequence, consistent with the previously 1 to d  1 computed stacking sequences. A back jump procedure is executed. The ancestors node set AðdÞ of node d is computed in a decreasing order of their number of plies. The stacking sequences of this set lead to the dead end conflict at node d. The algorithm needs to jump back to these nodes and change their current stacking sequence to solve the dead end conflict. Take the first node in this set, put to 1 the flags of its descendants and execute the next sequence operation. If this operation fails, take the next node in the set AðdÞ. The back jump procedure returns the node i from AðdÞ for which the next sequence operation succeeds. The first sequence operation is performed iteratively starting from the node returned by the back jump. If another dead end if 0 found at node d < d then the back jump operation is executed with 0 0 a set of ancestors Aðd Þ appended with AðdÞ. If d P d, only the 0 ancestors of d is used. The outer loop algorithm is summarized in Algorithm 3. It returns 1 if the algorithm succeeds to solve the constraint graph, otherwise it returns 0.

Table 1 Stacking sequences corresponding to test case 1. Seq. 1

Seq. 2

Seq. 3

Seq. 4

Seq. 5

Seq. 6

Seq. 7

Seq. 8

8; 18; 9

7; 12; 6

5; 12; 6

5; 11; 5

4; 10; 5

4; 9; 4

4; 7; 4

4; 6; 3

45 90 90 90 45 45 0 0 0 0 45 45 45 45 90 45 45 90 45 0 45 90 45 0 0 45 45 45 0 0 0 45 0 45 45

45 90 90 90 45 45 0 0 0 0 45 45 45 45 90 45 45 90 45 0 45 90 45 0 0

45 90 90 90 45 45 0 0 0 0 45 45 45 45 90 45 45 90 45 0 45 90 45

45 90 90 90 45 45 0 0 0 0 45 45 45 45 90 45 45 90 45 0 45

45 90 90 90 45 45 0 0 0 0 45 45 45 45 90 45 45 90 45

45 90 90 90 45 45 0 0 0 0 45 45 45 45 90 45 45

45 90 90 90 45 45 0 0 0 0 45 45 45 45 90

45 90 90 90 45 45 0 0 0 0 45 45 45

61

S. Zein et al. / Computers and Structures 136 (2014) 56–63

Algorithm 3. The outer loop: satisfying the blending rule Let i ¼ 1; A ¼ /; d ¼ 0 and set the flags of all the nodes to 1 while True do repeat Compute the first sequence of node i if the operation failed then exit the loops end if if i = d then clear A and d = 0 end if i=i+1 until i ¼ r if i = r then return 1 end if d=i Append to A the set of ancestors of d for each node i in A do set to 1 the descendants of i compute the next sequence operation of this node if the operation succeeded then exit the loop end if end for end while

Existence of a solution The algorithm is able to generate all the possible laminates. In some cases if there are a lot of rules, and mathematically there is no laminate which complies with all the manufacturing rules. It is not that the algorithm is not able to find them, but it is that the problem has no solution. Some of the rules have to be discarded in order to have a problem with a solution. 5. Numerical experiments Three numerical tests are presented here to show the efficiency of the proposed algorithm. The first one takes the case of a composite structure which has 8 stacking sequences with different number of plies. The constraint graph which shows the blending scheme of the 8 sequences is given in Fig. 5. The number of plies per orientation for each sequence is given in Table 1. The chosen design rules for this example are R1, R2 and R4. The resulting stacking sequences are also in Table 1. The second numerical example takes the same constraint graph in Fig. 5. The number of plies per orientation is given in Table 2. The set of applied design rules are R2–R7. The sequences are also in Table 2. The third case is a more complex one. It considers the set of all the sequences having a total number of plies between 9 and 15 plies. The number of plies per orientation is constrained by a minimum percentage of 10% and a maximum percentage of 65% of the total number of plies. These combinations are in Table 3. The blending scheme between the nodes is in Fig. 6. It is the constraint graph with the maximal possible number of edges. The nodes of this graph are drawn in this figure such that the nodes of the same row have the same total number of plies. The difficulty in this test case is that there is no solution with all these edges. Some edges must be removed from the graph to have a solution. The following strategy was adopted for this purpose. First, the graph of constraints is empty. Then, the nodes are added to the graph iteratively. Each time a node is added, its connecting edges are also added. A solution is computed at each edge insertion. If no solution is found, the most recent edge is removed. In

Table 2 Stacking sequences corresponding to test case 2. Seq. 1

Seq. 2

Seq. 3

Seq. 4

Seq. 5

Seq. 6

Seq. 7

Seq. 8

10; 32; 8

8; 32; 8

8; 32; 6

8; 30; 6

6; 30; 6

6; 28; 6

6; 26; 6

6; 24; 6

45 0 45 45 45 90 45 0 90 45 45 45 45 0 45 90 0 90 45 45 45 0 45 45 45 45 45 45 0 45 45 45 90 0 90 45 0 45 45 45 45 90 0 45 90 45 45 45 0 45

45 45 45 45 90 45 0 90 45 45 45 45 0 45 90 0 90 45 45 45 0 45 45 45 45 45 45 0 45 45 45 90 0 90 45 0 45 45 45 45 90 0 45 90 45 45 45 45

45 45 45 45 90 45 0 45 45 45 45 0 45 90 0 90 45 45 45 0 45 45 45 45 45 45 0 45 45 45 90 0 90 45 0 45 45 45 45 0 45 90 45 45 45 45

45 45 45 45 90 45 0 45 45 45 45 0 45 90 0 90 45 45 45 0 45 45 45 45 0 45 45 45 90 0 90 45 0 45 45 45 45 0 45 90 45 45 45 45

45 45 45 45 90 45 0 45 45 45 45 0 45 90 0 90 45 45 45 45 45 45 45 45 45 45 90 0 90 45 0 45 45 45 45 0 45 90 45 45 45 45

45 45 45 45 90 45 0 45 45 45 45 0 45 90 0 90 45 45 45 45 45 45 45 45 90 0 90 45 0 45 45 45 45 0 45 90 45 45 45 45

45 45 45 45 90 45 0 45 45 45 45 0 45 90 0 90 45 45 45 45 45 45 90 0 90 45 0 45 45 45 45 0 45 90 45 45 45 45

45 45 45 45 90 45 0 45 45 45 45 0 45 90 0 90 45 45 45 45 90 0 90 45 0 45 45 45 45 0 45 90 45 45 45 45

the case of our third example, about 25% of the edges where removed (Fig. 7). The solution is in Table 3. The issue of removing from the graph the less possible edges in order to have the design space the biggest possible is not discussed in this paper. Discussion The three numerical tests show results which completely satisfy the manufacturing rules. The computational times are also efficient. With test cases one and three, the solution are instantly computed (less than one second) and test case two requires about 20 s. Note that the computational time of this test case increases with the number of nodes in constraint graph. The reason for this is the following. Rule R7 imposes ð45 j 45Þ plies in the middle of a sequence. If this rule is applied to a child node, the parents of this node must have these specific orientations for some plies near the middle such that the ply drop-offs can generate R7-admissible child sequences. This rule is propagated to the root node. This node must have a sequence with 45 plies at some specific positions in order to generate R7-admissible sequences in all the child nodes. The algorithm enumerates all the design-admissible sequences of the root node until it finds a sequence with the

62

S. Zein et al. / Computers and Structures 136 (2014) 56–63

Table 3 Stacking sequences corresponding to test case 3. Seq. Id

Plies per 0,45, 90

The sequence

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38

6; 6; 3 5; 8; 2 5; 6; 4 4; 8; 3 4; 6; 5 3; 10; 2 3; 8; 4 3; 6; 6 2; 10; 3 2; 8; 5 6; 6; 2 4; 8; 2 4; 6; 4 2; 10; 2 2; 8; 4 2; 6; 6 4; 6; 3 5; 6; 2 2; 8; 3 2; 6; 5 1; 10; 2 3; 8; 2 1; 8; 4 3; 6; 4 4; 6; 2 2; 8; 2 2; 6; 4 2; 6; 3 1; 8; 2 3; 6; 2 1; 6; 4 4; 4; 2 2; 6; 2 2; 4; 4 2; 4; 3 1; 6; 2 3; 4; 2 1; 4; 4

45; 0; 0; 45; 90; 0  45; 90; 45; 0; 90; 45; 0; 0; 45 45; 0; 0; 45; 90; 45; 45; 0; 45; 45; 90; 45; 0; 0; 45 45; 0; 0; 45; 90; 90; 45; 0; 45; 90; 90; 45; 0; 0; 45 45; 0; 0; 45; 90; 45; 45; 90; 45; 45; 90; 45; 0; 0; 45 45; 0; 0; 45; 90; 90; 45; 90; 45; 90; 90; 45; 0; 0; 45 45; 45; 0; 45; 90; 45; 45; 0; 45; 45; 90; 45; 0  45; 45 45; 0; 45; 90; 90; 45; 45; 0; 45; 45; 90; 90; 45; 0; 45 45; 90; 0; 45; 90; 90; 45; 0; 45; 90; 90; 45; 0; 90; 45 45; 45; 0; 45; 90; 45; 45; 90; 45; 45; 90; 45; 0; 45; 45 45; 45; 90; 90; 45; 45; 0; 90; 0; 45; 45; 90; 90; 45; 45 45; 0; 0; 45; 90; 0; 45; 45; 0; 90; 45; 0; 0; 45 45; 0; 0; 45; 90; 45; 45; 45; 45; 90; 45; 0; 0; 45 45; 0; 0; 45; 90; 90; 45; 45; 90; 90; 45; 0; 0; 45 45; 45; 0; 45; 90; 45; 45; 45; 45; 90; 45; 0; 45; 45 45; 45; 90; 90; 45; 45; 0; 0; 45; 45; 90; 90; 45; 45 45; 90; 0; 45; 90; 90; 45; 45; 90; 90; 45; 0; 90; 45 45; 0; 0; 45; 90; 45; 90; 45; 90; 45; 0; 0; 45 45; 0; 0; 45; 90; 45; 0; 45; 90; 45; 0; 0; 45 45; 0; 45; 90; 45; 45; 90; 45; 45; 90; 45; 0; 45 45; 0; 45; 90; 90; 45; 90; 45; 90; 90; 45; 0; 45 45; 45; 45; 90; 45; 45; 0; 45; 45; 90; 45; 45; 45 45; 0; 45; 90; 45; 45; 0; 45; 45; 90; 45; 0; 45 45; 45; 90; 90; 45; 45; 0; 45; 45; 90; 90; 45; 45 45; 0; 45; 90; 90; 45; 0; 45; 90; 90; 45; 0; 45 45; 0; 0; 45; 90; 45; 45; 9045; 0; 0; 45 45; 0; 45; 90; 45; 45; 45; 45; 90; 45; 0; 45 45; 0; 45; 90; 90; 45; 45; 90; 90; 45; 0; 45 45; 0; 45; 90; 45; 90; 45; 90; 45; 0; 45 45; 45; 90; 45; 45; 0; 45; 45; 90; 45; 45 45; 0; 45; 90; 45; 0; 45; 90; 45; 0; 45 45; 45; 90; 90; 45; 0; 45; 90; 90; 45; 45 45; 0; 0; 45; 90; 90; 45; 0; 0; 45 45; 0; 45; 90; 45; 45; 90; 45; 0; 45 45; 0; 45; 90; 45  45; 90; 45; 0; 45 45; 0; 45; 90; 90; 90; 45; 0; 45 45; 45; 90; 45; 0; 45; 90; 45; 45 45; 0; 45; 90; 0; 90; 45; 0; 45 45; 45; 90; 90; 0; 90; 90; 45; 45

Fig. 7. Test case three: the constraint graph after removing the edges.

6. Conclusion The problem of generating manufacturable stacking sequences was addressed in this paper. A new algorithm was proposed for this task. It is based on a constraint satisfaction approach. Two nested backtracking algorithms were developed. The inner one is to satisfy the design rules which concern the sequence of orientations. The outer one is to satisfy the blending rule between different stacking sequences. This paper showed that this algorithm can handle some complex cases that the existing methods based on genetic algorithms and penalty cannot. Some test cases were presented showing the possible use of these new results in a general structural design process. This research work has been performed in the frame of an AIRBUS contract. The resulting algorithms have been integrated to an automated catalogue creation procedure used by AIRBUS within their structural optimization software PRESTO (see [25]).

References

Fig. 6. Test case three: a constraint graph with all the possible sequences from 9 to 15 plies.

correct 45 plies positions. This explains the expensive computational cost of this test case.

[1] Liu Boyang, Haftka RT, Akgün MA, Todoroki A. Permutation genetic algorithm for stacking sequence design of composite laminates. Comput Methods Appl Mech Eng 2000;186:357–72. [2] Soremekun G, Gürdal Z, Haftka RT, Watson LT. Composite laminate design optimization by genetic algorithm with generalized elitist selection. Comput Struct 2001;79:131–43. [3] Todoroki A, Haftka RT. Stacking sequence optimization by a genetic algorithm with a new recessive gene like repair strategy. Composites Part B 1998;29(3):277–85. [4] Kennedy GJ, Martins JRRA. A laminate parametrization technique for discrete ply angle problems with manufacturing constraints. Struct Multi Optim, in press. [5] Kennedy GJ, Martins JRRA. A comparison of metallic and composite aircraft wings using aerostructural design optimization. In 14th AIAA/ISSMO multidisciplinary analysis and optimization conference, Indianapolis, IN, AIAA-2012-5475; 2012. [6] Bruyneel M, Beghin C, Craveur G, Grihon S, Sosonkina M. Stacking sequence optimization for constant stiffness laminates based on a continuous optimization approach. Struct Multi Optim 2012;46(6):783–94. [7] Haftka RT, Walsh JL. Stacking sequence optimization for buckling of laminated plates by integer programming. AIAA J 1992;30(3). [8] Adams DB, Watson LT, Seresta O, Gürdal Z. Global/local iteration for blended composite laminate panel structure optimization subproblems. Mech Adv Mater Struct 2007;14:139–50.

S. Zein et al. / Computers and Structures 136 (2014) 56–63 [9] Adams DB, Watson LT, Gürdal Z, Anderson-Cook CM. Genetic algorithm optimization and blending of composite laminates by locally reducing laminate thickness. Adv Eng Software 2004;35:35–43. [10] IJsselmuiden ST, Abdalla MM, Seresta O, Gürdal Z. Multi-step blended stacking sequence design of panel assemblies with buckling constraints. Composites Part B 2009;40:53–62. [11] Seresta O, Gürdal Z, Watson LT, Adams DB. Optimal design of composite wing structures with blended laminates. Compos Part B: Eng 2007;38(4):469–80. [12] Soremekun G, Gürdal Z, Kassapoglou C, Toni D. Stacking sequence blending of multiple composite laminates using genetic algorithms. Compos Struct 2002;56:53–62. [13] Liu D, Toropov VV, Querin OM, Barton DC. Bi-level optimization of blended composite panels. J Aircraft 2011;48(1):107–18. [14] Liu D, Toropov VV, Querin OM, Barton DC. Stacking sequence optimization of composite panels for blending characteristics using lamination parameters. In: 8th World congress on structural and multidisciplinary optimization, Lisbon, Portugal, Paper 1687; 2009. [15] van Campen J, Seresta O, Abdalla MM, Gürdal Z. General blending definitions for stacking sequence design of composite laminate structure. In: 49th AIAA/ ASME/ASCE/AHS/ASC structures, structural dynamics and material conference, Schaumburg, April; 2008.

63

[16] Adams DB, Watson LT, Gürdal Z. Optimization and blending of composite laminates using genetic algorithms with migration. Mech Adv Mater Struct 2003;10:183–203. [17] Bruyneel M. A general and effective approach for the optimal design of fiber reinforced composite structures. Compos Sci Technol 2006;66:1303–14. [18] Zein S, Colson B, Grihon S. A primal–dual backtracking optimization method for blended composite structures. Struct Multi Optim 2012;45(5). [19] Bruyneel M, Beghin C, Craveur G, Grihon S, Sosonkina M. Stacking sequence optimization for constant stiffness laminates based on a continuous optimization approach. Struct Multi Optim 2012;46(6):783–94. [20] Liu B, Haftka RT, Akgün MA. Two-level composite wing structural optimization using response surfaces. Struct Multi Optim 2000;20(2). [21] ROUX WJ, Stander N, Haftka RT. Response surface approximations for structural optimization. Int J Numer Methods Eng 1998;42:517–34. [22] Russell S, Norvig P. Artificial intelligence: a modern approach. Prentice Hall; 2009. [23] Wolsey LA. Integer programming. Wiley-Interscience; 1998 [chapter 12]. [24] Kreher Donald L, Stinson DR. Combinatorial algorithms: generation, enumeration, and search. CRC Press; 1998 [chapter 4]. [25] Grihon S, Malherbe G. PRESTO: a rapid sizing tool for airframe conceptual design studies. IN: LMS European aeronautical conference, Toulouse; 2012.