RIT VEXU Core API
Toggle main menu visibility
Loading...
Searching...
No Matches
feedforward.h
1
#pragma once
2
3
#include "core/utils/math_util.h"
4
#include "core/utils/moving_average.h"
5
#include "vex.h"
6
#include <math.h>
7
#include <vector>
8
29
class
FeedForward
{
30
public
:
39
typedef
struct
{
40
double
kS
;
41
double
kV
;
43
double
kA
;
45
double
kG
;
47
}
ff_config_t
;
48
53
FeedForward
(
ff_config_t
&cfg) : cfg(cfg) {}
54
65
double
calculate
(
double
v,
double
a,
double
pid_ref = 0.0) {
66
double
ks_sign = 0;
67
if
(v != 0)
68
ks_sign = sign(v);
69
else
if
(pid_ref != 0)
70
ks_sign = sign(pid_ref);
71
72
return
(cfg.kS * ks_sign) + (cfg.kV * v) + (cfg.kA * a) + cfg.kG;
73
}
74
75
private
:
76
ff_config_t &cfg;
77
};
78
86
FeedForward::ff_config_t
tune_feedforward(vex::motor_group &motor,
double
pct,
double
duration);
FeedForward::calculate
double calculate(double v, double a, double pid_ref=0.0)
Perform the feedforward calculation.
Definition
feedforward.h:65
FeedForward::FeedForward
FeedForward(ff_config_t &cfg)
Definition
feedforward.h:53
FeedForward::ff_config_t
Definition
feedforward.h:39
FeedForward::ff_config_t::kG
double kG
Definition
feedforward.h:45
FeedForward::ff_config_t::kA
double kA
Definition
feedforward.h:43
FeedForward::ff_config_t::kS
double kS
Definition
feedforward.h:40
FeedForward::ff_config_t::kV
double kV
Definition
feedforward.h:41
include
core
utils
controls
feedforward.h
Generated by
1.17.0