Neural Network Based System Identification Toolbox Version 2
The NNSYSID toolbox contains a number of tools for identification of nonlinear dynamic systems with neural networks. Several nonlinear model structures based on multilayer perceptron networks are provided and there are also many functions for model validation and model structure selection. The toolbox requires MATLAB 5.3 or higher. A manual (~110 pages, pdf format) accompanies the toolbox. More information can be found on
www.iau.dtu.dk/research/control/nnsysid.html
Very good! I am now doing some research in NMPC(Nonlinear model predictive control), it help me a lot. Thanks, Mr. Norgaard.
24 Apr 2004
Hami Golbayani
01 May 2004
Boo Chin Eng
Sorry, anybody knows how to do the k--step prediction for (NNARXM)....except dealing it with seperate MISO systems
07 Feb 2005
mostafa mahi
07 Feb 2005
mostafa mahi
15 Jun 2005
San dar
hi The Moon
09 Nov 2005
Satja Lumbar
I find that validation needs an update to work properly on MATLAB 7 (I use 7.01). In maxy functions (such as nnvalid.m) "break;" must be raplaced with "return;" for them to work properly. Otherwise a very useful tool.
24 Nov 2006
Sergio Velásquez
12 Mar 2007
s p
Excellent tool.
04 Apr 2007
Jim Wicket
Does anyone know how the meaning of doing forecasting with the function 'kpredict' ? It seems to me that this function only predicts the observed data k-th step ahead. It means the prediction does not do anything beyond the last data point of the dataset "y" that was used to train this network. For example, I want to predict the next 20 step ahead, then prediction starts on the point y(21), y(22), y(23), ..., y(end). These values are more like overlaying the original data with a lag of the first 20 points, with the new set of predictions. It never does prediction for future time step, such as y(end + 1) , y(end + 2), y(end + 3), ..., y(end + k).
If anyone knows the answer, then I would appreciate if you can share your understanding with me and anyone else's who is trying to use the toolbox.
I have a problem in running the toolbox nnsysid. Actually I got the following messeges,If anyone knows the answer, then I would appreciate.
[w1,w2] = wrescale('nnoe',W1,W2,uscales,yscales,NN);
>> [thd,trv,fpev,tev,deff,pv] = ...
nnprune('nnoe',NetDef,W1,W2,u1s,y1s,NN,trparms,prparms,u2s,y2s);
Warning: Matrix is close to singular or badly scaled.
Results may be inaccurate. RCOND = 1.639375e-016.
> In nnprune at 372
Network training started.
iteration # 1 W = 5.571e-002
iteration # 2 W = 4.712e-002
iteration # 3 W = 4.314e-002
iteration # 4 W = 3.508e-002
iteration # 5 W = 3.186e-002
iteration # 6 W = 2.975e-002
iteration # 7 W = 2.947e-002
iteration # 8 W = 2.904e-002
iteration # 9 W = 2.889e-002
iteration # 10 W = 2.883e-002
iteration # 11 W = 2.880e-002
iteration # 12 W = 2.869e-002
iteration # 13 W = 2.864e-002
iteration # 14 W = 2.863e-002
iteration # 15 W = 2.862e-002
iteration # 16 W = 2.859e-002
iteration # 17 W = 2.858e-002
iteration # 18 W = 2.855e-002
iteration # 19 W = 2.855e-002
iteration # 20 W = 2.853e-002
iteration # 21 W = 2.853e-002
iteration # 22 W = 2.852e-002
iteration # 23 W = 2.851e-002
iteration # 24 W = 2.850e-002
iteration # 25 W = 2.850e-002
iteration # 26 W = 2.849e-002
iteration # 27 W = 2.849e-002
iteration # 28 W = 2.849e-002
iteration # 29 W = 2.848e-002
iteration # 30 W = 2.848e-002
iteration # 31 W = 2.848e-002
iteration # 32 W = 2.848e-002
iteration # 33 W = 2.848e-002
iteration # 34 W = 2.847e-002
iteration # 35 W = 2.847e-002
iteration # 36 W = 2.847e-002
iteration # 37 W = 2.847e-002
iteration # 38 W = 2.846e-002
iteration # 39 W = 2.846e-002
iteration # 40 W = 2.846e-002
iteration # 41 W = 2.845e-002
iteration # 42 W = 2.845e-002
iteration # 43 W = 2.845e-002
iteration # 44 W = 2.845e-002
iteration # 45 W = 2.844e-002
iteration # 46 W = 2.844e-002
iteration # 47 W = 2.844e-002
iteration # 48 W = 2.844e-002
iteration # 49 W = 2.844e-002
iteration # 50 W = 2.843e-002
Network training ended.
Network training started.
??? Error using ==> nnoe
AN ERROR OCCURED IN A CMEX-PROGRAM
Error in ==> nnprune at 257
[W1,W2,dummy1,dummy2,dummy3] = nnoe(NetDef,NN,W1,W2,trparmsp,Y,U);