Python 关于GEKKO中的条件语句(';m.if3';)的问题

Python 关于GEKKO中的条件语句(';m.if3';)的问题,python,conditional-statements,gekko,Python,Conditional Statements,Gekko,我想在GEKKO代码中添加一些条件语句 我在下面的语句中添加了“m.if3”。但是,它返回了在没有条件语句的情况下没有的语法错误 'R1_1=m.if3(R1您只需要一次更正(删除我在您发布的代码中没有看到slk_1。您确定这是有错误的代码吗?观察得很好!当存在不等式约束时,会自动添加松弛变量,以将其转换回等式约束(使用松弛变量)。slk_1是附加变量。感谢您的友好回答。我有一个后续问题。我可以为直接出现在m.方程行的“m.方程”中的变量添加条件语句吗?例如,方程中的“cH”。或者,我需要添加另

我想在GEKKO代码中添加一些条件语句

我在下面的语句中添加了“m.if3”。但是,它返回了在没有条件语句的情况下没有的语法错误


'R1_1=m.if3(R1您只需要一次更正(删除
我在您发布的代码中没有看到
slk_1
。您确定这是有错误的代码吗?观察得很好!当存在不等式约束时,会自动添加松弛变量,以将其转换回等式约束(使用松弛变量)。slk_1是附加变量。感谢您的友好回答。我有一个后续问题。我可以为直接出现在m.方程行的“m.方程”中的变量添加条件语句吗?例如,方程中的“cH”。或者,我需要添加另一个虚拟变量来设置条件吗?是的,您可以添加函数dir特别是在这个例子中,你可以用:
m.equation(cH.dt()==nus[0].dot([m.if3(R1,0,R1),R2,R3]),
m.equation(cM.dt()==nus[1].dot([m.if3(R1,0,R1),R2,R3]))删除R1变量
,…最好在上面定义一次R1_1,并多次使用它,以便最小化
m.if3
附带的附加变量。
if3(condition, x1, x2) method of gekko.gekko.GEKKO instance

IF conditional with a binary switch variable.
The traditional method for IF statements is not continuously
differentiable and can cause a gradient-based optimizer to fail
to converge.

Usage: y = m.if3(condition,x1,x2)
Inputs:
   condition: GEKKO variable, parameter, or expression
   x1 and x2: GEKKO variable, parameter, or expression
Output: GEKKO variable y = x1 when condition<0
                       y = x2 when condition>=0