delayss

Create state-space models with delayed inputs, outputs, and states

Syntax

sys=delayss(A,B,C,D,delayterms)
sys=delayss(A,B,C,D,ts,delayterms)

Description

sys=delayss(A,B,C,D,delayterms)constructs a continuous-time state-space model of the form:

$\begin{array}{l}\frac{dx}{dt}=Ax\left(t\right)+Bu\left(t\right)+\sum _{j=1}^{N}\left(Ajx\left(t-tj\right)+Bju\left(t-tj\right)\right)\\ y\left(t\right)=Cx\left(t\right)+Du\left(t\right)+\sum _{j=1}^{N}\left(Cjx\left(t-tj\right)+Dju\left(t-tj\right)\right)\end{array}$

where tj, j=1,..,N are time delays expressed in seconds. delayterms is a struct array with fields delay, a, b, c, d where the fields of delayterms(j) contain the values of tj, Aj, Bj, Cj, and Dj, respectively. The resulting model sys is a state-space (SS) model with internal delays.

sys=delayss(A,B,C,D,ts,delayterms)constructs the discrete-time counterpart:

$\begin{array}{l}x\left[k+1\right]=Ax\left[k\right]+Bu\left[k\right]+\sum _{j=1}^{N}\left\{Ajx\left[k-nj\right]+Bju\left[k-nj\right]\right\}\\ y\left[k\right]=Cx\left[k\right]+Du\left[k\right]+\sum _{j=1}^{N}\left\{Cjx\left[k-nj\right]+Dju\left[k-nj\right]\right\}\end{array}$

where Nj, j=1,..,N are time delays expressed as integer multiples of the sample time ts.

Examples

To create the model:

$\begin{array}{l}\frac{dx}{dt}=x\left(t\right)-x\left(t-1.2\right)+2u\left(t-0.5\right)\\ y\left(t\right)=x\left(t-0.5\right)+u\left(t\right)\end{array}$

type

DelayT(1) = struct('delay',0.5,'a',0,'b',2,'c',1,'d',0);
DelayT(2) = struct('delay',1.2,'a',-1,'b',0,'c',0,'d',0);
sys = delayss(1,0,0,1,DelayT)

a =
x1
x1   0

b =
u1
x1   2

c =
x1
y1   1

d =
u1
y1   1

(values computed with all internal delays set to zero)

Internal delays: 0.5  0.5  1.2

Continuous-time model.