コンテンツにスキップ

cpp_robotics::LinearMPC

線形時不変モデルのモデル予測制御クラス

#include <linear_mpc.hpp>

Public Functions

Name
LinearMPC(const Eigen::MatrixXd & Ad, const Eigen::MatrixXd & Bd, const Eigen::MatrixXd & Q, const Eigen::MatrixXd & R, const Eigen::MatrixXd & Qf, const size_t N, std::optional< std::pair< Eigen::VectorXd, Eigen::VectorXd >> u_limit =std::nullopt)
Construct a new Linear MPC object.
std::tuple< bool, Eigen::VectorXd > control(const Eigen::VectorXd & x0, const std::vector< Eigen::VectorXd > & x_ref, bool warm_start =true)
最適入力の計算
std::tuple< bool, Eigen::VectorXd > control(const Eigen::VectorXd & x0, const Eigen::VectorXd & x_ref, bool warm_start =true)
最適入力の計算
QuadProg::Result latest_qp_result() const
Eigen::MatrixXd Ad() const
Eigen::MatrixXd Bd() const
Eigen::MatrixXd Q() const
Eigen::MatrixXd R() const
Eigen::MatrixXd Qf() const
size_t N() const

Public Functions Documentation

function LinearMPC

inline LinearMPC(
    const Eigen::MatrixXd & Ad,
    const Eigen::MatrixXd & Bd,
    const Eigen::MatrixXd & Q,
    const Eigen::MatrixXd & R,
    const Eigen::MatrixXd & Qf,
    const size_t N,
    std::optional< std::pair< Eigen::VectorXd, Eigen::VectorXd >> u_limit =std::nullopt
)

Construct a new Linear MPC object.

Parameters:

  • Ad 状態行列
  • Bd 入力行列
  • Q 状態重み行列
  • R 入力重み行列
  • Qf 最終状態重み行列
  • N ホライゾン長さ
  • u_limit 制御入力範囲

function control

inline std::tuple< bool, Eigen::VectorXd > control(
    const Eigen::VectorXd & x0,
    const std::vector< Eigen::VectorXd > & x_ref,
    bool warm_start =true
)

最適入力の計算

Parameters:

  • x0 状態
  • x_ref 目標値
  • warm_start

Return: std::tuple 最適化の成功/失敗、最適入力

function control

inline std::tuple< bool, Eigen::VectorXd > control(
    const Eigen::VectorXd & x0,
    const Eigen::VectorXd & x_ref,
    bool warm_start =true
)

最適入力の計算

Parameters:

  • x0 状態
  • x_ref 目標値
  • warm_start

Return: std::tuple 最適化の成功/失敗、最適入力

function latest_qp_result

inline QuadProg::Result latest_qp_result() const

function Ad

inline Eigen::MatrixXd Ad() const

function Bd

inline Eigen::MatrixXd Bd() const

function Q

inline Eigen::MatrixXd Q() const

function R

inline Eigen::MatrixXd R() const

function Qf

inline Eigen::MatrixXd Qf() const

function N

inline size_t N() const

Updated on 2024-05-28 at 06:55:39 +0000