Name | Description |
---|---|
EfficiencyCurves | Package with functions for efficiency curves |
extendedPolynomial | Polynomial that is linearly extended at user specified values |
polynomial | Polynomial, used because OpenModelica 1.4.3 does not expand the sum() into a scalar |
Examples | Collection of models that illustrate model use and test models |
BaseClasses | Library with base classes for utility functions |
y = c1 + c2 * x + ... + cN * x^(N-1)where N > 1 and xMin, xMax are parameters. For x < xMin and x > xMax, the polynomial is replaced with a linear function in such a way that the first derivative is continuous everywhere.
Extends from Modelica.Icons.Function (Icon for a function).
Type | Name | Default | Description |
---|---|---|---|
Real | c[:] | Polynomial coefficients | |
Real | x | x value | |
Real | xMin | Minimum x value for polynomial | |
Real | xMax | Maximum x value for polynomial |
Type | Name | Description |
---|---|---|
Real | y | y value |
function extendedPolynomial "Polynomial that is linearly extended at user specified values" annotation(derivative=BaseClasses.der_extendedPolynomial); extends Modelica.Icons.Function; input Real[:] c "Polynomial coefficients"; input Real x "x value"; input Real xMin "Minimum x value for polynomial"; input Real xMax "Maximum x value for polynomial"; output Real y "y value"; protected Integer N = size(c,1) "Number of coefficients"; algorithm if x < xMin then y := c[1]; for i in 2:N loop y := y + xMin^(i - 1)*c[i] + (x - xMin)*(i - 1)*xMin^(i - 2)*c[i]; end for; elseif x < xMax then y := c[1]; for i in 2:N loop y := y + x^(i - 1)*c[i]; end for; else y := c[1]; for i in 2:N loop y := y + xMax^(i - 1)*c[i] + (x - xMax)*(i - 1)*xMax^(i - 2)*c[i]; end for; end if;end extendedPolynomial;
Type | Name | Default | Description |
---|---|---|---|
Real | c[:] | Coefficients | |
Real | x | Independent variable |
Type | Name | Description |
---|---|---|
Real | y | Dependent variable |
function polynomial "Polynomial, used because OpenModelica 1.4.3 does not expand the sum() into a scalar" extends Modelica.Icons.Function; input Real[:] c "Coefficients"; input Real x "Independent variable"; output Real y "Dependent variable"; algorithm y := c[1]; for i in 2 : size(c,1) loop y := y + x^(i-1) * c[i]; end for;end polynomial;