pencleanenergy / MATCH-model

MATCH model for planning time-coincident clean energy portfolios
GNU Affero General Public License v3.0
27 stars 10 forks source link

Integrate duals and reduced costs into summary report #21

Closed grgmiller closed 3 years ago

grgmiller commented 3 years ago

Slack could be useful for telling us which hours load is binding RC could be helpful for asessing what would be the break even PPA price for an unselected resource to be competitve Shadow price could tell us the value of demand flexibility whenever load is binding

Steps:

grgmiller commented 3 years ago

Obtaining MIP duals: https://www.ibm.com/support/pages/node/396971 Save solution: https://www.ibm.com/support/pages/node/397091

Acessing duals: https://pyomo.readthedocs.io/en/stable/working_models.html#accessing-duals

grgmiller commented 3 years ago
Traceback (most recent call last):
  File "C:\Users\gmiller\.conda\envs\switch_247\Scripts\switch-script.py", line 33, in <module>
    sys.exit(load_entry_point('switch-model', 'console_scripts', 'switch')())
  File "c:\users\gmiller\github\switch247\switch_model\main.py", line 37, in main
    main()
  File "c:\users\gmiller\github\switch247\switch_model\solve_scenarios.py", line 159, in main
    solve.main(args=args)
  File "c:\users\gmiller\github\switch247\switch_model\solve.py", line 143, in main
    results = solve(instance)
  File "c:\users\gmiller\github\switch247\switch_model\solve.py", line 721, in solve
    TempfileManager.tempdir = model.options.tempdir
  File "C:\Users\gmiller\.conda\envs\switch_247\lib\site-packages\pyomo\opt\parallel\async_solver.py", line 28, in solve
    return self.execute(*args, **kwds)
  File "C:\Users\gmiller\.conda\envs\switch_247\lib\site-packages\pyomo\opt\parallel\manager.py", line 118, in execute
    ah = self.queue(*args, **kwds)
  File "C:\Users\gmiller\.conda\envs\switch_247\lib\site-packages\pyomo\opt\parallel\manager.py", line 133, in queue
    return self._perform_queue(ah, *args, **kwds)
  File "C:\Users\gmiller\.conda\envs\switch_247\lib\site-packages\pyomo\opt\parallel\local.py", line 52, in _perform_queue
    results = opt.solve(*args, **kwds)
  File "C:\Users\gmiller\.conda\envs\switch_247\lib\site-packages\pyomo\opt\base\solvers.py", line 601, in solve
    result = self._postsolve()
  File "C:\Users\gmiller\.conda\envs\switch_247\lib\site-packages\pyomo\solvers\plugins\solvers\CPLEX.py", line 902, in _postsolve
    results = ILMLicensedSystemCallSolver._postsolve(self)
  File "C:\Users\gmiller\.conda\envs\switch_247\lib\site-packages\pyomo\opt\solver\shellcmd.py", line 277, in _postsolve
    results = self.process_output(self._rc)
  File "C:\Users\gmiller\.conda\envs\switch_247\lib\site-packages\pyomo\opt\solver\shellcmd.py", line 355, in process_output
    self.process_soln_file(results)
  File "C:\Users\gmiller\.conda\envs\switch_247\lib\site-packages\pyomo\solvers\plugins\solvers\CPLEX.py", line 659, in process_soln_file
    raise RuntimeError("***The CPLEX solver plugin cannot extract solution suffix="+suffix)
RuntimeError: ***The CPLEX solver plugin cannot extract solution suffix='[duals]'