




The NNSYSID toolbox is a set of MATLAB tools for neural network based identification
of nonlinear dynamic systems. The toolbox contains a number of m and MEXfiles
for training and evaluation of multilayer perceptron type neural networks
within the MATLAB environment. There are functions for training of ordinary
feedforward networks as well as for identification of nonlinear dynamic
systems and for timeseries analysis. Version 2 requires MATLAB 5.3 or
higher. For MATLAB 4.2MATLAB 5.2 it is possible to use the old Version
1.1. In this case the Signal Processing Toolbox must be available. The
toolbox is completely independent of the Neural Network Toolbox and the
System Identification Toolbox.
The toolbox contains:

Fast, robust, and easytouse training algorithms.

A number of different model structures for modelling of dynamic systems.

Validation of trained network models.

Estimation of the models's generalization ability.

Demonstration programs.
HOW
CAN I LEARN THE THEORY? 
The book
Neural Networks for Modelling and Control of Dynamic
Systems
by Magnus Nørgaard, O. Ravn, N. K. Poulsen, and L. K. Hansen
is available on SpringerVerlag, London, in the series Advanced Textbooks
in Control and Signal Processing.
Version 2
The toolbox will work under Matlab 5.3 and Matlab 6. No "official" toolboxes are required.
Version 2 is not backward compatible with Version 1.1. The toolbox has
been zipped into a file of approximately 1.5 Mbytes. This file contains
the manual in Postscript and PDFformats.
Version 1.1
The toolbox has been compressed and packed into a "zip" file of approximately
0.53 Mbytes. From the matrix below you can download different versions
of the toolbox.
NOTICE that there is a special PCversion for MATLAB 4.2 As explained in
the release notes the "printf" statements works differently under Unix
and Windows 3.1. The PC version contains the toolbox with the suggested
modification for PCs. Under MATLAB5/Windows 95 this problem has been eliminated.
It appears that problems occur when trying to print the manuals on certain
printers. I have therefore used the unixcommand 'ps2pdf' to convert the
manuals to pdfformat. View tutorial
section or
reference
section. The manuals are included in postscript format in the zipfiles
above.
MEX files for version 1.1
All functions in the toolbox have been implemented as Mfunctions. However,
to speed up some of the most time consuming functions, a few dublets have
been implemented in C and can be compiled to MEXfiles. For users that
do not have access to a compiler or can't figure out how to use their compiler
I have precompiled the MEXfiles for a few platforms
Several things have changed in Version 2. This means that hardly any of
the functions will be compatible with Version 1.1. However, only minor
changes in the function calls must be made. Some of the major new features
are:

The toolbox is no longer dependent on the Signal Processing Toolbox.

The training is more automatic (better stopping criteria have been introduced).

Easier call of training algorithms.

Options to training algorithms changed to an object oriented like fashion.

Bug fixes and finetuning.
Please bear with me. This is not a commercial product and thus I cannot
spare the time for supporting it. BUT, if you should find a major bug do
let me know and hopefully I can correct it in a future release.
We encourage all users of the NNSYSID toolbox to write us about their
successes (and failures?). We are very interested in hearing where the
toolbox is used and for what type of applications. Since your comments
very well may influence future releases of the toolbox this is also in
your own interest! You can email your experiences to the address listed
at the bottom of this page.
AN
ADDON FOR CONTROL DESIGN 
If you are interested in neural networks for control we recommend that
you download our NNCTRL toolkit. See our
NNCTRL
toolkit page for supplementary information.
The toolbox functions grouped by subject

FUNCTIONS FOR TRAINING 
batbp 
Batch version of the backpropagation algorithm 
incbp 
Recursive (/incremental) version of backpropagation 
igls 
Iterated Generalized Least Squares training of multioutput
nets 
marq 
LevenbergMarquardt method 
marqlm 
Memorysaving implementation of the LevenbergMarquardt
method 
rpe 
Recursive prediction error method 


FUNCTIONS FOR PREPARATION OF
DATA 
dscale 
Scale data to zero mean and variance one 


FUNCTIONS FOR TRAINING MODELS
OF DYNAMIC SYSTEMS 
lipschit 
Determine the lag space 
nnarmax1 
Identify a Neural Network ARMAX (or ARMA) model (Linear
MA filter) 
nnarmax2 
Identify a Neural Network ARMAX (or ARMA) model 
nnarx 
Identify a Neural Network ARX (or AR) model 
nnarxm 
Identify a multi output Neural Network ARX (or AR) model. 
nnigls 
Iterated Generalized LS training of multioutput NNARX models. 
nniol 
Identify a Neural Network model suited for IO linearization
control 
nnoe 
Identify a Neural Network Output Error model 
nnrarmx1 
Recursive counterpart to NNARMAX1 
nnrarmx2 
Recursive counterpart to NNARMAX2 
nnrarx 
Recursive counterpart to NNARX 
nnssif 
Identify a NN State Space Innovations form model 


FUNCTIONS FOR PRUNING NETWORKS 
netstruc 
Extract weight matrices from matrix of parameter vectors 
nnprune 
Prune models of dynamic systems with Optimal Brain Surgeon
(OBS) 
obdprune 
Prune feedforward networks with Optimal Brain Damage (OBD) 
obsprune 
Prune feedforward networks with Optimal Brain Surgeon (OBS) 


FUNCTIONS FOR EVALUATING TRAINED
NETWORKS 
fpe 
FPE estimate of the generalization error for feedforward
nets 
ifvalid 
Validation of models generated by NNSSIF 
ioleval 
Validation of models generated by NNIOL 
kpredict 
kstep ahead prediction of dynamic systems. 
loo 
LeaveOneOut estimate of generalization error for feedforward
nets 
nneval 
Validation of feedforward networks (trained by marq,rpe,bp) 
nnfpe 
FPE for I/O models of dynamic systems 
nnloo 
LeaveOneOut estimate for NNARX models. 
nnsimul 
Simulate model of dynamic system from sequence of inputs 
nnvalid 
Validation of I/O models of dynamic systems 
wrescale 
Rescale weights of trained network 
xcorrel 
Calculates highorder crosscorrelation functions 


MISCELLANOUS FUNCTIONS 
crossco 
Calculate correlation coefficients. 
drawnet 
Draws a two layer neural network 
getgrad 
Derivative of network outputs w.r.t. the weights 
pmntanh 
Fast tanh function 
settrain 
Set parameters for training algorithms. 


DEMOS 
test1 
Demonstrates different training methods on a curve fitting
example 
test2 
Demonstrates the NNARX function 
test3 
Demonstrates the NNARMAX2 function 
test4 
Demonstrates the NNSSIF function 
test5 
Demonstrates the NNOE function 
test6 
Demonstrates the effect of regularization by weight decay 
test7 
Demonstrates pruning by OBS on the sunspot benchmark problem 

For more information, please contact
