如何解决绝对问题优化
55视图(30天)
显示旧的评论
你好,我想要解决一个二次优化问题
(概率。目标= ((PgridV) ^ 2)总和;)
限制了我有一个变量中,我需要找到的绝对值
(Pb1dc)
。所以我介绍一个名为“K”的变量。K - K < = Pb1dc < =;
- 通知你:我用absoulte价值以下约束(prob.Constraints.loadBalanceAC = Pb1 = = Pb1dc - (0.05 * K),)
MATLAB解决exactely显示我想要的。它工作得很好。
然而,当我想和小修改之后(恰克的目标函数
概率。目标= ((PgridV-M) ^ 2)和
;)M是一个参考信号(Pload的意思),当我运行仿真
绝对价值(K)没有得到exactley来说意味着什么。它显示随机值(K =绝对(
(Pb1dc))
clc
清晰的所有
Pload = [0, 1, 3, 4、2、6、9、10; 2, 4];%的负载
N = 10;
M =意味着(Pload) + 0 (N, 1);
Einit1 = 0.5;%初始能量
E = 0 (N, 1);
Emin1 = 0;%迷你能源
Emax1 = 3;
dt = 1;
概率= optimproblem;
PgridV = optimvar (“PgridV”N下界的0,“UpperBound”,20);%电网电力
Pb1 = optimvar (“Pb1”N下界的,1“UpperBound”1);%交流电源
Pb1dc = optimvar (“Pb1dc”N下界的,1“UpperBound”1);%直流电源
K = optimvar (“K”N下界的,0);%的绝对(Pb1dc)
EbattV1 = optimvar (“EbattV1”N下界的Emin1,“UpperBound”,Emax1);%的能量
概率。ObjectiveSense =“最小化”;
%概率。目标= (k . ^ 2)之和;
%概率。目标= ((PgridV) ^ 2)总和;
概率。目标= ((PgridV-M) ^ 2)总和;
% 1约束
prob.Constraints。energyBalance = optimconstr (N);
prob.Constraints.energyBalance (1) = EbattV1 (1) = = Einit1-Pb1dc (1) * dt;%普洛斯constanat
prob.Constraints.energyBalance (2: n - 1) = EbattV1 (2: n - 1) = = EbattV1 (1: n - 2) -Pb1dc dt (2: n - 1) *;
prob.Constraints.energyBalance (N) = EbattV1 (N) = = Einit1;
% K限制为Pb1dc modulous
prob.Constraints.kbalance1 = optimconstr (N);
prob.Constraints.kbalance1 (1: N) = - k (1: N) < = Pb1dc (1: N);
prob.Constraints.kbalance2 = optimconstr (N);
prob.Constraints.kbalance2 (1: N) = Pb1dc (1: N) < = K (1: N);
%负载平衡
prob.Constraints.loadBalance = PgridV + Pb1 = = Pload;
%损失项
prob.Constraints.loadBalanceAC = Pb1 = = Pb1dc - (0.05 * K);
选择= optimoptions (prob.optimoptions,“显示”,“最后一次”);
%选项= optimoptions (prob.optimoptions、“算法”、“内点”);
(价值观、fval exitflag) =解决(概率,“选项”选项)
%解析optmization结果
如果exitflag < = 0
PgridV = 0 (N, 1);
Pb1 = 0 (N, 1);
Pb1dc = 0 (N, 1);
EbattV1 = 0 (N, 1);
K = 0 (N, 1);
其他的
PgridV =值。PgridV;
Pb1 = values.Pb1;
Pb1dc = values.Pb1dc
EbattV1 = values.EbattV1;
K = values.K
结束
。