Baranyi and Yam proposed the TP model transformation [1] [2] [3] [4] [5] [6] [7] as a new concept in quasi-LPV (qLPV) based control, which plays a central role in the highly desirable bridging between identification and polytopic systems theories. It is also used as a TS (Takagi-Sugeno) fuzzy model transformation. It is uniquely effective in manipulating the convex hull of polytopic forms (or TS fuzzy models), and, hence, has revealed and proved the fact that convex hull manipulation is a necessary and crucial step in achieving optimal solutions and decreasing conservativeness [8] [9] [2] in modern linear matrix inequality based control theory. Thus, although it is a transformation in a mathematical sense, it has established a conceptually new direction in control theory and has laid the ground for further new approaches towards optimality.
For details please visit: TP model transformation.
A free MATLAB implementation of the TP model transformation can be downloaded at [1] or an old version of the toolbox is available at MATLAB Central [2]. Be careful, in the MATLAB toolbox the assignments of the dimensions of the core tensor is in the opposite way in contrast to the notation used in the related literature. In some variants of the ToolBox, the first two dimension of the core tensor is assigned to the vertex systems. In the TP model literature the last two. A simple example is given below.
clear M1=20; % Grid density M2=20; omega1=[-1,1]; %Interval omega2=[-1,1]; domain=[omega1; omega2]; for m1=1:M1 for m2=1:M2 p1=omega1(1)+(omega1(2)-omega1(1))/M1*(m1-1); %sampling grid p2=omega2(1)+(omega2(2)-omega2(1))/M2*(m2-1); SD(m1,m2,1,:)=[1 0]; % SD is the discretized system matrix SD(m1,m2,2,:)=[(-1-0.67*p1*p1) (1.726*p2*p2)]; end end [S,U, sv]=hosvd(SD,[1,1,0,0],1e-12); % Finding the TP structure UA{1}=U{1}; % This is the HOSVD based canonical form UA{2}=U{2}; ns1 = input('Results of SNNN TS fuzzy model'); UC=genhull(UA,'snnn'); % snnn weightinf functions UCP{1}=pinv(UC{1}); UCP{2}=pinv(UC{2}); SC=tprods(SD,UCP); %This is to find the core tensor H(:,:)=SC(1,1,:,:) %This is to show the vertices of the TP model H(:,:)=SC(1,2,:,:) H(:,:)=SC(2,1,:,:) H(:,:)=SC(2,2,:,:) figure(1) hold all plothull(U{1}, omega1) %Draw the waiting functions of p1 title('Weighting functions for p_{1}'); xlabel('p_{1}') ylabel('Weighting functions') grid on box on figure(2) hold all plothull(UC{2}, omega2) %Show the waiting functions of p2 title('Weighting functions for p_{2}'); xlabel('p_{2}') ylabel('Weighting functions') grid on box on ns2 = input('Results of CNO TS fuzzy model'); UC=genhull(UA,'cno'); %Create CNO type waiting functions UCP{1}=pinv(UC{1}); UCP{2}=pinv(UC{2}); SC=tprods(SD,UCP); %Find the cortensor H(:,:)=SC(1,1,:,:) %Show the vertices of the TP model H(:,:)=SC(1,2,:,:) H(:,:)=SC(2,1,:,:) H(:,:)=SC(2,2,:,:) figure(1) hold all plothull(U{1}, omega1) %Show the waiting functions of p1 title('Weighting functions for p_{1}'); xlabel('p_{1}') ylabel('Weighting functions') grid on box on figure(2) hold all plothull(UC{2}, omega2) %Show the waiting functions of p2 title('Weighting functions for p_{2}'); xlabel('p_{2}') ylabel('Weighting functions') Once you have the feedback vertexes derived to each vertexes of the TP model then you may want to calculate the controller over the same polytope (see PDC design by Tanaka) W = queryw1(UC,domain,p); % computing the weighting values over the parameter vector F = tprods(K,W); % calculating the parameter dependent feedback F(p) F = shiftdim(F) U=-F*x % calculate the control value.
with input , output and state vector . The system matrix is a parameter-varying object, where is a time varying -dimensional parameter vector which is an element of closed hypercube . As a matter of fact, further parameter dependent channels can be inserted to that represent various control performance requirements.
in the above LPV model can also include some elements of the state vector , and, hence this model belongs to the class of non-linear systems, and is also referred to as a quasi LPV (qLPV) model.
with input , output and state vector . The system matrix is a parameter-varying object, where is a time varying -dimensional parameter vector which is an element of closed hypercube , and the weighting functions are the elements of vector . Core tensor contains elements which are the vertexes of the system. As a matter of fact, further parameter dependent channels can be inserted to that represent various control performance requirements. Here
This means that is within the vertexes of the system (within the convex hull defined by the vertexes) for all . Note that the TP type polytopic model can always be given in the form
where the vertexes are the same as in the TP type polytopic form and the multi variable weighting functions are the product of the one variable weighting functions according to the TP type polytopic form, and r is the linear index equivalent of the multi-linear indexing .
Assume a given qLPV model , where , whose TP polytopic structure may be unknown (e.g. it is given by neural networks). The TP model transformation determines its TP polytopic structure as
namely it generates core tensor and weighting functions of for all . Its free MATLAB implementation is downloadable at [3] or at MATLAB Central [4].
If the given model does not have (finite element) TP polytopic structure, then the TP model transformation determines its approximation:
where trade-off is offered by the TP model transformation between complexity (number of vertexes stored in the core tensor or the number of weighting functions) and the approximation accuracy. [10] The TP model can be generated according to various constrains. Typical TP models generated by the TP model transformation are:
Since the TP type polytopic model is a subset of the polytopic model representations, the analysis and design methodologies developed for polytopic representations are applicable for the TP type polytopic models as well. One typical way is to search the nonlinear controller in the form:
where the vertexes of the controller is calculated from . Typically, the vertexes are substituted into Linear Matrix Inequalities in order to determine .
In TP type polytopic form the controller is:
where the vertexes stored in the core tensor are determined from the vertexes stored in . Note that the polytopic observer or other components can be generated in similar way, such as these vertexes are also generated from .
The polytopic representation of a given qLPV model is not invariant. I.e. a given has number of different representation as:
where . In order to generate an optimal control of the given model we apply, for instance LMIs. Thus, if we apply the selected LMIs to the above polytopic model we arrive at:
Since the LMIs realize a non-linear mapping between the vertexes in and we may find very different controllers for each . This means that we have different number of "optimal" controllers to the same system . Thus, the question is: which one of the "optimal" controllers is really the optimal one. The TP model transformation let us to manipulate the weighting functions systematically that is equivalent to the manipulation of the vertexes. The geometrical meaning of this manipulation is the manipulation of the convex hull defined by the vertexes. We can easily demonstrate the following facts:
of a given model , then we can generate a controller as
then we solved the control problem of all systems that can be given by the same vertexes, but with different weighting functions as:
where
If one of these systems are very hardly controllable (or even uncontrollable) then we arrive at a very conservative solution (or unfeasible LMIs). Therefore, we expect that during tightening the convex hull we exclude such problematic systems.
{{
cite journal}}
: CS1 maint: multiple names: authors list (
link)
Baranyi and Yam proposed the TP model transformation [1] [2] [3] [4] [5] [6] [7] as a new concept in quasi-LPV (qLPV) based control, which plays a central role in the highly desirable bridging between identification and polytopic systems theories. It is also used as a TS (Takagi-Sugeno) fuzzy model transformation. It is uniquely effective in manipulating the convex hull of polytopic forms (or TS fuzzy models), and, hence, has revealed and proved the fact that convex hull manipulation is a necessary and crucial step in achieving optimal solutions and decreasing conservativeness [8] [9] [2] in modern linear matrix inequality based control theory. Thus, although it is a transformation in a mathematical sense, it has established a conceptually new direction in control theory and has laid the ground for further new approaches towards optimality.
For details please visit: TP model transformation.
A free MATLAB implementation of the TP model transformation can be downloaded at [1] or an old version of the toolbox is available at MATLAB Central [2]. Be careful, in the MATLAB toolbox the assignments of the dimensions of the core tensor is in the opposite way in contrast to the notation used in the related literature. In some variants of the ToolBox, the first two dimension of the core tensor is assigned to the vertex systems. In the TP model literature the last two. A simple example is given below.
clear M1=20; % Grid density M2=20; omega1=[-1,1]; %Interval omega2=[-1,1]; domain=[omega1; omega2]; for m1=1:M1 for m2=1:M2 p1=omega1(1)+(omega1(2)-omega1(1))/M1*(m1-1); %sampling grid p2=omega2(1)+(omega2(2)-omega2(1))/M2*(m2-1); SD(m1,m2,1,:)=[1 0]; % SD is the discretized system matrix SD(m1,m2,2,:)=[(-1-0.67*p1*p1) (1.726*p2*p2)]; end end [S,U, sv]=hosvd(SD,[1,1,0,0],1e-12); % Finding the TP structure UA{1}=U{1}; % This is the HOSVD based canonical form UA{2}=U{2}; ns1 = input('Results of SNNN TS fuzzy model'); UC=genhull(UA,'snnn'); % snnn weightinf functions UCP{1}=pinv(UC{1}); UCP{2}=pinv(UC{2}); SC=tprods(SD,UCP); %This is to find the core tensor H(:,:)=SC(1,1,:,:) %This is to show the vertices of the TP model H(:,:)=SC(1,2,:,:) H(:,:)=SC(2,1,:,:) H(:,:)=SC(2,2,:,:) figure(1) hold all plothull(U{1}, omega1) %Draw the waiting functions of p1 title('Weighting functions for p_{1}'); xlabel('p_{1}') ylabel('Weighting functions') grid on box on figure(2) hold all plothull(UC{2}, omega2) %Show the waiting functions of p2 title('Weighting functions for p_{2}'); xlabel('p_{2}') ylabel('Weighting functions') grid on box on ns2 = input('Results of CNO TS fuzzy model'); UC=genhull(UA,'cno'); %Create CNO type waiting functions UCP{1}=pinv(UC{1}); UCP{2}=pinv(UC{2}); SC=tprods(SD,UCP); %Find the cortensor H(:,:)=SC(1,1,:,:) %Show the vertices of the TP model H(:,:)=SC(1,2,:,:) H(:,:)=SC(2,1,:,:) H(:,:)=SC(2,2,:,:) figure(1) hold all plothull(U{1}, omega1) %Show the waiting functions of p1 title('Weighting functions for p_{1}'); xlabel('p_{1}') ylabel('Weighting functions') grid on box on figure(2) hold all plothull(UC{2}, omega2) %Show the waiting functions of p2 title('Weighting functions for p_{2}'); xlabel('p_{2}') ylabel('Weighting functions') Once you have the feedback vertexes derived to each vertexes of the TP model then you may want to calculate the controller over the same polytope (see PDC design by Tanaka) W = queryw1(UC,domain,p); % computing the weighting values over the parameter vector F = tprods(K,W); % calculating the parameter dependent feedback F(p) F = shiftdim(F) U=-F*x % calculate the control value.
with input , output and state vector . The system matrix is a parameter-varying object, where is a time varying -dimensional parameter vector which is an element of closed hypercube . As a matter of fact, further parameter dependent channels can be inserted to that represent various control performance requirements.
in the above LPV model can also include some elements of the state vector , and, hence this model belongs to the class of non-linear systems, and is also referred to as a quasi LPV (qLPV) model.
with input , output and state vector . The system matrix is a parameter-varying object, where is a time varying -dimensional parameter vector which is an element of closed hypercube , and the weighting functions are the elements of vector . Core tensor contains elements which are the vertexes of the system. As a matter of fact, further parameter dependent channels can be inserted to that represent various control performance requirements. Here
This means that is within the vertexes of the system (within the convex hull defined by the vertexes) for all . Note that the TP type polytopic model can always be given in the form
where the vertexes are the same as in the TP type polytopic form and the multi variable weighting functions are the product of the one variable weighting functions according to the TP type polytopic form, and r is the linear index equivalent of the multi-linear indexing .
Assume a given qLPV model , where , whose TP polytopic structure may be unknown (e.g. it is given by neural networks). The TP model transformation determines its TP polytopic structure as
namely it generates core tensor and weighting functions of for all . Its free MATLAB implementation is downloadable at [3] or at MATLAB Central [4].
If the given model does not have (finite element) TP polytopic structure, then the TP model transformation determines its approximation:
where trade-off is offered by the TP model transformation between complexity (number of vertexes stored in the core tensor or the number of weighting functions) and the approximation accuracy. [10] The TP model can be generated according to various constrains. Typical TP models generated by the TP model transformation are:
Since the TP type polytopic model is a subset of the polytopic model representations, the analysis and design methodologies developed for polytopic representations are applicable for the TP type polytopic models as well. One typical way is to search the nonlinear controller in the form:
where the vertexes of the controller is calculated from . Typically, the vertexes are substituted into Linear Matrix Inequalities in order to determine .
In TP type polytopic form the controller is:
where the vertexes stored in the core tensor are determined from the vertexes stored in . Note that the polytopic observer or other components can be generated in similar way, such as these vertexes are also generated from .
The polytopic representation of a given qLPV model is not invariant. I.e. a given has number of different representation as:
where . In order to generate an optimal control of the given model we apply, for instance LMIs. Thus, if we apply the selected LMIs to the above polytopic model we arrive at:
Since the LMIs realize a non-linear mapping between the vertexes in and we may find very different controllers for each . This means that we have different number of "optimal" controllers to the same system . Thus, the question is: which one of the "optimal" controllers is really the optimal one. The TP model transformation let us to manipulate the weighting functions systematically that is equivalent to the manipulation of the vertexes. The geometrical meaning of this manipulation is the manipulation of the convex hull defined by the vertexes. We can easily demonstrate the following facts:
of a given model , then we can generate a controller as
then we solved the control problem of all systems that can be given by the same vertexes, but with different weighting functions as:
where
If one of these systems are very hardly controllable (or even uncontrollable) then we arrive at a very conservative solution (or unfeasible LMIs). Therefore, we expect that during tightening the convex hull we exclude such problematic systems.
{{
cite journal}}
: CS1 maint: multiple names: authors list (
link)