blockTransferFunction
Linear transfer function
Extends from Interfaces.SISO (Single Input Single Output continuous control block).
Information
This block defines the transfer function between the input u and the output y as (nb = dimension of b, na = dimension of a):
b[1]*s^[nb-1] + b[2]*s^[nb-2] + ... + b[nb]
y(s) = --------------------------------------------- * u(s)
a[1]*s^[na-1] + a[2]*s^[na-2] + ... + a[na]
State variables x are defined according to controller canonical form. Internally, vector x is scaled to improve the numerics (the states in versions before version 3.0 of the Modelica Standard Library have been not scaled). This scaling is not visible from the outside of this block because the non-scaled vector x is provided as output signal and the start value is with respect to the non-scaled vector x. Initial values of the states x can be set via parameter x_start.
Example:
TransferFunction g(b = {2,4}, a = {1,3});
results in the following transfer function:
2*s + 4
y = --------- * u
s + 3
Parameters
| Type | Name | Default | Description |
|---|---|---|---|
| Real[:] | b | {1} | Numerator coefficients of transfer function (e.g., 2*s+3 is specified as {2,3}) |
| Real[:] | a | {1} | Denominator coefficients of transfer function (e.g., 5*s+6 is specified as {5,6}) |
| Initialization | |||
| Modelica.Blocks.Types.Init | initType | Modelica.Blocks.Types.Init.NoInit | Type of initialization (1: no init, 2: steady state, 3: initial state, 4: initial output) |
| Real[size(a, 1) - 1] | x_start | zeros(nx) | Initial or guess values of states |
| Real | y_start | 0 | Initial value of output (derivatives of y are zero up to nx-1-th derivative) |
Connectors
| Type | Name | Default | Description |
|---|---|---|---|
| RealInput | u (from SISO) | Connector of Real input signal | |
| RealOutput | y (from SISO) | Connector of Real output signal |
Components
| Type | Name | Default | Description |
|---|---|---|---|
| Real[size(a, 1) - 1] | x | State of transfer function from controller canonical form |