fastcat 0.13.15
C++ EtherCAT Device Command & Control Library
Loading...
Searching...
No Matches
pid.h
Go to the documentation of this file.
1#ifndef FASTCAT_PID_H_
2#define FASTCAT_PID_H_
3
4// Include related header (for cc files)
5
6// Include c then c++ libraries
7
8// Include external then project includes
9#include "fastcat/device_base.h"
10
11namespace fastcat
12{
13class Pid : public DeviceBase
14{
15 public:
16 Pid();
17 bool ConfigFromYaml(const YAML::Node& node) override;
18 bool Read() override;
19 bool Write(DeviceCmd& cmd) override;
20 void Fault() override;
21
22 protected:
23 double kp_ = 0.0;
24 double ki_ = 0.0;
25 double kd_ = 0.0;
26 double windup_limit_ = 0.0;
27
28 PidActivateCmd pid_activate_cmd_ = {0};
29 double activation_time_ = 0.0;
30
31 double error_ = 0.0;
32 double prev_error_ = 0.0;
33 double integral_error_ = 0.0;
35};
36
37} // namespace fastcat
38
39#endif
Definition device_base.h:20
Definition pid.h:14
bool Read() override
Definition pid.cc:52
double error_
Definition pid.h:31
double kd_
Definition pid.h:25
double windup_limit_
Definition pid.h:26
double kp_
Definition pid.h:23
bool Write(DeviceCmd &cmd) override
Definition pid.cc:110
double integral_error_
Definition pid.h:33
bool ConfigFromYaml(const YAML::Node &node) override
Definition pid.cc:18
void Fault() override
Definition pid.cc:130
double ki_
Definition pid.h:24
double activation_time_
Definition pid.h:29
Pid()
Definition pid.cc:12
uint8_t persistence_counter_
Definition pid.h:34
double prev_error_
Definition pid.h:32
PidActivateCmd pid_activate_cmd_
Definition pid.h:28
Definition device_base.h:18