functioneigenVectors
Calculate the rigth eigenvectors of a linear state space system and write them columnwise in a matrix. Optionally, the eigenvalues are computed
Information
Syntax
(eigenvectors, eigenvalues) = StateSpace.Analysis.eigenVectors(ss, onlyEigenvectors)
Description
Calculate the eigenvectors and optionally (onlyEigenvectors=false) the eigenvalues of a state space system. 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
Modelica_LinearSystems2.StateSpace ss=Modelica_LinearSystems2.StateSpace(
A=[-1,1;-1,-1],
B=[1;1],
C=[1,1],
D=[0]);
Real eigenvectors[2,2];
Complex eigenvalues[2];
algorithm
(eigenvectors, eigenvalues) = Modelica_LinearSystems2.StateSpace.Analysis.eigenVectors(ss, true);
// eigenvectors = [0.707, 0; 0, 0.707]
// eigenvalues = {-1 + 1j, -1 - 1j}
|0.707 | | 0.707 |
i.e. v1 = | |, v2 = | |
|0.707i| |-0.707i|
Inputs
| Type | Name | Default | Description |
|---|---|---|---|
| StateSpace | ss | state space system | |
| Boolean | onlyEigenvectors | true |
Outputs
| Type | Name | Default | Description |
|---|---|---|---|
| Real[size(ss.A, 1),size(ss.A, 2)] | eigvec | eigen values of the system | |
| Complex[size(ss.A, 1)] | eigval | fill(Complex(0), size(ss.A, 1)) | eigen values of the system |