Online Method
for System Identification using Fuzzy Neural Networks
Cullen McMahon
Neural Networks Final Project Fall 2010
Introduction
System identification attempts to predict the long term behavior
of a system. Linear systems are relatively easy to identify; an N
state systems behavior can be captured in a simple NxN matrix for
which there many methods for estimating. Non-linear systems are
much more difficult to predict. This page focuses on applying fuzzy
neural networks to the problem.
Previous Work
Neural networks have previously been used to tackle this problem. Choi
et al (1998) used an multilayer perceptron to model the non-linear
aspects of a system. Wang and Lin (1998) used a Runge-Kutta Neural
Network to directly determine the gradients of a non-linear system.
Neither approach was able to guarantee the stability of the
network.
Fuzzy Neural Networks
Yu and Ferreyra presented a method for using weighted fuzzy rules whose
parameters are determined via neural network to identify a system. The
method is proven to be stable using Lyapunov functions. The network was
implemented and tested on a range of non-linear equations with varying
parameters.
GUI
A GUI that can simulate a three variable system and train the fuzzy
neural network on the results was designed. The GUI takes in any three
variable update rules and each variable's initial conditions, the step
time of the simulation and the simulation length. To train the network
three training parameters must be specified: The number of fuzzy rules,
the cutoff training time, and the learning rate of the network. The
training cutoff time indicates how long the network is trained for.
The GUI can be downloaded here. To open it, unpack the .zip files
contents, start Matlab, and navigate the work space to the Final
Project
folder. Right click on the NNfinalGUI.fig, and select .Open in GUIDE..
Click on the green arrow at the top of the screen; the GUI should now be
ready for operation.
Results and Conclusions
The number of fuzzy rules was the parameter that most greatly affected
the performance of the network. Training time also had a large
impact
on results. The learning rate did not significantly affect the
performance of the network, although only values around 1 were
tested.
Surprisingly, the step time of the simulation had a large impact on the
results. The network is probably adapting to the local behavior of
the
system too well, without retaining the overall shape of the system.