Bayley Wang
/
foc-ed_in_the_bot_compact
robot
Transforms/Transforms.cpp@155:7c6005933d4c, 2017-05-04 (annotated)
- Committer:
- bwang
- Date:
- Thu May 04 17:35:10 2017 +0000
- Revision:
- 155:7c6005933d4c
- Parent:
- 42:030e0ec4eac5
- Child:
- 192:3152a86cd108
05/04/2017 13:34 - changed logic in PwmIn::handle_fall, which no longer resets timer on invalid edges
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 | } |