UniSet 2.32.1
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// --------------------------------------------------------------------------
23namespace 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 PID.h:35
void step(const double &X, const double &Z, const double &Ts)
Definition PID.cc:45
double Y
Definition PID.h:54
double Ti
Definition PID.h:56
double Td
Definition PID.h:57
double Kc
Definition PID.h:55
double vlim
Definition PID.h:59
void recalc()
Definition PID.cc:92
void reset()
Definition PID.cc:74
Definition Calibration.h:27