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;