Basic_Frame_TypeC_2023_Omni
Loading...
Searching...
No Matches
control_types.hpp
1#ifndef __CONTROL_TYPES_HPP
2#define __CONTROL_TYPES_HPP
3
4#include "uarm_types.hpp"
5
6/* =========================================================================
7 * FEED FORWARD TYPES
8 * ====================================================================== */
14typedef struct {
15 float ff_gain;
16 float last_input;
17 float output;
19
20/* =========================================================================
21 * PID TYPES
22 * ====================================================================== */
23
29typedef struct {
30 float kp;
31 float ki;
32 float kd;
33 float cur_val;
34 float target_val;
35
36 float err;
37 float last_err;
38 float llast_err;
39
40 float pout;
41 float iout;
42 float dout;
43 float max_out;
44 float max_err;
45 float max_i_out;
46 float total_out;
47} PID_t;
48
57typedef struct {
58 float k_p;
59 float k_i;
60 float k_d;
61 float beta;
62 float yeta;
63
65 float setpoint;
66
67 float p_error;
68 float i_error;
69 float d_error;
71
72 float p_out;
73 float i_out;
74 float d_out;
75
76 float max_out;
77 float min_out;
78
80 float total_out;
81} PID2_t;
82
88typedef struct {
89 float k_p;
90 float k_i;
91 float k_d;
92 float beta;
93 float gamma;
94
96 float setpoint;
97
98 float p_error;
99 float i_error;
100 float d_error;
102
103 float p_out;
104 float i_out;
105 float d_out;
106
107 float max_out;
108 float min_out;
109
111 float total_out;
112} PID3_t;
113
123typedef struct {
125 float cumsum_dt;
126 uint32_t prescalar;
129
130/* =========================================================================
131 * RAMP TYPES
132 * ====================================================================== */
140typedef struct {
141 float target;
142 float start;
144 float output;
145 float cumsum_dt;
146} Ramp;
147
148#endif
Feed-forward control structure.
Definition control_types.hpp:14
float ff_gain
Definition control_types.hpp:15
float last_input
Definition control_types.hpp:16
float output
Definition control_types.hpp:17
Enhanced PID controller structure with additional parameters.
Definition control_types.hpp:57
float i_error
Definition control_types.hpp:68
float plant_value
Definition control_types.hpp:64
float d_error
Definition control_types.hpp:69
float max_out
Definition control_types.hpp:76
float min_out
Definition control_types.hpp:77
float total_out
Definition control_types.hpp:80
float k_i
Definition control_types.hpp:59
float d_out
Definition control_types.hpp:74
float setpoint
Definition control_types.hpp:65
float yeta
Definition control_types.hpp:62
float p_out
Definition control_types.hpp:72
float prev_d_error
Definition control_types.hpp:70
float i_out
Definition control_types.hpp:73
float prev_total_out
Definition control_types.hpp:79
float k_d
Definition control_types.hpp:60
float beta
Definition control_types.hpp:61
float p_error
Definition control_types.hpp:67
float k_p
Definition control_types.hpp:58
Another PID implementation with intent to replace PID2_t.
Definition control_types.hpp:88
float k_p
Definition control_types.hpp:89
float gamma
Definition control_types.hpp:93
float i_out
Definition control_types.hpp:104
float max_out
Definition control_types.hpp:107
float d_out
Definition control_types.hpp:105
float beta
Definition control_types.hpp:92
float k_d
Definition control_types.hpp:91
float p_out
Definition control_types.hpp:103
float k_i
Definition control_types.hpp:90
float p_error
Definition control_types.hpp:98
float plant_value
Definition control_types.hpp:95
float total_out
Definition control_types.hpp:111
float prev_total_out
Definition control_types.hpp:110
float i_error
Definition control_types.hpp:99
float min_out
Definition control_types.hpp:108
float setpoint
Definition control_types.hpp:96
float d_error
Definition control_types.hpp:100
float prev_d_error
Definition control_types.hpp:101
Basic PID controller structure.
Definition control_types.hpp:29
float dout
Definition control_types.hpp:42
float max_i_out
Definition control_types.hpp:45
float max_err
Definition control_types.hpp:44
float llast_err
Definition control_types.hpp:38
float total_out
Definition control_types.hpp:46
float pout
Definition control_types.hpp:40
float iout
Definition control_types.hpp:41
float kp
Definition control_types.hpp:30
float ki
Definition control_types.hpp:31
float max_out
Definition control_types.hpp:43
float target_val
Definition control_types.hpp:34
float cur_val
Definition control_types.hpp:33
float last_err
Definition control_types.hpp:37
float kd
Definition control_types.hpp:32
float err
Definition control_types.hpp:36
Prescaled PID controller for different frequency control loops.
Definition control_types.hpp:123
uint32_t prescalar_count
Definition control_types.hpp:127
float cumsum_dt
Definition control_types.hpp:125
PID2_t pid
Definition control_types.hpp:124
uint32_t prescalar
Definition control_types.hpp:126
Ramp generator for smooth transitions.
Definition control_types.hpp:140
float max_change
Definition control_types.hpp:143
float start
Definition control_types.hpp:142
float cumsum_dt
Definition control_types.hpp:145
float target
Definition control_types.hpp:141
float output
Definition control_types.hpp:144