robot

Dependencies:   FastPWM3 mbed

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?

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