can fmincon or ga be used to on-line optimization?

3 ビュー (過去 30 日間)
pedro rivera
pedro rivera 2011 年 10 月 18 日
hi, i'm working on predictive control with constrains and i have to optimize a cost equation, and i found i can use fmincon and ga but i want to know if this functions are able to work on-line and what requirement must have an optimization algorithm to work on-line.
thanks for help.

採用された回答

Walter Roberson
Walter Roberson 2011 年 10 月 19 日
For "on-line" work:
  • your minimizer must find a solution within bounded time, or else you must be willing to accept the best solution it found within the bounded time.
  • your minimizer must never crash, or else your computing infrastructure must catch and gracefully handle every such crash
  • as there is a possibility that every invocation of the minimizer might crash or time out, there must be a "safe" value you can use or safe action you can take if it crashes or times out over the entire period
  • your function must have a single minima within the solution bounds, or if it has multiple identical minima within the solution bounds, then any of them must be acceptable; OR, if your function may have multiple different minima within the solution bounds, then it must be acceptable that you do not find the global minima within the allotted time.
fmincon is not suitable for cases in which you have multiple minima and you need to find the global minima -- fmincon cannot even try to handle that: fmincon finds a single minima and returns it no matter how bad it is.
GA at least tries to find global minima (but it cannot promise to succeed.) GA usually needs considerably more function iterations (so more time.)
MATLAB is not able to promise that either fmincon or GA will finish even a single iteration within any fixed period of time, and it takes fancy (and not completely reliable) mechanisms in order for MATLAB to interrupt an iteration and force it to terminate. Those termination mechanisms are not supported in MATLAB: you would have to do some work at the C level to kick the appropriate operating system facilities. Not, in other words, suitable for most "on-line"work.
MATLAB is also not able to gracefully handle crashes involving memory corruption or running out of memory. Again this makes it risky to use for "on-line" work.
There is no known minimizer in any computer language that is reliably able to find global minima of general functions. My memory tells me that there is a strong computing theory that says that a generalized global minima finder is impossible.
If one knows the form of the equations ahead of time, and knows what the varying parameters are, then it might be possible to construct a global minimizer for that restricted set of problems.

その他の回答 (1 件)

John Hedengren
John Hedengren 2011 年 12 月 23 日
Another issue to consider for online work is the networked communication. You are probably solving the optimization problem on a computer that is separate from the SCADA system. You'll typically need to use an OPC (OLE for Process Control) or Modbus connection to interface with an industrial control system or PLC.
An alternative to FMINCON is the Nonlinear Control and Optimization toolbox that has been deployed in many online applications in the oil and gas industry. It uses solvers such as APOPT, BPOPT, or IPOPT to solve large-scale optimization or predictive control applications.

カテゴリ

Help Center および File ExchangeNonlinear Control についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by