1
6
7
8
9
10
11
12
13
14
19
20
21
25
26
27
31
32
38
39
40
46
47
48
55
56
57
64
65
66
72
/* ... */
#include <math.h>
#define GLOBAL_IQ 18
#include "IQmathLib.h"
typedef struct foc_uvw_coord {
_iq u;
_iq v;
_iq w;
}{ ... } foc_uvw_coord_t;
typedef struct foc_ab_coord {
_iq alpha;
_iq beta;
}{ ... } foc_ab_coord_t;
typedef struct foc_dq_coord {
_iq d;
_iq q;
}{ ... } foc_dq_coord_t;
/* ... */
void foc_clarke_transform(const foc_uvw_coord_t *v_uvw, foc_ab_coord_t *v_ab);
/* ... */
void foc_inverse_clarke_transform(const foc_ab_coord_t *v_ab, foc_uvw_coord_t *v_uvw);
/* ... */
void foc_park_transform(_iq theta_rad, const foc_ab_coord_t *v_ab, foc_dq_coord_t *v_dq);
/* ... */
void foc_inverse_park_transform(_iq theta_rad, const foc_dq_coord_t *v_dq, foc_ab_coord_t *v_ab);
/* ... */
void foc_svpwm_duty_calculate(const foc_ab_coord_t *v_ab, foc_uvw_coord_t *out_uvw);