【发布时间】:2015-07-06 14:17:20
【问题描述】:
我正在撰写关于 MATLAB 的论文,但遇到以下问题:
我有一个向量(Pbat = zeros(8760,1);),这个向量取决于另外两个向量(Pgen 和Pload),应该改变如下:
for i=1:length(Pload)
if i==1
Pbat(i) = 1000;
else
if Pload(i) < Pgen(i) %// Battery charging
if Pbat(i) < Pbat_max && Pbat(i) > Pbat_min
Pbat(i) = (Pbat(i-1)+(Pgen(i)-Pload(i));
else
Pbat(i) = Pbat(i-1);
end
elseif Pload(i) > Pgen(i) %// Battery discharging
if Pbat(i) < Pbat_max && Pbat(i) > Pbat_min
Pbat(i) = (Pbat(i-1)-(Pload(i)-Pgen(i));
else
Pbat(i) = Pbat(i-1);
end
else
Pbat(i) = Pbat(i-1);
end
end
end
但是,Pbat 应该适用于它可能获得的所有值,例如 Pbat_min <= Pbat(i) <= Pbat_max。
当我运行上面的代码时,我得到一个常量值。此值为1000(发生在i==1 时)。
【问题讨论】:
-
如果你能用文字来解释逻辑而不是只用未注释的代码来解释会有所帮助
标签: matlab vector constraints