Bayley Wang
/
foc-ed_in_the_bot_compact
robot
Transforms/Transforms.cpp@92:a9dac72d8cac, 2017-04-06 (annotated)
- Committer:
- bwang
- Date:
- Thu Apr 06 17:33:47 2017 +0000
- Revision:
- 92:a9dac72d8cac
- Parent:
- 42:030e0ec4eac5
- Child:
- 192:3152a86cd108
--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?
User | Revision | Line number | New contents of line |
---|---|---|---|
bwang | 42:030e0ec4eac5 | 1 | #include "math.h" |
bwang | 42:030e0ec4eac5 | 2 | |
bwang | 42:030e0ec4eac5 | 3 | #include "Transforms.h" |
bwang | 42:030e0ec4eac5 | 4 | |
bwang | 42:030e0ec4eac5 | 5 | void clarke(float a, float b, float *alpha, float *beta) { |
bwang | 42:030e0ec4eac5 | 6 | *alpha = a; |
bwang | 42:030e0ec4eac5 | 7 | *beta = 1 / sqrtf(3.0f) * a + 2 / sqrtf(3.0f) * b; |
bwang | 42:030e0ec4eac5 | 8 | } |
bwang | 42:030e0ec4eac5 | 9 | |
bwang | 42:030e0ec4eac5 | 10 | void park(float alpha, float beta, float sin_p, float cos_p, float *d, float *q) { |
bwang | 42:030e0ec4eac5 | 11 | *d = alpha * cos_p + beta * sin_p; |
bwang | 42:030e0ec4eac5 | 12 | *q = -alpha * sin_p + beta * cos_p; |
bwang | 42:030e0ec4eac5 | 13 | } |
bwang | 42:030e0ec4eac5 | 14 | |
bwang | 42:030e0ec4eac5 | 15 | void invpark(float d, float q, float sin_p, float cos_p, float *alpha, float *beta) { |
bwang | 42:030e0ec4eac5 | 16 | *alpha = d * cos_p - q * sin_p; |
bwang | 42:030e0ec4eac5 | 17 | *beta = d * sin_p + q * cos_p; |
bwang | 42:030e0ec4eac5 | 18 | } |
bwang | 42:030e0ec4eac5 | 19 | |
bwang | 42:030e0ec4eac5 | 20 | void invclarke(float alpha, float beta, float *a, float *b) { |
bwang | 42:030e0ec4eac5 | 21 | *a = alpha; |
bwang | 42:030e0ec4eac5 | 22 | *b = -0.5f * alpha + sqrtf(3) / 2.0f * beta; |
bwang | 42:030e0ec4eac5 | 23 | } |