Xml matlab中的Cplex API无法在.sol文件中写入解决方案
我使用Matlab中的CPLEXAPI和yalmip来解决一个简单的Lp问题。解决后,我想将解决方案保存在文件中。解决方案在cplex对象中。 根据帮助文件,方法“cplex.writeSolution('min\u test.sol')”将完成这项工作。但当我打电话给它时,它表明: 使用cplexlink1290时出错 CPLEX错误1217:不存在解决方案 我找不到问题出在哪里。有人知道为什么吗 下面是我使用的源代码 cplex.writeSolution('min_test.sol')) 使用cplexlink1290时出错 CPLEX错误1217:不存在解决方案 Cplex/writeSolution中出错Xml matlab中的Cplex API无法在.sol文件中写入解决方案,xml,matlab,api,export,cplex,Xml,Matlab,Api,Export,Cplex,我使用Matlab中的CPLEXAPI和yalmip来解决一个简单的Lp问题。解决后,我想将解决方案保存在文件中。解决方案在cplex对象中。 根据帮助文件,方法“cplex.writeSolution('min\u test.sol')”将完成这项工作。但当我打电话给它时,它表明: 使用cplexlink1290时出错 CPLEX错误1217:不存在解决方案 我找不到问题出在哪里。有人知道为什么吗 下面是我使用的源代码 cplex.writeSolution('min_test.sol'))
Cplex/subsref中的错误您是否能够用您可以提供给我们的?如果是,请这样做,我们将帮助您。到目前为止,我们了解到您的模型并没有与输入数据和参数收敛;这就是它无法编写解决方案的原因。对不起,我似乎忘记了一个函数。我已经更新了代码,只设置了“year_present=11”。我可以在我的计算机上独立运行,CPLEX可以获得最佳解决方案。但是,我无法导出解决方案。
clc,clear
year_w = 25;
discount = 0.08;
c_inv_w_raw = 6700/10;
year_present = 11;
c_inv_w = c_inv_w_raw/year_present;
c_op_g = 0.025 * 8760;
l_t = 1000; % MW
wind_data = 0.24; % p.u.
p_gc_max = 800; % MW
p_wc_max = -1; % MW
%%
p_wc = sdpvar();
p_w = sdpvar();
p_g = sdpvar();
c_inv = p_wc * c_inv_w;
c_op = p_g * c_op_g;
obj = c_inv + c_op;
%%
cons = [];
cons_name_list=cell(0,1);
cons = [cons,(p_w + p_g == l_t):'PB'];
cons_name_list = cat(1, cons_name_list,{'PB'});
cons = [cons,(p_w <= wind_data * p_wc):'w_u'];
cons_name_list = cat(1, cons_name_list,{'w_u'});
cons = [cons,(p_w >= 0):'w_l'];
cons_name_list = cat(1, cons_name_list,{'w_l'});
if p_gc_max>0
cons = [cons,(0<=p_g <= p_gc_max):'g_ul'];
cons_name_list = cat(1, cons_name_list,{'g_ul'});
end
if p_wc_max>0
cons = [cons,(0<=p_wc <= p_wc_max):'wc_u'];
cons_name_list = cat(1, cons_name_list,{'wc_u'});
end
fg_calbycplex =true;
%%
if fg_calbycplex
disp('cplex');
[model,recoverymodel,~,internalmodel] = export(cons,obj,sdpsettings('solver','cplex'));
model.A = [model.Aineq;model.Aeq];
model.lhs = [-inf(size(model.Aineq,1),1); model.beq];
model.rhs = [model.bineq; model.beq];
model.idxeq = size(model.bineq,1) + (1:size(model.beq,1));
cplex = Cplex('GTEP');
cplex.Model.sense = 'minimize';
cplex.Model.obj = model.f;
cplex.Model.lb = -inf(size(model.Aineq,2),1);
cplex.Model.ub = inf(size(model.Aineq,2),1);
cplex.Model.A = model.A;
cplex.Model.lhs = model.lhs;
cplex.Model.rhs = model.rhs;
tic
% cplex.DisplayFunc=[] %@disp
cplex.solve();
toc
assign(recover(recoverymodel.used_variables),cplex.Solution.x);
end
status: 1
statusstring: 'optimal'
time: 0.0160
dettime: 0.0028
objval: 2.2596e+05
x: [3x1 double]
method: 2
dual: [5x1 double]
basis: [1x1 struct]
reducedcost: [3x1 double]
ax: [5x1 double]