lib/DistObsrv2.hh
00001 // 螟紋ケア繧ェ繝悶じ繝シ繝舌け繝ゥ繧ケ
00002 // 2011/02/09 Yuki YOKOKURA
00003 //
00004 // 2谺。蠖「 螟紋ケア繧ェ繝悶じ繝シ繝�
00005 //
00006 // 隧ウ邏ー縺ッ莉・荳九�ョ隲匁枚繧貞盾辣ァ縺ョ縺薙→縲�
00007 // K. Ohnishi, M. Shibata, and T. Murakami : "Motion Control for Advanced Mechatronics"
00008 // IEEE/ASME Trans. on Mechatronics, Vol. 1, No. 1, Mar. 1996.
00009 //
00010 // Copyright (C) 2011 Yuki YOKOKURA
00011 // This program is free software;
00012 // you can redistribute it and/or modify it under the terms of the GNU General Public License
00013 // as published by the Free Software Foundation; either version 3 of the License, or any later version.
00014 // This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
00015 // without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
00016 // See the GNU General Public License for more details <http://www.gnu.org/licenses/>.
00017 // Besides, you can negotiate about other options of licenses instead of GPL.
00018 // If you would like to get other licenses, please contact us<yuki@katsura.sd.keio.ac.jp>.
00019 
00020 #ifndef DISTOBSRV2
00021 #define DISTOBSRV2
00022 
00023 namespace ARCS {        // ARCS蜷榊燕遨コ髢�
00024         class DistObsrv2 {
00025                 private:
00026                         double k1;              // 蟶ッ蝓溘r豎コ繧√k菫よ焚 k1
00027                         double k2;              // 蟶ッ蝓溘r豎コ繧√k菫よ焚 k2
00028                         double Mn;              // [kg] or [kgm^2]      諷」諤ァ
00029                         double Kfn;             // [N/A] or [Nm/A]      謗ィ蜉� or 繝医Ν繧ッ螳壽焚
00030                         double Ts;              // [s]                          蛻カ蠕。蜻ィ譛�
00031                         double z1Z1;    //                                      迥カ諷句、画焚1
00032                         double z2Z1;    //                                      迥カ諷句、画焚2
00033                         double IrefZ1;  // [A]                          迥カ諷句、画焚 髮サ豬∝盾辣ァ蛟、
00034                         double XresZ1;  // [m] or [rad]         迥カ諷句、画焚 菴咲スョ蠢懃ュ泌�、
00035                 
00036                 public:
00037                         DistObsrv2(double gdis, double Mass, double TrqConst, double SmplTime);
00038                         // 繧ウ繝ウ繧ケ繝医Λ繧ッ繧ソ
00039                         // gdis�シ媼rad/s] 蟶ッ蝓滂シ勲ass�シ媼kg] or [kgm^2] 諷」諤ァ
00040                         // TrqConst�シ媼N/A] or [Nm/A] 繝医Ν繧ッ螳壽焚�シ郡mplTime�シ媼s] 蛻カ蠕。蜻ィ譛�
00041                         ~DistObsrv2();                                                          // 繝�繧ケ繝医Λ繧ッ繧ソ
00042                         double GetForce(double Iref, double Xres);      // 謗ィ螳壼、紋ケア縺ョ蜿門セ� Iref�シ媼A] 髮サ豬∝盾辣ァ蛟、�シ傾res�シ媼m] or [rad] 菴咲スョ蠢懃ュ泌�、
00043                         void SetBandwidth(double gdis);                         // 蟶ッ蝓溘�ョ蜀崎ィュ螳� gdis�シ媼rad/s] 蟶ッ蝓�
00044                         void SetInertia(double Mass);                           // 諷」諤ァ縺ョ蜀崎ィュ螳� Mass�シ媼kg] or [kgm^2] 諷」諤ァ
00045                         void SetTrqConst(double TrqConst);                      // 謗ィ蜉� or 繝医Ν繧ッ螳壽焚縺ョ蜀崎ィュ螳� TrqConst�シ媼N/A] or [Nm/A] 謗ィ蜉� or 繝医Ν繧ッ螳壽焚
00046                         void SetSmplTime(double SmplTime);                      // 蛻カ蠕。蜻ィ譛溘�ョ蜀崎ィュ螳� SmplTime�シ媼s] 蛻カ蠕。蜻ィ譛�
00047                         void ClearStateVars(void);                                      // 縺吶∋縺ヲ縺ョ迥カ諷句、画焚縺ョ繝ェ繧サ繝�繝�
00048         };
00049 }
00050 
00051 #endif
00052 
00053 
00054 
 All Classes Files