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

H2 Polytopic State Observer. More...

#include <h2_polytopic_state_observer.hpp>

Public Types

using Model = linalg::remove_cvref_t< Plant >
 extracting alias and types
 
using T = plant_type_t< Model >
 
using VertexObserver = H2StateObserver< Model >
 
using QMat = typename VertexObserver::QMat
 
using WMat = typename VertexObserver::WMat
 
using LMat = typename VertexObserver::LMat
 
using ZMat = typename VertexObserver::ZMat
 
using DecVarSpace = typename VertexObserver::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 observer
 
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 L (const QMat &Q, const WMat &W) const
 L (observer gain)
 

Static Public Attributes

static constexpr std::size_t StateDim = VertexObserver::StateDim
 
static constexpr std::size_t ExogenousDim = VertexObserver::ExogenousDim
 
static constexpr std::size_t MeasurementDim = VertexObserver::MeasurementDim
 
static constexpr std::size_t PerformanceDim = VertexObserver::PerformanceDim
 
static constexpr std::size_t QDim = VertexObserver::QDim
 
static constexpr std::size_t WDim = VertexObserver::WDim
 
static constexpr std::size_t ZDim = VertexObserver::ZDim
 
static constexpr std::size_t DecVarDim = VertexObserver::DecVarDim
 

Detailed Description

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

H2 Polytopic State Observer.

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

across every plant vertex and intersects each vertex H2 certificate: Q : observability Gramian W : lifted observer product, W = Q L Z : shared H2 epigraph block

Definition at line 27 of file h2_polytopic_state_observer.hpp.

Member Typedef Documentation

◆ DecVarSpace

template<ContinuousPlantModelLike Plant, std::size_t N>
using control::H2PolytopicStateObserver< Plant, N >::DecVarSpace = typename VertexObserver::DecVarSpace

Definition at line 46 of file h2_polytopic_state_observer.hpp.

◆ LMat

template<ContinuousPlantModelLike Plant, std::size_t N>
using control::H2PolytopicStateObserver< Plant, N >::LMat = typename VertexObserver::LMat

Definition at line 44 of file h2_polytopic_state_observer.hpp.

◆ Model

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

extracting alias and types

Definition at line 29 of file h2_polytopic_state_observer.hpp.

◆ Polytope

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

Definition at line 47 of file h2_polytopic_state_observer.hpp.

◆ QMat

template<ContinuousPlantModelLike Plant, std::size_t N>
using control::H2PolytopicStateObserver< Plant, N >::QMat = typename VertexObserver::QMat

Definition at line 42 of file h2_polytopic_state_observer.hpp.

◆ T

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

Definition at line 30 of file h2_polytopic_state_observer.hpp.

◆ VertexObserver

template<ContinuousPlantModelLike Plant, std::size_t N>
using control::H2PolytopicStateObserver< Plant, N >::VertexObserver = H2StateObserver<Model>

Definition at line 31 of file h2_polytopic_state_observer.hpp.

◆ WMat

template<ContinuousPlantModelLike Plant, std::size_t N>
using control::H2PolytopicStateObserver< Plant, N >::WMat = typename VertexObserver::WMat

Definition at line 43 of file h2_polytopic_state_observer.hpp.

◆ ZMat

template<ContinuousPlantModelLike Plant, std::size_t N>
using control::H2PolytopicStateObserver< Plant, N >::ZMat = typename VertexObserver::ZMat

Definition at line 45 of file h2_polytopic_state_observer.hpp.

Member Function Documentation

◆ apply()

template<ContinuousPlantModelLike Plant, std::size_t N>
template<convex::AtomLike DecVar>
constexpr auto control::H2PolytopicStateObserver< 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(for PD)
Returns
LMIs

Definition at line 74 of file h2_polytopic_state_observer.hpp.

References control::is_continuous_v.

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

◆ L()

template<ContinuousPlantModelLike Plant, std::size_t N>
constexpr auto control::H2PolytopicStateObserver< Plant, N >::L ( const QMat &  Q,
const WMat &  W 
) const
inlineconstexpr

L (observer gain)

Parameters
Q(Observability Gramian)
W(Lifted convex object)
Returns
L

Definition at line 116 of file h2_polytopic_state_observer.hpp.

References control::is_continuous_v.

◆ objective()

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

objective

Parameters
Z_hat(dec var)
Returns
Tr(Z)

Definition at line 104 of file h2_polytopic_state_observer.hpp.

References control::is_continuous_v.

◆ operator()()

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

operator overload to form H2 polytopic state observer

Parameters
poly(Polytope of plant models)
Z_hat(dec var)
margin(for PD)
Returns
H2 LMIs (intersected)

Definition at line 59 of file h2_polytopic_state_observer.hpp.

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

Member Data Documentation

◆ DecVarDim

template<ContinuousPlantModelLike Plant, std::size_t N>
constexpr std::size_t control::H2PolytopicStateObserver< Plant, N >::DecVarDim = VertexObserver::DecVarDim
staticconstexpr

Definition at line 40 of file h2_polytopic_state_observer.hpp.

◆ ExogenousDim

template<ContinuousPlantModelLike Plant, std::size_t N>
constexpr std::size_t control::H2PolytopicStateObserver< Plant, N >::ExogenousDim = VertexObserver::ExogenousDim
staticconstexpr

Definition at line 34 of file h2_polytopic_state_observer.hpp.

◆ MeasurementDim

template<ContinuousPlantModelLike Plant, std::size_t N>
constexpr std::size_t control::H2PolytopicStateObserver< Plant, N >::MeasurementDim = VertexObserver::MeasurementDim
staticconstexpr

Definition at line 35 of file h2_polytopic_state_observer.hpp.

◆ PerformanceDim

template<ContinuousPlantModelLike Plant, std::size_t N>
constexpr std::size_t control::H2PolytopicStateObserver< Plant, N >::PerformanceDim = VertexObserver::PerformanceDim
staticconstexpr

Definition at line 36 of file h2_polytopic_state_observer.hpp.

◆ QDim

template<ContinuousPlantModelLike Plant, std::size_t N>
constexpr std::size_t control::H2PolytopicStateObserver< Plant, N >::QDim = VertexObserver::QDim
staticconstexpr

Definition at line 37 of file h2_polytopic_state_observer.hpp.

◆ StateDim

template<ContinuousPlantModelLike Plant, std::size_t N>
constexpr std::size_t control::H2PolytopicStateObserver< Plant, N >::StateDim = VertexObserver::StateDim
staticconstexpr

Definition at line 33 of file h2_polytopic_state_observer.hpp.

◆ WDim

template<ContinuousPlantModelLike Plant, std::size_t N>
constexpr std::size_t control::H2PolytopicStateObserver< Plant, N >::WDim = VertexObserver::WDim
staticconstexpr

Definition at line 38 of file h2_polytopic_state_observer.hpp.

◆ ZDim

template<ContinuousPlantModelLike Plant, std::size_t N>
constexpr std::size_t control::H2PolytopicStateObserver< Plant, N >::ZDim = VertexObserver::ZDim
staticconstexpr

Definition at line 39 of file h2_polytopic_state_observer.hpp.


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