Arma
- Last UpdatedFeb 19, 2025
- 2 minute read
- PI System
- PI Server 2023
- PI Server
Calculate dynamic response for Auto Regressive Moving average model as shown in Examples.
Syntax
Arma(in, runflag, (a1, a2, โฆ aN),(b0, b1, b2, โฆ bN))
Arguments
The denominator and numerator coefficient series are enclosed in parenthesis with a comma between the two. There must be only one more term (b0) in the numerator than denominator. Both in and runflag may be any expression that evaluates to a number.
in
Must be an integer or real number.
runflag
Non-zero enables filter to run.
a1, a2, ...
Coefficients of past output terms.
b0, b1, b2 ...
Coefficients of the present and past input terms of the model.
Returns
The next output value in time series response to past and present input.
ut = a1 * ut-1 + a2 * ut-2 + โฆ + an * ut-n + b0 * yt +
b1 * yt-1 + b2 * yt-2 + โฆ + bn * yt-n
Where ut is model output at time t, now. ut-1 is output one sample interval in the past. yt is the input signal at time t. If runFlag expression result is 0, the model is reset. Depending on the number of coefficients used, Arma stores the inputs and outputs until an evaluation of the model is available. For example, in
Arma( 'input_tag', 1, ( 0. ,1), ( 1, -1 ,1))
Arma stores two previous values of the input and output. Hence when the point is first created, no good results are returned until two prior values of the input are stored. From then on, the two most current previous values are stored.
Exceptions
Arma gives different results depending on which type of scheduling is used. In scan class scheduling, the interval between time series values depends on the scan class and gives values at evenly spaced time intervals.
Event-based scheduling is dependent on a trigger from another point. With event-based scheduling, Arma sometimes gives results that are not trustworthy. Use Arma with event-based scheduling only:
-
If the exception deviation is not zero.
-
If the point used for event-based scheduling is exception-base rather than scan-based.
Arma is intended for the PE Scheduler only. Use of Arma in client applications might produce unexpected results. If the input point is not a real number or integer, Arma returns an error.
Example
Derivative: Arma('input_tag', 1, (0.), (1, -1))
Integration: Arma('input_tag', 1, (1.), (.05, 0.))
Second order filter: Arma('input_tag', 1, (.25,.25), (.1,.25,.15 ))