x = sdpvar(repmat(nx,1,N+1),repmat(1,1,N+1)); % nx=2u = sdpvar(repmat(nu,1,N),repmat(1,1,N)); % nu=2
constraints = [];objective = 0;
for k=1:N Pg = [-1 -1]*u{k} - Ppv(k) + Pl(k); % power balance objective = objective + pk(k)*Pg; Model1 = [ x{k+1}==(A*x{k}-B00*u{k}), u{k}(1)>=0, u{k}(2)>=0 ]; Model2 = [ x{k+1}==(A*x{k}-B01*u{k}), u{k}(1)>=0, u{k}(2)<=0 ]; Model3 = [ x{k+1}==(A*x{k}-B10*u{k}), u{k}(1)<=0, u{k}(2)>=0 ]; Model4 = [ x{k+1}==(A*x{k}-B11*u{k}), u{k}(1)<=0, u{k}(2)<=0 ]; constraints = [ constraints, Model1 | Model2 | Model3 | Model4, ... cxm<=x{k}<=cxM, cum<=u{k}<=cuM, Pgm<=Pg<=PgM ]; end
constraints = [ constraints, cxm<=x{N+1}<=cxM, x{1}==x0 ];objective = objective - pN*[ebd efd]*x{N+1};
xb = sdpvar(repmat(1,1,N+1),repmat(1,1,N+1));ub = sdpvar(repmat(1,1,N),repmat(1,1,N));xf = sdpvar(repmat(1,1,N+1),repmat(1,1,N+1));uf = sdpvar(repmat(1,1,N),repmat(1,1,N));
constraints = [];objective = 0;
for k=1:N Pg = -ub{k} - uf{k} - Ppv(k) + Pl(k); % power balance objective = objective + pk(k)*Pg; Model_b1 = [ xb{k+1}==xb{k}-1/ebd*ub{k}, ub{k}>=0 ]; Model_b2 = [ xb{k+1}==xb{k}-1*ebc*ub{k}, ub{k}<=0 ]; Model_f1 = [ xf{k+1}==xf{k}-1/efd*uf{k}, uf{k}>=0 ]; Model_f2 = [ xf{k+1}==xf{k}-1*efc*uf{k}, uf{k}<=0 ]; constraints = [ constraints, Model_b1 | Model_b2, Model_f1 | Model_f2, ... cbm<=xb{k}<=cbM, cfm<=xf{k}<=cfM, Pbm<=ub{k}<=PbM, Pfm<=uf{k}<=PfM, Pgm<=Pg<=PgM ]; end
constraints = [ constraints, cbm<=xb{N+1}<=cbM, cfm<=xf{N+1}<=cfM, xb{1}==x0(1), xf{1}==x0(2) ];objective = objective - pN*ebd*xb{N+1} - pN*efd*xf{N+1};
delta = binvar(repmat(4,1,N),repmat(1,1,N));
constraints = [];objective = 0;
for k=1:N Pg = [-1 -1]*u{k} - Ppv(k) + Pl(k); % power balance objective = objective + pk(k)*Pg; Model1 = [ x{k+1}==(A*x{k}-B00*u{k}), u{k}(1)>=0, u{k}(2)>=0 ]; Model2 = [ x{k+1}==(A*x{k}-B01*u{k}), u{k}(1)>=0, u{k}(2)<=0 ]; Model3 = [ x{k+1}==(A*x{k}-B10*u{k}), u{k}(1)<=0, u{k}(2)>=0 ];
Model4 = [ x{k+1}==(A*x{k}-B11*u{k}), u{k}(1)<=0, u{k}(2)<=0 ];
constraints = [constraints, implies(delta{k}(1), Model1)];
constraints = [constraints, implies(delta{k}(2), Model2)];
constraints = [constraints, implies(delta{k}(3), Model3)];
constraints = [constraints, implies(delta{k}(4), Model4)];
constraints = [constraints, sum(delta{k})==1];
constraints = [ constraints,cxm<=x{k}<=cxM, cum<=u{k}<=cuM, Pgm<=Pg<=PgM ]; end
[H,bins] = hull(Model1,Model2,Model3,Model4);
constraints = [constraints, H, binary(bins)];
yalmip('clear')x1 = sdpvar(1);v1 = sdpvar(1);v2 = 5;[H,t] = hull(x1==v1,x1==v2,v1);P = optimizer(H,x1,sdpsettings('solver','gurobi'),v1,x1);P{7} % Should give 5P{2} % Should give 2
[H,bins] = hull(Model1,Model2,Model3,Model4);
if k==1 [H,bins] = hull(Model1,Model2,Model3,Model4,x{1});else [H,bins] = hull(Model1,Model2,Model3,Model4);end
objective = objective + d{k}(4)*Pg + lambda*norm(d{k}(3)-Pg,1);
z = sdpvar(repmat(1,1,N),repmat(1,1,N));
Model_z1 = [ z{k}==+d{k}(3)-Pg, d{k}(3)>=Pg ];Model_z2 = [ z{k}==-d{k}(3)+Pg, d{k}(3)<=Pg ];
[H,bins] = hull(Model_z1,Model_z2);
constraints = [ constraints, H, binary(bins) ];
objective = objective + d{k}(4)*Pg + lambda*z{k};
constraints = [ constraints, Model_z1 | Model_z2 ]
constraints = [ constraints, -z{k} <=
d{k}(3)-Pg <= z{k}
];
onstraints = [ constraints, -z{k} <=
d{k}(3)-Pg <= z{k}
];
-z{k} <= c <=z{k}
z{k} = abs(c)
z{k} >= abs(c)
-z{k} <= c <=z{k}