| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- #ifndef _SMO_OBSERVER_H__
- #define _SMO_OBSERVER_H__
- #include "foc/core/PI_Controller.h"
- typedef struct {
- float ts;
- float bandwith; //PLL带宽
- float lpf_wc; //低通滤波截止频率
- float lpf_ceof; //通过截止频率和采样率计算出的一阶低通滤波器系数
- float Ksmo; //滑膜增益
- float Ksta; //sigmoid 函数最大饱和
- float pll_kp;
- float pll_ki;
- float pll_integrator;
- float pll_max_rad_pers;
- float Ialpha_hat; //估计alpha电流
- float IBeta_hat; //估计beta电流
- float est_eAlpha; //估计反电动势alpha
- float est_eBeta; //估计反电动势beta
- float est_eAlpha_Filted;
- float est_eBeta_Filted;
- float est_angle; //degree
- float est_angle_out;
- float est_rad_pers; //每秒度数
- float est_rad_pers_filted;
- float est_rpm;
- float motor_r;
- float motor_ld;
- float motor_lq;
- float motor_poles;
- float ldq_diff_dm; //(lq-ld)/lq*ld
- float ld_inv; //1/ld
- }smo_observer_t;
- void smo_observer_init(float pll_bandwith, float lpf_wc, float Ksmo, float Ksta);
- float smo_observer_update(float uAlpha, float uBeta, float iAlpha, float iBeta);
- float smo_observer_est_angle(void);
- float smo_observer_est_rpm(void);
- smo_observer_t *get_smo(void);
- #endif /* _SMO_OBSERVER_H__ */
|