shata

Revision:
1:76da1a46652f
Parent:
0:7f95508de23e
Child:
2:113b6a35d37c
--- a/MotorController.h	Sat Jul 10 01:51:58 2021 +0000
+++ b/MotorController.h	Mon Oct 25 10:20:35 2021 +0000
@@ -1,24 +1,14 @@
 #ifndef MOTORCONTROLLER_H
 #define MOTORCONTROLLER_H
 
-//#define ACCELERATION_MODE 0
-//#define BRAKE_MODE 1
-//#define CONVERGENCE_MODE 2
-//#define THREASHOLD_SC 1.0
-//#define THREASHOLD_SC_TIME 0.005
-//#define THREASHOLD_AC 0.1
-
-#define DUTY_OFFSET 0.022
-#define THREASHOLD_DUTY_OFFSET 0.41
 
 class MotorController
 {
 private:
-    double duty;
-
     double delta_t;
     double angle;
     double angle_offset;
+    double duty_offset;
 
     double Cf_;
     double Cb_;
@@ -29,9 +19,8 @@
 
     double duty_max;
     double omega_max;
-
-    int state_sc;
-    double acc_time;
+    double acceleration_max;
+    double pre_target_omega;
 
     Ec *ec_;
     CalPID *sc_pid;
@@ -56,7 +45,8 @@
     void setPDParamAcDuty(double kp, double kd);//(duty比による)角度制御のPDゲイン設定用関数
     void setPDParamAcOmega(double kp, double kd);//(速度制御による)角度制御のPDゲイン設定用関数
     void setDeltaTime(double dt);//制御周期の設定用関数
-
+    void setAccelMax(double a_max);
+    void setDutyOffset(double duty_off);
 
 //////////////////////////////////////////実際に使うときに呼び出す関数
     double getAngle();
@@ -65,13 +55,11 @@
     void turn(double duty);//モーターにduty比入力する
     void AcDuty(double target_angle);//PD算出されたdutyによる角度制御
     void AcOmega(double target_angle);//PD算出された角速度による角度制御。速度制御を利用している
-    void Sc(double target_omega);//速度制御
-    double calSc(double target_omega);//速度制御
+    void Sc(double target_omega_input);//速度制御
+    double calSc(double target_omega_input);//速度制御
     void stop();//duty=0を入力
     void reset();
 
-    double getDuty();
-
 };
 
 #endif
\ No newline at end of file