functionfrequencyEvaluate

Evaluate a SISO transfer function defined by Zeros and Poles matrices at a given complex value re + j*im

Information

Syntax

result = ZerosAndPoles.Analysis.evaluate(zp, p, den_min=0)

Description

Function Analysis.evaluate evaluates the ZerosAndPoles transfer function at a given (complex) value of p and returns the value G(p)=N(p)/D(p). The optional argument den_min with default 0 is used to guard against a division by zero.

  if |(D(p))| >= den_min then
     G(p) = N(p) / D(p);
  elseif D(p).re >= 0.0 then
     G(p) = N(p) / den_min
  else
     G(p) = -N(p) / den_min
  end if;

Example

  Complex j = Modelica_LinearSystems2.Math.Complex.j();
  ZerosAndPoles p = Modelica_LinearSystems2.ZerosAndPoles.p();
  Modelica_LinearSystems2.ZerosAndPoles zp=(p+1)/(p^2+p+1);

  Complex result;

algorithm
  result := Modelica_LinearSystems2.ZerosAndPoles.Analysis.evaluate(zp, j+1);
//  result = 0.538462 - 0.307692j

See also

Math.Polynomial.evaluateComplex

Inputs

TypeNameDefaultDescription
RealgainGain of transfer function
Real[:,2]ZerosZeros as Real matrix (first column: real, second column imaginary values)
Real[:,2]PolesPoles as Real matrix (first column: real, second column imaginary values)
RealreReal value of complex number
RealimImaginary value of complex number

Outputs

TypeNameDefaultDescription
RealAAmplitude of complex value
Modelica.Units.SI.AnglephiAngle of complex value
Integerinfo= 0/1/2 success/infinity(A is a large value)/indefinite (A=0/0; A=0 returned)

Revisions

Date Author Comment
2010-05-31 Marcus Baur, DLR-RM Realization