The ASPI Kit requires Python 2.6 or 2.7 as its basic running platform. Further to this the wxPython, Matplotlib and Numpy/Scipy modules are required for full functionality of all features to this software.
After successful installation of Python (2.6/.7) and its necessary modules, you are ready to use the ASPI Kit! Simply download one of the zip files attached to this page and save it in any folder on your PC. Be sure that when loading your own experimental data for use in the ASPI Kit, that it is located in the same folder as the AC_Kit_Console.py file. This ensures that the program is able to access the necessary data for simulation. The newly loaded data files must be labeled identically to the standard data files originally downloaded with the software, with the original files themselves being deleted or stored in a different path to avoid clashing within the software.
The purpose of this section in the ASPI Kit, is to experiment with the use of adaptive methods via Neural Networks (NNs) for modeling engineering process data and further to explore control of the process via adaptive methods.
The AC Kit was released in a standalone version (v1.0 & v1.1) and maybe downloaded separately on this site if your goal is just to experiment with adaptive identification and control of engineering process data. However, it is recommended to still download the full ASPI Kit from v 1.2 onwards due to a range of added features for signal analysis, which may also be useful in the sense of identification and control of SISO engineering processes. The AC Kit is thus an integrated part of the ASPI Kit software, currently featuring two key components.
Here this module is split into 3 distinct panels. The first allows the user to check their uploaded process data is in the path of the program via the “Check Loaded Data” button. Following this is the “Plot Data” button, enabling the user to see a visualisation of their uploaded process data. After the visualisation of the data is created, the user may require resampling of the data, for the purpose of control. Thus an edit titled “Resampling” is featured on the bottom of this first panel.
The essence behind these used adaptive methods (particularly LNU and QNUs as a class of HONUs), is to train the respective neural weights (i.e. unknown parameters of the model) to fit the shape of the process data. The engineering process can then be said to be identified successfully when the neural model (denoted by the green signal line in the ASPI Kit) resembles closely or even superimposes to original data for which the NN model is trained for. Once successful identification is achieved, the user may then extend adaptive control method onto the newly identified NN model and test whether it is also suitable to apply such method of control on the engineering process. Both the identification and control processes are based on the Gradient Descent method of training the respective NN models weights or RTRL form of training in the sense of dynamic NN models as implemented in the ASPI Kit. However, a second form of training incorporated into the ASPI Kit is the BPTT training method, which is a batch form of training the NN models weights over each epoch, via an extension of the Gradient Descent method with the famous Levenberg-Marquardt equation. For more details on the theoretical background behind these adaptive methods, please refer to the research papers listed in the reference section of this documentation.
The following panels of this program are thus divided into “Plant Identification” and “Neuro- Controller (as a state feedback controller)”. Here the user must fill in the learning rate for usage of gradient descent algorithm and furthermore epochs to tune the respective training algorithms. As the values of the learning rate and number of epochs differ between the RTRL and BPTT methods, separate edits are placed for each within each panel. There is also a feature for the user to define the length of the variables used in the model polynomial equations for the respective controller.
The control may be calculated for the following options : DLNU Plant Identification with LNU Neuro-Controller, DLNU Plant Identification with QNU Neuro-Controller or DQNU Plant Identification with QNU Neuro-Controller. This thus gives the user the option to compare behaviour of the different methods, furthermore allowing the user to tune for most optimal control to their process data.
The purpose of this section of the ASPI Kit is to experiment with control optimisation of the examined engineering process, via the above mentioned adaptive approaches. Often in control engineering, the use of PID controller as well as other forms of linear controllers on their own may not achieve the quickest response in terms of convergence to the desired behaviour of the engineering system. Thus it has been tested and proven in the various research works as listed in the reference section of this documentation, that such adaptive methods featured in the ASPI Kit can improve or optimise the behaviour of an already controlled process.
The principal of this module is analogical to that of the previous for initial control as in 2.1.1. Now with the control loop featuring the identified NN model as an already controlled plant (i.e. with input being desired behaviour "d", and output being the controlled output "yreal"), as opposed to just the identified process in itself. Here the adaptive Neuro-Controller takes the outputs from the previously identified NN model following the adaptive identification, as well as the difference between the desired behaviour of the process and the identified NN model output of the process. These parameters thus fill the input vector of the Neuro-Controller, with adaptive weights v, trained via the RTRL or BPTT methods analogical to that for the adaptive identification.
An adaptive gain parameter ro, may also be tuned for advantage to certain engineering processes. This parameter is thus multiplied with the newly calculated process input i.e. u = ro.(d - q). If it's desired to disable the adaptive gain parameter, it may be achieved by simply setting the "muro" edit to zero (i.e. muro = 0).
Considering the above, the user must save the respective data as follows: "uoutP.txt" - for the process input, "dP.txt" for the desired process behaviour and "youtP.txt" - corresponding to the controlled output of the engineering system. Following this you may then investigate in the same manner whether the engineering process under investigation may be successfully modeled via NN based approaches and furthermore controlled.
A key area of research within the ASPICC group is not only to use such adaptive methods in the sense of engineering process control, but also as an experimental tool for signal analysis!
Often in more complex processes there is a need to detect random anomalies within the process data for the purposes distinguishing the main dynamics of a signal or even detection of particular errors within an engineering process. Or furthermore, the need to filter out effects due to additional perturbations within a signal for the purposes of process identification. Thus, the ASPI Kit features such signal analysis tool in the form of a PCA analysis module, with further tools to be added shortly with ongoing research provided by the ASPICC group.
This section of the ASPI Kit is focused on analysis of SISO processes. Consider the following scheme:
For this given process, the output is not only influenced by the process input, but also due to the addition of certain pertubations within the process output. In this case these perturbations can be considered in the form of e.g. signal errors, thus the goal here is to analyse how the output of the process is influenced by the process input and for the purposes of adaptive modelling of such process behaviour, to rebuild the NN model with an input vector that most significantly resembles the main dynamics of the process with supressed effects due to these perturbations, hence the purpose of using this PCA module. For more comprehensive theory behind the principle of PCA analysis in the sense of adaptive modelling, please refer to the references section of this documentation.
On loading the respective data for the process under investigation, the next step is to setup the calculation and modelling of the process via PCA. The edits nu and ny, are enabled to set the previous amount of samples that are considered into the NN model. Tnu represents the time delay between the process input and output, with the ratio of dt/dthu, being the sampling rate to which the NN model is trained in modelling the behaviour of the considered process. For consideration in the PCA algorithm, the "neig" edit controls how many eigenvectors are taken for construction of the X back matrix or reconstructed input matrix for the NN model. After all the parameters are filled, the "Data after PCA Analysis" button provides a comparison of the NN model resembling the process output with that of the original data, with effects due to the additional perturbations within the process.
Apart from analysis of SISO engineering processes, the ASPI Kit is also aimed towards PCA analysis in the sense of MIMO systems as well. This module considers that for a given process output affected by the addition of perturbations i.e. due to sensor error, due to various process inputs, each process input may have its own respective time delay in relation to the process response i.e. process output. Further to this, the process output in itself may also have certain delays i.e. sensor delay.
Thus, the ASPI Kit features two key components for analysis of such MIMO processes. The first element is the Plant Identification. Here all process data is loaded with definition of the individual time delays for the process inputs with respect to a given process output (represented in samples). Further to this, any individual output delays i.e. due to sensor delay, is defined. The "neig" edit adjusts the number of eigenvectors considered for the reconstruction of the NN input vector.
It is important that the "Data After PCA Analysis" button is pressed first, before and further functions are used. This is due to the input vector x, not yet being defined as the goal is to first process the data for an input vector of the NN model, such to suppress the effects in the process output due to the pertubations within the process. Once computed, the NN architectures via LNU and QNU may be visualised to analyse modelling of the engineering process both with and without the effects of the PCA data processing.
The second key field is the "Plot Data" functions. After the NN models are computed, their respective NN weights are saved in within the ASPI Kit program. If the user wishes to understand how each individual process input effects a particular process output value according to the respective magnitude of the particular process input and at which sample of the process output. The "Visualise Expert System" function for all above NN architecture setups is incorporated.