akreon-control
Optimal and robust control and state estimation in C++26.
Loading...
Searching...
No Matches
control::HinfPolytopicStateFeedback< Plant, N > Struct Template Reference

Hinf Polytopic State Feedback. More...

#include <hinf_polytopic_state_feedback.hpp>

Public Types

using Model = linalg::remove_cvref_t< Plant >
 extracting alias and types
 
using T = plant_type_t< Model >
 
using VertexFeedback = HinfStateFeedback< Model >
 
using QMat = typename VertexFeedback::QMat
 
using YMat = typename VertexFeedback::YMat
 
using KMat = typename VertexFeedback::KMat
 
using DecVarSpace = typename VertexFeedback::DecVarSpace
 
using Polytope = linalg::Vector< Plant, N >
 

Public Member Functions

template<convex::AtomLike DecVar>
constexpr auto operator() (const Polytope &poly, const DecVar &Z_hat, T margin=1e-6) const
 operator overload to form Hinf polytopic state feedback
 
template<convex::AtomLike DecVar>
constexpr auto apply (const Polytope &poly, const DecVar &Z_hat, T margin=1e-6) const
 apply
 
template<convex::AtomLike DecVar>
constexpr auto objective (const DecVar &Z_hat) const
 objective
 
constexpr auto K (const QMat &Q, const YMat &Y) const
 K (feedback gain)
 

Static Public Attributes

static constexpr std::size_t StateDim = VertexFeedback::StateDim
 
static constexpr std::size_t InputDim = VertexFeedback::InputDim
 
static constexpr std::size_t ExogenousDim = VertexFeedback::ExogenousDim
 
static constexpr std::size_t OutputDim = VertexFeedback::OutputDim
 
static constexpr std::size_t QDim = VertexFeedback::QDim
 
static constexpr std::size_t YDim = VertexFeedback::YDim
 
static constexpr std::size_t GammaDim = VertexFeedback::GammaDim
 
static constexpr std::size_t DecVarDim = VertexFeedback::DecVarDim
 

Detailed Description

template<ContinuousPlantModelLike Plant, std::size_t N>
struct control::HinfPolytopicStateFeedback< Plant, N >

Hinf Polytopic State Feedback.

Uses a common Hinf state-feedback decision variable z = [svec(Q); vec(Y); gamma]

across every plant vertex and intersects each vertex Hinf certificate: Q : inverse BRL Lyapunov variable Y : lifted feedback product, Y = K Q gamma : shared induced L2-gain bound

Definition at line 27 of file hinf_polytopic_state_feedback.hpp.

Member Typedef Documentation

◆ DecVarSpace

template<ContinuousPlantModelLike Plant, std::size_t N>
using control::HinfPolytopicStateFeedback< Plant, N >::DecVarSpace = typename VertexFeedback::DecVarSpace

Definition at line 45 of file hinf_polytopic_state_feedback.hpp.

◆ KMat

template<ContinuousPlantModelLike Plant, std::size_t N>
using control::HinfPolytopicStateFeedback< Plant, N >::KMat = typename VertexFeedback::KMat

Definition at line 44 of file hinf_polytopic_state_feedback.hpp.

◆ Model

template<ContinuousPlantModelLike Plant, std::size_t N>
using control::HinfPolytopicStateFeedback< Plant, N >::Model = linalg::remove_cvref_t<Plant>

extracting alias and types

Definition at line 29 of file hinf_polytopic_state_feedback.hpp.

◆ Polytope

template<ContinuousPlantModelLike Plant, std::size_t N>
using control::HinfPolytopicStateFeedback< Plant, N >::Polytope = linalg::Vector<Plant, N>

Definition at line 46 of file hinf_polytopic_state_feedback.hpp.

◆ QMat

template<ContinuousPlantModelLike Plant, std::size_t N>
using control::HinfPolytopicStateFeedback< Plant, N >::QMat = typename VertexFeedback::QMat

Definition at line 42 of file hinf_polytopic_state_feedback.hpp.

◆ T

template<ContinuousPlantModelLike Plant, std::size_t N>
using control::HinfPolytopicStateFeedback< Plant, N >::T = plant_type_t<Model>

Definition at line 30 of file hinf_polytopic_state_feedback.hpp.

◆ VertexFeedback

template<ContinuousPlantModelLike Plant, std::size_t N>
using control::HinfPolytopicStateFeedback< Plant, N >::VertexFeedback = HinfStateFeedback<Model>

Definition at line 31 of file hinf_polytopic_state_feedback.hpp.

◆ YMat

template<ContinuousPlantModelLike Plant, std::size_t N>
using control::HinfPolytopicStateFeedback< Plant, N >::YMat = typename VertexFeedback::YMat

Definition at line 43 of file hinf_polytopic_state_feedback.hpp.

Member Function Documentation

◆ apply()

template<ContinuousPlantModelLike Plant, std::size_t N>
template<convex::AtomLike DecVar>
constexpr auto control::HinfPolytopicStateFeedback< Plant, N >::apply ( const Polytope &  poly,
const DecVar &  Z_hat,
T  margin = 1e-6 
) const
inlineconstexpr

apply

Parameters
poly(Polytope of plant models)
Z_hat(dec var)
margin(PDness)
Returns
Hinf LMIs

Definition at line 73 of file hinf_polytopic_state_feedback.hpp.

References control::is_continuous_v.

Referenced by control::HinfPolytopicStateFeedback< Plant, N >::operator()().

◆ K()

template<ContinuousPlantModelLike Plant, std::size_t N>
constexpr auto control::HinfPolytopicStateFeedback< Plant, N >::K ( const QMat &  Q,
const YMat &  Y 
) const
inlineconstexpr

K (feedback gain)

Parameters
Q(inverse BRL Lyapunov variable)
Y(Lifted convex object)
Returns
K

Definition at line 115 of file hinf_polytopic_state_feedback.hpp.

References control::is_continuous_v.

◆ objective()

template<ContinuousPlantModelLike Plant, std::size_t N>
template<convex::AtomLike DecVar>
constexpr auto control::HinfPolytopicStateFeedback< Plant, N >::objective ( const DecVar &  Z_hat) const
inlineconstexpr

objective

Parameters
Z_hat(dec var)
Returns
gamma

Definition at line 103 of file hinf_polytopic_state_feedback.hpp.

References control::is_continuous_v.

◆ operator()()

template<ContinuousPlantModelLike Plant, std::size_t N>
template<convex::AtomLike DecVar>
constexpr auto control::HinfPolytopicStateFeedback< Plant, N >::operator() ( const Polytope &  poly,
const DecVar &  Z_hat,
T  margin = 1e-6 
) const
inlineconstexpr

operator overload to form Hinf polytopic state feedback

Parameters
poly(Polytope of plant models)
Z_hat(dec var)
margin(PDness)
Returns
Hinf LMIs

Definition at line 58 of file hinf_polytopic_state_feedback.hpp.

References control::HinfPolytopicStateFeedback< Plant, N >::apply(), and control::is_continuous_v.

Member Data Documentation

◆ DecVarDim

template<ContinuousPlantModelLike Plant, std::size_t N>
constexpr std::size_t control::HinfPolytopicStateFeedback< Plant, N >::DecVarDim = VertexFeedback::DecVarDim
staticconstexpr

Definition at line 40 of file hinf_polytopic_state_feedback.hpp.

◆ ExogenousDim

template<ContinuousPlantModelLike Plant, std::size_t N>
constexpr std::size_t control::HinfPolytopicStateFeedback< Plant, N >::ExogenousDim = VertexFeedback::ExogenousDim
staticconstexpr

Definition at line 35 of file hinf_polytopic_state_feedback.hpp.

◆ GammaDim

template<ContinuousPlantModelLike Plant, std::size_t N>
constexpr std::size_t control::HinfPolytopicStateFeedback< Plant, N >::GammaDim = VertexFeedback::GammaDim
staticconstexpr

Definition at line 39 of file hinf_polytopic_state_feedback.hpp.

◆ InputDim

template<ContinuousPlantModelLike Plant, std::size_t N>
constexpr std::size_t control::HinfPolytopicStateFeedback< Plant, N >::InputDim = VertexFeedback::InputDim
staticconstexpr

Definition at line 34 of file hinf_polytopic_state_feedback.hpp.

◆ OutputDim

template<ContinuousPlantModelLike Plant, std::size_t N>
constexpr std::size_t control::HinfPolytopicStateFeedback< Plant, N >::OutputDim = VertexFeedback::OutputDim
staticconstexpr

Definition at line 36 of file hinf_polytopic_state_feedback.hpp.

◆ QDim

template<ContinuousPlantModelLike Plant, std::size_t N>
constexpr std::size_t control::HinfPolytopicStateFeedback< Plant, N >::QDim = VertexFeedback::QDim
staticconstexpr

Definition at line 37 of file hinf_polytopic_state_feedback.hpp.

◆ StateDim

template<ContinuousPlantModelLike Plant, std::size_t N>
constexpr std::size_t control::HinfPolytopicStateFeedback< Plant, N >::StateDim = VertexFeedback::StateDim
staticconstexpr

Definition at line 33 of file hinf_polytopic_state_feedback.hpp.

◆ YDim

template<ContinuousPlantModelLike Plant, std::size_t N>
constexpr std::size_t control::HinfPolytopicStateFeedback< Plant, N >::YDim = VertexFeedback::YDim
staticconstexpr

Definition at line 38 of file hinf_polytopic_state_feedback.hpp.


The documentation for this struct was generated from the following file: