Fossil Case: Ultra-Supercritical Power Plant
This notebook presents a flowsheet for an ultra-supercritical thermal power plant. The flowsheet is formulated as a simulation model with a turbine capacity of 436 MWe. The model is based on the flowsheet presented in USDOE report #DOE/FE-0400 (1999). A process flow diagram for this plant is given below.
In this model, the thermal generator is assumed to use pulverized coal as the fuel. The power plant boiler is modeled as 3 different units boiler (Boiler), reheater 1 (RH1), and reheater 2 (RH2). All unit models used in the flowsheet are from IDAES unit model library. The list of specific unit models used to build the power plant model is tabulated below. More details regarding each unit model and governing equations can be found in its documentation.
IDAES Unit Model |
Units in the flowsheet |
---|---|
HelmTurbineStage |
Turbine: T1 to T11 and BFPT |
HelmSplitter |
Turbine Splitters |
Heater |
Boiler components: Boiler, RH1, & RH2 |
HelmMixer |
Mixers: Condensate Mixer, Deaerator |
HelmIsentropicCompressor |
Pumps: Condenser Pump, Booster Pump, & BFW Pump |
HeatExchanger |
Condenser and Feedwater Heaters: FWH1 to FWH9 |
The model can be accessed from dispatches repo, ultra_supercritical_powerplant.py
. The model has 3 degrees of freedom:
Boiler feed water flow:
m.fs.boiler.inlet.flow_mol
Boiler outlet pressure:
m.fs.boiler.outlet.pressure
Boiler outlet temperature:
m.fs.boiler.control_volume.properties_out[0].temperature
In this implementation, the boiler outlet temperature is constrained to be 866 K. To demonstrate the model, first, import all the libraries and packages need for the model
[1]:
import matplotlib.pyplot as plt
from pyomo.environ import value
from idaes.core.solvers.get_solver import get_solver
from idaes.core.util.model_statistics import degrees_of_freedom
from dispatches.case_studies.fossil_case.ultra_supercritical_plant import ultra_supercritical_powerplant as usc
The power plant model uspp contains the methods build_plant_model
, which instantiates all the unit models (declare_unit_model
), connect them using Arcs (_create_arcs
), sets model inputs (set_model_inputs
), adds bounds and scaling factors to all variables in the flowsheets. The parameters such as efficiencies of turbines, areas of feedwater heat exchangers, and efficiency for pumps are estimated such that the overall performance of the power plant matches at base load of 436 MW
matches to that of the reference report. Fixed pressure drops have been assumed for all units in the flowsheet. In addition, the outlet of condenser is assumed to be saturated liquid. The following operational constraints are added in the model. 1. The power required for all pumps, i.e., booster pump, boiler feedwater pump, and condensate pump, is the same as generated from boiler feedwater turbine. W is power in MWe.
PlantPowerOut
is given by the total turbine mechanical work
PlantHeatDuty
is given as the sum of heat duties for Boiler units.Unit
is in[Boiler, RH1, RH2]
[2]:
# Build ultra supercritical power plant model
m = usc.build_plant_model()
Once the model is built, it can be initialized using the initialize
method. Degrees of freedom is asserted to be 0 post initialization to ensure a completed model.
[3]:
# Initialize the model (sequencial initialization and custom routines)
usc.initialize(m)
# Ensure after the model is initialized, the degrees of freedom = 0
assert degrees_of_freedom(m) == 0
2022-07-01 18:25:59 [INFO] idaes.init.fs.boiler.control_volume: Initialization Complete
2022-07-01 18:25:59 [INFO] idaes.init.fs.boiler: Initialization Complete: optimal - Optimal Solution Found
2022-07-01 18:25:59 [INFO] idaes.init.fs.turbine_splitter[1]: Initialization Complete: optimal - Optimal Solution Found
2022-07-01 18:25:59 [INFO] idaes.init.fs.turbine_splitter[2]: Initialization Complete: optimal - Optimal Solution Found
2022-07-01 18:25:59 [INFO] idaes.init.fs.reheater[1].control_volume: Initialization Complete
2022-07-01 18:25:59 [INFO] idaes.init.fs.reheater[1]: Initialization Complete: optimal - Optimal Solution Found
2022-07-01 18:25:59 [INFO] idaes.init.fs.turbine_splitter[3]: Initialization Complete: optimal - Optimal Solution Found
2022-07-01 18:25:59 [INFO] idaes.init.fs.turbine_splitter[4]: Initialization Complete: optimal - Optimal Solution Found
2022-07-01 18:25:59 [INFO] idaes.init.fs.reheater[2].control_volume: Initialization Complete
2022-07-01 18:25:59 [INFO] idaes.init.fs.reheater[2]: Initialization Complete: optimal - Optimal Solution Found
2022-07-01 18:25:59 [INFO] idaes.init.fs.turbine_splitter[5]: Initialization Complete: optimal - Optimal Solution Found
2022-07-01 18:26:00 [INFO] idaes.init.fs.turbine_splitter[6]: Initialization Complete: optimal - Optimal Solution Found
2022-07-01 18:26:00 [INFO] idaes.init.fs.turbine_splitter[7]: Initialization Complete: optimal - Optimal Solution Found
2022-07-01 18:26:00 [INFO] idaes.init.fs.turbine_splitter[8]: Initialization Complete: optimal - Optimal Solution Found
2022-07-01 18:26:00 [INFO] idaes.init.fs.turbine_splitter[9]: Initialization Complete: optimal - Optimal Solution Found
2022-07-01 18:26:00 [INFO] idaes.init.fs.turbine_splitter[10]: Initialization Complete: optimal - Optimal Solution Found
2022-07-01 18:26:00 [INFO] idaes.init.fs.condenser_mix: Initialization Complete: optimal - Optimal Solution Found
2022-07-01 18:26:00 [INFO] idaes.init.fs.condenser.control_volume: Initialization Complete
2022-07-01 18:26:00 [INFO] idaes.init.fs.condenser: Initialization Complete: optimal - Optimal Solution Found
2022-07-01 18:26:01 [INFO] idaes.init.fs.fwh_mixer[1]: Initialization Complete: optimal - Optimal Solution Found
2022-07-01 18:26:01 [INFO] idaes.init.fs.fwh[1].shell: Initialization Complete
2022-07-01 18:26:01 [INFO] idaes.init.fs.fwh[1].tube: Initialization Complete
2022-07-01 18:26:01 [INFO] idaes.init.fs.fwh[1]: Initialization Completed, optimal - Optimal Solution Found
2022-07-01 18:26:01 [INFO] idaes.init.fs.fwh_mixer[2]: Initialization Complete: optimal - Optimal Solution Found
2022-07-01 18:26:01 [INFO] idaes.init.fs.fwh[2].shell: Initialization Complete
2022-07-01 18:26:01 [INFO] idaes.init.fs.fwh[2].tube: Initialization Complete
2022-07-01 18:26:01 [INFO] idaes.init.fs.fwh[2]: Initialization Completed, optimal - Optimal Solution Found
2022-07-01 18:26:01 [INFO] idaes.init.fs.fwh_mixer[3]: Initialization Complete: optimal - Optimal Solution Found
2022-07-01 18:26:01 [INFO] idaes.init.fs.fwh[3].shell: Initialization Complete
2022-07-01 18:26:01 [INFO] idaes.init.fs.fwh[3].tube: Initialization Complete
2022-07-01 18:26:02 [INFO] idaes.init.fs.fwh[3]: Initialization Completed, optimal - Optimal Solution Found
2022-07-01 18:26:02 [INFO] idaes.init.fs.fwh_mixer[4]: Initialization Complete: optimal - Optimal Solution Found
2022-07-01 18:26:02 [INFO] idaes.init.fs.fwh[4].shell: Initialization Complete
2022-07-01 18:26:02 [INFO] idaes.init.fs.fwh[4].tube: Initialization Complete
2022-07-01 18:26:02 [INFO] idaes.init.fs.fwh[4]: Initialization Completed, optimal - Optimal Solution Found
2022-07-01 18:26:02 [INFO] idaes.init.fs.fwh[5].shell: Initialization Complete
2022-07-01 18:26:02 [INFO] idaes.init.fs.fwh[5].tube: Initialization Complete
2022-07-01 18:26:02 [INFO] idaes.init.fs.fwh[5]: Initialization Completed, optimal - Optimal Solution Found
2022-07-01 18:26:02 [INFO] idaes.init.fs.deaerator: Initialization Complete: optimal - Optimal Solution Found
2022-07-01 18:26:02 [INFO] idaes.init.fs.fwh_mixer[6]: Initialization Complete: optimal - Optimal Solution Found
2022-07-01 18:26:02 [INFO] idaes.init.fs.fwh[6].shell: Initialization Complete
2022-07-01 18:26:02 [INFO] idaes.init.fs.fwh[6].tube: Initialization Complete
2022-07-01 18:26:03 [INFO] idaes.init.fs.fwh[6]: Initialization Completed, optimal - Optimal Solution Found
2022-07-01 18:26:03 [INFO] idaes.init.fs.fwh_mixer[7]: Initialization Complete: optimal - Optimal Solution Found
2022-07-01 18:26:03 [INFO] idaes.init.fs.fwh[7].shell: Initialization Complete
2022-07-01 18:26:03 [INFO] idaes.init.fs.fwh[7].tube: Initialization Complete
2022-07-01 18:26:03 [INFO] idaes.init.fs.fwh[7]: Initialization Completed, optimal - Optimal Solution Found
2022-07-01 18:26:03 [INFO] idaes.init.fs.fwh_mixer[8]: Initialization Complete: optimal - Optimal Solution Found
2022-07-01 18:26:03 [INFO] idaes.init.fs.fwh[8].shell: Initialization Complete
2022-07-01 18:26:03 [INFO] idaes.init.fs.fwh[8].tube: Initialization Complete
2022-07-01 18:26:03 [INFO] idaes.init.fs.fwh[8]: Initialization Completed, optimal - Optimal Solution Found
2022-07-01 18:26:03 [INFO] idaes.init.fs.fwh[9].shell: Initialization Complete
2022-07-01 18:26:03 [INFO] idaes.init.fs.fwh[9].tube: Initialization Complete
2022-07-01 18:26:03 [INFO] idaes.init.fs.fwh[9]: Initialization Completed, optimal - Optimal Solution Found
Model Initialization = optimal
******************* USC Model Initialized ********************
Create a solver object with IPOPT solver to solve the intialized model. The feedwater flow and boiler outlet pressure are varied to evaluate the model under off design conditions.
[4]:
# Create the solver object
optarg = {
"max_iter": 300,
"halt_on_ampl_error": "yes"
}
solver = get_solver("ipopt", optarg)
Flow vs Power
[5]:
# Solving the flowsheet and check result
flow_frac_list = [0.7, 0.8, 0.9, 1.0, 1.1, 1.2]
flow = []
power = []
for i in flow_frac_list:
m.fs.boiler.inlet.flow_mol.fix(i*17854) # mol/s
solver.solve(m, tee=True, symbolic_solver_labels=True)
flow.append(value(m.fs.boiler.inlet.flow_mol[0]))
power.append(value(m.fs.plant_power_out[0]))
print('Plant Power (MW) =', value(m.fs.plant_power_out[0]))
print('Plant Heat Duty (MW) =', value(m.fs.plant_heat_duty[0]))
fig, ax = plt.subplots(figsize=(10, 5))
ax.plot(flow, power,
label='Power [MWe]', color='red')
ax.set_xlabel("Flow [mol/s]", fontsize="xx-large")
ax.set_ylabel("Power [MWe]", fontsize="xx-large")
ax.tick_params(axis='both', which='major', labelsize="xx-large")
ax.tick_params(axis='both', which='minor', labelsize="xx-large")
plt.legend(fontsize="xx-large", loc="upper left")
#plt.show()
Ipopt 3.13.2: nlp_scaling_method=gradient-based
tol=1e-06
max_iter=300
halt_on_ampl_error=yes
******************************************************************************
This program contains Ipopt, a library for large-scale nonlinear optimization.
Ipopt is released as open source code under the Eclipse Public License (EPL).
For more information visit http://projects.coin-or.org/Ipopt
This version of Ipopt was compiled from source code available at
https://github.com/IDAES/Ipopt as part of the Institute for the Design of
Advanced Energy Systems Process Systems Engineering Framework (IDAES PSE
Framework) Copyright (c) 2018-2019. See https://github.com/IDAES/idaes-pse.
This version of Ipopt was compiled using HSL, a collection of Fortran codes
for large-scale scientific computation. All technical papers, sales and
publicity material resulting from use of the HSL codes within IPOPT must
contain the following acknowledgement:
HSL, a collection of Fortran codes for large-scale scientific
computation. See http://www.hsl.rl.ac.uk.
******************************************************************************
This is Ipopt version 3.13.2, running with linear solver ma27.
Number of nonzeros in equality constraint Jacobian...: 1354
Number of nonzeros in inequality constraint Jacobian.: 0
Number of nonzeros in Lagrangian Hessian.............: 389
Total number of variables............................: 513
variables with only lower bounds: 0
variables with lower and upper bounds: 368
variables with only upper bounds: 0
Total number of equality constraints.................: 513
Total number of inequality constraints...............: 0
inequality constraints with only lower bounds: 0
inequality constraints with lower and upper bounds: 0
inequality constraints with only upper bounds: 0
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
0 0.0000000e+00 1.27e+01 0.00e+00 -1.0 0.00e+00 - 0.00e+00 0.00e+00 0
1 0.0000000e+00 4.52e-01 1.07e+05 -1.0 2.18e+08 - 3.96e-01 1.00e+00h 1
2 0.0000000e+00 4.26e-02 4.51e+02 -1.0 4.39e+06 - 9.70e-01 1.00e+00h 1
3 0.0000000e+00 1.49e-06 2.61e-01 -1.0 3.67e+04 - 9.90e-01 1.00e+00h 1
4 0.0000000e+00 1.04e-07 5.27e-03 -1.0 1.10e+00 - 9.90e-01 1.00e+00h 1
Number of Iterations....: 4
(scaled) (unscaled)
Objective...............: 0.0000000000000000e+00 0.0000000000000000e+00
Dual infeasibility......: 0.0000000000000000e+00 0.0000000000000000e+00
Constraint violation....: 4.6566128730773926e-10 1.0430812835693358e-07
Complementarity.........: 0.0000000000000000e+00 0.0000000000000000e+00
Overall NLP error.......: 4.6566128730773926e-10 1.0430812835693358e-07
Number of objective function evaluations = 5
Number of objective gradient evaluations = 5
Number of equality constraint evaluations = 5
Number of inequality constraint evaluations = 0
Number of equality constraint Jacobian evaluations = 5
Number of inequality constraint Jacobian evaluations = 0
Number of Lagrangian Hessian evaluations = 4
Total CPU secs in IPOPT (w/o function evaluations) = 0.254
Total CPU secs in NLP function evaluations = 0.470
EXIT: Optimal Solution Found.
Plant Power (MW) = 300.58650317695526
Plant Heat Duty (MW) = 623.9407734256832
Ipopt 3.13.2: nlp_scaling_method=gradient-based
tol=1e-06
max_iter=300
halt_on_ampl_error=yes
******************************************************************************
This program contains Ipopt, a library for large-scale nonlinear optimization.
Ipopt is released as open source code under the Eclipse Public License (EPL).
For more information visit http://projects.coin-or.org/Ipopt
This version of Ipopt was compiled from source code available at
https://github.com/IDAES/Ipopt as part of the Institute for the Design of
Advanced Energy Systems Process Systems Engineering Framework (IDAES PSE
Framework) Copyright (c) 2018-2019. See https://github.com/IDAES/idaes-pse.
This version of Ipopt was compiled using HSL, a collection of Fortran codes
for large-scale scientific computation. All technical papers, sales and
publicity material resulting from use of the HSL codes within IPOPT must
contain the following acknowledgement:
HSL, a collection of Fortran codes for large-scale scientific
computation. See http://www.hsl.rl.ac.uk.
******************************************************************************
This is Ipopt version 3.13.2, running with linear solver ma27.
Number of nonzeros in equality constraint Jacobian...: 1354
Number of nonzeros in inequality constraint Jacobian.: 0
Number of nonzeros in Lagrangian Hessian.............: 389
Total number of variables............................: 513
variables with only lower bounds: 0
variables with lower and upper bounds: 368
variables with only upper bounds: 0
Total number of equality constraints.................: 513
Total number of inequality constraints...............: 0
inequality constraints with only lower bounds: 0
inequality constraints with lower and upper bounds: 0
inequality constraints with only upper bounds: 0
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
0 0.0000000e+00 4.48e+00 0.00e+00 -1.0 0.00e+00 - 0.00e+00 0.00e+00 0
1 0.0000000e+00 2.11e-01 1.13e+04 -1.0 7.21e+07 - 3.36e-01 1.00e+00h 1
2 0.0000000e+00 1.16e-03 1.69e+01 -1.0 5.09e+05 - 9.86e-01 1.00e+00h 1
3 0.0000000e+00 7.08e-08 3.08e-02 -1.0 9.61e+02 - 9.90e-01 1.00e+00h 1
Number of Iterations....: 3
(scaled) (unscaled)
Objective...............: 0.0000000000000000e+00 0.0000000000000000e+00
Dual infeasibility......: 0.0000000000000000e+00 0.0000000000000000e+00
Constraint violation....: 6.5350036493327934e-10 7.0780515670776367e-08
Complementarity.........: 0.0000000000000000e+00 0.0000000000000000e+00
Overall NLP error.......: 6.5350036493327934e-10 7.0780515670776367e-08
Number of objective function evaluations = 4
Number of objective gradient evaluations = 4
Number of equality constraint evaluations = 4
Number of inequality constraint evaluations = 0
Number of equality constraint Jacobian evaluations = 4
Number of inequality constraint Jacobian evaluations = 0
Number of Lagrangian Hessian evaluations = 3
Total CPU secs in IPOPT (w/o function evaluations) = 0.244
Total CPU secs in NLP function evaluations = 0.241
EXIT: Optimal Solution Found.
Plant Power (MW) = 345.50119892897163
Plant Heat Duty (MW) = 720.56299312392
Ipopt 3.13.2: nlp_scaling_method=gradient-based
tol=1e-06
max_iter=300
halt_on_ampl_error=yes
******************************************************************************
This program contains Ipopt, a library for large-scale nonlinear optimization.
Ipopt is released as open source code under the Eclipse Public License (EPL).
For more information visit http://projects.coin-or.org/Ipopt
This version of Ipopt was compiled from source code available at
https://github.com/IDAES/Ipopt as part of the Institute for the Design of
Advanced Energy Systems Process Systems Engineering Framework (IDAES PSE
Framework) Copyright (c) 2018-2019. See https://github.com/IDAES/idaes-pse.
This version of Ipopt was compiled using HSL, a collection of Fortran codes
for large-scale scientific computation. All technical papers, sales and
publicity material resulting from use of the HSL codes within IPOPT must
contain the following acknowledgement:
HSL, a collection of Fortran codes for large-scale scientific
computation. See http://www.hsl.rl.ac.uk.
******************************************************************************
This is Ipopt version 3.13.2, running with linear solver ma27.
Number of nonzeros in equality constraint Jacobian...: 1354
Number of nonzeros in inequality constraint Jacobian.: 0
Number of nonzeros in Lagrangian Hessian.............: 389
Total number of variables............................: 513
variables with only lower bounds: 0
variables with lower and upper bounds: 368
variables with only upper bounds: 0
Total number of equality constraints.................: 513
Total number of inequality constraints...............: 0
inequality constraints with only lower bounds: 0
inequality constraints with lower and upper bounds: 0
inequality constraints with only upper bounds: 0
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
0 0.0000000e+00 4.40e+00 0.00e+00 -1.0 0.00e+00 - 0.00e+00 0.00e+00 0
1 0.0000000e+00 6.19e-02 1.11e+04 -1.0 7.34e+07 - 6.34e-01 1.00e+00h 1
2 0.0000000e+00 3.01e-04 1.62e+01 -1.0 4.99e+05 - 9.87e-01 1.00e+00h 1
3 0.0000000e+00 1.79e-07 5.34e-02 -1.0 2.63e+02 - 9.90e-01 1.00e+00h 1
Number of Iterations....: 3
(scaled) (unscaled)
Objective...............: 0.0000000000000000e+00 0.0000000000000000e+00
Dual infeasibility......: 0.0000000000000000e+00 0.0000000000000000e+00
Constraint violation....: 4.6566128730773926e-10 1.7881393432617188e-07
Complementarity.........: 0.0000000000000000e+00 0.0000000000000000e+00
Overall NLP error.......: 4.6566128730773926e-10 1.7881393432617188e-07
Number of objective function evaluations = 4
Number of objective gradient evaluations = 4
Number of equality constraint evaluations = 4
Number of inequality constraint evaluations = 0
Number of equality constraint Jacobian evaluations = 4
Number of inequality constraint Jacobian evaluations = 0
Number of Lagrangian Hessian evaluations = 3
Total CPU secs in IPOPT (w/o function evaluations) = 0.240
Total CPU secs in NLP function evaluations = 0.242
EXIT: Optimal Solution Found.
Plant Power (MW) = 390.7843491331318
Plant Heat Duty (MW) = 818.5585127188042
Ipopt 3.13.2: nlp_scaling_method=gradient-based
tol=1e-06
max_iter=300
halt_on_ampl_error=yes
******************************************************************************
This program contains Ipopt, a library for large-scale nonlinear optimization.
Ipopt is released as open source code under the Eclipse Public License (EPL).
For more information visit http://projects.coin-or.org/Ipopt
This version of Ipopt was compiled from source code available at
https://github.com/IDAES/Ipopt as part of the Institute for the Design of
Advanced Energy Systems Process Systems Engineering Framework (IDAES PSE
Framework) Copyright (c) 2018-2019. See https://github.com/IDAES/idaes-pse.
This version of Ipopt was compiled using HSL, a collection of Fortran codes
for large-scale scientific computation. All technical papers, sales and
publicity material resulting from use of the HSL codes within IPOPT must
contain the following acknowledgement:
HSL, a collection of Fortran codes for large-scale scientific
computation. See http://www.hsl.rl.ac.uk.
******************************************************************************
This is Ipopt version 3.13.2, running with linear solver ma27.
Number of nonzeros in equality constraint Jacobian...: 1354
Number of nonzeros in inequality constraint Jacobian.: 0
Number of nonzeros in Lagrangian Hessian.............: 389
Total number of variables............................: 513
variables with only lower bounds: 0
variables with lower and upper bounds: 368
variables with only upper bounds: 0
Total number of equality constraints.................: 513
Total number of inequality constraints...............: 0
inequality constraints with only lower bounds: 0
inequality constraints with lower and upper bounds: 0
inequality constraints with only upper bounds: 0
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
0 0.0000000e+00 4.32e+00 0.00e+00 -1.0 0.00e+00 - 0.00e+00 0.00e+00 0
1 0.0000000e+00 5.53e-02 1.12e+04 -1.0 7.46e+07 - 7.53e-01 1.00e+00h 1
2 0.0000000e+00 1.08e-04 1.70e+01 -1.0 4.84e+05 - 9.88e-01 1.00e+00h 1
3 0.0000000e+00 5.22e-08 9.72e-02 -1.0 1.02e+02 - 9.90e-01 1.00e+00h 1
Number of Iterations....: 3
(scaled) (unscaled)
Objective...............: 0.0000000000000000e+00 0.0000000000000000e+00
Dual infeasibility......: 0.0000000000000000e+00 0.0000000000000000e+00
Constraint violation....: 1.8626451492309570e-09 5.2154064178466790e-08
Complementarity.........: 0.0000000000000000e+00 0.0000000000000000e+00
Overall NLP error.......: 1.8626451492309570e-09 5.2154064178466790e-08
Number of objective function evaluations = 4
Number of objective gradient evaluations = 4
Number of equality constraint evaluations = 4
Number of inequality constraint evaluations = 0
Number of equality constraint Jacobian evaluations = 4
Number of inequality constraint Jacobian evaluations = 0
Number of Lagrangian Hessian evaluations = 3
Total CPU secs in IPOPT (w/o function evaluations) = 0.339
Total CPU secs in NLP function evaluations = 0.303
EXIT: Optimal Solution Found.
Plant Power (MW) = 436.46624364773726
Plant Heat Duty (MW) = 917.9305468932873
Ipopt 3.13.2: nlp_scaling_method=gradient-based
tol=1e-06
max_iter=300
halt_on_ampl_error=yes
******************************************************************************
This program contains Ipopt, a library for large-scale nonlinear optimization.
Ipopt is released as open source code under the Eclipse Public License (EPL).
For more information visit http://projects.coin-or.org/Ipopt
This version of Ipopt was compiled from source code available at
https://github.com/IDAES/Ipopt as part of the Institute for the Design of
Advanced Energy Systems Process Systems Engineering Framework (IDAES PSE
Framework) Copyright (c) 2018-2019. See https://github.com/IDAES/idaes-pse.
This version of Ipopt was compiled using HSL, a collection of Fortran codes
for large-scale scientific computation. All technical papers, sales and
publicity material resulting from use of the HSL codes within IPOPT must
contain the following acknowledgement:
HSL, a collection of Fortran codes for large-scale scientific
computation. See http://www.hsl.rl.ac.uk.
******************************************************************************
This is Ipopt version 3.13.2, running with linear solver ma27.
Number of nonzeros in equality constraint Jacobian...: 1354
Number of nonzeros in inequality constraint Jacobian.: 0
Number of nonzeros in Lagrangian Hessian.............: 389
Total number of variables............................: 513
variables with only lower bounds: 0
variables with lower and upper bounds: 368
variables with only upper bounds: 0
Total number of equality constraints.................: 513
Total number of inequality constraints...............: 0
inequality constraints with only lower bounds: 0
inequality constraints with lower and upper bounds: 0
inequality constraints with only upper bounds: 0
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
0 0.0000000e+00 4.24e+00 0.00e+00 -1.0 0.00e+00 - 0.00e+00 0.00e+00 0
1 0.0000000e+00 5.02e-02 1.19e+04 -1.0 7.58e+07 - 8.16e-01 1.00e+00h 1
2 0.0000000e+00 4.63e-05 1.78e+01 -1.0 4.66e+05 - 9.88e-01 1.00e+00h 1
3 0.0000000e+00 9.69e-08 1.77e-01 -1.0 4.88e+01 - 9.90e-01 1.00e+00h 1
Number of Iterations....: 3
(scaled) (unscaled)
Objective...............: 0.0000000000000000e+00 0.0000000000000000e+00
Dual infeasibility......: 0.0000000000000000e+00 0.0000000000000000e+00
Constraint violation....: 4.6566128730773926e-10 9.6857547760009766e-08
Complementarity.........: 0.0000000000000000e+00 0.0000000000000000e+00
Overall NLP error.......: 4.6566128730773926e-10 9.6857547760009766e-08
Number of objective function evaluations = 4
Number of objective gradient evaluations = 4
Number of equality constraint evaluations = 4
Number of inequality constraint evaluations = 0
Number of equality constraint Jacobian evaluations = 4
Number of inequality constraint Jacobian evaluations = 0
Number of Lagrangian Hessian evaluations = 3
Total CPU secs in IPOPT (w/o function evaluations) = 0.282
Total CPU secs in NLP function evaluations = 0.288
EXIT: Optimal Solution Found.
Plant Power (MW) = 482.5587031324392
Plant Heat Duty (MW) = 1018.6569959430444
Ipopt 3.13.2: nlp_scaling_method=gradient-based
tol=1e-06
max_iter=300
halt_on_ampl_error=yes
******************************************************************************
This program contains Ipopt, a library for large-scale nonlinear optimization.
Ipopt is released as open source code under the Eclipse Public License (EPL).
For more information visit http://projects.coin-or.org/Ipopt
This version of Ipopt was compiled from source code available at
https://github.com/IDAES/Ipopt as part of the Institute for the Design of
Advanced Energy Systems Process Systems Engineering Framework (IDAES PSE
Framework) Copyright (c) 2018-2019. See https://github.com/IDAES/idaes-pse.
This version of Ipopt was compiled using HSL, a collection of Fortran codes
for large-scale scientific computation. All technical papers, sales and
publicity material resulting from use of the HSL codes within IPOPT must
contain the following acknowledgement:
HSL, a collection of Fortran codes for large-scale scientific
computation. See http://www.hsl.rl.ac.uk.
******************************************************************************
This is Ipopt version 3.13.2, running with linear solver ma27.
Number of nonzeros in equality constraint Jacobian...: 1354
Number of nonzeros in inequality constraint Jacobian.: 0
Number of nonzeros in Lagrangian Hessian.............: 389
Total number of variables............................: 513
variables with only lower bounds: 0
variables with lower and upper bounds: 368
variables with only upper bounds: 0
Total number of equality constraints.................: 513
Total number of inequality constraints...............: 0
inequality constraints with only lower bounds: 0
inequality constraints with lower and upper bounds: 0
inequality constraints with only upper bounds: 0
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
0 0.0000000e+00 4.16e+00 0.00e+00 -1.0 0.00e+00 - 0.00e+00 0.00e+00 0
1 0.0000000e+00 4.49e-02 1.31e+04 -1.0 7.69e+07 - 8.55e-01 9.90e-01h 1
2 0.0000000e+00 4.25e-04 1.86e+01 -1.0 9.97e+05 - 9.88e-01 9.90e-01h 1
3 0.0000000e+00 3.75e-06 1.74e-01 -1.0 9.94e+03 - 9.90e-01 9.91e-01h 1
4 0.0000000e+00 2.24e-08 5.58e-01 -1.0 8.76e+01 - 9.90e-01 1.00e+00h 1
Number of Iterations....: 4
(scaled) (unscaled)
Objective...............: 0.0000000000000000e+00 0.0000000000000000e+00
Dual infeasibility......: 0.0000000000000000e+00 0.0000000000000000e+00
Constraint violation....: 4.6566128730773926e-10 2.2351741790771484e-08
Complementarity.........: 0.0000000000000000e+00 0.0000000000000000e+00
Overall NLP error.......: 4.6566128730773926e-10 2.2351741790771484e-08
Number of objective function evaluations = 5
Number of objective gradient evaluations = 5
Number of equality constraint evaluations = 5
Number of inequality constraint evaluations = 0
Number of equality constraint Jacobian evaluations = 5
Number of inequality constraint Jacobian evaluations = 0
Number of Lagrangian Hessian evaluations = 4
Total CPU secs in IPOPT (w/o function evaluations) = 0.291
Total CPU secs in NLP function evaluations = 0.332
EXIT: Optimal Solution Found.
Plant Power (MW) = 529.0636966145956
Plant Heat Duty (MW) = 1120.7016644542393
[5]:
<matplotlib.legend.Legend at 0x7f0c25653e80>
Pressure vs Power
[6]:
# Solving the flowsheet and check result
pres_frac_list = [0.8, 0.9, 1.0, 1.1, 1.2]
pressure = []
power2 = []
for i in flow_frac_list:
m.fs.boiler.inlet.flow_mol.fix(17854) # mol/s
m.fs.boiler.outlet.pressure.fix(i*31125980)
solver.solve(m, tee=True, symbolic_solver_labels=True)
pressure.append(value(m.fs.boiler.outlet.pressure[0])*1e-6)
power2.append(value(m.fs.plant_power_out[0]))
print('Plant Power (MW) =', value(m.fs.plant_power_out[0]))
print('Plant Heat Duty (MW) =', value(m.fs.plant_heat_duty[0]))
fig, ax = plt.subplots(figsize=(10, 5))
ax.plot(flow, power,
label='Power [MWe]', color='red')
ax.set_xlabel("Pressure [MPa]", fontsize="xx-large")
ax.set_ylabel("Power [MWe]", fontsize="xx-large")
ax.tick_params(axis='both', which='major', labelsize="xx-large")
ax.tick_params(axis='both', which='minor', labelsize="xx-large")
plt.legend(fontsize="xx-large", loc="upper left")
#plt.show()
Ipopt 3.13.2: nlp_scaling_method=gradient-based
tol=1e-06
max_iter=300
halt_on_ampl_error=yes
******************************************************************************
This program contains Ipopt, a library for large-scale nonlinear optimization.
Ipopt is released as open source code under the Eclipse Public License (EPL).
For more information visit http://projects.coin-or.org/Ipopt
This version of Ipopt was compiled from source code available at
https://github.com/IDAES/Ipopt as part of the Institute for the Design of
Advanced Energy Systems Process Systems Engineering Framework (IDAES PSE
Framework) Copyright (c) 2018-2019. See https://github.com/IDAES/idaes-pse.
This version of Ipopt was compiled using HSL, a collection of Fortran codes
for large-scale scientific computation. All technical papers, sales and
publicity material resulting from use of the HSL codes within IPOPT must
contain the following acknowledgement:
HSL, a collection of Fortran codes for large-scale scientific
computation. See http://www.hsl.rl.ac.uk.
******************************************************************************
This is Ipopt version 3.13.2, running with linear solver ma27.
Number of nonzeros in equality constraint Jacobian...: 1354
Number of nonzeros in inequality constraint Jacobian.: 0
Number of nonzeros in Lagrangian Hessian.............: 389
Total number of variables............................: 513
variables with only lower bounds: 0
variables with lower and upper bounds: 368
variables with only upper bounds: 0
Total number of equality constraints.................: 513
Total number of inequality constraints...............: 0
inequality constraints with only lower bounds: 0
inequality constraints with lower and upper bounds: 0
inequality constraints with only upper bounds: 0
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
0 0.0000000e+00 3.06e+01 0.00e+00 -1.0 0.00e+00 - 0.00e+00 0.00e+00 0
1 0.0000000e+00 6.28e+01 1.11e+04 -1.0 1.09e+08 - 5.94e-02 4.40e-01F 1
2 0.0000000e+00 3.61e-01 1.08e+03 -1.0 5.85e+07 - 1.14e-02 1.00e+00H 1
3 0.0000000e+00 8.75e-02 7.18e+02 -1.0 1.64e+06 - 8.27e-01 1.00e+00h 1
4 0.0000000e+00 3.45e-06 8.39e-02 -1.0 7.46e+04 - 9.89e-01 1.00e+00h 1
5 0.0000000e+00 8.94e-08 2.73e-03 -1.0 2.83e+00 - 9.90e-01 1.00e+00h 1
Number of Iterations....: 5
(scaled) (unscaled)
Objective...............: 0.0000000000000000e+00 0.0000000000000000e+00
Dual infeasibility......: 0.0000000000000000e+00 0.0000000000000000e+00
Constraint violation....: 1.8626451492309570e-09 8.9406967163085938e-08
Complementarity.........: 0.0000000000000000e+00 0.0000000000000000e+00
Overall NLP error.......: 1.8626451492309570e-09 8.9406967163085938e-08
Number of objective function evaluations = 8
Number of objective gradient evaluations = 6
Number of equality constraint evaluations = 8
Number of inequality constraint evaluations = 0
Number of equality constraint Jacobian evaluations = 6
Number of inequality constraint Jacobian evaluations = 0
Number of Lagrangian Hessian evaluations = 5
Total CPU secs in IPOPT (w/o function evaluations) = 0.232
Total CPU secs in NLP function evaluations = 1.162
EXIT: Optimal Solution Found.
Plant Power (MW) = 458.5647401954766
Plant Heat Duty (MW) = 970.5861529522479
Ipopt 3.13.2: nlp_scaling_method=gradient-based
tol=1e-06
max_iter=300
halt_on_ampl_error=yes
******************************************************************************
This program contains Ipopt, a library for large-scale nonlinear optimization.
Ipopt is released as open source code under the Eclipse Public License (EPL).
For more information visit http://projects.coin-or.org/Ipopt
This version of Ipopt was compiled from source code available at
https://github.com/IDAES/Ipopt as part of the Institute for the Design of
Advanced Energy Systems Process Systems Engineering Framework (IDAES PSE
Framework) Copyright (c) 2018-2019. See https://github.com/IDAES/idaes-pse.
This version of Ipopt was compiled using HSL, a collection of Fortran codes
for large-scale scientific computation. All technical papers, sales and
publicity material resulting from use of the HSL codes within IPOPT must
contain the following acknowledgement:
HSL, a collection of Fortran codes for large-scale scientific
computation. See http://www.hsl.rl.ac.uk.
******************************************************************************
This is Ipopt version 3.13.2, running with linear solver ma27.
Number of nonzeros in equality constraint Jacobian...: 1354
Number of nonzeros in inequality constraint Jacobian.: 0
Number of nonzeros in Lagrangian Hessian.............: 389
Total number of variables............................: 513
variables with only lower bounds: 0
variables with lower and upper bounds: 368
variables with only upper bounds: 0
Total number of equality constraints.................: 513
Total number of inequality constraints...............: 0
inequality constraints with only lower bounds: 0
inequality constraints with lower and upper bounds: 0
inequality constraints with only upper bounds: 0
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
0 0.0000000e+00 9.87e+00 0.00e+00 -1.0 0.00e+00 - 0.00e+00 0.00e+00 0
1 0.0000000e+00 3.82e+01 2.39e+02 -1.0 1.26e+07 - 2.63e-01 1.00e+00h 1
2 0.0000000e+00 8.53e-01 3.75e+02 -1.0 8.23e+06 - 6.83e-01 1.00e+00h 1
3 0.0000000e+00 3.65e-04 1.79e+00 -1.0 7.21e+05 - 9.70e-01 1.00e+00h 1
4 0.0000000e+00 6.71e-08 9.63e-02 -1.0 3.22e+02 - 9.90e-01 1.00e+00h 1
Number of Iterations....: 4
(scaled) (unscaled)
Objective...............: 0.0000000000000000e+00 0.0000000000000000e+00
Dual infeasibility......: 0.0000000000000000e+00 0.0000000000000000e+00
Constraint violation....: 1.8626451492309570e-09 6.7055225372314453e-08
Complementarity.........: 0.0000000000000000e+00 0.0000000000000000e+00
Overall NLP error.......: 1.8626451492309570e-09 6.7055225372314453e-08
Number of objective function evaluations = 5
Number of objective gradient evaluations = 5
Number of equality constraint evaluations = 5
Number of inequality constraint evaluations = 0
Number of equality constraint Jacobian evaluations = 5
Number of inequality constraint Jacobian evaluations = 0
Number of Lagrangian Hessian evaluations = 4
Total CPU secs in IPOPT (w/o function evaluations) = 0.299
Total CPU secs in NLP function evaluations = 0.651
EXIT: Optimal Solution Found.
Plant Power (MW) = 451.12383724974603
Plant Heat Duty (MW) = 952.2672510786463
Ipopt 3.13.2: nlp_scaling_method=gradient-based
tol=1e-06
max_iter=300
halt_on_ampl_error=yes
******************************************************************************
This program contains Ipopt, a library for large-scale nonlinear optimization.
Ipopt is released as open source code under the Eclipse Public License (EPL).
For more information visit http://projects.coin-or.org/Ipopt
This version of Ipopt was compiled from source code available at
https://github.com/IDAES/Ipopt as part of the Institute for the Design of
Advanced Energy Systems Process Systems Engineering Framework (IDAES PSE
Framework) Copyright (c) 2018-2019. See https://github.com/IDAES/idaes-pse.
This version of Ipopt was compiled using HSL, a collection of Fortran codes
for large-scale scientific computation. All technical papers, sales and
publicity material resulting from use of the HSL codes within IPOPT must
contain the following acknowledgement:
HSL, a collection of Fortran codes for large-scale scientific
computation. See http://www.hsl.rl.ac.uk.
******************************************************************************
This is Ipopt version 3.13.2, running with linear solver ma27.
Number of nonzeros in equality constraint Jacobian...: 1354
Number of nonzeros in inequality constraint Jacobian.: 0
Number of nonzeros in Lagrangian Hessian.............: 389
Total number of variables............................: 513
variables with only lower bounds: 0
variables with lower and upper bounds: 368
variables with only upper bounds: 0
Total number of equality constraints.................: 513
Total number of inequality constraints...............: 0
inequality constraints with only lower bounds: 0
inequality constraints with lower and upper bounds: 0
inequality constraints with only upper bounds: 0
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
0 0.0000000e+00 9.64e+00 0.00e+00 -1.0 0.00e+00 - 0.00e+00 0.00e+00 0
1 0.0000000e+00 2.93e+01 1.85e+00 -1.0 9.67e+06 - 8.57e-01 1.00e+00h 1
2 0.0000000e+00 8.67e-02 1.57e+01 -1.0 1.01e+07 - 7.06e-01 1.00e+00h 1
3 0.0000000e+00 2.14e-06 2.29e-01 -1.0 7.86e+04 - 9.90e-01 1.00e+00h 1
4 0.0000000e+00 2.98e-08 6.29e-05 -1.0 1.09e+00 - 9.90e-01 1.00e+00h 1
Number of Iterations....: 4
(scaled) (unscaled)
Objective...............: 0.0000000000000000e+00 0.0000000000000000e+00
Dual infeasibility......: 0.0000000000000000e+00 0.0000000000000000e+00
Constraint violation....: 3.4924596548080444e-10 2.9802322387695312e-08
Complementarity.........: 0.0000000000000000e+00 0.0000000000000000e+00
Overall NLP error.......: 3.4924596548080444e-10 2.9802322387695312e-08
Number of objective function evaluations = 5
Number of objective gradient evaluations = 5
Number of equality constraint evaluations = 5
Number of inequality constraint evaluations = 0
Number of equality constraint Jacobian evaluations = 5
Number of inequality constraint Jacobian evaluations = 0
Number of Lagrangian Hessian evaluations = 4
Total CPU secs in IPOPT (w/o function evaluations) = 0.273
Total CPU secs in NLP function evaluations = 0.670
EXIT: Optimal Solution Found.
Plant Power (MW) = 443.7672298097435
Plant Heat Duty (MW) = 934.786503777763
Ipopt 3.13.2: nlp_scaling_method=gradient-based
tol=1e-06
max_iter=300
halt_on_ampl_error=yes
******************************************************************************
This program contains Ipopt, a library for large-scale nonlinear optimization.
Ipopt is released as open source code under the Eclipse Public License (EPL).
For more information visit http://projects.coin-or.org/Ipopt
This version of Ipopt was compiled from source code available at
https://github.com/IDAES/Ipopt as part of the Institute for the Design of
Advanced Energy Systems Process Systems Engineering Framework (IDAES PSE
Framework) Copyright (c) 2018-2019. See https://github.com/IDAES/idaes-pse.
This version of Ipopt was compiled using HSL, a collection of Fortran codes
for large-scale scientific computation. All technical papers, sales and
publicity material resulting from use of the HSL codes within IPOPT must
contain the following acknowledgement:
HSL, a collection of Fortran codes for large-scale scientific
computation. See http://www.hsl.rl.ac.uk.
******************************************************************************
This is Ipopt version 3.13.2, running with linear solver ma27.
Number of nonzeros in equality constraint Jacobian...: 1354
Number of nonzeros in inequality constraint Jacobian.: 0
Number of nonzeros in Lagrangian Hessian.............: 389
Total number of variables............................: 513
variables with only lower bounds: 0
variables with lower and upper bounds: 368
variables with only upper bounds: 0
Total number of equality constraints.................: 513
Total number of inequality constraints...............: 0
inequality constraints with only lower bounds: 0
inequality constraints with lower and upper bounds: 0
inequality constraints with only upper bounds: 0
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
0 0.0000000e+00 9.39e+00 0.00e+00 -1.0 0.00e+00 - 0.00e+00 0.00e+00 0
1 0.0000000e+00 2.33e+01 3.35e+01 -1.0 1.30e+07 - 7.10e-01 1.00e+00h 1
2 0.0000000e+00 6.50e-02 1.06e+02 -1.0 6.18e+06 - 7.94e-01 1.00e+00h 1
3 0.0000000e+00 3.18e-06 3.63e-01 -1.0 8.85e+04 - 9.90e-01 1.00e+00h 1
4 0.0000000e+00 7.45e-08 5.20e-03 -1.0 2.36e+00 - 9.90e-01 1.00e+00h 1
Number of Iterations....: 4
(scaled) (unscaled)
Objective...............: 0.0000000000000000e+00 0.0000000000000000e+00
Dual infeasibility......: 0.0000000000000000e+00 0.0000000000000000e+00
Constraint violation....: 4.6566128730773926e-10 7.4505805969238294e-08
Complementarity.........: 0.0000000000000000e+00 0.0000000000000000e+00
Overall NLP error.......: 4.6566128730773926e-10 7.4505805969238294e-08
Number of objective function evaluations = 5
Number of objective gradient evaluations = 5
Number of equality constraint evaluations = 5
Number of inequality constraint evaluations = 0
Number of equality constraint Jacobian evaluations = 5
Number of inequality constraint Jacobian evaluations = 0
Number of Lagrangian Hessian evaluations = 4
Total CPU secs in IPOPT (w/o function evaluations) = 0.386
Total CPU secs in NLP function evaluations = 0.885
EXIT: Optimal Solution Found.
Plant Power (MW) = 436.4662436477347
Plant Heat Duty (MW) = 917.9305468932863
Ipopt 3.13.2: nlp_scaling_method=gradient-based
tol=1e-06
max_iter=300
halt_on_ampl_error=yes
******************************************************************************
This program contains Ipopt, a library for large-scale nonlinear optimization.
Ipopt is released as open source code under the Eclipse Public License (EPL).
For more information visit http://projects.coin-or.org/Ipopt
This version of Ipopt was compiled from source code available at
https://github.com/IDAES/Ipopt as part of the Institute for the Design of
Advanced Energy Systems Process Systems Engineering Framework (IDAES PSE
Framework) Copyright (c) 2018-2019. See https://github.com/IDAES/idaes-pse.
This version of Ipopt was compiled using HSL, a collection of Fortran codes
for large-scale scientific computation. All technical papers, sales and
publicity material resulting from use of the HSL codes within IPOPT must
contain the following acknowledgement:
HSL, a collection of Fortran codes for large-scale scientific
computation. See http://www.hsl.rl.ac.uk.
******************************************************************************
This is Ipopt version 3.13.2, running with linear solver ma27.
Number of nonzeros in equality constraint Jacobian...: 1354
Number of nonzeros in inequality constraint Jacobian.: 0
Number of nonzeros in Lagrangian Hessian.............: 389
Total number of variables............................: 513
variables with only lower bounds: 0
variables with lower and upper bounds: 368
variables with only upper bounds: 0
Total number of equality constraints.................: 513
Total number of inequality constraints...............: 0
inequality constraints with only lower bounds: 0
inequality constraints with lower and upper bounds: 0
inequality constraints with only upper bounds: 0
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
0 0.0000000e+00 9.13e+00 0.00e+00 -1.0 0.00e+00 - 0.00e+00 0.00e+00 0
1 0.0000000e+00 1.90e+01 1.22e+02 -1.0 1.22e+07 - 3.23e-01 1.00e+00h 1
2 0.0000000e+00 5.23e-01 1.52e+02 -1.0 6.58e+06 - 7.91e-01 1.00e+00h 1
3 0.0000000e+00 1.34e-04 1.28e+00 -1.0 4.40e+05 - 9.79e-01 1.00e+00h 1
4 0.0000000e+00 8.94e-08 6.58e-02 -1.0 1.20e+02 - 9.90e-01 1.00e+00h 1
Number of Iterations....: 4
(scaled) (unscaled)
Objective...............: 0.0000000000000000e+00 0.0000000000000000e+00
Dual infeasibility......: 0.0000000000000000e+00 0.0000000000000000e+00
Constraint violation....: 5.8207660913467407e-10 8.9406967163085938e-08
Complementarity.........: 0.0000000000000000e+00 0.0000000000000000e+00
Overall NLP error.......: 5.8207660913467407e-10 8.9406967163085938e-08
Number of objective function evaluations = 5
Number of objective gradient evaluations = 5
Number of equality constraint evaluations = 5
Number of inequality constraint evaluations = 0
Number of equality constraint Jacobian evaluations = 5
Number of inequality constraint Jacobian evaluations = 0
Number of Lagrangian Hessian evaluations = 4
Total CPU secs in IPOPT (w/o function evaluations) = 0.371
Total CPU secs in NLP function evaluations = 0.857
EXIT: Optimal Solution Found.
Plant Power (MW) = 429.1979916564438
Plant Heat Duty (MW) = 901.5421185699863
Ipopt 3.13.2: nlp_scaling_method=gradient-based
tol=1e-06
max_iter=300
halt_on_ampl_error=yes
******************************************************************************
This program contains Ipopt, a library for large-scale nonlinear optimization.
Ipopt is released as open source code under the Eclipse Public License (EPL).
For more information visit http://projects.coin-or.org/Ipopt
This version of Ipopt was compiled from source code available at
https://github.com/IDAES/Ipopt as part of the Institute for the Design of
Advanced Energy Systems Process Systems Engineering Framework (IDAES PSE
Framework) Copyright (c) 2018-2019. See https://github.com/IDAES/idaes-pse.
This version of Ipopt was compiled using HSL, a collection of Fortran codes
for large-scale scientific computation. All technical papers, sales and
publicity material resulting from use of the HSL codes within IPOPT must
contain the following acknowledgement:
HSL, a collection of Fortran codes for large-scale scientific
computation. See http://www.hsl.rl.ac.uk.
******************************************************************************
This is Ipopt version 3.13.2, running with linear solver ma27.
Number of nonzeros in equality constraint Jacobian...: 1354
Number of nonzeros in inequality constraint Jacobian.: 0
Number of nonzeros in Lagrangian Hessian.............: 389
Total number of variables............................: 513
variables with only lower bounds: 0
variables with lower and upper bounds: 368
variables with only upper bounds: 0
Total number of equality constraints.................: 513
Total number of inequality constraints...............: 0
inequality constraints with only lower bounds: 0
inequality constraints with lower and upper bounds: 0
inequality constraints with only upper bounds: 0
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
0 0.0000000e+00 8.85e+00 0.00e+00 -1.0 0.00e+00 - 0.00e+00 0.00e+00 0
1 0.0000000e+00 4.88e+00 8.75e+01 -1.0 1.49e+07 - 8.95e-01 5.51e-01h 1
2 0.0000000e+00 2.94e+00 6.42e+03 -1.0 6.41e+06 - 5.70e-03 1.00e+00f 1
3 0.0000000e+00 1.09e-02 4.56e+02 -1.0 3.60e+06 - 9.23e-01 1.00e+00h 1
4 0.0000000e+00 8.88e-08 1.09e-01 -1.0 8.63e+03 - 9.90e-01 1.00e+00h 1
Number of Iterations....: 4
(scaled) (unscaled)
Objective...............: 0.0000000000000000e+00 0.0000000000000000e+00
Dual infeasibility......: 0.0000000000000000e+00 0.0000000000000000e+00
Constraint violation....: 8.8754423366310675e-08 8.8754423366310675e-08
Complementarity.........: 0.0000000000000000e+00 0.0000000000000000e+00
Overall NLP error.......: 8.8754423366310675e-08 8.8754423366310675e-08
Number of objective function evaluations = 5
Number of objective gradient evaluations = 5
Number of equality constraint evaluations = 5
Number of inequality constraint evaluations = 0
Number of equality constraint Jacobian evaluations = 5
Number of inequality constraint Jacobian evaluations = 0
Number of Lagrangian Hessian evaluations = 4
Total CPU secs in IPOPT (w/o function evaluations) = 0.370
Total CPU secs in NLP function evaluations = 0.872
EXIT: Optimal Solution Found.
Plant Power (MW) = 421.94491539905306
Plant Heat Duty (MW) = 885.502147854769
[6]:
<matplotlib.legend.Legend at 0x7f0c255fbf10>