Modeling artificial tethers as via-node element with custom properties

Hi,

In my model, I would like to represent a device as tethers passing through via-nodes and having particular mechanical properties. (Think of bands that do not have classic elastic properties and span over several segments.)

In principal, AnyViaPointLigament is the type of mechanical element closest to what I would like to model, but I am having difficulty expressing the material properties through AnyLigamentModelPol.

My question is: how is the stress-strain curve obtained for AnyLigamentModelPol from the few parameters given as input? The reference manual provides information that “The polynomial function consists of constant, first, second, and fourth order terms.” Does it mean that the function of this form is fitted to the two points defined by the user (i.e. slack length-zero force and nominal strain - nominal force values)? Are there any assumptions involved? Having a better understanding how stress-strain function is built based on these parameters might be helpful in considering if I can use this class to model the tethers.

As an alternative, I considered a perhaps more straight-forward approach of modeling the tethers as simple force elements (AnyForce) acting on a AnyKinPLine measure of the tether path. It seems that this would give me freedom to define the load simply as a function of the PLine length / strain, and also to directly include pre-load of the band. However, I wonder how in this case the force will be transmitted through via-nodes. Intuitively, I feel that it should work the same as in via-point-muscles or ligaments, treating the via-node as “the eye of a needle” (with the force acting on the via segment in the direction normal to the force path before and after the node). Is this correct?

I will very much appreciate your thoughts and suggestions. Thank you!

Kind regards,
Dominika

Hi Dominika!

The ligament force is a polynomial function of elongation, where coefficients are expressed through input parameters of the ligament model. See the code below (it should replicate the ligament behaviour) - you could implement something more relevant to your material models:


// Compute coefficient of the (force) polynomial function
  //   F = C0 + C1*dL + C2*dL^2 + C3*dL^4
 
  AnyFloat L1 = (1.0 + eps1)*L0;
  AnyFloat dL = L1 - L0;
  AnyFloat Fgrad_avg = F1 / dL;
  AnyFloat Fgrad0 = a0 * Fgrad_avg;
  AnyFloat Fgrad1 = a1 * Fgrad_avg;
 
  AnyFunPolynomial LigFPoly = {
    PolyCoef = {
      {
        0,
        .Fgrad0,
        ( 2*(.F1)/.dL - 1.5*.Fgrad0 - 0.5*.Fgrad1 ) / .dL,
        0,
        ( (.Fgrad1+.Fgrad0)/2.0 - (.F1)/.dL ) / (.dL*.dL*.dL)
      }
    };
  };

Regarding the tether modeling:
a) if you have a sliding tether through “needle eyes” - then the force will be exerted at the fixation points only.
b) if you have a tether clamped at a few points - the elements should be split into relevant segments.

There will be, of course, some forces/moments exerted at the via points, but it would very much depend on the tether material properties - consider whether they influence can be ignored. Possibly you have some previous FEA models to assess these uncertainties on the structural level?

Kind regards,
Pavel

Hi Pavel,

Thank you very much for your prompt response! I appreciate the code attached - this explains the ligament modeling very well and is exactly what I was searching for.

Regarding the tether modeling as sliding through via nodes vs. clamped at these points, we will likely look at both approaches indeed. The physical situation is something in between - the band is not clamped at the passing nodes, but “woven” around the anatomy, so it probably slides but with friction, which may be substantial.

What I wondered more about is if the band could be modeled as AnyKinPLine with AnyForce applied to it (as a function of its length) as I was hoping the intermediate points at the PLine would act as typical via-nodes of other force elements like ligaments or muscles. Then, if a via node is not aligned with fixation points, a force would be applied at this point in the direction bisecting the angle formed by the tether path (longitudinal force at fixation points, and normal force at the intermediate point). I have now tested it to see if applying AnyForce to AnyKinPLine does have the same effect on via nodes as AnyViaPointLigament, and figured out it does not apply any force to the via-node… And then I got illuminated why: the AnyKinPLine is just a measure of length!

So it appears my best chance might be to stick with polynomial ligament model. I have checked that the tether properties can be expressed by a function of similar form, but transforming the polynomial coefficients to the input variables required by the ligament model is somewhat tricky… Anyway, I will continue playing with that and hopefully I will figure it out!

Thank you!

Kind regards,
Dominika

Hi Dominika,

Please use AnyKinPLine for the trajectory and AnyForce objects to define loading response through a constitutive model (AnyFunPolynomial, AnyFunInterpol, or any other you think would fit) - this should do what you need.

You can check forces acting on each via point with
AnyMechOutputFileForceExport output.

Kind regards,
Pavel

Hi Pavel,

Yes - now I see it, I can use multiple AnyForce objects between via points with the force magnitude of each expressed as a function of the length of the entire tether (as measured by AnyKinPLine). This seems like exactly what I need.

Thank you very much for your help!

Kind regards,
Dominika