Lezione 3 Automatica I (Laboratorio) - Pag. 3 Lezione 3 Automatica I (Laboratorio) - Pag. 1 Integrazione in Matlab Automatica I (Laboratorio) Ode Suite Solvers Ode Suite Solvers: risolutori di equazioni differenziali (sono funzioni di funzione) Silvio Simani [t,x] = odesolver(’odefile’,tspan,ci,options,params) ⇒ (Esempio: ci,tspan Dipartimento di Ingegneria Università di Ferrara Tel. 0532 97 4844 Fax. 0532 97 4870 F (t, x, θ) dt) ⇒ ode23, ode113, ode15s, ode23s, ode23t, ode23tb E-mail: [email protected] ⇒ options = odeset(’RelTol’,1e-4,’AbsTol’,1e-4,’Maxstep’,1e-5); URL: http://www.ing.unife.it/simani [tspan,ci,options] = odefile([],[],’init’) URL: http://www.ing.unife.it/simani/lessons.html Università di Ferrara, Dip. di Ingegneria v. Saragat, 1, I-44100, Ferrara, Italia Università di Ferrara, Dip. di Ingegneria v. Saragat, 1, I-44100, Ferrara, Italia Silvio Simani Silvio Simani Elementi di grafica in Matlab Funzioni di grafica plot(X,Y,S) ⇒ Grafica il vettore Y in funzione di X point circle : x-mark -. plus -star square diamond triangle (down) - Pag. 2 Integrazione in Matlab File Ode ⇒ Un Ode file è un file di tipo .m per definire un sistema di equazioni differenziali ⇒ Un Ode file è risolto dagli Ode Suite Solvers y = odefile(t,x,flag,params). (Esempio: y = ẋ = F (t, x, θ)) ⇒ t e x sono variabili di integrazione ⇒ flag è una stringa che indica il tipo di informazione restituita dall’ Ode file. params sono parametri addizionali eventualmente richiesti. - Pag. 4 solid dotted dashdot dashed Silvio Simani ⇒ X e Y sono vettori con le stesso numero di elementi . o x + * s d v ⇒ S è una stringa formata dai caratteri: yellow magenta cyan red green blue white black Università di Ferrara, Dip. di Ingegneria v. Saragat, 1, I-44100, Ferrara, Italia Lezione 3 Automatica I (Laboratorio) y m c r g b w k Lezione 3 Automatica I (Laboratorio) Università di Ferrara, Dip. di Ingegneria v. Saragat, 1, I-44100, Ferrara, Italia Silvio Simani Lezione 3 Automatica I (Laboratorio) - Pag. 7 Lezione 3 Automatica I (Laboratorio) - Pag. 5 Elementi di Grafica in Matlab Esercizi Proposti (1) figure, plot(t,x,’-’,t,y,’--’) Modello matematico di Lotka-Volterra ⇒ Se a1 = 20, a2 = 1, a3 = 7, a4 = 0.5 e k = 30, si determinino: Apertura nuova finestra grafica e visualizzazione grafici sovrapposti 1) l’andamento nel tempo del numero di prede e predatori, supponendo nullo l’ingresso u(t) e nelle ipotesi di partire da un ecositema contenente 10 prede e 10 predatori. Si calcoli anche la traiettoria percorsa dal sistema nello spazio degli stati. figure, plot(t,x,’-’), hold on, plot(t,y,’--’) Apertura nuova finestra grafica e visualizzazione grafici sovrapposti 2) gli stati di equilibrio del sistema in assenza di ingresso. ⇒ Sono equivalenti: hold on mantiene il grafico corrente 3) i valori di regime raggiunti dal numero di prede e predatori nelle ipotesi che u(t) sia un gradino di ampiezza u(t) = 20 e a partire dalle stesse condizioni proposte al punto 1). Si determini per tentativi l’ampiezza del gradino che consente di mantenere a regime un numero di predatori pari a 15. Università di Ferrara, Dip. di Ingegneria v. Saragat, 1, I-44100, Ferrara, Italia Università di Ferrara, Dip. di Ingegneria v. Saragat, 1, I-44100, Ferrara, Italia Silvio Simani Lezione 3 Automatica I (Laboratorio) - Pag. 8 Silvio Simani Lezione 3 Automatica I (Laboratorio) Esercizi Proposti Esercizi Proposti (1) Modello matematico di Lotka-Volterra V Modello matematico di Lotka-Volterra ẋ1(t) = a1(1 − x1(t)/k)x1 (t) − a2x1(t)x2(t) + u(t) V Ampiezza - Pag. 6 Ampiezza ẋ2(t) = −a3x2(t) + a4x1(t)x2(t) Prede Predatori ⇒ x1(t) e x2(t) numero di prede di predatori ⇒ u(t) cibo per le prede 0 T0 T1 (a) Circuito diodo tunnel t 0 T0 t ⇒ k, numero massimo di prede in assenza di predatori e di cibo (u(t) = 0) (b) Modello Lotka-Volterra Università di Ferrara, Dip. di Ingegneria v. Saragat, 1, I-44100, Ferrara, Italia Università di Ferrara, Dip. di Ingegneria v. Saragat, 1, I-44100, Ferrara, Italia Silvio Simani Silvio Simani - Pag. 9 Introduzione a Simulink Simulink, prodotto dalla Mathworks Inc. È un programma per la simulazione di sistemi dinamici Progetto di un sistema dinamico ⇒ Definizione del modello da simulare ⇒ Analisi del sistema Ambiente a finestre ed interfaccia grafica: Block diagram windows e mouse Simulink riutilizza l’ambiente e i comandi di Matlab ⇒ I risultati sono disponibili nel Workspace di Matlab - Pag. 11 Ramp Pulse Generator [T,U] From Workspace simulink/Sources), Istruzioni di base di Simulink Sources Library ⇒ Sources: (Library: generatori di segnale Step Discrete Pulse Generator 12:34 Digital Clock Silvio Simani Uniform Random Number Band-Limited White Noise Signal Generator Repeating Sequence Clock Random Number Lezione 3 Automatica I (Laboratorio) 1 Constant Sine Wave Chirp Signal From File untitled.mat Simulink Signal Source library. Università di Ferrara, Dip. di Ingegneria v. Saragat, 1, I-44100, Ferrara, Italia Lezione 3 Automatica I (Laboratorio) Lezione 3 Automatica I (Laboratorio) - Pag. 12 Università di Ferrara, Dip. di Ingegneria v. Saragat, 1, I-44100, Ferrara, Italia Silvio Simani Lezione 3 Automatica I (Laboratorio) Istruzioni di base di Simulink - Pag. 10 Istruzioni di base di Simulink Sink Library >> simulink ⇒ Library: simulink/Sinks contiene alcuni rivelatori di segnale ⇒ Visualizzazione della finestra Simulink block library 0 Display Scope XY Graph Sources untitled.mat STOP simout To Workspace To File Sinks Discrete In Stop Simulation Linear Simulink Signal Sinks library. Nonlinear Out Connections Simulink block library. Università di Ferrara, Dip. di Ingegneria v. Saragat, 1, I-44100, Ferrara, Italia Università di Ferrara, Dip. di Ingegneria v. Saragat, 1, I-44100, Ferrara, Italia Silvio Simani Silvio Simani - Pag. 13 Istruzioni di Simulink Discrete Library ⇒ Library: simulink/Discrete analisi dei sistemi lineari tempo-discreti 1 T z z-1 (z-1) z(z-0.5) 1 Discrete Zero-Pole Discrete Transfer Fnc Discrete Filter Discrete State-Space 1 z+0.5 1+2z -1 y(n)=Cx(n)+Du(n) x(n+1)=Ax(n)+Bu(n) First-Order Hold Discrete-Time Integrator Zero-Order Hold Unit Delay Simulink Discrete-Time library. |u| Abs min MinMax <= Relational Operator sin u e floor Rate Limiter Hit Crossing Look-Up Table (2-D) Backlash Logical Operator Combinatorial Logic AND Trigonometric Function Math FunctionRounding Function Product Sign Look-Up Table system Dead Zone Coulomb & Viscous Friction Solve f(z) = 0 z Delay Manual SwitchVariable TransportS-Function f(z) Silvio Simani MATLAB Fcn Algebraic Constraint Multiport Switch MATLAB Function Switch Quantizer Transport Delay Memory Saturation f(u) Fnc Relay Simulink Nonlinear library. Università di Ferrara, Dip. di Ingegneria v. Saragat, 1, I-44100, Ferrara, Italia Silvio Simani - Pag. 15 Università di Ferrara, Dip. di Ingegneria v. Saragat, 1, I-44100, Ferrara, Italia ⇒ Library: simulink/Nonlinear funzioni non lineari Nonlinear Library Istruzioni di Simulink Lezione 3 Automatica I (Laboratorio) Lezione 3 Automatica I (Laboratorio) Lezione 3 Automatica I (Laboratorio) Istruzioni di Simulink Linear Library Sum s 1 Integrator s(s+1) (s-1) Zero-Pole 1 - Pag. 14 - Pag. 16 Silvio Simani Slider Gain x' = Ax+Bu y = Cx+Du Matrix Gain Simulink Linear library. Dot Product State-Space K ⇒ Library: simulink/Linear analisi dei sistemi lineari tempo-continui 1 Gain 1 s+1 Transfer Fnc du/dt Derivative Università di Ferrara, Dip. di Ingegneria v. Saragat, 1, I-44100, Ferrara, Italia Lezione 3 Automatica I (Laboratorio) Istruzioni di Simulink Connections Library Out 1 {A} A Mux Demux Silvio Simani Width 0 Terminator Data Store Write A [A] Demux Selector Goto Mux ⇒ Library: simulink/Connections blocchi per effettuare connessioni 1 Memory Trigger Subsystem Ground Goto Tag Visibility In [A] From A Data Store Read Enable [1] IC Simulink Connection library. Università di Ferrara, Dip. di Ingegneria v. Saragat, 1, I-44100, Ferrara, Italia Lezione 3 Automatica I (Laboratorio) → integrazione delle - Pag. 17 equazioni Simulazione di sistemi dinamici con SIMULINK Simulazione differenziali Simulatore di Simulink Simulink Control Panel → Simulation → Parameters Opzione Solver nella finestra Simulation Parameters (cfr. odesolver Matlab) ⇒ Simulation time: Start time: istante iniziale della simulazione - Pag. 19 Va (t) Cc (t) = = K d x2 / d t 1 s x2(t) K G1/C 1/L K Grafico x1(t) Grafico x2(t) - Pag. 18 1 C u(t) Silvio Simani d x1 / dt − G2x23(t) + Base tempi x2 Base tempi x1 -R/L K 1 L x2 (t) 1 C G1 x2 (t) 0 u^3 x2(t)^3 K 1/C u(t) Traiettorie dello stato −R L x1 (t) + − C1 x1(t) + Analisi di un circuito non lineare Lezione 3 Automatica I (Laboratorio) ẋ1(t) ẋ2(t) 1 s x1(t) -1/C Somma2 K -G2/C Circuito non lineare in Simulink. Università di Ferrara, Dip. di Ingegneria v. Saragat, 1, I-44100, Ferrara, Italia Silvio Simani Silvio Simani 0 −1 J . ⇒ Simulation time: Stop time: istante finale della simulazione 1 La 0 Cc , J , f Ingressi ed uscite: y(t) = ω(t) ⇒ Solver Options: Type: passo di integrazione fisso (Fixed-step) o variabile (Variable-step) vm ω(t) Matrici di sistema ⇒ Solver Options: scelta della funzione di integrazione ottimale: ode45, ode23, ode113, ode15s, ode23s, e discrete ia (t) ω(t) − km ia (t) La + f ω(t) − J 11 00 11 00 Modello di un motore in corrente continua ⇒ Solver Options: Max step size e Initial step size, Relative e Absolute tolerance 1 Controllo d’armatura e avvolgimento d’eccitazione ad alimentazione costante 0 − Ra La km J La Le Università di Ferrara, Dip. di Ingegneria v. Saragat, 1, I-44100, Ferrara, Italia Università di Ferrara, Dip. di Ingegneria v. Saragat, 1, I-44100, Ferrara, Italia Modello di un motore in corrente continua Lezione 3 Automatica I (Laboratorio) = = Ra . . Silvio Simani Va(t) Cc(t) e u(t) = i̇a (t) ω̇(t) ω(t) . ie Ve Re Motore in corrente continua ia Va . Schema di un motore in corrente continua Università di Ferrara, Dip. di Ingegneria v. Saragat, 1, I-44100, Ferrara, Italia km J 0 ,B= A= ia(t) ω(t) x(t) = . 1 0 eC= 0 − J1 1 La − kLm a − Jf a −R La - Pag. 20 Lezione 3 Automatica I (Laboratorio) Lezione 3 Automatica I (Laboratorio) - Pag. 21 Modello di un motore in corrente continua Condizioni di funzionamento 1. Alimentazione del motore con un gradino di tensione di armatura costante a 0V da 0s a 50s e al valore di 5V per altri 50s. 2. Impulso di tensione di ampiezza Va(t) = 10V e durata τ = 40s. 3. Posizione del rotore α(t) ia (t) ω(t) α̇(t) = ω(t) , x(t) = ω(t) e y(t) = α(t) α(t) A= a −R L − kLm 0 1 a km J a f −J 0 0 ,B= 0 1 La 0 0 0 0 − J1 e C = 0 0 1 0 0 1 . Università di Ferrara, Dip. di Ingegneria v. Saragat, 1, I-44100, Ferrara, Italia Silvio Simani Lezione 3 Automatica I (Laboratorio) - Pag. 22 Esercizi proposti 1. Si realizzi in ambiente Simulink il sistema di equazioni differenziali relative ai modello del motore in corrente continua. Se ne verifichi successivamente la correttezza confrontandolo con le realizzazioni equivalenti nello spazio degli stati. 2. Utilizzando gli stessi i valori dei parametri del motore in corrente continua, determinare l’ampiezza del gradino Va(t) necessaria a raggiungere una velocità angolare di regime pari a ω(t) = 10rad/s, nelle ipotesi di assenza del carico Cc = 0 e con il modello del motore del secondo ordine. Si verifichi analiticamente il risultato ottenuto. 3. Fissata l’ampiezza della tensione di armatura a Va = 10V., progettare la durata dell’impulso τ in modo da raggiungere una posizione assegnata α = 20rad., sempre nelle ipotesi di assenza di carico. 4. Fissato τ , graficare l’andamento temporale della posizione del rotore per una tensione pari alla metà e al doppio della tensione fissata al punto precedente. Università di Ferrara, Dip. di Ingegneria v. Saragat, 1, I-44100, Ferrara, Italia Silvio Simani