Skip to content

File syn_foc_observer.h

FileList > motor > syn_foc_observer.h

Go to the source code of this file

Sensorless FOC Rotor Position & Speed Sliding Mode Observer (SMO) (Q16.16 fixed-point).

  • #include "../common/syn_defs.h"
  • #include "../util/syn_qmath.h"

Classes

Type Name
struct SYN_FOCObserver
Sliding Mode Observer state structure.
struct SYN_FOCObserverConfig
Sliding Mode Observer configuration parameters.

Public Functions

Type Name
q16_t syn_foc_observer_get_angle (const SYN_FOCObserver * obs)
Get current estimated rotor electrical angle.
q16_t syn_foc_observer_get_speed (const SYN_FOCObserver * obs)
Get current estimated rotor electrical angular speed.
SYN_Status syn_foc_observer_init (SYN_FOCObserver * obs, const SYN_FOCObserverConfig * cfg)
Initialize the sensorless FOC Sliding Mode Observer.
void syn_foc_observer_reset (SYN_FOCObserver * obs)
Reset observer state to zero.
SYN_Status syn_foc_observer_update (SYN_FOCObserver * obs, q16_t V_alpha, q16_t V_beta, q16_t I_alpha, q16_t I_beta)
Update observer with latest phase voltages and measured phase currents.

Public Functions Documentation

function syn_foc_observer_get_angle

Get current estimated rotor electrical angle.

q16_t syn_foc_observer_get_angle (
    const SYN_FOCObserver * obs
) 

Parameters:

  • obs Observer instance.

Returns:

Estimated angle in radians (Q16.16, 0 to 2pi).


function syn_foc_observer_get_speed

Get current estimated rotor electrical angular speed.

q16_t syn_foc_observer_get_speed (
    const SYN_FOCObserver * obs
) 

Parameters:

  • obs Observer instance.

Returns:

Estimated angular speed in rad/s (Q16.16).


function syn_foc_observer_init

Initialize the sensorless FOC Sliding Mode Observer.

SYN_Status syn_foc_observer_init (
    SYN_FOCObserver * obs,
    const SYN_FOCObserverConfig * cfg
) 

Parameters:

  • obs Pointer to observer instance.
  • cfg Observer configuration parameters.

Returns:

SYN_OK on success, SYN_INVALID_PARAM if NULL or invalid parameters.


function syn_foc_observer_reset

Reset observer state to zero.

void syn_foc_observer_reset (
    SYN_FOCObserver * obs
) 

Parameters:

  • obs Observer instance.

function syn_foc_observer_update

Update observer with latest phase voltages and measured phase currents.

SYN_Status syn_foc_observer_update (
    SYN_FOCObserver * obs,
    q16_t V_alpha,
    q16_t V_beta,
    q16_t I_alpha,
    q16_t I_beta
) 

Parameters:

  • obs Observer instance.
  • V_alpha Applied alpha-axis voltage in Volts (Q16.16).
  • V_beta Applied beta-axis voltage in Volts (Q16.16).
  • I_alpha Measured alpha-axis current in Amps (Q16.16).
  • I_beta Measured beta-axis current in Amps (Q16.16).

Returns:

SYN_OK on success, SYN_INVALID_PARAM if NULL.



The documentation for this class was generated from the following file src/syntropic/motor/syn_foc_observer.h