ti bisogna il phaserunner
Dependencies: mbed PID mbed-rtos
Peripherien/Regler.h
- Committer:
- EpicG10
- Date:
- 2019-05-17
- Revision:
- 8:1655d27152e6
- Parent:
- 7:15e6fc689368
- Child:
- 9:56aed8c6779f
File content as of revision 8:1655d27152e6:
/** * Steuert die 4 Phaserunner */ #ifndef PA_REGLER_H #define PA_REGLER_H #include "Phaserunner.h" #include "Encoder.h" #include "PID.h" class Regler{ private: //Alle Phaserunner Phaserunner& vorderrad; Phaserunner& hinterrad; Phaserunner& linkspedal; Phaserunner& rechtspedal; // PID Regler PID pid; //Encoder Encoder& encoder; //Drehmomentverhältnis uint8_t torqueRatio; //Verhältnis des Gegenmomentes uint8_t recupRatio; //Zeitliche Berechnung der Werte void ReglerCalculate(); // Ticker Ticker ticker; // Ellipse Parameters float a_,b_,beta_; // Regler Parameters Pedale float Kp_,Ki_,Ts_,setPoint_; // Ergometer Stufe (von 1 bis 10) float ErgoStufe_; // Pedelec Values float PedStufe_, PedFactor_; const static float PI = 3.14159265; public: /** * Erstellt einen Regler für alle Phaserunner * @param vorderrad * @param hinterrad * @param linkspedal * @param rechtspedal * @param encoder */ Regler(Phaserunner& vorderrad, Phaserunner& hinterrad, Phaserunner& linkspedal, Phaserunner& rechtspedal, Encoder& encoder); /** * Regelt die Phaserunner auf eine bestimmte Geschwindigkeit. * @param speed Geschwindigkeit in km/h */ void setSpeed(uint8_t speed); /** * Setzt das Drehmomentverhältnis zwischen Vorderrad und Hinterrad. * @param torqueRatio: Drehmoment des Hinterrades in %. Das Drehmoment auf dem Vorderrad ist dann 100% - torqueRatio. */ void setTorqueProportion(uint8_t torqueRatio); /** * Setzt das Verhältnis des Gegenmomentes zwischen Vorderrad und Hinterrad. * @param torqueRatio: Gegenmoment des Hinterrades in %. Das Gegenmoment auf dem Vorderrad ist dann 100% - torqueRatio. */ void setRecuperationProportion(uint8_t recupRatio); /** * Setzt das Drehmoment auf beide Phaserunner. * @param torque Drehmoment in Prozent */ void setTorqueMotors(uint8_t torque); /** * Setzt das Drehmoment auf beide Phaserunner. * @param torque Drehmoment in Prozent */ void setTorquePedals(uint8_t torque); /** * Setzt die Rekuperation der Motoren * @param recuperation */ void setRecuperationMotors(uint8_t recuperation); /** * Setzt die Rekuperation der Pedale * @param recuperation */ void setRecuperationPedals(uint8_t recuperation); /** * Setzt die Ellipse Parameters * @param a * @param b * @param beta */ void setEllipseParameters(float a, float b, float beta); /** * Setzt die PI Regler Parameters * @param Kp * @param Ki * @param Ts in s */ void setReglerParameters(float Kp, float Ki, float Ts); /** * Setzt die PI Regler Setpoint * @param SetPoint */ void setReglerSetPoint(float Setpoint); /** * Setzt die Ergometer schwirichkeit Stufe * @param ErgoStufe */ void setErgoStufe(float ErgoStufe); /** * Setzt die Pedelec schwirichkeit Stufe * @param ErgoStufe */ void setPedStufe(float PedStufe); /** * Setzt die Pedelec Factor * @param PedFactor */ void setPedFactor(float PedFactor); }; #endif //PA_REGLER_H