integralExpT

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

Information

This information is part of the Modelica Standard Library maintained by the Modelica Association.

(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

Syntax

(phi, gamma, gamma1) = integralExpT(A, B, T)

Inputs (3)

A

Type: Real[:,size(A, 1)]

B

Type: Real[size(A, 1),:]

T

Default Value: 1

Type: Real

Outputs (3)

phi

Type: Real[size(A, 1),size(A, 1)]

Description: = exp(A*T)

gamma

Type: Real[size(A, 1),size(B, 2)]

Description: = integral(phi)*B

gamma1

Type: Real[size(A, 1),size(B, 2)]

Description: = integral((T-t)*exp(A*t))*B