MicroMouse Control Module  v1.3.2-2-ge2c6882
クラス | 公開メンバ関数 | 限定公開変数類 | 全メンバ一覧
ctrl::FeedbackController< T > クラステンプレート

1次フィードフォワード補償付きフィードバック制御器クラス [詳解]

#include <feedback_controller.h>

ctrl::FeedbackController< T > 連携図
Collaboration graph
[凡例]

クラス

struct  Breakdown
 制御入力の成分内訳。 [詳解]
 
struct  Gain
 フィードバック成分に使用するPIDゲイン 使用しない成分は、0に設定すること。 [詳解]
 
struct  Model
 フィードフォワード成分に使用する1次モデル [詳解]
 

公開メンバ関数

 FeedbackController (const Model &M, const Gain &G)
 コンストラクタ [詳解]
 
void reset ()
 積分項をリセットする関数 [詳解]
 
const T & update (const T &r, const T &y, const T &dr, const T &dy, const float Ts)
 状態を更新して、次の制御入力を得る関数 [詳解]
 
const T & getErrorIntegral () const
 エラー積分値を取得 [詳解]
 
const ModelgetModel () const
 フィードフォワードモデルを取得する関数 [詳解]
 
void setModel (const Model &model)
 フィードフォワードモデルを設定する関数 [詳解]
 
const GaingetGain () const
 フィードバックゲインを取得する関数 [詳解]
 
void setGain (const Gain &gain)
 フィードバックゲインを設定する関数 [詳解]
 
const BreakdowngetBreakdown () const
 制御入力の内訳を取得する関数 [詳解]
 

限定公開変数類

Model M
 フィードフォワードモデル [詳解]
 
Gain G
 フィードバックゲイン [詳解]
 
Breakdown bd
 制御入力の計算内訳 [詳解]
 
e_int
 追従誤差の積分値 [詳解]
 

詳解

template<typename T>
class ctrl::FeedbackController< T >

1次フィードフォワード補償付きフィードバック制御器クラス

テンプレート引数
T状態変数の型

構築子と解体子

◆ FeedbackController()

template<typename T >
ctrl::FeedbackController< T >::FeedbackController ( const Model M,
const Gain G 
)
inline

コンストラクタ

引数
[in]Mフィードフォワードモデル
[in]Gフィードバックゲイン
64 : M(M), G(G) { reset(); }
Model M
フィードフォワードモデル
Definition: feedback_controller.h:124
Gain G
フィードバックゲイン
Definition: feedback_controller.h:125
void reset()
積分項をリセットする関数
Definition: feedback_controller.h:68
呼び出し関係図:

関数詳解

◆ getBreakdown()

template<typename T >
const Breakdown& ctrl::FeedbackController< T >::getBreakdown ( ) const
inline

制御入力の内訳を取得する関数

121 { return bd; }
Breakdown bd
制御入力の計算内訳
Definition: feedback_controller.h:126

◆ getErrorIntegral()

template<typename T >
const T& ctrl::FeedbackController< T >::getErrorIntegral ( ) const
inline

エラー積分値を取得

101 { return e_int; }
T e_int
追従誤差の積分値
Definition: feedback_controller.h:127

◆ getGain()

template<typename T >
const Gain& ctrl::FeedbackController< T >::getGain ( ) const
inline

フィードバックゲインを取得する関数

113 { return G; }

◆ getModel()

template<typename T >
const Model& ctrl::FeedbackController< T >::getModel ( ) const
inline

フィードフォワードモデルを取得する関数

105 { return M; }

◆ reset()

template<typename T >
void ctrl::FeedbackController< T >::reset ( )
inline

積分項をリセットする関数

68  {
69  e_int = T();
70  bd = Breakdown();
71  }

◆ setGain()

template<typename T >
void ctrl::FeedbackController< T >::setGain ( const Gain gain)
inline

フィードバックゲインを設定する関数

117 { G = gain; }

◆ setModel()

template<typename T >
void ctrl::FeedbackController< T >::setModel ( const Model model)
inline

フィードフォワードモデルを設定する関数

109 { M = model; }

◆ update()

template<typename T >
const T& ctrl::FeedbackController< T >::update ( const T &  r,
const T &  y,
const T &  dr,
const T &  dy,
const float  Ts 
)
inline

状態を更新して、次の制御入力を得る関数

引数
[in]r目標値
[in]y観測値
[in]dr目標値の微分
[in]dy観測値の微分
[in]Ts離散時間周期
戻り値
次ステップでの制御入力
83  {
84  /* feedforward signal */
85  bd.ff = (M.T1 * dr + r) / M.K1;
86  /* feedback signal */
87  bd.fbp = G.Kp * (r - y);
88  bd.fbi = G.Ki * e_int;
89  bd.fbd = G.Kd * (dr - dy);
90  bd.fb = bd.fbp + bd.fbi + bd.fbd;
91  /* calculate control input value */
92  bd.u = bd.ff + bd.fb;
93  /* integrate error */
94  e_int += (r - y) * Ts;
95  /* complete */
96  return bd.u;
97  }
T fbi
フィードバック成分のうち積分成分
Definition: feedback_controller.h:52
T ff
フィードフォワード成分
Definition: feedback_controller.h:49
T fb
フィードバック成分
Definition: feedback_controller.h:50
T u
成分の総和
Definition: feedback_controller.h:54
T fbd
フィードバック成分のうち微分成分
Definition: feedback_controller.h:53
T fbp
フィードバック成分のうち比例成分
Definition: feedback_controller.h:51
T Kp
フィードバック比例ゲイン
Definition: feedback_controller.h:40
T Ki
フィードバック積分ゲイン
Definition: feedback_controller.h:41
T Kd
フィードバック微分ゲイン
Definition: feedback_controller.h:42
T K1
1次モデルの定常ゲイン (使用しない場合は 1 とすること)
Definition: feedback_controller.h:29
T T1
1次モデルの時定数 (使用しない場合は 0 とすること)
Definition: feedback_controller.h:30

メンバ詳解

◆ bd

template<typename T >
Breakdown ctrl::FeedbackController< T >::bd
protected

制御入力の計算内訳

◆ e_int

template<typename T >
T ctrl::FeedbackController< T >::e_int
protected

追従誤差の積分値

◆ G

template<typename T >
Gain ctrl::FeedbackController< T >::G
protected

フィードバックゲイン

◆ M

template<typename T >
Model ctrl::FeedbackController< T >::M
protected

フィードフォワードモデル


このクラス詳解は次のファイルから抽出されました: