123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180 |
- /************************************************************************
- Project: Welling Motor Control Paltform
- Filename: acr.h
- Partner Filename: acr.c
- Description: The header file of acr.c
- Complier: IAR Embedded Workbench for ARM 7.80, IAR Systems.
- CPU TYPE : GD32F3x0
- *************************************************************************
- Copyright (c) 2018 Welling Motor Technology(Shanghai) Co. Ltd.
- All rights reserved.
- *************************************************************************
- *************************************************************************
- Revising History (ECL of this file):
- Miaozhou create this file;
- ************************************************************************/
- /************************************************************************
- Beginning of File, do not put anything above here except notes
- Compiler Directives:
- *************************************************************************/
- #ifndef ACR_H
- #define ACR_H
- #include "typedefine.h"
- #include "macroequ.h"
- /************************************************************************
- Compiler Directives (N/A)
- *************************************************************************/
- #ifdef _ACR_C_
- #define _ACR_EXT
- #else
- #define _ACR_EXT extern
- #endif
- /************************************************************************
- Definitions & Macros
- *************************************************************************/
- #define ACR_CURPI_COF_DEFAULT \
- { \
- 0, 0, 0 \
- } // Default value of ACR_CURPI_COF
- #define ACR_CURPI_OUT_DEFAULT \
- { \
- 0, 0, 0, 0 \
- } // Default value of ACR_CURPI_OUT
- #define ACR_UDQDCP_COF_DEFAULT \
- { \
- 0, 0, 0 \
- } // Default value of ACR_UDQDCP_COF
- #define ACR_UDQDCP_OUT_DEFAULT \
- { \
- 0, 0 \
- } // Default value of ACR_UDQDCP_OUT
- /************************************************************************
- TypeDefs & Structure Defines
- *************************************************************************/
- typedef struct
- { // Input of " acr_voCurPI "
- SWORD swCurRefPu; // Q14, Current reference
- SWORD swCurFdbPu; // Q14, Current feedback
- SWORD swUmaxPu; // Q12, Voltage output maximum limit
- SWORD swUminPu; // Q12, Voltage output minimum limit
- } ACR_CURPI_IN;
- typedef struct
- { // Output of " acr_voCurPI "
- SWORD swURefPu; // Q14, Output voltage feedback
- SLONG slURefPu; // Q26, Output voltage feedback
- SWORD swErrZ1Pu; // Q14, Error recorder
- SLONG slURefRemPu; // Q26, Remainder Output
- } ACR_CURPI_OUT;
- typedef struct
- { // Input of " acr_voCurPI "
- UWORD uwKpPu; // Q12, Current coefficient of proportion
- UWORD uwKitPu; // Q15, Current coefficient of Integral
- UWORD uwRaPu; // Q15, Active Resistance
- } ACR_CURPI_COF;
- /*************************************************************************/
- typedef struct
- { // Input of " acr_voCurPI "
- UWORD uwUbVt; // unit: 0.1V, Voltage base
- UWORD uwIbAp; // unit: 0.01A, Current base
- UWORD uwFbHz; // unit: Hz, Frequency base
- UWORD uwLHm; // unit: mH, Motor phase inductance
- UWORD uwMtRsOh; // unit: Ohm, Motor phase resistance
- UWORD uwFTbcHz; // TBC frequency
- UWORD uwRaCoef; // Coefficient of Active Resistance
- UWORD uwWicHz; // unit: Hz, Current loop frequency bandwidth
- } ACR_CURPI_COFIN;
- /************************************************************************/
- typedef struct
- { // Input of "acr_voUdqDcp"
- SWORD swWsPu; // Q15, Stator electrical frequency
- SWORD swIdRefPu; // Q14, D axis current reference
- SWORD swIqRefPu; // Q14, Q axis current reference
- SWORD swUdqLimPu; // Q14, UDQ Limit
- } ACR_UDQDCP_IN;
- typedef struct
- { // Output of "acr_voUdqDcp"
- SWORD swUdPu; // Q12, D axis voltage
- SWORD swUqPu; // Q12, Q axis voltage
- } ACR_UDQDCP_OUT;
- typedef struct
- { // Input of "acr_voUdqDcp"
- UWORD uwLdPu; // Q10, D axis inductance
- UWORD uwLqPu; // Q10, Q axis inductance
- UWORD uwFluxFPu; // Q12, FluxF
- } ACR_UDQDCP_COF;
- /************************************************************************/
- typedef struct
- { // Input of "acr_voUdqDcp"
- UWORD uwLdHm; // unit: 0.01mH, D axis inductance
- UWORD uwLqHm; // unit: 0.01mH, Q axis inductance
- UWORD uwMtFlxWb; // unit: 0.01mWb, FluxF
- UWORD uwUbVt; // unit: 0.1V, Voltage base
- UWORD uwFbHz; // unit: Hz, Frequency base
- UWORD uwIbAp; // unit: 0.01A, Current base
- } ACR_UDQDCP_COFIN;
- /*************************************************************************/
- /************************************************************************
- Exported Variables:
- *************************************************************************/
- /************************************************************************
- Exported Variables
- *************************************************************************/
- #ifdef _ACR_C_
- _ACR_EXT ACR_CURPI_OUT acr_stCurIdPIOut = ACR_CURPI_OUT_DEFAULT;
- _ACR_EXT ACR_CURPI_OUT acr_stCurIqPIOut = ACR_CURPI_OUT_DEFAULT;
- _ACR_EXT ACR_CURPI_COF acr_stCurIdPICoef = ACR_CURPI_COF_DEFAULT;
- _ACR_EXT ACR_CURPI_COF acr_stCurIqPICoef = ACR_CURPI_COF_DEFAULT;
- _ACR_EXT ACR_UDQDCP_OUT acr_stUdqDcpOut = ACR_UDQDCP_OUT_DEFAULT;
- _ACR_EXT ACR_UDQDCP_COF acr_stUdqDcpCoef = ACR_UDQDCP_COF_DEFAULT;
- #else
- _ACR_EXT ACR_CURPI_OUT acr_stCurIdPIOut;
- _ACR_EXT ACR_CURPI_OUT acr_stCurIqPIOut;
- _ACR_EXT ACR_CURPI_COF acr_stCurIdPICoef;
- _ACR_EXT ACR_CURPI_COF acr_stCurIqPICoef;
- _ACR_EXT ACR_UDQDCP_OUT acr_stUdqDcpOut;
- _ACR_EXT ACR_UDQDCP_COF acr_stUdqDcpCoef;
- #endif
- /************************************************************************
- Ram Allocation
- *************************************************************************/
- #define acr_stCurIdPIIn (*(ACR_CURPI_IN *)TBC_BUFFER)
- #define acr_stCurIqPIIn (*(ACR_CURPI_IN *)TBC_BUFFER)
- #define acr_stCurIdPICoefIn (*(ACR_CURPI_COFIN *)MN_BUFFER)
- #define acr_stCurIqPICoefIn (*(ACR_CURPI_COFIN *)MN_BUFFER)
- #define acr_stUdqDcpCoefIn (*(ACR_UDQDCP_COFIN *)MN_BUFFER)
- #define acr_stUdqDcpIn (*(ACR_UDQDCP_IN *)TBC_BUFFER)
- /************************************************************************
- Exported Function Call Prototypes
- *************************************************************************/
- #ifdef _ACR_C_
- _ACR_EXT void acr_voCurPI(ACR_CURPI_IN *in, ACR_CURPI_COF *coef, ACR_CURPI_OUT *out);
- _ACR_EXT void acr_voCurPI22(ACR_CURPI_IN *in, ACR_CURPI_COF *coef, ACR_CURPI_OUT *out);
- _ACR_EXT void acr_voCurPICoef(ACR_CURPI_COFIN *in, ACR_CURPI_COF *out);
- _ACR_EXT void acr_voCurPIInit(void);
- _ACR_EXT void acr_voUdqDcp(ACR_UDQDCP_IN *in, ACR_UDQDCP_COF *coef, ACR_UDQDCP_OUT *out);
- _ACR_EXT void acr_voUdqDcpCoef(ACR_UDQDCP_COFIN *in, ACR_UDQDCP_COF *out);
- _ACR_EXT void acr_voUdqDcpInit(void);
- #else
- _ACR_EXT void acr_voCurPI(ACR_CURPI_IN *in, ACR_CURPI_COF *coef, ACR_CURPI_OUT *out);
- _ACR_EXT void acr_voCurPI22(ACR_CURPI_IN *in, ACR_CURPI_COF *coef, ACR_CURPI_OUT *out);
- _ACR_EXT void acr_voCurPICoef(ACR_CURPI_COFIN *in, ACR_CURPI_COF *out);
- _ACR_EXT void acr_voCurPIInit(void);
- _ACR_EXT void acr_voUdqDcp(ACR_UDQDCP_IN *in, ACR_UDQDCP_COF *coef, ACR_UDQDCP_OUT *out);
- _ACR_EXT void acr_voUdqDcpCoef(ACR_UDQDCP_COFIN *in, ACR_UDQDCP_COF *out);
- _ACR_EXT void acr_voUdqDcpInit(void);
- #endif
- /************************************************************************
- Flag Define (N/A)
- *************************************************************************/
- #endif
- /************************************************************************
- Copyright (c) 2018 Welling Motor Technology(Shanghai) Co. Ltd.
- All rights reserved.
- *************************************************************************
- End of this File (EOF):
- Do not put anything after this part!
- *************************************************************************/
|