-
Notifications
You must be signed in to change notification settings - Fork 13
Optimal Control
Control systems engineering is a discipline that models the behaviour of a wide range of dynamic systems and the design of controllers that enable these systems produce a desired behaviour.
Optimal control theory is the science of maximizing the returns from and minimizing the costs of the operation of physical, social, and economic processes. Optimal Control has to do with the problem of finding a control for a given dynamic system such that a certain optimality criterion is achieved.
Optimal control is the process of determining control and state trajectories for a dynamic system over a period of time to minimise a performance index. Consider an aircraft trying to determine a flight path to reduce engine noise over populated areas located ahead of an airport runway, such a problem could be solved using optimal control techniques as seen in [3].
Optimal control can be used to solve [2]:
Minimum-time problems: problems associated with choosing a control input that transfers a systems from an initial state to a specified state in the shortest possible time.
Minimum-energy problems: attaining a final state with minimum total expenditure of control effort.
Terminal control problems: forcing a system to be brought as near as possible to some desired state
Tracking problems: The aim here is to track as close as possible some desired state throughout a specific interval.
Optimal Control has a wide range of applications in engineering, life sciences, drug administration, systems biology, finance, economics [4, 5], supply chain management, aerospace studies, missile systems, etc.
CVXR is an attractive modeling language for optimization that allows users to formulate convex optimization problems in a natural, mathematically conventional manner while interfacing with advanced optimization solvers like ECOS and SCS. The attractive usage architecture of CVXR makes it very easy to formulate and re-formulate convex problems, and utilize several solvers with very little change of code - this is the reason it is proposed for this project.
A Control Systems Toolbox reached CRAN late last year - as a GSoC 2017 project. The CVXR package was also released on CRAN around the same time. Currently, there is no tool available in the R language that solves optimal control problems. However, these tools exist in MATLAB and Python.
For this GSoC 2018 coding project, the following are listed for implementation:
- Linear Quadratic Control for continuous-time and discrete-time optimal control
- Lyapunov Stability Analysis
- Solution of the Riccati equation - LQR problem as a Linear Matrix Inequality (LMI)problem.
- Finite Horizon optimal Input design: find an input sequence u = (u(1); : : : ; u(N)) up to some input horizon N, that optimizes a given objective.
- Kalman filtering
- optimal Proportional-Integral-Derivative (PID) tuning
Optimal Control is a very important field today with various standard applications. This project would enable diverse engineers and scientists to use R for optimal control applications. See a good list of some application areas and samples from PROPT in MATLAB: http://tomdyn.com/matlab_optimal_control_examples.html
Mentors are needed
[1] https://en.wikipedia.org/wiki/Optimal_control
[4] http://people.stfx.ca/tleo/advmacrolec3.pdf
[5] https://lectures.quantecon.org/py/lqcontrol.html
Minimum Fuel Problem of Double Integrator System in Discrete-time
See page 22 of https://ocw.mit.edu/courses/aeronautics-and-astronautics/16-323-principles-of-optimal-control-spring-2008/lecture-notes/lec9.pdf
Rewrite this program for the minimum-fuel problem from the StackOverFlow Question using CVXPY (https://stackoverflow.com/questions/39934207/minimum-fuel-control-with-cvxpy) in R.
The problem is to find a control input (u) sequence between 0 and 1 that drives the dynamic system described by:
dy/dx = Ax + Bu
from an arbitrary state x0
to the origin, xf
in a fixed time.
Solution: https://github.com/benubah/control-gsoc-test/blob/master/gsoc2018test.R