TP Automatique

Embed Size (px)

Citation preview

TP AUTOMATIQUE Parcours S.I.L3 EEA - L3 IE L3 EIA UNIVERSITE DE CAEN TRAVAUX PRATIQUESAUTOMATIQUE. Liste des travaux pratiques : 1 :Utilisationd'unlogicieldecalculmatricieletdesimulationen automatique. 2:Utilisationd'unlogicielgraphiquedesimulationdesystmesphysiques SIMULINK / MATLAB. 3: Identification des systmes. 4: Boucle ouverte VS Boucle ferme. 5 : Etude de la stabilit d'une boucle ferme. 6: Correction PI, PD, PID. 7 & 8: Asservissement d'un systme thermique. NOM : GROUPE : TP AUTOMATIQUE L3 EEA L3 IE L3 EIATP N1 2 Utilisation d'un logiciel de calcul matriciel et de simulation en automatique : MATLAB 6.5 Matlab est un logiciel de calcul scientifique gnral. Comme d'autres produits (Scilab, MatrixX), c'est un logiciel de calcul NUMERIQUE. Il propose notamment la rsolution numrique d'un grand nombredeproblmesmathmatiquesclassiques,duplusgrandintrtpourlesingnieursetles chercheurs. Bien plus qu'une super calculatrice, Matlabpermet de dvelopper de faon rapide des programmes de calcul scientifique pouvant prsenter des interfaces homme-machine trs conviviale avecdespossibilitsgraphiquesintressantes.Iln'estdoncpasddiundomaineouapplication technique particulire.Parmi ses utilisations, on peut citer: Mathmatique et calcul numriqueDveloppement d'algorithmes Modlisation, simulation et prototypage de systmes Analyse des donnes, exploration et visualisation Graphisme scientifique et engineeringDveloppement d'applications notamment interface graphique. Matlabprsenteunensembledefonctionsgnrales,fourniesdanssaversiondebase.Acela s'ajouteuncertainnombredegroupesdefonctionsspcialisesappelesbotesoutils: "TOOLBOX".Cesbotesoutilspermettentdetraiterdeproblmesparticuliersdessciencesde l'ingnieur:Simulink pour la simulation des systmes ControlSystemtoolboxpourlamodlisation,l'analyseetlacommande"classique"des systmes dynamiques linaires stationnaires Muanalysisandsynthesistoolboxpourmodlisation,l'analyseetlacommande "avance" des systmes dynamiques linaires stationnaires Identificationtoolboxpourl'identificationdessystmesdynamiqueslinaires stationnaires etc. TP AUTOMATIQUE L3 EEA L3 IE L3 EIATP N1 3Parexemple,lesbotesoutils"ControlSystemtoolbox"et"Muanalysisandsynthesistoolbox" traitent de la conception de lois de commande. La puissance de Matlab est d'offrir tous les lments ncessaireslaconstructionrapided'unprogrammedeCAOparsesutilisateurs.Decepointde vue,c'estunlogicieltrsouvert.Salimitationestdenepasenoffrirun"toutfait"pourun utilisateurpeuexpertquivoudraitrsoudreunproblmedeCAOsimplesansavoirfairede dveloppements.Danslecontextedel'Automatique,MATLAB(MATrixLABoratory)offreunenvironnementde simulationetdeprototypage.Lelangagetechniquepuissantestlafoisconcisetdescriptif, permettantdemodliserdessystmescomplexesavecdespetitespartiesdecodefacile comprendre.Lavastebibliothquedefonctions,disponiblescommefaisantpartiedunoyau MATLABouparl'intermdiairedeBotesOutilsorientesobjet,permettentdeconstruire rapidement des simulations et des modles pour un grand nombre de types d'applications. Les outils demodlisationvontdessolveursd'quationsdiffrentiellesdansMATLABauxfonctions spcialises des Botes Outils pour les statistiques et l'apprentissage et la modlisation de rseaux de neurones. Des fonctions intgres d'animation et des graphiques rapides charger permettent de visualiser le comportement d'un modle pour de l'analyse, des tests, du dboguage, des prsentations de rsultats. Matlabestunlangageinterprt,drivdulangageC,aveclequelilestpossibledemodifierun programme pour en voir immdiatement les effets, sans avoir recompiler comme en C. Comme la plupart des algorithmes mathmatiques avancs et de bas niveau sont dj dvelopps pour vous, le code ncessaire pour construire un modle dans MATLAB est beaucoup plus court que le code C ou C++ correspondant. Ceci rend le code MATLAB facile crire et faire voluer au cours du temps. Deux types de fonctions sont prsentes sous Matlab: celles qui sont compiles (crites en langage C) et celles crites dans le langage MATLAB qui peuvent tre reprises, modifies par l'utilisateur (d'o une grande flexibilit). MATLAB tant programme en langage C : il peut utiliser des routines en C ou tre appel partir d'un programme de langage C.LoMATLABoffreunenvironnementdeprogrammationfamilier,SimulinketStateflow fournissentunenvironnementdeconceptiongraphiquepourmodliseretsimulerdessystmes complexesdecontrle,deTraitementduSignaletdessystmescontrlsparlalogique.Btis partirdeMATLAB,cesproduitspeuventappelern'importequellefonctionMATLABycompris des routines crites par l'utilisateur, permettant de combiner le meilleur des 2 approches. Mme les fonctions des Botes Outils peuvent tre imbriques dans des schmas blocs Simulink. Le nombre de fonctions disponibles dans les diffrentes bibliothques tant trs grand, nous nous limiterons ici une description sommaire des TP. TP AUTOMATIQUE L3 EEA L3 IE L3 EIATP N1 4ACCES A MATLAB Matlab est, ici, une application Windows. En cliquant deux fois sur l'icne Matlab, s'ouvre alors la fentreprincipale.Cettefentreestdiviseenplusieurspartiescommelemontrelafigureci-dessous : AIDE SUR MATLAB Il y a deux types daide sur Matlab 6.5. La premire correspond une aide gnrale trs intressante maisquiestassezlentepourobtenirunrenseignementsurunesimplefonction.Ladeuximeest uneaideenlignequiesttrsprcieusesilonveutviterdeconsulterenpermanencelaide gnrale. Matlab est structur en sous-rpertoires de fonctions lmentaires. La liste des rpertoires est obtenue en tapant help. Fentre de travail : Workspace Rpertoire de travail ouHistorique des commandes Aide ouDtails des variables du workspace TP AUTOMATIQUE L3 EEA L3 IE L3 EIATP N1 5matlab\datafunData analysis and Fourier transform functions. matlab\elmat -Elementary matrices and matrix manipulation. matlab\elfun-Elementary math functions.matlab\general-General purpose commands. matlab\funfun -Function functions - nonlinear numerical methods. matlab\color -Color control and lighting model functions. matlab\graphics-General purpose graphics functions.matlab\iofun-Low-level file I/O functions. matlab\lang -Language constructs and debugging. matlab\matfun -Matrix functions - numerical linear algebra. matlab\ops -Operators and special characters. matlab\demos -The MATLAB Expo and other demonstrations. matlab\plotxy-Two dimensional graphics.matlab\polyfun-Polynomial and interpolation functions. matlab\sparfun-Sparse matrix functions.matlab\specfun-Specialized math functions. matlab\specmat-Specialized matrices.matlab\strfun-Character string functions. matlab\plotxyz-Three dimensional graphics.matlab\sounds-Sound processing functions. matlab\dde-DDE Toolbox.Pour obtenir le contenu d'un rpertoire, il suffit de taper help :help elmat Pourobtenirdesrenseignementssurunefonctionparticulire,parexemplezerosqui est contenue dans le bloc elmat, il suffit de taper : help zeros ZEROSAll zeros. ZEROS(N) is an N-by-N matrix of zeros. ZEROS(M,N) or ZEROS([M,N]) is an M-by-N matrix of zeros. ZEROS(SIZE(A)) is the same size as A and all zeros. Linstruction lookforzeros permetdobtenirlalistedinstructionquionunrapportavecla fonction zeros. I. UTILISATION ELEMENTAIRE Dans une premire approche, on peut utiliser les fonctions de Matlab de manire squentielle pour rsoudre un problme. Exemple:zeros(5,2)creraunematricede5lignesetdeuxcolonnesrempliesdezros.Les lmentsdecettematrice sont logs dans une variable provisoire appele ans (answer), mais cette variable sera de nouveau utilise par la fonction suivante. TP AUTOMATIQUE L3 EEA L3 IE L3 EIATP N1 6Un rsultat presque identique est obtenu en utilisant : yz=zeros(5,2) mais dans ce cas, le rsultat est logdansunevariabledontlenomestyzetquiestmaintenueenmmoireparMatlabjusqu'ce que: Matlab soit ferm. Ce nom de variable soit utilis pour stocker une autre valeur. La variable soit efface par l'instruction clear yz (utiliser help). La liste des variables en mmoire est obtenue par les commandes who (simple) ou whos (dtaille). Rsolution d'un systme d'quations linaires. Cherchons rsoudre le systme : 3x 2 y 1x y 5+ = + = Sous la forme matricielle :((

=((

((

51yx1 12 3A X = B La solution de ce problme est obtenue en calculant 1X A B= . Rsolution directe : 1.SaisirlamatriceAencrivantA=[32;-11];Lescrochetsdlimitentlamatrice,leslments sontentrsligneparligne,chaquelignetantspareparun";".Le";"aprsle"]"permetde supprimer l'affichage du rsultat l'cran. 2.Delammemanire,saisirlamatriceBetcalculerlasolutionduproblmeenutilisant l'instructioninv(helpinv).Chercherlammesolutionenutilisantl'unedesdivisions'/'ou'\' (help slash). Quelle est la diffrence entre les deux ? Rsolution graphique : Pour prendre contact avec les reprsentations graphiques de Matlab, nous allons chercher la solution du systme en visualisant l'intersection des deux droites : y 1.5 x 0.5y x 5= + = + Connaissant dj la solution, nous choisissons un domaine de variation de x = [-3, 3]. Saisir " x=[-3:0.2:3];". On cre ainsi un vecteur tel que : Son premier lment est -3. Les lments suivants sont obtenus par incrmentation de 0.2. Le dernier lment est le dernier nombre obtenu 3. En utilisant laide et la fonction linspace, recrer la variable x. TP AUTOMATIQUE L3 EEA L3 IE L3 EIATP N1 7Calculerpourchaquequationrespectivementlesvecteursy1ety2.Aveclafonctionplot, reprsenter les deux courbes sur le mme graphique. Utiliser les possibilits d'annotation graphique pour personnaliser votre graphe (title, grid,...). Rechercher les coordonnes du point d'intersection avec : 1.ginput. 2.En changeant les chelles du graphe : axis. 3.En utilisant le zoom graphique. II. UTILISATION LIEE A L'AUTOMATIQUE Matlab utilise pour les systmes LTI (Linaire et Invariant dans le Temps) une reprsentation objet. Cettereprsentationestcommunepourtous les types de reprsentation (fonction de transfert, tat, zros-ples-gain,...). Ici, nous ne verrons que la reprsentation par fonction de transfert. 1. Saisie des fonctions de transfert La fonction de transfert( )12p 2G p3p 6p 1+=+ + sera mise en mmoire grce linstruction : sys1 = tf([1 2],[3 6 1]); Le premier vecteur contient les coefficients du numrateur dans lordre des puissances dcroissantes dep.Ledeuximecontientlescoefficientsdudnominateurdanslordredespuissances dcroissantes de p. Lobjetsystmesys1estunestructurecommelemontrelarponsedulogiciellinstruction "get(sys1). >>get(sys1) num: {[0 1 2]}den: {[3 6 1]}Variable:'s'Ts:0ioDelay:0InputDelay: 0OutputDelay:0InputName: {''} OutputName:{''} InputGroup: {0x2 cell} OutputGroup: {0x2 cell} Notes: {} UserData: []Lesdiffrentschampsfournissenttouslesrenseignementsutilespourcaractriserlesystmeen question.TP AUTOMATIQUE L3 EEA L3 IE L3 EIATP N1 8 LeparamtreTs=0prcisequilsagitdunsystmecontinu,lechampioDelayrenseignesurla valeurdunretardpurventuel.Pourobtenirlavaleurduretarddelobjetsys,ilfautsaisir: "sys1.ioDelay" (analogie avec les structures du langage C). Anoterqueleschampsnumetdencorrespondentdescellules(cellenlangageMatlab),aussi pourobtenirlavaleurdudnominateurdesys,ilfauttaper:"sys1.den{1}".Cequicorrespond demander la valeur de la 1 cellule du champ den de la structure sys. On peut obtenir le vecteur contenant les lments du dnominateur en utilisant lopration de vectorisation :"sys1.den{:}". Il est possible de rcuprer le numrateur et le dnominateur dune fonction de transfert laide de la fonction "tfdata". 2. affichage des fonctions de transfert Lamanire dobtenir les caractristiques dun objet systme est tout simplement de taper son nom dans le workspace :>> sys1 Transfer function: s + 2 --------------- 3 s^2 + 6 s + 1 Entrerlesfonctionsdetransfertsuivantesetsauvegarderlenumrateuretlednominateurde chaque systme dans des variables indpendantes. Vrifier leurs proprits laide des instructions prcdentes. 2 3 420.5 1 2.5G ; G ; G 0.05p 1 p 1p 0.5p 1= = =+ ++ + 3. Opration sur les fonctions de transfert Il est possible dassembler 2 fonctions de transfert entre elles :En srie : >>sys_serie = sys1 * sys2; En parallle : >>sys_para=sys1 + sys2; Dans les deux cas, vrifier le rsultat. sys1sys2 sys1 sys2 TP AUTOMATIQUE L3 EEA L3 IE L3 EIATP N1 9 En boucle ferme :Pour calculer la fonction de transfert en boucle ferme, il existe la fonction feedback qui calcule la fonctiondetransfertenbouclefermedusystmeprsentci-dessous.Lavariablesigndfinitle type de bouclage (contre raction : - par dfaut sinon + pour une raction) : 4. Reprsentation temporelle Apartirdunefonctiondetransfert,Matlabpeutcalculerlarponsetemporelledunefonctionde transfertuneentre.Larponseimpulsionnelleetlarponseindiciellesontdjprogrammes dansdesfonctions.Lersultat de ce calcul (vecteurs contenant le temps et la rponse du systme) peuttreplacdansdesvariablesderetouroupardfautdirectementtracdansunefigure.De mme si lon ne prcise pas le vecteur temps, la fonction le dterminera automatiquement. La rponse impulsionnelle (e(t) = (t)) laide de la fonction >>impulse(sys1); La rponse indicielle (e(t) = u(t)) laide de la fonction >>step(sys1);. En cliquant sur le trac avec le bouton droit, il est possible de modifier les proprits du graphe et surtout dobtenir des renseignements sur les temps de rponse ou dpassement du trac. Tracer la rponse impulsionnelle et indicielle de sys2 et dterminer de manire graphique la valeur delasortieenrgimepermanentetlavaleurdelaconstantedetemps.Vrifiercesvaleursavec celles attendues.Tracer ces deux rponses pour sys4. Mesurer la pseudo priode obtenue pour la rponse indicielle et vrifier quelle correspond bien celle attendue. 5. Reprsentation frquentielle - rgime harmonique. Lareprsentation harmonique du systme est obtenue en appliquant un signal sinusodal lentre du systme pour toutes les frquences et en posant p=jw.Une fonction de transfert est alors compltement dcrite par son module et sa phase. Matlab calcule larponseenfrquencedunefonctiondetransfertetsesertdecetterponsepourtracerles diverses reprsentations utilises en automatique.sys2 sys1 - + TP AUTOMATIQUE L3 EEA L3 IE L3 EIATP N1 10A noter qu'en anglais, frequency signifie la pulsation en rad/s (ce n'est pas la frquence en Hertz) et quil est conseill dutiliser la fonction "ngrid". Diagramme de Bode : Le diagramme de Bode reprsente le module en dB et la phase en degrs en fonction du logarithme de la pulsation.Utiliser la fonction Bode pour tracer le diagramme de sys2. Mesurer le gain statique (module de G2 pourw0),lapulsationdecoupurewc-3dB,lapentedelacourbedegainlorsquew>>wc. Comparer les rsultats aux valeurs thoriques. Faire le mme travail pour sys4.Diagramme de Nyquist : La reprsentation de Nyquist reprsente la fonction de transfert dans lespace complexe, ce lieu est paramtr avec la pulsation.Utiliser la fonction nyquist pour tracer le diagramme de sys2. Mesurer le gain statique (module de G2 pour w0). Faire le mme travail pour sys4.Diagramme de Black-Nichols : Cette reprsentation est plus simplement appele reprsentation de Black. Rappelons que lon porte la phase en degr en abscisse et le module en dB en ordonne. Ce lieu est paramtr en pulsation.Utiliser la fonction nichols pour tracer le diagramme de sys2. Mesurer le gain statique (module de G2 pour w 0), la pulsation de coupure wc -3 dB. Comparer les rsultats aux valeurs thoriques. Faire le mme travail pour sys4. III. PROGRAMMATION ET FUNCTIONS M-FILE. Matlabestaussiunlangagedeprogrammationquidisposedeplusieursinstructionsdesaut conditionnel (if, elseif, else, end) et de boucle du type : for, while. Exemple : Que reprsente EPS dans la suite dinstructions suivantes? EPS=1 ; for i=1 :1000EPS=EPS/2if (1+EPS)-6dB, >40). Dterminerlesparamtresducorrecteuravancedephasepermettantderpondreaux spcifications. Calculer les marges de stabilit du systme corrig.f) Vrifier le comportement temporel du systme corrig en utilisant le fichier boucle_fermee.mdl. et dterminer le temps de rponse 5%. III.3. Correction PID a)AsservirlesystmeG1(p)avecunPIDstandardoumixtedemanireobteniruntempsde rponse minimal avec les marges de stabilit spcifies par le cahier des charges. b) Comparer les performances du systme boucl pour diffrentes structure de PID (forme parallle, srie, actions drive ou proportionnelle et drive appliques sur le signal de sortie. TP AUTOMATIQUE L3 EEA L3 IE L3 EIATP N7& 8 38 Asservissement d'un systme thermique. OnchercheasservirlesystmethermiqueprsentdanslasalledeTP.Cesystmeestconstitu dun tube de PVC conduisant un flux ascendant dair chaud. Lair est chauff la base du tube par unersistancechauffantequiestelle-mmealimenteparunetensiondlivreparlemicro-ordinateur.Latempratureestmesureparunthermocouplesitulextrmitsuprieurdutube. La tension dlivre par le capteur de temprature est comprise dans un domaine de 0 10 Volts. Le cahier des charges spcifie que lasservissement devra remplir les conditions suivantes : La sortie ne doit pas prsenter derreur de position. Les marges de gain et de phase doivent avoir des valeurs correctes. Le dpassement, suite une consigne de type chelon, doit tre infrieur 10 %. Le temps de rponse doit tre le plus rapide possible. LamiseaupointdelasservissementseferasouslenvironnementMatlab.Ilestindispensablede tester la boucle ferme en simulation avant de l'appliquer sur le systme rel.Remarques 1 - Le fichier aero.mdl contient les blocs de base permettant de connecter le PC au systme. 2-Lecompterendudoittreprcisetconcis,ildoitnotammentfaireapparatreclairementles justificatifs qui ont conduisent aux choix des paramtres du modle et du correcteur proposs.