30 typename IntermediateType,
33 typename MainError = MainType,
34 typename IntermediateError = IntermediateType
51 mainPid_{
config.mainPidConfig,
config.mainPidInitialValue},
52 intermediatePid_{
config.intermediatePidConfig,
config.intermediatePidInitialValue}
64 OutputType
runController(
const MainType& mainCurrent,
const IntermediateType& intermediateCurrent)
66 const TimeType kDeltaTime{
static_cast<TimeType
>(runControllerTimer_.
getDurationAndReset())};
67 return runController(mainCurrent, intermediateCurrent, kDeltaTime);
75 const MainType& mainCurrent,
76 const IntermediateType& intermediateCurrent,
77 const TimeType& deltaTime
80 const MainType kMainError{
81 MainError{mainTarget_}
82 - MainError{mainCurrent}
85 static MainType mainError{};
86 mainError = kMainError;
88 const IntermediateType kIntermediateTarget{
95 static IntermediateType intermediateTarget{};
96 intermediateTarget = kIntermediateTarget;
98 const IntermediateType kIntermediateError{
99 IntermediateError{kIntermediateTarget}
100 - IntermediateError{intermediateCurrent}
103 static IntermediateType intermediateError{};
104 intermediateError = kIntermediateError;
106 const OutputType kOutput{
113 static OutputType output{};
121 mainTarget_ = mainTarget;
127 MainType mainTarget_{};
Definition simple_timer.hpp:12
Microseconds getDurationAndReset()
Definition simple_timer.cpp:20
Definition dual_cascade_pid.hpp:37
DualCascadePid(const Config &config)
Definition dual_cascade_pid.hpp:49
OutputType runController(const MainType &mainCurrent, const IntermediateType &intermediateCurrent, const TimeType &deltaTime)
Definition dual_cascade_pid.hpp:74
SmoothPid< MainType, IntermediateType, TimeType > MainPid
Definition dual_cascade_pid.hpp:39
void setTarget(const MainType &mainTarget)
Definition dual_cascade_pid.hpp:119
SmoothPid< IntermediateType, OutputType, TimeType > IntermediatePid
Definition dual_cascade_pid.hpp:40
OutputType runController(const MainType &mainCurrent, const IntermediateType &intermediateCurrent)
Definition dual_cascade_pid.hpp:64
ControlType runController(ErrorType error)
Definition smooth_pid.hpp:37
Definition pwm_info.hpp:4
Definition dimensional_smooth_pid.hpp:10
Definition smooth_pid.hpp:36
Definition dual_cascade_pid.hpp:42
IntermediateType intermediatePidInitialValue
Definition dual_cascade_pid.hpp:46
MainType mainPidInitialValue
Definition dual_cascade_pid.hpp:45
IntermediatePid::Config intermediatePidConfig
Definition dual_cascade_pid.hpp:44
MainPid::Config mainPidConfig
Definition dual_cascade_pid.hpp:43