-
Notifications
You must be signed in to change notification settings - Fork 7
Open
Labels
enhancementNew feature or requestNew feature or requestgood first issueGood for newcomersGood for newcomerspriority-medMedium priority issuesMedium priority issuesquestionFurther information is requestedFurther information is requested
Description
Feature request for a proportional-derivative (or perhaps proportional-integral-derivative) controller class.
Desired Behavior
Users can utilize the PD/PID controller class for applicable use-cases, or implement their own, more advanced controllers through child classes.
Minimal Proposed Implementation
ControllerBase: An abstract class template that is templated for input type. Contains generic functions applicable to controllers, including:ControllerBase- Default constructor.Update- Pure virtual method that computes the controller output from the latest signal and set-point.set_set_pointset_gains(maybe, might live in the child classes)
PIDController: A child class toControllerthat implements a discrete-time PID controller.
Desired Features
ControllerBase:- Templated for various scalar types, Eigen vectors,
std::vector, andstd::array.
- Templated for various scalar types, Eigen vectors,
PIDController:- Deadband and saturation
- Custom error functions (e.g.,
e^2,sqrt(e)) via a function handle - Support for both:
- passing in the error terms on update
- computing these terms internally (e.g., derivative term based on previous proportional term and
dt)
Later Features
- Support for defining a controller from a transfer function.
ControllerBasechild classes for more controllers, including:BandBangControllerActiveDampingController
References
This code might be a good jumping-off point for the PID controller.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or requestgood first issueGood for newcomersGood for newcomerspriority-medMedium priority issuesMedium priority issuesquestionFurther information is requestedFurther information is requested