[MBDyn-users] Constitutive laws gain ...
Pierangelo Masarati
masarati at aero.polimi.it
Wed Aug 29 19:10:59 CEST 2007
Rudi Jaeger wrote:
> I think my problem was a fixation on the way functions are usually declared in
> dependence on some variable.
but "const" is a function; only, it does not depend on any variable.
> Here is just a variant of the law above to see if I
> get things right now:
>
> scalar function: "first_factor", pow, 1;
> scalar function: "second_factor", pow, 1;
> scalar function: "viscous", mul, "first_factor", "second_factor";
> constitutive law: 1000, 1, nlsf viscoelastic, 10.0, null, 0.0, "viscous"
Yes, but "pow, 1" is equivalent to "linear", AFAIR, just it has to be
zero-crossing: f(0) = 0.
As you may guess, I'm not that familiar with scalar functions, that's
why I was asking support from Marco (who's probably on vacation yet).
> If this can be done, it should also be possible to create that constitutive
> law I was originally talking about:
>
>>>> I would like to do the following: If the angular velocity
>>>> in a deformable hinge is large, apply much damping,
>>>> if it is small, apply less damping.
>
> Something like this should work:
>
> set: real high_velo= 100.0;
> set: real limit_velo= 10.0;
> set: real eps= 0.01;
> set: real high_damp= 5.0;
> set: real low_damp= 0.2;
>
> scalar function: "velo_step", multilinear,
> -high_velo, high_damp,
> -limit_velo-eps, high_damp,
> -limit_velo+eps, low_damp,
> limit_velo-eps, low_damp,
> limit_velo+eps, high_damp,
> high_velo, high_damp;
This is something like
high_damp
------------+ +--------------
| |
+---------------------------+
low_damp -limit_velo 0 limit_velo
but make sure that (-limit_velo + eps < limit_velo - eps), as with the
sample data you showed above (the code will complain, otherwise).
>
> scalar function: "strain_rate", pow, 1;
This is "strain_rate" = strain_rate
> scalar function: "step_rate", mul, "velo_step", "strain_rate";
This is "step_rate" = "velo_step" * "strain_rate"
> constitutive law: 1000, 1, nlsf viscoelastic, null, null, 0.0, "step_rate"
This should be "1000" = 0.0 + "step_rate"; is this what you mean?
I note that this should be exactly equivalent to using the "nlp" law
with a stepwise k'' coefficient:
constitutive law: 1001, 1, nlp viscoelastic, null, null, 0.0, "velo_step";
Cheers, p.
More information about the Mbdyn-users
mailing list