Vous êtes sur la page 1sur 5

TP OSS

I. Découverte de Simulink

L’objectif c’est de simuler l’évolution temporelle d’une sinusoïde


Réaliser la figure suivante :

Configurer le bloc « Signal Generator » pour générer une sinusoïde d’amplitude 5 V, de fréquence 1 Hz
et de phase nulle à l’origine. Analyser la courbe
Modifier les paramètres de simulation. Dans le menu Simulation, sélectionnez Model Configuration
Parameters et suivre les étapes suivants :
a) Choisir l’instant de départ : généralement 0 seconde
b) Choisir de façon pertinente l’instant de fin de simulation.
c) Choisir le type de solver option: fixed-step
d) Choisir le solver : ode4 (Runge-Kutta)
e) Choisir la pas de simulation (fixed-step size) : 0.01
Après cette phase de paramétrage, relancez à nouveau la simulation. Analyser la courbe
Réaliser la figure suivante

• Step : dans Sources, générateur de l’échelon. Choisissez à la date 0 et d’amplitude 1.


•Transfert fcn : dans Continuous, et permet de définir une fonction de transfert. Changez les paramètres
pour qu’elle corresponde à la fonction de transfert demandée.
• Mux : dans Signal routing, il permet de multiplexer plusieurs signaux dans un fil. Si on veut avoir
l’entrée (l’échelon), la sortie en BO et en BF dans le même graphique, il faut avoir 3 entrées au Mux.
• Sum : dans Math Operations, permet de réaliser le comparateur. Il faut choisir les signes + et -.
• Scope : il se trouve dans Sinks, c’est un scope rudimentaire pour avoir rapidement un tracé des courbes.
• ToWorkspace: dans Sinks, permet de récupérer le résultat de la simulation dans une variable
exploitable sur Matlab (ligne de commande). Paramétrez ce bloc pour avoir le résultat au format array.
Définir le temps de simulation à 300

II. Complément de Matlab


Essaie de taper successivement dans Matlab les commandes suivantes :
• num=[10];den=[60,1]; num et den sont des vecteurs ; num représente le numérateur et den represente le
dénominateur d’une fonction de transfert que l’on souhaite étudier.
• sys=tf(num,den) définit un système linéaire dans la variable sys. Donner l’écriture rationnelle de cette
fonction de transfert.
• zpk(sys) permet d’obtenir la forme factorisée de la fonction de transfert et ainsi connaître les zéros et les
pôles du système.
• poly([a b]) donne un polynôme d’ordre 2 dont les pôles sont a et b.
1
Vérifier les exemples suivants :
a=2 ; b=1 ;
>> poly ([a b])
ans =
1 -3 2
>> roots ([1 -3 2])
ans =
2
1
• roots([x y z]) donne les racines d’un polynôme dont les coefficients (dans l’ordre des puissances
décroissantes) sont x, y et z.
x2 − x + 1 = 0
>> roots([1 -1 1]) donne les racines dans MATLAB, un polynôme est représenté par un vecteur contenant
les coefficients dans un ordre décroissant.
>>P=[2 1 4 5];
>>r=roots(P)
>>poly(r)
Évaluation d’un polynôme
Pour évaluer le polynôme en un point donné, on doit utiliser la fonction ‘polyval’.
Vérifier l’exemple suivant : x=2.5

La fonction ‘polyfit’ retourne le polynôme P de degré n permettant d’approcher la courbe y= f(x) au sens
des moindres carrés.
Vérifier l’exemple suivant ::

Ainsi, le polynôme d’interpolation de y (d’ordre length(x)-1=3) est :

2
Que font les scripts suivants :
x = [ ]; for i = 1:m if n<0
for i = 1:n for j = 1:n parite = 0;
x = [x,i]; H(i, j) = 1/(i+j-1); elseif rem(n,2) == 0
end end parite = 2;
end else
x = [ ]; parite = 1;
for i = n:-1:1 n = 0; end
x = [x,i]; a=10;
end while n < a
n = n + 1;
end

Fonction
[s1,s2,…] = nomfonction(e1,e2,…)
Le membre de gauche regroupe les sorties renvoyées par la fonction et les variables entres parenthèses
sont les entrées. Le nom du fichier doit être identique au nom de la fonction.
Utiliser le script suivant pour calculer l’aire et le volume d’une sphère

function [A,V] = mafonction(r)


r= input('Veuillez entrer le rayon r: ');
% calcul Aire
A = 4*pi*r^2;
% calcul Volume
V = 4*pi*r^3/3;

III. Retour dans Simulink (Utilisation du Control Toolbox)


Soit le système décrit par :

où s désigne la variable de Laplace. A l’aide de Matlab, on peut définir alternativement :


>>F=tf([2 1],[1 2 1]) (numérateur et dénominateur de la fonction de transfert)
ou
>>F=zpk([-1/2],[-1 -1],2) (zéros, pôles et facteur de gain de la fonction de transfert)

Pour constituer un système à l’aide de différents sous-systèmes on peut effectuer différentes opérations.
Soit G1 et G2 les représentations des deux systèmes. Les combinaisons de base
sont :
>>G1*G2 ou >>series(G1,G2) G1 en série avec G2
>>G1+G2 ou >>parallel(G1,G2) G1 en parallèle avec G2
>>feedback(G1,G2) G1 bouclé par G2
On peut obtenir diverses informations sur le système défini par sa représentation G :
>>pole(G) donne les pôles du système
>>step(G) trace la réponse indicielle
>>impulse(G) trace la réponse impulsionnelle
>>bode(G) trace le diagramme de Bode
>>nyquist(G) trace le diagramme de Nyquist
>>nichols(G) trace le diagramme de Black-Nichols
>>rlocus(G) trace le lieu d’Evans
3
>>rlocfind(G) donne les valeurs des pôles et du gain correspondant sur le lieu
d’Evans
>>damp(G) donne les pôles, ainsi que la pulsation propre et l’amortissement
associés àchaque pôle
>>pzmap(G) place les pôles et les zéros dans le plan complexe
>>zero(G) renvoie les zéros du système.
>>damp(G) renvoie l’amortissement et la pulsation propre associés aux pôles.
>>dcgain(G) renvoie le gain statique du système.
Exemple :
La fonction step simule la réponse indicielle et impulse la réponse impulsionnelle d’un système donné en
argument
Soit
>> G = tf(2,[1 2 16]);
>> step(G)
>> impulse(G)

Considérons un système modélisé par la fonction de transfert suivante :

Nous souhaiterions savoir comment le système réagit à une sollicitation de type échelon unitaire. Pour
cela, construisons un modèle Simulink afin de simuler la réponse indicielle de notre système. Nous avons
donc besoin :
d’un bloc pour représenter la fonction de transfert G(p),
d’une source pour générer le signal échelon,
et un bloc permettant la visualisation graphique de la sortie du système.

Définir dans matlab


>> G = tf(1,[1 1 2])
Paramétrons les blocs Step et LTI System pour notre exemple
Nous fixons un échelon de valeur initiale 0 (initial value), d’amplitude 1 (final value) et se déclanchant à
t=0 (step time). Nous définissons ensuite le système que nous étudions par la variable G précédement
définie dans MATLAB. Enfin, la simulation sera effectuée sur un horizon temporel de 15s.
Réalisons maintenant un asservissement avec une commande proportionnelle de gain K. Notre nouveau
modèle de simulation nous permettra de tester les performances de l’asservissement pour différentes
valeurs de K. Il peut être fixé directement depuis le bloc ou via MATLAB. Ici le multiplexeur permet
d’afficher sur un seul graphe le signal de consigne et le signal de sortie.

Pour K = 5, simuler le système puis modifier K et interpréter les effets

4
EXERCICE
On rappelle ici la modélisation du moteur a courant continu (MCC) dont l’étude va permetre d’illustrer l
es concepts fondamentaux de la Control Toolbox de Matlab. La fonction
de transfert reliant la vitesse de rotation du rotor a la tension appliquée a l’induit s’écrit :

Avec :

On rappelle que dans ce modèle R représente la résistance de l’induit du moteur, L son inductance; f est le
coefficient de frottement visqueux et J le moment d’inertie du rotor ; K est le rapport couple-courant
(supposé égal au rapport force électromotrice-vitesse de rotation).
Pour la mise au point d’un programme ou des calculs très ponctuels, vous pouvez taper vos instructions
sur la ligne de commande. Néanmoins :

Créer un fichier script matlab et définir d’abord les paramètres ci-dessus


Calculer le gain K et les constantes de temps électrique et électromécanique du
MCC. Définir alors sa fonction de transfert. Pour cela, on note Num et Den le numérateur
et le dénominateur de la fonction de transfert.
Créer une figure (avec la fonction figure) et la diviser en deux sous-tracés (avec la fonction subplot).
Dans le premier, tracer la réponse indicielle du MCC à un échelon unitaire de tension. A l’aide de la
souris, observer les caractéristiques accessibles du tracé (clic droit puis relâcher pour les caractéristiques,
pointer la courbe et clic gauche puis rester appuyé pour les valeurs). Dans la seconde sous-figure, tracer le
diagramme de Bode du MCC. Analyser les différents tracés.

Utilisation de Simulink
A l’aide de Simulink créer le modèle de l’asservissement de vitesse définit par cette figure :

On parcourra pour cela les menus de Simulink pour trouver les éléments nécessaires. En particulier le
bloc fonction de transfert, nommé Transfer Fcn sera trouvé dans le menu Continuous. Les constantes, le
numérateur et le dénominateur de la fonction de transfert seront définis dans le script qui pilotera les
simulations, à l’image de l’exemple précédent.
Sur une même figure, tracer la consigne et la réponse indicielle du système en boucle ouverte. Le tracé
sera fait sur un horizon de temps judicieusement choisi.`
Note : on peut envoyer à un oscilloscope autant de signaux que l’on veut. Par exemple, si l’on souhaite
`
afficher deux signaux différents il faut utiliser un multiplexeur `
(Mux dans le menu Signals and Systems)
pour les mettre sur une même ligne.
Définir le système en boucle fermée selon le schéma de la figure 1 avec Kp = 100.
Sur une même figure, tracer la consigne et la réponse indicielle du système en boucle fermée.
5

Vous aimerez peut-être aussi