CDS 110b: Receding Horizon Control: Difference between revisions

From Murray Wiki
Jump to navigationJump to search
No edit summary
No edit summary
Line 1: Line 1:
{{cds110b-wi06}}
{{cds110b-wi08}}
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.  . __NOTOC__
This set of lectures provides an introduction to receding horizon control and its use for two degree of freedom control design.


== Lecture Outline ==
* {{cds110b-wi08 pdfs|L4-1_rhc.pdf|Lecture slides on RHC overview}} (Mon)
<ol type=I>
* {{cds110b-wi08 pdfs placeholder|L4-2_rhc.pdf|Lecture notes on RHC analysis}} (Wed)
<li> Receding Horizon Control
* {{cds110b-wi08 pdfs placeholder|hw4.pdf|HW #4}} (due 6 Feb 08)
* Problem Formulation
* Stability theorems
<li> Differential Flatness and Trajectory Generation
* Definitions
* Properties
* Examples
<li> Examples: Caltech ducted fan, satellite formation flight, multi-vehicle testbed
</ol>
 
== Lecture Materials ==
* {{cds110b-pdfs|L3-1_RHC.pdf|Lecture Presentation}} ([[#nomp3|no MP3]])
* Lecture notes: [http://www.cds.caltech.edu/~murray/papers/2001n_mur+03-sec.html Online Control Customization via Optimization-Based Control], R. Murray et al, 2003.
* {{cds110b-pdfs|hw3.pdf|Homework 3}}


== References and Further Reading ==
== References and Further Reading ==
* [http://www.cds.caltech.edu/~murray/papers/2003d_mmr03-cds.html Flat systems, equivalence and trajectory generation], Phillipe Martin, Richard Murray, Pierre Rouchon, CDS Technical Report, 2003 - this is a very detailed report on differential flatness, including the various conditions that are known for checking for flatnessYou shouldn't need nearly this level of detail to do the homework set and understand the basic concepts, but its available if you want to become an expert.
* R. M. Murray, ''Optimization-Based Control''. Preprint, 2008: {{cds110b-wi08 pdfs placeholder|optimal_28Jan08.pdf|Chapter 3 - Receding Horizon Control}}
* <p>[http://www.cds.caltech.edu/~murray/papers/2001n_mur+03-sec.html Online Control Customization via Optimization-Based Control], R. M. Murray et al.  In Software-Enabled Control: Information Technology for Dynamical Systems, T. Samad and G. Balas (eds.), IEEE Press, 2001.  This paper talks about the CLF-based nonlinear RHC approach and its application on the Caltech ducted fan using NTG.</p>
* <p>[http://dx.doi.org/10.1016/S0005-1098(99)00214-9 Constrained model predictive control: Stability and optimality], D. Q. Mayne, J. B. Rawlings, C. V. Rao and P. O. M. Scokaert.  Automatica, 2000, Vol. 36, No. 6, pp. 789-814.  This is one of the most referenced comprehensive survey papers on MPCGives a nice overview about its history and explains the most important issues and various approaches.</p>


== Frequently Asked Questions ==
== Frequently Asked Questions ==
<span id=nomp3/>'''Q: How come there is no MP3 recording for today's lecture?'''
<blockquote> Technology glitch.  My MP3 recorder didn't start up correctly and so I don't have any audio record of the lecture.  I have found and fixed the problem, but if you didn't attend today's lecture you'll have to rely on the lecture slides, notes, and friends.</blockquote>
'''Q: How is differential flatness <i>defined</i>?'''
<blockquote>
A system of the form
<center><math>
\dot x = f(x,u)
</math></center>
is said to be ''differentially flat'' if there exists an integer <math>p</math> and a (smooth) function <math>h</math> of the form
<center><math>
z = h(x, u, \dot u, \ddot u, \dots, u^{(p)})
</math></center>
such that all solutions of the differential equation can be written in terms of <math>z</math> and a finite number of its derivatives with respect to time.  In other words, <math>x</math> and <math>u</math> satisfying the dynamics of the system have the form
<center><math>
\begin{matrix}
x &=& a(z, \dot z, \ddot z, \dots, z^{(q)}) \\
u &=& b(z, \dot z, \ddot z, \dots, z^{(q)})
\end{matrix}
</math></center>
for some integer <math>q</math> and smooth functions <math>a</math> and <math>b</math>.  The variable <math>z</math> 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:
* [http://www.cds.caltech.edu/~murray/papers/2003d_mmr03-cds.html Flat systems, equivalence and trajectory generation], Phillipe Martin, Richard Murray, Pierre Rouchon, CDS Technical Report, 2003.
</blockquote>


'''Q: How do you do trajectory <i>optimization</i> using differential flatness'''
'''Q: How do you do trajectory <i>optimization</i> using differential flatness'''

Revision as of 20:06, 30 January 2008

CDS 110b Schedule Project Course Text

This set of lectures provides an introduction to receding horizon control and its use for two degree of freedom control design.

References and Further Reading

  • R. M. Murray, Optimization-Based Control. Preprint, 2008: Chapter 3 - Receding Horizon Control
  • Online Control Customization via Optimization-Based Control, R. M. Murray et al. In Software-Enabled Control: Information Technology for Dynamical Systems, T. Samad and G. Balas (eds.), IEEE Press, 2001. This paper talks about the CLF-based nonlinear RHC approach and its application on the Caltech ducted fan using NTG.

  • Constrained model predictive control: Stability and optimality, D. Q. Mayne, J. B. Rawlings, C. V. Rao and P. O. M. Scokaert. Automatica, 2000, Vol. 36, No. 6, pp. 789-814. This is one of the most referenced comprehensive survey papers on MPC. Gives a nice overview about its history and explains the most important issues and various approaches.

Frequently Asked Questions

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 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} 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.

Q: Why do receeding horizon trajectories need to go to zero (on slide 4)?

It is common in control problems to assume that the desired trajectory goes to zero as its desired end state. This is implicitly the case whenever you see an integral cost 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 x^T Q x} or a 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 x^T(T) P_1 x(T)} , both of which are minimized when 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} is zero. There are two ways to think about this:

  • If we wish to move to a different (equilibrium) point 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_d} , we can always change the state to 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_{new} = x - x_d} and then the new state 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_{new}} has zero as the desired equilibrium point.
  • If we want to track a trajectory 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_d(t)} (not constant), then we can solve the problem for the error system given by substrating the desired state.

This is explained in more dtail in the lecture notes on LQR control (Section 3).