Zephyr API Documentation 4.5.99
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
precision_pi.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: Copyright The Zephyr Project Contributors
3 * SPDX-FileCopyrightText: Copyright (c) 2026 Philipp Steiner
4 *
5 * SPDX-License-Identifier: Apache-2.0
6 */
7
12
13#ifndef ZEPHYR_INCLUDE_ZEPHYR_PRECISION_TIMING_PRECISION_PI_H_
14#define ZEPHYR_INCLUDE_ZEPHYR_PRECISION_TIMING_PRECISION_PI_H_
15
16#ifdef __cplusplus
17extern "C" {
18#endif
19
28
32 double kp;
34 double ki;
36 double integral;
41};
42
50void precision_pi_init(struct precision_pi *pi, double kp, double ki);
51
60
74void precision_pi_set_limits(struct precision_pi *pi, double integral_limit, double output_limit);
75
86double precision_pi_update(struct precision_pi *pi, double error);
87
104double precision_pi_update_interval(struct precision_pi *pi, double error, double interval);
105
107
108#ifdef __cplusplus
109}
110#endif
111
112#endif /* ZEPHYR_INCLUDE_ZEPHYR_PRECISION_TIMING_PRECISION_PI_H_ */
void precision_pi_reset(struct precision_pi *pi)
Reset the accumulated integral term.
double precision_pi_update_interval(struct precision_pi *pi, double error, double interval)
Update a PI controller from an error sample taken after an interval.
double precision_pi_update(struct precision_pi *pi, double error)
Update a PI controller from an error sample.
void precision_pi_init(struct precision_pi *pi, double kp, double ki)
Initialize a PI controller.
void precision_pi_set_limits(struct precision_pi *pi, double integral_limit, double output_limit)
Set the limits of a PI controller.
State of an independent proportional-integral controller.
Definition precision_pi.h:30
double kp
Proportional gain.
Definition precision_pi.h:32
double integral
Accumulated integral term.
Definition precision_pi.h:36
double ki
Integral gain.
Definition precision_pi.h:34
double output_limit
Largest magnitude of the output, 0 for no limit.
Definition precision_pi.h:40
double integral_limit
Largest magnitude of the integral term, 0 for no limit.
Definition precision_pi.h:38