Main Content

getDelayModel

State-space representation of internal delays

Syntax

[H,tau] = getDelayModel(sys)
[A,B1,B2,C1,C2,D11,D12,D21,D22,E,tau] = getDelayModel(sys)

Description

[H,tau] = getDelayModel(sys) decomposes a state-space model sys with internal delays into a delay-free state-space model, H, and a vector of internal delays, tau. The relationship among sys, H, and tau is shown in the following diagram.

[A,B1,B2,C1,C2,D11,D12,D21,D22,E,tau] = getDelayModel(sys) returns the set of state-space matrices and internal delay vector, tau, that explicitly describe the state-space model sys. These state-space matrices are defined by the state-space equations:

  • Continuous-time sys:

    Edx(t)dt=Ax(t)+B1u(t)+B2w(t)y(t)=C1x(t)+D11u(t)+D12w(t)z(t)=C2x(t)+D21u(t)+D22w(t)w(t)=z(tτ)

  • Discrete-time sys:

    Ex[k+1]=Ax[k]+B1u[k]+B2w[k]y[k]=C1x[k]+D11u[k]+D12w[k]z[k]=C2x[k]+D21u[k]+D22w[k]w[k]=z[kτ]

Input Arguments

sys

Any state-space (ss) model.

Output Arguments

H

Delay-free state-space model (ss). H results from decomposing sys into a delay-free component and a component exp(-tau*s) that represents all internal delays.

If sys has no internal delays, H is equal to sys.

tau

Vector of internal delays of sys, expressed in the time units of sys. The vector tau results from decomposing sys into a delay-free state-space model H and a component exp(-tau*s) that represents all internal delays.

If sys has no internal delays, tau is empty.

A,B1,B2,C1,C2,D11,D12,D21,D22,E

Set of state-space matrices that, with the internal delay vector tau, explicitly describe the state-space model sys.

For explicit state-space models (E = I, or sys.e = []), the output E = [].

If sys has no internal delays, the outputs B2, C2, D12, D21, and D22 are all empty ([]).

Examples

collapse all

Decompose the following closed-loop system with internal delay into a delay-free component and a component representing the internal delay.

Create the closed-loop model sys from r to y.

G = tf(1,[1 10],'InputDelay',2.1); 
C = pid(0.5,2.3);
sys = feedback(C*G,1);

sys is a state-space (ss) model with an internal delay that arises from closing the feedback loop on a plant with an input delay.

Decompose sys into a delay-free state-space model and the value of the internal delay.

[H,tau] = getDelayModel(sys);

Confirm that the internal delay matches the original input delay on the plant.

tau
tau = 2.1000

Version History

Introduced in R2006a