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 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);
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 |
'+' | 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) |
'/' | Divide two discrete transfer functions in zeros and poles representation (dzp1 / dzp2) |
'^' | 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) |