123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132 |
- /**
- * @file mc_status.h
- * @author Xiao Lifan (xiaolf6@midea.com)
- * @brief 电机状态描述定义
- * @version 0.1
- * @date 2023-03-22
- *
- * @copyright Copyright (c) 2023
- *
- */
- #ifndef _MC_STATUS_H_
- #define _MC_STATUS_H_
- #include "test_typedefine.h"
- #include "mc_pu_base.h"
- #ifdef __cplusplus
- extern "C" {
- #endif // __cplusplus
- /**
- * @brief 电机控制状态信息有名值
- *
- */
- typedef struct McStatusNamed
- {
- /* 电机状态 */
- s16 Ia; /**< Unit: 0.01 A */
- s16 Ib; /**< Unit: 0.01 A */
- s16 Ic; /**< Unit: 0.01 A */
- s16 IpeakAbs; /**< Unit: 0.01 A */
- s16 Ialpha; /**< Unit: 0.01 A */
- s16 Ibeta; /**< Unit: 0.01 A */
- s16 Izero; /**< Unit: 0.01 A */
- s16 Id; /**< Unit: 0.01 A */
- s16 Iq; /**< Unit: 0.01 A */
- s16 I0; /**< Unit: 0.01 A */
- s16 Ua; /**< Unit: 0.1 V */
- s16 Ub; /**< Unit: 0.1 V */
- s16 Uc; /**< Unit: 0.1 V */
- s16 Ualpha; /**< Unit: 0.1 V */
- s16 Ubeta; /**< Unit: 0.1 V */
- s16 Uzero; /**< Unit: 0.1 V */
- s16 ElecAngle; /**< Unit: 0.1 Degree */
- s16 ElecOmega; /**< Unit: 0.1 s^-1 */
- s16 MechAngle; /**< Unit: 0.1 Degree */
- s16 MechOmega; /**< Unit: 0.1 s^-1 */
- s16 ElecFreq; /**< Unit: 0.1 Hz */
- /* 逆变器状态 */
- s16 Uac; /**< Unit: 0.1 V */
- s16 Udc; /**< Unit: 0.1 V */
- /* 温度 */
- s16 TempIgbt; /**< Unit: 0.1 C */
- s16 TempMotor; /**< Unit: 0.1 C */
- s16 TempInv; /**< Unit: 0.1 C */
- } McStatusNamed;
- /**
- * @brief 电机控制状态信息Pu值
- *
- * @note 温度信息不进行标幺,仍为有名值
- */
- typedef struct McStatusPu
- {
- /* 电机状态 */
- s16 swIa; /**< Q14 */
- s16 swIb; /**< Q14 */
- s16 swIc; /**< Q14 */
- s16 swIpeakAbs; /**< Q14 */
- s16 swIalpha; /**< Q14 */
- s16 swIbeta; /**< Q14 */
- s16 swIzero; /**< Q14 */
- s16 swId; /**< Q14 */
- s16 swIq; /**< Q14 */
- s16 swI0; /**< Q14 */
- s16 swUa; /**< Q14 */
- s16 swUb; /**< Q14 */
- s16 swUc; /**< Q14 */
- s16 swUalpha; /**< Q14 */
- s16 swUbeta; /**< Q14 */
- s16 swUzero; /**< Q14 */
- s16 swElecAngle; /**< Q15, Base 2Pi */
- s16 swElecOmega; /**< Q15 */
- s16 swMechAngle; /**< Q15, Base 2Pi */
- s16 swMechOmega; /**< Q15 */
- s16 swElecFreq; /**< Q15 */
- /* 逆变器状态 */
- s16 swUac; /**< Q14 */
- s16 swUdc; /**< Q14 */
- /* 温度 */
- s16 swTempIgbt; /**< Unit: 0.1 C */
- s16 swTempMotor; /**< Unit: 0.1 C */
- s16 swTempInv; /**< Unit: 0.1 C */
- } McStatusPu;
- /**
- * @brief 电机及逆变器状态结构体
- *
- */
- typedef struct McStatus
- {
- McStatusNamed Named; /**< 有名值 */
- McStatusPu Pu; /**< 标幺值 */
- McPuBase *Base; /**< 基值指针 */
- } McStatus;
- void McStatusInit(McStatus *s, McPuBase *base);
- /**
- * @brief 从电机状态标幺值计算有名值
- *
- * @param s 电机状态结构体
- */
- void McStatusSyncNamed(McStatus *s);
- /**
- * @brief 从电机状有名值计算标幺值
- *
- * @param s 电机状态结构体
- */
- void McStatusSyncPu(McStatus *s);
- #ifdef __cplusplus
- }
- #endif // __cplusplus
- #endif
|