MDO Architectures
using JuMP
using Ipopt
m = Model(Ipopt.Optimizer)
# Global design variables
@variable(m, x1, start = 1.0)
@variable(m, z1, start = 0)
@variable(m, z2, start = 0)
# Coupling variables
@variable(m, y1, start = 0.5)
@variable(m, y2, start = 0.5)
# Objective function
@NLobjective(m, Min, x1^2 + z2 + y1 + exp(-y2))
#Box constraints
@constraint(m, 0 <= x1 <= 10)
@constraint(m, -10 <= z1 <= 10)
@constraint(m, 0 <= z2 <= 10)
# Inequality constraints (linear)
@constraint(m, y1 >= 3.16)
@constraint(m, 24 >= y2)
#Solve the problem
status = optimize!(m)
The design variable is .