mirror of
https://github.com/apache/nuttx.git
synced 2026-06-08 01:42:58 +08:00
lib_observer: add nolinear fluxlink observer
This commit is contained in:
committed by
Alan Carvalho de Assis
parent
8f6be5e4ce
commit
132f27a91a
+23
-3
@@ -293,12 +293,13 @@ struct motor_sobserver_div_f32_s
|
||||
};
|
||||
|
||||
/* Speed observer PLL method data */
|
||||
#if 0
|
||||
|
||||
struct motor_sobserver_pll_f32_s
|
||||
{
|
||||
/* TODO */
|
||||
float pll_phase;
|
||||
float pll_kp;
|
||||
float pll_ki;
|
||||
};
|
||||
#endif
|
||||
|
||||
/* Motor Sliding Mode Observer private data */
|
||||
|
||||
@@ -320,6 +321,14 @@ struct motor_observer_smo_f32_s
|
||||
ab_frame_f32_t sign; /* Bang-bang controller sign */
|
||||
};
|
||||
|
||||
/* Motor Nonlinear FluxLink Observer private data */
|
||||
|
||||
struct motor_observer_nfo_f32_s
|
||||
{
|
||||
float x1;
|
||||
float x2;
|
||||
};
|
||||
|
||||
/* FOC initialize data */
|
||||
|
||||
struct foc_initdata_f32_s
|
||||
@@ -367,6 +376,7 @@ struct foc_data_f32_s
|
||||
struct motor_phy_params_f32_s
|
||||
{
|
||||
uint8_t p; /* Number of the motor pole pairs */
|
||||
float flux_link; /* Flux linkage */
|
||||
float res; /* Phase-to-neutral resistance */
|
||||
float ind; /* Average phase-to-neutral inductance */
|
||||
float one_by_ind; /* Inverse phase-to-neutral inductance */
|
||||
@@ -535,6 +545,16 @@ void motor_sobserver_div_init(FAR struct motor_sobserver_div_f32_s *so,
|
||||
void motor_sobserver_div(FAR struct motor_observer_f32_s *o,
|
||||
float angle, float dir);
|
||||
|
||||
void motor_observer_nfo_init(FAR struct motor_observer_nfo_f32_s *nfo);
|
||||
void motor_observer_nfo(FAR struct motor_observer_f32_s *o,
|
||||
FAR ab_frame_f32_t *i_ab, FAR ab_frame_f32_t *v_ab,
|
||||
FAR struct motor_phy_params_f32_s *phy, float gain);
|
||||
|
||||
void motor_sobserver_pll_init(FAR struct motor_sobserver_pll_f32_s *so,
|
||||
float pll_kp, float pll_ki);
|
||||
void motor_sobserver_pll(FAR struct motor_observer_f32_s *o,
|
||||
float angle, float dir);
|
||||
|
||||
/* Motor openloop control */
|
||||
|
||||
void motor_openloop_init(FAR struct openloop_data_f32_s *op, float per);
|
||||
|
||||
Reference in New Issue
Block a user