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