Advanced Robot Control System  5.1-REV.51SF170515
I_PDcontroller.hh
[詳解]
1 // I-PD制御器
2 // 2016/06/02 Yuki YOKOKURA
3 //
4 // I-PD制御器
5 //
6 // Copyright (C) 2011-2016 Yuki YOKOKURA
7 // This program is free software;
8 // you can redistribute it and/or modify it under the terms of the GNU General Public License
9 // as published by the Free Software Foundation; either version 3 of the License, or any later version.
10 // This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
11 // without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
12 // See the GNU General Public License for more details <http://www.gnu.org/licenses/>.
13 // In addition, you can negotiate about other options of licenses instead of GPL.
14 // If you would like to get other licenses, please contact us <yokokura(a)vos.nagaokaut.ac.jp>.
15 
16 #ifndef I_PDCONTROLLER
17 #define I_PDCONTROLLER
18 
19 #include "Matrix.hh"
20 
21 namespace ARCS { // ARCS名前空間
23  public:
24  I_PDcontroller(double Igain, double Pgain, double Dgain, double Bandwidth, double SmplTime); // コンストラクタ
25  ~I_PDcontroller(); // デストラクタ
26  double GetSignal(double ref, double res); // 制御器の出力信号を計算して出力する関数 ref : 指令値, res : 応答値
27  void SetIgain(double Igain); // 積分ゲインを再設定する関数
28  void SetPgain(double Pgain); // 先行比例ゲインを再設定する関数
29  void SetDgain(double Dgain); // 先行微分ゲインを再設定する関数
30  void SetBandwidth(double Bandwidth); // 擬似微分の帯域を再設定する関数
31 
32  private:
33  I_PDcontroller(const I_PDcontroller&); // コピーコンストラクタ使用禁止
34  const I_PDcontroller& operator=(const I_PDcontroller&); // 代入演算子使用禁止
35  double Ki; // 積分ゲイン
36  double Kp; // 先行比例ゲイン
37  double Kd; // 先行微分ゲイン
38  double g; // [rad/s] 擬似微分器の帯域
39  double Ts; // [s] サンプリング周期
40  Matrix Ac; // 連続系A行列
41  Matrix Bc; // 連続系B行列
42  Matrix Ad; // 離散系A行列
43  Matrix Bd; // 離散系B行列
44  Matrix c; // C行列
45  Matrix d; // D行列
46  Matrix u; // 入力ベクトル
47  Matrix x; // 状態ベクトル
48  Matrix x_next; // 次の時刻の状態ベクトル
49  Matrix y; // 出力ベクトル
50  };
51 }
52 
53 #endif
54 
55 
56 
Matrix d
Definition: I_PDcontroller.hh:45
void SetDgain(double Dgain)
Definition: I_PDcontroller.cc:85
void SetBandwidth(double Bandwidth)
Definition: I_PDcontroller.cc:90
~I_PDcontroller()
Definition: I_PDcontroller.cc:50
Matrix Ad
Definition: I_PDcontroller.hh:42
void SetIgain(double Igain)
Definition: I_PDcontroller.cc:75
Definition: Matrix.hh:38
Matrix Ac
Definition: I_PDcontroller.hh:40
Matrix c
Definition: I_PDcontroller.hh:44
double Ki
Definition: I_PDcontroller.hh:35
double Kp
Definition: I_PDcontroller.hh:36
double Ts
Definition: I_PDcontroller.hh:39
void SetPgain(double Pgain)
Definition: I_PDcontroller.cc:80
double GetSignal(double ref, double res)
Definition: I_PDcontroller.cc:55
Definition: ControlFunctions.hh:17
Matrix x_next
Definition: I_PDcontroller.hh:48
I_PDcontroller(double Igain, double Pgain, double Dgain, double Bandwidth, double SmplTime)
Definition: I_PDcontroller.cc:22
double g
Definition: I_PDcontroller.hh:38
Definition: I_PDcontroller.hh:22
const I_PDcontroller & operator=(const I_PDcontroller &)
Matrix Bc
Definition: I_PDcontroller.hh:41
double Kd
Definition: I_PDcontroller.hh:37
Matrix Bd
Definition: I_PDcontroller.hh:43
Matrix y
Definition: I_PDcontroller.hh:49
Matrix x
Definition: I_PDcontroller.hh:47
Matrix u
Definition: I_PDcontroller.hh:46