This function approximates x^2*sgn(x), such that the derivative is non-zero in x=0.
Function Approximation Range
y = regSquare(x) y ~= x^2*sgn(x) abs(x) >> delta
y = regSquare(x) y ~= x*delta abs(x) << delta

With the default value of delta=0.01, the difference between x^2 and regSquare(x) is 41% around x=0.01, 0.4% around x=0.1 and 0.005% around x=1.


function squareReg
  extends Modelica.Icons.Function;
  input Real x;
  input Real delta = 0.01 "Range of significant deviation from x^2*sgn(x)";
  output Real y;
end squareReg;


Generated at 2020-04-01T01:39:02Z by OpenModelicaOpenModelica 1.16.0~dev-259-g8a5138f using GenerateDoc.mos