Attempting to solve model=unknown with unconstructed component(s)

41 views
Skip to first unread message

Tobi Ogunsanya

unread,
Aug 27, 2022, 1:47:02 PM8/27/22
to Pyomo Forum
Im not sure why this error is coming up please have a look at my code below if you can.
Thanks.

v = 100; rho = 1.225; cp = 1.00; a = 21; T_sim = [1]*85
T_sim[0]=actual[0]
# dict has keys 0 to 84

# a creating model object
model = pe.AbstractModel()

# declaring set
model.s = pe.Set(initialize = sorted(dict_time.keys()), ordered = True)

# declaring Parameters.
model.t_out = pe.Param(model.s, default = dict_outside)
model.actual = pe.Param(model.s, default = dict_real)


# declaring decision variable
model.u = pe.Var(domain=pe.NonNegativeReals, initialize = 0.00288)
model.T_sim = pe.Var(model.s, initialize = T_sim[0])


# delcaring Constraints
def initial_temp(model,i):
if i == 0 :
return pe.Constraint.Skip
return model.T_sim[i] == (model.T_sim[i - 1] - 1 * 1 / (cp * rho * v) * a * model.u * (model.T_sim[i - 1] - model.t_out[i - 1]) for i in model.s)
model.initial_temp = pe.Constraint(model.s, rule=initial_temp)



# declaring objective function
def obj_rule(model):
return sum(((model.actual[i] - model.T_sim[i])**2) for i in model.s)
model.obj= pe.Objective(expr= obj_rule , sense= minimize)

# run solver
solver = pe.SolverFactory("ipopt")
solver.solve(model)

Bethany Nicholson

unread,
Sep 1, 2022, 12:11:40 PM9/1/22
to Pyomo Forum
The problem is you're trying to send an AbstractModel to a solver. You just need to change AbstractModel to ConcreteModel.

Bethany
Reply all
Reply to author
Forward
0 new messages