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

PolytopicStateFeedback. More...

#include <polytopic_state_feedback.hpp>

Public Types

using Model = linalg::remove_cvref_t< Plant >
 
using T = plant_type_t< Model >
 
using VertexFeedback = StateFeedback< Model >
 
using PMat = typename VertexFeedback::PMat
 
using YMat = typename VertexFeedback::YMat
 
using KMat = typename VertexFeedback::KMat
 
using FMat = typename VertexFeedback::FMat
 
using ZSpace = typename VertexFeedback::ZSpace
 
using Fs = typename VertexFeedback::Fs
 
using Polytope = linalg::Vector< Plant, N >
 

Public Member Functions

template<convex::AtomLike ZVar>
constexpr auto operator() (const Polytope &poly, const ZVar &Z, T margin=1e-6) const
 operator overload (form polytopic state feedback)
 
template<convex::AtomLike ZVar>
constexpr auto apply (const Polytope &poly, const ZVar &Z, T margin=1e-6) const
 apply (polytopic state feedback)
 
constexpr auto K (const PMat &P, const YMat &Y) const
 K.
 

Static Public Attributes

static constexpr std::size_t StateDim = VertexFeedback::StateDim
 
static constexpr std::size_t InputDim = VertexFeedback::InputDim
 
static constexpr std::size_t PDim = VertexFeedback::PDim
 
static constexpr std::size_t YDim = VertexFeedback::YDim
 
static constexpr std::size_t ZDim = VertexFeedback::ZDim
 

Detailed Description

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

PolytopicStateFeedback.

Polytopic State Feedback (PLDI) Given the LTV system xdot = A(t) x + B_u(t) u

We seek a static state feedback controller u = K x

s.t. the CL system is quadratically stable.

There exists S > 0, P = S^{-1}, and Y = K P so P A_i^T + A_i P + B_{ui} Y + Y^T B_{ui}^T < 0

This set is represented over the merged decision variable z = [ svec(P); vec(Y) ].

Definition at line 36 of file polytopic_state_feedback.hpp.

Member Typedef Documentation

◆ FMat

template<ContinuousPlantModelLike Plant, std::size_t N>
using control::PolytopicStateFeedback< Plant, N >::FMat = typename VertexFeedback::FMat

Definition at line 51 of file polytopic_state_feedback.hpp.

◆ Fs

template<ContinuousPlantModelLike Plant, std::size_t N>
using control::PolytopicStateFeedback< Plant, N >::Fs = typename VertexFeedback::Fs

Definition at line 53 of file polytopic_state_feedback.hpp.

◆ KMat

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

Definition at line 50 of file polytopic_state_feedback.hpp.

◆ Model

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

Definition at line 37 of file polytopic_state_feedback.hpp.

◆ PMat

template<ContinuousPlantModelLike Plant, std::size_t N>
using control::PolytopicStateFeedback< Plant, N >::PMat = typename VertexFeedback::PMat

Definition at line 48 of file polytopic_state_feedback.hpp.

◆ Polytope

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

Definition at line 54 of file polytopic_state_feedback.hpp.

◆ T

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

Definition at line 39 of file polytopic_state_feedback.hpp.

◆ VertexFeedback

template<ContinuousPlantModelLike Plant, std::size_t N>
using control::PolytopicStateFeedback< Plant, N >::VertexFeedback = StateFeedback<Model>

Definition at line 40 of file polytopic_state_feedback.hpp.

◆ YMat

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

Definition at line 49 of file polytopic_state_feedback.hpp.

◆ ZSpace

template<ContinuousPlantModelLike Plant, std::size_t N>
using control::PolytopicStateFeedback< Plant, N >::ZSpace = typename VertexFeedback::ZSpace

Definition at line 52 of file polytopic_state_feedback.hpp.

Member Function Documentation

◆ apply()

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

apply (polytopic state feedback)

Parameters
poly(Polytope)
Z(dec var [svec(P); vec(Y)])
Returns
PLDI as intersection of LMI

Definition at line 79 of file polytopic_state_feedback.hpp.

References control::is_continuous_v.

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

◆ K()

template<ContinuousPlantModelLike Plant, std::size_t N>
constexpr auto control::PolytopicStateFeedback< Plant, N >::K ( const PMat &  P,
const YMat &  Y 
) const
inlineconstexpr

K.

K = Y P^{-1}

Parameters
P(symmetric Lyapunov variable)
Y(lifted feedback product Y = KP)
Returns
K

Definition at line 114 of file polytopic_state_feedback.hpp.

References control::is_continuous_v.

◆ operator()()

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

operator overload (form polytopic state feedback)

Parameters
poly(Polytope)
Z(dec var [svec(P); vec(Y)])
Returns
PLDI as intersection of LMI

Definition at line 65 of file polytopic_state_feedback.hpp.

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

Member Data Documentation

◆ InputDim

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

Definition at line 43 of file polytopic_state_feedback.hpp.

◆ PDim

template<ContinuousPlantModelLike Plant, std::size_t N>
constexpr std::size_t control::PolytopicStateFeedback< Plant, N >::PDim = VertexFeedback::PDim
staticconstexpr

Definition at line 44 of file polytopic_state_feedback.hpp.

◆ StateDim

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

Definition at line 42 of file polytopic_state_feedback.hpp.

◆ YDim

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

Definition at line 45 of file polytopic_state_feedback.hpp.

◆ ZDim

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

Definition at line 46 of file polytopic_state_feedback.hpp.


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