## Apps.TimeDelay History

Changed lines 1-5 from:
Model predictive controllers rely on dynamic models of the process, most often linear empirical models obtained by system identification. APMonitor and [[https://gekko.readthedocs.io/en/latest/|GEKKO]] support continuous or discrete state space and autoregressive exogenous (ARX) input models. The delay function is a simplified ARX model that includes a single input and output with a delay structure specified by the number of integer time steps.
to:
(:title Time Delay (Dead-Time):)
(:keywords dead-time, time delay, input, output
, model predictive control, dynamic optimization, engineering optimization, Python, Gekko, APMonitor, FOPDT:)
(:description Time delay is also known as dead-time
and is implemented with the delay function in Python Gekko. This is a discrete state-space model that is added to the model when there is input or output delay.:)

Model predictive controllers rely on dynamic models of the process, most often linear empirical models obtained by system identification. APMonitor and [[https://gekko.readthedocs.io/en/latest/|GEKKO]] support continuous or discrete state space and autoregressive exogenous (ARX) input models. The delay function implements dead-time and
is a simplified ARX model that includes a single input and output with a delay structure specified by the number of integer time steps.
June 12, 2019, at 10:16 PM by 10.37.73.127 -
Model predictive controllers rely on dynamic models of the process, most often linear empirical models obtained by system identification. APMonitor and [[https://gekko.readthedocs.io/en/latest/|GEKKO]] support continuous or discrete state space and autoregressive exogenous (ARX) input models. The delay function is a simplified ARX model that includes a single input and output with a delay structure specified by the number of integer time steps.

Usage: delay(u,y,steps=1)
u = delay input
y = delay output
steps = integer number of steps (default=1)
Description: Build a delay with number of time steps between
input (u) and output (y) with a time series model.

The following is an example of implementing a discrete time series model for an input delay of 60 seconds. The sample time for this model is 15 seconds with 4 steps of delay. The model is implemented in Gekko with the delay function.

%width=550px%Attach:input_delay_dss.png

(:source lang=python:)
import numpy as np
from gekko import GEKKO
import matplotlib.pyplot as plt

# Create GEKKO model
m = GEKKO()

cv = m.Var()
mv = m.Param()

m.delay(mv,cv,4)

m.time = np.linspace(0,120,9)
mv.value = np.zeros(9)
mv.value[3:9] = 1
m.options.imode = 4
m.options.nodes = 2

m.solve() # (GUI=True)

# also create a Python plot
import matplotlib.pyplot as plt

plt.subplot(2,1,1)
plt.plot(m.time,mv.value,'r-',label=r'MV')
plt.legend()
plt.subplot(2,1,2)
plt.plot(m.time,cv.value,'b--',label=r'$CV$')
plt.legend()
plt.show()
(:sourceend:)

Also see

* [[Apps/DiscreteStateSpace | Discrete State Space]]
* [[Apps/ARXTimeSeries | ARX Time Series]]
* [[Apps/LinearStateSpace|Continuous State Space]]