.Modelica_LinearSystems2.ZerosAndPoles.Analysis.eigenVectors

Information

Syntax

(eigenvectors, eigenvalues) = ZerosAndPoles.Analysis.eigenVectors(zp, onlyEigenvectors)

Description

Calculate the eigenvectors and optionally (onlyEigenvectors=false) the eigenvalues of the corresponding state space system of a zeros-and-poles-transfer function. The output eigenvectors is a matrix with the same dimension as matrix ss.A. Just like in Modelica.Math.Matrices.eigenValues, if the i-th eigenvalue has an imaginary part, then eigenvectors[:,i] is the real and eigenvectors[:,i+1] is the imaginary part of the eigenvector of the i-th eigenvalue.
The eigenvalues are returned as a complex vector eigenvalues.

Example

  ZerosAndPoles p = Modelica_LinearSystems2.ZerosAndPoles.p();
  Modelica_LinearSystems2.ZerosAndPoles zp=(2*p+2)/(p^2+2*p+2);

  Real eigenvectors[2,2];
  Complex eigenvalues[2];

algorithm
  (eigenvectors, eigenvalues) = Modelica_LinearSystems2.ZerosAndPoles.Analysis.eigenVectors(zp, true);
// eigenvectors = [(-0.4082), (-0.4082);
                    0.8165, 0]
// eigenvalues = {-1 + 1*j, -1 - 1*j}

          |-0.4082 -i0.4082 |         | -0.4082 + i0.4082 |
i.e. v1 = |                 |,   v2 = |                   |
          |     0.8165      |         |      0.8165       |

Interface

encapsulated function eigenVectors
  import Modelica_LinearSystems2.StateSpace;
  import Modelica_LinearSystems2.ZerosAndPoles;
  import Complex;
  input ZerosAndPoles zp "ZerosAndPoles transfer function of a system";
  input Boolean onlyEigenvectors = true;
  output Real eigvec[:, :] "eigen values of the system";
  output Complex eigval[:] "eigen values of the system";
end eigenVectors;

Generated at 2024-11-26T19:26:15Z by OpenModelicaOpenModelica 1.24.2 using GenerateDoc.mos