一系列的值如何从连续优化变量被排除在外?

2 Ansichten(30天)的
下面的代码是一个非常简单的第一次尝试使用优化工具箱。场景包括一个水箱设置泄出的需求。目标是最小化的成本注入水箱,同时保持坦克水平之间的特定值。目前在流量有限,从0到3。
如何修改这个这样的泵是在1.5到3的范围,或0 ?这将更实际地反映泵,泵有一个最小流量,要么是打开或关闭。
= (0 0 1 3 4 3 4 1 0 0)';
价格= (0.95 0.95 1.2 1.3 0.95 1.1 1 1 1)';
nPeriods =元素个数(出);
坦克= 8;%初始坦克水平
在= optimvar (“在”nPeriods,“下界”0,“UpperBound”3);
概率= optimproblem (“ObjectiveSense”,“最小化”);
商店= optimexpr (nPeriods);
2 = 1:nPeriods
如果2 = = 1
存储(ii) =罐+ ((2)- (2));
其他的
存储(ii) =存储(ii-1) + ((2) - (2));
结束
结束
prob.Constraints。storeUpperCons =(存储< = 10);
prob.Constraints。storeLowerCons =(商店> = 6);
成本=价格。*;
概率。目标=总和(成本);
索尔=解决(问题);
%让情节槽阵列
2 = 1:nPeriods
如果2 = = 1
水箱(2)=水箱(2)+ (sol.in (ii)两(2));
其他的
坦克(ii) =坦克(ii-1) + (sol.in (ii)两(2));
结束
结束
%的阴谋
tlo = tiledlayout (3,1);
nexttile
酒吧([溶胶。在出)
传奇(“在”,“出”)
ylabel (“流”)
xlimits =得到(gca,“XLim”);
nexttile
栏(罐)
ylabel (“存储”)
xlim (xlimits)
nexttile
栏(价格)
ylabel (“价格”)
xlim (xlimits)
包含(tlo,“时间”)

Akzeptierte Antwort

沃尔特·罗伯森
沃尔特·罗伯森 2021年9月11日
你不能这么做:软件只处理连续范围连续变量。
但是:你可以添加一个指标变量,一个整数约束 你乘上连续变量。
3 Kommentare
皮埃尔
皮埃尔 2021年9月11日
啊好思维。我设法得到这个工作。我非常感谢你的帮助。

Melden您西奇,嗯祖茂堂kommentieren。

Weitere Antworten (0)

Kategorien

Mehr祖茂堂具体问题具体分析的优化设置法登您在帮助中心文件交换

标签

Produkte


版本

R2021a

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!

翻译的