MATLAB: NARX Time Delay Intuition

annDeep Learning ToolboxMATLABnarxneuralneural network

I am working on an undergrad project on ANNs and exploring the NARX model. I have a reasonable grasp of the workings of an ANN but am struggling with how the time delay works for ID and FD. When using this line to define a network:
net = narxnet(1:3,1:3,8);
Does this translate to:
y(t) = f(y(t-1), y(t-2), y(t-3), u(t-1), u(t-2), u(t-3))?
I am trying to express that the future value of a time series y(t) depends on current and past value of a time series y(t-1)…y(t-n) and current and past values of another time series u(t-1)…u(t-n). That is, I have y(t-1) etc and u(t-1) etc and want to predict y(t). The relationship I expect is that future time series values depend on relationships between past changes between values in each time series.
For clarity, if I was to use:
net = narxnet(0:2,1:3,8);
Would this translate to:
y(t) = f(y(t-1), y(t-2), y(t-3), u(t), u(t-1), u(t-2))?
Finally, am I right in thinking that feedback delay during training, rather than being related to the actual output of the ANN (since it's open loop), is the target value delay? How can I unify this with needing to predict y(t) based only on y(t-1) and u(t-1)?

Best Answer

You are correct.
I have mentioned this in several previous posts of the NEWSGROUP and ANSWERS.
Zero input delay is always allowed. Zero feedback delay (e.g., NARNET & NARXNET) is allowable in the open loop configuration, but not in the closed loop configuration.
IIRC, closing the loop results in the 0 feedback delay being ignored WITHOUT AN ERROR MESSAGE !
Hope this helps.
Thank you for formally accepting my answer
Greg