I am new to SM and I am trying to extend the solution of a two-dimensional, textbook dynamics problem.
It is a rigid bar initially at some angle and dropped some distance above the ground.
The bar falls due to gravity and one end contacts the ground. There is a rebound of that point and an angular velocity is also imparted to the bar.
As the bar continues to rotate, the other end of the bar will contact the ground, rebound and there will again be a change in the angular velocity, etc.
I have worked through the bouncing ball example problems etc. I have built a model using a bodybox as the bar. I have been trying to use the elastogap component to model the contacts with the ground. I have been using a revolute component and a prismatic component to interface with the elastogap component.
The issue I am having is, when I add a similar set of components to the other end of the, the problem won't solve. I suspect the problems is over-constrained at that point.
So question is how to adjust the components to get both ends making contact and the problem will solve?
Also, in general, is there an easier way than the path I have started down?
Thanks in advance
Can you post your model? Its hard to answer that question in the abstract. I believe the problem is when you add the "similar set of components" to the other side, you MUST set their stateselect (in the Advanced tab) to "never". Your state is fully determined by the first set of components. You can't add redundant components unless you tell WSM to never select them as states.
I attached a model of a bar that falls under gravity and has an elastogap on each end-- I set the damping to zero so it will bounce around forever. Is this what you want? Notice all of the elements on the right (the upper end of the bar) have the stateselect to never.
Here is the model in Diagram view:
thank you for your help. I have attached my model, which, looking at yours, seems a bit too simplistic . It had been a series of trial and errors on my model.
I have tried to run your model and got the error at the bottom of this reply. I have tried adjusting the "states" for components on the RHS to "blank" and then again to "avoid" When I do this, the program compiles and runs, but ends up with a 'divide by zero' error. Do you know what might be happening here?
Finally, none of this is really intuitive to a newbie. Do you have a good reference you can recommend for mechanics/dynamics problems in WSM?
Thank you again for your help
Building "RodExample" as experiment "RodExample 3" started at 08:01:42
Error: Error: Deselecting states, too many variables have StateSelect.never (or StateSelect.default or StateSelect.avoid and does not appear differentiated) (in set: universal2.w_b).
Build finished at 08:01:44 (took 00:01).
Error: No executable generated C:/Users/gethiel/AppData/Local/Temp/WolframSystemModeler-4.3.1/sme.4.3.1150047650215724.exe
Error: No settings file generated C:/Users/gethiel/AppData/Local/Temp/WolframSystemModeler-4.3.1/sme.4.3.1150047650215724_init.sim
Sorry, I forgot that I use a different setting. Go into Preferences->translation and disable dynamic state select and my model will run. Since we are specifying the states manually you need to turn that feature off.
You can experiment by giving my model an initial position (for example, specifying a drop height by setting s to say 0.3 in the prismatic joint called lift1 and setting "fixed" to true.)
Also you probably want to add a bit of damping (500 works well and still bounces). I'll look at your model now...
Your model had multiple issues.
First, the elastogap pointed the wrong direction -- in one direction
it provides resistance/stiffness in the other direction is does
You should enter numbers as "0.1" and not ".1" -- the leading zero
in WSM is more compatible with Modelica
When you try to add the prismatic joint to the other end of the mass
you overconstrain the system. Remember -- prismatic allows for no
side motion and the only way for your rod to fall under gravity is
for it to also rotate.
Start with my model -- It works because I allow sided-to-side planar motion and the prismatic joint (with elastogap) to model the contact with the ground (in the correct direction!) and then the universal joint allows the bar to rotate as needed to make everything "fit".
As for good references I must defer to the WSM people in Sweden. I wish I had a good one as well. -- What do you guys recommend? ( @Patrik Ekenberg , @Otto Tronarp , @Malte Lenz )
thank you again for this. It now works. I certainly will study your model and experiment with it.
As I said, I am a newbie, so no surprise I have made mistakes. Thanks for catching the wrong direction of the elastogap. I thought it was between the bar and the "ground" I'll have to look more closely and understand the orientation.
Finally, something as subtle as Preferences->translation and disable dynamic state select , I never would have found. Where did you learn such details?
thank you again for your time,
I wish I could say that "I figured the preferences setting from first principles and that I can't believe how stupid you were not to know that", however, actually I had the same problem you had with an over constrained loop. I got the information from the guys in Sweden!
That was a hard one to figure out. I also had to spend time trying out models as you are doing and figure it out. Contact me at Neils at my domain in the profile if you want to talk about some strategies on modeling.