/** * @file spdflxwkn.h * @author xu, haifeng(xuhf58@midea.com) * @brief * @version 0.1 * @date 2024-01-17 * * @copyright Copyright (c) 2024 * */ #ifndef SPDFLXWKN_H #define SPDFLXWKN_H #include "typedefine.h" #include "mathtool.h" /************************************************************************ Definitions & Macros ************************************************************************/ #define FLUX_MODE 0 #define SPDFW_CTRL_COEF_DEFAULT \ { \ 0, 0, 0, 0, 0 \ } // Default value of SPDFW_CTRL_COEF #define SPDFW_CTRL_OUT_DEFAULT \ { \ 0, 0 \ } // Default value of SPDFW_CTRL_OUT /************************************************************************ TypeDefs & Structure Defines ************************************************************************/ typedef struct { SWORD swRSpeedPu; // Q15, Motor Rated Speed Pu, Base 1400HZ SWORD swIdMinPu; // Q14, Flux Weak Min Current, Base 60A SWORD swIpeakMaxPu; // Q14, Max Phase Current, Base 60A } SPDFW_CTRL_COEFIN; typedef struct { SWORD swFlxStartSpeedPu; // Q15, Flux Weak Motor Start Speed Pu, Base 1400HZ SWORD swFlxStopSpeedPu; // Q15, Flux Weak Motor Stop Speed Pu, Base 1400HZ SWORD swIdMinPu; // Q14, Flux Weak Min Current, Base 60A SWORD swIpeakMaxPu; // Q14, Max Phase Current, Base 60A SLONG slFlxKPu; // Q14, Flux Weak Calculate K } SPDFW_CTRL_COEF; typedef struct { SWORD swSpdFbkLpfAbsPu; // Q15, Flux Weak Motor Speed In Pu, Base 1400HZ } SPDFW_CTRL_IN; typedef struct { SWORD swIqLimPu; // Q14, q-axis Current limit value used for speed loop out SWORD swIdRefPu; // Q14, d-axis Current reference value used for current loop regulation } SPDFW_CTRL_OUT; /************************************************************************ Exported Variables ************************************************************************/ extern SPDFW_CTRL_COEFIN spdflx_stCtrlCoefIn; extern SPDFW_CTRL_COEF spdflx_stCtrlCoef; extern SPDFW_CTRL_IN spdflx_stCtrlIn; extern SPDFW_CTRL_OUT spdflx_stCtrlOut; /************************************************************************ Exported Function ************************************************************************/ extern void spdflx_voInit(void); extern void spdflx_voCoef(SPDFW_CTRL_COEFIN *in, SPDFW_CTRL_COEF *out); extern void spdflx_voCtrl(SPDFW_CTRL_IN *in, SPDFW_CTRL_COEF *coef, SPDFW_CTRL_OUT *out); /***********************************************************************/ #endif