• Aucun résultat trouvé

Identification des servomoteurs

Dans le document en fr (Page 50-56)

4.7 Boucle externe : commande de la position

1.7.1 Identification des servomoteurs

Les servomoteurs sont omniprésents en robotique, en aéromodélisme et en particulier sur les micro-drones. Ils sont composés d’un moteur à courant continu avec réducteur, d’un potentio- mètre lié à l’arbre de sortie, et d’un circuit de commande. Ce dernier réalise l’asservissement en position en comparant la consigne d’entrée et l’angle mesuré par le potentiomètre.

Entrée de commande et mesure. Les servomoteurs sont commandés par un signal PWM : la largeur de l’impulsion détermine l’angle de consigne du bras du servomoteur. Elle est donnée en microsecondes, entre 1000 et 2000µs en fonctionnement normal.

Banc de test. Afin d’analyser le comportement des servomoteurs et de relever des jeux de me- sures d’entrée-sortie pour l’identification d’un modèle, le banc de test présenté en figure 1.35 est utilisé. Il est composé du servomoteur à identifier et d’un codeur incrémental magnétique40 qui permet une mesure absolue d’un angle en utilisant un aimant à deux pôles lié au bras du servomoteur (figure 1.35). L’utilisation d’un aimant permet d’éviter l’apparition de frottements supplémentaires.

1.7.1.1 Prise en compte des saturations

De manière générale, des saturations sont présentes sur tous les actionneurs et introduisent des non-linéarités importantes. Elles peuvent causer une dégradation des performances ou de la stabilité du système. Il est donc important de les prendre en compte d’une manière ou d’une autre, en particulier dans le cadre de la synthèse de lois de commande. On peut ainsi envisager leur prise en compte a priori grâce à des méthodes de commande “anti-windup” appliquées sur le modèle saturé, et qui permettent de maximiser les domaines de stabilité et les performances (Biannic et Tarbouriech, 2007; Tarbouriech et al., 2008). On peut également les prendre en compte a posteriori : on utilise un modèle linéaire pour la commande, tandis que le modèle non-linéaire (avec saturations) sert à la validation des lois de commande et à l’évaluation a posteriori du do- maine de stabilité. C’est cette seconde approche qui est choisie dans cette étude.

40. On utilise un codeur 12 bit (référence AS5045) qui permet donc une résolution inférieure au dixième de degrés (0.088◦exactement, au mieux). Un microcontrôleur gère la communication en SPI (Serial Peripheral Interface) avec le codeur, l’envoi des consignes au servomoteur (signal PWM) et l’envoi des données mesurées par liaison série à un ordinateur à une fréquence de 500 Hz. Un script écrit en Python gère la réception des données sur l’ordinateur et le stockage dans un fichier.

Figure 1.35 – Banc d’essai permettant la calibration des servomoteurs, réalisé par impression 3D.

A droite le montage sans la platine comportant le codeur.

1.7.1.2 Modèle du second ordre avec saturations

Par une analyse du fonctionnement interne d’un servomoteur, le modèle présenté en figure 1.36 est établi. Le moteur à courant continu est ici modélisé par un système du premier ordre avec sa- turation de la vitesse. L’électronique de commande agit comme un contrôleur “ON-OFF” (appelé également contrôleur à hystérésis ou commande “bang-bang”), c’est-à-dire comme un contrô- leur proportionnel dont le gain est élevé : en dehors d’une zone linéaire réduite, le moteur est constamment saturé à sa vitesse maximale. Ce type de commande est optimale dans le sens du temps minimal pour atteindre une position (Laroche, 2010). Cela implique néanmoins des non- linéarités importantes (saturations), et Strub (2016, chap. 1) propose une modification de l’élec- tronique pour permettre une réponse du premier ordre.

Moteur CC u k y p kc 1/τ 1 s 1 s

Figure 1.36 – Schéma-bloc du servomoteur.

On est donc en présence d’un système comportant trois saturations : saturation en entrée, saturation de la vitesse et saturation de la position. Les deux dernières sont prises en compte par des intégrateurs saturés. Sur un servomoteur, la saturation sat(uk) en entrée est particulière : la

valeur précédente est conservée si l’entrée est en dehors des limites. On a : sat(uk) =

½ u

k si uk∈ [u, u]

uk−1 sinon (1.18)

Estimation des paramètres. Le modèle présenté en figure 1.36 dépend d’un certain nombre de paramètres. Grâce au banc de test de la figure 1.35, on peut facilement mesurer au préalable les saturations en entrée et en sortie. Les paramètres restants peuvent être estimés à l’aide des don- nées d’entrée-sortie des figures 1.37 et 1.40. Dans la plage de fonctionnement nominale (absence de saturation en entrée et en sortie, mais saturation de la vitesse), le schéma-bloc de la figure 1.36 peut être mis sous la forme d’état suivante :

Figure 1.37 – Jeu de données d’identification : réponse du servomoteur à une entrée en escalier

avec des pas de différentes amplitudes.

Modèle du second ordre avec saturations pour servomoteurs :                  · ¨x ˙ x ¸ =·−1/τ −k1 0c/τ¸ · fsx( ˙x) ¸ +·kck0p/τ ¸ u avec : fs(a) =    v si a > v v si a < v a sinon y = x (1.19)

On peut ensuite utiliser diverses méthodes pour l’estimation des quatre paramètres de ce mo- dèle :τ, kc, kp etv = −v. Les servomoteurs ont également un retard important dans la réponse,

que nous pouvons estimer conjointement. On choisit ici la méthode de minimisation de l’erreur de sortie (Ljung, 1999) à l’aide de l’algorithme des moindres carrés (méthode détaillée en sec- tion 3.4.1.1). Les données d’identifications sont tracées en figure 1.37. Nous choisissons une en- trée en escalier de manière a exciter toute la plage de fonctionnement.

Le tableau 1.7 donne les résultats de l’identification, évaluée sur la réponse à un échelon en fi- gure 1.38 (modèle G2,sat, en noir). Nous obtenons une adéquation (fit au sens de l’erreur NRMSE, décrit en section 3.5.1.1) de 98.3%. Le retard est estimé à 5 échantillons, soit 5/Te= 10 ms.

Table 1.7 – Résultats d’identification des servomoteurs en utilisant le modèle du second ordre avec

saturations.

Paramètre Valeur estimée Covariance

retard 0.01 s -

kp 0.0016 rad/µs 2.8e − 5

kc 47 66

τ 0.0072 s 0.013

v 2.4 rad/s 1.5

1.7.1.3 Modèle du premier ordre avec saturations

On note que la constante de temps du moteur (estimée à 7 ms) est faible devant le temps de réponse du système (de l’ordre de 50 ms). Il est donc intéressant de considérer un modèle du premier ordre. En négligeantτ, le système peut se mettre sous la forme suivante :

Figure 1.38 – Comparaison de la réponse à un échelon sur un jeu de données mesurées, pour un

modèle du second ordre avec et sans les saturations.

Modèle du premier ordre avec saturations pour servomoteurs              ˙ x = fs(−kcx + kckpu) avec : fs(a) =    v si a > v v si a < v a sinon y = x (1.20)

Après estimation des paramètres, on obtient sur la réponse à un échelon (modèle G1,sat, en rouge, sur la figure 1.39) une adéquation de 97.6%, qui n’est pas très éloigné de celle obtenue pour le modèle du second ordre (98.3%). Cela valide donc l’approximation du premier ordre. Les paramètres estimés sont donnés en tableau 1.8.

Table 1.8 – Résultats d’identification des servomoteurs en utilisant le modèle du premier ordre

avec saturations.

Paramètre Valeur estimée Covariance

retard 0.012 s -

kp 0.0016 rad/µs 2.3e − 5

kc 104 2230

v 2.2 rad/s 2.5

Modèle linéaire pour la commande. Sans les saturations, le schéma de la figure 1.36 est équi- valent à un système du second ordre de la forme classique donnée en équation (1.15), avec k = kp, ω0=

r kc τ etζ =

1 2pk

. Dans le cas de l’approximation par un système du premier ordre, on a

k = kp etτ =

1

kc

. Ces deux systèmes peuvent être identifiés en utilisant la même méthode que précédemment. On obtient alors les valeurs des paramètres répertoriées dans le tableau 1.9.

Figure 1.39 – Comparaison de la réponse à un échelon sur un jeu de données mesurées, pour un

modèle du premier ordre avec et sans les saturations.

Table 1.9 – Résultats d’identification des servomoteurs en utilisant le modèle linéaire du premier

ordre et du second ordre.

G2(s) (2èmeordre) G1(s) (1er ordre) Paramètre Valeur estimée Covariance Valeur estimée Covariance

retard 0.01 s - 0.018 s -

kp 0.00162 rad/µs 2.3e − 5 0.00164 rad/µs 2.3e − 5

kc 47.85 61 65.572 69

(a) Échelons d’une amplitude de10µs. (b) Échelons d’une amplitude de50µs.

Figure 1.40 – Mise en évidence de défauts du servomoteur sur le jeu de données d’identification.

1.7.1.4 Comparaison des modèles

Le tableau 1.10 présente une comparaison des résultats d’identification, évalués sur la ré- ponse à un échelon (tracées en figures 1.38 et 1.39).

Table 1.10 – Comparaison des différents modèles obtenus.

2èmeordre avec sat. 1er ordre avec sat. G2(s) (2èmeordre) G1(s) (1erordre)

Fit (NRMSE) 98.3% 97.6% 98.0% 93.3%

MSE 3.39e-07 6.56e-07 4.77e-07 4.85e-06

On remarque l’amélioration apportée par la présence des saturations sur le modèle du pre- mier ordre. La différence est nettement moins visible sur les modèles du second ordre, dont les paramètres identifiés sont très proches.

1.7.1.5 Précision du positionnement et limites des servomoteurs

Les servomoteurs présentent un défaut de précision important, visible sur la figure 1.40. En réalisant une série de tests en régime permanent, nous notons une erreur angulaire de l’ordre de ±3 degrés. De plus, lorsque le servomoteur est en charge, son comportement est altéré, et le temps de réponse augmente. Les caractéristiques estimées sont résumées dans le tableau 1.11. La figure 1.41 montre le tracé du temps de réponse, de la flèche et de la consommation en fonction du couple appliqué sur l’arbre du servomoteur.

Table 1.11 – Caractéristiques des servomoteurs utilisés, de référence BMS306.

Dimensions 24 × 24 × 11 mm

Poids 7.5 g

Alimentation 5 V

Couple maximal 79 mN m

Flèche au couple maximal 0.7◦ Erreur de répétabilité moyenne 1.12◦

Figure 1.41 – Caractéristiques de temps de réponse, flèche et consommation en fonction du couple

appliqué.

Dans le document en fr (Page 50-56)