Description: "Collection of models that illustrate model use and test models"

- Home > Modelica

## Buildings.Utilities.Math.Examples

Collection of models that illustrate model use and test models

### Information

This package contains examples for the use of models that can be found in Buildings.Utilities.Math.

Extends from Modelica.Icons.ExamplesPackage (Icon for packages containing runnable examples).

### Package Content

Name | Description
--- | ---
Average | Test model for average function
Bicubic | Test model for bicubic function
Biquadratic | Test model for biquadratic function
BooleanReplicator | Test model for boolean replicator
IntegerReplicator | Test model for integer replicator
InverseXRegularized | Test model for inverseXRegularized function
Polynominal | Test model for ploynominal function
PowerLinearized | Test model for powerLinearized function
QuadraticLinear | Test model for quadraticLinear function
RegNonZeroPower | Test model for regNonZeroPower function
SmoothBlocks | Test model for smooth min and smooth max functions
SmoothExponential | Test model for smoothExponential function
SmoothLimit | Test model for smooth limit
SmoothMin | Test model for smooth minimum
Splice | Test model for splice
VectorFunctions | Test model for functions that take a vector as argument

## Buildings.Utilities.Math.Examples.Average

Test model for average function

### Information

This model tests the implementation of Buildings.Utilities.Math.Average.

Extends from Modelica.Icons.Example (Icon for runnable examples).

### Modelica definition

model Average "Test model for average function" extends Modelica.Icons.Example; Buildings.Utilities.Math.Average average(nin=2); Modelica.Blocks.Sources.Ramp x1(duration=1); Modelica.Blocks.Sources.Ramp x2( height=2, duration=1, offset=2); Modelica.Blocks.Routing.Multiplex2 multiplex2_1; equation connect(x1.y, multiplex2_1.u1[1]); connect(x2.y, multiplex2_1.u2[1]); connect(multiplex2_1.y, average.u); end Average;

## Buildings.Utilities.Math.Examples.Bicubic

Test model for bicubic function

### Information

This model tests the implementation of Buildings.Utilities.Math.Bicubic.

Extends from Modelica.Icons.Example (Icon for runnable examples).

### Modelica definition

model Bicubic "Test model for bicubic function" extends Modelica.Icons.Example; Modelica.Blocks.Sources.Ramp x1(duration=1); Modelica.Blocks.Sources.Ramp x2( height=2, duration=1, offset=2); Buildings.Utilities.Math.Bicubic bicubic(a={1,2,3,4,5,6,7,8,9,10}); equation connect(x1.y, bicubic.u1); connect(x2.y, bicubic.u2); end Bicubic;

## Buildings.Utilities.Math.Examples.Biquadratic

Test model for biquadratic function

### Information

This model tests the implementation of Buildings.Utilities.Math.Biquadratic.

Extends from Modelica.Icons.Example (Icon for runnable examples).

### Modelica definition

model Biquadratic "Test model for biquadratic function" extends Modelica.Icons.Example; Modelica.Blocks.Sources.Ramp x1(duration=1); Modelica.Blocks.Sources.Ramp x2( height=2, duration=1, offset=2); Buildings.Utilities.Math.Biquadratic biquadratic(a={1,2,3,4,5,6}); equation connect(x1.y, biquadratic.u1); connect(x2.y, biquadratic.u2); end Biquadratic;

## Buildings.Utilities.Math.Examples.BooleanReplicator

Test model for boolean replicator

### Information

This model tests the implementation of Buildings.Utilities.Math.BooleanReplicator.

Extends from Modelica.Icons.Example (Icon for runnable examples).

### Modelica definition

model BooleanReplicator "Test model for boolean replicator" extends Modelica.Icons.Example; Modelica.Blocks.Sources.BooleanTable booTab(table={100,200,400,500}) "Boolean input signal"; Buildings.Utilities.Math.BooleanReplicator booRep(nout= 4) "Replicates boolean values"; equation connect(booTab.y, booRep.u); end BooleanReplicator;

## Buildings.Utilities.Math.Examples.IntegerReplicator

Test model for integer replicator

### Information

This model tests the implementation of Buildings.Utilities.Math.IntegerReplicator.

Extends from Modelica.Icons.Example (Icon for runnable examples).

### Modelica definition

model IntegerReplicator "Test model for integer replicator" extends Modelica.Icons.Example; Modelica.Blocks.Sources.IntegerTable intTab(table=[0,1;1, 4;1.5, 5;2, 6]) "Integer input signal"; Buildings.Utilities.Math.IntegerReplicator intRep(nout= 2) "Replicates integer values"; equation connect(intTab.y, intRep.u); end IntegerReplicator;

## Buildings.Utilities.Math.Examples.InverseXRegularized

Test model for inverseXRegularized function

### Information

This model tests the implementation of Buildings.Utilities.Math.InverseXRegularized.

Extends from Modelica.Icons.Example (Icon for runnable examples).

### Modelica definition

model InverseXRegularized "Test model for inverseXRegularized function " extends Modelica.Icons.Example; Modelica.Blocks.Sources.Ramp x1(duration=1, height=2, offset=-1); Buildings.Utilities.Math.InverseXRegularized inverseXRegularized(delta=0.1); equation connect(x1.y, inverseXRegularized.u); end InverseXRegularized;

## Buildings.Utilities.Math.Examples.Polynominal

Test model for ploynominal function

### Information

This model tests the implementation of Buildings.Utilities.Math.Polynominal.

Extends from Modelica.Icons.Example (Icon for runnable examples).

### Modelica definition

model Polynominal "Test model for ploynominal function " extends Modelica.Icons.Example; Modelica.Blocks.Sources.Ramp x1(duration=1); Buildings.Utilities.Math.Polynominal polynominal(a={1,2}); equation connect(x1.y, polynominal.u); end Polynominal;

## Buildings.Utilities.Math.Examples.PowerLinearized

Test model for powerLinearized function

### Information

This model tests the implementation of Buildings.Utilities.Math.PowerLinearized.

Extends from Modelica.Icons.Example (Icon for runnable examples).

### Modelica definition

model PowerLinearized "Test model for powerLinearized function " extends Modelica.Icons.Example; Modelica.Blocks.Sources.Ramp x1(duration=1); Buildings.Utilities.Math.PowerLinearized powerLinearized(n=2, x0=0.5); equation connect(x1.y, powerLinearized.u); end PowerLinearized;

## Buildings.Utilities.Math.Examples.QuadraticLinear

Test model for quadraticLinear function

### Information

This model tests the implementation of Buildings.Utilities.Math.QuadraticLinear.

Extends from Modelica.Icons.Example (Icon for runnable examples).

### Modelica definition

model QuadraticLinear "Test model for quadraticLinear function " extends Modelica.Icons.Example; Modelica.Blocks.Sources.Ramp x1(duration=1); Buildings.Utilities.Math.QuadraticLinear quadraticLinear(a={1,2,3,4,5,6}); Modelica.Blocks.Sources.Ramp x2( duration=1, offset=2, height=5); equation connect(x2.y, quadraticLinear.u2); connect(x1.y, quadraticLinear.u1); end QuadraticLinear;

## Buildings.Utilities.Math.Examples.RegNonZeroPower

Test model for regNonZeroPower function

### Information

This model tests the implementation of Buildings.Utilities.Math.RegNonZeroPower.

Extends from Modelica.Icons.Example (Icon for runnable examples).

### Modelica definition

model RegNonZeroPower "Test model for regNonZeroPower function " extends Modelica.Icons.Example; Modelica.Blocks.Sources.Ramp x1(duration=1); Buildings.Utilities.Math.RegNonZeroPower regNonZeroPower(n=0.5); equation connect(x1.y, regNonZeroPower.u); end RegNonZeroPower;

## Buildings.Utilities.Math.Examples.SmoothBlocks

Test model for smooth min and smooth max functions

### Information

This model tests the implementation of blocks that approximate non-differentiable functions by smooth functions.

Extends from Modelica.Icons.Example (Icon for runnable examples).

### Modelica definition

model SmoothBlocks "Test model for smooth min and smooth max functions" extends Modelica.Icons.Example; SmoothMax smoMax(deltaX=0.5); Modelica.Blocks.Math.Max max; Modelica.Blocks.Sources.Sine sine(freqHz=8); Modelica.Blocks.Sources.Sine sine1(freqHz=1); Diagnostics.AssertEquality assEquMax(threShold=0.08); Buildings.Utilities.Math.SmoothMin smoMin(deltaX=0.5); Modelica.Blocks.Math.Min Min; Diagnostics.AssertEquality assEquMin(threShold=0.08); equation connect(sine.y, smoMax.u1); connect(sine.y, max.u1); connect(sine1.y, smoMax.u2); connect(sine1.y, max.u2); connect(smoMax.y, assEquMax.u1); connect(max.y, assEquMax.u2); connect(sine.y, smoMin.u1); connect(sine.y, Min.u1); connect(sine1.y, smoMin.u2); connect(sine1.y, Min.u2); connect(smoMin.y, assEquMin.u1); connect(Min.y, assEquMin.u2); end SmoothBlocks;

## Buildings.Utilities.Math.Examples.SmoothExponential

Test model for smoothExponential function

### Information

This model tests the implementation of Buildings.Utilities.Math.SmoothExponential.

Extends from Modelica.Icons.Example (Icon for runnable examples).

### Modelica definition

model SmoothExponential "Test model for smoothExponential function " extends Modelica.Icons.Example; Modelica.Blocks.Sources.Ramp x1(duration=1, height=2, offset=-1); Buildings.Utilities.Math.SmoothExponential smoothExponential(delta=0.1); equation connect(x1.y, smoothExponential.u); end SmoothExponential;

## Buildings.Utilities.Math.Examples.SmoothLimit

Test model for smooth limit

### Information

This model tests the implementation of Buildings.Utilities.Math.SmoothLimit.

Extends from Modelica.Icons.Example (Icon for runnable examples).

### Modelica definition

model SmoothLimit "Test model for smooth limit" extends Modelica.Icons.Example; Modelica.Blocks.Sources.Sine sine(freqHz=8); Buildings.Utilities.Math.SmoothLimit smoLim( deltaX=0.001, upper=0.5, lower=0) "Smooth limit"; equation connect(sine.y, smoLim.u); end SmoothLimit;

## Buildings.Utilities.Math.Examples.SmoothMin

Test model for smooth minimum

### Information

This model tests the implementation of Buildings.Utilities.Math.SmoothMin.

This model also illustrates that the output can be larger than the minimum of the two input signals. Smaller values for `deltaX` will reduce this effect. Therefore do not use this function when the minimum output value should be respected.

Extends from Modelica.Icons.Example (Icon for runnable examples).

### Modelica definition

model SmoothMin "Test model for smooth minimum" extends Modelica.Icons.Example; Buildings.Utilities.Math.SmoothMin smoLim[2](deltaX={0.1,0.02}) "Smooth limit"; Modelica.Blocks.Sources.Ramp ramp(height=1, duration=1) "Ramp input"; Modelica.Blocks.Sources.Constant const(k=0.5) "Constant input"; equation connect(ramp.y, smoLim[1].u1); connect(smoLim[2].u1, ramp.y); connect(const.y, smoLim[1].u2); connect(const.y, smoLim[2].u2); end SmoothMin;

## Buildings.Utilities.Math.Examples.Splice

Test model for splice

### Information

This model tests the implementation of Buildings.Utilities.Math.Splice

Extends from Modelica.Icons.Example (Icon for runnable examples).

### Modelica definition

model Splice "Test model for splice" extends Modelica.Icons.Example; Buildings.Utilities.Math.Splice splice(deltax=0.2); Modelica.Blocks.Sources.Sine sine(freqHz=0.5); Modelica.Blocks.Sources.Constant const1(k=-0.5); Modelica.Blocks.Sources.Constant const(k=0.5); equation connect(sine.y, splice.x); connect(const1.y, splice.u2); connect(const.y, splice.u1); end Splice;

## Buildings.Utilities.Math.Examples.VectorFunctions

Test model for functions that take a vector as argument

### Information

This model tests the implementation of functions that take a vector as an argument.

Extends from Modelica.Icons.Example (Icon for runnable examples).

### Modelica definition

model VectorFunctions "Test model for functions that take a vector as argument" extends Modelica.Icons.Example; Buildings.Utilities.Math.Min minVec( nin=3); Modelica.Blocks.Sources.Sine sine(freqHz=6); Modelica.Blocks.Sources.Sine sine1( freqHz=8); Modelica.Blocks.Sources.Sine sine2(freqHz=10); Buildings.Utilities.Math.Max maxVec( nin=3); Buildings.Utilities.Math.Average aveVec( nin=3); equation connect(sine.y, minVec.u[1]); connect(sine1.y, minVec.u[2]); connect(sine2.y, minVec.u[3]); connect(sine.y, maxVec.u[1]); connect(sine1.y, maxVec.u[2]); connect(sine2.y, maxVec.u[3]); connect(sine.y, aveVec.u[1]); connect(sine1.y, aveVec.u[2]); connect(sine2.y, aveVec.u[3]); end VectorFunctions;