0

我是 CVX 的新手,我必须解决以下优化问题。

优化问题

我已经为它编写了代码,并且还更改了等式以使其凸出,但我认为我的代码中存在一些我无法弄清楚的问题。

clc; clear all;
m=10;
x_final = 12;
v_final = 2;
v_max = 10;
a_max = 2;
c_loss = 2;
h = 0.1;
T = 5;
r = T/h;

cvx_begin

    variables p(1,r-1) v(1,r) x(1,r) k(1,r) p_d(1,r-1) p_b(1,r-1) a(1,r-1);
    minimize(h*sum(p))
    v(1) == 0;
    x(1) == 0;
    v >= 0;
    a <= a_max;
    v <= v_max;

    for i=1:r-1
        v(i+1) == v(i) + (h*a(i));
        x(i+1) == x(i) + ((h/2)*(v(i) + v(i+1)));
        k(i) >= (m*(v(i)^2))/2;
        p_d(i) >= c_loss*(pow_abs(v(i),3));
        k(i+1) == (h*(p(i) - p_b(i) - p_d(i))) + k(i);
    end
    x(end) >= x_final;
    v(end) <= v_final;

cvx_end

它是用 MATLAB 2020b 编写的,可以在任何地方出错,这是我运行它时得到的输出

检测到微不足道的不可行性;解析确定的解决方案。状态:无界最佳值(cvx_optval):-Inf

4

0 回答 0