Simulation DEMO for two sequential Urysohns. Cascading models(This is a brief introduction, more details in the article)Single Urysohn model has limitation in its descriptive capabilities. It is more generic than linear model or even Hammerstein, but nontheless it has a limit. The researchers always tried to break limitations of the models, there is even a dictionary concept  PointCloud. The matter of such model is to make a dictionary and to add each new input fragment and output scalar to it. When dictionary is well populated use it for prediction by searching items similar to given input. The articles with this concept can be found by keywords Nonparametric Identification. In this article we show that Urysohn followed by static nonlinearity has same unlimited descriptive capabilities as PointCloud. Let us consider quantized case $$y_i = \sum_{j=0}^m U[x(ij), j].$$ The model $U[\cdot, \cdot]$ is a matrix, the inputs $x(ij)$ are always integers, they actually may be real numbers but converted to integers by quantization $x = round[(x_{real}  x_{min}) / \Delta]$. They are used to select matrix elements in the same way as volume controls are used in professional sound equipment. The positions of the volume controls may be interpreted as $x_k$. There are multiple positions, so they are indexed as $j$. The parameter, indicated, near the current control position can be interpreted as matrix $U[\cdot,\cdot]$ element. Their sum is output $y_i$. Assume we have the object that can't be described by algebraic expression and need a look up table that maps every different input into a provided output. The matrix $U[\cdot, \cdot]$ for such object can be designed similar to example below
Any 4 different numbers selected as one number per column give different sum. The minimum sum is 85 and maximum is 340. When all possible sums are sorted, they make whole numbers from 85 to 340, which is $256 = 4^4$ whole numbers. If to use sums as indexes of another lookup table, we can map any unique input into any provided output. The second lookup table is static nonlinearity in quantized form. That means Urysohn followed by nonlinearity gives approximation to any deterministic dynamic object and all blockoriented models are particular cases of it. Since Urysohn with nonlinear block is universal, it is suggested to call this model Canonical Blockoriented model. Since static nonlinearity is a particular case of Urysohn, than two sequential Urysohns is redundant canonical object capable to approximate every deterministic object $$y_i = \sum_{j=0}^m f_j(x_{ij}).$$ $$z_i = \sum_{j=0}^m g_j(y_{ij}).$$ The identification method assumes that intermediate signal $y$ is unobserved. The concept is not very sophisticated. In case intermediate signal $y$ is known, both operators can be identified. The suggested method uses this property. The intermediate output is computed in identification step. Then it is incremented and decremented by $\Delta y$ and three current outputs $z$ are computed. If incremented or decremented $y$ gives better end result, then it is accepted and both operators are updated. The code for numerical simulation of this concept is provided at the link at the top. 
