Fertig

Dependencies:   mbed

Fork of RT2_P3_students by RT2_P3_students

Revision:
4:16f47c056c7c
Parent:
3:769ce5f06d3e
diff -r 769ce5f06d3e -r 16f47c056c7c main.cpp
--- a/main.cpp	Mon Apr 09 08:01:29 2018 +0000
+++ b/main.cpp	Tue Apr 17 12:03:20 2018 +0000
@@ -7,7 +7,8 @@
 #include "DiffCounter.h"
 #include "IIR_filter.h"
 #include "LinearCharacteristics.h"
-//#include "PI_Cntrl.h"
+#include "PI_Cntrl.h"
+#include "GPA.h"
 /* Cuboid balance on one edge on Nucleo F446RE
 
  **** IMPORTANT: use ..\Labormodelle\RT-MOD054 - Würfel\Escon_Parameter_4nucleo.edc 
@@ -46,10 +47,12 @@
 float w_soll = 10.0f;                   // desired velocity
 float Ts = 0.002f;                      // sample time of main loops
 int k = 0;
-LinearCharacteristics i2u(0.8f,-2.0f);
 //------------------------------------------
 // ... here define variables like gains etc.
 //------------------------------------------
+LinearCharacteristics i2u(0.8f,-2.0f);
+PI_Cntrl controller(0.12f,0.0f);
+GPA gpa1(1.0f, 200.0f, 50, 3, 400, Ts, 5.0f, 0.3f);
 
 //------------------------------------------
 Ticker  ControllerLoopTimer;            // interrupt for control loop
@@ -88,9 +91,9 @@
 void updateControllers(void){
     short counts = counter1;            // get counts from Encoder
     float vel = diff(counts);           // motor velocity 
-    
-    // ... your code 
-    out.write(i2u(1.5f)/3.3f);
+    float esc = gpa1.update(0.0, 0.0);
+   
+    out.write(i2u(controller.doStep(w_soll - vel))/3.3f);
     if(++k >= 199){
         k = 0;
         pc.printf("omega_soll=%3.2f omega=%3.2f \r\n",w_soll,vel);