This shows you the differences between two versions of the page.
— |
embedded:intro:controle-moteur [2015/08/26 20:37] (current) |
||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ====== Contrôle du moteur ====== | ||
+ | |||
+ | ===== Principes de base ===== | ||
+ | |||
+ | |||
+ | L'inconvénient, mais surtout l'avantage, d'un quadri est qu'il faut, à tout moment, assurer sa stabilité. | ||
+ | |||
+ | Si on appelle Ax l'angle du quadri par rapport à l'axe des x et Ay par rapport à y, le quadri est stable quand : | ||
+ | |||
+ | **Ax = 0, Ay = 0** | ||
+ | |||
+ | Donc assurer la stabilité du quadri revient à modifier la puissance des moteurs de manière à ce que Ax = 0 et Ay = 0. | ||
+ | |||
+ | On appelle, Pag, Pad, Prg et Prd, la puissance des moteurs, respectivement, Avant Gauche, Avant Droit, aRrière Gauche et aRrière Droit. Au miment de commander le PWM, elles seront exprimées en ns dans l'intervalle [1100, 1900]. | ||
+ | |||
+ | On pourra remarquer une propriété importante de ces puissances (tant que le quadri n'est pas trop incliné), c'est que la puissance appliquée au centre d'inertie Pi est : | ||
+ | |||
+ | **Pi = Pag + Pad + Prg + Prd** | ||
+ | |||
+ | En bref, si on veut préserver une puissance de montée Pi et quels que soient les angles Ax et Ay, il faut préserver une somme des moteurs égale à Pi. Donc, pour réaliser la stabilisation de l'appareil, il faudra modifier les puissances Pag, Pad, Prg et Prd tout en préservant leur somme Pi. | ||
+ | |||
+ | Ensuite, on peut appliquer les règles intuitives suivantes : | ||
+ | * si le quadri penche vers l'avant, il faut augmenter la puissance de Pag et Pad, | ||
+ | * s'il penche vers l'arrière, il faut augmenter la puissance de Prg et Prd, | ||
+ | * vers la gauche, il faut augmenter la puissance de Pag et Prg, | ||
+ | * vers la droite, il faut augmenter la puissance de Pad et Prd. | ||
+ | |||
+ | On notera que chaque moteur intervient dans la stabilité selon Ax et selon Ay. | ||
+ | |||
+ | ===== Ma méthode ===== | ||
+ | |||
+ | Voici une proposition de méthode (que je n'ai pas testé) mais qui résiste aux principes édictés ci dessus. | ||
+ | |||
+ | Cela consiste à dire que la puissance de chaque moteur Pj est influencée à part égale et proportionnelle par les angles Ax et Ay. On détermine ensuite deux constantes : | ||
+ | * Kp -- modification maximale de la puissance, | ||
+ | * Ka -- angle maximal toléré. | ||
+ | |||
+ | Si Ax = Ka ou Ay = Ka, alors la puissance seront augmentée de +Kp ou -Kp selon le moteur choisi. On appelle ce signe Sjx et Sjy, il dépend du moteur j et de l'axe concernée. Enfin, ma formule doit donner 0 quand Ax = 0 et Ay = 0. | ||
+ | |||
+ | Je propose donc la formule suivante d'accélération pour le moteur Pj : | ||
+ | |||
+ | **Pj = Pj0 + Sjx Kp Ax / 2 Ka + Sjy Kp Ay / 2 Ka** | ||
+ | |||
+ | On pourra prendre les constantes suivantes : | ||
+ | * Kp = 500, | ||
+ | * Ka = 45° (considéré comme l'angle maximum tolérable), | ||
+ | * Sjx, Sjy (valant +1 ou -1) est à déterminer selon le montage du quadri. | ||
+ | |||
+ | **NOTE** Le calcul de Pj est un bon candidat pour l'application du PID. Soit on peut l'appliquer sur l'ensemble, soit on l'applique sur chaque accélération, Ax et Ay, séparément. | ||
+ | |||
+ | **ATTENTION** Il faudra certainement arbitrer à certains moments entre la puissance désirée Pi et la stabilisation qui qui peuvent amener à des puissances en dehors des intervalles admis, [1100, 1900] ns. | ||
+ | La stabilisation devrait être prioritaire. | ||
+ | |||
+ | |||