robot

Dependencies:   FastPWM3 mbed

Committer:
bwang
Date:
Wed Mar 09 06:44:51 2016 +0000
Revision:
0:bac9c3a3a6ca
open loop, working; motor draws ~400mA at 30V; pre-center aligned PWM

Who changed what in which revision?

UserRevisionLine numberNew contents of line
bwang 0:bac9c3a3a6ca 1 #include "mbed.h"
bwang 0:bac9c3a3a6ca 2 #include "Transforms.h"
bwang 0:bac9c3a3a6ca 3
bwang 0:bac9c3a3a6ca 4 void Transforms::Park(float alpha, float beta, float theta, float *d, float *q){
bwang 0:bac9c3a3a6ca 5 float cosine = cos(theta);
bwang 0:bac9c3a3a6ca 6 float sine = sin(theta);
bwang 0:bac9c3a3a6ca 7 *d = alpha * cosine - beta * sine;
bwang 0:bac9c3a3a6ca 8 *q = -beta * cosine - alpha * sine;
bwang 0:bac9c3a3a6ca 9 }
bwang 0:bac9c3a3a6ca 10
bwang 0:bac9c3a3a6ca 11 void Transforms::InvPark(float d, float q, float theta, float *alpha, float *beta){
bwang 0:bac9c3a3a6ca 12 float cosine = cos(theta);
bwang 0:bac9c3a3a6ca 13 float sine = sin(theta);
bwang 0:bac9c3a3a6ca 14 *alpha = d * cosine - q * sine;
bwang 0:bac9c3a3a6ca 15 *beta = q * cosine + d * sine;
bwang 0:bac9c3a3a6ca 16 }
bwang 0:bac9c3a3a6ca 17
bwang 0:bac9c3a3a6ca 18 void Transforms::Clarke(float a, float b, float *alpha, float *beta){
bwang 0:bac9c3a3a6ca 19 *alpha = a;
bwang 0:bac9c3a3a6ca 20 *beta = sqrtf(3.0f) / 3.0f * (a + 2.0f * b);
bwang 0:bac9c3a3a6ca 21 }
bwang 0:bac9c3a3a6ca 22
bwang 0:bac9c3a3a6ca 23 void Transforms::InvClarke(float alpha, float beta, float *a, float *b, float *c){
bwang 0:bac9c3a3a6ca 24 *a = alpha;
bwang 0:bac9c3a3a6ca 25 *b = 0.5f * (-alpha + sqrtf(3.0f) * beta);
bwang 0:bac9c3a3a6ca 26 *c = 0.5f * (-alpha - sqrtf(3.0f) * beta);
bwang 0:bac9c3a3a6ca 27 }
bwang 0:bac9c3a3a6ca 28