First, it is necessary, one or more controllers to generate the input and output data to be mapped by the neural network, for example, I would suggest my article in IEEE Trans. on Sustainable Energy, "A Multilayer Perceptron Controller Applied to the Direct Power Control of a Doubly Fed Induction Generator", that you can access in my profile on Researchgate.
Design a neural network controller and train it with the normalized input and output. Input and output data may depend on your application under consideration. This trained neural network controller can be incorporated for a control schema. Widely used neural network to act as controller is Back Propagation Network, BPN as developed by Hinton, Rumelhart and Williams. Realize this BPN (follow any books and articles for this algorithm) as a controller and this can be used in control schema.
For training neural network you need to have real-time data sets of the inputs and the output of the system/plant. There are typically two steps involved when using neural networks for control 1/ System identification. 2/ Control design. In the system identification stage, you develop a neural network model of the plant that you want to control. In the control design stage, you use the neural network plant model to design (or train) the controller.
For model reference control, the controller is a neural network that is trained to
control a plant so that it follows a reference model. The neural network plant model is used to assist in the controller training. The neural model reference control architecture uses two neural networks: a controller network and a plant model network. Each network has two layers, and you can select the number of neurons to use in the hidden layers. There are three sets of controller inputs
• Delayed reference inputs
• Delayed controller outputs
• Delayed plant outputs
Typically,the number of delays increases with the order of the plant. There are two sets of inputs to the neural network plant model
NN training Algorithm (learning Law) depends on the chosen control methodology (schema). There are two main types of NN control; online and offline. In the former, NN trains online while the system is running (using measured data). This learning will be driven by the difference between system's output and the required reference model's output. In the later, You collect some data from you actual system, build an accurate model (System Identification), and then train the NN to control this model off-line before you connect it to the actual system.
Second, you should chose the controller design methodology. This has a wide range of approaches, such as feedback linearization, optimal control, online critique, backstepping ... etc. A lot of research is available in all those methods. You can easily find an NN training algorithm for your NN Control approach.
I recommend "Neural Network Control of Robot Manipulators and Nonlinear Systems" by F. Lewis, S. Jagannathan and A. Yesildirek. It is a good book that covers the theory and shows a lot of examples.
The neural net is really just a math model that generalizes results to inputs in accordance with training. To use a neural net in a application like for example a control loop, you will need to prepare a set of data records made by inputs and the respective outputs, organized in training set and validation set.
To obtain this sets of data records you must model your problem and run a model to produce the results, like for example a thermodynamic model of steam generator, if you are using a neural net to mimic the behaviour or the energy flow. This will give you a first training that later in commissioning and real condition will be improved. The alternative is to use collected measurements and real data records from a set of samples.
I am working on a project in which I have to autotune the PI controller. The PI controller is connected to Brushless DC motor.The comments posted above are quite helpful. From them, I get that there are two ways to get the training data for a neural network.
1) To get input-output pairs from real data records
2) To use a reference model. The output of this reference model will be compared with output of the actual system and the error will be used to train the network.
So my question is, from where to get the reference model? And is the reference model also being controlled by a neural network or is it a simple input and output of a BLDC motor?