Vous êtes sur la page 1sur 6

B.E.

REGULATION NUMERIQUE
ENSE3 U.E. AUTOMATIQUE pour l’INGENIEUR-IEE
BE1 : Modélisation, Analyse et Contrôle d’un bras
de lecture/écriture pour disque dur
Découpage indicatif :
2 heures : Sections 1 et 2 ;
2 heures : Section 3 ;
2 heures : Section 4

Introduction
Objectifs
Ce bureau d’étude récapitule quelques notions que vous avez apprises en première année
à ENSE3 puis s’intéresse à la commande d’un système avec un régulateur numérique. Le
système étudié est un bras de lecture/écriture d’un disque dur. La première partie traitera
de la modélisation du système, la seconde la partie analyse des propriétés importantes de
ce type de système et enfin la troisième portera sur le contrôle du système suivant un ca-
hier des charges défini à priori. L’objectif secondaire de ce travail est de vous familiariser
avec des outils essentiels en Automatique, à savoir MATLAB, Simulink et la Control Toolbox.

Le script MATLAB devra éviter au maximum les calculs avec des valeurs numériques
(préférer les expressions littérales).
Par exemple, dans le schéma Simulink, la période d’échantillonnage sera toujours ren-
seignée par la variable Te et non par sa valeur numérique.

1
Présentation du système
Le système à contrôler dans ce bureau d’étude est le bras de lecture/écriture d’un disque
dur illustré ci-dessous.

Figure 1 – Disque Dur

L’objectif est de réguler la position angulaire (en radians) de la tête de lecture/écriture


en dépit des perturbations. Le bras est actionné par un moteur électrique à courant continu
dont le fonctionnement dynamique est défini par les équations suivantes :
di
L (t) = −KΩ(t) − Ri(t) + u(t)
dt
(1)
dΩ
J (t) = Ki(t) − f Ω(t)
dt
où
— i(t) : courant (A)
— Ω(t) : vitesse angulaire de l’axe du moteur (rad/s)
— u(t) : tension en entrée du moteur (V )
— K = 22 · 10−3 N · m/A : coefficient de proportionnalité
— R = 12.6 Ω : résistance de l’induit
— f = 5 · 10−6 N · s/m : coefficient de frottements visqueux
— L = 1 mH : inductance de l’induit
— J = 10.7 · 10−7 N · m · s2 /rad : inertie de la charge
Avant toute chose, ouvrez MATLAB et créez un script. Définissez dans celui-
ci tous les paramètres du moteur avec leurs valeurs numériques respectives.

2
1 Modélisation et analyse du système
Dans un premier temps, il s’agit d’établir un modèle qui permettra d’analyser, de simuler
et de commander le système.
1.1 Modèle simplifié du moteur
On considère comme entrée la tension u(t) et comme sortie la vitesse angulaire de l’axe
du moteur Ω(t). Afin de simplifier le modèle, on pose :

di
(t) = 0; (2)
dt
Ω(s) K JR
déterminer la fonction de transfert Hm (s) = U (s)
en fonction de Km = K 2 +Rf
et τm = K 2 +Rf
.

1.2 Fonction de transfert du système


Nous souhaitons contrôler la position du bras de lecture/écriture y(t). Déterminer la
fonction de transfert H(s) entre l’entrée U (s) et la position du bras Y (s) (en radians),
H(s) = YU (s)
(s)
.

Dans le script MATLAB définissez la fonction de transfert H(s) du procédé – utiliser


à cette fin la fonction MATLAB tf. Il est demandé d’utiliser MATLAB pour résoudre les
questions qui suivent à chaque fois que c’est possible.
Quelques fonctions MATLAB utiles :
impulse, tf, pole, zero, dcgain, step, bode, feedback, series, plot, subplot, ...

2 Analyse du système H(s)


2.1 Etude de la stabilité
Déterminer les pôles du système ; utiliser pour cela la fonction MATLAB pole. Analyser
la stabilité du système.
2.2 Etude temporelle
A l’aide de la fonction MATLAB step, tracer la réponse indicielle du système en boucle
ouverte. Faites le lien avec la fonction de transfert H(s).

3 Asservissement continu du système


Cette partie concernera le problème du contrôle du bras suivant un cahier des charges
fixé à priori. Le régulateur sera supposé continu.

Le système bouclé devra satisfaire les contraintes suivantes :


— un temps de réponse à 5% de 0.1 s.

3
— pas de dépassement
— un gain statique unitaire
— assurer un rejet de perturbations constantes en sortie
— le comportement du système en boucle fermée sera du second ordre.
3.1 Polynôme caractéristique désiré
Déterminer, à partir du cahier des charges, le polynôme caractéristique désiré.
3.2 Choix du correcteur
A votre avis, est-il indispensable d’utiliser un terme intégral dans le correcteur pour
rejeter les perturbations constantes en sortie ? Pourquoi ?
Pour les questions suivantes, on demande de réaliser le schéma Simulink du système en
boucle fermée et de présenter les simulations associées. (N’hésitez pas à vous reporter à la
présentation de Simulink en annexe).
3.3 Correcteur proportionnel-dérivée
On vous propose de tester le correcteur Proportionnel Dérivé (avec filtre sur la dérivée)
suivant :
KD s
P D(s) = KP + (3)
1 + KND s
avec N = 100, KP = 0.7459 et KD = 0.0184. En appliquant une consigne de 0.1 radians puis
une perturbation de 0.01 radians en sortie, analysez les résultats obtenus en asservissement
et en régulation. Analyser la commande.
3.4 Rejet de perturbations en entrée
On ajoute maintenant une nouvelle contrainte : on souhaite assurer un rejet de pertur-
bations constantes (par exemple, 0.1 V) en entrée du système.
Le correcteur PD satisfait-il ce nouveau cahier des charges ? Pourquoi ?
3.5 Correcteur proportionnel-intégral-dérivée
On souhaite mettre en oeuvre un correcteur PID :
(1 + Ti s)(1 + Td s)
K(s) = Kc (4)
Ti s
permettant de satisfaire le cahier des charges. Calculer pour cela la fonction de transfert
en boucle ouverte du système lorsque l’on compense le pôle du système càd pour Ti = τm .
Puis calculer la fonction de transfert en boucle fermée HBF (s) : on cherchera à identifier le
dénominateur de la fonction de transfert HBF (s) au polynôme caractéristique désiré pour
obtenir les paramètres du correcteur.
Tester le correcteur en simulation et analysez les résultats obtenus en asservissement et
en régulation. Observez la commande.
Remarque : pour la simulation (avec Simulink), on prendra le correcteur PID avec filtre
sur la dérivée et N ' 100 :
(1 + Ti s)(1 + Td s)
Kf (s) = Kc (5)
Ti s(1 + TNd s)

4
et on utilisera le bloc LTI System de Simulink.

4 Réglages d’un correcteur PID discret : synthèse di-


recte
L’objectif de cette partie est de calculer un correcteur numérique afin que le système
en boucle fermée satisfasse le cahier des charges défini précédemment à partir du modèle
discrétisé du système.
En pratique, le correcteur est réalisé par un calculateur numérique (un PC). La mesure de
position y arrive sur un convertisseur analogique numérique (CAN) délivrant une information
avec une fréquence d’échantillonnage de fe = 100 Hz. Un convertisseur numérique analogique
(CNA), de type bloqueur d’ordre 0, est placé au niveau de la commande u.
Le correcteur numérique est de la famille des PID :

R(z) r0 + r1 z −1 + r2 z −2
K(z) = = .
S(z) (1 − z −1 )(1 + s01 z −1 )

4.1. Établir le schéma fonctionnel de l’asservissement numérique. Ne pas oublier blo-


queurs et échantillonneurs.
0
4.2. Calculer la fonction de transfert du procédé discrétisé H (z) = B(z)
A(z)
.
4.3. Écrire littéralement les fonctions de transfert en boucle fermée en asservissement et
en régulation en fonction de A(z), B(z), R(z) et S(z).
4.4. Commenter le rejet de la perturbation en sortie.
4.5. Faites un script MATLAB permettant de calculer les paramètres du correcteur K(z).
Vous pouvez vous inspirez de l’exemple vu en cours.
4.6. Déterminer l’équation aux différences à implanter sur le correcteur.
4.7. En vous inspirant de l’exemple vu en cours, réaliser dans un fichier Simulink le
schéma fonctionnel de l’asservissement numérique.
Tester en simulation le régulateur en réponse à des créneaux de consigne de 0.1 radians
puis des créneaux de perturbation de 0.1 V.
Observer la commande.
4.8. Expliquer les réponses en calculant les pôles et zéros de la fonction de transfert en
asservissement et en régulation.
4.9. Proposer un correcteur qui ne présente aucun dépassement. Le tester et observer
notamment la commande.

5
5 Un peu d’Automatique avec Simulink
Généralement, MATLAB est utilisé pour le calcul et l’utilisation de fonctions spécifiques
comme définir des polynômes, des fonctions de transferts, manipuler des variables. En re-
vanche, il n’est pas très intuitif lorsque l’on désire piloter des systèmes bouclés avec de
multiples entrées/sorties comme la consigne, les perturbations, la sortie. . .
C’est ici qu’intervient Simulink dans lequel il est graphiquement possible de construire
des systèmes bouclés sous forme de schémas blocs exactement de la même manière que dans
le cours.
De plus, une communication est possible entre les deux permettant ainsi de fusionner
leurs avantages. En effet, dans le script MATLAB (*.m) vous définirez tous les paramètres
nécessaires par des noms. Ensuite vous utiliserez ces noms dans Simulink, le lien se fait
automatiquement. N’oubliez pas de relancer le script MATLAB après chaque modification.
L’intérêt de faire cette démarche est simple. Dans le fichier de simulation Simulink, beau-
coup de valeurs numériques sont utilisées et certaines sont utilisées plusieurs fois en des
endroits différents. Cela signifie que si vous avez besoin de modifier une valeur, vous devrez
la changer en chacun des endroits où elle est utilisée. Tandis que si vous utiliser une valeur
symbolique qui n’est jamais modifiée, vous n’aurez qu’à changer une seule valeur dans le
script Matlab.

En résumé :
1. Créer un fichier d’initialisation MATLAB *.m et y inscrire les variables et constantes
utilisées, faire les opérations nécessaires pour initialiser la simulation sous Simulink.
2. Créer un fichier de simulation Simulink, construire votre schéma bloc, définir les
données de chaque bloc (en valeur symbolique), placer les signaux d’entrées et les
blocs de visualisation de sortie.
3. Lancer la simulation.

Les figures
Les figures doivent être obligatoirement titrées (utiliser la fonction title) ; les grandeurs
et les unités doivent figurer sur les axes (utiliser les fonctions xlabel et ylabel).
Pour comparer plusieurs réponses avec des paramètres différents, il est intéressant de les
placer sur une seule et même figure.
Lorsque vous tracez une réponse qui doit tendre vers une valeur spécifique (suivi de
consigne), tracez sur la même figure la réponse et la consigne. Cela permet de mettre en
évidence très simplement une éventuelle erreur statique.

Vous aimerez peut-être aussi