Grasshopper

algorithmic modeling for Rhino

I'm fairly new to grasshopper so apologies if this is a rookie mistake! I've made a simple catenary model to test how Kangaroo applies forces and the effect of the different parameters and there is something that i can't explain.

 

My variables are the number of nodes and the total force on the catenary. The total force is split between the free nodes (middle left). So, assuming that the total load stays the same, you'd expect a greater displacement with fewer nodes as all the load will be lumped closer to the centre rather than evenly spread out. The model does the opposite. Is this a Kangaroo problem or is my model incorrect? I've attached the grasshopper file.

 

Views: 3524

Attachments:

Replies to This Discussion

Nick - thanks for bringing up an interesting and quite subtle issue about catenary simulation with springs and lumped-mass particle systems.

I think this is all about the elasticity of the material.

In the setup above the weight force is evenly distributed between the nodes.
This is correct in the initial undeformed configuration, however - once the 'chain' is hanging, the segments stretch because they are springy. The segments near the ends stretch slightly more because they are supporting more weight, yet the loads on each point remain the same.
This would be correct for some rubbery material that got thinner as it stretched, but for catenaries we are generally interested in an idealized inextensible chain whose mass is always directly proportional to its length.
The difference between a true catenary and this stretchy version can be quite small, but as you found, when you vary the number of subdivisions the result will not be the same.

A way to get a more accurate catenary form, which is not affected by the subdivision in this way is to make the total rest length of the chain greater than the distance between its ends, and give the springs a very high stiffness so they are practically inextensible. This way the resulting shape is due to the flexibility between the links rather than their stretching.
(spring stiffness is quite limited in the currently availably version, but in the upcoming release much stiffer springs are possible because of an improved integration method)
Thanks for the reply Daniel. I think the fact that the material is highly extensible actually highlights the issue rather than explains it. If you look at the result that it is giving us - The case with forces spread out hangs lower than the single point load, so the cable must have extended more. The stiffnesses of the cables are the same in both cases therefore there is a higher force in the cable that hangs lower. Higher force x greater sag = higher resistance to the applied moments. However, we are actually applying a smaller moment by distributing the same total load over the length. It shouldn't matter that the loads aren't distributed in a pure catenary form as the applied moment will always be lower anyway. Right?

Like you say, it behaves better when you increse the stiffness of the members

A few other comments from my limited use of Kangaroo:

Another thing that i've noticed is that my models never come out quite symetrical (even if i leave them for thousands and thousands of iterations). I would expect them to settle down to a symetrical shape after a while but they seem to reach some kind of equilibrium. It seems to vary based on the damping that i use but can be noticably assymetric in some cases. I would obviously expect a slower response/ more stable response as the damping increases but it should not affect the final result.

One thing that would be nice in a future version would be a tick box for critically (or near) damped kinetic damping in the system when you're not really bothered about the real world dynamic behaviour of the model, you're only interested in the final answer. This would mean you could ignore the drag and damping factors and it would reach a solution much quicker without all the bouncing around! I've no idea how easy this would be to achieve. I'm guessing most people will be wanting to use Kangaroo for form finding and optimizing kind of work so the true dynamics of the system are not that important..... the damping factor that we input into the Kangaroo engine is a made up number anyway and for larger models it sometimes takes a fair bit of tweaking to get a suitable mass/stiffness/damping combo to get it to settle down quickly.

A built in convergence indicator as one of the outputs would be useful too so that you can see how stable the current iteration is.

Anyway, i'm enjoying playing with it so thanks for your hard work.

RSS

About

Translate

Search

Videos

  • Add Videos
  • View All

© 2024   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service