This record defines a transfer function by its zeros, poles and a gain:

product(p - z[i]) y = k*------------------- * u product(p - n[i])

where z[:] is a Complex vector of zeros, n[:] is a Complex vector of poles and k is an additional multiplicative factor. The elements of the two Complex vectors must either be real numbers or conjugate complex pairs (in order that their product results in a polynomial with Real coefficients).

In the record, the zeros and poles are transformed
into a product of first and second order polynomials.
The data structure is especially useful in applications where first and
second order polynomials are naturally occurring, e.g., as
for **filters**. In fact, via function
ZerosAndPoles.Design.filter, a
ZeroAndPole transfer function is generated from
**low** and **high pass** analog filters
(**CriticalDamping**, **Bessel**, **Butterworth**, **Chebyshev**).
The filters are available in **normalized** (default) and non-normalized form.
In the normalized form, the amplitude of the filter transfer function
at the cutoff frequency is 3 dB.

A ZeroAndPole transfer function is internally stored by the coefficients of first and second order polynomials, and by an additional multiplicative factor k:

product(p + n1[i]) * product(p^2 + n2[i,1]*p + n2[i,2]) y = k*--------------------------------------------------------- product(p + d1[i]) * product(p^2 + d2[i,1]*p + d2[i,2])

Note, the degrees of the numerator and denominator polynomials are given as:

degree of numerator = size(n1,1) + 2*size(n2,1); degree of denominator = size(d1,1) + 2*size(d2,1);

Example:

(p+1) zp = 4* ------------------------------------- (p - 1)*(p - (2+j*3))*(p - (2-j*3))

with j=sqrt(-1), is defined as

importComplex;importModelica_LinearSystems2.ZerosAndPoles; zp = ZerosAndPoles(z = {Complex(-1,0)}, p = {Complex(1,0), Complex(2,3), Complex(2,-3)}, k=4);

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

'constructor' | Collection of operators to construct a ZerosAndPoles data record |

'-' | Collection of operators for subtraction of zeros and poles descriptions |

'+' | Addition of two zeros and poles descriptions zp1 + zp2, i.e. parallel connection of two transfer functions (= inputs are the same, outputs of the two systems are added) |

'*' | Multiply two zeros and poles descriptions (zp1 * zp2) |

'/' | Divide two zeros and poles descriptions (zp1 / zp2) |

'^' | Integer power of zeros and poles description (zp^k) |

'==' | Check whether two zeros and poles descriptions are identical |

'String' | Transform zeros and poles description into a String representation |

p | Generate the transfer function p |

Analysis | Package of functions to analyse zeros-and-poles description represented by a ZerosAndPoles record |

Design | Package of functions to design zeros-and-poles controllers and observers |

Plot | Package of functions to plot zeros and poles description responses |

Conversion | Package of functions for conversion of ZerosAndPoles data record |

Import | Package of functions to generate a ZerosAndPoles data record from imported data |

Internal | Package of internal material of record ZerosAndPoles (for advanced users only) |

Generated at 2024-08-14T18:15:55Z by OpenModelicaOpenModelica 1.23.1 using GenerateDoc.mos