smo_observer.h 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. #ifndef _SMO_OBSERVER_H__
  2. #define _SMO_OBSERVER_H__
  3. #include "foc/core/PI_Controller.h"
  4. typedef struct {
  5. float ts;
  6. float bandwith; //PLL带宽
  7. float lpf_wc; //低通滤波截止频率
  8. float lpf_ceof; //通过截止频率和采样率计算出的一阶低通滤波器系数
  9. float Ksmo; //滑膜增益
  10. float Ksta; //sigmoid 函数最大饱和
  11. PLL_t pll;
  12. float pll_kp;
  13. float pll_ki;
  14. float pll_integrator;
  15. float pll_max_rad_pers;
  16. float Ialpha_hat; //估计alpha电流
  17. float IBeta_hat; //估计beta电流
  18. float est_eAlpha; //估计反电动势alpha
  19. float est_eBeta; //估计反电动势beta
  20. float est_eAlpha_Filted;
  21. float est_eBeta_Filted;
  22. bool dir_ccw;
  23. float est_angle; //degree
  24. float est_angle_out;
  25. float est_rad_pers; //每秒度数
  26. float est_rad_pers_filted;
  27. float est_rpm;
  28. float motor_r;
  29. float motor_ld;
  30. float motor_lq;
  31. float motor_poles;
  32. }smo_observer_t;
  33. void smo_observer_init(float pll_bandwith, float lpf_wc, float Ksmo, float Ksta);
  34. float smo_observer_update(float uAlpha, float uBeta, float iAlpha, float iBeta);
  35. float smo_observer_est_angle(void);
  36. float smo_observer_est_rpm(void);
  37. smo_observer_t *get_smo(void);
  38. #endif /* _SMO_OBSERVER_H__ */