ladrc_observer.h 795 B

123456789101112131415161718192021222324252627282930
  1. #ifndef _LADRC_OBSERVER_H__
  2. #define _LADRC_OBSERVER_H__
  3. #include "os/os_types.h"
  4. typedef struct {
  5. float z1,z2;
  6. }zStats;
  7. #define ANGLE_BUF_NUM 16
  8. typedef struct {
  9. //扩张状态观测器
  10. zStats alpha, beta;
  11. float B1,B2;
  12. float ts;
  13. float Wo; //初始带宽
  14. float vel_min; //初始带宽对应的角频率
  15. float ld, lq, r, poles;
  16. float Ealpha, Ebeta;
  17. float Vel_El;
  18. float lpf_cutoff_freq; //低通滤波器截止频率 (截止频率 x 2 x pi)
  19. float angle_last;
  20. float angle_array[ANGLE_BUF_NUM];
  21. int angle_idx;
  22. float angle_sum;
  23. }ladrc_observer;
  24. void ladrc_observer_init(float Wo, float vel_min, float lpf_cut_off);
  25. void ladrc_observer_update(float va, float vb, float ia, float ib);
  26. float ladrc_observer_angle(void);
  27. float ladrc_observer_vel(void);
  28. #endif /* _LADRC_OBSERVER_H__ */