N K
/
GaNtroller
a fork of priustroller
Fork of priustroller_current by
util/transforms.cpp
- Committer:
- nki
- Date:
- 2015-03-14
- Revision:
- 27:846c08fb3697
- Parent:
- 14:1cc975207995
- Child:
- 33:e7b132029bae
File content as of revision 27:846c08fb3697:
#include "includes.h" #include "transforms.h" #include "fastmath.h" void Transforms::Clarke(float a, float b, float *alpha, float *beta) { *alpha = a; *beta = (a + 2.0f * b)/sqrt(3.0f); } void Transforms::InverseClarke(float alpha, float beta, float *a, float *b) { *a = alpha; *b = -0.5 * alpha + sqrt(3.0f) / 2.0f * beta; } void Transforms::Parke(float beta, float alpha, float theta, float *d, float *q) { //reversed alpha and beta order to make d and q ~=constant. //I did this because alpha was found to be sinusoidal and beta was found to be cosinusoidal. the equation has to take the form sin^2 + cos^2, not sin*cos + sin*cos. float cos = FastCos(theta); float sin = FastSin(theta); *d = alpha * cos + beta * sin; *q = -alpha * sin + beta * cos; } void Transforms::InverseParke(float d, float q, float theta, float *alpha, float *beta) { float cos = FastCos(theta); float sin = FastSin(theta); *alpha = cos * d - sin * q; *beta = sin * d + cos * q; }