Rheological models are usually build using three (or four) basics elements, which are :
The spring (existing in
Modelica.Mechanics.Translational.Componentsfor example). Its equation isf = c * (s_rel - s_rel0);The damper (dashpot) (also existing in
Modelica.Mechanics.Translational.Components). Its equation isf = d * v_rel;for a linear damper, an could be easily modified to model a non-linear damper :f = d * v_rel^(1/n);The slider, not existing (as far as I know) in this library... It's equation is abs(f)<= flim. Unfortunately, I don't really understand how I could write the corresponding Modelica model...
I think this model should extend Modelica.Mechanics.Translational.Interfaces.PartialCompliant, but the problem is that f (the force measured between flange_b and flange_a) should be modified only when it's greater than flim...
If the slider extends PartialCompliant, it means that it already follows the equations flange_b.f = f; and flange_a.f = -f;
Adding the equation f = if abs(f)>flim then sign(f)*flim else f; gives me an error "An independent subset of the model has imbalanced number of equations and variables", which I couldn't really explain, even if I understand that if abs(f)<=flim, the equation f = f is useless...
Actually, the slider element doesn't generate a new force (just like the spring does, depending on its strain, or just like the damper does, depending on its strain rate). The force is an input for the slider element, which is sometime modified (when this force becomes greater than the limit allowed by the element). That's why I don't really understand if I should define this force as an input or an output....
If you have any suggestion, I would greatly appreciate it ! Thanks
After the first two comments, I decided to add a picture that, I hope, will help you to understand the behaviour I'm trying to model.
On the left, you can see the four elements used to develop rheological models :
- a : the spring
- b : the linear damper (dashpot)
- c : the non-linear damper
- d : the slider
On the right, you can see the behaviour I'm trying to reproduce : a and b are two associations with springs and c and d are respectively the expected stress / strain curves. I'm trying to model the same behaviour, except that I'm thinking in terms of force and not stress. As i said in the comment to Marco's answer, the curve a reminds me the behaviour of a diode :
- if the force applied to the component is less than the sliding limit, there is no relative displacement between the two flanges
- if the force becomes greater than the sliding limit, the force transmitted by the system equals the limit and there is relative displacement between flanges
flimthere is no solution to the problem. Good numerics must fail at this point with an indication of the problem. If you want to make it work you need something gobbling the superfluous force at the slider. This could be a mass with its inertial force connected to the right end of the slider (or spring). That creates a force-bypass towards the large mass of the inertial system where the slider is also fixed. - Tobias