linearizebmi & solvebmi

Introduction, Download, Manuals, Examples, About Overbounding Approximation.      [ English / Japanese ]

Manuals

  1. solvebmi
  2. solvebmiOptions
  3. linearizebmi
  4. linearizebmiOptions


solvebmi

Syntax

   [gg,variables,outopts] = solvebmi(Fstr,{'X','Y'},options)

Description

solvebmi obtains approximate solutions for the given BMI and LMI constraints.

Arguments:
Name Type Description
Flist string in cell description of BMIs and LMIs in YALMIP format
vlist string in cell names of decision variable in blinear term (declared by sdpvar)
g sdpvar objective function (declared by sdpvar)
options struct Options. See solvebmiOptions.

Return values:
Name Type Description
gg numeric achieved objective value
variables struct data of optimal solution for all decision variables
outopts struct optimization history

Example

Let us consider the following BMI problems.
\[ \begin{array}{ll} \underset{\gamma,P,K}{\mathrm{minimize}} & \gamma \\ \mathrm{subject~to} & P \succ O, \\ ~ & \left[ \begin{array}{ccc} \mathrm{He}(P(A+B_{2}KC_{2})) & P(B_{1} + B_{2}KD_{21}) & (C_{1} + D_{12}KC_{2})^\mathrm{T} \\ (B_{1} + B_{2}KD_{21})^\mathrm{T}P & -\gamma I & (D_{11} + D_{12}KD_{21})^\mathrm{T} \\ C_{1} + D_{12}KC_{2} & D_{11} + D_{12}KD_{21} & -\gamma I \end{array} \right] \prec O. \end{array} \]
  1. Define data matrices and their size in the problem.
              n = ...;
              m = ...;
              a = ...;
              b1 = ...;
              .
              .
              .
            
  2. Define the decision matrices \(P\), \(K\) and the objective function \(\gamma\).
              P = sdpvar(n,n);
              K = sdpvar(m,m);
              g = sdpvar(1,1);
            
  3. (Optional) Assign initial values for decision matrices if you know some feasible solutions.
    For example, if \(P=I, K=O\) are feasible solutions, you can assign them as below.
              assign(P,eye(n,n));
              assign(K,zeros(n,n));
            
  4. Describe the BMI and LMI constraints as strings.
              Fstr1 = "-P";
              Fstr2 = "[P*(a+b2*K*c2)+(P*(a+b2*K*c2))', P*(b1+b2*K*d21), (c1+d12*K*c2)';"   +...
                      "(P*(b1+b2*K*d21))',              -g*eye(nw,nw),   (d11+d12*K*d21)';" +...
                      "c1+d12*K*c2,                     d11+d12*K*d21,   -g*eye(nz)]"; 
              Flist = {Fstr1,Fstr2};
            
  5. Use solvezebmi to solve the BMI problem.
              [gg,vars] = solvebmi(Flist,{'P','K'},g,options);
            
    solvezebmi can use different dilation types (with options) to solve the BMI problem. See examples in detail.

  6. Get optimal solutions for decision matrices.
              vars.P
              vars.K
              vars.g
            
    In this problem, vars.g is same as gg.


solvebmiOptions

Syntax

     opts = solvebmiOptions
     opts = solvebmiOptions('NAME1',VALUE1,'NAME2',VALUE2,...)
     opts = solvebmiOptions(OLDOPTIONS,'NAME1',VALUE1,'NAME2',VALUE2,...)

Description

solvebmiOptions sets up various parameters for solvebmi. The fields of the returned value opts are summarized below.

Fields of struct opts:
Field name Type Description
yalmip struct YALMIP options passed to optimize
method int type of extended LMI that approximates BMI
lcmax int maximun number of iteration
stoptol double Threshold for stopping criteria. If the improvement of the objective function is less than stoptol, the iteration stops.
penalty double Constant weight \(\lambda\) for the regularization term \(\lambda\cdot\)||\(X\)||\({}_F\), which is added to the objective function.
regterm logical Flag to use variable regularization term \(\dfrac{\lambda}{\ell c}\cdot\)||\(X\)||\({}_F\). (\(\ell c\) is the number of iteration)

Example

  yalmipopts = sdpsettings;
  yalmipopts = sdpsettings(yalmipopts,'solver','mosek');
  opts = solvebmiOptions;
  opts = solvebmiOptions(opts,'lcmax',1e3);
  opts = solvebmiOptions(opts,'yalmip',yalmipopts);


linearizebmi

Syntax

   LMI = linearizebmi(Fstr,{'X','Y'},{'X0','Y0'})
   LMI = linearizebmi(Fstr,{'X','Y'},{'X0','Y0'},'G')
   LMI = linearizebmi(Fstr,{'X','Y'},{'X0','Y0'},'G',opts)
   [LMI, LMIstr] = linearizebmi(Fstr,{'X','Y'},{'X0','Y0'},'G',opts)

Description

linearizebmi generates a sufficient Linear Matrix Inequality (LMI) constraint from the given Bilinear Matrix Inequality (BMI) constraint.

Auguments:
NameTypeDescription
Fstrstringdescription of BMI in YALMIP format
{'X','Y'} string in cellnames of decision variable (declared by sdpvar)
{'X0','Y0'} string in cellnames of current feasible solutions (sdpvar or constant matrix)
'G' stringname of decompsition matrix (constant matrix) (default: identity matrix)
options struct Options. See linearizebmiOptions.

Return values:
NameTypeDescription
LMIsdpvardilated LMI variable
Lstrstringstring description of dilated LMI

Lstr'+Lstr corresponds to the left-hand side of the dilated LMI.

Example

Let us consider a BMI constraint $P(A+BKC)+(A+BKC)^\mathrm{T}P\prec O$, where $P$ and $K$ are the decision matices.
  1. Problem definition
          n = 4;
          m = 2;
          A = rand(n,n);
          B = rand(n,m);
          C = rand(m,n);
        
  2. Define the decision matrices $P$, $K$ and the constant decomposition matrix $G$.
          % decision matrices
          P = sdpvar(n,n);
          K = sdpvar(m,m);
          % current feasible solutions
          P0 = zeros(n,n);
          K0 = zeros(m,m);
          % constant decomposition matrix
          G = eye(m,m);
      
    In case of using linearizebmi in a iteration loop, one can pass sdpvar object as current feasible solutions. See examples in detail.

  3. Describe the BMI constraint $P(A+BKC)+(A+BKC)^\mathrm{T}\prec O$ by a character string.
          Fstr = "P*(A+B*K*C)+(A+B*K*C)'*P";
      
  4. Use linearizebmi to generate a dilated LMI.
          % matrix sdp variable
          [LMI,Lstr] = linearizebmi(Fstr,{'P','K'},{'P0','K0'},'G');
          % constraint in YALMIP format
          constraints = [LMI <= 0];
      
  5. Return values of linearizebmi.
          LMI
    
          Linear matrix variable 6x6 (symmetric, real, 13 variables)
          Coeffiecient range: 0.043024 to 3.4622
    
    
          Lstr
    
          LMI:
              "(P-P0)*A+comp*C"    "(P-P0)*B"
              "G*(K-K0)*C"         "-G"      
          comp:
              "P0*B*K0+(P-P0)*B*K0+P0*B*(K-K0)"
      
    Lstr'+Lstr corresponds to the left-hand side of the dilated LMI.


linearizebmiOptions

Syntax

     opts = linearizebmiOptions
     opts = linearizebmiOptions('NAME1',VALUE1,'NAME2',VALUE2,...)
     opts = LinearizebmiOptions(OLDOPTIONS,'NAME1',VALUE1,'NAME2',VALUE2,...)

Description

linearizebmiOptions sets up parameters for linearizebmi. The fields of the returned value opts are summarized below.

Fields of struct opts:
Field name Type Description
method int type of extended LMI that approximates BMI
    0: Sebe (2007)
    1: Sebe (2018)
    2: Shimomura & Fujii (2005)
    3: Lee & Hu (2016)
    4: Ren et al. (2021)

References:
  1. N. Sebe, A New Dilated LMI Characterization and Iterative Control System Synthesis, 11th IFAC/IFORS/IMACS/IFIP Symposium on Large Scale Systems: Theory and Applications (LSS 2007), 6 pages, 2007. (IFAC Proceedings Volumes, 40-9, pp. 250-255, 2007)
    doi:10.3182/20070723-3-PL-2917.00040
  2. N. Sebe, Sequential Convex Overbounding Approximation Method for Bilinear Matrix Inequality Problems, 9th IFAC Symposium on Robust Control Design (ROCOND'18), pp. 175-182, 2018. (IFAC-PapersOnLine, 51-25, pp. 102-109, 2018)
    doi:10.1016/j.ifacol.2018.11.089
  3. T. Shimomura and T. Fujii, Multiobjective control via successive over-bounding of quadratic terms, International Journal of Robust and Nonlinear Control, 15-8, pp. 363-381, 2005.
    doi:10.1002/rnc.997
  4. D. Lee and J. Hu, A sequential parametric convex approximation method for solving bilinear matrix inequalities, 2016 IEEE 55th Conference on Decision and Control (CDC), pp. 1965-1970, 2016.
    doi: 10.1109/CDC.2016.7798552
  5. Y. Ren, Q. Li, K.-Z. Liu, D.-W. Ding, A successive convex optimization method for bilinear matrix inequality problems and its application to static output-feedback control, International Journal of Robust and Nonlinear Control, 31-18, pp. 9709-9730, 2021.
    doi:10.1002/rnc.5796

Example

  opts = solvebmiOptions;
  opts = solvebmiOptions(opts,'method',1);


Return to Sebe's home page
sebe[a]ics.kyutech.ac.jp
Last modified: Mon Mar 7 23:58:08 JST 2022