最近准备自己搞实现一遍电机的foc代码。
自己实现的基本的Q格式的配置:
/*
* @brief: Q format Conversion
* @date: 2020.11.7
* @author: wangchongwei
*/
// Q format: int32 -> Qx
#define I32ToQx(val,form) ((int32_t)((val)<<form))
// Q format: float -> Qx
#define F32ToQx(val,form) ((int32_t)((val)*(float)(1<<form)))
// Q format: Qx -> int
#define QxToI32(val,form) ((int32_t)((val)>>form))
// Q format: Qx -> float
#define QxToF32(a,form) ((a)*((10.000000E-01)/(float)(1<<form)))
// Q format: Qx*Qx
#define QxMul(a,b,form) ((a)*(b)>>form)
// Q format: Qx/Qx
#define QxDiv(a,b,form) ((a)*(b)<<form)
/*
* @brief: Q format configure
* @date: 2020.11.7
* @author: wangchongwei
*/
#define GLOBLE_Qx (15)
#define I32ToQ(val) I32ToQx(val,GLOBLE_Qx)
#define F32ToQ(val) F32ToQx(val,GLOBLE_Qx)
#define QToI32(val) QxToI32(val,GLOBLE_Qx)
#define QToF32(val) QxToF32(val,GLOBLE_Qx)
#define QMul(a,b) QxMul(a,b,GLOBLE_Qx)
#define QSqu(val) QxMul(val,val,GLOBLE_Qx)
#define QDiv(a,b) QxDiv(a,b,GLOBLE_Qx)
被抛弃的写随笔公众号改写技术文章了,感兴趣的可以关注公众号:王崇卫