robot

Dependencies:   FastPWM3 mbed

Committer:
bwang
Date:
Thu Apr 06 17:33:47 2017 +0000
Revision:
92:a9dac72d8cac
Parent:
70:5e39beeb4a21
Child:
82:5e741c5ffd9f
Child:
120:57b6f3b1356b
--PwmIn now checks lower bounds for sanity and fall without rise; --switched to edge aligned pwm to work around prius module propagation delays

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 42:030e0ec4eac5 9
bwang 42:030e0ec4eac5 10 typedef struct {
bwang 42:030e0ec4eac5 11 FastPWM *a, *b, *c;
bwang 42:030e0ec4eac5 12 DigitalOut *en;
bwang 42:030e0ec4eac5 13 PwmIn *throttle_in;
bwang 42:030e0ec4eac5 14 PositionSensorEncoder *pos;
bwang 42:030e0ec4eac5 15 Serial *pc;
bwang 42:030e0ec4eac5 16 } IOStruct;
bwang 42:030e0ec4eac5 17
bwang 42:030e0ec4eac5 18 typedef struct {
bwang 42:030e0ec4eac5 19 float adval1, adval2, adval3;
bwang 42:030e0ec4eac5 20 float vbus;
bwang 42:030e0ec4eac5 21 float p_mech, last_p_mech, w;
bwang 42:030e0ec4eac5 22 float ia_supp_offset, ib_supp_offset;
bwang 42:030e0ec4eac5 23 } ReadDataStruct;
bwang 42:030e0ec4eac5 24
bwang 42:030e0ec4eac5 25 typedef struct {
bwang 42:030e0ec4eac5 26 float ia, ib, alpha, beta, d, q, vd, vq, valpha, vbeta, p;
bwang 42:030e0ec4eac5 27 } FOCStruct;
bwang 42:030e0ec4eac5 28
bwang 42:030e0ec4eac5 29 typedef struct {
bwang 42:030e0ec4eac5 30 float d_integral, q_integral;
bwang 42:030e0ec4eac5 31 float last_d, last_q;
bwang 42:030e0ec4eac5 32 float d_ref, q_ref;
bwang 42:030e0ec4eac5 33 float d_filtered, q_filtered;
bwang 70:5e39beeb4a21 34 float torque_percent;
bwang 42:030e0ec4eac5 35 } ControlStruct;
bwang 42:030e0ec4eac5 36
bwang 42:030e0ec4eac5 37 #endif