Multidimensional integral operator of Urysohn typeTechnical task is to identify kernel U[x,y,s], which is three dimensional function, provided recorded inputs x(t), y(t) and output z(t)Algorithm is shown in DEMO (quantized) and DEMO (continuous) programs, mathematical details can be found in the articles Modelling of Nonlinear Control Systems using the Discrete Urysohn Operator Canonical blockoriented model Urysohn Adaptive Filter I opened new page for all coding repository, theory and examples of identification of physical objects NAF. This page will be removed later. 
Identification test on nonlinear mechanical systemsDownload of entire C# code along with the test data UTest.zipThis identification test is conducted with participation of my coauthor in development of theory and practical algorithms  Mike Poluektov. He is also a coauthor in multiple publications About the dataThe data is found via Google search. We've found several publicly available datasets and tested one of them so far. The link to the data site (DAISY) was found in the article of Torbjorn Wingren. We very appreciate every effort to provide data recordings for identification of physically existing objects and will continue this path of testing real data. We will keep publishing identification results as soon as we get them.Although we appreciate the efforts of researchers in collecting and publishing data, we have to add some critical remarks about the data we've tested so far. First reason for constructive criticism is that data samples are too short. Obviously, the data has been recorded by certain automatic registration tools, so we don't see reason why they all are about 1,000 points and not 10,000. Second constructive criticism remark is that there must be two samples, one of which is used for identification and another for accuracy test. When people use neural network algorithms, they can build absolutely accurate model by blowing up the size of the model. But going over the reasonable limit with the number of parameters can be seen on testing of identified model by an independent realization which have not been used in identification process. At the moment we've tested only single input models. The accuracy of the models is about 2 percent, that means the average difference between modelled and recorded output value is near 2 percent. Certainly, with Urysohn model we could provide absolutely accurate model (with zero discrepancy), but we put some reasonable limit on the size of Urysohn operator based on expected view of the kernel. That is, of course, subjective criterion, but this is the best we could do with this data. As we've said for the proper accuracy test multiple data samples are needed. Test resultsBelow is the name of the tested object and the short fragment of overlapped actual and modelled outputs.

Self test with approximately known input signal CODE
In this test a new identification concept introduced by Mike Poluektov was tested. The matter of the concept is that identified kernel is not considered as a matrix of elements, but the collection of straight lines within each column. And, if the input level falls within the linear block, each end point is correct according to computed weights. The mathematical details will be published. Here we can show the result. The input signal is randomly distorted, the average error is about 10% of actual value. That means that, when correcting a matrix element, we may correct the wrong value (adjacent but wrong). When classic identification method is used, we can see strong irregularities in kernel image. When Mike's idea is used the kernel is smooth. The accuracy is identical in both cases, but the kernel looks closer to theoretical expectations with linear approximation in identification step. 
Identification of the physical nonlinear object using publicly available dataset F16
Download of entire CODE The benchmark is referred as: J.P. Noël and M. Schoukens, F16 aircraft benchmark based on ground vibration test data, 2017 Workshop on Nonlinear System Identification Benchmarks, pp. 1923, Brussels, Belgium, April 2426, 2017. The object has two inputs and three outputs. The datasets are available in pairs, one of which is used for training and another for accuracy test (validation of the model). The results are presented in tables. The accuracy is measured as standard error expressed in percents relatively to the output range. Table 1
Table 2
Table 3
Table 4
Table 5
