Hi simulation geeks out there... In case you get bored during the holidays, I thought I'd challenge you with an optimization task...
This is a simulation task that was inspired by a failed vacation project that I undertook a few years ago with my then 8 year old stepson.
I want to design and optimize an archery bow that is first to be strung, and then pulled a certain distance (or force) without breaking. This proved to be a more difficult simulation task than I initially thought it would be.
I have here produced a parametric design of a bow. The challenge is to deform it to a point where the string (=string force) is vertical. The next step is to pull the bow to, in my case a certain force. As the model is created now (force controlled), I can't specify a string length as input and then pull the bow with a given force (or pull distance). Instead, I have calculated the string length as a result. The problem with this is that in the initial analysis, the string length at time=1 (vertical string) does not necessarily become the same, as at time=2, when the bow is pulled to a 45 degree angle (vertical and horizontal components of string force are equal) . So I first have to set a string force, run my analysis, measure the string length at time=1. Then I need to make a second run, a sensitivity study where I vary the pull force, to find the pull force at time=2, that will give the same string length as in run 1, at time 1, with the original string force.
Example: As the model is now, I have deformed it to a string length of 446 mm at string force 150 N (bow stringed, not pulled). The next step is to run a sensitivity study where I vary the parameter controlling the string force, so as to get the same 446 mm string length at time=2, when the bow is pulled to a string angle of 45 degrees (this is assumed to be an input design constraint). It turns out that the pull force is then 259 N. The string force (at 45 degree string angle) is thus sqrt(259^2+259^2)=366 N when the bow is pulled.
The way I have set up the problem, I have strung the bow by applying the force with time functions that may seem strange; this is to ensure that the bow does not flip over to the other side, and the solver finds the wrong equilibrium position; bent forward.
Now to optimize the bow, I would typically want to maximize the change in strain energy stored in the bow, between time=2 (bow pulled) and time=1 (bow stringed, not pulled). At the same time, we need to keep the maximum stress below a limit. Ideally, the pull force, pull length, and maybe the bow length are design constraints,
I challenge you guys to come up with a more clever way to set up this problem, and run an optimization design study to maximize the change in strain energy between time=1 and time=2, with appropriate design constraints (stress, force, pull length etc). I have played with the idea to use prescribed displacements, but the way I approached the problem, I seem to end up in a situation where I need to activate/deactivate constraints at given times, and this is not implemented in Creo Simulate.
I also challenge PTC's developers to set up this problem from scratch, they might find some functionality they would like to add... (Or, maybe it's just me being stupid not being able to figure out how to set up the problem..? If so, enlighten me...)
Happy holidays, enjoy your bow modeling and may the force be with you!
/Mats L
PS. I should mention that I am a complete novice in archery, bow design etc. I think this is obvious when you look at my bow...