📄 inverse
字号:
------------------------------------------------------
OVERVIEW OF FILES ASSOCIATED WITH TRAINING OF INVERSE
MODELS AND SIMULATION OF DIRECT INVERSE CONTROLLERS
------------------------------------------------------
Matlab tools for training an inverse neural network model of a process
and for simulating direct inverse control of the process.
-OO-
DESCRIPTION
Assuming the process to be controlled can be described by
y(t) = f(y(t-1),...,y(t-n),u(t-1),...,u(t-m))
then the files mentioned below can train a neural network to act as the
inverse of the process:
^ ^ -1
u(t) = f (y(t+1),y(t),...,y(t-n+1),u(t-1),...,u(t-m+1))
The inverse model can then be used for controlling the process by replacing
y(t+1) with the desired output (the reference) one step ahead. This is
called "direct inverse control". The inverse model can also be used for
internal model control (read 'Imc') or for feedforward (read 'Feedforw').
The "process" to be controlled can be a SIMULINK model or a model described by
a set of differential equations specified in a MATLAB-function. If the training
data has been obtained from a "real world" experiment (i.e., a MATLAB/SIMULINK
model is not available) model is not available the closed-loop system can also
be simulated by using the network model for simulating the process.
The NNARX model can be generated with the functions available in the
NNSYSID toolbox.
-OO-
REFERENCES
o D. Psaltis, A. Sideris, A.A. Yamamura: "A Multilayerd Neural Network
Controller," Control Sys. Mag., Vol. 8, No. 2, pp. 17-21, 1988.
o K.J. Hunt, D. Sbarbaro, R. Zbikowski, P.J. Gawthrop: "Neural Networks
for Control Systems - A Survey," Automatica, Vol. 28, No. 6,
pp. 1083-1112, 1992.
-OO-
FILE OVERVIEW:
Inverse - This file.
general - Train an inverse model using the general (/direct) method.
The network is trained with a Levenberg-Marquardt algorithm.
special1 - Train an inverse model using specialized (/indirect) training.
The network is trained with recursive back-propagation algorithm.
invinit1 - File containing design parameters for 'special1'.
special2 - Train an inverse model using specialized (indirect) training.
As for "special1" the network is trained by disregarding the
regressors dependency on the network weights. However, "special2"
implements a much faster recursive Gauss-Newton type algorithm.
special3 - Train an inverse model using specialized (indirect) training.
The network is trained with a true recursive Gauss-Newton.
invinit2 - File containing design parameters for 'special2' and 'special3'.
invsim - Function for evaluating inverse models.
invcon - Program for simulating direct inverse control.
invinit - File containing initializations for 'invcon'.
invtest - A small demonstration example.
The following functions must be available as well:
NNSYSID toolbox - Neural Network Based System Identification
shift, siggener - Functions used by special1, special2, and invcon
smout, springm, spm1 - Files used for demonstration
-OO-
SUGGESTED WORKING PROCEDURE FOR TESTING THE CONCEPT ON A KNOWN PROCESS
1: BUILD THE PROCESS
Build the process in SIMULINK or write the differential equations in a
MATLAB-function. If SIMULINK is used, specify input to and output from the
model by an inport and an outport, respectively. If SIMULINK is not available,
write the differential equations in a MATLAB-function in the format required
by the ODE45 differential equation solver.
2: MAKE AN EXPERIMENT
Use the function 'experim' to generate a data set to be used
for identifying a neural network model of the process.
3: TRAIN AN INVERSE MODEL USING GENERAL TRAINING
Determine a network architecture and use the function 'general' to obtain a
preliminary inverse model. The function 'invsim' will evaluate the trained
network model. If the process is sufficiently simple and a reasonable inverse
model has been obtained you can stop here and go directly to the simulation
stage (6).
4. TRAIN A "FORWARD" MODEL OF THE PROCESS
Identify a "forward" model of the process with the 'nnarx' function and
evaluate the obtained network with 'nnvalid'. This network is used for providing
estimates of the Jacobian of the process which is required for training the
controller network.
5: TRAIN AN INVERSE MODEL WITH SPECIALIZED TRAINING
A major problem with the general approach is that it is not "goal directed."
Thus it is recommended to proceed with specialized training. The programs
'special2' and 'special3' are preferred since these in general converge much
faster than the back-prop algorithm implemented in 'special1'. Again, the
function 'invsim' may be used for evaluating the trained inverse model
afterwards, but keep in mind that it has been obtained by minimizing
different criterion.
6: SIMULATION OF CLOSED-LOOP SYSTEM
The closed-loop system is simulated with the function 'optcon'. The design
parameters necessary for running this program must be defined in the file
'optinit'. For example, the user must specify the name of the
MATLAB/SIMULINK model, sampling period,, reference signal, and the name of the
file containing network architecture and weights of the inverse model.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -