y = Functions.limitBySform(x_min, x_max, y_min, y_max, x);
A smooth transition between points (x_min, y_min) and (x_max, y_max). The transition is done in such a way that the 1st function's derivative is continuous for all x. The higher derivatives are, in contrast, discontinuous at input points.
The figure below shows the function y and its 1st derivative dy/dx for the following input: x_max = -0.4, x_min = 0.6, y_max = 1.4, y_min = 1.2.
function limitBySform extends Modelica.Icons.Function; input Real x_min "Abscissa for y_min"; input Real x_max "Abscissa for y_max"; input Real y_min "First value of y"; input Real y_max "Second value of y"; input Real x "Current abscissa value"; output Real y "Current ordinate"; end limitBySform;
Developed 2010 at the DLR Institute of System Dynamics and Control