Hesu-eco / Mbed 2 deprecated limiteur_vitesse

Dependencies:   mbed PinDetect

Files at this revision

API Documentation at this revision

Comitter:
LipSer
Date:
Mon Dec 17 20:15:19 2018 +0000
Parent:
14:70fc660d4386
Commit message:
fin

Changed in this revision

speedlimiter.cpp Show annotated file Show diff for this revision Revisions of this file
diff -r 70fc660d4386 -r e9560502e463 speedlimiter.cpp
--- a/speedlimiter.cpp	Mon Dec 17 00:40:15 2018 +0000
+++ b/speedlimiter.cpp	Mon Dec 17 20:15:19 2018 +0000
@@ -76,8 +76,8 @@
     double out = 0.0;
     if (readAdcPedalHi() > 1) {
         
-        out = piControlFunction(Vd, Vm);
-//        out = ipControlFunction(Vd, Vm);
+//        out = piControlFunction(Vd, Vm);
+        out = ipControlFunction(Vd, Vm);
 
         // force to voltage conversion
         out = (out / 133240.0 * (PEDAL_HI_MAX_VALUE-PEDAL_HI_MIN_VALUE)) + PEDAL_HI_MIN_VALUE;
@@ -89,8 +89,8 @@
         }
     } else {
         const bool reset = true;
-        piControlFunction(0,reset);
-//        ipControlFunction(0,reset);
+//        piControlFunction(0,reset);
+        ipControlFunction(0,reset);
 
         first_acquisition = true;
     }
@@ -115,15 +115,19 @@
     const double var = readAdcTest();
     
     // constants calibrated in vehicle
-    const double Kp =  20389 * var ;
-    const double Ki = 60188.0;
+    const double Kp =  13139; // * var ;
+    const double Ki = 6849;
+//    const double Kp =  8257; // * var ;
+//    const double Ki = 19713;
+//    const double Kp =  18000; // * var ;
+//    const double Ki = 4300.0;
         
-    pc->printf("Current Kp value: %f\n\r\n\r", Kp);
+    pc->printf("Kp: %f Ki: %f", Kp, Ki);
         
     // calculations
     double error = reference - measured;
-    const double eMax = 4;
-    if(error > eMax) error = eMax; // upper bound the error
+//    const double eMax = 4;
+//    if(error > eMax) error = eMax; // upper bound the error
     const double dt = TRANSFER_FUNCTION_PERIOD;
     ie = ie + error*dt;
     
@@ -139,8 +143,10 @@
     }
     
     // constants calibrated in vehicle
-    const double Kp =  18000 ;
-    const double Ki = 4300.0;
+    const double Kp =  6217;
+    const double Ki = 1.8142;
+        
+    pc->printf("Kp: %f Ki: %f", Kp, Ki);
         
     // calculations
     double errorI = reference - measured;