UniSet  2.7.0
PID.h
1 /*
2  * Copyright (c) 2015 Pavel Vainerman.
3  *
4  * This program is free software: you can redistribute it and/or modify
5  * it under the terms of the GNU Lesser General Public License as
6  * published by the Free Software Foundation, version 2.1.
7  *
8  * This program is distributed in the hope that it will be useful, but
9  * WITHOUT ANY WARRANTY; without even the implied warranty of
10  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11  * Lesser General Lesser Public License for more details.
12  *
13  * You should have received a copy of the GNU Lesser General Public License
14  * along with this program. If not, see <http://www.gnu.org/licenses/>.
15  */
16 // -----------------------------------------------------------------------------
17 #ifndef PID_H_
18 #define PID_H_
19 // -----------------------------------------------------------------------------
20 #include <sstream>
21 #include <iomanip>
22 // --------------------------------------------------------------------------
23 namespace uniset
24 {
25  // -----------------------------------------------------------------------------
34  class PID
35  {
36  public:
37  PID();
38  ~PID();
39 
46  void step( const double& X, const double& Z, const double& Ts );
47 
49  void reset();
50 
52  void recalc();
53 
54  double Y;
55  double Kc;
56  double Ti;
57  double Td;
59  double vlim;
62  double d0;
63  double d1;
64  double d2;
65  double sub1;
66  double sub2;
67  double sub;
68  double prevTs;
69 
70  friend std::ostream& operator<<(std::ostream& os, PID& p );
71 
72  friend std::ostream& operator<<(std::ostream& os, PID* p )
73  {
74  return os << (*p);
75  }
76 
77  protected:
78  private:
79  };
80  // --------------------------------------------------------------------------
81 } // end of namespace uniset
82 // -----------------------------------------------------------------------------
83 #endif // PID_H_
84 // -----------------------------------------------------------------------------
Definition: CallbackTimer.h:29
double Y
Definition: PID.h:54
void reset()
Definition: PID.cc:74
double Td
Definition: PID.h:57
Definition: PID.h:34
void step(const double &X, const double &Z, const double &Ts)
Definition: PID.cc:45
double vlim
Definition: PID.h:59
double Ti
Definition: PID.h:56
double Kc
Definition: PID.h:55
void recalc()
Definition: PID.cc:92