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

Hinf Polytopic State Observer. More...

#include <hinf_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 = HinfStateObserver< Model >
 
using QMat = typename VertexObserver::QMat
 
using WMat = typename VertexObserver::WMat
 
using LMat = typename VertexObserver::LMat
 
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 Hinf 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 GammaDim = VertexObserver::GammaDim
 
static constexpr std::size_t DecVarDim = VertexObserver::DecVarDim
 

Detailed Description

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

Hinf Polytopic State Observer.

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

across every plant vertex and intersects each vertex Hinf certificate: Q : observability Lyapunov variable W : lifted observer product, W = Q L gamma : shared induced L2-gain bound

Definition at line 27 of file hinf_polytopic_state_observer.hpp.

Member Typedef Documentation

◆ DecVarSpace

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

Definition at line 45 of file hinf_polytopic_state_observer.hpp.

◆ LMat

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

Definition at line 44 of file hinf_polytopic_state_observer.hpp.

◆ Model

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

extracting alias and types

Definition at line 29 of file hinf_polytopic_state_observer.hpp.

◆ Polytope

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

Definition at line 46 of file hinf_polytopic_state_observer.hpp.

◆ QMat

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

Definition at line 42 of file hinf_polytopic_state_observer.hpp.

◆ T

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

Definition at line 30 of file hinf_polytopic_state_observer.hpp.

◆ VertexObserver

template<ContinuousPlantModelLike Plant, std::size_t N>
using control::HinfPolytopicStateObserver< Plant, N >::VertexObserver = HinfStateObserver<Model>

Definition at line 31 of file hinf_polytopic_state_observer.hpp.

◆ WMat

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

Definition at line 43 of file hinf_polytopic_state_observer.hpp.

Member Function Documentation

◆ apply()

template<ContinuousPlantModelLike Plant, std::size_t N>
template<convex::AtomLike DecVar>
constexpr auto control::HinfPolytopicStateObserver< 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 73 of file hinf_polytopic_state_observer.hpp.

References control::is_continuous_v.

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

◆ L()

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

L (observer gain)

Parameters
Q(Observability Lyapunov variable)
W(Lifted convex object)
Returns
L

Definition at line 115 of file hinf_polytopic_state_observer.hpp.

References control::is_continuous_v.

◆ objective()

template<ContinuousPlantModelLike Plant, std::size_t N>
template<convex::AtomLike DecVar>
constexpr auto control::HinfPolytopicStateObserver< 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_observer.hpp.

References control::is_continuous_v.

◆ operator()()

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

operator overload to form Hinf polytopic state observer

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

Definition at line 58 of file hinf_polytopic_state_observer.hpp.

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

Member Data Documentation

◆ DecVarDim

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

Definition at line 40 of file hinf_polytopic_state_observer.hpp.

◆ ExogenousDim

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

Definition at line 34 of file hinf_polytopic_state_observer.hpp.

◆ GammaDim

template<ContinuousPlantModelLike Plant, std::size_t N>
constexpr std::size_t control::HinfPolytopicStateObserver< Plant, N >::GammaDim = VertexObserver::GammaDim
staticconstexpr

Definition at line 39 of file hinf_polytopic_state_observer.hpp.

◆ MeasurementDim

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

Definition at line 35 of file hinf_polytopic_state_observer.hpp.

◆ PerformanceDim

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

Definition at line 36 of file hinf_polytopic_state_observer.hpp.

◆ QDim

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

Definition at line 37 of file hinf_polytopic_state_observer.hpp.

◆ StateDim

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

Definition at line 33 of file hinf_polytopic_state_observer.hpp.

◆ WDim

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

Definition at line 38 of file hinf_polytopic_state_observer.hpp.


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