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

H2 Polytopic State Feedback. More...

#include <h2_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 = H2StateFeedback< Model >
 
using QMat = typename VertexFeedback::QMat
 
using YMat = typename VertexFeedback::YMat
 
using KMat = typename VertexFeedback::KMat
 
using ZMat = typename VertexFeedback::ZMat
 
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 H2 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 OutputDim = VertexFeedback::OutputDim
 
static constexpr std::size_t QDim = VertexFeedback::QDim
 
static constexpr std::size_t YDim = VertexFeedback::YDim
 
static constexpr std::size_t ZDim = VertexFeedback::ZDim
 
static constexpr std::size_t DecVarDim = VertexFeedback::DecVarDim
 

Detailed Description

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

H2 Polytopic State Feedback.

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

across every plant vertex and intersects each vertex H2 certificate: Q : controllability Gramian Y : lifted feedback product, Y = K Q Z : shared H2 epigraph block

Definition at line 27 of file h2_polytopic_state_feedback.hpp.

Member Typedef Documentation

◆ DecVarSpace

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

Definition at line 45 of file h2_polytopic_state_feedback.hpp.

◆ KMat

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

Definition at line 43 of file h2_polytopic_state_feedback.hpp.

◆ Model

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

extracting alias and types

Definition at line 29 of file h2_polytopic_state_feedback.hpp.

◆ Polytope

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

Definition at line 46 of file h2_polytopic_state_feedback.hpp.

◆ QMat

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

Definition at line 41 of file h2_polytopic_state_feedback.hpp.

◆ T

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

Definition at line 30 of file h2_polytopic_state_feedback.hpp.

◆ VertexFeedback

template<ContinuousPlantModelLike Plant, std::size_t N>
using control::H2PolytopicStateFeedback< Plant, N >::VertexFeedback = H2StateFeedback<Model>

Definition at line 31 of file h2_polytopic_state_feedback.hpp.

◆ YMat

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

Definition at line 42 of file h2_polytopic_state_feedback.hpp.

◆ ZMat

template<ContinuousPlantModelLike Plant, std::size_t N>
using control::H2PolytopicStateFeedback< Plant, N >::ZMat = typename VertexFeedback::ZMat

Definition at line 44 of file h2_polytopic_state_feedback.hpp.

Member Function Documentation

◆ apply()

template<ContinuousPlantModelLike Plant, std::size_t N>
template<convex::AtomLike DecVar>
constexpr auto control::H2PolytopicStateFeedback< 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
H2 LMIs

Definition at line 73 of file h2_polytopic_state_feedback.hpp.

References control::is_continuous_v.

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

◆ K()

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

K (feedback gain)

Parameters
Q(Controllability Gramian)
Y(Lifted convex object)
Returns
K

Definition at line 115 of file h2_polytopic_state_feedback.hpp.

References control::is_continuous_v.

◆ objective()

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

objective

Parameters
Z_hat(Dec Var)
Returns
Tr(Z)

Definition at line 103 of file h2_polytopic_state_feedback.hpp.

References control::is_continuous_v.

◆ operator()()

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

operator overload to form H2 polytopic state feedback

Parameters
poly(Polytope of plant models)
Z_hat(Dec var)
margin(PDness)
Returns
H2 LMIs

Definition at line 58 of file h2_polytopic_state_feedback.hpp.

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

Member Data Documentation

◆ DecVarDim

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

Definition at line 39 of file h2_polytopic_state_feedback.hpp.

◆ InputDim

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

Definition at line 34 of file h2_polytopic_state_feedback.hpp.

◆ OutputDim

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

Definition at line 35 of file h2_polytopic_state_feedback.hpp.

◆ QDim

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

Definition at line 36 of file h2_polytopic_state_feedback.hpp.

◆ StateDim

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

Definition at line 33 of file h2_polytopic_state_feedback.hpp.

◆ YDim

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

Definition at line 37 of file h2_polytopic_state_feedback.hpp.

◆ ZDim

template<ContinuousPlantModelLike Plant, std::size_t N>
constexpr std::size_t control::H2PolytopicStateFeedback< Plant, N >::ZDim = VertexFeedback::ZDim
staticconstexpr

Definition at line 38 of file h2_polytopic_state_feedback.hpp.


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