robot

Dependencies:   FastPWM3 mbed

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?

UserRevisionLine numberNew 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