## 2 T-S Identification Method
### Fuzzy Clustering
#### 3.1.1 FCM Clustering Algorithm  
The FCM algorithm [24] is based on the minimization of a cost index, described in (28):  
\[J(X,U,V)=\sum_{i=1}^{c}\sum_{k=1}^{N}{(u_{ik})^{m}\|x_{k}-v_{i}\|^{2}} \tag{28}\]  
where  
\[V=[v_{1},v_{2},\ldots,v_{c}],\ v_{i}\in\mathbb{R}^{n} \tag{29}\]  
is a vector of cluster prototypes (more commonly known as centers), which have to be obtained through the algorithm. Here, D is the norm of the squared distance of the inner product, as described in (30):  
\[D_{ikA}^{2}=\|x_{k}-v_{i}\|^{2}=(x_{k}-v_{i})^{T}A(x_{k}-v_{i}). \tag{30}\]Statistically, (30) can be viewed as a measure of the total variance of \(x_{k}\) from \(v_{i}\). The minimization of this equation represents a nonlinear optimization problem that can be solved using a wide variety of methods, from minimization of grouped coordinates to the use of genetic algorithms. The most popular method is a Picard iteration through the first-order conditions for stationary points, also known as the FCM algorithm. The stationary points can be found using Lagrange multipliers \(\Lambda_{k}\), as provided in (31):  
\[\overline{J}(X,U,V,\lambda)=\sum_{i=1}^{c}\sum_{k=1}^{N}\left(u_{ik}\right)^{ m}D_{ikA}^{2}+\sum_{k=1}^{N}\lambda_{k}\left(\sum_{i=1}^{c}u_{ik}-1\right). \tag{31}\]  
Next, the gradients of \(\overline{J}\) with respect to U, V, and \(\lambda\) must be set to zero. If \(D_{ikA}^{2}>0,\ \forall i,k\) and m \(>1\), then \((U,V)\in M_{fc}x\overline{\mathbb{R}}^{nxc}\) can minimize (32) only if (32) and (33) hold:  
\[u_{ik}=\frac{1}{\sum_{j=1}^{c}\left(D_{ikA}/D_{jkA}\right)^{2/(m-1)}},\ \ 1\leq i \leq c,\ \ 1\leq k\leq N \tag{32}\]  
\[v_{i}=\frac{\sum_{k=1}^{N}u_{ik}^{m}x_{k}}{\sum_{k=1}^{N}u_{ik}^{m}}\ \ \ 1\leq i \leq c. \tag{33}\]  
The FCM algorithm uses the standard Euclidean norm as a distance, meaning that clusters take the form of hyperspheres. Therefore, it can only detect clusters with the same shape and orientation, as the common choice of the norm-inducing matrix is either \(A=I\) or can be chosen an \(n\times n\) diagonal matrix that contains the different variances in the direction of the coordinate axes of X, as shown in (34):  
\[A_{D}=\left[ \begin{array}{cccc}\left(\frac{1}{\sigma_{1}}\right)^{2}&0& \cdots&0\\ 0&\left(\frac{1}{\sigma_{2}}\right)^{2}&\cdots&0\\ \vdots&\vdots&\ddots&\vdots\\ 0&0&\cdots&\left(\frac{1}{\sigma_{n}}\right)^{2}\end{array} \right]. \tag{34}\]  
Additionally, A can be defined as the inverse matrix of the \(n\times n\) covariance matrix, \(A=F^{-1}\), with F defined in (35):  
\[F=\frac{1}{N}\sum_{k=1}^{N}\left(x_{k}-\widehat{x}\right)\left(x_{k}-\widehat {x}\right)^{T}. \tag{35}\]  
In the simulations developed in Section 4, the direct application of this algorithm could induce errors in the case of multidimensional systems. In order to avoid this problem, the data must be normalized before applying this algorithm. In this way, the distances to the center of the clusters are relative and the distances on the axis of the dimensions with a lower range of values are not neglected. Normalization of the data is carried out as shown in (36):  
\[X_{norm}=\frac{X-\widehat{X}}{\sigma_{X}}. \tag{36}\]  
After the data have been normalized and the algorithm has been applied, the centers of the clusters must be denormalized, as the FCM algorithm will not have the previously normalized data. The FCM algorithm used in this work is shown in Figure 2, and is defined as follows. Step 1: Given a dataset X, choose the number of clusters \(1<\text{c}<\text{N}\), the weight exponent \(\text{m}>1\), the tolerance of termination \(\varepsilon>0\), and the inducing matrix of norm A. Initialize the partition matrix randomly such that \(\text{U}\ ^{(0)}\) has arbitrary values. Step 2: Normalize the data to avoid errors due to differences in the ranges of the different dimensions.