1#ifndef FANG_ROBOTICS_MCB_TRAP_SMOOTH_PID_HPP
2#define FANG_ROBOTICS_MCB_TRAP_SMOOTH_PID_HPP
49 template<
typename RawControlUnit,
typename RawErrorUnit,
typename RawTimeUnit>
57 using PUnit = units::compound_unit<RawControlUnit, units::inverse<RawErrorUnit>>;
58 using IUnit = units::compound_unit<RawControlUnit, units::inverse<RawErrorUnit>, units::inverse<RawTimeUnit>>;
59 using DUnit = units::compound_unit<RawControlUnit, RawTimeUnit, units::inverse<RawErrorUnit>>;
Definition smooth_pid.hpp:57
Definition dimensional_smooth_pid.hpp:51
runController(ErrorUnit error, ErrorDerivativeUnit errorDerivative, TimeUnit deltaTime)
units::compound_unit< RawErrorUnit, RawTimeUnit > IntegralAccumulationUnit
Definition dimensional_smooth_pid.hpp:63
units::compound_unit< RawErrorUnit, units::inverse< RawTimeUnit > > ErrorDerivativeUnit
Definition dimensional_smooth_pid.hpp:61
units::unit_t< RawErrorUnit > ErrorUnit
Definition dimensional_smooth_pid.hpp:54
units::unit_t< RawControlUnit > ControlUnit
Definition dimensional_smooth_pid.hpp:53
units::unit_t< RawTimeUnit > TimeUnit
Definition dimensional_smooth_pid.hpp:55
units::compound_unit< RawControlUnit, units::inverse< RawErrorUnit >, units::inverse< RawTimeUnit > > IUnit
Definition dimensional_smooth_pid.hpp:58
units::compound_unit< RawControlUnit, RawTimeUnit, units::inverse< RawErrorUnit > > DUnit
Definition dimensional_smooth_pid.hpp:59
units::compound_unit< RawControlUnit, units::inverse< RawErrorUnit > > PUnit
Definition dimensional_smooth_pid.hpp:57
runController(ErrorUnit error)
Definition pwm_info.hpp:4
Definition dimensional_smooth_pid.hpp:8
Definition dimensional_smooth_pid.hpp:74
IUnit i
Definition dimensional_smooth_pid.hpp:77
ControlUnit maxOutput
Definition dimensional_smooth_pid.hpp:80
float tRProportionalKalman
Definition dimensional_smooth_pid.hpp:86
PUnit p
Definition dimensional_smooth_pid.hpp:76
float tRDerivativeKalman
Definition dimensional_smooth_pid.hpp:84
ErrorUnit errorDeadzone
Definition dimensional_smooth_pid.hpp:82
IntegralAccumulationUnit maxIntegralAccumulation
Definition dimensional_smooth_pid.hpp:79
Config(double p, double i, double d, double maxIntegralAccumulation, double maxOutput, double errorDerivativeFloor, double errorDeadzone=0.0, double tQDerivativeKalman=1.0, double tRDerivativeKalman=0.0, tRProportionalKalman=1.0)
Definition dimensional_smooth_pid.hpp:91
float tQProportionalKalman
Definition dimensional_smooth_pid.hpp:85
DUnit d
Definition dimensional_smooth_pid.hpp:78
ErrorUnit errorDerivativeFloor
Definition dimensional_smooth_pid.hpp:81
float tQDerivativeKalman
Definition dimensional_smooth_pid.hpp:83