跳转到主要内容

Matlab电力运营商在目标函数

等待用户输入

评论

3评论

  • JaromiłNajman
    Gurobi员工”title=Gurobi员工

    嗨,利维亚,

    模型\ (2 ^ z \)功能,必须使用Gurobi一般约束接口。在特定的情况下,您必须使用genconexpa结构体数组。没有显示这个函数但示例gc_pwl_func。米的例子显示了genconexp结构体数组的用法,它近似地工作。

    最好的问候,
    Jaromił

    0
  • 利维亚Paiva
    Gurobi-versary”title=
    第一个评论”title=
    第一个问题”title=

    嗨Jaromil,

    感谢你的回复!我想我的问题适应你发送的例子。但是在我的例子中,目标函数不是一个设计变量的线性组合,它是一个相当复杂的非线性函数。

    在你寄给我的例子(简化的),我怎么能改变。obj是一个设计变量作为参数的函数?

    四nonneg %。变量x, y, u, v,一个线性约束u + 4 * v < = 9
    m。varnames = {' x ', ' y ', ' u ', ' v '};
    m。1磅= 0 (4);
    m。乌兰巴托= +正(4,1);
    m。一个=稀疏([0,0,1,4]);
    m。rhs = 9;

    %的目标
    m。modelsense =“max”;
    m。obj = [2;1;0;0);

    %设置u \大约exp (x)
    m.genconexp。xvar = 1;
    m.genconexp。yvar = 3;
    m.genconexp.name =“gcf1”;

    %设置v \大约sqrt (y) = y ^ 0.5
    m.genconpow。xvar = 2;
    m.genconpow。yvar = 4;
    m.genconpow。一个= 0.5;
    m.genconpow.name =“gcf2”;

    %参数离散化:使用相等的块长度和长度= 1 e - 3
    参数个数。FuncPieces = 1;
    参数个数。FuncPieceLength = 1 e - 3;

    %解决和打印解决方案
    结果= gurobi (m, params);
    printsol(结果。result.x objval result.x (1) (2), result.x (3), result.x (4));

    再次感谢!

    0
  • JaromiłNajman
    Gurobi员工”title=Gurobi员工

    嗨,利维亚,

    我不确定我是否理解你的问题。你一般约束定义约束\ (u = \ exp (x) \)和\ (v = \ sqrt {y} \)。您现在可以使用变量\ (u \)和\ (v \),例如,添加\ \ exp (x) \)和\ \√{y} \)的目标

    m。obj = [0;0;1;1];

    这回答你的问题吗?

    最好的问候,
    Jaromił

    0

登录留下你的评论。