RIT VEXU Core API
Toggle main menu visibility
Loading...
Searching...
No Matches
pid.h
1
#pragma once
2
3
#include "core/utils/controls/feedback_base.h"
4
#include "vex.h"
5
#include <cmath>
6
7
using namespace
vex;
8
23
class
PID
:
public
Feedback
{
24
public
:
29
enum
ERROR_TYPE
{
30
LINEAR,
31
ANGULAR
// assumes degrees
32
};
33
43
struct
pid_config_t
{
44
double
p
;
45
double
i
;
46
double
d
;
47
double
deadband
;
48
double
on_target_time
;
50
ERROR_TYPE
error_method
;
52
};
53
58
PID
(
pid_config_t
&
config
);
59
72
void
init
(
double
start_pt,
double
set_pt)
override
;
73
81
double
update
(
double
sensor_val)
override
;
82
92
double
update
(
double
sensor_val,
double
v_setpt);
93
98
double
get_sensor_val
()
const
;
99
105
double
get
()
override
;
106
115
void
set_limits
(
double
lower,
double
upper)
override
;
116
121
bool
is_on_target
()
override
;
122
126
void
reset
();
127
133
double
get_error
();
134
140
double
get_output
();
141
146
double
get_target
()
const
;
147
152
void
set_target
(
double
target);
153
154
pid_config_t
&
config
;
156
157
private
:
158
double
last_error = 0;
159
double
accum_error = 0;
160
161
double
last_time = 0;
162
double
on_target_last_time = 0;
163
164
double
lower_limit = 0;
165
double
upper_limit = 0;
166
167
double
target = 0;
169
double
target_vel = 0;
171
double
sensor_val = 0;
173
double
out = 0;
176
177
bool
is_checking_on_target =
false
;
178
179
timer pid_timer;
182
};
Feedback
Definition
feedback_base.h:10
PID::ERROR_TYPE
ERROR_TYPE
Definition
pid.h:29
PID::set_target
void set_target(double target)
Definition
pid.cpp:114
PID::get_output
double get_output()
Definition
pid.cpp:107
PID::PID
PID(pid_config_t &config)
Definition
pid.cpp:7
PID::update
double update(double sensor_val) override
Definition
pid.cpp:23
PID::config
pid_config_t & config
Definition
pid.h:154
PID::get
double get() override
Definition
pid.cpp:92
PID::set_limits
void set_limits(double lower, double upper) override
Definition
pid.cpp:120
PID::get_sensor_val
double get_sensor_val() const
gets the sensor value that we were last updated with
Definition
pid.cpp:73
PID::is_on_target
bool is_on_target() override
Definition
pid.cpp:129
PID::init
void init(double start_pt, double set_pt) override
Definition
pid.cpp:9
PID::get_error
double get_error()
Definition
pid.cpp:97
PID::get_target
double get_target() const
Definition
pid.cpp:109
PID::reset
void reset()
Definition
pid.cpp:78
PID::pid_config_t
Definition
pid.h:43
PID::pid_config_t::on_target_time
double on_target_time
Definition
pid.h:48
PID::pid_config_t::d
double d
derivitave coeffecient d * derivative(error)
Definition
pid.h:46
PID::pid_config_t::p
double p
proportional coeffecient p * error()
Definition
pid.h:44
PID::pid_config_t::i
double i
integral coeffecient i * integral(error)
Definition
pid.h:45
PID::pid_config_t::deadband
double deadband
at what threshold are we close enough to be finished
Definition
pid.h:47
PID::pid_config_t::error_method
ERROR_TYPE error_method
Definition
pid.h:50
include
core
utils
controls
pid.h
Generated by
1.17.0