Pages: [1]   Go Down
Author Topic: Probleme avec la librairie PID_Beta6.h  (Read 697 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Newbie
*
Karma: 0
Posts: 45
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour,

Voila mon problème, j'ai créer le programme si dessous mais malheureusement il ne reconnait pas toutes les fonctions incluses dans la librairie en particuliers JustCalculated(),GetMode,GetP_Param(),GetI_Param()et GetD_Param() donc des fonctions utilisées dans la méthode avancée (voir lien ci-dessous) voila si quelqu'un pouvez m'aider,merci.


http://www.arduino.cc/playground/Code/PIDLibrary
http://www.arduino.cc/playground/Code/PIDLibraryAdvancedMethods

Code:
#include <PID_Beta6.h>



#define alpha 0.95
#define k    5

double Consigne, Mesure, Commande,Calcul;


PID pid(&Mesure, &Commande, &Consigne,4,2,1);

void fonctiontrans(){
 Mesure=alpha*Mesure+k*(1-alpha)*Commande;
}


void setup()
{
  Serial.begin(9600);
  
  Mesure =0;
  Commande=0;
  Consigne = 150;
  pid.SetOutputLimits(-200,200);
  pid.SetInputLimits(-200,200);
  pid.Reset();
  pid.SetMode(AUTO);
  pid.SetSampleTime(40);
}

void loop()

{


 fonctiontrans();
 pid.Compute();
 //analogWrite(3,Commande);
 Serial.print("Mesure : ");
 Serial.print(Mesure, DEC);
 Serial.print(" Commande :");
 Serial.print(Commande, DEC);
 Serial.print(" appel a la fonction compute :");
 Serial.print(JustCalculated());
 Serial.print(" Mode :");
 Serial.print(GetMode());
 Serial.print(" temps :");
 Serial.print("%d",GetSampleTime());
 Serial.print(" parametre P :");
 Serial.print(GetP_Param());
 Serial.print(" parametre I :");
 Serial.print(GetI_Param());
 Serial.print(" parametre D :");
 Serial.println(GetD_Param());
 delay(10);
}

Logged

France
Offline Offline
Faraday Member
**
Karma: 39
Posts: 3626
There is an Arduino for that
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Je crois avoir eu un problème une fois avec Serial.print et des valeurs retournées par une fonction.
Il me semble qu'il faut passer par une variable intermédiaire.
Essaye de remplacer:
Code:
Serial.print(JustCalculated());
par
Code:
double temp = GetI_Param());
Serial.print(temp);
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 45
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

helas j'ai toujours la même erreur  :-[
Code:
In function 'void loop()':
error: 'GetMode' was not declared in this scope
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 45
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

et une petite question es ce normal que lorsque que je déclare la librairie qu'elle n'est pas surligné en orange??
Logged

Massongex, Suisse
Offline Offline
Full Member
***
Karma: 3
Posts: 169
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Où as-tu mis la librairie ? Peut-être n'est elle pas dans le bon dossier. Elle doit être dans le dossier "libraries"

churchill
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 45
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

j'ai vérifié elle est bien dans ce répertoire
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 45
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

svp aidez moi ce problème est vraiment urgent  :-[
Logged

Pages: [1]   Go Up
Jump to: