Speeduino
Loading...
Searching...
No Matches
integerPID_ideal.h
Go to the documentation of this file.
1#pragma once
2
3#include <stdint.h>
4#include "PidCore.h"
5
7{
8public:
9
11 integerPID_ideal(void);
12
15
18
29
32 _pidCore.setTunings(params);
33 }
34
36 void setSetPoint(uint16_t setpoint) { _setpoint = setpoint; }
37
39 void setSensitivity(uint16_t sensitivity) { _sensitivity = sensitivity>5000U ? 5000 : sensitivity; }
40
44
51
64
65private:
66
67 uint16_t _setpoint = 0;
68 uint16_t _sensitivity = 0;
69 uint16_t _sampleTime = 0;
70 uint16_t _feedForwardTerm = 0;
71
72 uint32_t _lastTime = 0;
73 uint16_t _lastInput = 0;
74
75 PidCore _pidCore;
76};
A base class for PID implementations.
Definition PidCore.h:9
void setTunings(const PidTuningParameters &params)
Set the PID parameters.
Definition PidCore.h:21
Definition integerPID_ideal.h:7
void setFeedForwardTerm(uint16_t feedForwardTerm)
(Optional) Set the forward bias
Definition integerPID_ideal.h:42
void setSetPoint(uint16_t setpoint)
Set the controller set point.
Definition integerPID_ideal.h:36
void setTunings(const PidTuningParameters &params)
Set the PID parameters.
Definition integerPID_ideal.h:31
void initialize(uint16_t input)
Initialize the controller.
Definition integerPID_ideal.cpp:43
bool compute(uint32_t now, uint16_t input, uint16_t *pOutput)
Compute the new output.
Definition integerPID_ideal.cpp:17
void setSampleTime(uint32_t now, uint16_t minComputeInterval)
Set the minimum time interval between computations.
Definition integerPID_ideal.h:25
void setOutputLimits(uint8_t min, uint8_t max)
Set the output limits.
Definition integerPID_ideal.cpp:37
integerPID_ideal(void)
Default construction.
Definition integerPID_ideal.cpp:3
void setSensitivity(uint16_t sensitivity)
(Optional) Set the sensitivity
Definition integerPID_ideal.h:39
static TIntegral readSerialIntegralTimeout(void)
Reads an integral type, timing out if necessary.
Definition comms.cpp:175
Structure to hold PID tuning parameters.
Definition PidTuningParameters.h:7