You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于Gekko的换热网络清洗调度中清洗触发时结垢厚度置零问题

问题解决方案
  • 变量类型修正:原来将动态计算的U/LMTD/Tco/EL/ELchc定义为固定值Param是错误的,全部改为Intermediate即可,避免求解器报错。
  • 结垢厚度重置逻辑实现:通过if3配合约束实现清洗触发时sigm清零,把原来循环内的结垢相关方程替换为以下代码:
    # 结垢增长+清洗重置逻辑
    kg = kglist[u]
    # reset=1时触发清洗,reset=0时正常结垢
    reset = m.if3(x[u] - 0.5, 0, 1)
    # 清洗时停止结垢增长
    m.Equation(sigm[u].dt() == kg * lambdag * (1 - reset))
    # 清洗时强制结垢厚度为0
    m.Equation(sigm[u] <= 1e-6 * reset + 1e6 * (1 - reset))
    m.Equation(sigm[u] >= 0)
    # 原结垢热阻关联逻辑保留
    m.Equation(sigm[u] == Rf[u] * lambdag)
    
  • 换热网络逻辑修正:如果你的换热器是串联结构,需要把前一个换热器的出口Tco[u]赋值给下一个的入口Tci[u+1],删掉循环内的Tci = Thi-8这行错误赋值,避免热力计算不符合实际流程。
  • MV参数优化:给每个x变量增加允许跳变的配置,放在x初始化之后:
    for i in range(N):
        x[i].STATUS=1
        x[i].MV_STEP_HOR = 1 # 允许每个时间步调整清洗信号
    
  • 冗余代码清理:删掉for循环末尾无用的u +=1,for循环会自动迭代计数变量。

修改后运行代码,即可在x[u]取1的时间点将对应换热器的结垢厚度sigm[u]重置为0,求解结束后绘图可验证重置逻辑是否生效。

内容的提问来源于stack exchange,提问作者MikkelB

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 23:06:06