# .Modelica_LinearSystems2.DiscreteZerosAndPoles

## Information

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

```         product(q - z[i])
y = k*------------------- * u
product(q - 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.

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

```         product(q + n1[i]) * product(q^2 + n2[i,1]*q + n2[i,2])
y = k*---------------------------------------------------------
product(q + d1[i]) * product(q^2 + d2[i,1]*q + 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:

```                          (q+0.5)
dzp = 4* -------------------------------------
(p - 0.5)*(p - (0.6+j*0.3))*(p - (0.6-j*0.3))
```

with j = Complex.j(); is defined as

```   import Modelica_LinearSystems2.Math.Complex;
import Modelica_LinearSystems2.DiscreteZerosAndPoles;
j = Complex.j();

dzp = ZerosAndPoles(z = {Complex(-0.5)},
p = {Complex(0.5),
0.6+j*0.3,
0.6-j*0.3},
k=4);
```

## Contents

Name Description
'constructor' Collection of operators to construct a DiscreteZerosAndPoles data record
'-' Contains operators for subtraction of discrete zeros and poles descriptions
'*' Contains operators for multiplication of discrete zeros and poles records
'/' Divide two discrete transfer functions in zeros and poles representation (dzp1 / dzp2)
'+' Addition of to discrete transfer functions dzp1 + dzp2, i.e. parallel connection of two transfer functions (= inputs are the same, outputs of the two systems are added)
'^' Integer power of DiscreteZerosAndPoles (dzp^k)
'==' Check whether two discreteZerosAndPoles transfer functions are identical
'String' Transform DiscreteZerosAndPoles transfer function into a String representation
q Generate the DiscreteZerosAndPoles transfer function q
Analysis Package of functions to analyse discrete zeros-and-poles description represented by a DiscreteZerosAndPoles record
Design Package of functions to design discrete zeros-and-poles controllers and observers
Plot Package of functions to plot discrete zeros and poles description responses
Conversion Package of functions for conversion of DiscreteZerosAndPoles data record
Import Package of functions to generate a DiscreteZerosAndPoles data record from imported data
Internal Package of internal material of record DiscreteZerosAndPoles (for advanced users only)

Generated at 2021-04-12T01:01:31Z by OpenModelicaOpenModelica 1.18.0~dev-216-g91c7501 using GenerateDoc.mos