Time Delay (Dead-Time)

Apps.TimeDelay History

Show minor edits - Show changes to markup

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 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 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 -
Added lines 1-51:

Model predictive controllers rely on dynamic models of the process, most often linear empirical models obtained by system identification. APMonitor and 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.

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

  1. 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)

  1. 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