Reachability ============ Basics of Reachability Analysis ------------------------------- Systems without disturbances ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Consider a general continuous-time .. math:: :label: ctds1 \dot{x}(t) = f(t, x, u), or discrete-time dynamical system .. math:: :label: dtds1 x(t+1) = f(t, x, u), .. \tag*{(\ref{ctds1}d)} wherein :math:`t` is time [1]_, :math:`x\in{\bf R}^n` is the state, :math:`u\in{\bf R}^m` is the control, and :math:`f` is a measurable vector function taking values in :math:`{\bf R}^n`. [2]_ The control values :math:`u(t, x(t))` are restricted to a closed compact control set :math:`{\mathcal U}(t)\subset{\bf R}^m`. An *open-loop* control does not depend on the state, :math:`u=u(t)`; for a *closed-loop* control, :math:`u=u(t, x(t))`. **Definition.** The (forward) reach set :math:`{\mathcal X}(t, t_0, x_0)` at time :math:`t>t_0` from the initial position :math:`(t_0, x_0)` is the set of all states :math:`x(t)` reachable at time :math:`t` by system :eq:`ctds1`, or :eq:`dtds1`, with :math:`x(t_0)=x_0` through all possible controls :math:`u(\tau, x(\tau))\in{\mathcal U}(\tau)`, :math:`t_0\leqslant\tau< t`. For a given set of initial states :math:`{\mathcal X}_0`, the reach set :math:`{\mathcal X}(t, t_0, {\mathcal X}_0)` is .. math:: :label: def_olrs {\mathcal X}(t, t_0, {\mathcal X}_0) = \bigcup_{x_0\in{\mathcal X}_0}{\mathcal X}(t, t_0, x_0). Here are two facts about forward reach sets. #. :math:`{\mathcal X}(t, t_0, {\mathcal X}_0)` is the same for open-loop and closed-loop control. #. :math:`{\mathcal X}(t, t_0, {\mathcal X}_0)` satisfies the semigroup property, .. math:: :label: semigroup {\mathcal X}(t, t_0, {\mathcal X}_0) = {\mathcal X}(t, \tau, {\mathcal X}(\tau, t_0, {\mathcal X}_0)), \;\;\; t_0\leqslant\tau< t. For linear systems .. math:: :label: linearrhs f(t, x, u) = A(t)x(t) + B(t)u, with matrices :math:`A(t)` in :math:`{\bf R}^{n\times n}` and :math:`B(t)` in :math:`{\bf R}^{m\times n}`. For continuous-time linear system the state transition matrix is .. math:: \dot{\Phi}(t, t_0) = A(t)\Phi(t, t_0), \Phi(t, t) = I, which for constant :math:`A(t)\equiv A` simplifies as .. math:: \Phi(t, t_0) = e^{A(t-t_0)} . For discrete-time linear system the state transition matrix is .. math:: \Phi(t+1, t_0) = A(t)\Phi(t, t_0), \Phi(t, t) = I, which for constant :math:`A(t)\equiv A` simplifies as .. math:: \Phi(t, t_0) = A^{t-t_0} . If the state transition matrix is invertible, :math:`\Phi^{-1}(t, t_0) = \Phi(t_0, t)`. The transition matrix is always invertible for continuous-time and for sampled discrete-time systems. However, if for some :math:`\tau`, :math:`t_0\leqslant\taut_0`, is the set of all states :math:`x`, for each of which and for every disturbance :math:`v(\tau)\in{\mathcal V}(\tau)`, there exist an initial state :math:`x_0\in{\mathcal X}_0` and a control :math:`u(\tau, x(\tau))\in{\mathcal U}(\tau)`, such that the trajectory :math:`x(\tau | v(\tau), u(\tau, x(\tau)))` satisfying :math:`x(t_0) = x_0` and .. math:: \dot{x}(\tau | v(\tau), u(\tau, x(\tau))) \in f(\tau, x(\tau), u(\tau, x(\tau)), v(\tau)) in the continuous-time case, or .. math:: x(\tau+1 | v(\tau), u(\tau, x(\tau))) \in f(\tau, x(\tau), u(\tau, x(\tau)), v(\tau)) in the discrete-time case, with :math:`t_0\leqslant\taut_0`, is the set of all states :math:`x`, for each of which there exists a control :math:`u(\tau, x(\tau))\in{\mathcal U}(\tau)`, and for every disturbance :math:`v(\tau)\in{\mathcal V}(\tau)` there exists an initial state :math:`x_0\in{\mathcal X}_0`, such that the trajectory :math:`x(\tau, v(\tau) | u(\tau, x(\tau)))` satisfying :math:`x(t_0) = x_0` and .. math:: \dot{x}(\tau, v(\tau) | u(\tau, x(\tau))) \in f(\tau, x(\tau), u(\tau, x(\tau)), v(\tau)) in the continuous-time case, or .. math:: x(\tau+1, v(\tau) | u(\tau, x(\tau))) \in f(\tau, x(\tau), u(\tau, x(\tau)), v(\tau)) in the discrete-time case, with :math:`t_0\leqslant\tau0`. Consider the linear system case, .. math:: :label: linearrhsdist f(t, x, u) = A(t)x(t) + B(t)u + G(t)v, where :math:`A(t)` and :math:`B(t)` are as in :eq:`linearrhs`, and :math:`G(t)` takes its values in :math:`{\bf R}^d`. The maxmin OLRS for the continuous-time linear system can be expressed through set valued integrals, .. math:: :label: ctlsmaxmin \begin{array}{l} \overline{{\mathcal X}}_{OL}(t, t_0, {\mathcal X}_0) = \\ \left(\Phi(t, t_0){\mathcal X}_0 \oplus \int_{t_0}^t\Phi(t, \tau)B(\tau){\mathcal U}(\tau)d\tau\right) \dot{-} \\ \int_{t_0}^t\Phi(t, \tau)(-G(\tau)){\mathcal V}(\tau)d\tau, \end{array} and for discrete-time linear system through set-valued sums, .. math:: :label: dtlsmaxmin \begin{array}{l} \overline{{\mathcal X}}_{OL}(t, t_0, {\mathcal X}_0) = \\ \left(\Phi(t, t_0){\mathcal X}_0 \oplus \sum_{\tau=t_0}^{t-1}\Phi(t, \tau+1)B(\tau){\mathcal U}(\tau)\right) \dot{-} \\ \sum_{\tau=t_0}^{t-1}\Phi(t, \tau+1)(-G(\tau)){\mathcal V}(\tau). \end{array} .. \tag*{(\ref{ctlsmaxmin}d)} Similarly, the minmax OLRS for the continuous-time linear system is .. math:: :label: ctlsminmax \begin{array}{l} \underline{{\mathcal X}}_{OL}(t, t_0, {\mathcal X}_0) = \\ \left(\Phi(t, t_0){\mathcal X}_0 \dot{-} \int_{t_0}^t\Phi(t, \tau)(-G(\tau)){\mathcal V}(\tau)d\tau\right) \oplus \\ \int_{t_0}^t\Phi(t, \tau)B(\tau){\mathcal U}(\tau)d\tau, \end{array} and for the discrete-time linear system it is .. math:: :label: dtlsminmax \begin{array}{l} \underline{{\mathcal X}}_{OL}(t, t_0, {\mathcal X}_0) = \\ \left(\Phi(t, t_0){\mathcal X}_0 \dot{-} \sum_{\tau=t_0}^{t-1}\Phi(t, \tau+1)(-G(\tau)){\mathcal V}(\tau)\right) \oplus \\ \sum_{\tau=t_0}^{t-1}\Phi(t, \tau+1)B(\tau){\mathcal U}(\tau). \end{array} .. \tag*{(\ref{ctlsminmax}d)} The operation ‘:math:`\dot{-}`’ is *geometric difference*, also known as *Minkowski difference*. [7]_ Now consider the piecewise OLRS with :math:`k` corrections. Expression :eq:`maxmink` translates into .. math:: :label: ctlsmaxmink \begin{array}{l} \overline{{\mathcal X}}_{OL}^k(t, t_0, {\mathcal X}_0) = \\ \left(\Phi(t, \tau_k)\overline{{\mathcal X}}_{OL}^{k-1}(\tau_k, t_0, {\mathcal X}_0) \oplus \int_{\tau_k}^t\Phi(t, \tau)B(\tau){\mathcal U}(\tau)d\tau\right) \dot{-} \\ \int_{\tau_k}^t\Phi(t, \tau)(-G(\tau)){\mathcal V}(\tau)d\tau, \end{array} in the continuous-time case, and for the discrete-time case into .. math:: :label: dtlsmaxmink \begin{array}{l} \overline{{\mathcal X}}_{OL}^k(t, t_0, {\mathcal X}_0) = \\ \left(\Phi(t, \tau_k)\overline{{\mathcal X}}_{OL}^{k-1}(\tau_k, t_0, {\mathcal X}_0) \oplus \sum_{\tau=\tau_k}^{t-1}\Phi(t, \tau+1)B(\tau){\mathcal U}(\tau)\right) \dot{-} \\ \sum_{\tau=\tau_k}^{t-1}\Phi(t, \tau+1)(-G(\tau)){\mathcal V}(\tau). \end{array} Expression :eq:`minmaxk` translates into .. math:: :label: ctlsminmaxk \begin{array}{l} \underline{{\mathcal X}}_{OL}^k(t, t_0, {\mathcal X}_0) = \\ \left(\Phi(t, \tau_k)\underline{{\mathcal X}}_{OL}^{k-1}(t, t_0, {\mathcal X}_0) \dot{-} \int_{\tau_k}^t\Phi(t, \tau)(-G(\tau)){\mathcal V}(\tau)d\tau\right) \oplus \\ \int_{\tau_k}^t\Phi(t, \tau)B(\tau){\mathcal U}(\tau)d\tau, \end{array} in the continuous-time case, and for the discrete-time case into .. math:: :label: dtlsminmaxk \begin{array}{l} \underline{{\mathcal X}}_{OL}^k(t, t_0, {\mathcal X}_0) = \\ \left(\Phi(t, \tau_k)\underline{{\mathcal X}}_{OL}^{k-1}(\tau_k, t_0, {\mathcal X}_0) \dot{-} \sum_{\tau=\tau_k}^{t-1}\Phi(t, \tau+1)(-G(\tau)){\mathcal V}(\tau)\right) \oplus \\ \sum_{\tau=\tau_k}^{t-1}\Phi(t, \tau+1)B(\tau){\mathcal U}(\tau). \end{array} Since for any :math:`{\mathcal W}_1, {\mathcal W}_2, {\mathcal W}_3 \subseteq {\bf R}^n` it is true that .. math:: ({\mathcal W}_1 \dot{-} {\mathcal W}_2) \oplus {\mathcal W}_3 = ({\mathcal W}_1 \oplus {\mathcal W}_3) \dot{-} ({\mathcal W}_2 \oplus {\mathcal W}_3) \subseteq ({\mathcal W}_1 \oplus {\mathcal W}_3) \dot{-} {\mathcal W}_2, from :eq:`ctlsmaxmink`, :eq:`ctlsminmaxk` and from :eq:`dtlsmaxmink`, :eq:`dtlsminmaxk`, it is clear that :eq:`olrsinclusion` is true. For linear systems, if the initial set :math:`{\mathcal X}_0`, control bounds :math:`{\mathcal U}(\tau)` and disturbance bounds :math:`{\mathcal V}(\tau)`, :math:`t_0\leqslant\tau0`. Computation of backward reach sets for discrete-time linear systems makes sense only if the state transition matrix :math:`\Phi(t_1, t)` is invertible. If the target set :math:`{\mathcal Y}_1`, control sets :math:`{\mathcal U}(\tau)` and disturbance sets :math:`{\mathcal V}(\tau)`, :math:`t\leqslant\tauReferences .. [VAR2007] P. Varaiya A. A. Kurzhanskiy. Ellipsoidal techniques for reachability analysis of discrete-time linear systems. *IEEE Transactions on Automatic Control*, 52(1):26–38, 2007. linear systems. *IEEE Transactions on Automatic Control*, 52(1):26–38, 2007.