LABORATOIRE 2
6GEI360 SYSTMES ASSERVIS
PROFESSEUR : ASSISTANT :
REMISE
Remettre : jean-gabriel_mailloux@uqac.ca
1|P a g e
INCONVNIENTS
Applicable seulement aux systmes linaires
TEMPOREL AVANTAGES
Sapplique divers systmes Solutions numriques par ordinateur
INCONVNIENTS
Pas aussi intuitif Tu es aussi bien davoir un ordinateur!!
2|P a g e
3|P a g e
Comme il nest pas possible de vous faire essayer toutes les commandes dans un seul exercice, voici un tas de commandes essayer (faire help ou doc):
Sachant que : + + =
Pour dcrire un systme avec des variables dtat Pour tudier la rponse du systme Pour analyser le systme
ss, ssdata, get, set, ss2tf, ss2zp, tf2ss, zp2ss step, impulse, lsim, ltiview poles, eig, roots, poly, pzmap, ctrb, det, inv, obsv
A.
Comme les valeurs de k, b et m sont inconnues, il faut utiliser les symboles (avec syms) pour crer ces matrices. Notez que leur contenu est de classe sym, donc, vous ne pouvez directement crer un systme avec ss().
B.
Une fois des valeurs assignes k, b et m, vous pouvez faire A = eval(A) pour obtenir une matrice contenant des valeurs numriques plutt que symboliques.
4|P a g e
Faites help ss pour avoir plus dinformation sur les diffrentes faons dutiliser cette commande. Dans notre cas, nous ne voulons pas un modle discret (pas de paramtre Ts)
D.
Pour ceux qui ont lu les notes de cours, vous vous souvenez peut-tre que la matrice de transition peut svaluer avec lquation suivante : () = exp() =
=0 k! A k tk
Dans Matlab, la commande expm() permet de calculer la matrice exponentielle. Dans notre cas, on va vouloir faire expm(A*delta t).
E.
Vous avez trouv la matrice de transition. Connaissant les valeurs de X un temps = , vous pouvez trouver 1 1 lvaluation de X = + avec lquation suivante : = exp() 2 = + 2 = Si vous vous souvenez de vos boucles for du laboratoire 1, il est concevable de calculer un grand nombre ditration afin dvaluer la valeur de x1 et x2 pendant quelques secondes. Voici comment accumuler des valeurs dans un vecteur : % Accumulation des valeurs de t et de X x_now = X0; % Valeurs de x1 et x2 initiales t = 0; for tmp=1:100 t = [t tmp*dt]; ... (code manquant) X = [X,x_now]; % Accumulation des X end % Affichage plot(t,X')
F.
Utiliser lsim() et plot() pour faire le mme graphique quobtenu de faon itrative. Cette fois, tout le travail est automatis!
5|P a g e
On se souvient que pour trouver cette quation, il suffit de faire le dterminant de la matrice identit multipli par s moins la matrice A. Donc, on veut le dterminant de (sI-A). Utilisez syms s ainsi que eye().
H.
Connaissant lquation caractristique, il est trs facile de voir la relation entre k et b, sachant que le coefficient damortissement est de 1 lors dune rponse critiquement amortie.
I.
Si vous faites get(sys) dans Matlab, vous allez voir que votre systme a plusieurs paramtres comme InputName, etc. La commande set() vous permet de changer ces paramtres. Il faut faire set(H,'OutputName',{'Position'},'InputName',{'Force'}) o H est notre systme. Pour visualiser le changement, faites get(H) et step(H).
J.
Avec impulse(), on peut maintenant observer un coup sur le ressort. Notez que vos changements de InputName et OutputName sont observables sur le graphique.
6|P a g e
Il est toujours bon de commencer par mettre le bon nombre dintgrateurs dans le schma, ensuite de nommer les signaux et finalement de joindre le tout. Utiliser premirement le bloc step comme u dentre.
7|P a g e
bv u
Nous voulons un temps dacclration de 51 secondes, pas dovershoot et peu derreur en rgime permanent. Considrons que b = 50 Ns/m et que la Veyron a une masse de 2034 kg.
()
()
8|P a g e
Le Kp nous permet damliorer le rgime transitoire, mais naide pas beaucoup pour lerreur en rgime permanent. Trouvez un Kp raisonnable pour notre temps dacclration dsir.
9|P a g e
10 | P a g e