#ifndef _FOC_OBSERVER_H__ #define _FOC_OBSERVER_H__ #include "os/os_types.h" /* 处理编码器和角度观测器的电角度融合,主要是判断编码器是否异常,切换到角度观测器 */ typedef struct { float enc_angle; float enc_speed; float enc_est_angle; //通过encoder速度,估计当前角度 float smo_angle; float smo_speed; float smo_est_angle; //通过smo速度,估计当前角度 bool smo_enabled; bool smo_used; float fusion_ceof; //融合系数 }foc_observer_t; void foc_observer_init(void); float foc_observer_update(float uAlp, float uBeta, float iAlp, float iBeta); float foc_observer_speed(void); bool foc_observer_is_encoder(void); void foc_observer_use_smo(bool use_smo); void foc_observer_enable_smo(bool enable); float foc_observer_smo_angle(void); float foc_observer_smo_speed(void); #endif /*_FOC_OBSERVER_H__*/