codac 1.5.6
Loading...
Searching...
No Matches
codac_CtcLinobs.h
Go to the documentation of this file.
1
12#ifndef __CODAC_CTCLINOBS_H__
13#define __CODAC_CTCLINOBS_H__
14
15#include <map>
16#include <vector>
17#include <functional>
18#include "codac_DynCtc.h"
19#include "codac_ConvexPolygon.h"
21
22namespace codac
23{
27 class CtcLinobs : public DynCtc
28 {
29 public:
30
34 CtcLinobs(const Matrix& A, const Vector& b); // /!\ auto evaluation of e^At not reliable
35 ~CtcLinobs();
36
37 void contract(std::vector<Domain*>& v_domains);
38 void contract(Tube& x1, Tube& x2, const Tube& u, TimePropag t_propa = TimePropag::FORWARD | TimePropag::BACKWARD);
39 void contract(TubeVector& x, const Tube& u, TimePropag t_propa = TimePropag::FORWARD | TimePropag::BACKWARD);
40 void contract(TubeVector& x, const Tube& u, std::vector<ConvexPolygon>& v_p_k, TimePropag t_propa = TimePropag::FORWARD | TimePropag::BACKWARD);
41
42 // todo: contraction of the observations
43 void contract(double& t, IntervalVector& y, TubeVector& x, const Tube& u, TimePropag t_propa = TimePropag::FORWARD | TimePropag::BACKWARD);
44 void contract(double& t, IntervalVector& y, TubeVector& x, const Tube& u, std::vector<ConvexPolygon>& v_p_k, TimePropag t_propa = TimePropag::FORWARD | TimePropag::BACKWARD);
45
46 // todo: contraction of the observations
47 void contract(std::vector<double>& v_t, std::vector<IntervalVector>& v_y, TubeVector& x, const Tube& u, TimePropag t_propa = TimePropag::FORWARD | TimePropag::BACKWARD);
48 void contract(std::vector<double>& v_t, std::vector<IntervalVector>& v_y, TubeVector& x, const Tube& u, std::vector<ConvexPolygon>& v_p_k, TimePropag t_propa = TimePropag::FORWARD | TimePropag::BACKWARD);
49 void contract(std::vector<double>& v_t, std::vector<IntervalVector>& v_y, Tube& x1, Tube& x2, const Tube& u, std::vector<ConvexPolygon>& v_p_k, TimePropag t_propa = TimePropag::FORWARD | TimePropag::BACKWARD);
50
51 ConvexPolygon polygon_envelope(const ConvexPolygon& p_k, double dt_k_kp1, const Matrix& A, const Vector& b, const Interval& u_k);
52
53
54 protected:
55
56 void ctc_fwd_gate(ConvexPolygon& p_k, const ConvexPolygon& p_km1, double dt_km1_k, const Matrix& A, const Vector& b, const Interval& u_km1);
57 void ctc_bwd_gate(ConvexPolygon& p_k, const ConvexPolygon& p_kp1, double dt_k_kp1, const Matrix& A, const Vector& b, const Interval& u_k);
58
59
60 protected:
61
62 const Matrix* m_A;
63 const Vector* m_b;
64
65 const int m_polygon_max_edges = 15;
66
67 static const std::string m_ctc_name;
68 static std::vector<std::string> m_str_expected_doms;
69 friend class ContractorNetwork;
70 };
71}
72
73#endif
FixPoint of a separator The fixpoint of a separator is computed by calling the "::"separate function ...
Definition codac_capd_helpers.h:9
@ BACKWARD
backward in time (from to )
@ FORWARD
forward in time (from to )