Introduction
This paper proposes the tensor product (TP) model transformation [1]–[3]-based framework to numerically reconstruct linear time invariant (LTI), linear parameter varying (LPV), and quasi-LPV (qLPV) representations of state-space models such that the reconstructed models are in TP model form. (Note that in the present discourse the TP model form is equivalent to the T–S fuzzy model form [1]–[4], therefore, whenever this paper makes an assertion concerning the TP model, it will also be applicable to the T–S fuzzy model.) The proposed framework incorporates all advantageous properties of the TP model transformation framework, such as the ability to reconstruct canonical [5], [6] as well as various other types of convex TP model (or T–S fuzzy model) forms [1], [7], and the ability to find the minimal number of vertices (or fuzzy rules) corresponding to a specified approximation accuracy [1], [8]. The goal of this proposed framework is to replace the complicated (or even intractable) derivations of closed formulae with straightforward, tractable numerically appealing routine-like solutions that can be executed in a reasonable amount of time. A further goal is that it should be irrelevant how the state-space model is given (as a set of closed formulae, as a neural network, as a black-box model), and indeed, the numerical steps of the proposed framework can be executed in all of these cases.
The motivation behind exploring variations of the T–S fuzzy model structure can be outlined as follows. Polytopic model-based state-space control design has three key steps: A) defining the state-space model; B) finding the optimal polytopic model (TP model or T–S fuzzy model); and C) deriving the controller. The crucial point is that the structure of the model obtained after Steps A and B has a key role in determining the effectiveness of the controller design obtained in Step C. Thus, it is important to structure the elements of the system matrix in Step A well, since ultimately, the ordering of the elements influences the whole design process in a strong sense. The convex hull defined by the polytopic structure in Step B also directly influences the design. Therefore, the applied control design strategy must take into account these points in order to guarantee that the best controller is obtained for the task at hand [2], [9]–[11].
This paper proposes a TP model transformation-based solution that can be automatically executed and used to derive models for Steps A and B. More importantly, the key novelty of the paper is that it extends the TP model transformation-based control design framework to state-space models whose matrix structure is unknown. Further novelties of the proposed extension include its capability of dealing with the internal structure of the vertices or system matrix in a systematic way, that it allows for the flexible manipulation of this structure in a way that considerably improves the controller design, and that it allows for the specification and design of the external parameters and state vector element contained in the parameter vector.
Much work has been carried out in the recent past on the TP model transformation. Computational analyses and improvements to the original formulation were recently proposed in [12] and [13]. It was also proved in [2], [9]–[11] that linear matrix inequality (LMI)-based control design theories are very sensitive to the properties of the convex hulls (both the shape of the weighting functions and the number of vertices) defined by the TP models; hence, the convex hull manipulation capability of the TP model transformation is an important and necessary step in LMI-based control design. Very effective convex hull manipulation methods were incorporated into the TP model transformation in [7], [14], and [15]. Further useful control approaches and applications were published in the field of control theory [16]–[23], including in the area of sliding mode control in [18], [24], and [25]. For further theories and applications, readers are referred to [26]–[59].
The rest of this paper is organized as follows. Section II defines the notation and the basic concepts of the TP model transformation in a modified form to better fit the proposed framework. Section III outlines the key points of the paper. It highlights the main goal, namely, to extend the TP model transformation to state-space functions where the linear matrix product structure (product of the system matrix and the state vector) is unknown. Sections IV to VII present the novelty of this paper. These sections show how to numerically reconstruct various state-space forms in a reasonable amount of time, even in cases when the exact closed formulae are unknown, but the model can be sampled over a grid. Section IV shows how to numerically reconstruct a global linearization, and also shows how to make the linearization in a given point. Section V presents one of the key points of the paper and shows how to execute the extended TP model transformation even in cases when we do not know the inner linear parameter dependent matrix product-based structure of the given state-space model. Sections VI and VII give some idea of how to manipulate the parameter space and the structure of the system matrix. Section VIII presents some examples to show that the MATLAB implementations of the proposed framework are very simple. The performance of the algorithms are demonstrated on the example of the inverted pendulum. Section IX discusses the contrast between the proposed extension and previous solutions. Finally, Section X concludes this paper.
Notations and Preliminary Concepts
This section provides the notations used in the paper and introduces the basic concepts of the TP model transformation in a modified and rather more compact form that is better suited to the proposed framework.
A. Notations
The following notations are used in this paper:
Scalar:
;a Vector:
contains elements\mathbf {a} ;a_i Matrix:
contains elements\mathbf {A} ;a_{i,j} Tensor:
contains elements\mathcal {A} ;a_{i,j,k,\ldots } denotes that the vector\mathbf {x}\in {\mathbb {R}}^N contains\mathbf {x} elements, and the values of these elements are real numbers;N means that the values of the\mathcal {A}\in {\mathbb {R}}^{I_1\times I_2\times \cdots \times I_N} -dimensional tensor are real numbers.N ,I_n denotes the number of elements in then=1\ldots N th dimension of tensorn .;\mathcal {A} Index
: The upper bounds of the indices are denoted by the uppercase letter, e.g.,i ;i=1\ldots I Interval:
;\omega =[\omega _{\text{min}},\; \omega _{\text{max}}] Space:
is an\Omega:\omega _1\times \omega _2\times \cdots \times \omega _N -dimensional hypercube;N expresses the fact that vector\mathbf {x}\in \Omega is within the space\mathbf {x} . The dimensions of\Omega and\mathbf {x} are the same;\Omega and\Omega ^x : We frequently define vectors\Omega ^p and\mathbf {x}\in \Omega . In order to denote that these spaces of\mathbf {p}\in \Omega and\mathbf {x} are different, we use superscript\mathbf {p} andx asp and\Omega ^x . This simply means that\Omega ^p and\mathbf {x}\in \Omega ^x ;\mathbf {p}\in \Omega ^p refers to a dimensionality reduced subset in general as:\sqsubset in the case of spaces:
states that\Theta \sqsubset \Omega is a hypercube with the same-sized intervals as\Theta , but has a smaller number of dimensions;\Omega in the case of vectors:
, where\mathbf {a}\sqsubset \mathbf {b} and\mathbf {a}\in \Theta \subset {\mathbb {R}}^N means that\mathbf {b}\in \Omega \subset {\mathbb {R}}^M andN< M ;\Theta \sqsubset \Omega in the case of tensors,
means, for instance, that\mathcal {A}\sqsubset \mathcal {B} is obtained by deleting complete dimensions from tensor\mathcal {A} ;\mathcal {B}
denotes the layout of tensor\mathbf {A}=\mathcal {A}_{[n]} .\mathcal {A} is a matrix with the size of\mathbf {A} , where the size ofI_n \times \prod ^N_{i=1,i\ne n}I_i is\mathcal {A} . The column vectors of matrixI_1 \times I_2 \times \cdots \times I_N are the vectors of the\mathbf {A} th dimension of tensorn . For further details, see [60];\mathcal {A} is the TP. It defines the tensor product between tensor\mathcal {S}\mathop {\boxtimes }\nolimits _{n=1}^N\mathbf {U}_n and matrices\mathcal {S} .\mathbf {U} is the\mathcal {S} -dimensional core tensor andN are matrices assigned to each dimension. For details refer to [1]–[3];\mathbf {U}_n represents the TP functionf(\mathbf {x})=\mathcal {S}\mathop {\boxtimes }\nolimits _{n=1}^N\mathbf {w}_n(x_n) where\mathbf {x}\in {\mathbb {R}}^N is called the weighting function system. This is equivalent to the very frequently used transfer function of the T–S fuzzy model given in classical form such as\mathbf {w}_n(x_n)=[w_{n,1}(x_n) \;\; w_{n,2}(x_n) \;\; \ldots \;\; w_{n,I_n} (x_n)] \begin{align*} y=\sum _{i_1=1}^{I_1}\sum _{i_2=1}^{I_2} \ldots \sum _{i_N}^{I_N} \prod _{n=1}^N w_{n,i_n}(x_n)b_{i_1,i_2,\ldots,i_N} \tag{1} \end{align*} View Source\begin{align*} y=\sum _{i_1=1}^{I_1}\sum _{i_2=1}^{I_2} \ldots \sum _{i_N}^{I_N} \prod _{n=1}^N w_{n,i_n}(x_n)b_{i_1,i_2,\ldots,i_N} \tag{1} \end{align*}
Types of the weighting functions:
SN: Sum normalized;
NN: Nonnegative;
NO: Normalized;
CNO: Close to normalized;
RNO: Relaxed normalized;
INO: Inverse normalized;
IRNO: Inverse relaxed normalized;
B. Concepts
In this section, slight modifications are proposed to the basic concepts used in the TP model transformation. This will allow us to more easily address the key steps of the proposed extensions.
Definition 1.
Grid: An equidistant hyper rectangular grid with
Definition 2.
Grid tensor: A grid tensor, denoted as
Definition 3.
Multiple operations: Assume a given function
\begin{align*}
\mathcal {Y}=f(*\mathcal {X}) \tag{2}
\end{align*}
Definition 4.
Discretization: The discretized variant
\begin{align*}
\mathcal {F}^{\mathcal {G}}=f(*\mathcal {G}) \tag{3}
\end{align*}
Definition 5.
TP model: The following TP function-based structure is referred to as the TP model:
\begin{align*}
\mathbf {y}=f(\mathbf {p})=\mathcal {S}\mathop {\boxtimes }\limits _{n=1}^N \mathbf {w}_n(p_n) \tag{4}
\end{align*}
Higher order singular value (HOSVD)-based canonical form of TP models. Here,
also expresses the rank of the function on each dimension. The TP model structure is based on the higher order singular values, the vertexes, and the weightings of orthonormed systems. For further details, see [5] and [6].R_n Convex TP models. Here, the
is within the convex hull defined by the vertexes. Various types (loose and tight) hulls were defined, such as SN, NN, NO, CNO, RNO, INO,..., see [1]–[3] and [7]. It was also proved that the manipulation of the convex hull has a crucial role in control design theory, see [2], [9]–[11].\mathbf {y}
Polytopic form in (4) is the higher structured variant of the frequently used formulae (in polytopic modeling)
Method 1.
TP model transformation: Assume a given function
\begin{align*}
f(\mathbf {p})\approx _\epsilon \mathcal {S}\mathop {\boxtimes }\limits _{n=1}^N \mathbf {w}_n(p_n). \tag{5}
\end{align*}
The TP model transformation has three steps.
Step 1: Discretization: Defining
of\mathcal {F}^\mathcal {G} .f(\mathbf {p}) Step 2: Extracting the TP structure:
and performing the necessary complexity tradeoff. This is done by executing the HOSVD [60] on\mathcal {F}^{\mathcal {G}}=\mathcal {S}\mathop {\boxtimes }\nolimits _{n=1}^N \mathbf {U}_n . The HOSVD results in matrices\mathcal {F}^{\mathcal {G}} and core tensor\mathbf {U}_n . The matrices\mathcal {S} are the singular matrices by dimensions. Further convex hull manipulation can be executed by transforming\mathbf {U}_n to specialized matrices\mathbf {U}_n while\mathbf {U}^*_n as detailed in [1]. This will control the characteristics of the weighting functions determined in the next step. For instance, to have convex combination (i.e., to determine the antecedent membership function in the Ruspini partition), the singular matrices are transformed to CNO type, see [1].\mathcal {S}\mathop {\boxtimes }\nolimits _{n=1}^N \mathbf {U}_n=\mathcal {S}^*\mathop {\boxtimes }\nolimits _{n=1}^N \mathbf {U}_n^* Step 3: Defining weighting functions
from\mathbf {w}_n(p_n) . There are two ways to reconstruct the weighting functions. One is to simply perform linear interpolation between the elements of the columns in matrix\mathbf {U}^*_n , then each column defines one piecewise linear weighting function. This is referred to as the bilinear TP model transformation. The other way is to recalculate the weighting functions at any given\mathbf {U}_n (while allp_n ,p_i are fixed). This requires the calculation ofi\ne n for that point. Usually a combination of these two approaches is used. The weighting functions are recalculated over a large number of points “off-line,” then a piecewise linear function is used between the points.f(\mathbf {p})
Problem Outline
Assume a state-space model
\begin{align*}
\left[{\begin{array}{c}\dot{\mathbf {x}} \\
\mathbf {y} \end{array}}\right]=f(\mathbf {x},\mathbf {u}) \tag{6}
\end{align*}
The paper introduces a framework to reconstruct the LTI representation of (6) as
\begin{align*}
\left[{\begin{array}{c}\dot{\mathbf {x}} \\
\mathbf {y} \end{array}}\right]\approx _{\epsilon } \mathbf {S} \left[{\begin{array}{c}\mathbf {x}\\
\mathbf {u} \end{array}}\right]\tag{7}
\end{align*}
\begin{align*}
\left[{\begin{array}{c}\dot{\mathbf {x}} \\
\mathbf {y} \end{array}}\right]\approx _{\epsilon } \mathbf {S}(\mathbf {p}) \left[{\begin{array}{c}\mathbf {x}\\
\mathbf {u} \end{array}}\right]\tag{8}
\end{align*}
\begin{align*}
\left[{\begin{array}{c}\dot{\mathbf {x}} \\
\mathbf {y} \end{array}}\right]=f(\mathbf {x},\mathbf {u},\mathbf {p}) \tag{9}
\end{align*}
\begin{align*}
\left[{\begin{array}{c}\dot{\mathbf {x}} \\
\mathbf {y} \end{array}}\right]\approx _{\epsilon } \mathbf {S}(\mathbf {p}) \left[{\begin{array}{c}\mathbf {x}\\
\mathbf {u} \end{array}}\right]\tag{10}
\end{align*}
In the abovementioned cases, the parameter-varying system matrix is given in TP model form as
\begin{align*}
\mathbf {S}(\mathbf {p})=\mathcal {S}\mathop {\boxtimes }\limits _{n=1}^N \mathbf {w}_n(p_n) \tag{11}
\end{align*}
The control design is typically based on the linear matrix form (8) and 10) of the state-space transfer function (6). Since this representation is not unique, determining how the elements of system matrix
The framework proposed in this paper provides various ways to incorporate the TP model transformation in the process of manipulating these important components of the TP model and the design (see also [2]). Using the TP model transformation to begin has the following advantages:
it is executable on models given by equations or soft computing-based representations, such as fuzzy rules, neural networks, or other black-box models. The only requirement is that the model must provide an output for each input (at least on a discrete scale);
it will find the minimal complexity, namely, the minimal number of components of the TP model (or rules of the T–S fuzzy model). If further complexity reduction is required, it provides one of the best tradeoffs between the number of components (fuzzy rules) and the approximation error;
it works like the principal component analysis in that it determines the order of the components (fuzzy rules) according to their importance;
it is capable of deriving the weighting functions or antecedent fuzzy sets according to various constraints. For instance, it can be used to define different convex hulls, a capability which has recently been shown to play an important role in control theory as mentioned above;
it is capable of transforming the given model to predefined weighting functions (antecedent fuzzy sets), using, i.e., the pseudo-TP model transformation;
it is capable of transforming a set of models simultaneously, while deriving common weighting functions (antecedent fuzzy sets) for all models.
Transformation to Linear Structure
The goal is to replace the function
\begin{align*}
\mathbf {y}=f(\mathbf {x}) \tag{12}
\end{align*}
\begin{align*}
\mathbf {y}=\mathbf {S}\mathbf {x}\tag{13}
\end{align*}
Method 2.
Linearization: The goal is to find a linear mapping
\begin{align*}
\mathcal {F}^{\mathcal {G}}=f(*\mathcal {G}). \tag{14}
\end{align*}
\begin{align*}
\mathcal {F}^{\mathcal {G}}=\mathcal {G}\times _{I+1}\mathbf {S} \tag{15}
\end{align*}
\begin{align*}
\mathbf {S}=\mathcal {F}^{\mathcal {G}}_{\left[{\begin{array}{c}I+1 \end{array}}\right]} \left(\mathcal {G}_{\left[{\begin{array}{c}I+1 \end{array}}\right]}\right)^+. \tag{16}
\end{align*}
\begin{align*}
\mathbf {f}_{m_1,m_2,\ldots,m_I}=f(\mathbf {g}_{m_1,m_2,\ldots,m_I}) \tag{17}
\end{align*}
\begin{align*}
\mathbf {f}_{m_1,m_2,\ldots,m_I}=\mathbf {S}\mathbf {g}_{m_1,m_2,\ldots,m_I} \tag{18}
\end{align*}
Since these vectors are in the
\begin{align*}
\mathcal {F}^{\mathcal {G}}_{\left[{\begin{array}{c}I+1 \end{array}}\right]} = \mathbf {S}\left(\mathcal {G} \right)_{\left[{\begin{array}{c}I+1 \end{array}}\right]}. \tag{19}
\end{align*}
As a result, we have
\begin{align*}
f(\mathbf {x})\approx _\epsilon \mathbf {S}\mathbf {x}. \tag{20}
\end{align*}
If the error is not acceptable, one alternative approach is to try the quasi-linear structure detailed later.
Transformation to Parameter-Varying Linear Structure
The goal is to replace the parameter-varying function
\begin{align*}
\mathbf {y}=f(\mathbf {x},\mathbf {p}) \tag{21}
\end{align*}
\begin{align*}
\mathbf {y}=\mathbf {S}(\mathbf {p})\mathbf {x}\tag{22}
\end{align*}
\begin{align*}
\mathbf {S}(\mathbf {p})=\mathcal {S}\mathop {\boxtimes }\limits _{n=1}^N \mathbf {w}_n(p_n). \tag{23}
\end{align*}
Method 3:
Parameter-varying linear structure
Step 1: Define discretization grid
to\mathcal {G}^p with density\Omega ^p .M^p Step 2: Define a linearization grid
fit to\mathcal {G}^x with density\Omega ^x .M^x Step 3: Linearize
for eachf(\mathbf {x},\mathbf {p}) of\mathbf {p}_{m_1,m_2,\ldots,m_N} by Method 2. Namely, define a linear mapping between a sufficiently large number of input–output pairs given by grid\mathcal {G}^p and\mathcal {G}^x in the form of\begin{align*} \mathcal {F}^{\mathcal {G}^x}_{m_1,m_2,\ldots,m_N}=f(*\mathcal {G}^x,\mathbf {p}_{m_1,m_2,\ldots,m_N}) \tag{24} \end{align*} View Source\begin{align*} \mathcal {F}^{\mathcal {G}^x}_{m_1,m_2,\ldots,m_N}=f(*\mathcal {G}^x,\mathbf {p}_{m_1,m_2,\ldots,m_N}) \tag{24} \end{align*}
As a result, we have\begin{align*} \mathcal {F}^{\mathcal {G}^x}_{m_1,m_2,\ldots,m_N}=\mathcal {G}^x\times _{I+1}\mathbf {S}_{m_1,m_2,\ldots,m_N}. \tag{25} \end{align*} View Source\begin{align*} \mathcal {F}^{\mathcal {G}^x}_{m_1,m_2,\ldots,m_N}=\mathcal {G}^x\times _{I+1}\mathbf {S}_{m_1,m_2,\ldots,m_N}. \tag{25} \end{align*}
where\begin{align*} \mathbf {S}_{m_1,m_2,\ldots,m_N}=\left(\mathcal {F}^{\mathcal {G}^x}_{m_1,m_2,\ldots,m_N} \right)_{\left[{\begin{array}{c}I+1 \end{array}}\right]} \Psi \tag{26} \end{align*} View Source\begin{align*} \mathbf {S}_{m_1,m_2,\ldots,m_N}=\left(\mathcal {F}^{\mathcal {G}^x}_{m_1,m_2,\ldots,m_N} \right)_{\left[{\begin{array}{c}I+1 \end{array}}\right]} \Psi \tag{26} \end{align*}
\begin{align*} \Psi =\left(\mathcal {G}^x _{\left[{\begin{array}{c}I+1 \end{array}}\right]}\right)^+. \tag{27} \end{align*} View Source\begin{align*} \Psi =\left(\mathcal {G}^x _{\left[{\begin{array}{c}I+1 \end{array}}\right]}\right)^+. \tag{27} \end{align*}
Step 4: Since the tensor
constructed from\mathcal {S}^{\mathcal {G}^p}\in {\mathbb {R}}^{M^p_1\times M^p_2 \times \cdots \times M^p_N \times O \times I} is the discretized variant of\mathbf {S}_{m_1,m_2,\ldots,m_N} over\mathbf {S}(\mathbf {p}) , we can continue with the second step of the TP model transformation (incorporating all the beneficial properties of the TP model transformation), which results in\mathcal {G}^p and then, the third step results in\begin{align*} \mathcal {S}^{\mathcal {G}^p}=\mathcal {S}\mathop {\boxtimes }\limits _{n=1}^N \mathbf {U}_n \tag{28} \end{align*} View Source\begin{align*} \mathcal {S}^{\mathcal {G}^p}=\mathcal {S}\mathop {\boxtimes }\limits _{n=1}^N \mathbf {U}_n \tag{28} \end{align*}
thus, to summarize\begin{align*} \mathbf {S}(\mathbf {p})=\mathcal {S}\mathop {\boxtimes }\limits _{n=1}^N \mathbf {w}_n(p_n) \tag{29} \end{align*} View Source\begin{align*} \mathbf {S}(\mathbf {p})=\mathcal {S}\mathop {\boxtimes }\limits _{n=1}^N \mathbf {w}_n(p_n) \tag{29} \end{align*}
\begin{align*} \mathbf {y}=\left(\mathcal {S}\mathop {\boxtimes }\limits _{n=1}^N \mathbf {w}_n(p_n) \right)\mathbf {x}. \tag{30} \end{align*} View Source\begin{align*} \mathbf {y}=\left(\mathcal {S}\mathop {\boxtimes }\limits _{n=1}^N \mathbf {w}_n(p_n) \right)\mathbf {x}. \tag{30} \end{align*}
Remark 1.
A bilinear TP model can be derived directly from
Variate the Parameter Dependency
In the previous section, the parameter dependence was defined by
\begin{align*}
\mathbf {p}=\mathbf {T}\mathbf {v} \tag{31}
\end{align*}
\begin{align*}
\mathbf {y}=f(\mathbf {x},\mathbf {v}) \tag{32}
\end{align*}
\begin{align*}
\mathbf {p}=T(\mathbf {v}) \tag{33}
\end{align*}
\begin{align*}
\mathbf {y}=f(\mathbf {x},\mathbf {v}) \tag{34}
\end{align*}
\begin{align*}
\mathbf {y}=\left(\mathcal {S}\mathop {\boxtimes }\limits _{k=1}^K \mathbf {w}_k(v_k) \right)\mathbf {x}. \tag{35}
\end{align*}
\begin{align*}
y=x_1p^2+x_2 \tag{36}
\end{align*}
\begin{align*}
y=\left[{\begin{array}{cc}p^2 & 1 \end{array}}\right]\left[{\begin{array}{c}x_1 \\
x_2 \end{array}}\right]=\mathbf {S}(p)\mathbf {x}. \tag{37}
\end{align*}
\begin{align*}
y=x_1v+x_2=\left[{\begin{array}{cc}v & 1 \end{array}}\right]\left[{\begin{array}{c}x_1 \\
x_2 \end{array}}\right]=\mathbf {S}(v)\mathbf {x}. \tag{38}
\end{align*}
\begin{align*}
y=x_1\left(p_1^2+p_2 \right)+x_2p_2 \tag{39}
\end{align*}
\begin{align*}
y=x_1v_1+x_2v_2=\left[{\begin{array}{cc}v_1 & v_2 \end{array}}\right]\left[{\begin{array}{c}x_1 \\
x_2 \end{array}}\right]=\mathbf {S}(\mathbf {v})\mathbf {x}. \tag{40}
\end{align*}
Transformation to Quasi-Linear Structure
If the above-discussed linearization leads to a larger than acceptable error
The goal, then, is to replace the function
\begin{align*}
\mathbf {y}=f(\mathbf {x}) \tag{41}
\end{align*}
\begin{align*}
\mathbf {y}=\mathbf {S}(\mathbf {p})\mathbf {x}\tag{42}
\end{align*}
The following method approximates
\begin{align*}
\mathbf {S}(\mathbf {p})=\mathcal {S}\mathop {\boxtimes }\limits _{n=1}^N \mathbf {w}_n(p_n). \tag{43}
\end{align*}
\begin{align*}
y=x_1x_2+x_1 \tag{44}
\end{align*}
\begin{align*}
y=\left[{\begin{array}{cc}1 & p_1 \end{array}}\right]\left[{\begin{array}{c}x_1 \\
x_2 \end{array}}\right]=\mathbf {S}(x_1)\mathbf {x}\tag{45}
\end{align*}
\begin{align*}
y=\left[{\begin{array}{cc}p_2+1 & 0 \end{array}}\right]\left[{\begin{array}{c}x_1 \\
x_2 \end{array}}\right]=\mathbf {S}(x_2)\mathbf {x}\tag{46}
\end{align*}
Based on this, first we need to find the components
\begin{align*}
f(\mathbf {x})=\sum _{i=1}^{I} f_i(\mathbf {x}^p_i)x_i \tag{47}
\end{align*}
Assume that we have the parameter vector
\begin{align*}
f(\mathbf {x},\mathbf {p})=\sum _{i=1}^{I} f_i(\mathbf {p}^p_i)x_i. \tag{48}
\end{align*}
\begin{align*}
\mathbf {S}(\mathbf {p})=\mathcal {S}\mathop {\boxtimes }\limits _{n=1}^{N}\mathbf {w}_n(p_n). \tag{49}
\end{align*}
\begin{align*}
f_i(\mathbf {p})=f_i(\mathbf {p}^p_i)+\sum _j 0p_j \tag{50}
\end{align*}
\begin{align*}
f(\mathbf {x},\mathbf {p})=\sum _{i=1}^{I} f_i(\mathbf {p})x_i \tag{51}
\end{align*}
Method 4:
Reconstruct the quasi-linear structure
Step 1: Define a discretization grid
to\mathcal {G}^p with density\Omega ^p\sqsubseteq \Omega ^x .M^p Step 2: Define a linearization grid
to each element of\mathcal {G}^x_{m_1,m_2,\ldots,m_N} , where the linearization space\mathcal {G}^p is around\Omega ^x_{m_1,m_2,\ldots,m_N} of\mathbf {g}^p_{m_1,m_2,\ldots,m_N} . Obviously, the interval\mathcal {G}^p of those\omega ^x_i which are not selected to be a parameter can be set arbitrarily withinx_i .\Omega ^x Step 3: Execute linearization according to Method 2 for each
as\mathbf {g}^p_{m_1,m_2,\ldots,m_N}\in \mathcal {G}^p and\begin{align*} \mathcal {F}^{\mathcal {G}^x_{m_1,m_2,\ldots,m_N}}=f(*\mathcal {G}^x_{m_1,m_2,\ldots,m_N},\mathbf {g}_{m_1,m_2,\ldots,m_N}^p) \tag{52} \end{align*} View Source\begin{align*} \mathcal {F}^{\mathcal {G}^x_{m_1,m_2,\ldots,m_N}}=f(*\mathcal {G}^x_{m_1,m_2,\ldots,m_N},\mathbf {g}_{m_1,m_2,\ldots,m_N}^p) \tag{52} \end{align*}
where\begin{align*} \mathbf {S}_{m_1,m_2,\ldots,m_N}=\left(\mathcal {F}^{\mathcal {G}^x_{m_1,m_2,\ldots,m_N}} \right)_{\left[{\begin{array}{c}I+1 \end{array}}\right]} \Psi \tag{53} \end{align*} View Source\begin{align*} \mathbf {S}_{m_1,m_2,\ldots,m_N}=\left(\mathcal {F}^{\mathcal {G}^x_{m_1,m_2,\ldots,m_N}} \right)_{\left[{\begin{array}{c}I+1 \end{array}}\right]} \Psi \tag{53} \end{align*}
\begin{align*} \Psi =\left(\left(\mathcal {G}^x _{m_1,m_2,\ldots,m_N}\right)_{\left[{\begin{array}{c}I+1 \end{array}}\right]}\right)^+. \tag{54} \end{align*} View Source\begin{align*} \Psi =\left(\left(\mathcal {G}^x _{m_1,m_2,\ldots,m_N}\right)_{\left[{\begin{array}{c}I+1 \end{array}}\right]}\right)^+. \tag{54} \end{align*}
Step 4: Since tensor
constructed from\mathcal {S}^{\mathcal {G}^p}\in {\mathbb {R}}^{M^p_1\times M^p_2 \times \cdots \times M^p_N \times O \times I} is the discretized variant of\mathbf {S}_{m_1,m_2,\ldots,m_N} over\mathbf {S}(\mathbf {p}) , we can continue with the second step of the TP model transformation (incorporating all the beneficial properties of the TP model transformation), that results in\mathcal {G}^p and finally, we have\begin{align*} \mathcal {S}^{\mathcal {G}^p}=\mathcal {S}\mathop {\boxtimes }\limits _{n=1}^N \mathbf {U}_n \tag{55} \end{align*} View Source\begin{align*} \mathcal {S}^{\mathcal {G}^p}=\mathcal {S}\mathop {\boxtimes }\limits _{n=1}^N \mathbf {U}_n \tag{55} \end{align*}
thus\begin{align*} \mathbf {S}(\mathbf {p})=\mathcal {S}\mathop {\boxtimes }\limits _{n=1}^N \mathbf {w}_n(p_n) \tag{56} \end{align*} View Source\begin{align*} \mathbf {S}(\mathbf {p})=\mathcal {S}\mathop {\boxtimes }\limits _{n=1}^N \mathbf {w}_n(p_n) \tag{56} \end{align*}
where\begin{align*} \mathbf {y}=\left(\mathcal {S}\mathop {\boxtimes }\limits _{n=1}^N \mathbf {w}_n(p_n) \right)\mathbf {x}\tag{57} \end{align*} View Source\begin{align*} \mathbf {y}=\left(\mathcal {S}\mathop {\boxtimes }\limits _{n=1}^N \mathbf {w}_n(p_n) \right)\mathbf {x}\tag{57} \end{align*}
are the elements of vectorp_n .\mathbf {x}
Remark 2:
A bilinear TP model can be derived directly from
Examples
This section demonstrates how the above-discussed theories may be applied to the model of the inverted pendulum. An implementation of the relevant procedures is provided in the MATLAB language using the TPtool toolbox (which can be downloaded through the Wikipedia page on TP model-based control). The variables in the MATLAB code use the same notation as was used in the previous sections.
A. Model of the Inverted Pendulum
Assume that we have an inverted pendulum, such that the mass of the pendulum is
\begin{align*}
\dot{\mathbf {x}}=f(\mathbf {x},u)=\left[{\begin{array}{c}x_2 \\
f_1(\mathbf {x},u) \\
x_4 \\
f_2(\mathbf {x},u) \end{array}}\right]\tag{58}
\end{align*}
\begin{align*}
f_1 &= \frac{a_1+a_2}{l(M_c+m_p\sin ^2(x_1))} \tag{59} \\
f_2 &= \frac{a_3+a_4}{M_c+m_p\sin ^2(x_1)} \tag{60}
\end{align*}
\begin{align*}
a_1 &= (M_c+m_p)g\sin (x_1)+\cos (x_1)u \tag{61} \\
a_2 &= b\cos (x_1)x_4-m_pl\sin (x_1)\cos (x_1)x_2^2 \tag{62} \\
a_3 &= -m_pg\sin (x_1)\cos (x_1)-bx_4+u \tag{63} \\
a_4 &= m_pl\sin (x_1)x_2^2. \tag{64}
\end{align*}
B. Example 1: Reconstruct the Linear Structure
Assume that the equations of the above model are unknown (the code is unknown), only the input
Remark 3:
O defines the center of the grid. Omega defines the intervals around these center points (thus, the value in Omega is at the half of the interval) for each dimension.
Then, the linearization is
The overall algorithm can then be written as follows:
The resulting
\begin{align*}
\left[{\begin{array}{ccccc}0 & 1 & 0 & 0 & 0 \\
33.75 & 0 & 0 & 0.11 & -1.08 \\
0 & 0 & 0 & 1 & 0 \\
-0.65 & 0 & 0 & -0.03 & 0.33\end{array}}\right]. \tag{65}
\end{align*}
C. Example 2: Extended TP Model Transformation
If the simple replacement of the model with
Assume again that we have
\begin{align*}
\dot{\mathbf {x}}=\mathbf {S}(\mathbf {p})\left[{\begin{array}{c}\mathbf {x}\\
u \end{array}}\right]. \tag{66}
\end{align*}
Remark 4:
LOmega and r define the linearization subspace for each grid. D is the sampling density for the linearization.
Next, we extract the convex TP model form with SNNN-type weighting functions and vertexes
The SNNN weighting functions are determined in cell U and the related vertexes are stored in Sc. Thus, finally we obtain
\begin{align*}
f(\mathbf {x},u)=f(\mathbf {x},u,\mathbf {p})\left[{\begin{array}{c}\mathbf {x}\\
u \end{array}}\right]= \mathcal {S}\mathop {\boxtimes }\limits _n \mathbf {W}_n(p_n)\left[{\begin{array}{c}\mathbf {x}\\
u \end{array}}\right]\tag{67}
\end{align*}
D. Example 3: Varying the Components of the Vertexes
This example shows how we can easily modify the structure of the pendulum model and generate various alternative T–S fuzzy models in a few minutes without any analytical derivation of closed formulae. Exploring such variations will allow us to find the best option for further design steps. The state-space model of (58) is
\begin{align*}
\dot{\mathbf {x}}=\left[{\begin{array}{ccccc}0 & 1 & 0 & 0 & 0 \\
0 & t_1/x_2+t_2 & 0 & bt_3 & t_3 \\
0 & 0 & 0 & 1 & 0 \\
0 & v_1/x_2+v_2 & 0 & -b/h_2 & 1/h_2 \end{array}}\right]\left[{\begin{array}{c}\dot{\mathbf {x}}\\
u \end{array}}\right]\tag{68}
\end{align*}
\begin{align*}
h_1 &= l(M_c+m_p\sin ^2(x_1)) \tag{69} \\
h_2 &= M_c+m_p\sin ^2(x_1) \tag{70} \\
t_1 &= (M_c+m_p)b\sin (x_1)/h_1 \tag{71} \\
t_2 &= m_pl\sin (x_1)\cos (x_1)x_2/h_1 \tag{72} \\
t_3 &= \cos (x_1)/h_1 \tag{73} \\
v_1 &= -m_pg\sin (x_1)\cos (x_1)/h_2 \tag{74} \\
v_2 &= m_pl\sin (x_1)x_2/h_2. \tag{75}
\end{align*}
The nonlinearity is caused by
In the end, we arrive at the weighting functions depicted in Fig. 1. Thus, the T–S fuzzy model of the pendulum is
\begin{align*}
\dot{\mathbf {x}}=\mathbf {S}(p_1,p_2) \left[{\begin{array}{c}\mathbf {x}\\
u \end{array}}\right]=\mathcal {S}\mathop {\boxtimes }\limits _n^2 \mathbf {W}_n(p_n)\left[{\begin{array}{c}\mathbf {x}\\
u \end{array}}\right]\tag{76}
\end{align*}
\begin{align*}
\dot{\mathbf {x}}=\left[{\begin{array}{ccccc}0 & 1 & 0 & 0 & 0 \\
t1/x_1 & t_2 & 0 & bt_3 & t_3 \\
0 & 0 & 0 & 1 & 0 \\
v_1/x_1 & v_2 & 0 & -b/h_2 & 1/h_2 \end{array}}\right]\left[{\begin{array}{c}\dot{\mathbf {x}}\\
u \end{array}}\right]. \tag{77}
\end{align*}
E. Example 4: Modifying the Parameter Space
This example shows that the parameter space of the model can also readily be changed. Let us have
We then execute the TP model transformation to derive CNO-type weighting functions as follows:
Finally, we obtain the weighting function depicted in Fig. 2. Thus, we can express the T–S fuzzy model as follows:
\begin{align*}
\dot{\mathbf {x}}=\mathbf {S}(p_1,p_2,p_3) \left[{\begin{array}{c}\mathbf {x}\\
u \end{array}}\right]=\mathcal {S}\mathop {\boxtimes }\limits _n^3 \mathbf {W}_n(p_n)\left[{\begin{array}{c}\mathbf {x}\\
u \end{array}}\right]. \tag{78}
\end{align*}
Comparison to Other Solutions
If we compare the proposed TP model transformation-based framework to its previous version, the most important difference to highlight is that the proposed version is applicable to a considerably larger class of models. Namely, the previous version was applicable to
\begin{align*}
\dot{\mathbf {x}}=\mathbf {S}(\mathbf {x},\mathbf {p},u) \left[{\begin{array}{c}\mathbf {x}\\
\mathbf {u} \end{array}}\right]\tag{79}
\end{align*}
\begin{align*}
\dot{\mathbf {x}}=f(\mathbf {x},u,\mathbf {p}) \tag{80}
\end{align*}
\begin{align*}
\mathbf {x}=f(\mathbf {x},u) \tag{81}
\end{align*}
One of the most frequently used approaches to convert a given dynamic model to a T–S fuzzy model is the sector nonlinearity method. Many of the publications dealing with T–S fuzzy control use the sector nonlinearity method to convert the dynamic equations to the T–S fuzzy model. If we compare the proposed method to the sector nonlinearity method, the most important difference is that the TP model transformation provides various features to manipulate all the parameters of the T–S fuzzy model, i.e., the shape of the antecedents, the number of fuzzy rules, and the convex hull defined by the vertexes. It provides an exact HOSVD-based canonical form and complexity tradeoff. The sector nonlinearity based solution is not equipped with such important features. Since the manipulation of the parameters of the T–S fuzzy model is a crucial step, as mentioned in the introduction, the manipulation power of the TP model transformation plays a crucial role in control design. A further important point is that the TP model transformation has a well developed, tractable numerical implementation based on the numerical implementations of HOSVD. Thus, in contrast to the sector nonlinearity method, it is executable automatically with minimal human interaction and has all the same benefits as the HOSVD does for tensors.
Conclusion
This paper was based on the observation that an identified state-space model can have an infinite number of T–S fuzzy or TP model representations. Such representations can differ in the structure of the model, and in the construction of the parameter vector—especially if elements of the state vector are involved—and the location of the vertexes in the polytopic form. The selection of the representation strongly influences the control design. Therefore, we were required to derive a huge set of variations to see which one of them leads to the best solution. This paper proposed an effective tool to readily define such variations, and placed the tool into the context of the TP model transformation-based control design framework, which allows for the principled use of the tool as part of a broader toolset for controller design.
ACKNOWLEDGMENT
The author declares that there is no conflict of interest regarding the publication of this paper.