Bayley Wang / Mbed 2 deprecated foc-ed_in_the_bot_compact

Dependencies:   FastPWM3 mbed

Committer:
bwang
Date:
Mon Dec 12 14:18:02 2016 +0000
Revision:
40:22aede3d096f
Parent:
Optimize/optimize_constants.h@32:b31423041c4e
switching to table based optimization

Who changed what in which revision?

UserRevisionLine numberNew contents of line
bwang 31:ebe42589ab9d 1 #ifndef __CONFIG_OPTIMIZE
bwang 31:ebe42589ab9d 2 #define __CONFIG_OPTIMIZE
bwang 31:ebe42589ab9d 3
bwang 31:ebe42589ab9d 4 #include "config_motor.h"
bwang 31:ebe42589ab9d 5 #include <math.h>
bwang 31:ebe42589ab9d 6
bwang 31:ebe42589ab9d 7 /*
bwang 31:ebe42589ab9d 8 * Precomputed constants for analytic IPM optimization
bwang 31:ebe42589ab9d 9 */
bwang 31:ebe42589ab9d 10
bwang 31:ebe42589ab9d 11 #define Lx (Ld-Lq)
bwang 31:ebe42589ab9d 12 #define Lx2 (Lx * Lx)
bwang 31:ebe42589ab9d 13 #define Lx3 (Lx2 * Lx)
bwang 31:ebe42589ab9d 14 #define Lx4 (Lx2 * Lx2)
bwang 31:ebe42589ab9d 15 #define Lx6 (Lx2 * Lx4)
bwang 31:ebe42589ab9d 16
bwang 31:ebe42589ab9d 17 #define P2 (POLE_PAIRS * POLE_PAIRS)
bwang 31:ebe42589ab9d 18 #define P3 (POLE_PAIRS * P2)
bwang 31:ebe42589ab9d 19 #define P4 (P2 * P2)
bwang 31:ebe42589ab9d 20 #define P6 (P4 * P2)
bwang 31:ebe42589ab9d 21 #define P8 (P4 * P4)
bwang 31:ebe42589ab9d 22
bwang 31:ebe42589ab9d 23 #define PSI2 (FLUX_LINKAGE * FLUX_LINKAGE)
bwang 31:ebe42589ab9d 24 #define PSI4 (PSI2 * PSI2)
bwang 31:ebe42589ab9d 25 #define PSI8 (PSI4 * PSI4)
bwang 31:ebe42589ab9d 26
bwang 31:ebe42589ab9d 27 #define K1 (27.f * Lx2 * P4 * PSI2)
bwang 31:ebe42589ab9d 28 #define K2 (243.f * 3.f * Lx4 * P8 * PSI4)
bwang 31:ebe42589ab9d 29 #define K3 (1024.f * 3.f * Lx6 * P6)
bwang 31:ebe42589ab9d 30 #define K1_13 (powf(K1, 1.f / 3))
bwang 31:ebe42589ab9d 31 #define K3_13 (14.537f * Lx2 * P2) //K3^(1/3)
bwang 31:ebe42589ab9d 32 #define SQRTK3 (-55.426f * Lx3 * P3)
bwang 31:ebe42589ab9d 33
bwang 31:ebe42589ab9d 34 #define cA (-8.80514f)
bwang 31:ebe42589ab9d 35 #define cB (0.605707f / (Lx2 * P2))
bwang 31:ebe42589ab9d 36 #define cC (2.93505f)
bwang 31:ebe42589ab9d 37 #define cD (-0.201902f / (Lx2 * P2))
bwang 31:ebe42589ab9d 38 #define cE (2.3094f * FLUX_LINKAGE / (Lx2 * POLE_PAIRS))
bwang 31:ebe42589ab9d 39
bwang 31:ebe42589ab9d 40 #define c0 (1.25992f)
bwang 31:ebe42589ab9d 41 #define c2 (0.4424414f * Lx2 / (P2 * PSI4))
bwang 31:ebe42589ab9d 42 #define c4 (-0.6214814f * Lx4 / (P4 * PSI8))
bwang 31:ebe42589ab9d 43
bwang 31:ebe42589ab9d 44 #define TAU0 (K1 / SQRTK3)
bwang 31:ebe42589ab9d 45 #define s0 (1.3415f * K1 / K3_13)
bwang 31:ebe42589ab9d 46 #define s1 (-3.81274f * Lx * POLE_PAIRS)
bwang 31:ebe42589ab9d 47
bwang 31:ebe42589ab9d 48 #define cU (-0.2887f)
bwang 31:ebe42589ab9d 49 #define cV (0.5f)
bwang 31:ebe42589ab9d 50
bwang 32:b31423041c4e 51 #define cF (0.25f * Lq/(Ld * Lq-Ld * Ld) * FLUX_LINKAGE)
bwang 32:b31423041c4e 52 #define cG (FLUX_LINKAGE / Ld)
bwang 32:b31423041c4e 53 #define cH (1 / (Ld * Ld))
bwang 32:b31423041c4e 54 #define cI (0.25f * FLUX_LINKAGE / (Lq - Ld))
bwang 32:b31423041c4e 55
bwang 31:ebe42589ab9d 56 #endif