Bayley Wang
/
foc-ed_in_the_bot_compact
robot
DQMapper/DQMapper.h@160:6948bb7bcabd, 2017-07-01 (annotated)
- Committer:
- bwang
- Date:
- Sat Jul 01 21:16:33 2017 +0000
- Revision:
- 160:6948bb7bcabd
- Parent:
- 124:e70ca81676fc
- Child:
- 171:3f1d1792757c
added AutoMapper, AutoThrottleMapper classes for automated stall testing
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
bwang | 42:030e0ec4eac5 | 1 | #ifndef __DQ_MAPPER_H |
bwang | 42:030e0ec4eac5 | 2 | #define __DQ_MAPPER_H |
bwang | 42:030e0ec4eac5 | 3 | |
bwang | 42:030e0ec4eac5 | 4 | class DQMapper { |
bwang | 42:030e0ec4eac5 | 5 | public: |
bwang | 42:030e0ec4eac5 | 6 | virtual void map(float torque_percent, float w, float *d, float *q) = 0; |
bwang | 42:030e0ec4eac5 | 7 | }; |
bwang | 42:030e0ec4eac5 | 8 | |
bwang | 42:030e0ec4eac5 | 9 | class QOnlyMapper : public DQMapper { |
bwang | 42:030e0ec4eac5 | 10 | public: |
bwang | 42:030e0ec4eac5 | 11 | QOnlyMapper(float kt, float tmax) {_kt = kt; _tmax = tmax;} |
bwang | 42:030e0ec4eac5 | 12 | virtual void map(float torque_percent, float w, float *d, float *q) {*d = 0; *q = torque_percent * _tmax / _kt;} |
bwang | 42:030e0ec4eac5 | 13 | private: |
bwang | 42:030e0ec4eac5 | 14 | float _kt; |
bwang | 42:030e0ec4eac5 | 15 | float _tmax; |
bwang | 42:030e0ec4eac5 | 16 | }; |
bwang | 42:030e0ec4eac5 | 17 | |
bwang | 44:3fd6a43b91f0 | 18 | class LinearNoFWMapper : public DQMapper { |
bwang | 44:3fd6a43b91f0 | 19 | public: |
bwang | 44:3fd6a43b91f0 | 20 | LinearNoFWMapper(float kt, float tmax, float lambda) {_kt = kt; _tmax = tmax; _lambda = lambda;} |
bwang | 44:3fd6a43b91f0 | 21 | virtual void map(float torque_percent, float w, float *d, float *q); |
bwang | 44:3fd6a43b91f0 | 22 | private: |
bwang | 44:3fd6a43b91f0 | 23 | float _kt; |
bwang | 44:3fd6a43b91f0 | 24 | float _tmax; |
bwang | 45:cf8ad81fb0f0 | 25 | float _lambda; |
bwang | 44:3fd6a43b91f0 | 26 | }; |
bwang | 44:3fd6a43b91f0 | 27 | |
bwang | 42:030e0ec4eac5 | 28 | class LutMapper : public DQMapper { |
bwang | 42:030e0ec4eac5 | 29 | public: |
bwang | 42:030e0ec4eac5 | 30 | virtual void map(float torque_percent, float w, float *d, float *q); |
bwang | 42:030e0ec4eac5 | 31 | }; |
bwang | 42:030e0ec4eac5 | 32 | |
bwang | 98:1051c4103900 | 33 | class AngleMapper : public DQMapper { |
bwang | 98:1051c4103900 | 34 | public: |
bwang | 98:1051c4103900 | 35 | AngleMapper(float theta, float is) {_theta = theta; _is = is;} |
bwang | 98:1051c4103900 | 36 | virtual void map(float torque_percent, float w, float *d, float *q); |
bwang | 98:1051c4103900 | 37 | private: |
bwang | 98:1051c4103900 | 38 | float _is; |
bwang | 98:1051c4103900 | 39 | float _theta; |
bwang | 98:1051c4103900 | 40 | }; |
bwang | 98:1051c4103900 | 41 | |
bwang | 124:e70ca81676fc | 42 | class DirectMapper : public DQMapper { |
bwang | 124:e70ca81676fc | 43 | public: |
bwang | 124:e70ca81676fc | 44 | DirectMapper(float id, float iq) {_id = id; _iq = iq;} |
bwang | 124:e70ca81676fc | 45 | virtual void map(float torque_percent, float w, float *d, float *q); |
bwang | 124:e70ca81676fc | 46 | private: |
bwang | 124:e70ca81676fc | 47 | float _id, _iq; |
bwang | 124:e70ca81676fc | 48 | }; |
bwang | 124:e70ca81676fc | 49 | |
bwang | 124:e70ca81676fc | 50 | class SwapMapper : public DQMapper { |
bwang | 124:e70ca81676fc | 51 | public: |
bwang | 124:e70ca81676fc | 52 | SwapMapper(float id, float iq) {_id = id; _iq = iq;} |
bwang | 124:e70ca81676fc | 53 | virtual void map(float torque_percent, float w, float *d, float *q); |
bwang | 124:e70ca81676fc | 54 | private: |
bwang | 124:e70ca81676fc | 55 | float _id, _iq; |
bwang | 124:e70ca81676fc | 56 | }; |
bwang | 124:e70ca81676fc | 57 | |
bwang | 160:6948bb7bcabd | 58 | class AutoMapper : public DQMapper { |
bwang | 160:6948bb7bcabd | 59 | public: |
bwang | 160:6948bb7bcabd | 60 | AutoMapper(float phase_low, float phase_high, float steps, float is) |
bwang | 160:6948bb7bcabd | 61 | {_phase_low = phase_low; _phase_high = phase_high; _steps = steps; _is = is; _theta = _phase_low;} |
bwang | 160:6948bb7bcabd | 62 | virtual void map(float torque_percent, float w, float *d, float *q); |
bwang | 160:6948bb7bcabd | 63 | private: |
bwang | 160:6948bb7bcabd | 64 | float _phase_low, _phase_high, _steps, _is; |
bwang | 160:6948bb7bcabd | 65 | float _theta; |
bwang | 160:6948bb7bcabd | 66 | }; |
bwang | 160:6948bb7bcabd | 67 | |
bwang | 42:030e0ec4eac5 | 68 | #endif |