APMonitor Release Notes

Main.ProductRoadmap History

Hide minor edits - Show changes to output

May 22, 2021, at 09:58 PM by 10.35.117.248 -
Added lines 20-27:

!!!! Version 1.0.0 - 22 May 2021

* Stable release of APMonitor and [[https://gekko.readthedocs.io/en/latest/|Gekko Optimization Suite]].

!!!! Version 0.9.2 - 15 May 2020

* Bug fix for AXB object for non-symmetric matrices
April 15, 2019, at 06:49 AM by 101.53.21.242 -
Changed lines 23-24 from:
* QOBJ and AXB objects with improved error reporting
to:
* QOBJ and AXB objects with improved error reporting. QOBJ object implements a quadratic objective as 0.5 x^T A x + b^T x. AXB implements a linear system as Ax=b, Ax>b, or Ax<b. The matrix A and vector b can either be in dense or sparse form.
Changed line 27 from:
* IMODE=7 ignore CSV values for calculated values past 1st node
to:
* IMODE=7 ignore CSV values for calculated values past 1st node. This is important when there is data that is used for initialization but shouldn't be re-initialized on subsequent cycles. Simulation results between IMODE=4 (simultaneous) and IMODE=7 (sequential) now agree but use different methods for solution.
April 15, 2019, at 06:46 AM by 101.53.21.242 -
Added lines 20-23:

!!!! Version 0.8.9 - 15 Apr 2019

* QOBJ and AXB objects with improved error reporting
April 03, 2019, at 03:39 PM by 10.37.195.189 -
Added lines 20-23:

!!!! Version 0.8.8 - 20 Mar 2019

* IMODE=7 ignore CSV values for calculated values past 1st node
March 01, 2019, at 04:34 PM by 10.37.199.31 -
Added lines 20-23:

!!!! Version 0.8.7 - 3 Mar 2019

* Initialization improvement, support for new GEKKO features, system identification, ARX modeling, B-spline.
Added lines 20-27:

!!!! Version 0.8.1 - 13 Feb 2018

* Added [[Main/ObjectCspline|Cubic spline]] interpolation object.

!!!! Version 0.8.0 - 15 Dec 2017

* Added JSON support for the new [[https://gekko.readthedocs.io/en/latest/|GEKKO]] Python package interface to APMonitor.
August 16, 2017, at 05:35 PM by 10.5.113.229 -
Changed line 24 from:
* The CSV_READ option 2 is added to allow calculated values to be initialized from the CSV (data) file. The other options remain the same including CSV_READ=0 (skip read), and CSV_READ=1 (read only fixed values, default).
to:
* The [[Main/OptionApmCsvRead|CSV_READ]] option 2 is added to allow calculated values to be initialized from the CSV (data) file. The other options remain the same including CSV_READ=0 (skip read), and CSV_READ=1 (read only fixed values, default).
August 16, 2017, at 05:34 PM by 10.5.113.229 -
Added lines 20-24:

!!!! Version 0.7.8 - 16 Aug 2017

* Include Intermediate variables in the solution report. The solution is saved as ''results.csv'' on the server or as ''solution.csv'' when retrieved with the MATLAB or Python client. Because Intermediates are not read from prior solutions, a change is made to not stop the run if a variable is not a valid ''Parameter'' or ''Variable''. Now there is only a warning message if the header string is not located.
* The CSV_READ option 2 is added to allow calculated values to be initialized from the CSV (data) file. The other options remain the same including CSV_READ=0 (skip read), and CSV_READ=1 (read only fixed values, default).
June 13, 2017, at 03:55 AM by 45.56.3.173 -
Changed line 23 from:
* Changed options from "NLC." to "APM." for global options. Added documentation for all [[Main/DBS|global and local options]]. A discussion of [[Main/ErrorMessages|common error messages]] are reviewed with an approach to troubleshooting. There is improved memory management during the compilation stage and the speed is improved.
to:
* Changed options from "NLC." to "APM." for global options. Added documentation for all [[Main/DBS|global and local options]]. A discussion of [[Main/ErrorMessages|common error messages]] are reviewed with an approach to troubleshooting. There is improved memory management during the compilation stage and the speed is improved. Increased maximum equation size on each line of the model to 15,000 characters.
June 13, 2017, at 03:53 AM by 45.56.3.173 -
Changed line 23 from:
* Changed options from "NLC." to "APM." for global options. Added documentation for all [[Main/DBS|global and local options]]. A discussion of [[Main/ErrorMessages|common error messages]] are reviewed with an approach to troubleshooting.
to:
* Changed options from "NLC." to "APM." for global options. Added documentation for all [[Main/DBS|global and local options]]. A discussion of [[Main/ErrorMessages|common error messages]] are reviewed with an approach to troubleshooting. There is improved memory management during the compilation stage and the speed is improved.
June 13, 2017, at 03:48 AM by 45.56.3.173 -
Added lines 20-23:

!!!! Version 0.7.7 - 12 Jun 2017

* Changed options from "NLC." to "APM." for global options. Added documentation for all [[Main/DBS|global and local options]]. A discussion of [[Main/ErrorMessages|common error messages]] are reviewed with an approach to troubleshooting.
Added lines 20-27:

!!!! Version 0.7.6 - 31 Jan 2017

* Added real-time solver status to server and Python script. Each line of the solver output is returned as it produced on the server. Previously, it only displayed the solver output when the problem finished solving. A new apm.py version is available to support the feature.

!!!! Version 0.7.5 - 13 Aug 2016

* Updated the Python client to allow Python 2.7 or Python 3+.
April 30, 2016, at 12:03 AM by 45.56.3.173 -
Changed lines 24-26 from:
* Improvements to the APOPT solver:
** New
AMPL interface
** Fixed a memory leak issue
to:
* Improvements to the APOPT solver with an AMPL / Pyomo / JuliaOpt interface that reads NL files.
April 29, 2016, at 11:57 PM by 45.56.3.173 -
Added lines 20-26:

!!!! Version 0.7.3 - 29 Apr 2016

* Added FSTATUS and MEAS for State Variables (SVs). With FSTATUS on, the measurement updates the initial condition at p(1).n(1). This same functionality is applied to Controlled Variables (CVs) as well when the STATUS is off (1).
* Improvements to the APOPT solver:
** New AMPL interface
** Fixed a memory leak issue
Added lines 26-30:

!!!! Version 0.7.1 - 16 Jul 2015

* Added support for Julia programming language
* See [[Main/JuliaOpt|APM Julia]] information
Added lines 20-25:

!!!! Version 0.7.2 - 19 Feb 2016

* Added Python 3.5 support to the existing Python 2.7 support
* New course material on dynamic optimization at https://apmonitor.com/do
* Correct a bug with sequential estimation or control (imode=8 or 9) that prevented MVs from being declared
November 23, 2014, at 06:03 AM by 107.188.175.164 -
Changed line 23 from:
* Added sequential dynamic estimation and control modes as imode = 8 and 9, respectively.
to:
* Added sequential dynamic estimation and control modes as imode = 8 and 9, respectively. See additional information on [[Main/Modes | modes of operation]].
Changed lines 25-26 from:
* A new [[https://www.sciencedirect.com/science/article/pii/S0098135414001306 |article in Computers and Chemical Engineering]] provides additional details on the APMonitor algorithms.
to:
* Corrected a bug with the APOPT solver interface where Jacobian values were sometimes from the prior iteration instead of the current iteration.
* A new [[https://www.sciencedirect.com/science/article/pii/S0098135414001306 |article in Computers and Chemical Engineering]] provides additional details on the APMonitor algorithms.
November 23, 2014, at 02:53 AM by 107.188.175.164 -
Added lines 20-25:

!!!! Version 0.7.0 - 11 Nov 2014

* Added sequential dynamic estimation and control modes as imode = 8 and 9, respectively.
* Added sequential modes for steady state parameter estimation and optimization modes as well. Set option nlc.sequential = 1 for a solution strategy that successively solves the equations independently of the objective function evaluation. Once the equations are evaluated, exact 1st and 2nd derivatives of the objective with respect to the degrees of freedom are used to find a search direction for new parameter estimates.
* A new [[https://www.sciencedirect.com/science/article/pii/S0098135414001306 |article in Computers and Chemical Engineering]] provides additional details on the APMonitor algorithms.
May 28, 2014, at 10:55 PM by 107.188.175.164 -
Changed lines 21-26 from:
!!!! Version 0.6.1 - 5 May 2014
to:
!!!! Version 0.6.2 - 28 May 2014

* Added periodic boundary conditions as an option for individual variables. See additional details at [[Apps/PeriodicBoundaryConditions |this documentation page]] with some example problems.
* Added ''apm_solve'' to the Python interface and added an additional optional argument ''imode'' to the MATLAB interface to allow something other than the default of ''imode=7'' (sequential simulation). The ''apm_solve" function is intended to be a simplified method to quickly solve dynamic simulation problems with minimal coding effort.

!!!! Version 0.6.1a
- 5 May 2014
May 06, 2014, at 04:41 AM by 23.255.240.62 -
Added lines 20-27:

!!!! Version 0.6.1 - 5 May 2014

* Added apm_solve function for Python and simplified the use of the function in MATLAB for improved usability
* Modified imode=4 to eliminate some variables that were formerly associated with unused MV classified values, creating larger than necessary problems
* Corrected a bug in the implementation of sensitivities of FVs
* Published the paper to give additional details on the APMonitor implementation of Moving Horizon Estimation and Nonlinear Model Predictive Control:
** Hedengren, J. D. and Asgharzadeh Shishavan, R., Powell, K.M., and Edgar, T.F., Nonlinear Modeling, Estimation and Predictive Control in APMonitor, Computers and Chemical Engineering, accepted for publication, 2014, DOI: 10.1016/j.compchemeng.2014.04.013. [[Attach:apmonitor_2014.pdf|Download Preprint]]
January 20, 2014, at 03:49 PM by 23.255.228.67 -
Changed lines 21-22 from:
!!!! Version 0.6.1 - 8 Aug 2012
to:
!!!! Version 0.6.0 - 20 Jan 2014
Changed lines 29-30 from:

!!!! Version 0.5.9 - 25 June 2012
to:
* Updates to [[Main/MATLAB | APM MATLAB]] and [[Main/PythonApp | APM Python]] interfaces to allow mixed case application names

!!!! Version 0.5.9 - 25 June 2013
August 25, 2012, at 09:30 PM by 69.169.131.76 -
Added line 28:
* Sequential simulation (imode=7) only produces all intermediate points with nlc.web=2. Otherwise with nlc.web=1 it produces only the first and last points. Full results are still available from apm_sol(server,app).
August 08, 2012, at 04:02 PM by 69.169.131.76 -
Changed lines 21-22 from:
!!!! Version 0.6.0 - TBD
to:
!!!! Version 0.6.1 - 8 Aug 2012
Added line 27:
* Improved execution time through compiler optimization and memory access management
July 19, 2012, at 11:36 PM by 128.187.97.23 -
Added lines 21-27:
!!!! Version 0.6.0 - TBD

* Improved detection of uninitialized values
* Improved speed of function residuals by evaluating once and storing initial values and constraints
* Reduced memory allocation requirements (was running out of memory for large models)
* Support for [[Main/Arrays|multi-dimensional matrix operations]] up to 10 indices

Deleted line 46:
* Support for [[Main/Arrays|multi-dimensional matrix operations]] up to 10 indices
July 07, 2012, at 06:13 AM by 69.169.188.228 -
Added line 40:
* Support for [[Main/Arrays|multi-dimensional matrix operations]] up to 10 indices
June 26, 2012, at 04:57 AM by 69.169.131.76 -
Added line 25:
* Improvements to MINLP algorithm for dynamic problems
Changed lines 29-32 from:
** apm_jac.txt - Jacobian (Exact 1st Derivatives)
to:
** apm_jac.txt - Jacobian (Exact 1st Derivatives) with respect to all variables
** apm_jac_fv.txt - Jacobian (1st Derivatives) with respect to FVs
** apm_lam.txt - Lagrange multipliers
** apm_lbt.txt - Lower block triangularization  for problem decomposition
Added line 37:
** apm_sens_obj.txt - Objective sensitivity with respect to FVs and MVs
Changed lines 39-40 from:
to:
** Note 1: Jacobian and Hessian information reported as sparse matrices
Changed lines 48-50 from:
to:
** Declare parameters or variables starting with "int" (e.g. int[1] is an integer variable)
** Use APOPT solver (nlc.solver=1)

Changed line 99 from:
----
to:
----
June 26, 2012, at 04:49 AM by 69.169.131.76 -
Added lines 20-33:

!!!! Version 0.5.9 - 25 June 2012

* Implemented acceleration for pre-solve algorithm (Coldstart >=2)
* When values are read from the CSV file, FSTATUS is automatically set to 1 (ON)
* Report detailed problem information with diaglevel >=2 including:
** apm_hes.txt - Hessian (Exact 2nd Derivatives)
** apm_hes_obj.txt - Hessian of Only Objective Terms (Exact 2nd Derivatives)
** apm_jac.txt - Jacobian (Exact 1st Derivatives)
** apm_obj_grad.txt - Objective gradient
** apm_res.txt - Equation residuals
** apm_sens_fv.txt - State sensitivity with respect to FVs
** apm_sens_mv.txt - State sensitivity with respect to MVs
** apm_var.txt - Variable values
June 17, 2012, at 05:53 AM by 69.169.131.76 -
Changed line 21 from:
!!!! Version 0.5.8 - Released soon
to:
!!!! Version 0.5.8 - 16 June 2012
June 08, 2012, at 05:38 AM by 69.169.131.76 -
Deleted line 12:
* Linux server development in addition to the Windows server operating support
Added lines 26-27:
* Corrected problem with one equation in estimation model for the Latex model generator
* Ability to solve mixed-integer nonlinear programming problems
June 02, 2012, at 12:07 AM by 128.187.97.23 -
Added lines 21-26:

!!!! Version 0.5.8 - Released soon

* Custom variable scaling based on default value declarations
* Performance improvements by not calculating residuals for inactive equations
* New sequential initialization capabilities with NLC.Coldstart >= 2.
May 22, 2012, at 04:40 AM by 69.169.131.76 -
Changed lines 22-23 from:
!!!! Version 0.5.7 - 9 Apr 2012
to:
!!!! Version 0.5.7 - 21 May 2012
Changed lines 27-30 from:
to:
* Fixed bugs:
** with steady state optimization where in certain situations, new set points were not being read
** sequential simulation was not initializing from prior solutions properly
* Export of sparsity, Hessian, and Jacobian now possible
April 09, 2012, at 06:06 PM by 128.187.97.23 -
Changed lines 26-27 from:
* Testing some new Mixed-Integer code. A prototype version is available at the [https://www.mathworks.com/matlabcentral/fileexchange/35720-minlp-mixed-integer-nonlinear-programming | Mathworks File Exchange] web-site.
to:
* Testing some new Mixed-Integer code. A prototype version is available at the [[https://www.mathworks.com/matlabcentral/fileexchange/35720-minlp-mixed-integer-nonlinear-programming | Mathworks File Exchange]] web-site.
April 09, 2012, at 06:06 PM by 128.187.97.23 -
Changed lines 24-26 from:
* New imode option (imode=7) for sequential simulation.  This implements something similar to MATLAB’s ode15s or DASPK with forward time stepping.
* Initial conditions and guess values can come from the CSV data file.  APM will use them when NLC.COLDSTART=1 (on).  Coldstart also turns off the MVs for one cycle to make the problem easier to solve.
to:
* New imode option (imode=7) for sequential simulation. This implements something similar to MATLAB’s ode15s or DASPK with forward time stepping.
* Initial conditions and guess values can come from the CSV data file.  APM will use them when NLC.COLDSTART=1 (on). Coldstart also turns off the MVs for one cycle to make the problem easier to solve.
* Testing some new Mixed-Integer code. A prototype version is available at the [https://www.mathworks.com/matlabcentral/fileexchange/35720-minlp-mixed-integer-nonlinear-programming | Mathworks File Exchange] web-site
.
Deleted line 66:
April 09, 2012, at 06:04 PM by 128.187.97.23 -
Added lines 21-25:

!!!! Version 0.5.7 - 9 Apr 2012

* New imode option (imode=7) for sequential simulation.  This implements something similar to MATLAB’s ode15s or DASPK with forward time stepping.
* Initial conditions and guess values can come from the CSV data file.  APM will use them when NLC.COLDSTART=1 (on).  Coldstart also turns off the MVs for one cycle to make the problem easier to solve.
March 07, 2012, at 06:58 PM by 128.187.97.23 -
Added line 29:
* Retrieve server results without dependency of NumPy (Python version)
February 16, 2012, at 03:39 AM by 69.169.188.228 -
Deleted lines 43-44:
----
Deleted lines 51-52:

----
February 16, 2012, at 03:39 AM by 69.169.188.228 -
Changed lines 22-23 from:
!!!! Version 0.5.6
to:
!!!! Version 0.5.6 - 15 Feb 2012
Changed lines 30-31 from:
!!!! Version 0.5.5
to:
!!!! Version 0.5.5 - 9 Dec 2012
Changed lines 46-47 from:
!!!! Version 0.5.4
to:
!!!! Version 0.5.4 - 15 Nov 2011
Changed line 57 from:
!!!! Version 0.5.3
to:
!!!! Version 0.5.3 - 15 Sept 2011
February 16, 2012, at 03:38 AM by 69.169.188.228 -
Changed line 24 from:
* More improvements to the Python and MATLAB interfaces
to:
* More improvements to the APM Python and APM MATLAB interfaces
Changed lines 27-28 from:
* Tested parallel processing with MATLAB
to:
* Tested parallel processing with APM MATLAB
* Access database variables into the APM MATLAB or APM Python script such as objective function values
February 16, 2012, at 03:35 AM by 69.169.188.228 -
Added lines 21-27:

!!!! Version 0.5.6

* More improvements to the Python and MATLAB interfaces
** Access solution results directly into python scripts
** Added trending capability with Python's Numpy and Matplotlib
* Tested parallel processing with MATLAB
January 06, 2012, at 03:36 PM by 69.169.136.210 -
Added line 34:
* Time shift now allows any number of time horizon steps instead of only 1 or 0 (off).
December 06, 2011, at 05:57 AM by 69.169.188.228 -
Changed line 27 from:
** Model files and CSV data files are now sent to the server with one command instead of line-by-line as in v0.5.4
to:
** Model files and CSV data files are now sent to the server with one command instead of line-by-line as in v0.5.4, greatly improving the load speed
December 06, 2011, at 05:56 AM by 69.169.188.228 -
Changed lines 26-27 from:
** Separate simultaneous applications are maintained with separate names, such as MHE and NLC that feed information back and forth between estimation and control.
** Model
files and CSV data files are now sent to the server with one command instead of line-by-line as in v0.5.4.
to:
** Separate simultaneous applications are maintained with separate names, such as MHE and NLC, that exchange information between estimation and control
** Model files
and CSV data files are now sent to the server with one command instead of line-by-line as in v0.5.4
December 06, 2011, at 05:55 AM by 69.169.188.228 -
Added line 26:
** Separate simultaneous applications are maintained with separate names, such as MHE and NLC that feed information back and forth between estimation and control.
December 06, 2011, at 05:43 AM by 69.169.188.228 -
Added lines 24-26:
* Improvements to the Python and MATLAB interfaces
** Python and MATLAB interfaces now support multiple simultaneous applications
** Model files and CSV data files are now sent to the server with one command instead of line-by-line as in v0.5.4.
November 05, 2011, at 10:50 PM by 69.169.188.228 -
Deleted lines 4-7:
!!! Development Priorities and Roadmap

Additional functionality is continually

Changed lines 6-8 from:

!!! Version Release Notes
to:
!!! Future Roadmap
Changed lines 8-21 from:
to:
Additional functionality is continually added to the APMonitor software.  Below is a roadmap on product development.  Requests for additional features can be discussed on the user's group forum and is regularly solicited from customers.

!!!! Development Priorities

* Parallel support for larger scale optimization problems
* Linux server development in addition to the Windows server operating support
* Collaborative project features that allow multiple simultaneous developers
* Improved Python and MATLAB interface support
* Incorporation of additional solvers, including those with mixed-integer capabilities

----
!!! Version Release Notes
----

Deleted line 28:
** New version of a Linux server migrated from the Windows application server
November 05, 2011, at 10:36 PM by 69.169.188.228 -
Added lines 1-45:
(:title APMonitor Release Notes:)
(:keywords release notes, version, APMonitor, roadmap, development, differential, algebraic, modeling language:)
(:description Version Information and Release Roadmap of APMonitor Modeling Language:)

!!! Development Priorities and Roadmap

Additional functionality is continually

----

!!! Version Release Notes

----

!!!! Version 0.5.5

* Fixed problem with a controller trajectory formulation
** Controller did not implement dead-band control correctly, leading to slower than expected controller response
* Added new reference trajectory formulation for derivative-based control
* More operating system support
** Executable Tested on 32 and 64 bit Windows XP, Windows 7
** New version of a Linux server migrated from the Windows application server
** Web interface tested for MacOS

----

!!!! Version 0.5.4

* New MATLAB and Python interfaces
* Added new CONSTANTS classification
** Can now specify constants in a vector index
** Added multidimensional array support
* Second derivative information fixed for MHE L2-norm mode for data reconciliation
** Error was causing incorrect sparsity and Hessian information that was accessed by the IPOPT solver

----

!!!! Version 0.5.3

* Added support for APOPT and BPOPT solvers
* Updated IPOPT solver to v.3.9.1
* Updated web-interface trends to Flash v10 from v6.

----