--
--
APMonitor user's group e-mail list.
- To post a message, send email to apmo...@googlegroups.com
- To unsubscribe, send email to apmonitor+unsubscribe@googlegroups.com
- Visit this group at http://groups.google.com/group/apmonitor
---
You received this message because you are subscribed to the Google Groups "apmonitor" group.
To unsubscribe from this group and stop receiving emails from it, send an email to apmonitor+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Dear Lifan,There is an apm_id function for both APM MATLAB and APM Python that facilitates identification of ARX and Output Error models. We haven't added it yet for GEKKO (Python). Here is an example of system identification for MATLAB: https://github.com/APMonitor/apm_matlab/tree/master/example_id and an example for Python: https://github.com/APMonitor/apm_python/blob/master/example_lti_regression/lti_regression.pyFor the course, there is a page for MIMO identification here: http://apmonitor.com/do/index.php/Main/ModelIdentification and the Temperature Control Lab has a few exercises for structured versus unstructured modeling: http://apmonitor.com/do/index.php/Main/AdvancedTemperatureControlFor empirical regression (not time series models), there are several other resources:
- Piece-wise Linear: http://apmonitor.com/wiki/index.php/Apps/PiecewiseLinear
- Nonlinear Regression: http://apmonitor.com/che263/index.php/Main/PythonDataRegression
- Another Nonlinear Regression: http://apmonitor.com/me575/index.php/Main/NonlinearRegression
- Regression examples in GEKKO including Neural Network: https://apmonitor.com/wiki/index.php/Main/GekkoPythonOptimization
Let me know if you need additional resources.Best regards,John Hedengren
On Mon, Sep 10, 2018 at 10:06 PM, Lifan Guo <lifa...@gmail.com> wrote:
Dear Prof.Hedengren,I watched almost all of videos on your websites. It is awesome.But, I wonder if there is any example of data-driven model with control?It seems that all lectures include first principle model already, I am interested in how we can do system identification from data and do model predictive control on that.I searched with google and I found some lectures from Professor Brunton, but there is not too much examples in python.Many Thanks.Regards.
--
--
APMonitor user's group e-mail list.
- To post a message, send email to apmo...@googlegroups.com
- To unsubscribe, send email to apmonitor+...@googlegroups.com
- Visit this group at http://groups.google.com/group/apmonitor
---
You received this message because you are subscribed to the Google Groups "apmonitor" group.
To unsubscribe from this group and stop receiving emails from it, send an email to apmonitor+...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
--
--
APMonitor user's group e-mail list.
- To post a message, send email to apmo...@googlegroups.com
- To unsubscribe, send email to apmonitor+...@googlegroups.com
- Visit this group at http://groups.google.com/group/apmonitor
---
You received this message because you are subscribed to the Google Groups "apmonitor" group.
To unsubscribe from this group and stop receiving emails from it, send an email to apmonitor+...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

- To unsubscribe, send email to apmonitor+unsubscribe@googlegroups.com
- Visit this group at http://groups.google.com/group/apmonitor
---
You received this message because you are subscribed to the Google Groups "apmonitor" group.
To unsubscribe from this group and stop receiving emails from it, send an email to apmonitor+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
--
--
APMonitor user's group e-mail list.
- To post a message, send email to apmo...@googlegroups.com
- To unsubscribe, send email to apmonitor+unsubscribe@googlegroups.com
- Visit this group at http://groups.google.com/group/apmonitor
---
You received this message because you are subscribed to the Google Groups "apmonitor" group.
To unsubscribe from this group and stop receiving emails from it, send an email to apmonitor+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
--
--
- To unsubscribe, send email to apmonitor+unsubscribe@googlegroups.com
- Visit this group at http://groups.google.com/group/apmonitor
---
You received this message because you are subscribed to the Google Groups "apmonitor" group.
To unsubscribe from this group and stop receiving emails from it, send an email to apmonitor+unsubscribe@googlegroups.com.

- To unsubscribe, send email to apmonitor+...@googlegroups.com
- Visit this group at http://groups.google.com/group/apmonitor
---
You received this message because you are subscribed to the Google Groups "apmonitor" group.
To unsubscribe from this group and stop receiving emails from it, send an email to apmonitor+...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
--
--
APMonitor user's group e-mail list.
- To post a message, send email to apmo...@googlegroups.com
- To unsubscribe, send email to apmonitor+...@googlegroups.com
- Visit this group at http://groups.google.com/group/apmonitor
---
You received this message because you are subscribed to the Google Groups "apmonitor" group.
To unsubscribe from this group and stop receiving emails from it, send an email to apmonitor+...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
--
----
--
APMonitor user's group e-mail list.
- To post a message, send email to apmo...@googlegroups.com
- To unsubscribe, send email to apmonitor+...@googlegroups.com
- Visit this group at http://groups.google.com/group/apmonitor
---
You received this message because you are subscribed to the Google Groups "apmonitor" group.
To unsubscribe from this group and stop receiving emails from it, send an email to apmonitor+...@googlegroups.com.
--
--
APMonitor user's group e-mail list.
- To post a message, send email to apmo...@googlegroups.com
- To unsubscribe, send email to apmonitor+...@googlegroups.com
- Visit this group at http://groups.google.com/group/apmonitor
---
You received this message because you are subscribed to the Google Groups "apmonitor" group.
To unsubscribe from this group and stop receiving emails from it, send an email to apmonitor+...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Lifan,
MHE updates the parameters each cycle as new measurements arrive. There is more detail on the MHE algorithm at the following links:
MHE Estimator Objective
http://apmonitor.com/do/index.php/Main/EstimatorObjective
Orthogonal Collocation (Direct Transcription) of DAE -> NLP
http://apmonitor.com/do/index.php/Main/OrthogonalCollocation
More Details on MHE
http://apmonitor.com/wiki/uploads/Main/APMonitor_2014.pdf
If you are interested in additional details, there is the Dynamic Optimization course that will be starting again in Jan 2019.
Best regards,
John Hedengren
Lifan,
Here are some resources:
· Solve ODEs with ODEINT: https://apmonitor.com/pdc/index.php/Main/SolveDifferentialEquations
· Solve ODEs with GEKKO: https://apmonitor.com/pdc/index.php/Main/PythonDifferentialEquations
I don’t have a sequential method example of MHE like you are trying to develop with an ODE integrator but there is an MPC sequential method here (developed by Junho Park):

http://apmonitor.com/pdc/index.php/Main/ModelPredictiveControl
You may be able to start with this as a template. In general, a sequential method is much slower than a simultaneous method for most systems. It is a nice way to learn the methods, however. If you want to implement a simultaneous method, there is information here: http://apmonitor.com/do/index.php/Main/OrthogonalCollocation