RETARD(<order>, <delayed output>, <delay>, <input>);It is used to generate values delayed and smoothed of an time dependent variable.
<delayed output> is a variable that was declared of RET type.
<delay> is a real parameter.
<input> is a real expression.
The procedure may be used only in a type C node, so that, when the node is active, it is processed repeatedly at small intervals of time. As the <input> variable or expression takes successive values, the values of the <delayed output> in each repetition tend to approach, with certain <delay>, those of the <input>. The form of approach depends on the <order> of the RETARD. For low order the output is the input smoothed. For higher orders the output is more and more like the input but retarded in time by the quantity <delay>.
The output variable must be declared in a declaration in the form:
<variable name>: RET: <order>.
An order n delay is calculated for a set of n differential equations.
This procedure may be only used in a type C node.
Example:
Spp (C) :: Demand' := K * Demand + GovDemand(TIME); RETARD(4, Supply, Ret_Months, Percep * Demand);The values of Demand are produced by the differential equation. The Supply tends to adjust to the Demand affected by a perception factor of the Demand. This factor may depend on other socioeconomic variables.