functionintegralExpT

Return the exponential, the integral of the exponential, and time-weighted integral of the exponential of a matrix

Extends from Modelica.Icons.Function (Icon for functions).

Information

(phi,gamma,gamma1) = Matrices.integralExpT(A,B);
(phi,gamma,gamma1) = Matrices.integralExpT(A,B,T=1);

Description

This function computes the exponential phi = e^(AT) of matrix A and the integral gamma = integral(phi*dt)*B and the integral integral((T-t)*exp(A*t)*dt)*B, where A is a square (n,n) matrix and B, gamma, and gamma1 are (n,m) matrices.

The function calculates the matrices phi,gamma,gamma1 through the equation:

                                 [ A B 0 ]
[phi gamma gamma1] = [I 0 0]*exp([ 0 0 I ]*T)
                                 [ 0 0 0 ]

The matrices define the discretized first-order-hold equivalent of a state-space system:

x(k+1) = phi*x(k) + gamma*u(k) + gamma1/T*(u(k+1) - u(k))

The first-order-hold sampling, also known as ramp-invariant method, gives more smooth control signals as the ZOH equivalent. First-order-hold sampling is, e.g., described in

K. J. Åström, B. Wittenmark:
Computer Controlled Systems - Theory and Design
Third Edition, p. 256

Inputs

TypeNameDefaultDescription
Real[:,size(A, 1)]A
Real[size(A, 1),:]B
RealT1

Outputs

TypeNameDefaultDescription
Real[size(A, 1),size(A, 1)]phi= exp(A*T)
Real[size(A, 1),size(B, 2)]gamma= integral(phi)*B
Real[size(A, 1),size(B, 2)]gamma1= integral((T-t)*exp(A*t))*B

Revisions

Release Notes:

  • July 31, 2002 by Nico Walther
    Realized.