- 3.0.2 core module.
TestNonlinearSystemLinearized.h
Go to the documentation of this file.
1 /**********************************************************************************************************************
2 This file is part of the Control Toolbox (https://github.com/ethz-adrl/control-toolbox), copyright by ETH Zurich.
3 Licensed under the BSD-2 license (see LICENSE file in main directory)
4 **********************************************************************************************************************/
5 
6 #pragma once
7 
8 #include <ct/core/core.h>
9 
10 namespace ct {
11 namespace core {
12 namespace generated {
13 
15 {
16 public:
17  EIGEN_MAKE_ALIGNED_OPERATOR_NEW
18 
20 
21  typedef typename Base::state_vector_t state_vector_t;
22  typedef typename Base::control_vector_t control_vector_t;
23  typedef typename Base::state_matrix_t state_matrix_t;
24  typedef typename Base::state_control_matrix_t state_control_matrix_t;
25 
27  : ct::core::LinearSystem<2, 1>(type)
28  {
29  initialize();
30  }
31 
34 
35  virtual TestNonlinearSystemLinearized* clone() const override { return new TestNonlinearSystemLinearized; }
36  virtual const state_matrix_t& getDerivativeState(const state_vector_t& x,
37  const control_vector_t& u,
38  const double t = double(0.0)) override;
39 
40  virtual const state_control_matrix_t& getDerivativeControl(const state_vector_t& x,
41  const control_vector_t& u,
42  const double t = double(0.0)) override;
43 
44 private:
45  void initialize()
46  {
47  dFdx_.setZero();
48  dFdu_.setZero();
49  vX_.fill(0.0);
50  vU_.fill(0.0);
51  }
52 
53  state_matrix_t dFdx_;
54  state_control_matrix_t dFdu_;
55  std::array<double, 0> vX_;
56  std::array<double, 0> vU_;
57 };
58 
59 } // namespace generated
60 } // namespace core
61 } // namespace ct
interface class for a general linear system or linearized system
Definition: LinearSystem.h:23
TestNonlinearSystemLinearized(const ct::core::SYSTEM_TYPE &type=ct::core::SYSTEM_TYPE::GENERAL)
Definition: TestNonlinearSystemLinearized.h:26
virtual const state_control_matrix_t & getDerivativeControl(const state_vector_t &x, const control_vector_t &u, const double t=double(0.0)) override
Definition: TestNonlinearSystemLinearized.cpp:33
Base::state_control_matrix_t state_control_matrix_t
Definition: TestNonlinearSystemLinearized.h:24
virtual ~TestNonlinearSystemLinearized()
Definition: TestNonlinearSystemLinearized.h:33
ct::core::ControlVector< control_dim > u
virtual const state_matrix_t & getDerivativeState(const state_vector_t &x, const control_vector_t &u, const double t=double(0.0)) override
Definition: TestNonlinearSystemLinearized.cpp:15
EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef ct::core::LinearSystem< 2, 1, double > Base
Definition: TestNonlinearSystemLinearized.h:19
clear all close all load ct GNMSLog0 mat reformat t
ct::core::StateVector< state_dim > x
Base::state_matrix_t state_matrix_t
Definition: TestNonlinearSystemLinearized.h:23
TestNonlinearSystemLinearized(const TestNonlinearSystemLinearized &other)
Definition: TestNonlinearSystemLinearized.h:32
Base::state_vector_t state_vector_t
Definition: TestNonlinearSystemLinearized.h:21
SYSTEM_TYPE
type of system
Definition: System.h:15
any non-specific system
Definition: System.h:17
Definition: TestNonlinearSystemLinearized.h:14
Base::control_vector_t control_vector_t
Definition: TestNonlinearSystemLinearized.h:22
virtual TestNonlinearSystemLinearized * clone() const override
deep cloning
Definition: TestNonlinearSystemLinearized.h:35