2
$\开始组$

我正在处理一个能源管理问题。目标是尽量减少客户的电费。

我有一个跨越一年时间间隔为15分钟的时间序列数据。主控系统是一个可以切换的热水锅炉$开$$关闭$,$1$$0$分别是。

这些是要求:

  • 锅炉只能切换($开\rightarrow关$$关闭\右箭头打开$)最大值。n美元$“一天”的次数
  • “一天”不一定是从12:00 AM到12:00 AM,但可以是从06:00 AM到06:00 AM或任何其他24小时的持续时间,这取决于客户

我知道有一种方法可以生成一天的约束,使用:
$\sum_{t=0}^{95}abs(b_{t+1}-b_t)$
哪里,b_t美元$:当时的锅炉状态$t(美元)$

但这使用$abs()$这使得问题变得非线性。整个问题、约束和目标函数都是线性的,因此,这个约束也必须是线性的。如有任何建议,我们将不胜感激。

我使用Pyomo进行优化,数据以Pandas数据帧的形式呈现。

$\端组$

1答案1

重置为默认值
5
$\开始组$

这个防抱死制动系统函数是分段线性的,所以可以用两个线性不等式来表示它,如https://docs.mosek.com/modeling-cookbook/linear.html绝对-价值.

就你而言,$\sum_{t=0}^{95}腹肌(b_{t+1}-b-t)\leq n$可以表述为$$\sum_{t=0}^{95}u_t\leqn,\quad u_t\geqabs(b_{t+1}-b_t)$$从而线性化为$$\sum_{t=0}^{95}u_t\leqn,\quad-u_t\Leqb_{t+1}-b_t\leq u_t$$

$\端组$
2
  • $\开始组$ $\Delta b_t$代表什么?$\增量b_t=b_{t+1}-b_t$吗? $\端组$ 评论 5月23日8:40
  • 1
    $\开始组$ 我更新了答案,将$\Delta b_t$重命名为$u_t$,以避免混淆。 $\端组$ 评论 5月23日9:24

你的答案

单击“发布您的答案”,表示您同意我们的服务条款并确认您已阅读我们的隐私政策.

不是你想要的答案吗?浏览已标记的其他问题问你自己的问题.