- ill-posed problem: the constraint B(x) > 0 might be missing.Result: could not establish feasibility nor infeasibility
gevp problem for ilmi algorithm
조회 수: 5 (최근 30일)
이전 댓글 표시
Hi. I am trying to solve the iterative lmi algorithm using gevp command in matlab. in part of the algorithm it says:
-------------------------------------------------------------------------
1. A,B,C the state matrices are realized first.
2. Q>0 is selected and a ARE is solved for the unknown P A'P+PA-PBB'P+Q=0
3.Iteration starts i=1 and X(i)=P(obtained from above step); Three unknowns are there: P(i), F, alpha(i)( a scalar)
4.Solve the optimization for P(i),F,alpha(i):
minimize alpha(i) subjected to LMI constraints:
4.1 [ A'P(i)+P(i)A - X(i)BB'P(i) - P(i)BB'X(i) + X(i)BB'X(i) - alpha(i)P(i) (B'P(i)+FC)';
B'P(i)+FC -I ] < 0
4.2 P(i)>0
5. alpha(i) is obtained and checked if alpha(i)<=0
-----------------------------------------------------------------
so I have written the following code:(Matrix A is 4*4 and Matrix B is 4*1 and Matrix C is 3*4 in my problem)
setlmis([]);
P=lmivar(1,[4 1]);
F=lmivar(2,[1 3]);
lmiterm([1 1 1 0],0)
lmiterm([-1 1 1 P],1,1)
lmiterm([2 1 1 P],1,A','s')
lmiterm([2 1 1 P],-1,(B*B')*X,'s')
lmiterm([2 1 1 0],X*(B*B')*X)
lmiterm([2 2 1 P],B',1)
lmiterm([2 2 1 F],1,C)
lmiterm([2 2 2 0],-1)
lmiterm([-2 1 1 P],1,1)
lmiterm([-2 2 1 0],zeros(1,4))
lmiterm([-2 2 2 0],zeros(1,1))
lmis = getlmis;
[alpha,popt]=gevp(lmis,2)
-----------------------------------------------------------
but MATLAB says:
* ill-posed problem: the constraint B(x) > 0 might be missing.
Result: could not establish feasibility nor infeasibility
-------------------------------------------------------------------------
What is the problem of my code??? Thanks in advance.
댓글 수: 0
채택된 답변
Stephen Schein
2018년 6월 12일
편집: Stephen Schein
2018년 6월 12일
Hi. In the LMI A(x)<λB(x), B(x) must be positive definite, i.e. B(x) >0, for the problem to be "well-posed".
In your case, your block LMI (given that your λ variable is in fact alpha) is:
[ A'P(i)+P(i)A - X(i)BB'P(i) - P(i)BB'X(i) + X(i)BB'X(i) - alpha(i)P(i) (B'P(i)+FC)';
B'P(i)+FC -I] < 0
Or reframing:
[ A'P(i)+P(i)A - X(i)BB'P(i) - P(i)BB'X(i) + X(i)BB'X(i) (B'P(i)+FC)';
B'P(i)+FC -I]
<
alpha(i) * [ P(i) 0;
0 0]
Clearly, the block diagonal matrix on the right hand side of your LMI is not positive definite, and MATLAB is outputting:
I'm not sure exactly how to fix this, but you may be able to reformulate an equivalent LMI so that you have dependence on alpha in both the upper left and lower right blocks of your "B(x)" matrix.
Hope this helps.
Edit: I found an advanced topics page that actually addresses this issue. The link is below:
https://www.mathworks.com/help/robust/ug/advanced-topics.html
Take a look at the section "Semi-Definite B(x) in gevp Problems". Reformulating your problem in the manner described will fix your issue I believe.
댓글 수: 0
추가 답변 (1개)
Magdi Mosa
2019년 1월 18일
편집: Magdi Mosa
2019년 1월 18일
you can define a new variable similra to P let is called Z
Z=lmiterm(1,[4 1]);
replace alpah*P by the new variable Z in your matrix inequalit then add the follwoing inequalit Z<P
lmiterm([3 1 1 Z],1,1);
lmiterm([-3 1 1 P],1,1);
since P is positive definit then B(x) is positive definit as a pre-requirments of gevp
댓글 수: 0
참고 항목
카테고리
Help Center 및 File Exchange에서 Linear Matrix Inequalities에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!