Zephyr Project API 4.4.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;
37};
38
46void precision_pi_init(struct precision_pi *pi, double kp, double ki);
47
56
65double precision_pi_update(struct precision_pi *pi, double error);
66
68
69#ifdef __cplusplus
70}
71#endif
72
73#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(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.
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