微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何将 GEKKO 返回的整数转换回 Python 可识别的整数?

如何解决如何将 GEKKO 返回的整数转换回 Python 可识别的整数?

函数intpolatnGEKKO 最大化目标函数接收整数变量u_hub_nextintpolatn 仅用于 check,如果整数介于 windvel[0] and windvel[1] 和后继 elif statements 之间,然后返回适当的列表,具体取决于 elif condition满足u_hub_next的值。但是,GEKKO 不断抛出错误 TypeError: object of type 'int' has no len()if 条件下,因此代码无法继续执行其余部分蟒蛇代码。下面给出了一段代码,没有成功的 elif 语句,也没有 gekko 部分:希望得到任何指导。

def intpolatn(u_hub_next):
    windvel = np.array([0,3,4,6,7,14])
    thrust_coeff = np.array([0,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 之一以获得更多控制。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。