CONTROLLI AUTOMATICI Ingegneria Meccatronica CONTROLLI AUTOMATICI INTRODUZIONE SIMULINK Ing. Tel. 0522 522234 e-mail: secchi.cristian@unimore.it http://www.ingre.unimore.it/staff/secchi Simulink Simulink è un programma costruito utilizzano i comandi di Matlab Vantaggi: Interfaccia grafica Blocchi predefiniti solamente ad connettere Elevata flessibilità nella variazione del progetto Riduzionedeitempidiprogetto dei di progetto Riduzione dei costi rispetto a un test pratico Per accedere a Simulink basta digitare simulink dal prompt di matlab Introduzione a Simulink -- 2
Simulink All'avvio si possono distingure due parti: le Librerie e il Workspace. Nelle librerie sono presenti i blocchi elementari che possiamo usare nel progetto. Nel workspace si costruisce il progetto interconnettendo i blocchi presi dalla librerie. Ci sono svariate librerie, noi useremo principalemente: Sources: Blocchi che generano segnali di vario genere Sinks: Blocchi per la visualizzazione grafica dei segnali Math: Blocchi per l elaborazione matematica dei segnali Continuous: Blocchi per l inserimento di funzioni di trasferimento Introduzione a Simulink -- 3 Simulink Libreria Sources Contiene blocchi che producono particolari segnali che, il più delle volte, vengono usati come segnali di ingresso per un opportuno sistema. I vari elementi si portano nel workspace semplicemente trascinandoveli dentro come se fossero icone. Le librerie sono Read-only. Per poter variare i parametri di un blocco occorre prima trascinarlo nel workspace. Facendo doppio click sull icona trascinata nel workspace si apre una maschera che ci consente di impostare i parametric che caratterizzano il segnale Introduzione a Simulink -- 4
Simulink Libreria Sources I blocchi più utilizzati sono: Constant: genera un valore costante. Step: genera un gradino. Ramp: genera una rampa. Sine wave: genera una sinusoide. Signal generator: può generare vari tipi di segnali periodici Clock: Scandisce gli istanti di tempo della simulazione Introduzione a Simulink -- 5 Simulink Libreria Sinks Un insieme di strumenti che consente di visualizzare l'andamento di un segnale. I blocchi più importanti sono: Scope: Visulizza il segnale di ingresso in funzione del tempo. XYGraph: Genera un grafico del segnale connesso all'ingresso y (il secondo) in funzione di quello connesso all'ingresso x (il primo). To Workspace: Memorizza i valori del segnale connesso in una variabile matlab. Introduzione a Simulink -- 6
Simulink Libreria Sinks Si consiglia di utilizzare To Workspace in quanto dopo la simulazione si dispone non solo di un grafico ma di una variabile in cui sono contenuti tutti i valori assunti da un segnale. Si può elaborare poi tale variabile con gli strumenti ti messi a disposizione i i da Matlab. Per visualizzare l andamento rispetto al tempo delle variabili, è necessario salvare in un ulteriore variabile un vettore che scandisca gli istanti temporali della simulazione. Questo è possibile inserendo il blocco clock e collegandone l uscita a un blocco To Workspace nello schema simulink. Introduzione a Simulink -- 7 Simulik Libreria Math Nella libreria Math sono presenti vari blocchi per l'elaborazione matematica dei segnali. Due tra i blocchi più importanti sono Gain e Sum Il blocco Gain riceve in ingresso un segnale e restituisce in uscita il l'ingresso moltiplicato per la costante di guadagno che può essere impostato dall utente. Il blocco Sum riceve in ingresso tanti segnali quante sono le somme o differenze che si settano. Restituisce in uscita il segnale somma/differenza degli ingressi. Introduzione a Simulink -- 8
Simulink Lanciare una simulazione Una volta costruito il sistema da simulare occorre far partire la simulazione. Per lanciare la simulazione si può fare in uno dei seguenti modi: Premere il tasto a forma di Play sulla toolbar Selezionare Start dal menu Simulation Per cambiare i parametri della simulazione (tra cui il tempo di simulazione e i metodi di integrazione numerica) selezionare Simulation parameters dal menu Simulation. Introduzione a Simulink -- 9 Esempio Scelta dell elastico per bungee jumping John vuole provare il bungee-jumping e deve scegliere l elastico giusto per il suo peso (90 Kg) e l altezza da cui si lancia (30 m). Ci sono tre elastici: Elastico A con costante elastica 5N/m Elastico B con costante elastica 55N/m Elastico C con costante elastica 500N/m Introduzione a Simulink -- 10
Esempio Scelta dell elastico per bungee jumping Le forze che agiscono su John sono: 1. La forza di gravità W=-mg 2. La resistenza dell aria R=-bv Dove m è la massa di John, g è l accelerazione di gravità, b=10 è il coefficiente di attrito viscoso dell aria e K è la costante elastica dell elastico 3. La forza elastica F e =-K(x-30). II Legge della dinamica: Simuliamo il comportamento del sistema utilizzando gli elastici a disposizione Introduzione a Simulink -- 11 Simulink Funzioni di trasferimento Per inserirle nello schema Simulink si utilizzano i blocchi presenti nella libreria Continuous, utilizzando il blocco Transfer Fcn o il blocco Zero-Pole. Transfer Fcn: Consente di editare una funzione di trasferimento immettendo il numeratore e il denominatore. Numeratore e denominatore sono rappresentati da due vettori che esprimono i coefficienti, secondo potenze discendenti di s, del polinomio corrispondente. Zero-Pole: Consente di editare una funzione di trasferimento specificando i suoi zeri e i suoi poli. Numeratore e denominatore sono rappresentati da due vettori i cui elementi rappresentano rispettivamente gli zeri e i poli della funzione di trasferimento. Se la funzione da inserire è un semplice integratore è già presente il blocco che lo implementa. Introduzione a Simulink -- 12
Esempio Se inseriamo nella maschera i vettori: Numerator: [1 2] Denominator: [1 2 3] Otteniamo rispettivamente: Transfer Fcn: Zero-Pole: Introduzione a Simulink -- 13 Esempi Si consideri un sistema descritto dalla seguente funzione di trasferimento: Costruire uno schema in Simulink che consenta di simulare la risposta del sistema a un segnale a gradino di ampiezza arbitraria Mostrare mediante simulazione che maggiore è a minore è il tempo impiegato dalla risposta per raggiungere il valore del gradino. Mostrare inoltre che se a<0 la risposta del sistema diverge Introduzione a Simulink -- 14
Esempi Si consideri un sistema descritto dalla seguente funzione di trasferimento: Costruire uno schema in Simulink che consenta di simulare la risposta del sistema a un segnale a gradino di ampiezza arbitraria Mostrare mediante simulazione che se la parte reale dei poli complessi coniugati rimane la stessa ma la parte immaginaria cambia il tempo impiegato per raggiungere il valore di regime rimane lo stesso. Cosa cambia? Come cambia in relazione alla parte immaginaria della coppia di poli? Mostrare che mantenendo costante la parte immaginaria dei poli ma diminuendo la parte reale il tempo impiegato per raggiungere il valore di regime diminuisce. Mostrare che se la parte reale diventa positiva l uscita non raggiunge nessun valore di regime Introduzione a Simulink -- 15 Esempio Motore in CC a eccitazione indipendente V a R L i e f C m ω C r Parte Elettrica Parte Meccanica Introduzione a Simulink -- 16
Esempio Motore in CC a eccitazione indipendente Passando alla trasformata di Laplace si vede che Quindi il motore può essere descritto da: V a (s) + I(s) Ω(s) - Introduzione a Simulink -- 17 Esempio Motore in CC a eccitazione indipendente Si supponga di alimentare il sistema con un gradino di tensione. Si studi mediante simulazione l effetto della variazione dei parametri fisici sulla velocità della parte meccanica Introduzione a Simulink -- 18
CONTROLLI AUTOMATICI Ingegneria Meccatronica CONTROLLI AUTOMATICI INTRODUZIONE A SIMULINK Ing. Tel. 0522 522234 e-mail: secchi.cristian@unimore.it http://www.ingre.unimore.it/staff/secchi