CDS 110b: Receding Horizon Control
See current course homepage to find most recent page available. |
| Course Home | L7-2: Sensitivity | L8-1: Robust Stability | L9-1: Robust Perf | Schedule |
This lecture presents an overview of receding horizon control (RHC). In addition to providing a summary of the available theoretical results, we introduce the concept of differential flatness for simplifying RHC problems and provide an example of RHC control on the Caltech ducted fan. .
Lecture Outline
- Receding Horizon Control
- Problem Formulation
- Stability theorems
- Differential Flatness and Trajectory Generation
- Definitions
- Properties
- Examples
- Examples: Caltech ducted fan, satellite formation flight, multi-vehicle testbed
Lecture Materials
- Lecture Presentation (no MP3)
- Lecture notes: Online Control Customization via Optimization-Based Control, R. Murray et al, 2003.
- Homework 3
References and Further Reading
Frequently Asked Questions
Q: How is differential flatness defined?
A system of the form
Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle \dot x = f(x,u) } is said to be differentially flat if there exists an integer Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle p} and a (smooth) function Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle h} of the form
Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle z = h(x, u, \dot u, \ddot u, \dots, u^{(p)}) } such that all solutions of the differential equation can be written in terms of Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle z} and a finite number of its derivatives with respect to time. In other words, Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle x} and Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle u} satisfying the dynamics of the system have the form
Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle \begin{matrix} x &=& a(z, \dot z, \ddot z, \dots, z^{(q)}) \\ u &=& b(z, \dot z, \ddot z, \dots, z^{(q)}) \end{matrix} } for some integer Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle q} and smooth functions Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle a} and Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle b} . The variable Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle z} is often called the flat output and if a system is differentially flat then the number of flat outputs is equal to the number of inputs to the system.
Checking a system for flatness is difficult, but there are certain classes of systems for which there are necessary and sufficient conditions. Usually you find the flat outputs by a combination of physical insight and trial and error.
References:
- Flat systems, equivalence and trajectory generation, Phillipe Martin, Richard Murray, Pierre Rouchon, CDS Technical Report, 2003.
Q: How do you do trajectory optimization using differential flatness
The basic idea in using flatness for optimal trajectory generation is to rewrite the cost function and constraints in terms of the flat outputs and then parameterize the flat outputs in terms of a set of basis functions:
Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle z(t) = \sum_i \alpha_i \psi_i(t) } Here, Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle \psi_i} , Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle i = 1, \dots, N} are the basis functions (eg, Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle \psi_i(t) = t^i} ) and Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle \alpha_i} are constant coefficients.
Once you have parameterized the flat outputs by Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle \alpha} , you can convert all expressions involving Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle z} into functions involving Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle \alpha} . This process is described in a more detail in the lectures notes (Section 4).
Q: Is the condition given by Jadbabaei and Hauser and example of a CLF or the definition of a CLF?
I was a bit sloppy defining CLFs in lecture. The formal definition is given in the lectures notes (Section 2.2, Defn 1). Briefly, given a system
Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle \dot x = f(x,u), } we say that a (smooth) function Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle V(x)} is a control Lyapunov function (CLF) if
- Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle V(x) > 0} for all Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle x \neq 0}
- Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle V(x) = 0} if and only if Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle x = 0}
- The derivative of Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle V} along trajectories of the system satisfies
Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle \min_u \dot V(x) |_{\dot x = f(x,u)} = \min_u \frac{\partial V}{\partial x} f(x, u) < 0 }
- for all Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle x}
The condition for stability given in lecture is that there exists a CLF for the system that in addition satisfies the relationship
Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle \min_u (\dot V(x) + L(x, u)) < 0 } along the trajectories of the system. Thus we have to have Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle \dot V} be sufficiently negative definite in order to insure that the terminal cost Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle V(x)} provides stability.