Extends from Buildings.BaseClasses.BaseIconExamples (Icon for Examples packages).
| Name | Description |
|---|---|
| PolynomialDerivativeCheck | |
| PowerLinearized | Test problem for function that linearizes y=x^n below some threshold |
| RegNonZeroPower | |
| RegNonZeroPowerDerivative_2_Check | |
| RegNonZeroPowerDerivativeCheck | |
| SmoothExponentialDerivativeCheck | |
| SpliceFunction | |
| SpliceFunctionDerivativeCheck |
This example checks whether the function derivative is implemented correctly. If the derivative implementation is incorrect, the model will stop with an assert statement.
model PolynomialDerivativeCheck
Real x;
Real y;
initial equation
y=x;
equation
x=Buildings.Utilities.Math.Functions.polynomial(x=time-2, a={2, 4, -4, 5});
der(y)=der(x);
// Trigger an error if the derivative implementation is incorrect.
assert(abs(x-y) < 1E-2, "Model has an error.");
end PolynomialDerivativeCheck;
model PowerLinearized "Test problem for function that linearizes y=x^n below some threshold" Real T4(start=300^4) "Temperature raised to 4-th power"; Real T "Temperature"; Real TExact "Temperature"; equation T = (1+500*time); T = Buildings.Utilities.Math.Functions.powerLinearized(x=T4, x0=243.15^4, n=0.25); TExact = abs(T4)^(1/4);end PowerLinearized;
model RegNonZeroPower
Real y "Function value";
equation
y=Buildings.Utilities.Math.Functions.regNonZeroPower(
time, 0.3, 0.5);
end RegNonZeroPower;
This example checks whether the function derivative is implemented correctly. If the derivative implementation is not correct, the model will stop with an assert statement.
| Type | Name | Default | Description |
|---|---|---|---|
| Real | n | 0.33 | Exponent |
| Real | delta | 0.1 | Abscissa value where transition occurs |
model RegNonZeroPowerDerivative_2_Check
parameter Real n=0.33 "Exponent";
parameter Real delta = 0.1 "Abscissa value where transition occurs";
Real x;
Real y;
initial equation
y=x;
equation
x=Buildings.Utilities.Math.Functions.BaseClasses.der_regNonZeroPower(
time,n, delta, time);
der(y)=der(x);
assert(abs(x-y) < 1E-2, "Model has an error");
end RegNonZeroPowerDerivative_2_Check;
This example checks whether the function derivative is implemented correctly. If the derivative implementation is not correct, the model will stop with an assert statement.
| Type | Name | Default | Description |
|---|---|---|---|
| Real | n | 0.33 | Exponent |
| Real | delta | 0.1 | Abscissa value where transition occurs |
model RegNonZeroPowerDerivativeCheck
parameter Real n=0.33 "Exponent";
parameter Real delta = 0.1 "Abscissa value where transition occurs";
Real x;
Real y;
initial equation
y=x;
equation
x=Buildings.Utilities.Math.Functions.regNonZeroPower(
time,n, delta);
der(y)=der(x);
assert(abs(x-y) < 1E-2, "Model has an error");
end RegNonZeroPowerDerivativeCheck;
This example checks whether the function derivative is implemented correctly. If the derivative implementation is not correct, the model will stop with an assert statement.
model SmoothExponentialDerivativeCheck
Real x;
Real y;
Real ex "exact function value";
initial equation
y=x;
equation
x=Buildings.Utilities.Math.Functions.smoothExponential(
x=time-2, delta=0.5);
der(y)=der(x);
assert(abs(x-y) < 1E-2, "Model has an error");
ex=exp(-abs(time-2));
end SmoothExponentialDerivativeCheck;
model SpliceFunction
Real y "Function value";
equation
y=Buildings.Utilities.Math.Functions.spliceFunction(
pos=10, neg=-10, x=time-0.4, deltax=0.2);
end SpliceFunction;
This example checks whether the function derivative is implemented correctly. If the derivative implementation is not correct, the model will stop with an assert statement.
model SpliceFunctionDerivativeCheck
Real x;
Real y;
initial equation
y=x;
equation
x=Buildings.Utilities.Math.Functions.spliceFunction(
10, -10, time+0.1, 0.2);
der(y)=der(x);
assert(abs(x-y) < 1E-2, "Model has an error");
end SpliceFunctionDerivativeCheck;