my new gear...

Dependencies:   mbed

actuator/IMC_motorDrive.hpp

Committer:
yootee
Date:
2022-03-27
Revision:
2:e7b09385d197
Parent:
IMC_motorDrive.hpp@ 0:1456b6f84c75
Child:
8:1ca5a2052b0c

File content as of revision 2:e7b09385d197:

#pragma once
#include<mbed.h>
#include <portSet.hpp>
#include <rotary_inc_sp.hpp>

#ifdef constrain
inline double constrain(double x,double minimum,double maximum){
    return (x < minimum ? minimum : x > maximum ? maximum : x);
}
#endif

class IMC_motor
{
public:
    IMC_motor(Port encoder,int resolution,double wheel_ensyu,Port motor_,double K_,double Tau_,double dt_);
    void IMCdrive(double target);
    void IMCreset();
    void drive(int pwm);
    RotaryInc motor_enc;
private: 
    double imc_out(double target);
    double imc_controler(double y);
    double process_model(double x,double mv);
    double process_model_val;
    double out_pwm;
    double K;
    double Tau;
    double dt;
    Port motor;
};