如何检索'不可行.txt“从g

2024-03-28 12:31:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我从GEKKO模拟得到了一个不可行的错误信息。我想找回不可行.txt'用于调试算法的文件。你知道吗

请告诉我在哪里可以找到文件。你知道吗

R1 = m.Intermediate(3/r0/W*((A3*(A2+B2+B3+F)+(A2+B2)*(B3+F))*(cg0[0]-ceq1) \
                     -(A3*(B2+B3+F)+B2*(B3+F))*(cg0[0]-ceq2) \
                     -A2*(B3+F)*(cg0[0]-ceq3)))
R2 = m.Intermediate(3/r0/W*(-(B2*(A3+B3+F)+A3*(B3+F))*(cg0[0]-ceq1) \
                     +((A1+B1+B2)*(A3+B3+F)+A3*(B3+F))*(cg0[0]-ceq2) \
                     -(A1+B1)*(B3+F)*(cg0[0]-ceq3)))
R3 = m.Intermediate(3/r0/W*(-A2*(B3+F)*(cg0[0]-ceq1) \
                    -(A1+B1)*(B3+F)*(cg0[0]-ceq2) \
                    +((A1+B1)*(A2+B2+B3+F)+A2*(B2+B1+F))*(cg0[0]-ceq3)))

m.Equation(cH.dt() == nus[0].dot([R1, R2, R3]))
m.Equation(cM.dt() == nus[1].dot([R1, R2, R3]))
m.Equation(cW.dt() == nus[2].dot([R1, R2, R3]))
m.Equation(cF.dt() == nus[3].dot([R1, R2, R3]))

m.options.IMODE = 4
m.options.SOLVER = 3
m.options.nodes = 2

正在创建文件:不可行.txt你知道吗

使用命令apm\u get(server,app,'不可行.txt')检索文件

错误:找不到解决方案


Tags: 文件a2a1dtb2dota3b1
1条回答
网友
1楼 · 发布于 2024-03-28 12:31:48

有两种方法可以访问该文件。第一种方法是切换到remote=False进行局部求解并生成不可行.txt在您的计算机上保存文件。第二种方法是从远程目录检索文件。第一种方法是编码方面最简单的解决方案(只需更改一个选项并打开run文件夹)。第二种方法最方便,因为它使文件在运行目录中可用。我在下面给出的例子对于方程x+y=1x+y=0是不可行的。你知道吗

方法1-远程=False时打开运行文件夹

from gekko import GEKKO
m = GEKKO(remote=False) # remote=False to produce local folder with results          
x = m.Var()    
y = m.Var()
m.Equations([x+y==1, x+y==0])  # no solution
m.open_folder() # open folder if remote=False to see infeasibilities.txt
m.solve(disp=True)    # solve

方法2-检索不可行.txt远程时文件=真

from gekko import GEKKO
m = GEKKO(remote=True)          
x = m.Var()    
y = m.Var()
m.Equations([x+y==1, x+y==0])  # no solution
try:
    m.solve(disp=True)    # solve
except:
    print('Not successful')
    from gekko.apm import get_file
    print(m._server)
    print(m._model_name)
    f = get_file(m._server,m._model_name,'infeasibilities.txt')
    f = f.decode().replace('\r','')
    with open('infeasibilities.txt', 'w') as fl:
        fl.write(str(f))

那个不可行.txt文件有点难以读取,但它确实试图识别导致解决方案失败的方程式。下面是这个问题的例子。你知道吗

************************************************
***** POSSIBLE INFEASBILE EQUATIONS ************
************************************************
____________________________________________________________________________
EQ Number   Lower        Residual     Upper        Infeas.     Name
         1   0.0000E+00  -9.4140E-01   0.0000E+00   9.4140E-01  ss.Eqn(1): 0 = (v1+v2)-(1)
 Variable   Lower        Value        Upper        $Value      Name
         1  -1.2346E+20   2.9300E-02   1.2346E+20   0.0000E+00  ss.v1
         2  -1.2346E+20   2.9300E-02   1.2346E+20   0.0000E+00  ss.v2
____________________________________________________________________________
EQ Number   Lower        Residual     Upper        Infeas.     Name
         2   0.0000E+00   5.8600E-02   0.0000E+00  -5.8600E-02  ss.Eqn(2): 0 = (v1+v2)-(0)
 Variable   Lower        Value        Upper        $Value      Name
         1  -1.2346E+20   2.9300E-02   1.2346E+20   0.0000E+00  ss.v1
         2  -1.2346E+20   2.9300E-02   1.2346E+20   0.0000E+00  ss.v2
************************************************
****** ACTIVE OBJECTIVE EQUATIONS **************
************************************************
Number           ID  Node    Horizon  Unscaled Res  Scaled Res   Scaling     Name
************************************************
************* ACTIVE EQUATIONS *****************
************************************************
Number           ID  Node    Horizon  Unscaled Res  Scaled Res   Scaling     Name
         1          1    1          1  -9.4140E-01  -9.4140E-01   1.0000E+00  ss.Eqn(1): 0 = (v1+v2)-(1)
         2          2    1          1   5.8600E-02   5.8600E-02   1.0000E+00  ss.Eqn(2): 0 = (v1+v2)-(0)
************************************************
************ INACTIVE EQUATIONS ****************
************************************************
Number     Unscaled Res    Scaled Res   Scaling      Name

如果使用x = m.Var(name='x')来命名变量,那么文件将变得更具描述性。这两个方程都被认为是不可行的。你知道吗

相关问题 更多 >