Libary for PM2.
Dependencies: LSM9DS1 RangeFinder FastPWM
Dependents: PM2_Example_PES_board PM2_Example_PES_board PM2_Example_PES_board PM2_Example_PES_board ... more
SpeedController.h
- Committer:
- pmic
- Date:
- 2022-06-22
- Revision:
- 32:bb074bb17d39
- Parent:
- 29:335fb9b01ca7
File content as of revision 32:bb074bb17d39:
#ifndef SpeedController_H_ #define SpeedController_H_ #include <cstdlib> #include <mbed.h> #include "EncoderCounter.h" #include "LowpassFilter.h" #include "ThreadFlag.h" #include "FastPWM.h" #include "Motion.h" class SpeedController { public: SpeedController(float counts_per_turn, float kn, float max_voltage, FastPWM& pwm, EncoderCounter& encoderCounter); virtual ~SpeedController(); void setDesiredSpeedRPS(float desiredSpeed); float getSpeedRPS(); float getSpeedRPM(); void setFeedForwardGain(float kn); void setSpeedCntrlGain(float kp); void setMaxVelocityRPS(float maxVelocityRPS); void setMaxVelocityRPM(float maxVelocityRPM); void setMaxAccelerationRPS(float maxAccelerationRPS); void setMaxAccelerationRPM(float maxAccelerationRPM); private: void setDesiredSpeedRPM(float desiredSpeed); static const float TS; static const float LOWPASS_FILTER_FREQUENCY; static const float MIN_DUTY_CYCLE; static const float MAX_DUTY_CYCLE; float counts_per_turn; float kn; float kp; float max_voltage; FastPWM& pwm; EncoderCounter& encoderCounter; short previousValueCounter; LowpassFilter speedFilter; float desiredSpeed; float actualSpeed; // float actualAngle; Motion motion; ThreadFlag threadFlag; Thread thread; Ticker ticker; void run(); void sendThreadFlag(); }; #endif /* SpeedController_H_ */