codac 1.5.6
Loading...
Searching...
No Matches
codac2_CtcLinobs.h
Go to the documentation of this file.
1
12#ifndef __CODAC2_CTCLINOBS_H__
13#define __CODAC2_CTCLINOBS_H__
14
15#include <map>
16#include <vector>
17#include <functional>
18#include "codac_DynCtc.h"
19#include "codac2_Tube.h"
20#include "codac_ConvexPolygon.h"
22
23namespace codac2
24{
28 class CtcLinobs : public codac::DynCtc
29 {
30 public:
31
32 CtcLinobs(const codac::Matrix& A, const codac::Vector& b); // /!\ auto evaluation of e^At not reliable
33 ~CtcLinobs();
34
35 // to be removed:
36 void contract(codac::TubeVector& x, const codac::Tube& u, codac::TimePropag t_propa);
37
38 void contract(std::vector<codac::Domain*>& v_domains);
39 void contract(Tube<codac::ConvexPolygon>& x, const Tube<Interval>& u, codac::TimePropag t_propa = codac::TimePropag::FORWARD | codac::TimePropag::BACKWARD, bool compute_envelopes = true);
40 void contract(Slice<codac::ConvexPolygon>& x, const Slice<codac::Interval>& u, codac::TimePropag t_propa = codac::TimePropag::FORWARD | codac::TimePropag::BACKWARD, bool compute_envelope = true);
41
42
43 protected:
44
45 void ctc_fwd_gate(codac::ConvexPolygon& p_k, const codac::ConvexPolygon& p_km1, double dt_km1_k, const codac::Interval& u_km1);
46 void ctc_bwd_gate(codac::ConvexPolygon& p_k, const codac::ConvexPolygon& p_kp1, double dt_k_kp1, const codac::Interval& u_k);
47 codac::ConvexPolygon polygon_envelope(const codac::ConvexPolygon& p_k, double dt_k_kp1, const codac::Interval& u_k);
48
49
50 protected:
51
52 const codac::Matrix _A;
53 const codac::Vector _b;
54
55 const int m_polygon_max_edges = 15;
56
57 static const std::string m_ctc_name;
58 static std::vector<std::string> m_str_expected_doms;
59 friend class ContractorNetwork;
60 };
61}
62
63#endif
Contractor interface.
Definition codac_DynCtc.h:61
One dimensional tube , defined as an interval of scalar trajectories.
Definition codac_Tube.h:48
n-dimensional tube , defined as an interval of n-dimensional trajectories
Definition codac_TubeVector.h:39
TimePropag
Specifies the temporal propagation way (forward or backward in time)
Definition codac_DynCtc.h:27
@ BACKWARD
backward in time (from to )
@ FORWARD
forward in time (from to )