Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Revision 3:3bc2882232a6, committed 2021-04-15
- Comitter:
- qmaker
- Date:
- Thu Apr 15 08:43:24 2021 +0000
- Parent:
- 2:7de884ffc9d9
- Commit message:
- en cours de dev
Changed in this revision
main.cpp | Show annotated file Show diff for this revision Revisions of this file |
--- a/main.cpp Thu Apr 15 07:24:07 2021 +0000 +++ b/main.cpp Thu Apr 15 08:43:24 2021 +0000 @@ -16,8 +16,14 @@ float tems = 10; // variable asserv position -float erreurPosition, erreurPosition_p, consignePosition = 0; -float KPP = 0.001; +float erreurPosition, erreurPosition_p; +float consignePosition = 0; +float KPP = 0.1, KDP = 0.1; + +// Variable asserv position Rotation +float erreurRota, erreurRota_p; +float consigneRota = 0; +float KPR = 0.001, KDR = 0.01; // varailble necessire à la mesure de la position angulaire du gyropode float accelero[3]= {0}; @@ -93,6 +99,12 @@ if (strcmp( commande, "KDV" ) == 0) { KDV=atof(valeur); } + if (strcmp( commande, "KDP" ) == 0) { + KDP=atof(valeur); + } + if (strcmp( commande, "KPP" ) == 0) { + KPP=atof(valeur); + } // reinitialisation de l indice de chaine i = 0; @@ -152,11 +164,16 @@ /**********************************************************************************************/ erreurPosition = consignePosition - (g-d); - CommandeVitesse = KPP * (erreurPosition-erreurPosition_p); + CommandeVitesse = KPP * erreurPosition + KDP * (erreurPosition-erreurPosition_p); erreurPosition_p = erreurPosition; - if (CommandeVitesse>3) CommandeVitesse = 3; else if (CommandeVitesse < -3) CommandeVitesse = -3; + + erreurRota = consigneRota - (g-d); + ecVir = KPR * erreurRota + KDR * (erreurRota-erreurRota_p); + erreurRota_p = erreurRota; + if (ecVir>0.1) ecVir = 0.1; + else if (ecVir < -0.1) ecVir = -0.1;