foc_observer.h 834 B

1234567891011121314151617181920212223242526
  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. }foc_observer_t;
  17. void foc_observer_init(void);
  18. float foc_observer_update(float uAlp, float uBeta, float iAlp, float iBeta);
  19. float foc_observer_speed(void);
  20. bool foc_observer_is_encoder(void);
  21. void foc_observer_use_smo(bool use_smo);
  22. void foc_observer_enable_smo(bool enable);
  23. float foc_observer_smo_angle(void);
  24. float foc_observer_smo_speed(void);
  25. #endif /*_FOC_OBSERVER_H__*/