Report 3

32
PROJET DE CONCEPTION CONCEPTION DUNE AIDE AU PILOTAGE POUR UN QUADRICOPTÈRE RAPPORT FINAL NICOLAS MIRJOLET ANTOINE ROUSSEL AVRIL 2004

Transcript of Report 3

Page 1: Report 3

PROJET DE CONCEPTION

CONCEPTION D’UNE AIDE AU PILOTAGE POUR UN QUADRICOPTÈRE

RAPPORT FINAL

NICOLAS MIRJOLET ANTOINE ROUSSEL

AVRIL 2004

Page 2: Report 3

SOMMAIRE 1 Introduction ........................................................................................................................ 3 2 Modélisation à partir des lois de la mécanique .................................................................. 4

2.1 Hypothèses de travail ................................................................................................. 4 2.2 Relation fondamentale de la dynamique .................................................................... 4 2.3 Théorème du moment dynamique.............................................................................. 5 2.4 Equations des angles d’Euler ..................................................................................... 5

3 Modélisation linéaire simplifiée autour d’un point d’équilibre ......................................... 6 3.1 Recherche d’un point d’équilibre............................................................................... 6 3.2 Linéarisation autour du point d’équilibre................................................................... 6

4 Commande par fonction de transfert .................................................................................. 7 4.1 Linéarisation des moteurs et calcul de leur fonction de transfert............................... 7 4.2 Calcul des fonctions de transferts en boucle ouverte ................................................. 8 4.3 Tracés de Bode des fonctions de transferts en boucle ouverte................................... 9 4.4 Synthèse des correcteurs ............................................................................................ 9

4.4.1 Démarche adoptée pour la synthèse des correcteurs .......................................... 9 4.4.2 Spécification des correcteurs et simulation...................................................... 10 4.4.3 Exploitation des résultats et bilan de la modélisation ...................................... 15

5 Commande modale........................................................................................................... 16 5.1 Détermination des équations d’état et choix des variables d’état ............................ 16 5.2 Détermination des pôles ........................................................................................... 17 5.3 Calcul du retour d’état.............................................................................................. 17 5.4 Simulation avec Simulink ........................................................................................ 18

6 Vérification du modèle linéaire adopté : simulation du système sous Simulink à partir des équations non linéaires ............................................................................................................. 20

6.1 Conception de « l’architecture externe ».................................................................. 20 6.2 Conception de « l’architecture interne » .................................................................. 21 6.3 Simulation avec le modèle non linéaire ................................................................... 23 6.4 Comparaison entre modèles linéaire et non linéaire ................................................ 24

7 Réalisation d’un programme de simulation et vérification du comportement ................. 25 7.1 Présentation générale................................................................................................ 25 7.2 Scénario test n°1....................................................................................................... 25

7.2.1 Descritpion ....................................................................................................... 25 7.2.2 Analyse des résultats obtenus........................................................................... 27

7.3 Scénario test n°2....................................................................................................... 27 7.3.1 Description ....................................................................................................... 27 7.3.2 Analyse des résultats obtenus........................................................................... 27

7.4 Autres scénarios possibles et bilan........................................................................... 29 8 Conclusion........................................................................................................................ 29 ANNEXE 1 ................................................................................................................................. 30 ANNEXE 2 ................................................................................................................................. 31

2

Page 3: Report 3

1 Introduction

On s’intéresse au pilotage d’un quadricoptère. Ce dernier a la forme d’une croix symétrique, avec quatre hélices indépendantes commandées par des moteurs électriques. Les hélices opposées tournent dans le même sens. En commandant leurs vitesses de rotation, on agit sur la vitesse verticale du quadricoptère et sur les trois angles qui définissent son orientation ; on peut ainsi le déplacer dans une direction quelconque.

L’objet du projet est de concevoir des correcteurs permettant une aide au pilotage. Le fonctionnement envisagé sera le pilotage « à bord » : le pilote réagit comme s’il était à bord du quadricoptère, en commandant son orientation et la vitesse suivant 3 axes liés à l’objet. Le mode pilotage « à vue » (le pilote, depuis le sol, veut suivre une trajectoire, il oriente le quadricoptère et commande la vitesse suivant 3 axes liés au sol) ne sera pas abordé mais il se traite de la même manière que le pilotage « à bord ». Le principe est le même.

Les correcteurs seront établis en considérant des modèles linéarisés autour d’un point d’équilibre, en étudiant successivement l’approche par fonctions de transfert et l’approche par variables d’état (commande modale). Une simulation non linéaire sous Matlab/Simulink sera réalisée afin de valider les solutions proposées.

Enfin, les solutions proposées seront implantées au sein d’un programme de simulation permettant de vérifier le comportement du quadricoptère dans des scénarios-tests. Les données relatives au quadricoptère figurent en Annexe 1.

Figure 1:Photographie du quadricoptère étudié

3

Page 4: Report 3

2 Modélisation à partir des lois de la mécanique

2.1 Hypothèses de travail Le quadricoptère est assimilé à un corps rigide. Chaque hélice reste perpendiculaire au plan du quadricoptère ; sa rotation engendre une force et un couple dirigés suivant son axe de rotation tels que :

2

2

ii

ii

b

aF

ω

ω

=

Nous utiliserons deux repères:

- un repère intertiel terrestre ( 000 ,,, zyxO rrr ) où O est un point quelconque lié à la terre. - Un repère lié au quadricoptère ( zyxG rrr ,,, ) où xv est dirigé selon GA, selon GD,

et perpendiculaire au plan du quadricoptère vers le bas. yr

zr

Le vecteur vitesse du qudricoptère est décomposé dans les deux repères précédents de la manière suivante :

zwyvxuzVyVxVV zyxrrrrrrr

++=++= 000000 Le vecteur rotation du repère mobile par rapport au repère terrestre s’écrit :

zryqxp rrrr++=Ω

Les angles d’Euler ψ, θ, φ permettent de passer du repère terrestre au repère mobile. La matrice d’inertie du quadricoptère dans le repère mobile est diagonale :

⎟⎟⎟

⎜⎜⎜

⎛=

z

y

x

II

IJ

000000

Les quatre moteurs sont identiques, à courant continu et commandés en tension. On néglige les effets gyroscopiques dus à la rotation des hélices.

2.2 Relation fondamentale de la dynamique On applique la relation fondamentale de la dynamique au système quadricoptère en projection dans le référentiel mobile. D’après la RFD, on a : ∑= ExtFam

rr

Bilan des forces exercées sur le système : - Poids . gmr

- Forces d’inerties de Coriolis : eamr− avec Va ∧Ω= 2r .

4

Page 5: Report 3

- Forces ascensionnelles créées par les hélices suivant l’axe des hélices : . 2iaF ω=

On néglige les différentes forces de frottements. On obtient alors, en projetant sur les différents axes, les trois équations suivantes :

⎪⎪⎪

⎪⎪⎪

−+−=

+−=−−=

∑ )(1coscos)(

cossin)(sin)(

4

1

2ia

mgpvquw

grupwvgqwrvu

ωθϕ

θϕθ

&

&

&

2.3 Théorème du moment dynamique On applique le théorème du moment dynamique au système en projection dans le référentiel mobile.

D’après le théorème du moment cinétique : FextMdtd rr

∑=σ

On obtient alors les 3 équations ci-dessous :

⎪⎪⎩

⎪⎪⎨

−+−=−+

−=−+

−=−+

)()(

)()(

)()(

2222

22

22

DCBAxyz

CAzxy

DByzx

bIIpqrI

laIIprqI

laIIqrpI

ωωωω

ωω

ωω

&

&

&

Dans ces équations, le terme de gauche correspond au moment dynamique du système, le terme du milieu représente la contribution au moment dynamique des forces de Coriolis. Enfin le terme de droite correspond aux moments exercés par les forces ascensionnelles Fi et les couples Γi créés par les hélices.

2.4 Equations des angles d’Euler On démontre la relation suivante faisant intervenir les 3 angles d’Euler :

⎪⎪

⎪⎪

+=

−=

++=

θϕϕψ

ϕϕθ

θϕϕϕ

coscossinsincos

tan)cossin(

rqrq

rqp

&

&

&

Nous obtenons donc au final 9 équations à 9 inconnues.

5

Page 6: Report 3

3 Modélisation linéaire simplifiée autour d’un point d’équilibre

3.1 Recherche d’un point d’équilibre On considère le quadricoptère en suspension à l’horizontale en équilibre. Cette situation se traduit par :

0===== ϕθwvu Par conséquent les 9 équations précédentes deviennent :

⎪⎪⎪⎪

⎪⎪⎪⎪

===

===

= ∑

BA

DB

CA

i

rqp

am

g

ωωωωωω

ω

0

)(1 4

1

2

D’où : 10 .2,202

21 −====== srad

amg

DCBA ωωωωω

3.2 Linéarisation autour du point d’équilibre On linéarise à l’ordre 1 les équations précédentes autour du point d’équilibre. Un rapide calcul nous permet d’aboutir aux équations linéarisées suivantes :

⎪⎪

⎪⎪

∆+∆+∆+∆−=

∆=∆−=

)(2 0DCBAm

aw

gvgu

ωωωωωϕ

θ

&

&

&

⎪⎩

⎪⎨

∆−∆−∆+∆=

∆−∆=∆−∆=

)(

)()(

0

0

0

DBCAz

CAy

DBx

brI

laqIlapI

ωωωωω

ωωωωωω

&

&

&

⎪⎩

⎪⎨

∆=∆=

∆=

rq

p

ψθ

ϕ

&

&

&

6

Page 7: Report 3

4 Commande par fonction de transfert

4.1 Linéarisation des moteurs et calcul de leur fonction de transfert

Le modèle adopté pour notre quadricoptère ne saurait être complet sans la prise en compte des équations régissant les moteurs. Pour cela déterminons dans un premier temps la

fonction de transfert de chaque moteur qui peut se mettre sous la forme : p

KpVp

i

i

τ+=

Ω1)(

)( avec

i = [A,B,C,D] et Ω(p), V(p) transformées de Laplace des variables ω(t) et V(t).

A partir des équations électriques et mécaniques du moteur, on détermine les coeffiients K et τ, caractéristiques des moteurs utilisés.

Equation électrique : ieim KViR ω.. −=

Equations mécaniques : ⎪⎩

⎪⎨⎧

−=

Ω=

Nb

iKdt

dJ

N

imC

i

i2

..

.

ωω

ω avec 2

2

.12 Nlm

IJ hh+=

Ainsi, en remplaçant I par son expression en fonction de Ω, on obtient :

Nb

NKVR

Kdt

dJ i

ieiCi

2

)...(.ω

ωω

−−=

Or , avec δω⎪⎩

⎪⎨

+=

+=

+=

iii

mmm

iii

VVV

iii

δ

δ

δωωω

0

0

0

i, δim, et δVi petites variations. En développant l’équation

obtenue ci-dessus, avec un développement limité à l’ordre 1 pour ω, on obtient (après transformée de Laplace) pour le moteur la fonction de transfert suivante :

)(

).

..2..(

..1

1

...2

.

1)(

0

0pV

p

KNbR

NKK

RNJKNbR

NKp i

CeC

Ce

i

⋅Ω

++

×Ω

+=Ω

On obtient ainsi les relations suivantes :

⎪⎪⎪

⎪⎪⎪

=

⋅Ω⋅⋅

+⋅==∀

=

⋅Ω⋅⋅

+==∀

−− 11

0

0

..4,3221,

077,0)

2(

..,

Vsrad

KNbR

NKKKi

s

KNbR

KK

RNJi

ce

i

cec

i ττ

7

Page 8: Report 3

4.2 Calcul des fonctions de transferts en boucle ouverte

On effectue la transformée de Laplace des neuf équations régissant le mouvement du quadricoptère. Ces équations font apparaître quatre commandes d’entrée, que l’on notera Ω1(p), Ω2(p), Ω3(p) et Ω4(p) (avec Ωi(p) transformée de Laplace de ωi(t)) et telles que : Ω1(p) = ΩA(p)+ΩB(p)+ΩC(p)+ΩD(p) Ω2(p) = ΩB(p)-ΩD(p) Ω3(p) = ΩA(p)-ΩC(p) Ω4(p) = ΩA(p)+ΩC(p)-ΩB(p)-ΩD(p)

Par conséquent notre système sera modélisé linéairement par quatre chaînes d’asservissement, c’est-à-dire quatre schéma-blocs indépendants (cf. Figure 2).

Les fonctions de transfert des quatre moteurs étant déterminées, pour la première commande par exemple (en notant Vi la tension appliquée en entrée du moteur n° i), on peut écrire :

1

4

1

4

11 111

)( Vp

KVp

KVp

Kp iii

i ′+

=+

=+

=Ω ∑ ∑ τττ

Ainsi, comme les quatre moteurs du quadricoptère ont les mêmes caractéristiques techniques, on peut simplifier le schéma bloc en remplaçant les fonctions de transfert des quatre moteurs par une fonction de transfert équivalente prenant comme entrée la tension V’1. On procède ainsi pour les trois autres schém-blocs, de telle sorte que :

DCBA VVVVV +++=′1

DB VVV −=′2

CA VVV −=′3

DBCA VVVVV −−+=′4 On obtient ainsi, un système de quatre schéma-blocs indépendants entre eux :

Figure 2: Schéma-blocs modélisant le quadricoptère

p1

pK

τ+1 ma 02 ω

−V’1(p) W(p)Ω1(p)

p1

pK

τ+1

V’2(p) Ω2(p) xI

al 02 ω

p1

pg V(p) P(p) Φ(p)

p1

pK

τ+1 p1 U(p)

V’4(p) p1

pK

τ+1Ω4(p) R(p)

p1 Ψ(p)

zIb 02 ω

V’3(p) Ω3(p) Q(p) Θ(p) yI

al 02 ω

pg

8

Page 9: Report 3

A ces schéma-blocs correspondent les fonctions de transfert suivantes :

)077,01(786,0

112

)()( 0

1 pppK

pma

pVpW

+−=

+−=

′ τω

)077,01(156

11lg2

)()(

330

2 pppK

pIa

pVpV

x +=

+=

′ τω

)077,01(6,146

11lg2

)()(

330

3 pppK

pIa

pVpU

y +−=

+−=

′ τω

)077,01(57,0

112

)()(

220

4 pppK

pIb

pVp

z +=

+=

′Ψ

τω

4.3 Tracés de Bode des fonctions de transferts en boucle ouverte Afin de pouvoir implémenter des correcteurs adaptés, on trace à l’aide de Matlab les

diagrammes de Bode associés aux fonctions de transferts en boucle ouverte déterminées ci-dessus. Ces diagrammes de Bode figurent en Annexe 2.

4.4 Synthèse des correcteurs

4.4.1 Démarche adoptée pour la synthèse des correcteurs Les fonctions de transfert précédentes font intervenir des intégrateurs d’ordre 2 ou 3.

Par conséquent la correction devra rehausser la phase de manière conséquente afin de stabiliser le système par des marges de phase supérieures à 45°.

Nous allons procéder par une régulation en cascade (excepté pour la chaîne de commande de w suffisamment simple et qui ne nécessite qu’une correction proportionnelle). Cette méthode consiste à effectuer plusieurs corrections sur des boucles imbriquées.

Pour les deux chaînes commandant les vitesses v et u, nous allons effectuer trois

corrections successives. Nous allons ainsi corriger dans un premier temps la boucle ouverte interne, puis dans un second temps la boucle ouverte intermédiaire, et enfin dans un troisième temps la boucle ouverte complète (cf. Figure 3). Par conséquent cela se traduira par trois rebouclages successifs unitaires.

Enfin, de la même manière pour le schéma-bloc commandant ψ, nous allons effectuer deux corrections successives, ce qui se traduira par deux rebouclages successifs.

9

Page 10: Report 3

p1

pK

τ+1 ma 02 ω

−V’1(p) W(p)Ω1(p)

p1

pK

τ+1

Figure 3:Mise en place de la correction

4.4.2 Spécification des correcteurs et simulation Nous définissons le cahier des charges à respecter:

- marge de phase supérieure à 45° (performance inchangée)

- pulsation de coupure 1.101 −== sradc τω pour la boucle ouverte interne

- pulsation de coupure ωc = 5 rad.s-1 pour la boucle ouverte intermédiaire - pulsation de coupure ωc = 2,5 rad.s-1 pour la boucle ouverte complète

A partir du programme suivant, nous avons déterminé les correcteurs à appliquer sur les

différentes boucles : clear all; clear all; %Fonction de commande en U1 sysbo1=tf([17.8*.786],[.077,1,0]) figure(1) bode(sysbo1);margin(sysbo1);zoom on; grid on; %Fonction de commande en U2 sysbo2=tf([.8*15.9],[.077,1,0]) sysbf2=feedback(sysbo2,1) sysbofinal2=sysbf2*tf([4.8],[1,0]) sysbffinal2=feedback(sysbofinal2,1) sysbofinale2=sysbffinal2*tf([.25*9.81],[1,0]) figure(2) bode(sysbofinale2);margin(sysbofinale2);zoom on; grid on; %Fonction de commande en U3, sysbo3=tf([.9*14.9],[.077,1,0]) sysbf3=feedback(sysbo3,1) sysbofinal3=sysbf3*tf([4.7],[1,0]) sysbffinal3=feedback(sysbofinal3,1) sysbofinale3=sysbffinal3*tf([.28*9.8],[1,0]) figure(3) bode(sysbofinale3);margin(sysbofinale3);zoom on; grid on; %Fonction de commande en U4 sysbo4=tf([22*.57],[.077,1,0]) sysbf4=feedback(sysbo4,1) sysbofinal4=sysbf4*tf([4.6],[1,0]) figure(4) bode(sysbofinal4);margin(sysbofinal4);zoom on; grid on;

Figure 4: Programme Matlab permettant d'obtenir les diagrammes de Bode du système linéarisé corrigé

V’2(p) Ω2(p) xI

al 02 ω

p1

pg V(p) P(p) Φ(p)

V’3(p) p1

pK

τ+1 p1

V’4(p) p1

pK

τ+1Ω4(p) R(p)

p1 Ψ(p)

zIb 02 ω

U(p) Ω3(p) Q(p) Θ(p) yI

al 02 ω

pg

BOUCLE INTERNE BOUCLE INTERMEDIAIREBOUCLE EXTERNE

10

Page 11: Report 3

On obtient alors les diagrammes de Bode des Figures 5, 6, 7 et 8 pour les fonctions de transfert en boucle ouverte des 4 chaînes d’asservissement.

Frequency (rad/sec)

Pha

se (d

eg);

Mag

nitu

de (d

B)

Bode Diagrams

-40

-20

0

20

40

60Gm = Inf, Pm=50.333 deg. (at 10.77 rad/sec)

10-1 100 101 102-180

-160

-140

-120

-100

-80

Figure 5: Diagrammes de Bode de la fonction de transfert en boucle ouverte commandant W

Frequency (rad/sec)

Pha

se (d

eg);

Mag

nitu

de (d

B)

Bode Diagrams

-100

-50

0

50Gm=10.29 dB (at 7.8138 rad/sec), Pm=62.059 deg. (at 2.3903 rad/sec)

10-1 100 101 102-400

-300

-200

-100

0

Figure 6: Diagrammes de Bode de la fonction de transfert en boucle ouverte commandant V

11

Page 12: Report 3

Frequency (rad/sec)

Pha

se (d

eg);

Mag

nitu

de (d

B)

Bode Diagrams

-100

-50

0

50Gm=9.8787 dB (at 7.939 rad/sec), Pm=58.792 deg. (at 2.6383 rad/sec)

10-1 100 101 102-400

-300

-200

-100

0

Figure 7: Diagrammes de Bode de la fonction de transfert en boucle ouverte commandant U

Frequency (rad/sec)

Pha

se (d

eg);

Mag

nitu

de (d

B)

Bode Diagrams

-100

-50

0

50Gm=9.015 dB (at 12.762 rad/sec), Pm=65.345 deg. (at 4.9055 rad/sec)

10-1 100 101 102-300

-250

-200

-150

-100

-50

Figure 8:Diagrammes de Bode de la fonction de transfert en boucle ouverte commandant Ψ

12

Page 13: Report 3

Pour obtenir ces derniers diagrammes, nous avons eu uniquement recours à des correcteurs proportionnels. Les valeurs de ces derniers figurent sur le modèle Simulink ci-dessous (Figure 9). Ce dernier modèle est réalisé pour effectuer la simulation du système linéarisé corrigé.

Figure 9: Modèle Simulink du système linéarisé corrigé

La simulation fournit les réponses en vitesse w(t), v(t), u(t), de l’angle ψ(t), ainsi que les réponses des tensions V’i(t) pour une entrée en échelon (amplitude de 1 m/s resp. 1 rad) appliquée au système. Ces réponses sont représentées ci-dessous (Figures 10, 11 et 12).

Figure 10: Réponse du système linéarisé corrigé à un échelon de consigne de 1 m/s (vitesses w et v)

13

Page 14: Report 3

Figure 11: Réponse du système linéarisé en réponse à un échelon de consigne (vitesse u et angle ψ)

Figure 12: Réponse du système linéarisé corrigé à un échelon de consigne (Tensions V’i)

14

Page 15: Report 3

4.4.3 Exploitation des résultats et bilan de la modélisation

a) Exploitation des réponses en vitesse et en angle Avec le cahier des charges de l’étude précédente, notre quadricoptère réagit avec une

bonne rapidité. En effet le temps du premier maximum pour la vitesse w est de l’ordre de 0,3 secondes et celui pour les vitesses u et v est d’à peine 1 seconde. Enfin le temps de réponse de l’angle ψ est également très bon puisqu’il est de l’ordre de 0,5 secondes. Cette bonne rapidité s’accompagne d’une bonne stabilité avec des dépassements raisonnables. Ces derniers ne dépassent pas 10% pour les quatre réponses.

Enfin, on constate bien que l’erreur statique est nulle dans chacun des quatre cas.

b) Exploitation des réponses en tension Pour les quatre réponses en tension la convergence se fait rapidement et le temps de

réponse est faible. En revanche ce qui est plus important, c’est l’amplitude maximale des oscillations de tension. On rappelle que ces tensions sont telles que : DCBA VVVVV +++=′1 ,

, DB VVV −=′2 CA VVV −=′3 et DBCA VVVVV −−+=′4 (avec VA, VB, VC et VD les tension d’entrée des quatre moteurs). Or les tensions d’entrée des moteurs ne peuvent être supérieures en valeur absolue à 3 V (Tension maximale admissible – Tension d’alimentation des moteurs en régime permanent en modélisation linéaire = 9 V – 6,24 V). Par conséquent la variation maximale autorisé pour les tensions V’2 et V’3 est de 6 V et celle pour les tensions V’1 et V’4 est de 12 V. Cette valeur limite donc la plage des valeurs des vitesses u, v, w et de l’angle ψ.

D’après les courbes précédentes, nous constatons que pour une entrée en échelon d’amplitude 1 m/s, l’amplitude des tensions V’2 et V’3 reste largement inférieure à 6 V (amplitude de l’ordre de 0,5V). Par contre, on note que pour le même échelon d’entrée, l’amplitude de la tension V’1 est 20 fois supérieure à l’amplitude des tensions V’2 et V’3 (amplitude de l’ordre de 10V). Ceci peut s’expliquer par le fait que la tension V’1 est la tension de commande de la vitesse ascensionnelle w, et on peut imaginer qu’il est plus difficile de faire monter le quadricoptère (en raison de la résistance due au poids) que de le faire avancer à l’horizontale (rôle des vitesses v et u). La plage de vitesse acceptable (pour ne pas saturer) pour les vitesses u et v sera donc plus grande que la plage de vitesses acceptables pour w.

Enfin, pour un échelon de 1 rad (soit environ 57°), on constate que la tension V’4 dépasse brièvement mais de manière très importante le seuil de 12V. On peut admettre un dépassement de la tension de seuil maximale admissible de quelques dizaines de volts, à condition bien sûr que ce dépassement reste bref. Dans notre cas, ce dépassement se fait sur plus d’une demi seconde avec une amplitude atteignant les 100 V. Par conséquent le système sera en saturation. La valeur de l’échelon est trop importante. La rotation du quadricoptère ne sera pas linéaire. Par conséquent, si l’on veut éviter une saturation du système lors de la rotation du quadricoptère d’un angle ψ dans le plan horizontal, il faut imposer des échelons inférieures à 45° au moins.

De ces considérations sur les tensions applicables aux moteurs on déduit donc les plages admissibles pour w et ψ afin que le quadricoptère reste en dehors du régime saturé:

°≤

≤ −

45

.4 1

ψ

smw

15

Page 16: Report 3

5 Commande modale

L’objectif de cette partie est de corriger le système linéaire par commande modale. Pour réaliser cette correction nous reprenons et traitons séparément les quatre modèles indépendants d’ordre 2 (commande de w), 3 (commande de ψ), 4 et 4 (commandes de u et v) auxquels la modélisation linéaire nous avait conduit.

Pour chaque modèle, il s’agit de choisir des pôles cohérents et de calculer le retour d’état. Enfin une simulation sous Simulink nous permettra de conclure quand à l’efficacité de la commande par retour d’état.

Mais déterminons dans un premier temps pour chacun des 4 modèles l’équation d’état de la forme . BuAxx +=&

5.1 Détermination des équations d’état et choix des variables d’état

On détermine les équations d’état des quatre modèles en se référant aux équations linéarisées au paragraphe 2. On obtient alors aisément les équations qui figurent ci-dessous. Les notations des différentes variables et constantes sont celles employées précédemment.

a) Pour le modèle commandant w Variables d’état : w et Ω1

11

0

1

0

10

20

VKwma

w′+

Ω−=

Ω ττ

ω

&

&

111 78,420

029,140024,00

Vww

′+Ω

−=

Ω&&

AN :

b) Pour le modèle commandant v Variables d’état : v, φ, p et Ω2

2

2

0

2

000

1000

2000

0100000

VKp

v

Ial

g

p

v

x

′+

Ω−

=

Ω τ

ϕ

τ

ωϕ

&

&

&

&

2

22 78,420000

29,14000491,000001000081,90

Vp

v

p

v

′+

Ω−

=

Ω

ϕϕ

&

&

&

&

AN :

c) Pour le modèle commandant u Variables d’état : u, θ, q et Ω3

3

3

0

3

000

1000

2000

0100000

VKq

u

Ial

g

q

u

y

′+

Ω−

=

Ω τ

θ

τ

ωθ

&

&

&&

3

33 78,420000

29,14000461,000001000081,90

Vq

u

q

u

′+

Ω−

=

Ω

θθ

&

&

&

& AN :

16

Page 17: Report 3

d) Pour le modèle commandant ψ Variables d’état : ψ, r et Ω4

3

4

0

4

00

100

200

010V

Kr

Ib

rz

′+Ω

τ

ψ

τ

ωψ

&

&

&4

44 78,42000

29,14000175,000010

Vrr ′+Ω−

ψψ

&

&

& AN :

5.2 Détermination des pôles

On vérifie que ces quatre équations d’états sont à la fois commandables et observables, les matrices de commandabilité et d’observabilité associées étant de rang plein.

a) Modèle d’ordre 2 (Commande de w) Nous souhaitons un temps de réponse de l’ordre de 0,3 s. Par conséquent le premier pôle sera p1 = -10. Et afin d’être cohérent avec l’ordre du système, on choisit un pôle supplémentaire choisi de telle sorte qu’il soit nettement plus rapide que p1. On opte pour p2 = -15.

b) Modèle d’ordre 3 (Commande de ψ) Nous imposons une dynamique dominante du second ordre, spécifiée à travers sa pulsation propre ω0 = 10 rad/s et son coefficient d’amortissement ξ = 0,6. Ces valeurs sont en accord avec notre cahier des charges qui, rappelons le, est le suivant :

- Erreur statique nulle - Temps de réponse : 0,3 s - Dépassement : 10 %

Le polynôme caractéristique est alors de la forme : , de racines 200

2 2 ωζω ++ qq i⋅±− 0,80,6 . Comme précédemment, afin d’être cohérent avec l’ordre du modèle, nous choisissons un troisième pôle p3 = -15 en plus des pôles p1 = -6 + 8i et p2= -6 – 8i.

c) Modèles d’ordre 4 (Commandes de u et v) Là encore nous imposons une dynamique d’ordre 2, avec les mêmes spécifications. Les pôles retenus sont alors les suivants :

p1= -6 + 8i, p2 = -6 – 8i, p3 = p4 = -15.

5.3 Calcul du retour d’état

Le calcul du retour d’état correspondant (réalisé à l’aide de Matlab et de la fonction place()) (K permet de jouer sur la stabilité du système, β permet de jouer sur l’amplitude de la réponse indicielle) donne, après détermination du coefficient β :

refii eKxV ⋅+−= β'

Détermination du coefficient β pour la commande modale de la vitesse w:

ref

wβψ+

Ω⋅−−=′

11 028,067,14Comme

111 78,420

029,140024,00

Vww

′+Ω

−=

Ω&& (1) et V (2)

En remplaçant (2) dans (1), en se plaçant en régime permanent et en imposant que ψ = ψref, on montre que β = -14,67.

17

Page 18: Report 3

Pour la commande de w : K = [-14,67 0,028] β = -14,67 Pour la commande de v : K = [7,40 20,81 2,66 0,057] β = 7,40

Pour la commande de u : K = [-7,88 22,17 2,84 0,057] β = -7.88 Pour la commande de ψ : K = [203,7 38,0 0,033] β = 203,7

5.4 Simulation avec Simulink

On réalise alors le modèle Simulink correspondant (cf. Figure 14). La simulation est réalisée avec des échelons d’amplitude 1 m/s (resp. 1 rad pour ψ). On

obtient les courbes suivantes (Figure 13):

Figure 13: Réponses à un échelon des vitesses u, v, w et de l'angle ψ après correction du système linéaire par commande modale

Les réponses obtenues permettent de valider notre cahier des charges initial. Le temps de réponse des quatre sorties est de l’ordre de la demi seconde, ce qui est tout à fait acceptable. De même le dépassement reste très faible ce qui traduit une très bonne stabilité.

Page 19: Report 3

s

Figure 14: Modélisation sous Simulink de la commande modale pour les quatre systèmes indépendant

19

Page 20: Report 3

6 Vérification du modèle linéaire adopté : simulation du système sous Simulink à partir des équations non linéaires

On réalise la simulation du système non linéaire sous Simulink afin de comparer les résultats de cette simulation avec ceux obtenus par la modélisation linéaire des paragraphes précédents. Ceci permettra de valider ou non ce modèle linéaire.

Nous allons décrire la réalisation du modèle Simulink représenté en Figures 15 et 17 ci-après.

6.1 Conception de « l’architecture externe »

Le modèle non linéaire conserve les correcteurs en cascade implémentés pour les quatre chaînes d’asservissement du modèle linéaire (commande de u, v, w et ψ). Pour chacune de ces quatre chaînes d’asservissement nous obtenons en sortie des correcteurs une tension factorisée V’i (cf. § 4.1), résultat de la linéarisation du système. Or ce sont les tensions réelles Vi d’entrée des quatre moteurs du quadricoptère qui nous intéressent. De plus chaque tension Vi est une combinaison linéaire des tension V’i de telle sorte que l’on obtient le système suivant :

⎪⎪⎪⎪

⎪⎪⎪⎪

′−′−′=

′+′−′=

′−′+′=

′+′+′=

424

24

24

2

421

431

421

431

VVVV

VVVV

VVVV

VVVV

D

C

B

A

Ce système est réalisé sous Simulink à l’aide d’un multiplexeur à quatre entrées (V’1,

V’2, V’3 et V’4) en série avec quatre blocs function, contenant chacun l’une des quatre équations précédentes. Par conséquent les entrées de notre système non linéaire à proprement parler sont les tensions d’entrée des moteurs VA à VD. Ce système non linéaire est réalisé à l’aide d’un subsystem et est régi par les 9 équations non linéaires exposées au § 2. Les sorties du système non linéaire seront également au nombre de 9 (u, v, w, p, q, r, φ, θ et ψ). Afin de garder la cohérence avec la correction adoptée lors de la modélisation linéaire, il faut reboucler la sortie X avec les correcteurs corrigeant la variable X.

Ainsi, prenons par exemple la deuxième chaîne d’asservissement commandant la vitesse v et comportant trois correcteurs proportionnels. Le correcteur le plus interne à la chaîne corrige la vitesse angulaire p. Par conséquent la sortie p du système non linéaire sera reliée à l’entrée de ce correcteur afin de réaliser un premier bouclage sur la vitesse angulaire p. Le second correcteur agit sur l’angle φ. Par conséquent, la sortie φ du système non linéaire sera reliée de telle manière à former une seconde boucle d’asservissement englobant la première. Enfin le troisième correcteur corrige la vitesse v. La sortie v du système non linéaire

20

Page 21: Report 3

réalisera donc la troisième boucle d’asservissement, la plus externe. On retrouve ainsi nos trois boucles de corrections en cascade réalisées pour le système linéaire.

On procède de la même manière pour les trois autres chaînes commandant w, u et ψ.

Figure 15: Modèle Simulink de l'architecture externe du système non linéaire corrigé

Nous venons de réaliser l’architecture externe de notre modélisation non linéaire. Il s’agit alors de modéliser le système non linéaire à proprement parler régi par les 9 équations, qui cette fois-ci ne sont pas linéarisées.

6.2 Conception de « l’architecture interne »

Le subsystem Système_non_linéaire (cf. Figure 15) est composé d’un multiplexeur à 13 entrées en série avec neuf subsystem dénommés RFD1-3, TMD1-3 et Euler1-3 (cf. Figure 17). Les 13 entrées sont constituées des 9 inconnues u, v, w, p, q, r, φ, θ et ψ, ainsi que des quatre vitesses de rotation ωA-D. De cette manière chaque subsystem permet de modéliser l’une des 9 équations du § 2 (à l’aide du bloc function) en retenant en entrée les variables parmi les 13 qui y interviennent.

De plus chaque équation donne accès à l’expression d’une inconnue, qui constituera la sortie du subsystem. Par exemple la sortie du subsystem TMD3 sera la variable r. Ainsi on aboutit à 9 sorties correspondant aux neuf sorties du subsystem Système_non_linéaire.

A ce stade il reste alors un dernier problème à régler. Nous venons de voir comment étaient connectées les sorties du sous-système. Il reste à voir comment se fait la connectique des entrées du multiplexeur. En ce qui concerne les vitesses de rotation, elles sont reliées dans un premier temps aux quatre tensions VA-D (qui sont les entrées du sous-système Système_non_linéaire) par l’intermédiaire des quatre moteurs M1 à M4. Ces derniers sont

21

Page 22: Report 3

modélisés par leurs équations non linéaires. Dans le modèle Simulink, le moteur n° i est modélisé par un subsystem Mi faisant intervenir un bloc function contenant l’équation non linéaire reliant la sortie Ωι à l’entrée Vi (cf. Figure 16):

Figure 16: Subsystem modélisant le moteur M1 sous Simulink

Or cette façon de procéder s’avère être insuffisante après première simulation. En effet on constate une divergence de l’angle ψ en réponse à des échelons dont l’amplitude dépasse un certain seuil, alors que les réponses en vitesse restent convergentes. Ceci peut s’expliquer par le fait que certaines tensions deviennent négatives ce qui devrait entraîner un changement de sens de rotation des hélices. Or l’expression du couple et des forces étant fonction du carré des vitesses de rotation, il y a incohérence. Par conséquent, la mise en place d’un dispositif prenant en compte la saturation des tensions en entrée de chaque moteur s’impose. Concrètement il s’agit de limiter la plage de tensions à l’intervalle [0V,9V].

De plus, pour être tout à fait cohérent, nous devons additionner à chaque tension de commande en entrée du sous-système une tension constante correspondant à la tension aux bornes des moteurs en régime permanent. Cette dernière est de 5,14 V après calculs.

Enfin en ce qui concerne les 9 variables restantes, il suffit de réaliser un bouclage entre l’entrée et la sortie correspondante (cf. Figure 17).

Une fois cette modélisation réalisée, nous pouvons désormais passer à la simulation.

Figure 17: Modèle Simulink de l'architecture interne du système non linéaire corrigé

22

Page 23: Report 3

6.3 Simulation avec le modèle non linéaire

La simulation consiste à appliquer successivement un échelon de vitesse de 1 m/s à chaque chaîne de commande et de 1 rad à la dernière commandant en ψ. On relève alors les courbes suivantes :

Figure 18: Réponse des vitesses w et v à un échelon de 1 m/s pour le système non linéaire

Figure 19: Réponse de la vitesse u et de l'angle ψ à un échelon de consigne de 1 m/s et 1 rad pour le

système non linéaire

Il est intéressant de noter l’influence de la saturation sur le temps des réponses ci-dessus. En effet, pour l’angle ψ par exemple, on constate que pour des amplitudes inférieures à 0,5 radians, le temps de réponse est de l’ordre de 0,5 secondes alors qu’il est de l’ordre du double pour un échelon de commande de 1 radian. On constate en outre que plus l’amplitude de l’échelon d’entrée augmente, et plus le temps de réponse augmente. A noter que l’angle ψ est la variable qui est la plus sensible à la saturation.

23

Page 24: Report 3

6.4 Comparaison entre modèles linéaire et non linéaire

Voici les courbes comparatives entre modèle linéaire et modèle non linéaire obtenues à l’aide de Matlab Simulink :

Figure 20: Comparaison des réponses en vitesse et angulaire à un échelon entre les modèle linéaire et non linéaire

D’après ces courbes il y a cohérence entre le modèle linéaire et le modèle non linéaire

pour les vitesses u, v et w : les temps de réponse et les dépassements sont sensiblement les mêmes (0,3s pour w et 1s pour u et v). En ce qui concerne l’angle ψ, les réponses des modèles linéaire et non linéaire diffèrent en raison de la saturation. Nous avons vu que la saturation avait tendance à faire augmenter le temps de réponse. Le quatrième graphique illustre donc bien l’influence de la saturation.

24

Page 25: Report 3

7 Réalisation d’un programme de simulation et vérification du comportement

7.1 Présentation générale

L’objectif de cette partie est de mettre en place des scénarios tests permettant de vérifier le bon comportement du quadricoptère en réponse à des commandes prédéterminées, ainsi que la validité des correcteurs proposés.

Pour ce faire, nous reprenons le modèle non linéaire développé sous Simulink au paragraphe précédent. Le travail consiste alors à vérifier que les correcteurs permettent le maintien de performances satisfaisantes en réponse à des signaux d’entrée donnés par l’observation des neuf variables de sortie du système.

Les signaux d’entrées utilisés seront des rampes de pente variable.

Figure 21: Programme de simulation permettant de mettre en oeuvre des scenarios-tests

7.2 Scénario test n°1

7.2.1 Descritpion L’objectif du premier scénario test est de vérifier le bon fonctionnement des quatre

commandes u, v, w et ψ, prises chacune à part afin d’analyser l’influence de chacune de ces quatre variables sur les huit autres.

25

Page 26: Report 3

Le vol que nous avons envisagé pour ce premier scénario-test est le suivant : Temps (en s) Evolution du quadricoptère correspondante

0<t<1 Immobile au sol 1<t<3 Mouvement ascensionnel vertical à accélération constante de 2 m.s-2

3<t<4 Mouvement ascensionnel vertical à vitesse constante w = 4m/s 4<t<6 Mouvement ascensionnel vertical à décélération constante de 2 m.s-2

6<t<9 Mouvement horizontal selon x à accélération constante de 1,66 m.s-2

9<t<13 Mouvement horizontal selon x à vitesse constante u = 5 m/s 13<t<16 Mouvement horizontal selon x à décélération constante de 1,66 m.s-2

16<t<17 Immobile à hauteur constante 17<t<19 Rotation dans le plan horizontal à vitesse angulaire constante de 0,25 rd.s-2

19<t<23 Immobile à hauteur constante 23<t<25 Rotation dans le plan horizontal à vitesse angulaire constante de -0,25 rd.s-2

25<t<27 Mouvement horizontal selon y à accélération constante de 2,5 m.s-2

27<t<31 Mouvement horizontal selon y à vitesse constante u = 5 m/s 31<t<33 Mouvement horizontal selon y à décélération constante de 2,5 m.s-2

33<t<39 Atterrissage avec la commande opposée à celle du démarrage Les évolutions des différentes sorties du quadricoptère sont représentées sur la figure ci-dessous :

Figure 22: Evolution des 9 sorties du quadricoptère pour le scénario test n°1

26

Page 27: Report 3

7.2.2 Analyse des résultats obtenus

En ce qui concerne les réponses de u, v, w et y, elles suivent avec un très bon temps de réponses les lois de commandes qui leurs sont imposées. Pour ces quatre variables, la loi de commande est représentée en trait plein sur la figure précédente et la réponse l’est en trait pointillé.

On peut en outre mettre en évidence les dépendances qui existent entre les différentes sorties du système. On constate ainsi qu’une variation de la vitesse ascensionnelle w n’a d’influence sur aucune des huit autres variables. En revanche une augmentation de la vitesse u (vitesse selon l’axe x) va se traduire par une inclinaison du quadricoptère par rapport à l’axe y (angle θ), ce qui semble intuitif. De même une décélération du système selon x va provoquer une rotation de ce dernier par rapport à l’axe y, mais en sens opposé. De la même manière une variation de la vitesse v (vitesse selon l’axe y) se traduit par une inclinaison du quadricoptère par rapport à l’axe x (angle φ). Même remarque que précédemment pour une décélération selon l’axe y. Enfin une rotation dans le plan horizontal n’a d’influence que sur la vitesse angulaire r(t), ce qui est logique.

Par conséquent, ce scénario test permet de conclure quand au bon fonctionnement de chaque commande prise indépendamment les unes des autres. Pour ces lois de commande simples, les correcteurs synthétisés affichent de bonnes performances.

7.3 Scénario test n°2

7.3.1 Description

Ayant désormais la certitude que chaque commande prise indépendamment des autres fonctionne correctement, nous pouvons envisager pour ce scénario-test des commandes plus complexes mettant en jeu plus d’une commande à la fois. Le démarrage pourra se faire comme suit par exemple :

- une première phase de décollage vertical - une deuxième phase combinant un mouvement ascensionnel vertical combiné à un

mouvement horizontal selon l’axe x du repère mobile. Nous appliquons ensuite à partir d’un instant t donné une commande en vitesse supplémentaire portant sur v (vitesse selon y). Le quadricoptère se dirige donc selon la bissectrice de (xOy). Enfin l’atterrissage se fait de la même manière que la phase de démarrage, mais dans le plan bissecteur de (xOy).

On obtient ainsi les courbes d’évolution des sorties représentées sur la figure 23.

7.3.2 Analyse des résultats obtenus

L’analyse de la première partie (pour 0 < t < 30 s) de ce scénario test est semblable à celle du premier scénario. Le fait d’effectuer plusieurs commandes simultanément au cours de la première partie sur notre système ne le déstabilise pas plus que précédemment. On constate en outre les mêmes dépendances entre les différentes sorties (une commande sur u influe sur l’angle θ, etc.).

27

Page 28: Report 3

Figure 23: Evolution des 9 sorties du quadricoptère pour le scénario test n°2

La phase la plus intéressante de ce scénario est la phase d’atterrissage durant laquelle

le système perd en stabilité. Ainsi on constate l’apparition d’une faible oscillation de la vitesse u par rapport à la consigne en fin de décélération. Ceci se traduit par une forte oscillation de l’angle θ (amplitude de 0,5 rad), donc de la vitesse angulaire q. De même la décélération parallèle selon la vitesse v entraîne des oscillations de l’angle φ (et par la même occasion de la vitesse angulaire p). On remarque de plus que ceci entraîne une faible variation de l’angle ψ (variation de la vitesse angulaire r par conséquent). Enfin le fait de descendre tout en maintenant une vitesse horizontale u constante entraîne de petites oscillations de la vitesse w.

Par conséquent, un atterrissage selon ce procédé est à proscrire, vu l’instabilité du système, qui se traduit par des oscillations selon les trois angles d’Euler. On préconisera un atterrissage vertical classique.

28

Page 29: Report 3

7.4 Autres scénarios possibles et bilan

Le nombre de scénarios réalisables est bien évidemment illimité par le fait que l’on peut placer en entrée n’importe quelle forme de signal.

Il est néanmoins intéressant de constater que les deux précédents scénarios modélisent de façon intuitive assez bien le comportement réel de notre quadricoptère. Ils permettent également de valider le modèle de correcteurs mis en jeu. Il reste alors à savoir si la correction cascade retenue est compatible avec les contraintes mécaniques du poids et de l’encombrement ainsi que peut-être avec une autre contrainte, économique celle-ci, à savoir le coût.

8 Conclusion

L’étude que nous avons menée nous donne des résultats satisfaisants au regard des spécifications qui étaient demandées. La commande ainsi réalisée, permet au quadricoptère de répondre rapidement et de corriger les perturbations engendrées par les variations des différents paramètres en fonction de la commande imposée. Cependant lors de cette étude, nous avons négligé les forces de frottements et la structure aérodynamique du quadricoptère. Une étude plus approfondie devra prendre en compte ces aspects, et en particulier devra tenir compte des perturbations, dues aux écoulements d’air le long du quadricoptère ou d’éventuelles perturbations météorologiques, telles que des rafales de vent. Nous avons été très intéressé de travailler sur ce projet, qui visait à concevoir un système automatique dans le but d’être intégré dans un projet réel de conception d’un quadricoptère.

29

Page 30: Report 3

ANNEXE 1 DONNEES RELATIVES AU QUADRICOPTERE

Données numériques quadricoptère :

- masse (hors moteurs et hélices) : 0,351 kg - masse totale : m = 0,555 kg - distance GA : l = 22,6.10-2 m - interties :

Ix = 6,2.10-3 kg.m.s-2

Iy = 6,6.10-3 kg.m.s-2

Iz = 24,9.10-3 kg.m.s-2

- force et couple créés par chaque hélice : a = 3,33.10-5 N.s-2

b = 1,08.10-6 N.m.s-2

Données numériques moteur et hélice (ordres de grandeur) :

- résistance moteur : R = 0,5 Ω - inductance moteur : L = 0,33.10-3 H - tension maximale : Vmax = 9 V - inertie du moteur à vide : I = 20.10-7 kg.m2 - constante de couple : Kc = 4.10-3 N.m.A-1 - constante de force électromotrice : Ke = 4.10-3 V.s - réducteur de rapport : 1/N = 1/5 - masse de l’ensemble moteur-réducteur : 45.10-3 kg (maximum) - longueur de l’hélice : lh = 30.10-2 m (maximum) - masse de l’hélice : mh = 6.10-3 kg (maximum)

30

Page 31: Report 3

ANNEXE 2 DIAGRAMMES DE BODE DES FONCTIONS DE TRANSFERT EN BOUCLE

OUVERTE DU SYSTEME LINEARISE NON CORRIGE

1) DIAGRAMMES DE BODE DE LA FONCTION DE TRANSFERT EN BOUCLE OUVERTE COMMANDANT W :

Frequency (rad/sec)

Pha

se (d

eg);

Mag

nitu

de (d

B)

Bode Diagrams

-60

-40

-20

0

20Gm = Inf, Pm=86.543 deg. (at 0.78457 rad/sec)

10-1 100 101 102-180

-160

-140

-120

-100

-80

31Frequency (rad/sec)

Pha

se (d

eg);

Mag

nitu

de (d

B)

Bode Diagrams

-40

-20

0

20

40

60Gm = Inf, Pm=47.795 deg. (at 11.778 rad/sec)

10-1 100 101 102-180

-160

-140

-120

-100

-80

2) DIAGRAMMES DE BODE DE LA FONCTION DE TRANSFERT EN BOUCLE OUVERTE COMMANDANT U

Page 32: Report 3

Frequency (rad/sec)

Pha

se (d

eg);

Mag

nitu

de (d

B)

Bode Diagrams

-40

-20

0

20

40

60Gm = Inf, Pm=49.078 deg. (at 11.258 rad/sec)

10-1 100 101 102-180

-160

-140

-120

-100

-80

3) DIAGRAMMES DE BODE DE LA FONCTION DE TRANSFERT EN BOUCLE OUVERTE COMMANDANT V

Frequency (rad/sec)

Pha

se (d

eg);

Mag

nitu

de (d

B)

Bode Diagrams

-80

-60

-40

-20

0

20Gm = Inf, Pm=87.489 deg. (at 0.56945 rad/sec)

10-1 100 101 102-180

-160

-140

-120

-100

-80

4) DIAGRAMMES DE BODE DE LA FONCTION DE TRANSFERT EN BOUCLE OUVERTE COMMANDANT Ψ

32