我在使用matlab linprog代码时遇到问题。优化函数是 24 周期的总成本,仅考虑锅炉的燃料成本。
模拟目的:
针对由锅炉、热量需求和 TES 组成的系统的 24 小时运行优化热能存储 (TES) 的充电/放电行为。天然气的价格是随时间变化的。
问题:
如果 TES 是理想的(效率 = 100%),我没有任何约束可以阻止系统同时充电和放电。我不能用一个变量来描述充电和放电。我确实需要他们分开
目前,我有以下限制来描述最小/最大充电/放电率(当然还有其他一些):
maxChargeThermalTES>=ChargeThermalTES<=0
maxDischargeThermalTES >= DischargeThermalTES <=0
是否有可能在 linprog 的约束下实现以下逻辑规则?
if ChargeThermalTES<0,
DischargeThermalTES=0
end
所有方法,例如使用二进制变量(用于描述系统是充电还是放电)都不起作用,因为二进制变量总是取决于优化的输出。