The function is used to limit the derivative of the following function at x=0:
y = if x ≥ 0 then xpow else -(-x)pow; // pow > 0
by approximating the function in the range -deltax< x < deltax with a third order polynomial that has the same derivative at abs(x)=deltax, as the function above.
In the picture below the input x is increased from -1 to 1. The range of interpolation is defined by the same range. Displayed is the output of the function SmoothPower compared to
y=x*|x|
For |x| > 1 both functions return identical results.
function SmoothPower extends Modelica.Icons.Function; input Real x "input variable"; input Real deltax "range for interpolation"; input Real pow "exponent for x"; output Real y "output variable"; end SmoothPower;