|
rusEFI
The most advanced open source ECU
|
#include <efi_pid.h>


Public Member Functions | |
| PidIndustrial () | |
| PidIndustrial (pid_s *pid) | |
| float | getOutput (float target, float input, float dTime) override |
| float | getOutput (float target, float input) |
| virtual float | getOutput (float target, float input, float dTime) |
Public Member Functions inherited from Pid | |
| Pid () | |
| Pid (pid_s *parameters) | |
| void | initPidClass (pid_s *parameters) |
| bool | isSame (const pid_s *parameters) const |
| float | getOutput (float target, float input) |
| float | getUnclampedOutput (float target, float input, float dTime) |
| void | updateFactors (float pFactor, float iFactor, float dFactor) |
| virtual void | reset () |
| float | getP () const |
| float | getI () const |
| float | getD () const |
| float | getOffset () const |
| float | getMinValue () const |
| float | getIntegration (void) const |
| float | getPrevError (void) const |
| void | setErrorAmplification (float coef) |
| void | postState (pid_status_s &pidStatus) const |
| void | showPidStatus (const char *msg) const |
| void | sleep () |
Data Fields | |
| float | antiwindupFreq = 0.0f |
| float | derivativeFilterLoss = 0.0f |
Data Fields inherited from Pid | |
| int | resetCounter |
| float | iTermMin = -1000000.0 |
| float | iTermMax = 1000000.0 |
Data Fields inherited from pid_state_s | |
| float | iTerm = (float)0 |
| float | dTerm = (float)0 |
| float | target = (float)0 |
| float | input = (float)0 |
| float | output = (float)0 |
| float | errorAmplificationCoef = (float)0 |
| float | previousError = (float)0 |
Private Member Functions | |
| float | limitOutput (float v) const |
Additional Inherited Members | |
Protected Member Functions inherited from Pid | |
| virtual void | updateITerm (float value) |
Protected Attributes inherited from Pid | |
| pid_s * | parameters = nullptr |
A PID with derivative filtering (backward differences) and integrator anti-windup. See: Wittenmark B., Astrom K., Arzen K. IFAC Professional Brief. Computer Control: An Overview. Two additional parameters used: derivativeFilterLoss and antiwindupFreq (If both are 0, then this controller is identical to PidParallelController)
TODO: should PidIndustrial replace all usages of Pid/PidParallelController?
| PidIndustrial::PidIndustrial | ( | ) |
Definition at line 244 of file efi_pid.cpp.
|
explicit |
Definition at line 247 of file efi_pid.cpp.
This version of the method takes dTime from pid_s
| Controller | input / process output |
| Controller | input / process output |
Definition at line 47 of file efi_pid.cpp.
| dTime | seconds probably? :) |
Reimplemented from Pid.
Definition at line 48 of file efi_pid.cpp.
| dTime | seconds probably? :) |
Reimplemented from Pid.
Definition at line 250 of file efi_pid.cpp.
Referenced by LuaIndustrialPid::get().


Definition at line 289 of file efi_pid.cpp.
Referenced by getOutput().


| float PidIndustrial::antiwindupFreq = 0.0f |
Definition at line 123 of file efi_pid.h.
Referenced by IdleController::getClosedLoop(), getOutput(), and LuaIndustrialPid::setAntiwindupFreq().
| float PidIndustrial::derivativeFilterLoss = 0.0f |
Definition at line 124 of file efi_pid.h.
Referenced by IdleController::getClosedLoop(), getOutput(), and LuaIndustrialPid::setDerivativeFilterLoss().