wakaran
IMC_motorDrive.hpp@1:5b408b893c20, 2022-02-24 (annotated)
- Committer:
- yootee
- Date:
- Thu Feb 24 07:23:14 2022 +0000
- Revision:
- 1:5b408b893c20
- Parent:
- 0:17acb05d7f3e
fuck
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
yootee | 0:17acb05d7f3e | 1 | #pragma once |
yootee | 0:17acb05d7f3e | 2 | #include<mbed.h> |
yootee | 0:17acb05d7f3e | 3 | #include <portSet.hpp> |
yootee | 0:17acb05d7f3e | 4 | #include <rotary_inc_sp.hpp> |
yootee | 0:17acb05d7f3e | 5 | |
yootee | 0:17acb05d7f3e | 6 | inline double constrain(double x,double minimum,double maximum){ |
yootee | 0:17acb05d7f3e | 7 | return (x < minimum ? minimum : x > maximum ? maximum : x); |
yootee | 0:17acb05d7f3e | 8 | } |
yootee | 0:17acb05d7f3e | 9 | |
yootee | 0:17acb05d7f3e | 10 | class IMC_motor |
yootee | 0:17acb05d7f3e | 11 | { |
yootee | 0:17acb05d7f3e | 12 | public: |
yootee | 0:17acb05d7f3e | 13 | IMC_motor(Port encoder,int resolution,double wheel_ensyu,Port motor_,double K_,double Tau_,double dt_); |
yootee | 0:17acb05d7f3e | 14 | void IMCdrive(double target); |
yootee | 0:17acb05d7f3e | 15 | void drive(int pwm); |
yootee | 0:17acb05d7f3e | 16 | RotaryInc motor_enc; |
yootee | 0:17acb05d7f3e | 17 | //private: |
yootee | 0:17acb05d7f3e | 18 | double imc_out(double target); |
yootee | 0:17acb05d7f3e | 19 | double imc_controler(double y); |
yootee | 0:17acb05d7f3e | 20 | double process_model(double x,double mv); |
yootee | 0:17acb05d7f3e | 21 | double process_model_val; |
yootee | 0:17acb05d7f3e | 22 | double out_pwm; |
yootee | 0:17acb05d7f3e | 23 | double K; |
yootee | 0:17acb05d7f3e | 24 | double Tau; |
yootee | 0:17acb05d7f3e | 25 | double dt; |
yootee | 0:17acb05d7f3e | 26 | Port motor; |
yootee | 0:17acb05d7f3e | 27 | }; |