You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为GEKKO中的ARX仿真模型设置初始输出值?

解决GEKKO ARX模型设置输出初始值的报错问题

报错原因

你直接传入numpy数组作为arx()的y参数,而该函数要求y必须是Gekko的变量对象(如SV或MV)——这类对象自带name属性,numpy数组不具备,因此触发numpy.ndarray object has no attribute 'name'错误。

修改方法

先手动创建带初始值的Gekko输出变量,再将这些变量传入arx()函数,而非直接传入numpy数组。以下是具体修改示例:

from gekko import GEKKO
import numpy as np

# 假设p是训练完成的ARX模型参数
m = GEKKO()

# 定义输出初始值(示例为2输出的情况)
y_init = np.array([1.2, 3.5])

# 创建带初始值的Gekko状态变量(SV)作为输出
y = [m.SV(value=y_init[i]) for i in range(len(y_init))]

# 创建输入变量(若无需自定义,可省略此步,让arx自动生成)
u = [m.MV() for _ in range(p['nu'])]

# 传入已定义的y和u调用arx
m.arx(p, y=y, u=u)

# 后续仿真逻辑(如设置输入序列、求解等)
# ...

关键说明

  • 使用m.SV()(状态变量)定义输出,通过value参数指定初始值;若需要可调整的输出,也可用m.MV()(操纵变量)。
  • 输入变量u同理,若无需自定义初始值或约束,可省略创建步骤,直接调用m.arx(p, y=y),函数会自动生成输入变量。

内容的提问来源于stack exchange,提问作者ht2507

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 04:11:01