Bayley Wang
/
foc-ed_in_the_bot_compact
robot
BREMS/BREMSStructs.h@179:935f9d78d936, 2018-02-08 (annotated)
- Committer:
- bwang
- Date:
- Thu Feb 08 02:42:16 2018 +0000
- Revision:
- 179:935f9d78d936
- Parent:
- 154:0a22dcf91577
02/07/2017 21:39 - updated BREMS*.h/cpp to include PreferenceWriter functionality, updated CommandProcessor to match current config variables
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
bwang | 42:030e0ec4eac5 | 1 | #ifndef __BREMS_STRUCTS_H |
bwang | 42:030e0ec4eac5 | 2 | #define __BREMS_STRUCTS_H |
bwang | 42:030e0ec4eac5 | 3 | |
bwang | 42:030e0ec4eac5 | 4 | #include "mbed.h" |
bwang | 42:030e0ec4eac5 | 5 | |
bwang | 42:030e0ec4eac5 | 6 | #include "FastPWM.h" |
bwang | 42:030e0ec4eac5 | 7 | #include "PwmIn.h" |
bwang | 42:030e0ec4eac5 | 8 | #include "PositionSensor.h" |
bwang | 179:935f9d78d936 | 9 | #include "PreferenceWriter.h" |
bwang | 147:c1b2379b8874 | 10 | #include "Filter.h" |
bwang | 42:030e0ec4eac5 | 11 | |
bwang | 42:030e0ec4eac5 | 12 | typedef struct { |
bwang | 42:030e0ec4eac5 | 13 | FastPWM *a, *b, *c; |
bwang | 42:030e0ec4eac5 | 14 | DigitalOut *en; |
bwang | 42:030e0ec4eac5 | 15 | PwmIn *throttle_in; |
bwang | 42:030e0ec4eac5 | 16 | PositionSensorEncoder *pos; |
bwang | 42:030e0ec4eac5 | 17 | Serial *pc; |
bwang | 179:935f9d78d936 | 18 | PreferenceWriter *pref; |
bwang | 42:030e0ec4eac5 | 19 | } IOStruct; |
bwang | 42:030e0ec4eac5 | 20 | |
bwang | 42:030e0ec4eac5 | 21 | typedef struct { |
bwang | 42:030e0ec4eac5 | 22 | float adval1, adval2, adval3; |
bwang | 42:030e0ec4eac5 | 23 | float vbus; |
bwang | 42:030e0ec4eac5 | 24 | float p_mech, last_p_mech, w; |
bwang | 42:030e0ec4eac5 | 25 | float ia_supp_offset, ib_supp_offset; |
bwang | 179:935f9d78d936 | 26 | bool err_throttle_disabled, err_pos_invalid; |
bwang | 179:935f9d78d936 | 27 | bool err_not_driving; |
bwang | 42:030e0ec4eac5 | 28 | } ReadDataStruct; |
bwang | 42:030e0ec4eac5 | 29 | |
bwang | 42:030e0ec4eac5 | 30 | typedef struct { |
bwang | 42:030e0ec4eac5 | 31 | float ia, ib, alpha, beta, d, q, vd, vq, valpha, vbeta, p; |
bwang | 131:031df63c7dbc | 32 | float vd_decouple, vq_decouple; |
bwang | 42:030e0ec4eac5 | 33 | } FOCStruct; |
bwang | 42:030e0ec4eac5 | 34 | |
bwang | 42:030e0ec4eac5 | 35 | typedef struct { |
bwang | 42:030e0ec4eac5 | 36 | float d_integral, q_integral; |
bwang | 42:030e0ec4eac5 | 37 | float last_d, last_q; |
bwang | 42:030e0ec4eac5 | 38 | float d_ref, q_ref; |
bwang | 42:030e0ec4eac5 | 39 | float d_filtered, q_filtered; |
bwang | 179:935f9d78d936 | 40 | float user_cmd; |
bwang | 70:5e39beeb4a21 | 41 | float torque_percent; |
bwang | 154:0a22dcf91577 | 42 | MedianFilter *throttle_filter, *velocity_filter; |
bwang | 42:030e0ec4eac5 | 43 | } ControlStruct; |
bwang | 42:030e0ec4eac5 | 44 | |
bwang | 42:030e0ec4eac5 | 45 | #endif |