infeasible design resulting out of composite size optimization

Chris84
Chris84 New Altair Community Member
edited October 2020 in Community Q&A

Hi everyone,

 

I'm having trouble with a size optimization of a component I designed. The objective is to minimize the mass of the part while constraining the deformation at a single node to max 2 mm (+ and -). The result of the free-size optimization gave me a deformation of 1.6 mm and the size optimization always fails with an infeasible design. The program seems to delete all of the plies leaving it with only two, which are predefined by a constant constraint in the free-size design variable.
I tested it with the ply sets altered for manufacturing and also tried it with the base sets, which I got from the free-size optimization. Neither works. Both fail after the 3rd iteration with the 2nd and 3rd one being seemingly the same.
I have attached one of the .out-files.

Unable to find an attachment - read this blog

Answers

  • Adriano_Koga
    Adriano_Koga
    Altair Employee
    edited September 2020

    What are your dsize constraints for your laminate?

    Ther seems to have some violation in the beginning. Please review these values if they're consistent.

     

    Can you also try updating your initial values? Maybe having them all in the upper bound and start from there.

     

     

  • Chris84
    Chris84 New Altair Community Member
    edited September 2020

    I don't think there's anything special.

    grafik.png.468eca5908665b7bef80eacdd7e0d0c3.png

    By lowering the DELSIZ option to 0.025 in the opticontrols I was able to get the program to calculate a few more variations, but it seems like a pretty arbitrary value. With that set to 0.05 or 0.01 it fails again after the 3rd attempt (which is apparently exactly the same as the 2nd)

    Tried it with the initial values all set to their max, same result.

    Any other opticontrols I might wanna change? Also does the Move limit in the size/shape desvar help me in some way?

  • Adriano_Koga
    Adriano_Koga
    Altair Employee
    edited September 2020

    What is your constant layers total thickness?? Are you taking them into account in the maximum laminate thickness constraint?

  • Chris84
    Chris84 New Altair Community Member
    edited September 2020

    Yes, they are how I get the minimum thickness. Two layers of 0.125 mm, so 0.25 in total
    The free-size optimization also ran without a problem. The size optimization causes trouble

  • Adriano_Koga
    Adriano_Koga
    Altair Employee
    edited September 2020

    What is your constant layers total thickness?? Are you taking them into account in the maximum laminate thickness constrain

     

    When you change the initial thicknesses, does your iter 0 respect all the constraints?

    Or you have some violations?

  • Chris84
    Chris84 New Altair Community Member
    edited September 2020

    I hope I undestand you correctly.
    What I just tried is adjusting some of the layers initial thicknesses to get the overall weight a good bit over what should come out as a result, because I wasn't sure, if the solver will try to stay below the starting value, if my objective is to minimize the weight. The first iteration shows me the weight, that I also got from the mass calc. Also the deformation (my constraint) has obviously gotten lower, so that seems to work just fine. However, in the optimization summary it still states, that there is a constraint violation of 64 %
    Also with the second iteration all of the optimizable layers get ignored or set to 0 and the design (and the optimization) fails.

    I also attached my current .out

    Unable to find an attachment - read this blog

  • Adriano_Koga
    Adriano_Koga
    Altair Employee
    edited September 2020

    The 64% initially is related to total laminate thickness somewhere.

     

    It seems like because of that, the solver tries to decrease the thickness but then it goes all the way to a 0 thickness and thus violates the displacement.

     

    Please try running a global search algorithm, by activating the control card DGLOBAL and using the default settings.

    This will launch around 20 different optimization runs starting from different initial thicknesses.

    Hopefully you will get some good answer, getting away from this stuck point.

     

    Other than that it would be necessary to take a look at your model.

     

  • Chris84
    Chris84 New Altair Community Member
    edited September 2020

    Right. Found that in the .out file now that you pointed it out.

    Did that and it found one other design, which is still violating the max displacement constraint. 11 of the 12 total starting points led to the same result I had already gotten many times before.

    I've attached the .out file again.

     

    Is there a way to send you the model file directly? The forum won't let me send a pm. It says 'You are only allowed to send 0 messages per day. Please try again later.' in a pop up window after I click on the message button.

    Unable to find an attachment - read this blog

  • Adriano_Koga
    Adriano_Koga
    Altair Employee
    edited September 2020

    You can share your .fem file here.

    Zip it if it is too large.

  • Chris84
    Chris84 New Altair Community Member
    edited September 2020

    I wanted to avoid making it accessible for everyone. There's no confidentiality on it, but there's competition (this is for the Formula Student). So I guess deleting it in a few hours has to be enough

     

  • Adriano_Koga
    Adriano_Koga
    Altair Employee
    edited September 2020

    i believe this is a convergence issue related to your TMANUF value in your plies.

     

    As you have a 0.25 TMANUF for most of the plies, the optimization problem becomes a discrete size optimization, and as usual, discrete optimizations are harder to converge.

    In your case the optimizer has to make a decision only between 0.0 and 0.25. This is because TMANUF forces it to give steos by 0.25 only. 

    I dont understand why it takes all your variables to 0.0, but i assume that once it gets to 0.0 it gets stucked there, and because it is a dicrete optimization it can't get out.

     Try changing a little the TMANUF if possible. 

     

    Anywya, another thing about composites, try to imposed a balanced laminate and symmetric as these will avoid undesired couplings (ABD matrices).

    In the first step, of free-size, have you used SMEAR option for the laminate? SMEAR ignores stacking sequence and takes an averaged behavior.

  • Chris84
    Chris84 New Altair Community Member
    edited September 2020

    Hm, that doesn't sound good. 0.25 mm is, what we have available. I could only change it around by small margins and hope, the actual difference for the real part is pretty minimal.

    Do you get your non-discreteness by assigning different thickness values to the different plies of one specific orientation? Cause that's the only possibility I see.

     

    There're two balanced ply pairs (+/-45 and +/- 15) in there. I also used the SMEAR option in both the free-size and the size optimization.

  • Adriano_Koga
    Adriano_Koga
    Altair Employee
    edited September 2020

    The layers are balanced, but i mean, have you turn balance on in your initial free-size? Balancing will guarantee the same ply shape for these pairs +/-.

     

    I would try rerunning freesize with some zone grouping enabled.

    Zone grouping would provide you with ply shapes more feasible, avoiding tiny ply shapes (just a few elems) that might not be feasible in practice.

     

    In your size model i didn't see the smear enabled. The laminate was 'total'

     

  • Chris84
    Chris84 New Altair Community Member
    edited September 2020

    Yeah, that's were I set up the balanced constraints initially. The ply shapes also turned out to be the same.

     

    I didn't realy know, what that zone option was for before I looked into it a bit closer just now. I thought MINDIM would do pretty much the same thing.

    The model I sent you still had the element sets, that the optimization algorythm came up with. However, I edited these sets to get an easier manufacturable version. I just used the default sets for troubleshooting.

     

    Just tried it out with the zone grouping option and I got the same result as before. That doesn't seem to help. I'll try the DGLOBAL option again, too.

     

    I was sure I had enabled the smear option. Not sure what went wrong there.