约束词典python scipy。

发布于 2025-02-10 23:03:28 字数 977 浏览 1 评论 0原文

我正在努力为最小化的大量分解功率问题创建约束词典。但是,我有一个价值eRror,说尽管仅使用优化。当我更改为非线性构成(如下所示)时,表明“ nonlinearconstraint”对象没有属性“ a”。

我有一种觉得这是由于递归元素所致,即使使用单个约束,我也会返回相同的错误,

任何想法我如何创建递归线性约束?

##编辑

我被告知要复制代码并提供更多上下文。 三维数组

def con2a():
    for t in range(len(LOAD)):
        for g in range(len(GEN)):
            nlc2a = optimize.NonlinearConstraint(gen_supply_seg[t,g,1],lb=0,ub=P2Max[g])
            return(nlc2a)

def con2b():
    for t in range(len(LOAD)):
        for g in range(len(GEN)):
            nlc2b = optimize.NonlinearConstraint(gen_supply_seg[t,g,2],lb=0,ub=P3Max[g])
            return (nlc2b)

def con2c():
    for t in range(len(LOAD)):
        for g in range(len(GEN)):
            nlc2c = optimize.NonlinearConstraint(gen_supply_seg[t,g,3],lb=0,ub=P4Max[g])
            return (nlc2c)
con2a = con2a()
con2b = con2b()
con2c = con2c()

“ gen_supply_seg”是一个

cons = (con2a,
        con2b,
        con2c)

I'm working on creating a dictionary of constraints for a large SCED power problem for minimization. However, I'm being given a ValueError saying an unknown type is passed despite only using Optimize.LinearConstraints at present. When I change to NonlinearConstraints (shown below), indicating that 'NonlinearConstraint' object has no attribute 'A'.

I have a feeling it's due to recursive elements, as even using a single constraint as I've defined them returns the same error

Any idea how I can create the recursive linear constraints?

##EDIT

I've been told to copy the code and provide a bit more context. "gen_supply_seg" is a three dimensional array that, depending on different points in time, has different constraints

def con2a():
    for t in range(len(LOAD)):
        for g in range(len(GEN)):
            nlc2a = optimize.NonlinearConstraint(gen_supply_seg[t,g,1],lb=0,ub=P2Max[g])
            return(nlc2a)

def con2b():
    for t in range(len(LOAD)):
        for g in range(len(GEN)):
            nlc2b = optimize.NonlinearConstraint(gen_supply_seg[t,g,2],lb=0,ub=P3Max[g])
            return (nlc2b)

def con2c():
    for t in range(len(LOAD)):
        for g in range(len(GEN)):
            nlc2c = optimize.NonlinearConstraint(gen_supply_seg[t,g,3],lb=0,ub=P4Max[g])
            return (nlc2c)
con2a = con2a()
con2b = con2b()
con2c = con2c()

These constraints are then added to a set like shown

cons = (con2a,
        con2b,
        con2c)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文