Common
common packages for kyubic
 
Loading...
Searching...
No Matches
p_pid.hpp
Go to the documentation of this file.
1
10#ifndef _P_PID_HPP
11#define _P_PID_HPP
12
13#include <memory>
14
15#include "pid.hpp"
16
21namespace pid_controller
22{
23
29{
30 double k;
31 double lo;
32 double hi;
34};
35
40{
41private:
42 double k, lo, hi;
43 PositionPIDParameter ppid_param;
44
45 std::shared_ptr<PositionPID> slave_pid_;
46
47 double master_out = 0.0;
48
49public:
54 explicit PositionP_PID(const PositionP_PIDParameter & param_);
55
65 double update(
66 double current_slave, double current_master, double target_master, double last_saturated);
67
72 double get_master_out();
73
78 void set_param_offset(double offset);
79
84 void reset();
85};
86
92{
93 double k;
94 double lo;
95 double hi;
97};
98
103{
104private:
105 double k, lo, hi;
106 VelocityPIDParameter vpid_param;
107
108 std::shared_ptr<VelocityPID> slave_pid_;
109
110 double master_out = 0.0;
111
112public:
117 explicit VelocityP_PID(const VelocityP_PIDParameter & param_);
118
127 double update(double current_slave, double current_master, double target_master);
128
133 void reset();
134
139 void set_param_offset(double offset);
140
145 double get_master_out();
146
151 std::array<double, 3> get_slave_each_term();
152
157 double get_dt();
158};
159
160} // namespace pid_controller
161
162#endif // !_P_PID_HPP
Position Form P-PID Controller class.
Definition: p_pid.hpp:40
void reset()
Reset integral term.
Definition: p_pid.cpp:36
double get_master_out()
Get calculated master output.
Definition: p_pid.cpp:32
void set_param_offset(double offset)
Set offset parameter.
Definition: p_pid.cpp:34
double update(double current_slave, double current_master, double target_master, double last_saturated)
Update PID cycle.
Definition: p_pid.cpp:21
Velocity Form P-PID Controller class.
Definition: p_pid.hpp:103
double update(double current_slave, double current_master, double target_master)
Update PID cycle.
Definition: p_pid.cpp:44
void reset()
Reset previous slave output.
Definition: p_pid.cpp:62
double get_dt()
Get dt.
Definition: p_pid.cpp:60
void set_param_offset(double offset)
Set offset parameter.
Definition: p_pid.cpp:54
std::array< double, 3 > get_slave_each_term()
Get slave each term.
Definition: p_pid.cpp:58
double get_master_out()
Get calculated master output.
Definition: p_pid.cpp:56
For PID controller.
PID Controller library.
Hyperparameter for PositionPID.
Definition: pid.hpp:28
Hyperparameter for PositionP_PID.
Definition: p_pid.hpp:29
double hi
Master minimum value.
Definition: p_pid.hpp:32
double lo
Master propotional gain.
Definition: p_pid.hpp:31
PositionPIDParameter ppid_param
Master maximum value.
Definition: p_pid.hpp:33
double k
Definition: p_pid.hpp:30
Hyperparameter for VelocityPID.
Definition: pid.hpp:96
double k
Definition: p_pid.hpp:93
double lo
Master propotional gain.
Definition: p_pid.hpp:94
VelocityPIDParameter vpid_param
Master maximum value.
Definition: p_pid.hpp:96
double hi
Master minimum value.
Definition: p_pid.hpp:95