Università della Calabria
Dipartimento di Ing. Meccanica, Energetica e Gestionale
APPUNTI DEL CORSO DI
Controlli
automatici
Piofrancesco Barone
Teoria: Prof. Giuseppe Franzè Ingegneria Energetica
Esercitazioni: Ing. Gianfranco Gagliardi A.A. 2020/2021
Ottobre Pagina 1
5 Ottobre 2020 (esercitatore Gagliardi)
lunedì 5 ottobre 2020 08:30
Ing. Gianfranco Gagliardi
Studio: cubo 42/C momentaneamente al terzo piano
Email: g.gagliardi@dimes.unical.it
RICHIAMI SUI NUMERI COMPLESSI
Denotiamo L’Unità immaginaria j :
Possiamo definire di conseguenza l’insieme dei numeri immaginari:
Ottobre Pagina 2
Ovvero l’insieme dei numeri che si ottengono moltiplicando L’Unità immaginaria j per qualsiasi numero
reale v.
E’ possibile definire un generico numero complesso z come la somma di due componenti:
una parte reale e una parte immaginaria
Si utilizza inoltre una rappresentazione grafica dei numeri complessi su un piano
cartesiano, dove l’asse delle ascisse rappresenta l’asse reale, mentre l’asse delle ordinate
quello immaginario.
Con M indichiamo il modulo del numero complesso, con φ la sua fase.
Data la generica definizione di numero complesso, un numero reale non e’ altro che un numero
complesso con parte immaginaria nulla:
Da ciò si deduce che:
Dato un numero complesso z, e’ possibile definire il suo coniugato, che indicheremo con z’:
Ottobre Pagina 3
Proposizione: Dato un numero immaginario jφ, vale la seguente relazione:
Esponenziale immaginario
L’esponenziale del numero immaginario jφ e’ un numero complesso che ha come parte reale il cosφ e
come parte immaginaria il senφ
Di conseguenza, oltre alla rappresentazione cartesiana, possiamo denotare un qualsiasi
numero complesso z attraverso la cosiddetta rappresentazione polare.
Facendo dunque riferimento alla rappresentazione grafica precedente, si ha:
Il modulo indica l’ampiezza del
vettore che rappresenta il numero
complesso z La fase indica
l’angolo che il vettore
che rapprenda il
numero complesso z
forma con l’asse
reale. L’angolo e’
positivo se si misura
in senso antiorario.
Noti M e φ, valgono le seguenti relazioni inverse:
In definitiva:
Si definisce rappresentazione polare di un numero complesso l’espressione :
Per quanto riguarda il coniugato, avremo stesso modulo ma fase opposta:
Ottobre Pagina 4
RICHIAMI SULLE EQUAZIONI DIFFERENZIALI
In un’equazione differenziale compaiono la funzione incognita y(x) e le sue derivate.
L’ordine massimo della derivata di y(x) individua l’ordine dell’equazione differenziale.
Esempi:
Si utilizzerà la trasformata di Laplace per passare dal dominio del tempo al dominio delle
frequenze per risolvere più facilmente tale equazioni.
Equazioni lineari differenziale del primo ordine
La soluzione generale sarà:
Per tale motivo infinite soluzioni. Aggiungendo una condizione supplementare, chiamata
condizione iniziale, riusciremo a definire un unico valore di c:
Ottobre Pagina 5
INTRODUZIONE A MATLAB
E‘ un software che viene utilizzato sia in ambito accademico (per scopi didattici) ma
soprattuto in ambito industriale per lo sviluppo i tecniche di controllo avanzate e di sistemi
applicabili in campi molto complessi (automobilistico, aerospaziale ecc)
Viene utilizzato sia per svolgere “compiti matematici” complessi che per sviluppare
algoritmi utilizzabili in contesti specifici, per acquisire dati reali registrati da sensori
installati su sistemi oggetto di studio, per analizzare i dati acquisiti, per realizzare grafici
sui dati elaborati, per realizzare interfacce grafiche, scenari simulativi ecc.
Il programma si compone di due parti:
Ambiente di sviluppo, dove scriviamo i nostri programmi
- Librerie, dove matlab mette a disposizione diversi strumenti per realizzare i nostri
- algoritmi. Le librerie sono raccolte nei toolbox del programma stesso.
Sul lato sinistro della schermata di matlab troviamo la directory di lavoro, la quale ci
mostra tutte le cartelle presenti tra i documenti. All’interno della cartella di lavoro
possiamo creare i nostri file di progetto o delle nuove sottocartelle.
Tasto destro -> new -> folder
La parte centrale della schermata e’ invece il command window, ovvero dove andiamo a
inserire i comandi. Il risultato di un comando, se non e’ diversamente specificato, viene
salvato dal software in una variabile chiamata ans.
Possiamo assegnare un valore ad una variabile, ad esempio:
>> somma = 2+3
In tal modo non compare la scritta “ans”, che e’ appunto un output di default che viene dato
dal programma quando non viene assegnata alcuna variabile. Tutto ciò che viene scritto
nella command window o nei file di progetto viene salvato nel workspace di matlab,
facilmente visualizzabile sul lato destro della schermata principale.
Nel momento in cui dichiariamo una variabile che e’ una matrice, un vettore o una struttura
dati, non visualizziamo un valore, ma solo l’etichetta (=il nome). Facendo doppio click sulla
variabile, si aprirà una schermata dove verrà visualizzata una scheda con l’etichetta della
variabile stessa e il suo valore. Possiamo inoltre osservare tre scheda sulla schermata
principale:
Scheda home, al primo avvio di matlab, da qui si creano nuovi script (= nuovi fogli di
- lavoro)
Scheda plots
- Scheda app, la quale da’ accesso ai toolbox.
- Ottobre Pagina 6
Alcuni Comandi di base
> > dir (ci mostra il contenuto della cartella corrente in ordine alfabetico, e’ lo stesso comando
utilizzato in Windows)
>> ls (come dir, ma e’ l’analogo utilizzato in Linux)
>> help (restituisce le informazioni relative all’ultimo comando digitato
Possiamo specificare subito dopo ”help” il nome di una funzione che vogliamo utilizzare, magari se
ne conosciamo il nome ma non il comando. Esempio
>> help sin
sin Sine of argument in radians
Sin(x) is the sine of the elementi of x
Così facendo, capiremo quanti input dobbiamo dare alla funzione.
Matlab risponde di una command history. Puo capitare di riscrivere una serie di comandi e avere la
necessita di utilizzarne uno gia presente nel programma. Premendo la freschi su
viene dato l
C è p à p m x
tutte le info sulle funzioni: basta premere (?).
I x p m
>> clc (pulisce la command window)
>> clear (svuota il workspace)
>> clear variable (elimina la variabile desiderata)
>> pwd (indica il percorso del file di lavoro)
>> m ( p m p mm m )
P m p p m p
Environment -> set path -> add folder o add folder with sub folders
In questo modo potremo richiamare tutti i file e le funzioni presenti nelle cartelle ( o sottocartelle)
desiderate.
M w m m :
cos(x) e non Cos(x).
Alcuni comandi speciali
>> realmax (restituisce il valore massimo rappresentabile dal programma)
>> realmin (restituisce il valore minimo rappresentabile dal programma)
>> inf (= infinito, ; p p 3/0)
♾
>>N N (= m ; p mm q p m )
>>computer (restituisce il nome del computer con cui stiamo lavorando)
>>version (restituisce la versione del software con cui stiamo lavorando).
Ottobre Pagina 7
Tipi di dati supportati in matlab
Matlab e’ (anche) un linguaggio di programmazione che si basa sulle matrici. Dichiarando ad esempio la
variabile A=1, stiamo rappresentando una matrice di interi 1x1.
Le matrici in matlab vengono chiamate array. All’interno di tali elementi possiamo salvare valori logici,
caratteri numerici, strutture dati, celle, funzioni ecc.
Per figli array numerici possiamo avere valori numerici a virgola fissa e valori numerici a virgola mobile:
nei primi ricadono quei numeri rappresentabili come interni con segno e interi senza segno; nei secondi i
numeri si definiscono di tipo single o di tipo double in base alla precisione richiesta per gli stessi
(soprattutto in base all’hardware).
Esempio di programma
New script -> save (i file matlab hanno estensione .m, i fogli simulink invece .slx)
L’editor e’ una finestra dove poter scrivere il proprio programma per poi avviarlo con il comando
run e visualizzare i risultati sulla command window.
Per scriver un commento si usa %. I commenti sono evidenziati in verde.
%Esempio1
clear
clc
%%%%%%% %per suddividere il programma in piu’ parti
a=2; %ogniqualvolta dichiariamo una variabile, e’ consigliabile utilizzare un punto e virgola, così
che non compaia a video nella command window
b=2;
s=a+b %In tal modo si visualizza il risultato a video
Per dichiarare un vettore riga:
v1 = [1 2 3]; %vettore di tre elementi, matrice 1x3
Per dichiarare i vari elementi, si utilizza uno “spazio” oppure una virgola, come in questo modo: v1
=[1,2,3];
Per dichiarare un vettore colonna invece:
v2=[1;2;3]; %vettore di 3 elementi, matrice 3x1
v2_1=[1 2 3]’ %trasposta del vettore
Per dichiarare un vettore si può altresì utilizzare questo operatore:
v3= 1: 100 %in questo modo abbiamo dichiarato un vettore che va da 1 a 100; e’ un vettore riga
v3_1=(1:100)’ %vettore colonna con elementi che vanno da 1 a 100
v4= 0:5:100 %vettore riga con elementi da 0 a 100 a salti di 5
v5= linspace(0,100,10) %vettore con 10 elementi equispaziati che vanno da 0 a 100
>v6=logspace(3,5,7) %vettore con 7 elementi equispaziati su scala logaritmica che vanno da 3 a 5
Ottobre Pagina 8
9 Ottobre 2020 (prof. Franze’)
venerdì 9 ottobre 2020 11:30
Prof. Giuseppe Franzè
Libri di riferimento:
“Fondamenti di controlli automatici” Bolzern, Scattolini, Schiavone.
- “Automatic control systems” Kuo, Gol Naragahi
-
Ricevimento: Cubo 42/C, 4 piano. Orario 11:30-13:30, Giovedì
Esame: La prova d’esame è una discussione orale. Nella discussione orale potrebbero esserci esercizi
da fare (semplici).
Email: franze@dimes.unical.it
INTRODUZIONE AI CONTROLLI AUTOMATICI
Per capire cosa tratteremo in questo corso, analizziamo la seguente situazione: ipotizziamo di dover
utilizzare la nostra automobile per raggiungere una posizione desiderata, seguendo un certo tragitto da
noi scelto.
Questa operazione può essere astratta dalla realtà definendo un modello automobile-pilota, in cui
l’obiettivo che ci si pone e’ partire da una posizione iniziale (ovvero dal punto in cui è parcheggiata la
nostra macchina nell’istante di tempo iniziale t=0) per poi raggiungere una posizione finale. Nel fare
questo, prima di salire sull’automobile, abbiamo scelto quale strada seguire. Abbiamo dunque ben chiaro
il percorso da percorrere.
Il pilota, nella sua mente, immagina la strada da seguire, e, nell’istante t=0, fa una serie di azioni
preparatorie alla partenza (premere freno e frizione, accedere il quadro, mettere la prima ecc).
Ipotizziamo ad esempio di spostarci dalla posizione 0 alla posizione 1, in un intervallo di tempo t=1. Per
fare questo breve tragitto Δx, abbiamo fatto delle operazioni che ripetiamo continuamente, ma che per
noi sono naturali. Arrivati a t=1, ripeteremo queste operazioni
in modo continuo (cambiare marce, girare il
volante in base alla curva da percorrere
ecc.), fino al raggiungimento dell’obiettivo a
un certo istante t*.
Svolgiamo quindi delle operazioni di
elaborazione, in base a ciò che vediamo con i
nostri occhi. Il cervello le trasforma perciò in
comandi da fornire al nostro corpo.
Trasformiamo un’informazione in pixel
(=fotografia fatta dagli occhi) in una forza da
imprimere sul pedale dell'acceleratore o in
un altro comando.
Noi cercheremo di far svolgere a un dispositivo qualsiasi questo genere di operazioni. L’automobile e il
pilota, nel loro insieme, rappresentano infatti un sistema, un processo fisico.
Se e’ un processo fisico, significa che noi possiamo definire un modello matematico che ne caratterizza il
comportamento dinamico. Sia l’automobile che il pilota, quando vengono messi insieme e si muovono,
mostrano un comportamento che varia al variare del tempo, in quanto può essere descritto da equazioni
differenziali (in senso generale). Ottobre Pagina 9
In questo corso ci occupiamo di processi fisici dinamici la cui evoluzione varia col tempo, che assumiamo
essere continuo, cioè t appartiene ad R.
Conseguentemente, abbiamo equazioni differenziali di tipo continuo.
La curva di percorrenza della macchina rappresenta un segnale nel dominio del tempo, e tale
segnale lo interpretiamo come il segnale di riferimento, denominato con r(t). E’ un segnale che
già conosciamo: e’ l’obiettivo che vogliamo inseguire. Vorremmo che la nostra automobile
seguisse l’andamento di r(t), che e’ un’applicazione da R in R. Ci troviamo nel dominio del tempo.
Se volessimo imporre la temperatura all’interno di una stanza in maniera costante, ad esempio a 20°C, il
segnale di riferimento sarebbe costante (quindi parallelo all’asse dei tempi).
Gli occhi rappresentano i sensori, che possono essere di varia natura. I sensori raccolgono le
informazioni. I sensori effettuano dunque delle misure. Quindi y(t) e’ la misura, altrimenti chiamata
uscita o variabile misurata.
Non vi e’ alcuna possibilità di agire, tranne se non interveniamo sul sensore stesso.
L’ipotetico controllore può solo usare questa informazione, non può agire in alcun modo su di essa.
Sulla base di questa variabile misurata, abbiamo manipolato y(t) (=fotografia fatta dagli occhi)
in maniera tale che poi gli arti possano agire su freno, sterzo ecc., ovvero svolgere dei comandi.
Questi si chiamano variabili di controllo. Sono quelle azioni su cui il pilota può agire.
Abbiamo in generale tre tipi di variabili per ogni processo fisico: obiettivo, misura e variabili di controllo.
Il cervello rappresenta il controllore, ovvero colui che sulla base di alcune informazioni (=modello
matematico che ha a disposizione) elabora i dati e applica i comandi.
Ottobre Pagina 10
Vogliamo mettere insieme controllore, processo e comandi in un unico schema:
Condizione di quiete: tutte le variabili coinvolte nel processo sono identicamente nulle e tali
rimarrebbero se, in qualche istante di tempo, qualcuno non le modificasse esternamente
(=perturbazione, ovvero una delle variabili di controllo cambia).
Il processo riceve in input la variabile di controllo u(t), che appunto serve per perturbare il
processo. Dopo che il processo evolve, sappiamo che i sensori osservano cosa succede allo stesso.
L’output del processo sono dunque le variabili misurate.
La variabile misurata va manipolata, ovvero va mandata al controllore.
Le variabili che decidiamo di applicare al processo sono l’uscita del controllore. Quest’ultimo infatti deve
essere posto prima del processo e del relativo modello matematico.
I comandi devono essere compatibili con l’obiettivo. Prima di fornire la misura al controllore, quest’ultima
deve essere confrontata con quello che vorremmo fare, ovvero la variabile di riferimento (=il nostro
riferimento ideale).
Chiamiamo questo confronto e(t), cioè l’errore che stiamo commentando rispetto al riferimento ideale.
Forniamo quindi al controllore lo scostamento tra la condizione ideale e quella reale . Sulla base di e(t),
manipoliamo C e definiamo i sistemi di controllo. Il segnale di riferimento deve essere confrontato
continuamente con le variabili di misura.
Noi vorremmo che il nostro errore sia zero. Nella realtà ciò non succede perché i sistemi dinamici sono
caratterizzati da un transitorio.
I comandi istantanei non esistono nella realtà perché avremmo bisogno di ingressi impulsivi, ovvero di
energia infinita.
Quello disegnato sopra e’ uno schema a ciclo chiuso.
Dato il processo fisico (=modello matematico) e dato il segnale di riferimento, lo scopo primario del corso
sarà costruire un dispositivo di controllo C tale che l’errore che intercorre tra la condizione ideale e la
realtà sia il più piccolo possibile per ogni t. Ottobre Pagina 11
Il ciclo chiuso contiene però al suo interno un altro schema denominato ciclo aperto.
Nei cicli aperti si parla di Evoluzione libera del processo fisico, ovvero non si tiene conto della
presenza delle perturbazioni e quindi del relativo sistema di controllo.
A ciclo aperto il sensore non ha alcun effetto, e’ come se non ci fosse.
Per modificare il comportamento di un sistema, abbiamo bisogno di un ciclo chiuso.
Misuriamo prima il comportamento del processo e usiamo tale informazione per cambiare le azioni
di controllo.
Nel semplificare lo schema, abbiamo trascurato alcune informazioni. Dobbiamo infatti tenere conto del
fatto che i processi fisici P sono tutti non lineari. Ciò significa che se la struttura che descrive il
processo e’ fortemente non lineare, bisognerà cercare di utilizzare dei modelli matematici che
descrivano bene il comportamento fisico del processo e che siano al contempo semplici.
Vogliamo allora che i modelli che descrivono il nostro processo fisico siano lineari.
Se il nostro processo fisico e’ non lineare, si può linearizzare il problema caratterizzando un modello
lineare a partire da un suo punto di lavoro. In pratica si sceglie un punto nell’evoluzione del tempo del
nostro processo e si linearizza il modello matematico nell’intorno del suddetto punto. Utilizzeremo
solo modelli lineari cosi’ da sfruttare la sovrapposizione degli effetti.
I modelli lineari sono ammissibili per il comportamento non lineare di P, nel senso che ne
rappresentano il comportamento dinamico in maniera abbastanza fedele.
Nei processi fisici ci sono almeno due sorgenti di problemi di costruzione:
Le variabili coinvolte potrebbero essere vincolate. Per tale motivo, non terremo conto della
• presenza di vincoli di saturazione sugli ingressi (=ad esempio la massima accelerazione
dell’automobile) ne&rsquo
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.