Library of discrete input/output blocks with fixed sample period

This package contains **discrete control blocks**
with **fixed sample period**.
Every component of this package is structured in the following way:

- A component has
**continuous real**input and output signals. - The
**input**signals are**sampled**by the given sample period defined via parameter**samplePeriod**. The first sample instant is defined by parameter**startTime**. - The
**output**signals are computed from the sampled input signals.

A **sampled data system** may consist of components of package **Discrete**
and of every other purely **algebraic** input/output block, such
as the components of packages **Modelica.Blocks.Math**,
**Modelica.Blocks.Nonlinear** or **Modelica.Blocks.Sources**.

Extends from Modelica.Icons.Package (Icon for standard packages).

Name | Description |
---|---|

Sampler | Ideal sampling of continuous signals |

ZeroOrderHold | Zero order hold of a sampled-data system |

FirstOrderHold | First order hold of a sampled-data system |

UnitDelay | Unit Delay Block |

TransferFunction | Discrete Transfer Function block |

StateSpace | Discrete State Space block |

TriggeredSampler | Triggered sampling of continuous signals |

TriggeredMax | Compute maximum, absolute value of continuous signal at trigger instants |

Ideal sampling of continuous signals

Samples the continues input signal with a sampling rate defined
via parameter **samplePeriod**.

Extends from Interfaces.DiscreteSISO (Single Input Single Output discrete control block).

Name | Description |
---|---|

samplePeriod | Sample period of component [s] |

startTime | First sample time instant [s] |

Name | Description |
---|---|

u | Connector of Real input signal |

y | Connector of Real output signal |

Zero order hold of a sampled-data system

The output is identical to the sampled input signal at sample time instants and holds the output at the value of the last sample instant during the sample points.

Extends from Interfaces.DiscreteSISO (Single Input Single Output discrete control block).

Name | Description |
---|---|

samplePeriod | Sample period of component [s] |

startTime | First sample time instant [s] |

Name | Description |
---|---|

u | Connector of Real input signal |

y | Connector of Real output signal |

First order hold of a sampled-data system

The output signal is the extrapolation through the values of the last two sampled input signals.

Extends from Modelica.Blocks.Interfaces.DiscreteSISO (Single Input Single Output discrete control block).

Name | Description |
---|---|

samplePeriod | Sample period of component [s] |

startTime | First sample time instant [s] |

Name | Description |
---|---|

u | Connector of Real input signal |

y | Connector of Real output signal |

Unit Delay Block

This block describes a unit delay:

1 y = --- * u z

that is, the output signal y is the input signal u of the previous sample instant. Before the second sample instant, the output y is identical to parameter yStart.

Extends from Interfaces.DiscreteSISO (Single Input Single Output discrete control block).

Name | Description |
---|---|

y_start | Initial value of output signal |

samplePeriod | Sample period of component [s] |

startTime | First sample time instant [s] |

Name | Description |
---|---|

u | Connector of Real input signal |

y | Connector of Real output signal |

Discrete Transfer Function block

The **discrete transfer function** block defines the
transfer function between the input signal u and the output
signal y. The numerator has the order nb-1, the denominator
has the order na-1.

b(1)*z^(nb-1) + b(2)*z^(nb-2) + ... + b(nb) y(z) = -------------------------------------------- * u(z) a(1)*z^(na-1) + a(2)*z^(na-2) + ... + a(na)

State variables **x** are defined according to
**controller canonical** form. Initial values of the
states can be set as start values of **x**.

Example:

Blocks.Discrete.TransferFunction g(b = {2,4}, a = {1,3});

results in the following transfer function:

2*z + 4 y = --------- * u z + 3

Extends from Interfaces.DiscreteSISO (Single Input Single Output discrete control block).

Name | Description |
---|---|

b[:] | Numerator coefficients of transfer function. |

a[:] | Denominator coefficients of transfer function. |

samplePeriod | Sample period of component [s] |

startTime | First sample time instant [s] |

Name | Description |
---|---|

u | Connector of Real input signal |

y | Connector of Real output signal |

Discrete State Space block

The **discrete state space** block defines the relation
between the input u and the output y in state space form:

x = A * pre(x) + B * u y = C * pre(x) + D * u

where pre(x) is the value of the discrete state x at the previous sample time instant. The input is a vector of length nu, the output is a vector of length ny and nx is the number of states. Accordingly

A has the dimension: A(nx,nx), B has the dimension: B(nx,nu), C has the dimension: C(ny,nx), D has the dimension: D(ny,nu)

Example:

parameter: A = [0.12, 2;3, 1.5] parameter: B = [2, 7;3, 1] parameter: C = [0.1, 2] parameter: D = zeros(ny,nu) results in the following equations: [x[1]] [0.12 2.00] [pre(x[1])] [2.0 7.0] [u[1]] [ ] = [ ]*[ ] + [ ]*[ ] [x[2]] [3.00 1.50] [pre(x[2])] [0.1 2.0] [u[2]] [pre(x[1])] [u[1]] y[1] = [0.1 2.0] * [ ] + [0 0] * [ ] [pre(x[2])] [u[2]]

Extends from Interfaces.DiscreteMIMO (Multiple Input Multiple Output discrete control block).

Name | Description |
---|---|

A[:, size(A, 1)] | Matrix A of state space model |

B[size(A, 1), :] | Matrix B of state space model |

C[:, size(A, 1)] | Matrix C of state space model |

D[size(C, 1), size(B, 2)] | Matrix D of state space model |

samplePeriod | Sample period of component [s] |

startTime | First sample time instant [s] |

nin | Number of inputs |

nout | Number of outputs |

Name | Description |
---|---|

u[nin] | Connector of Real input signals |

y[nout] | Connector of Real output signals |

Triggered sampling of continuous signals

Samples the continuous input signal whenever the trigger input
signal is rising (i.e., trigger changes from **false** to
**true**) and provides the sampled input signal as output.
Before the first sampling, the output signal is equal to
the initial value defined via parameter **y0**.

Extends from Modelica.Blocks.Icons.DiscreteBlock (Graphical layout of discrete block component icon).

Name | Description |
---|---|

y_start | Initial value of output signal |

Name | Description |
---|---|

u | Connector with a Real input signal |

y | Connector with a Real output signal |

trigger | Trigger input |

Compute maximum, absolute value of continuous signal at trigger instants

Samples the continuous input signal whenever the trigger input
signal is rising (i.e., trigger changes from **false** to
**true**). The maximum, absolute value of the input signal
at the sampling point is provided as output signal.

Extends from Modelica.Blocks.Icons.DiscreteBlock (Graphical layout of discrete block component icon).

Name | Description |
---|---|

u | Connector with a Real input signal |

y | Connector with a Real output signal |

trigger |