PCSHM (Playseats, cockpits et simulateurs home-made) Index du Forum PCSHM (Playseats, cockpits et simulateurs home-made)
Discussions à propos des cockpits et simulateurs faits maison, dédiés aux jeux de courses automobiles.
 
 FAQFAQ   RechercherRechercher   MembresMembres   GroupesGroupes   S’enregistrerS’enregistrer 
 ProfilProfil   Se connecter pour vérifier ses messages privésSe connecter pour vérifier ses messages privés   ConnexionConnexion 

Code Arduino

 
Poster un nouveau sujet   Répondre au sujet    PCSHM (Playseats, cockpits et simulateurs home-made) Index du Forum -> Les tutoriels -> Questions
Sujet précédent :: Sujet suivant  
Auteur Message
adp-sys
Débutant
Débutant

Hors ligne

Inscrit le: 08 Avr 2016
Messages: 9
Dégagement de responsabilité: J'accepte
Lecture et respect de la charte: J'accepte
Pays: France
Régions (France): Languedoc-Roussillon
Département (France): 34- Hérault
Ville: Montpellier
12/05/1985 Masculin Taureau (20avr-20mai)
Point(s): 117
Moyenne de points: 13,00

MessagePosté le: Mer 27 Avr - 14:21 (2016)    Sujet du message: Code Arduino Répondre en citant

Je ne sais pas si je suis au bon endroit pour poster ça...

Wanegain, je viens de regarder le code 3DOF 4 moteurs que tu m'avais envoyé, c'est nouveau pour moi et il y a des trucs qui m'échappent.

Donc en gros l'arduino se contente de récupérer les valeurs envoyées par simtools en les parsant, puis il calcul l'écart entre les positions courantes et les positions désirées et de là il commande les moteurs via la sabertooth. Ce n'est qu'une passerelle, il n'y a pas vraiment de calculs (mis a part le calcul de puissance à fournir avec updateMotorXPid).

En parlant de calculs, j'ai un peu de mal à appréhender la fonction updateMotor1Pid :

 
Code:
 int updateMotor1Pid(int targetPosition, int currentPosition)  
{
    float error = (float)targetPosition - (float)currentPosition;
    float pTerm_motor_R = proportional * error;
    integrated_motor_1_error += error;                                      
    float iTerm_motor_R = integral * constrain(integrated_motor_1_error, -GUARD_MOTOR_1_GAIN, GUARD_MOTOR_1_GAIN);
    float dTerm_motor_R = derivative * (error - last_motor_1_error);                           
    last_motor_1_error = error;
   
    return constrain(K_motor_1*(pTerm_motor_R + iTerm_motor_R + dTerm_motor_R), -255, 255);
}

L'idée de la fonction c'est de ne pas demander bêtement aux moteurs de se mettre en position voulue comme un bourrin, mais de faire ça en étant un peu malin c'est ça ?

Donc en gros tu utilises 3 variables et tu leur donne une importance différente avec 3 coefficients : 4.2 , 0.4 et 0.4 (et au passage on se moque des coefs, c'est totalement arbitraire vu que tu fais un constrain sur le return, donc on pourrait mettre comme coef : 42, 4 et 4)

- L'erreur brute avec un coef élevé -> pTerm_motor_R

- Une incrémentation mais dégressive avec integrated_motor_1_error pour un effet d'accélération avec un petit coef -> iTerm_motor_R

- Une différence d'erreur (toujours inversée sauf si le target bouge plus vite que le current) entre chaque boucle avec un petit coef pour réduire l'accélération ou l'augmenter suivant les cas ?? -> dTerm_motor_R

Je pense capter "à peu près" l'utilisation de dTerm_motor_R.

Mais pour integrated_motor_1_error, ça s’incrémente ou se décrémente en fonction de l'erreur, donc c'est également lié au temps passé avec une erreur, c'est bien pour faire accélérer le moteur ? Je ne vois jamais de remise à zéro de integrated_motor_1_error, même lorsque le moteur atteint la position désirée. Tu n'as pas peur que integrated_motor_1_error s'emballe et se retrouve avec une valeur délirante ? Je sais que ça ne serai pas très grave vu que dans tous les cas tu fais un constrain sur iTerm_motor_R par la suite mais j'avoue que il y a un truc qui m'échappe. Car en imaginant que integrated_motor_1_error se retrouve avec une valeur positive énorme, lorsque erreur sera negatif il faudra un grand nombre de boucles pour rattraper le retard et revenir à 0. Ou alors c'est voulu et j'ai rien compris 

Voila, j’espère ne pas être trop à coté de la plaque...
_________________
http://pcshm-simulateurs-homemade.clicforum.com/t947-Simulateur-2DOF-de-adp…

http://s199925721.onlinehome.fr/generateur_pid_arduino/


Revenir en haut
Publicité






MessagePosté le: Mer 27 Avr - 14:21 (2016)    Sujet du message: Publicité

PublicitéSupprimer les publicités ?
Revenir en haut
TheStick
Occasionnel
Occasionnel

Hors ligne

Inscrit le: 28 Avr 2015
Messages: 10
Dégagement de responsabilité: J'accepte
Lecture et respect de la charte: J'accepte
Pays: France
Régions (France): Rhône-Alpes
Département (France): 69- Rhône
Ville: BRON
21/04/1975 Masculin
Point(s): 206
Moyenne de points: 20,60

MessagePosté le: Lun 9 Mai - 18:31 (2016)    Sujet du message: Code Arduino Répondre en citant

Non en fait tu a compris.

Les trois variables en question, c'est le PID. Cet algorithme est utilisé depuis la nuit des temps.
Chaque simulateur devrait avoir les siennes. Les vrai ingénieurs ferait des tas de calculs pour déterminer les valeurs de P, I et D.
Mais heureusement on peut faire quelque chose de pas trop dégueu par l'observation.
on m'avais conseillé ce tuto à l'époque:
http://www.ferdinandpiette.com/blog/2011/08/implementer-un-pid-sans-faire-d…

par contre pour faire les observation il faut trouver un moyen de tracer les déplacements de ton simu.
j'avais un shield pour arduino qui supporte une carte SD. j'avais modifier le code pour loguer les valeur des potar mais ce n'était pas une bonne idée. car cela prend du temps à l'arduino et le calcul de PID ne s'exécute plus aussi souvent.

J'ai donc utilisé un 2eme arduino pour loguer les valeures et appliquer ce qu'ils conseillent dans ce tuto.
Au fait, je travaillais avec X-SIM et X-SIM permet de loguer les veleures envoyé à l'ARDUINO. j'ai ensuite comparé différentes courbes. soit de simple test soit des test en course.


sinon, integrated_motor_1_error ne va jamais augmenter à l'infini car il va entrainer un dépassement de consigne puis l'erreur va changer le sens et effectivement, il faudra un grand nombre d'itération pour qu'il reprenne une valeur faible. c'est pourquoi,il faut bien choisir la valeur du coefficient 'integral' en général assez faible. sinon il a tendance à faire osciller le simulateur.


Revenir en haut
Skype
Wanegain
Administrateur
Administrateur

Hors ligne

Inscrit le: 08 Mai 2012
Messages: 14 845
Dégagement de responsabilité: J'accepte
Lecture et respect de la charte: J'accepte
Pays: Belgique
Régions (France): Autre
Département (France): Autre
Ville: Bruxelles
17/04/1982 Masculin Bélier (21mar-19avr)
Point(s): 155 936
Moyenne de points: 10,50

MessagePosté le: Dim 15 Mai - 10:12 (2016)    Sujet du message: Code Arduino Répondre en citant

C'est bien resumé.


Pour bien régler le pid il y a un gars qui a développé le logiciel Motion track sur le forum de Simtools. Je l'utilise pour faire mes réglages de pid. 
Et pour la valeur intégrée c'est pour ça qu'on fait un constrain de 100.
Je prévois de faire une vidéo prochainement qui explique comment régler le pid, car avec les nouveaux moteurs il y a pas mal de boulot. D'ailleurs je n'utilise plus le i dans mes réglages car ça me décale trop les valeurs.. Je joue uniquement sur p et D. 
_________________
Profils Converter et Codes Arduino
Tuto : simulateur pour moins de 450€
KIT pour créer son simulateur 2DOF


Revenir en haut
momoclic
Concepteur
Concepteur

En ligne

Inscrit le: 23 Sep 2014
Messages: 2 864
Dégagement de responsabilité: J'accepte
Lecture et respect de la charte: J'accepte
Pays: France
Régions (France): Pays-de-la-Loire
Département (France): 49- Maine-et-Loire
10/06/1948 Masculin
Point(s): 4 987
Moyenne de points: 1,74

MessagePosté le: Lun 16 Mai - 10:10 (2016)    Sujet du message: Code Arduino Répondre en citant

J'ai déjà posté le lien mais je pense qu'il a bien sa place ici :

Le PID sans calcul
_________________
L'imagination est plus importante que le savoir (Albert Einstein)
3DOF effet houle
Règles pour 2DOF
Projet évolutif 2DOF/3DOF


Revenir en haut
adp-sys
Débutant
Débutant

Hors ligne

Inscrit le: 08 Avr 2016
Messages: 9
Dégagement de responsabilité: J'accepte
Lecture et respect de la charte: J'accepte
Pays: France
Régions (France): Languedoc-Roussillon
Département (France): 34- Hérault
Ville: Montpellier
12/05/1985 Masculin Taureau (20avr-20mai)
Point(s): 117
Moyenne de points: 13,00

MessagePosté le: Mar 17 Mai - 15:18 (2016)    Sujet du message: Code Arduino Répondre en citant

Ok, bon j'étais en train de cogiter à un système basé sur une fonction logarithme, mais on va pas réinventer la roue, surtout quand ça fonctionne.

J'ai fait un générateur de code Arduino en ligne : http://s199925721.onlinehome.fr/generateur_pid_arduino/
Je me suis basé sur le code 4DOF que m'avait passé Wanegain, l’indentation du code généré est dégueulasse mais je corrigerai quand j'aurai le temps.

!!! ATTENTION !!! J'ai RIEN testé, j'ai relu vite fait un code généré et c'est tout...

Pour info : Pourquoi le code d’arrêt est XE00C ? Et sur simtools on met XECCC ? Moi dans le code je vois juste que c'est le caractère E qui déclenche l’arrêt (donc en gros ça marche dans tous les cas, mais bon, j'aime bien comprendre  Mr. Green )
_________________
http://pcshm-simulateurs-homemade.clicforum.com/t947-Simulateur-2DOF-de-adp…

http://s199925721.onlinehome.fr/generateur_pid_arduino/


Revenir en haut
Wanegain
Administrateur
Administrateur

Hors ligne

Inscrit le: 08 Mai 2012
Messages: 14 845
Dégagement de responsabilité: J'accepte
Lecture et respect de la charte: J'accepte
Pays: Belgique
Régions (France): Autre
Département (France): Autre
Ville: Bruxelles
17/04/1982 Masculin Bélier (21mar-19avr)
Point(s): 155 936
Moyenne de points: 10,50

MessagePosté le: Mar 17 Mai - 15:28 (2016)    Sujet du message: Code Arduino Répondre en citant

C'est exactement ça, il faut lire uniquement le caractère E et le C de fin qui sert de checksum, entre les 2 on s'en fout . J'ai changé pour le plaisir et semer la panique

Excellent le générateur !! Je ne vais pas tester tout de suite mais c'est carrément pratique ! Moi je fais du copier coller et j'ajoute les moteurs mais dans ce cas c'est bien pratique cool

EDIT : une petite erreur sur le calcul des valeurs min et max. en effet, ça dépend du modèle du potentiomètre selon son angle de rotation électrique. En général c'est 320° ou 340° Okay

EDIT2 : j'ai sorti une nouvelle version du code qui permet d'utiliser un potentiomètre pour régler la puissance globale du simulateur, ça serait peut être bon de l'implémenter
_________________
Profils Converter et Codes Arduino
Tuto : simulateur pour moins de 450€
KIT pour créer son simulateur 2DOF


Revenir en haut
adp-sys
Débutant
Débutant

Hors ligne

Inscrit le: 08 Avr 2016
Messages: 9
Dégagement de responsabilité: J'accepte
Lecture et respect de la charte: J'accepte
Pays: France
Régions (France): Languedoc-Roussillon
Département (France): 34- Hérault
Ville: Montpellier
12/05/1985 Masculin Taureau (20avr-20mai)
Point(s): 117
Moyenne de points: 13,00

MessagePosté le: Mar 17 Mai - 16:04 (2016)    Sujet du message: Code Arduino Répondre en citant

Argh ! Pourquoi j'y ai pas pensé tout seul ! D'oh !

Bon je corrige ça en ajoutant un champ pour l'angle de rotation du potard.

Envoie moi ton code quand tu veux, tu fais quoi en fait ? Tu lis la valeur du potard et tu augment ou tu baisse tous les GUARD_MOTOR_X_GAIN (enfin tu fais un calcul intermédiaire vu que c'est une constante, bref, je me comprend)
_________________
http://pcshm-simulateurs-homemade.clicforum.com/t947-Simulateur-2DOF-de-adp…

http://s199925721.onlinehome.fr/generateur_pid_arduino/


Revenir en haut
Wanegain
Administrateur
Administrateur

Hors ligne

Inscrit le: 08 Mai 2012
Messages: 14 845
Dégagement de responsabilité: J'accepte
Lecture et respect de la charte: J'accepte
Pays: Belgique
Régions (France): Autre
Département (France): Autre
Ville: Bruxelles
17/04/1982 Masculin Bélier (21mar-19avr)
Point(s): 155 936
Moyenne de points: 10,50

MessagePosté le: Mar 17 Mai - 16:19 (2016)    Sujet du message: Code Arduino Répondre en citant

Non le Guard motor c'est uniquement pour le I du pid pour éviter que ça ne parte en oscillations ou en mouvements trop violents.
Non j'utilise la valeur du potentiomètre (que je ramène à une valeur entre 0.01 et 1.99) comme coefficient sur l'intervalle entre 512 et la valeur cible.

Tu peux trouver les codes sur la page dans ma signature Okay
_________________
Profils Converter et Codes Arduino
Tuto : simulateur pour moins de 450€
KIT pour créer son simulateur 2DOF


Revenir en haut
adp-sys
Débutant
Débutant

Hors ligne

Inscrit le: 08 Avr 2016
Messages: 9
Dégagement de responsabilité: J'accepte
Lecture et respect de la charte: J'accepte
Pays: France
Régions (France): Languedoc-Roussillon
Département (France): 34- Hérault
Ville: Montpellier
12/05/1985 Masculin Taureau (20avr-20mai)
Point(s): 117
Moyenne de points: 13,00

MessagePosté le: Mer 18 Mai - 12:08 (2016)    Sujet du message: Code Arduino Répondre en citant

J'ai corrigé le module d'aide au calcul de FeedbackMax et FeedbackMin yes

Enfin, j'ai rajouté une division quoi
_________________
http://pcshm-simulateurs-homemade.clicforum.com/t947-Simulateur-2DOF-de-adp…

http://s199925721.onlinehome.fr/generateur_pid_arduino/


Revenir en haut
Rokrio
Pilote PCSHM
Pilote PCSHM

Hors ligne

Inscrit le: 06 Juin 2016
Messages: 372
Dégagement de responsabilité: J'accepte
Lecture et respect de la charte: J'accepte
Pays: France
Régions (France): Rhône-Alpes
Département (France): 69- Rhône
Ville: LYON
16/03/1982 Masculin
Point(s): 1 583
Moyenne de points: 4,26

MessagePosté le: Dim 24 Juil - 23:07 (2016)    Sujet du message: Code Arduino Répondre en citant

Je déterre un topic car j'ai quelques questionnements sur le PID


Dans le code actuel de Wanegain 1.4 ont trouve cela :
Citation:


//PID variables


double K_motor_1 = 1;
double proportional1    = 4.200;  //initial value
double integral1 = 0.100;
double derivative1 = 0.400;
double K_motor_2 = 1;
double proportional2    = 4.200;
double integral2 = 0.100;
double derivative2 = 0.400;




comme le sudgère le titre du code j'en déduis que c'est le réglage du PID (trop fort hein  Mr. Green ).


J'ai regardé quelques posts sur ce sujet et j'ai lu le post de momoclic à ce sujet plus haut dans ce topic.
Pour résumé si j'ai bien compris le "P" à 4.2 ici, représente la vitesse à laquelle le moteur va trouver la position demandée. Le "I" à 0.1 représente l’oscillation et le "D" à 0.4 représente la stabilisation.


Le fait de diminuer le P a 4 ou moins rendrai la vitesse du mouvement plus lente et diminuer le D limiterai les oscilation en stabilisant le tout c'est bien ca ou alors c'est l'inverse ?
Je voudrais essayer de reduire le smoothing du game engine mais les mouvement sont trop brusque sans. C'est pour cela que je pense qu'en changeant le PID je pourrais avoir des réglage plus fin.
Si vous pouviez m'éclairer a ce sujet  Okay


Edit :


Apres 1h de test, J'ai modifié les valeurs comme cela :
Citation:
//PID variables


double K_motor_1 = 1;
double proportional1    = 3.600;  //initial value
double integral1 = 0.100;
double derivative1 = 0.300;
double K_motor_2 = 1;
double proportional2    = 3.600;
double integral2 = 0.100;
double derivative2 = 0.300;

Ça m'a permis de baisser le smoothing du game engine à 3% pour le sway et 5% pour le surge.





_________________
Mon simulateur
Light is right !


Dernière édition par Rokrio le Lun 25 Juil - 00:32 (2016); édité 1 fois
Revenir en haut
Skype
momoclic
Concepteur
Concepteur

En ligne

Inscrit le: 23 Sep 2014
Messages: 2 864
Dégagement de responsabilité: J'accepte
Lecture et respect de la charte: J'accepte
Pays: France
Régions (France): Pays-de-la-Loire
Département (France): 49- Maine-et-Loire
10/06/1948 Masculin
Point(s): 4 987
Moyenne de points: 1,74

MessagePosté le: Lun 25 Juil - 00:32 (2016)    Sujet du message: Code Arduino Répondre en citant

Petits rappels issus du lien que tu sites plus haut sur le PID :

Le réglage des coefficients Kp, Ki et Kd d'un PID peut se faire "à la main" par essais/erreurs. Tout d'abord, sachez qu'il ne sert à rien de vouloir régler les trois coefficients en même temps ! Il y a trop combinaisons possibles et trouver un triplet performant relèverait de l'exploit. Il vaut mieux y aller par étape.

Tout d'abord, il faut mettre en place un simple régulateur proportionnel (les coefficients Ki et Kd sont donc nuls). Par essais/erreurs, il faut régler le coefficient Kp afin d'améliorer le temps de réponse du système. C'est-à-dire qu'il faut trouver un Kp qui permette au système de se rapprocher très vite de la consigne tout en faisant attention de garder la stabilité du système : il ne faut pas que le système réponde très vite tout en oscillant beaucoup !
Une fois ce coefficient réglé, on peut passer au coefficient Ki. Celui-là va permettre d'annuler l'erreur finale du système afin que celui-ci respecte exactement la consigne. Il faut donc régler Ki pour avoir une réponse exacte en peu de temps tout en essayant de minimiser les oscillations apportées par l'intégrateur !
Enfin, on peut passer au dernier coefficient Kd qui permet de rendre le système plus stable. Son réglage permet donc de diminuer les oscillations.


Le PID est un système de régulation qui te permet d'atteindre la consigne (du jeu ici) dans un temps optimal et sans générer d'oscillations parasites. C'est en partie grâce à un bon PID que tu auras une bonne simulation.

Le PID n'est en aucun cas un mode de réglage du simulateur.

Quand le PID est bien réglé, là ensuite tu peux t'occuper de régler la simulation à l'aide de Simtools.
_________________
L'imagination est plus importante que le savoir (Albert Einstein)
3DOF effet houle
Règles pour 2DOF
Projet évolutif 2DOF/3DOF


Dernière édition par momoclic le Lun 25 Juil - 11:45 (2016); édité 1 fois
Revenir en haut
Rokrio
Pilote PCSHM
Pilote PCSHM

Hors ligne

Inscrit le: 06 Juin 2016
Messages: 372
Dégagement de responsabilité: J'accepte
Lecture et respect de la charte: J'accepte
Pays: France
Régions (France): Rhône-Alpes
Département (France): 69- Rhône
Ville: LYON
16/03/1982 Masculin
Point(s): 1 583
Moyenne de points: 4,26

MessagePosté le: Lun 25 Juil - 00:42 (2016)    Sujet du message: Code Arduino Répondre en citant

J'ai édit mon précédent post car j'ai fait quelque test.
Le truc c'est que les mouvement du simu sont extremement rapide (donc le temps pour aller a la consigne est tres court), ce qui m'oblige a mettre pas mal de smoothing pour lisser les effet sinon je suis vraiment tres secoué.
Avec le PID que j'ai modifié, je peu baisser le smoothing (voir presque le supprimer). De ce fait par exemple je peu ressentir un vibreur lorsque je vais rouler dessus ce qui n'est pas possible avec trop de smoothing. Je n'ai pas trouvé d'autre solution pour le rendre moins "vif" sans perdre d'effet au ressenti en fait. Apres j'y vais a tâtons comme tu le rappel coef par coef. J'ai fait le "P" en premier et en dernier j'ai tres legerment baissé le "D".
_________________
Mon simulateur
Light is right !


Revenir en haut
Skype
momoclic
Concepteur
Concepteur

En ligne

Inscrit le: 23 Sep 2014
Messages: 2 864
Dégagement de responsabilité: J'accepte
Lecture et respect de la charte: J'accepte
Pays: France
Régions (France): Pays-de-la-Loire
Département (France): 49- Maine-et-Loire
10/06/1948 Masculin
Point(s): 4 987
Moyenne de points: 1,74

MessagePosté le: Lun 25 Juil - 08:54 (2016)    Sujet du message: Code Arduino Répondre en citant

Là se limite mon expérience...
Cependant je reste convaincu que le PID doit être traité à part des réglages.


Si tu n'as pas un bon PID les mouvements seront pour une bonne partie des oscillations parasites.
A ce stade je te renvois vers les hommes d'expériences...
_________________
L'imagination est plus importante que le savoir (Albert Einstein)
3DOF effet houle
Règles pour 2DOF
Projet évolutif 2DOF/3DOF


Revenir en haut
momoclic
Concepteur
Concepteur

En ligne

Inscrit le: 23 Sep 2014
Messages: 2 864
Dégagement de responsabilité: J'accepte
Lecture et respect de la charte: J'accepte
Pays: France
Régions (France): Pays-de-la-Loire
Département (France): 49- Maine-et-Loire
10/06/1948 Masculin
Point(s): 4 987
Moyenne de points: 1,74

MessagePosté le: Lun 25 Juil - 10:23 (2016)    Sujet du message: Code Arduino Répondre en citant

il faut également retenir qu'une voiture pilotée en course c 'est quelque chose d’extrêmement violent !
De par la vitesse de roulage et de par nos réactions qui se veulent très rapides...
Et encore plus sur les voitures de compétition qui suppriment silent-blocs, durcissent les ressorts et on un amortissement très "sec"`.
Dans une voiture de course il faut être en permanence coincé dans le siège, aussi bine latéralement que longitudinalement (harnais bien serré).
En réel un six points est indispensable car dans les mouvements brusques les jambes décollent... et tu perds les pédales au sens propre du terme ! Je parle d'expérience Wink
Su un simu. en général beaucoup moins violent, un trois points fait parfaitement l'affaire, mais il faut tout de même le serrer.
_________________
L'imagination est plus importante que le savoir (Albert Einstein)
3DOF effet houle
Règles pour 2DOF
Projet évolutif 2DOF/3DOF


Dernière édition par momoclic le Lun 25 Juil - 11:21 (2016); édité 1 fois
Revenir en haut
Rokrio
Pilote PCSHM
Pilote PCSHM

Hors ligne

Inscrit le: 06 Juin 2016
Messages: 372
Dégagement de responsabilité: J'accepte
Lecture et respect de la charte: J'accepte
Pays: France
Régions (France): Rhône-Alpes
Département (France): 69- Rhône
Ville: LYON
16/03/1982 Masculin
Point(s): 1 583
Moyenne de points: 4,26

MessagePosté le: Lun 25 Juil - 11:13 (2016)    Sujet du message: Code Arduino Répondre en citant

Je suis bien d'accord !
J'ai pour habitude de le serrer à fond également. Je surprend les gens d'ailleurs quand je les harnache au simu ou mon ancien statique.
Merci pour toutes tes infos et conseils ! Okay
_________________
Mon simulateur
Light is right !


Revenir en haut
Skype
Wanegain
Administrateur
Administrateur

Hors ligne

Inscrit le: 08 Mai 2012
Messages: 14 845
Dégagement de responsabilité: J'accepte
Lecture et respect de la charte: J'accepte
Pays: Belgique
Régions (France): Autre
Département (France): Autre
Ville: Bruxelles
17/04/1982 Masculin Bélier (21mar-19avr)
Point(s): 155 936
Moyenne de points: 10,50

MessagePosté le: Mar 26 Juil - 10:10 (2016)    Sujet du message: Code Arduino Répondre en citant

Je n'ai pas encore eu le temps de regarder le pid des moteurs 120w. Je ne les avais pas encore testés... Maintenant j'en ai à ma disposition et je vais essayer de trouver des valeurs cohérentes.
La meilleure façon de régler un PID, c'est de pouvoir visualiser la courbe de consigne et la courbe de la valeur réelle.

Effectivement il faut commencer par Kp et mettre les autres valeurs à 0. Il faut faire en sorte que le système oscille très peu et que le dépassement de consigne est vraiment petit. Ensuite tu passes par Kd puis éventuellement Ki mais il faut qu'il soit le plus petit possible (voir même = 0 si ce n'est pas mieux car souvent ça décale les valeurs, mais ce n'est pas trop visible à l'oeil nu).

Il ne faut pas non plus oublier de régler la DeadZone, genre 5 ou 9 (ce qui représente 0.5-1% de précision). Le ReadAnalog, il vaut mieux éviter de le mettre trop haut, genre 6 devrait largement être suffisant.
_________________
Profils Converter et Codes Arduino
Tuto : simulateur pour moins de 450€
KIT pour créer son simulateur 2DOF


Revenir en haut
obobo
Passionné
Passionné

Hors ligne

Inscrit le: 04 Oct 2016
Messages: 462
Dégagement de responsabilité: J'accepte
Lecture et respect de la charte: J'accepte
Pays: france
Régions (France): Languedoc-Roussillon
Département (France): 30- Gard
13/02/1976 Masculin Verseau (20jan-19fev)
Point(s): 772
Moyenne de points: 1,67

MessagePosté le: Mer 18 Jan - 19:33 (2017)    Sujet du message: Code Arduino Répondre en citant

salut
je revient ici car je ne retrouve pas l'endroit ou tu avais donné des réglages de PID pour les moteurs 120W
et j'aimerais bien me passer des réglages des 350w


Revenir en haut
Wanegain
Administrateur
Administrateur

Hors ligne

Inscrit le: 08 Mai 2012
Messages: 14 845
Dégagement de responsabilité: J'accepte
Lecture et respect de la charte: J'accepte
Pays: Belgique
Régions (France): Autre
Département (France): Autre
Ville: Bruxelles
17/04/1982 Masculin Bélier (21mar-19avr)
Point(s): 155 936
Moyenne de points: 10,50

MessagePosté le: Jeu 19 Jan - 12:29 (2017)    Sujet du message: Code Arduino Répondre en citant

Justement je n'en ai pas donné car je n'ai pas encore testé ni configuré ces moteurs... J'en ai chez moi mais je n'ai pas eu l'occasion de les connecter car je suis bloqué sur la conception de mon W-Seat Sad
_________________
Profils Converter et Codes Arduino
Tuto : simulateur pour moins de 450€
KIT pour créer son simulateur 2DOF


Revenir en haut
obobo
Passionné
Passionné

Hors ligne

Inscrit le: 04 Oct 2016
Messages: 462
Dégagement de responsabilité: J'accepte
Lecture et respect de la charte: J'accepte
Pays: france
Régions (France): Languedoc-Roussillon
Département (France): 30- Gard
13/02/1976 Masculin Verseau (20jan-19fev)
Point(s): 772
Moyenne de points: 1,67

MessagePosté le: Jeu 19 Jan - 14:07 (2017)    Sujet du message: Code Arduino Répondre en citant

arf je me disait que j'arrivais pas à les retrouver  D'oh !

Revenir en haut
francois38200
Pilote PCSHM
Pilote PCSHM

Hors ligne

Inscrit le: 10 Fév 2014
Messages: 5 248
Dégagement de responsabilité: J'accepte
Lecture et respect de la charte: J'accepte
Pays: france
Régions (France): Rhône-Alpes
Département (France): 38- Isère
Ville: vienne
06/08/1988 Masculin
Point(s): 70 718
Moyenne de points: 13,48

MessagePosté le: Jeu 19 Jan - 14:11 (2017)    Sujet du message: Code Arduino Répondre en citant

Tu est bloquer sur quoi Simon ?
_________________
i5 3570k / Gigabyte d3h / ram 8go / Windows 10 64bit / gtx980 ti inno3d / hdd 1to/ ssd 120go / CV1

SAAB Supérieur Aux Autres Bagnoles !!!


Revenir en haut
Wanegain
Administrateur
Administrateur

Hors ligne

Inscrit le: 08 Mai 2012
Messages: 14 845
Dégagement de responsabilité: J'accepte
Lecture et respect de la charte: J'accepte
Pays: Belgique
Régions (France): Autre
Département (France): Autre
Ville: Bruxelles
17/04/1982 Masculin Bélier (21mar-19avr)
Point(s): 155 936
Moyenne de points: 10,50

MessagePosté le: Jeu 19 Jan - 15:25 (2017)    Sujet du message: Code Arduino Répondre en citant

Sur l'emplacement des moteurs... J'ai trouvé une pseudo solution mais entre temps j'ai perdu la motivation et le temps.

J'ai aussi les palettes qui sont trop accentuées et comme j'ai déjà fait toute la mécanique, j'ai un peu la flemme de tout démonter pour mettre ma tige filetée un peu plus haute Rolling Eyes
_________________
Profils Converter et Codes Arduino
Tuto : simulateur pour moins de 450€
KIT pour créer son simulateur 2DOF


Revenir en haut
francois38200
Pilote PCSHM
Pilote PCSHM

Hors ligne

Inscrit le: 10 Fév 2014
Messages: 5 248
Dégagement de responsabilité: J'accepte
Lecture et respect de la charte: J'accepte
Pays: france
Régions (France): Rhône-Alpes
Département (France): 38- Isère
Ville: vienne
06/08/1988 Masculin
Point(s): 70 718
Moyenne de points: 13,48

MessagePosté le: Jeu 19 Jan - 16:09 (2017)    Sujet du message: Code Arduino Répondre en citant

Mdr moi c'est un peut pareil et je prend un coup de motiv de temps en temps 
_________________
i5 3570k / Gigabyte d3h / ram 8go / Windows 10 64bit / gtx980 ti inno3d / hdd 1to/ ssd 120go / CV1

SAAB Supérieur Aux Autres Bagnoles !!!


Revenir en haut
Contenu Sponsorisé






MessagePosté le: Aujourd’hui à 01:34 (2017)    Sujet du message: Code Arduino

Revenir en haut
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet    PCSHM (Playseats, cockpits et simulateurs home-made) Index du Forum -> Les tutoriels -> Questions Toutes les heures sont au format GMT + 2 Heures
Page 1 sur 1

 
Sauter vers:  

Index | creer un forum gratuit | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation
Powered by phpBB © 2001, 2017 phpBB Group
Traduction par : phpBB-fr.com powered by ArgenBLUE free template