Controlpp
Loading...
Searching...
No Matches
LQRController.hpp File Reference
#include <Eigen/Dense>
#include <controlpp/math.hpp>
#include <controlpp/ContinuousStateSpace.hpp>

Go to the source code of this file.

Namespaces

namespace  controlpp
 The main namespace for the Control++ library.
 

Functions

template<class T , int NStates, int NInputs>
Eigen::Matrix< T, NInputs, NStates > controlpp::lqr_continuous (const Eigen::Matrix< T, NStates, NStates > &A, const Eigen::Matrix< T, NStates, NInputs > &B, const Eigen::Matrix< T, NStates, NStates > &Q=Eigen::Matrix< T, NStates, NStates >::Identity(), const Eigen::Matrix< T, NInputs, NInputs > &R=Eigen::Matrix< T, NInputs, NInputs >::Identity())
 Synthesizes the continuous LQR gain from plant matrices (A, B) and weights (Q, R)
 
template<class T , int NStates, int NInputs>
Eigen::Matrix< T, NInputs, NStates > controlpp::lqr_discrete (const Eigen::Matrix< T, NStates, NStates > &A, const Eigen::Matrix< T, NStates, NInputs > &B, const Eigen::Matrix< T, NStates, NStates > &Q=Eigen::Matrix< T, NStates, NStates >::Identity(), const Eigen::Matrix< T, NInputs, NInputs > &R=Eigen::Matrix< T, NInputs, NInputs >::Identity())
 Synthesizes the continuous LQR gain from plant matrices (A, B) and weights (Q, R)
 
template<class T , int NStates, int NInputs, int NOutputs>
Eigen::Matrix< T, NInputs, NStates > controlpp::lqr (const DiscreteStateSpace< T, NStates, NInputs, NOutputs > Gss, const Eigen::Matrix< T, NStates, NStates > &Q, const Eigen::Matrix< T, NInputs, NInputs > &R)
 Computes a discrete LQR controller from a discrete state space plant model.
 
template<class T , int NStates, int NInputs, int NOutputs, std::convertible_to< T > U1 = T, std::convertible_to< T > U2 = T>
Eigen::Matrix< T, NInputs, NStates > controlpp::lqr (const DiscreteStateSpace< T, NStates, NInputs, NOutputs > Gss, const U1 &r=static_cast< U1 >(1), const U2 &eps=static_cast< U2 >(0.001))
 Construcs a discrete LQR controller with automatic weights Q and R.
 
template<class T , int NStates, int NInputs, int NOutputs, std::convertible_to< T > U1 = T, std::convertible_to< T > U2 = T>
Eigen::Matrix< T, NInputs, NStates > controlpp::lqr_bryson (const DiscreteStateSpace< T, NStates, NInputs, NOutputs > Gss, const Eigen::Vector< T, NOutputs > &x_max, const Eigen::Vector< T, NInputs > &u_max)
 Construcs a discrete LQR controller with weights trying to limit states and controller outputs.
 
template<class T , int NStates, int NInputs, int NOutputs>
Eigen::Matrix< T, NInputs, NOutputs > controlpp::lqr_feed_forward (const DiscreteStateSpace< T, NStates, NInputs, NOutputs > Gss, Eigen::Matrix< T, NInputs, NStates > LQR)