Controlpp
Loading...
Searching...
No Matches
H2Controller.hpp File Reference
#include <Eigen/Core>
#include <Eigen/Dense>
#include <Eigen/Eigenvalues>
#include <Eigen/Cholesky>
#include <controlpp/math.hpp>
#include <controlpp/ContinuousStateSpace.hpp>

Go to the source code of this file.

Classes

struct  controlpp::ContinuousGeneralisedPlant< T, NStates, NInputs, NPerfOutputs, NMeasOutputs, NDisturbances >
 A continuous generalised plant model. More...
 

Namespaces

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

Functions

template<class T , int NStates, int NInputs, int NPerfOutputs, int NMeasOutputs, int NDisturbances>
ContinuousStateSpace< T, NStates, NMeasOutputs, NInputs > controlpp::continous_h2 (const Eigen::Matrix< T, NStates, NStates > &A, const Eigen::Matrix< T, NStates, NDisturbances > &Bw, const Eigen::Matrix< T, NStates, NInputs > &Bu, const Eigen::Matrix< T, NPerfOutputs, NStates > &Cz, const Eigen::Matrix< T, NPerfOutputs, NInputs > &Duz, const Eigen::Matrix< T, NMeasOutputs, NStates > &Cy, const Eigen::Matrix< T, NMeasOutputs, NDisturbances > &Dwy, const Eigen::Matrix< T, NInputs, NInputs > &R, const Eigen::Matrix< T, NMeasOutputs, NMeasOutputs > &S)
 
template<class T , int NStates, int NInputs, int NPerfOutputs, int NMeasOutputs, int NDisturbances>
requires (NInputs>1 && NMeasOutputs>1)
ContinuousStateSpace< T, NStates, NMeasOutputs, NInputs > controlpp::continous_h2 (const Eigen::Matrix< T, NStates, NStates > &A, const Eigen::Matrix< T, NStates, NDisturbances > &Bw, const Eigen::Matrix< T, NStates, NInputs > &Bu, const Eigen::Matrix< T, NPerfOutputs, NStates > &Cz, const Eigen::Matrix< T, NPerfOutputs, NInputs > &Duz, const Eigen::Matrix< T, NMeasOutputs, NStates > &Cy, const Eigen::Matrix< T, NMeasOutputs, NDisturbances > &Dwy, const Eigen::Vector< T, NInputs > r=Eigen::Vector< T, NInputs >::Zero(), const Eigen::Vector< T, NMeasOutputs > s=Eigen::Vector< T, NMeasOutputs >::Zero())
 An optimal controller for linear time-invariant (LTI) system. It minimizes the H2 norm of the the disturbance input gain to the output.
 
template<class T , int NStates, int NInputs, int NPerfOutputs, int NMeasOutputs, int NDisturbances>
ContinuousStateSpace< T, NStates, NMeasOutputs, NInputs > controlpp::continous_h2 (const Eigen::Matrix< T, NStates, NStates > &A, const Eigen::Matrix< T, NStates, NDisturbances > &Bw, const Eigen::Matrix< T, NStates, NInputs > &Bu, const Eigen::Matrix< T, NPerfOutputs, NStates > &Cz, const Eigen::Matrix< T, NPerfOutputs, NInputs > &Duz, const Eigen::Matrix< T, NMeasOutputs, NStates > &Cy, const Eigen::Matrix< T, NMeasOutputs, NDisturbances > &Dwy, const T &r_scalar=0, const T &s_scalar=0)
 
template<class T , int NStates, int NInputs = 1, int NPerfOutputs = 1, int NMeasOutputs = 1, int NDisturbances = 1>
std::ostream & controlpp::operator<< (std::ostream &stream, const ContinuousGeneralisedPlant< T, NStates, NInputs, NPerfOutputs, NMeasOutputs, NDisturbances > &G)
 
template<class T , int NStates, int NInputs, int NPerfOutputs, int NMeasOutputs, int NDisturbances>
ContinuousStateSpace< T, NStates, NMeasOutputs, NInputs > controlpp::continuous_h2 (const ContinuousGeneralisedPlant< T, NStates, NInputs, NPerfOutputs, NMeasOutputs, NDisturbances > &Gss, const Eigen::Vector< T, NInputs > &control_penalty=Eigen::Vector< T, NInputs >::Zero(), const Eigen::Vector< T, NMeasOutputs > &measurement_noise=Eigen::Vector< T, NMeasOutputs >::Zero())
 Constructs a continuous H2 controller from a continuous state space plant model.
 
template<class T , int NStates, int NInputs, int NPerfOutputs, int NMeasOutputs, int NDisturbances>
ContinuousStateSpace< T, NStates, NMeasOutputs, NInputs > controlpp::continuous_h2 (const ContinuousGeneralisedPlant< T, NStates, NInputs, NPerfOutputs, NMeasOutputs, NDisturbances > &Gss, const T &control_penalty=static_cast< T >(0), const T &measurement_noise=static_cast< T >(0))
 
template<class T , int PNumOrder, int PDenOrder, int MNumOrder, int MDenOrder, int WdNumOrder, int WdDenOrder, int WzNumOrder, int WzDenOrder>
ContinuousStateSpace< T, PDenOrder+MDenOrder+WdDenOrder+WzDenOrder, 1, 1 > controlpp::continous_h2 (const ContinuousTransferFunction< T, PNumOrder, PDenOrder > &P, const ContinuousTransferFunction< T, MNumOrder, MDenOrder > &M, const ContinuousTransferFunction< T, WdNumOrder, WdDenOrder > &Wd, const ContinuousTransferFunction< T, WzNumOrder, WzDenOrder > &Wz, const T &control_penalty, const T &measurement_noise)
 Synthesizes an H2 controller from transfer functions.