lib/ActuatorSim.hh
00001 // アクチュエータシミュレータクラス
00002 // 2011/02/16 Yuki YOKOKURA
00003 //
00004 // アクチュエータを模擬するシミュレータ
00005 // 電流参照値と負荷外力から位置応答を計算する
00006 //
00007 // Copyright (C) 2011 Yuki YOKOKURA
00008 // This program is free software;
00009 // you can redistribute it and/or modify it under the terms of the GNU General Public License
00010 // as published by the Free Software Foundation; either version 3 of the License, or any later version.
00011 // This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
00012 // without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
00013 // See the GNU General Public License for more details <http://www.gnu.org/licenses/>.
00014 // Besides, you can negotiate about other options of licenses instead of GPL.
00015 // If you would like to get other licenses, please contact us<yuki@katsura.sd.keio.ac.jp>.
00016 
00017 #ifndef ACTUATORSIM
00018 #define ACTUATORSIM
00019 
00020 namespace ARCS {        // ARCS名前空間
00021         class ActuatorSim {
00022                 private:
00023                         double M;               // [kg] or [kgm^2]      慣性
00024                         double Kf;              // [N/A] or [Nm/A]      推力 or トルク定数
00025                         double Ts;              // [s]                          制御周期
00026                         double uZ1;             // 状態変数1
00027                         double uZ2;             // 状態変数2
00028                         double yZ1;             // 状態変数3
00029                         double yZ2;             // 状態変数4
00030         
00031                 public:
00032                         ActuatorSim(double Mass, double TrqConst, double SmplTime);
00033                         // コンストラクタ
00034                         // Mass;[kg] or [kgm^2] 慣性,TrqConst;[N/A] or [Nm/A] トルク定数,SmplTime;[s] 制御周期
00035                         ~ActuatorSim();                                                                 // デストラクタ
00036                         double GetPosition(double Iref, double Fload);  // 位置応答の取得 Iref;[A] 電流参照値,Fload;[N] or [Nm] 負荷外力
00037                         void SetInertia(double Mass);                                   // 慣性の再設定 Mass;[kg] or [kgm^2] 慣性
00038                         void SetTrqConst(double TrqConst);                              // 推力 or トルク定数の再設定 TrqConst;[N/A] or [Nm/A] 推力 or トルク定数
00039                         void SetSmplTime(double SmplTime);                              // 制御周期の再設定 SmplTime;[s] 制御周期
00040                         void ClearStateVars(void);                                              // すべての状態変数のリセット
00041         };
00042 }
00043 
00044 #endif
00045 
00046 
00047 
 All Classes Files