1 Fonction de transfert - Ecole des Mines d`Albi
Transcription
1 Fonction de transfert - Ecole des Mines d`Albi
Ecole des Mines d’Albi-Carmaux Formation Initiale - M1 Une introduction à MATLAB - CONTROL SYSTEM TOOLBOX (version R2012a) TD MATLAB No 1 Pour en savoir plus, consulter les fichiers d’aide en ligne : – « Getting Started with the Control System Toolbox » – « Using the Control System Toolbox » 1 1.1 Fonction de transfert Exemple 1 : 1er ordre T (p) = K 1+T p Instructions : >> >> >> >> >> K=10; T=0.5; num = [K]; den = [T 1]; sys = tf(num,den) ou de manière condensée : >> K=10; >> T=0.5; >> sys = tf(K,[T 1]) Sortie : Transfer function: 10 --------0.5 s + 1 1 >> sys.inputname = ’débit’; >> sys.outputname = ’niveau’ Sortie : Transfer function from input "débit" to output "niveau": 10 --------0.5 s + 1 1.2 Exemple 2 T (p) = p+1 p2 + 4 >> sys = tf([1 1],[1 0 4]) Sortie : Transfer function: s + 1 ------s^2 + 4 1.3 Exemple 3 T (p) = p2 + p + 1 (p + 1)(p + 2) >> sys1 = tf([1 1 1],[1 1]); >> sys2 = tf(1,[1 2]); >> sys=sys1*sys2 Sortie : 2 Transfer function: s^2 + s + 1 ------------s^2 + 3 s + 2 Possibilité de factoriser1 avec l’instruction : >> zpk(sys) Sortie : Zero/pole/gain: (s^2 + s + 1) -------------(s+2) (s+1) 1.4 Exemple 4 : 1er ordre avec retard Instructions : >> >> >> >> K=10; T=0.5; sys = tf(K,[T 1]) sys.InputDelay = 2 >> >> >> >> >> K=10; T=0.5; sys = tf(K,[T 1]) set(sys,’InputDelay’,2) sys ou Sortie : Transfer function: 10 exp(-2*s) * --------0.5 s + 1 1 Attention l’instruction zpk() ne renvoie pas le gain statique du système. 3 1.5 Propriétés des fonctions de transfert Rentrer les fonctions de transfert suivantes : sys1 = sys2 = sys3 = p+1 p+2 p2 3 +p+1 3(p + 4) +2p+1 p2 sys4 = 10 p2 + 3 p + 2 sys5 = 10 (p + 1)2 sys6 = p+1 p(p + 2)(p + 3) sys7 = 10 sys8 = sys9 = p2 + p + 1 (p + 2)(p + 3) p + 1 −3p e p+2 p2 5 +5p+6 Pour chacune de ces fonctions de transfert, exécuter (pas à pas) la série d’instructions suivante : >> >> >> >> >> >> >> >> >> sys=sys1 class(sys) size(sys) get(sys) dcgain(sys) pole(sys) zero(sys) damp(sys) pzmap(sys) 4 1.6 Accès aux données >> >> >> >> >> >> >> >> >> >> >> >> 2 2.1 sys = tf([1 3],[1 3 2]) get(sys) sys.num num = sys.num{1} sys.den den = sys.den{1} [num,den] = tfdata(sys) celldisp(num) num = num{1} celldisp(den) den = den{1} [num,den] = tfdata(sys,’v’) Analyse temporelle Réponse à une impulsion de Dirac >> sys = tf(10,[0.5 1]) >> impulse(sys) >> title(’Réponse impulsionnelle’) >> >> >> >> sys = tf(10,[0.5 1]); sys.InputDelay = 2 impulse(sys) title(’Réponse impulsionnelle’) >> sys = tf(1,[1 1 1]) >> impulse(sys) >> title(’Réponse impulsionnelle’) 2.2 Réponse à un échelon de position unité >> sys1 = tf(10,[0.5 1]) >> step(sys1) >> title(’Réponse à un échelon unité’) 5 >> >> >> >> sys = tf(10,[0.5 1]); sys.InputDelay = 2 step(sys) title(’Réponse à un échelon unité’) >> >> >> >> sys2 = tf(10,[1 1 1]) step(sys2) title(’Réponse à un échelon unité’) step(sys1,sys2) >> stepinfo(sys1) >> stepinfo(sys2) 2.3 2.3.1 Réponse à une entrée quelconque (fonction LSIM) Réponse à un échelon d’amplitude quelconque >> >> >> >> >> >> sys = tf(10,[0.5,1]); t = [0:0.1:3]; amplitude = 10; input = amplitude*ones(size(t)); output = lsim(sys,input,t); plot(t,input,t,output) On peut aussi écrire : >> sys = tf(10,[0.5,1]); >> amplitude = 10; >> step(amplitude*sys) 2.3.2 Réponse à une rampe >> >> >> >> t = [0:0.1:3]; input = t; plot(t,input,t,dcgain(sys)*t,t,lsim(sys,input,t)) title(’Réponse à une rampe’) 6 2.3.3 Réponse à une sinusoı̈de >> >> >> >> sys = tf(10,[1 0.5 1]); [u,t]=gensig(’sin’,100,1000); plot(t,u,t,lsim(sys,u,t)) title(’Réponse à une sinusoı̈de’) Visualisation du régime transitoire2 >> [u,t]=gensig(’sin’,1,30,0.01); >> plot(t,u,t,lsim(sys,u,t)) >> title(’Réponse à une sinusoı̈de’) 2.4 Influence des zéros sur la réponse temporelle Rentrer la fonction de transfert d’ordre 2 suivante : H(p) = K 1 + τa p (1 + τ1 p)(1 + τ2 p) avec : K = 1, τ1 = 15 et τ2 = 5 Ce système comporte 2 pôles à partie réelle négative et un zéro. Tracer sur un même graphique la réponse à un échelon unité pour : a) b) c) d) e) τa = −10 τa = 0 τa = 10 τa = 15 τa = 50 2.5 Etude d’un actionneur électromécanique Cet exercice est extrait du livre d’exercices « Applications du Formalisme d’Etat à la Commande des Systèmes Continus » par D. Jaume, S. Thelliez et M. Vergé, Edition EYROLLES. 2 RAPPEL : la réponse à un signal sinusoı̈dal est sinusoı̈dale en régime permanent. 7 La modélisation simplifiée en vue de l’asservissement en position d’un actionneur électromécanique et de sa charge a conduit au schéma de la Figure 1. Fig. 1 – Un actionneur électromécanique L’ensemble chariot de masse M, ressort de raideur k, coefficient de frottement visqueux f modélise la partie mécanique. L’ensemble résistance R, inductance L, force contre-électromotrice introduite par l’endy roulement e(t) = α , force appliquée à la charge fc (t) = β i(t), caractérise la partie dt électrique. Les variables u, i, y dénotent respectivement la tension à l’entrée, le courant dans l’enroulement et la position de la charge à partir d’un état d’équilibre. On adopte les valeurs numériques suivantes : M = 30 kg , k = 15 N/m , f = 15 N.s/m , R = 10 Ω L = 10 H , α = 0, 2 V.s/m , β = 6 N/A A partir des équations électriques et mécaniques du système : u−Ri−L M di dy −α =0 dt dt d2 y dy = −f −ky+βi 2 dt dt on peut obtenir sa fonction de transfert : 8 Y ∗ (p) β = ∗ 3 2 U (p) L M p + (R M + L f ) p + (R f + L k + α β) p + R k 1ère partie : Dans un premier temps, on néglige le frottement visqueux (f = 0). 1) Introduire la fonction de transfert dans MATLAB. 2) Calculer le gain statique du système. 3) Quels sont les pôles du système ? Afficher les pôles et les zéros du système dans le plan complexe. 4) Tracer la réponse y ∗(t) lorsqu’on envoie une impulsion de tension au système. 5) Tracer la réponse y ∗(t) lorsqu’on applique un échelon de tension u∗ = 100 V au système. 6) Comment pouvait-on prévoir la valeur de régime permanent ? 7) Quel est le type de régime transitoire en présence ? 8) Quel est approximativement le temps de réponse de ce système ? 2ème partie : On améliore le modèle en prenant en compte le frottement visqueux (f 6= 0). 9) Introduire la fonction de transfert dans MATLAB. 10) Calculer le gain statique du système. 11) Quels sont les pôles du système ? Afficher les pôles et les zéros du système dans le plan complexe. 12) Tracer la réponse y ∗(t) lorsqu’on envoie une impulsion de tension au système. 9 13) Tracer la réponse y ∗ (t) lorsqu’on applique un échelon de tension u∗ = 100 V au système. 14) Comment pouvait-on prévoir la valeur de régime permanent ? 15) Quel est le type de régime transitoire en présence ? 16) Quel est approximativement le temps de réponse de ce système ? 3 3.1 Analyse fréquentielle Système du 2nd ordre 1) Tracer le diagramme de Bode d’un système du 2nd ordre ayant pour paramètres : K = 10 ; ξ = 0.01 ; wn = 10 2) Donner la valeur de son coefficient de surtension (retrouver le résultat à partir de la formule théorique). 3) Pour quelle fréquence, l’amplitude de sortie sera-t-elle égale au double de l’amplitude d’entrée ? 3.2 Etude d’un système à avance de phase On considère le système de fonction de transfert : T (p) = 1+aτ p 1+τ p Lorsque a > 1, ce type de système est appelé un système à avance de phase. 1) Introduire la fonction de transfert dans MATLAB correspondant à a = 10 et τ = 0, 006. 2) Tracer le diagramme de Bode du système et expliquer l’appelation « avance de phase ». 10 3) Tracer le diagramme de Bode pour a = 10 et τ = 0, 06. Comparer au résultat de la question 2). 4) Tracer le diagramme de Bode pour a = 5 et τ = 0, 06. Comparer aux résultats des questions 2) et 3). 5) Discuter sur l’influence des paramètres a et τ sur la réponse fréquentielle du système. 4 Résumé des fonctions usuelles Pour savoir ce que fait une fonction donnée et connaitre la syntaxe d’utilisation : help <fonction> 5 Résumé des fonctions de Control System Toolbox Control System Toolbox Version 9.3 (R2012a) 29-Dec-2011 General. ctrlpref InputOutputModel DynamicSystem lti - Set Control System Toolbox preferences. - Overview of input/output model objects. Overview of dynamic system objects. Overview of linear time-invariant system objects. Graphical User Interfaces. ltiview - LTI Viewer (time and frequency response analysis). sisotool - SISO Design Tool (interactive compensator tuning). pidtool - PID Design Tool (interactive PID controller tuning). sisoinit - Configure the SISO Design Tool at startup. Linear models. tf zpk ss dss delayss frd pid pidstd - Create Create Create Create Create Create Create Create transfer function (TF) models. zero/pole/gain (ZPK) models. state-space (SS) models. descriptor state-space models. state-space models with delayed terms. frequency response data (FRD) models. PID controller in parallel form. PID controller in standard form. 11 tf/exp - Create pure continuous-time delays (TF and ZPK only) filt - Specify digital filters. InputOutputModel/set - Set/modify properties of model object. setDelayModel - Specify internal delay model (state space only). Data extraction. tfdata - Extract numerators and denominators. zpkdata - Extract zero/pole/gain data. ssdata - Extract state-space matrices. dssdata - Descriptor version of SSDATA. frdata - Extract frequency response data. piddata - Extract PID parameters in parallel form. pidstddata - Extract PID parameters in standard form. InputOutputModel/get - Access properties of model object. ss/getDelayModel - Access internal delay model (state space only). Model conversion. tf zpk ss frd pid pidstd c2d d2c d2d upsample chgTimeUnit imp2exp - Conversion to transfer function. Conversion to zero/pole/gain. Conversion to state space. Conversion to frequency data. Conversion to PID controller in parallel form. Conversion to PID controller in standard form. Continuous to discrete conversion. Discrete to continuous conversion. Resample discrete-time model. Upsample discrete-time systems. Change time units. Implicit to explicit conversion. System interconnection. append - Aggregate models by appending inputs and outputs. parallel - Connect models in parallel (see also overloaded +). series - Connect models in series (see also overloaded *). feedback - connect models with a feedback loop. lft - Generalized feedback interconnection. connect - Arbitrary block-diagram interconnection. sumblk - Specify summing junction (for use with connect). strseq - Builds sequence of indexed strings (for I/O naming). System dynamics. dcgain - Steady-state (D.C.) gain. pole - System poles. zero - Zeros and gain of SISO system. 12 tzero order pzmap iopzmap damp esort dsort stabsep modsep - Invariant zeros of MIMO system. System order (number of states). Pole-zero map. Input/output pole-zero map. Natural frequency and damping of system poles. Sort continuous poles by real part. Sort discrete poles by magnitude. Stable/unstable decomposition. Region-based modal decomposition. Time-domain analysis. step - Step response. stepinfo - Step response characteristics (rise time, ...) impulse - Impulse response. initial - Free response with initial conditions. lsim - Response to user-defined input signal. lsiminfo - Linear response characteristics. gensig - Generate input signal for LSIM. covar - Covariance of response to white noise. Frequency-domain analysis. bode - Bode diagrams of the frequency response. bodemag - Bode magnitude diagram only. sigma - Singular value frequency plot. nyquist - Nyquist plot. nichols - Nichols plot. freqresp - Frequency response over a frequency grid. evalfr - Evaluate frequency response at given frequency. margin - Gain and phase margins. allmargin - All crossover frequencies and related gain/phase margins. bandwidth - System bandwidth. getPeakGain - Peak gain of frequency response. getGainCrossover - Gain crossover frequencies. DynamicSystem/norm - H2 and Hinfinity norms of LTI models. Model simplification. minreal - Minimal realization and pole/zero cancellation. sminreal - Structurally minimal realization (state space). hsvd - Hankel singular values (state contributions) balred - Reduced-order approximations of linear models. modred - Model order reduction. Compensator design. pidtune - Tune PID controller based on linear plant model. 13 rlocus place estim reg ss/lqg lqr, dlqr lqry lqrd lqi kalman kalmd lqgreg lqgtrack augstate - Evans root locus. Pole placement. Form estimator given estimator gain. Form regulator given state-feedback and estimator gains. Single-step LQG design. Linear-Quadratic (LQ) state-feedback regulator. LQ regulator with output weighting. Discrete LQ regulator for continuous plant. Linear-Quadratic-Integral (LQI) controller. Kalman state estimator. Discrete Kalman estimator for continuous plant. Build LQG regulator from LQ gain and Kalman estimator. Build LQG servo-controller. Augment output by appending states. Time delays. hasdelay totaldelay absorbDelay pade thiran - True for models with time delays. Total delay between each input/output pair. Replace delays by poles at z=0 or phase shift. Pade approximation of continuous-time delays. Thiran approximation of fractional discrete-time delays. State-space (SS) models. rss - Random stable continuous-time state-space models. drss - Random stable discrete-time state-space models. ss2ss - State coordinate transformation. canon - Canonical forms of state-space models. ctrb - Controllability matrix. obsv - Observability matrix. gram - Controllability and observability gramians. prescale - Optimal scaling of state-space models. balreal - Gramian-based input/output balancing. xperm - Reorder states. Frequency response chgFreqUnit fcat fselect fnorm frd/abs frd/real frd/imag frd/interp mag2db - data (FRD) models. Change frequency vector units. Merge frequency responses. Select frequency range or subgrid. Peak gain as a function of frequency. Entrywise magnitude of the frequency response. Real part of the frequency response. Imaginary part of the frequency response. Interpolate frequency response data. Convert magnitude to decibels (dB). 14 db2mag - Convert decibels (dB) to magnitude. Generalized linear realp ltiblock.pid ltiblock.tf ltiblock.ss ltiblock.gain genmat genss genfrd getValue getBlockValue setBlockValue showBlockValue replaceBlock - models. Tunable real parameter. Tunable PID controller. Tunable SISO transfer function. Tunable state-space model. Tunable static gain. Generalized matrix. Generalized state-space model. Generalized FRD model. Evaluate generalized model. Get block value. Update block value. Display block values. Replace block by value or another block. Model characteristics and model arrays. isct - True for continuous-time models. isdt - True for discrete-time models. isproper - True for proper models. issiso - True for single-input/single-output models. isstable - True for models with stable dynamics. InputOutputModel/size - Size of model or model array. InputOutputModel/ndims - Number of dimensions. InputOutputModel/nmodels - Number of models in model array. InputOutputModel/isempty - True for empty models. InputOutputModel/reshape - Reshape model array. InputOutputModel/permute - Permute model array dimensions. Overloaded arithmetic operations. +, - Add and subtract systems (parallel connection). * - Multiply systems (series connection). / - Left divide -- sys1\sys2 means inv(sys1)*sys2. / - Right divide -- sys1/sys2 means sys1*inv(sys2). ^ - Powers of a given system. ’ - Pertransposition. .’ - Transposition of input/output map. .* - Element-by-element multiplication. [..] - Concatenate models along inputs or outputs. stack - Stack models/arrays along some array dimension. InputOutputModel/inv - Inverse of input/output model. InputOutputModel/conj - Complex conjugation of model coefficients. 15 Matrix equation solvers lyap, dlyap lyapchol, dlyapchol care, dare gcare, gdare bdschur - and linear algebra. Solve Lyapunov equations. Square-root Lyapunov solvers. Solve algebraic Riccati equations. Generalized Riccati solvers. Block diagonalization of a square matrix. Visualization and plot manipulation. Type "help ctrlguis" for details on how to customize plots. Demonstrations. Type "demo toolbox control" for a list of available demos. 16