foc_observer.h 870 B

123456789101112131415161718192021222324252627
  1. #ifndef _FOC_OBSERVER_H__
  2. #define _FOC_OBSERVER_H__
  3. #include "os/os_types.h"
  4. /*
  5. 处理编码器和角度观测器的电角度融合,主要是判断编码器是否异常,切换到角度观测器
  6. */
  7. typedef struct {
  8. float enc_angle;
  9. float enc_speed;
  10. float enc_est_angle; //通过encoder速度,估计当前角度
  11. float smo_angle;
  12. float smo_speed;
  13. float smo_est_angle; //通过smo速度,估计当前角度
  14. bool smo_enabled;
  15. bool smo_used;
  16. float fusion_ceof; //融合系数
  17. }foc_observer_t;
  18. void foc_observer_init(void);
  19. float foc_observer_update(float uAlp, float uBeta, float iAlp, float iBeta);
  20. float foc_observer_speed(void);
  21. bool foc_observer_is_encoder(void);
  22. void foc_observer_use_smo(bool use_smo);
  23. void foc_observer_enable_smo(bool enable);
  24. float foc_observer_smo_angle(void);
  25. float foc_observer_smo_speed(void);
  26. #endif /*_FOC_OBSERVER_H__*/