flexPTP 1.0
An IEEE 1588 PTP implementation designed for microcontrollers
Loading...
Searching...
No Matches
pid_controller.c File Reference
#include "pid_controller.h"
#include <math.h>
#include <stdlib.h>
#include <string.h>
#include <flexptp_options.h>

Go to the source code of this file.

Functions

void pid_ctrl_init ()
 
void pid_ctrl_deinit ()
 
void pid_ctrl_reset ()
 
float pid_ctrl_run (int32_t dt, PtpServoAuxInput *pAux)
 

Variables

static bool logInternals = false
 Decides if servo's internal operation shoud be reported or not.
 
static bool firstRun = true
 Indicates if first run did not occur yet.
 
static float P_FACTOR = 0.5 * 0.476
 Proportional factor.
 
static float I_FACTOR = 0
 Integrating factor.
 
static float D_FACTOR = 3.0
 Differentiating factor.
 
static double rd_prev_ppb
 relative frequency error measured in previous iteration
 
static double integrator_value
 value stored in the integrator
 

Function Documentation

◆ pid_ctrl_deinit()

void pid_ctrl_deinit ( )

Deinitialize PD controller.

Definition at line 90 of file pid_controller.c.

◆ pid_ctrl_init()

void pid_ctrl_init ( )

Initalize PD controller.

Definition at line 82 of file pid_controller.c.

◆ pid_ctrl_reset()

void pid_ctrl_reset ( )

Reset PD controller.

Definition at line 96 of file pid_controller.c.

◆ pid_ctrl_run()

float pid_ctrl_run ( int32_t  dt,
PtpServoAuxInput pAux 
)

Run the PD controller.

Parameters
dttime error in nanoseconds
pAuxauxiliary synchronization cycle context data

Definition at line 101 of file pid_controller.c.

Variable Documentation

◆ D_FACTOR

float D_FACTOR = 3.0
static

Differentiating factor.

Definition at line 24 of file pid_controller.c.

◆ firstRun

bool firstRun = true
static

Indicates if first run did not occur yet.

Definition at line 14 of file pid_controller.c.

◆ I_FACTOR

float I_FACTOR = 0
static

Integrating factor.

Definition at line 23 of file pid_controller.c.

◆ integrator_value

double integrator_value
static

value stored in the integrator

Definition at line 29 of file pid_controller.c.

◆ logInternals

bool logInternals = false
static

Decides if servo's internal operation shoud be reported or not.

Definition at line 13 of file pid_controller.c.

◆ P_FACTOR

float P_FACTOR = 0.5 * 0.476
static

Proportional factor.

Definition at line 22 of file pid_controller.c.

◆ rd_prev_ppb

double rd_prev_ppb
static

relative frequency error measured in previous iteration

Definition at line 28 of file pid_controller.c.