Lodestar
An integrated real-time control package in C++
DiscreteLQR.hpp
1 //
2 // Created by Hamza El-Kebir on 5/9/21.
3 //
4 
5 #ifndef LODESTAR_DISCRETELQR_HPP
6 #define LODESTAR_DISCRETELQR_HPP
7 
8 #include "Lodestar/systems/StateSpace.hpp"
9 #include "Lodestar/synthesis/AlgebraicRiccatiEquation.hpp"
10 #include <vector>
11 
12 namespace ls {
13  namespace control {
14  class DiscreteLQR {
15  public:
16  static Eigen::MatrixXd
17  infiniteHorizon(const Eigen::MatrixXd &A,
18  const Eigen::MatrixXd &B,
19  const Eigen::MatrixXd &Q,
20  const Eigen::MatrixXd &R);
21 
22  static Eigen::MatrixXd
23  infiniteHorizon(const systems::StateSpace<> &sys,
24  const Eigen::MatrixXd &Q,
25  const Eigen::MatrixXd &R);
26 
27  static Eigen::MatrixXd
28  finiteHorizon(const Eigen::MatrixXd &A,
29  const Eigen::MatrixXd &B,
30  const Eigen::MatrixXd &Q,
31  const Eigen::MatrixXd &R,
32  unsigned int N = 5);
33 
34  static Eigen::MatrixXd
35  finiteHorizon(const systems::StateSpace<> &sys,
36  const Eigen::MatrixXd &Q,
37  const Eigen::MatrixXd &R,
38  unsigned int N = 5);
39  };
40  }
41 }
42 
43 #endif //LODESTAR_DISCRETELQR_HPP
ls
Main Lodestar code.
Definition: BilinearTransformation.hpp:12
ls::systems::StateSpace
Definition: StateSpace.hpp:15
ls::control::DiscreteLQR
Definition: DiscreteLQR.hpp:14