Home > mpt > extras > control > mldmpc > mpc_buildmatFAST.m

mpc_buildmatFAST

PURPOSE ^

===============================================================================

SYNOPSIS ^

function [S1, S2, S3, F1, F2, F3, c1, c2, c3, IntIndex, Ext] = mpc_buildmatFAST(horizon,SYSTEM, WEIGHT, x1, u1, d1, z1, y1, eps2, xtt, Options)

DESCRIPTION ^

===============================================================================

 Title:       mpc_buildmatFAST.m                                              

 Version:     2.0
                                                                       
 Project:     Control of MLD systems
                                                                       
 Sub-Project: Constrained Finite Time Optimal Control (CFTOC) of MLD systems
                                                                       
 Purpose:     Formulate multi-parametric (mixed integer) program
              equivalent to the CFTOC problem of MLD system
                                                                        
 Author:      (C) Mato Baotic, Zurich, March 17, 2003
              (C) Michal Kvasnica, Zurich, June 23, 2005

 History:     date        subject
              2003.11.19  first public release                 
              2003.07.29  fast implementation (static allocation of memory space)
                          Tobias Geyer = Version 1.2
              2003.03.18  Various bugs fixed
                          = Version 1.1
              2003.03.17  Initial Version
                          = Version 1.0
                      
 Description: Given:   horizon
                       SYSTEM,
                       WEIGHT, 
                       x1, u1, d1, z1, y1,
                       eps2, xtt, Options
              Returns: S1, S2, S3, F1, F2, F3, c1, c2, c3, IntIndex

              The optimization for the control problem is formulated as:
                         
                   min  v' S1 v + 2(S2 + x0' S3) v
                   s.t. F1 v   <= F2  + F3 x0
              Here we denote:

                   horizon - vector of time segments (steps) through which
                             specific SYSTEM is used in state update equation.
                   NT      - prediction horizon [1, inf), NT=sum(horizon)
                   SYSTEM  - cell structure with MLD system descriptions:
                             A, B1, B2, B3, B5, C, D1, D2, D3, D5, E1, E2, E3, E4, E5
                             Note: if input is not cell structure (but just a structure)
                                   then we have a time invariant system
                   WEIGHT  - cell structure with weights on u, d, z, x, y:
                             Qu, Qd, Qz, Qx, Qy
                   IntIndex - indices of integer variables in optimizer vector v

                   v     = [ U',D',Z',EU',ED',EZ',EX',EY']'
                   U     = [ u'(0), ... , u'(T-1)]'
                   D     = [ d'(0), ... , d'(T-1)]'
                   Z     = [ z'(0), ... , z'(T-1)]'
                   EU    = [ epsu'(0), ... , epsu'(T-1)]'
                   ED    = [ epsd'(0), ... , epsd'(T-1)]'
                   EZ    = [ epsz'(0), ... , epsz'(T-1)]'
                   EX    = [ epsx'(0), ... , epsx'(T-1)]'
                   EY    = [ epsy'(0), ... , epsy'(T-1)]

              The steady state values are: x1, d1, u1, z1, y1. These variables
              can also be time-varying trajectories. 
              If the steady state values have not the length n_*NT (n_ is the
              corresponding number of components), then the last value of the
              steady state vector is repeated.

              The terminal state is given by xtt

              c1,c2,c3: parameters for the constant term of the optimization
                        the complete constant term is obtained as: 
                        Jc = 0.5*x(0)'*c1*x(0) + c2*x(0) + c3

              It is assumed, that the prediction horizon and the control
              horizon are the same

 Contact:     Mato Baotic
              Automatic Control Laboratory                
              ETH Zentrum,
              Zurich, Switzerland

              baotic@control.ee.ethz.ch

              Comments and bug reports are highly appreciated

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:
Generated on Thu 30-Mar-2006 10:26:47 by m2html © 2003