gekko - 如何将 GEKKO 返回的整数转换回 python 可识别的整数?

标签 gekko

intpolatn 函数从 GEKKO 最大化目标函数接收整数变量 u_hub_nextintpolatn 只是为了检查整数是否落在 windvel[0] 和 windvel[1] 之间以及后续的 elif 语句,然后返回相应的列表,这取决于哪个 elif 条件 满足 u_hub_next 的值。但是,GEKKO 不断抛出错误 TypeError: object of type 'int' has no len() at the if conditional,因此代码无法继续执行 python 代码的其余部分。下面给出了一段代码,没有成功的 elif 语句,也没有 gekko 部分:我将不胜感激任何指导。

def intpolatn(u_hub_next):
    windvel = np.array([0, 3, 4, 6, 7, 14])
    thrust_coeff = np.array([0, 0.9, 0.9, 0.7, 0.83, 0.39])
    # print(u_hub_next)
    if windvel[0] <= u_hub_next < windvel[1]:
        m = 0
        c_t = 0
        axial = 0
        p_u = check_p_u(u_hub_next) 
        u_hub_next = 0
        return [u_hub_next, c_t, axial, p_u]

最佳答案

提取 u_hub_next 的值:

uhn = u_hub_next.value[0]

该值为float 类型,因此使用int(uhn) 将其转换为整数类型或Numpy integer types 之一。以获得更多控制。

关于gekko - 如何将 GEKKO 返回的整数转换回 python 可识别的整数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67402116/

相关文章:

python - Gekko:获得的解决方案有问题

python - 如何通过for循环在gekko中进行约束?

python - 如何使用 Gekko 求解可重复使用再入飞行器的最优控制

python - 如何将 GEKKO 中的值转换为 float

python - 调用 Gekko solve 给出 TypeError : object of type 'int' has no len()

python - Gekko 约束中的最大方程长度限制

python - Gekko 中的双重不等式约束

python - 是否有使用 OPA UA 传输数据的 IEC 61131/IEC 61499 PLC 功能 block ?

python - GEKKO 和 Scipy.optimize 导致非线性参数估计的结果不同

python - GEKKO:不响应约束也不求解obj函数