Fertig
Dependencies: mbed
Fork of RT2_P3_students by
Diff: main.cpp
- 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);