Status: Infeasible Optimal value (cvx_optval): -Inf

The object function and constraints:


截图20210430134128 截图20210430134216 截图20210430134245 截图20210430134305

My programs:

clc
clear all
M = 5;
ui = [0 ,0];
uf = [5000 ,5000];
Hu = 100;
Hg = 25;
c1 = 9.26e-4;
c2 = 2250;
C = 10;
D = 0.6;
k = 0.2;

Gm = 30;
N0 = 8;
Kc = 15;
delta2 = -110;
belta0 = -60;
alpha = 2.2;
B = 1;
samax = 20;
N = 400;
Vmax = 50;
Vmin = 3;
amax = 5;
Pmax = 1;
Emax = 21;
g = 9.8;
gamma = 52.5;

GU = [1000 3500 4800 4000 1800;1800 4500 3200 1000 300]; % gm

plot(ui(1,1),ui(1,2),‘o’,‘MarkerEdgeColor’,‘b’,‘MarkerSize’,12)
text(ui(1,1),ui(1,2),‘ui’)
hold on
plot(uf(1,1),uf(1,2),‘o’,‘MarkerEdgeColor’,‘b’,‘MarkerSize’,12)
text(uf(1,1),uf(1,2),‘uf’);

for b = 1:5
plot(GU(1,b),GU(2,b),’^’)
text( GU(1,b),10+ GU(2,b),[‘GBS s’,num2str(b)]);

end
xlabel(‘x(m)’)
ylabel(‘y(m)’)
axis([0 5000 0 5000])
axis square
grid on
T = norms(uf(1,1)-ui(1,1))/Vmax; %飞行总时间
delta_t = T/N;%最大速度下每个小路径所花的时间

m = round(norms(uf(1,1)-ui(1,1))/Vmax/delta_t);
qmr = zeros(2,N);
for i = 1:m

   qmr(:,i)=ui(1,1) + (uf(1,1) - ui(1,1))./m.*i;%对qmr进行赋值

end

qmr(:,N) = [5000 ,5000];
%qmr 是从起点到终点的各个节点的坐标
plot(qmr(1,1:N),qmr(2,1:N),“b-”,‘linewidth’,2)

un0 = qmr;

bmn0 = ones(5,N);
fmn0 = ones(5,N);
taon = 0.01.*ones(1,N);
vn = ceil(rand(1,N)*10);
v0 = 15;
an = ones(1,N);

Pn = ones(1,N);

Amnr = zeros(5,N);
for m = 1:5
for n = 1:N
Amnr(m,n) = pow_pos(((Hu - Hg)^2 + pow_pos(norms(un0(:,n)-GU(:,m)),2)),alpha/2);
end
end

Imnr = zeros(5,N);
for m = 1:5
for n = 1:N
Imnr(m,n) = B*log2(1 + (Pn(1,n).*gamma)/Amnr(m,n));
end
end

Jmnr = ones(5,N);
for m = 1:5
for n = 1:N
Jmnr(m,n) = (B.*Pn(1,n).gamma.(alpha/2)log2(exp(1)))/((Hu - Hg)^2 + pow_pos(norms(un0(:,n)-GU(:,m)),2)(Amnr(m,n) + Pn(1,n).*gamma));
end
end

Rmin = 200;
cvx_begin

variable un_opt(2,N) nonnegative;
variable bmn_opt(5,N) nonnegative;
variable fmn_opt(5,N);
variable taon_opt(1,N) nonnegative;

variable yita nonnegative;
maximize yita

subject to
for m = 1:5
for n = 1:N
Imnr(m,n) - Jmnr(m,n)*(pow_pos( norms(un_opt(:,n)-GU(:,m)),2) - pow_pos(norms(un0(:,n)- GU(:,m)),2)) >= fmn_opt(m,n);
end
end

    sum(sum((bmn0(:,1:N)+fmn0(:,1:N)).*(bmn_opt(:,1:N)+fmn_opt(:,1:N))-(1/2).*pow_pos(bmn0(:,1:N)+fmn0(:,1:N),2) -(1/2).*(pow_pos(bmn_opt(:,1:N),2)+ pow_pos(fmn_opt(:,1:N),2)))) >= yita;


    for i  = 1:N
           sum((bmn0(:,i)+fmn0(:,i)).*(bmn_opt(:,i)+fmn_opt(:,i))-(1/2).*pow_pos(bmn0(:,i)+fmn0(:,i),2) -(1/2).*(pow_pos(bmn_opt(:,i),2)+pow_pos(fmn_opt(:,i),2))) >= Rmin .*taon_opt(1,i);
    end


    for i_ =  1:N
        sum(bmn_opt(:,i_)) <= taon_opt(1,i_);  
    end
    
    for i = 1:5
        for i_ = 1:N
            bmn_opt(i,i_) >= 0;
        end
    end

    for i = 2:N
        norms(un_opt(:,i)- un_opt(:,i-1)) <= samax;
        un_opt(:,i) - un_opt(:,i-1) == ((vn(1,i) + vn(1,i-1))./2).*taon_opt(1,i); 
        norms(vn(1,i)-vn(1,i-1)).*inv_pos(taon_opt(1,i)) <= amax; 
    end
    norms(un_opt(:,1) - ui.') <= samax;
    un_opt(:,1) - ui.' ==  taon_opt(1,1)*(vn(1,1) + v0)/2;
    norms(vn(1,1) - v0).*inv_pos(taon_opt(1,1)) <=  amax;  



    sum(c1.*taon_opt(1,2:N).*pow_pos(vn(1,2:N),3) + c2.*taon_opt(1,2:N)./norms(vn(1,2:N)) + (c2.*pow_pos(norms(vn(1,2:N) - vn(1,1:N-1)),2)).*inv_pos(taon_opt(1,2:N))./(g^2)./norms(vn(1,2:N))) ...
    +(c1.*taon_opt(1,1).*pow_pos(vn(1,1),3) + c2.*taon_opt(1,1)./norms(vn(1,1)) + (c2*pow_pos(norms(vn(1,1) - v0),2)).*inv_pos(taon_opt(1,1))./(g^2)./vn(1,1))...
    +sum(Pn(1,1:N).*sum(bmn_opt(:,1:N))) <= Emax;

cvx_end
val1= cvx_optval;
un0 = un_opt;
bmn0 = bmn_opt;
fmn0 = fmn_opt;
taon = taon_opt;

Except for section 1, the advice in https://yalmip.github.io/debugginginfeasible/ also applies to CVX.

Thank you so much! I will try.