47 lines
819 B
C++
47 lines
819 B
C++
#ifndef SPEED_CONTROLLER_H
|
|
#define SPEED_CONTROLLER_H
|
|
|
|
#include <encoder.h>
|
|
#include <speed_estimator.h>
|
|
#include <motor_driver.h>
|
|
#include <controller.h>
|
|
|
|
class Speed_controller
|
|
{
|
|
public:
|
|
Speed_controller(
|
|
Encoder& encoder,
|
|
Speed_estimator& estimator,
|
|
Motor_driver& motor,
|
|
Controller& controller
|
|
);
|
|
|
|
void start();
|
|
void stop();
|
|
void brake();
|
|
|
|
void update();
|
|
|
|
void set_reference(double rpm);
|
|
double reference() const;
|
|
|
|
void set_controller(Controller& controller);
|
|
|
|
double actual_rpm() const;
|
|
double control_output() const;
|
|
|
|
private:
|
|
Encoder& encoder;
|
|
Speed_estimator& estimator;
|
|
Motor_driver& motor;
|
|
|
|
Controller* controller;
|
|
|
|
bool running;
|
|
|
|
double referenceRPM;
|
|
double actualRPM;
|
|
double controlOutput;
|
|
};
|
|
|
|
#endif |