INTRODUZIONE A MATLAB Matrix Laboratory



Похожие документы
Introduzione allo Scilab Parte 1: numeri, variabili ed operatori elementari

INTRODUZIONE A MATLAB

SISTEMI DI CONTROLLO Ingegneria Meccanica e Ingegneria del Veicolo

Cenni sull'impiego di Matlab. Matrici

Introduzione a MATLAB INTRODUZIONE A MATLAB

Introduzione al MATLAB c Parte 1

Laboratorio per l Elaborazione MultiMediale Lezione 1 - Introduzione a Matlab R

Vettori e Matrici. Corso di Calcolo Numerico. 24 Aprile 2018

Introduzione a Matlab

Introduzione agli ambienti

In base alla definizione di limite, la definizione di continuità può essere data come segue:

Lezioni su MATLAB. Ingegneria Civile/Meccanica

Laboratorio di Matematica Computazionale A.A Lab. 1 - Introduzione a Matlab

MATLAB (1) Introduzione e Operazioni con array

CONTROLLI AUTOMATICI E AZIONAMENTI ELETTRICI Ingegneria Meccatronica

if t>=0 x=1; else x=0; end fornisce, nella variabile x, il valore della funzione gradino a tempi continui, calcolata in t.

MATLAB Elementi di grafica Costrutti di programmazione

Introduzione a Matlab (e al Calcolo Numerico)

Advanced level. Corso Matlab : Samuela Persia, Ing. PhD.

Ripasso delle matematiche elementari: esercizi svolti

Rapida Introduzione all uso del Matlab Ottobre 2002

Dati importati/esportati

Command Window e linea di comando di MATLAB

Introduzione al MATLAB c Parte 2

FONDAMENTI DI SEGNALI E TRASMISSIONE 6 Laboratorio

Capitolo 5. Funzioni. Grafici.

Fondamenti di Automatica

MATLAB. Caratteristiche. Dati. Esempio di programma MATLAB. a = [1 2 3; 4 5 6; 7 8 9]; b = [1 2 3] ; c = a*b; c

Lab. 1 - Introduzione a Matlab

PON Liceo Scientifico Leonardo da Vinci. Vallo della Lucania

Laboratorio di Fondamenti di Automatica Ingegneria Elettrica Sessione 2/3. Danilo Caporale

Corso Integrato: Matematica e Statistica. Corso di Matematica (6 CFU)

INTRODUZIONE A MATLAB

Esempio di prova di laboratorio

Approssimazione dell esponenziale

I Lezione: Il programma MATLAB. 1 Introduzione. 2 Matrici in MATLAB

Laboratorio di Matlab

2.5 Stabilità dei sistemi dinamici funzioni di trasferimento, nella variabile di Laplace s, razionali fratte del tipo:

Grafici tridimensionali

Introduzione a ROOT. 1. Informazioni generali

Anno 5 4 Funzioni reali. elementari

Introduzione a SAGE Math

Esempi di uso e applicazioni di Matlab e simulink. 1) Uso delle funzioni ode23 e ode45 per l'integrazione di equazioni differenziali con Matlab

INTRODUZIONE A. Guido Vagliasindi Controlli Automatici A.A. 06/07 Introduzione a MATLAB

Principali comandi MATLAB utili per il corso di Controlli Automatici

Consideriamo due polinomi

Esercizi svolti. 1. Si consideri la funzione f(x) = 4 x 2. a) Verificare che la funzione F(x) = x 2 4 x2 + 2 arcsin x è una primitiva di

Finestre grafiche. >> figure >> figure(n)

La grafica. La built-in funzione grafica plot. x spezzata poligonale. discretizzato

Introduzione allo Scilab Parte 3: funzioni; vettori.

x ( 3) + Inoltre (essendo il grado del numeratore maggiore del grado del denominatore, d ancora dallo studio del segno),

Controlli Automatici T. Trasformata di Laplace e Funzione di trasferimento. Parte 3 Aggiornamento: Settembre Prof. L.

Laboratorio Algoritmi 2014 Secondo Semestre

Per studio di funzione intendiamo un insieme di procedure che hanno lo scopo di analizzare le proprietà di una funzione f ( x) R R

Metodi Stocastici per la Finanza

CORSO DI LAUREA INF TWM ANNO DI IMMATRICOLAZIONE MATRICOLA

Appunti sull uso di matlab - I

Fondamenti di Automatica. Unità 2 Calcolo del movimento di sistemi dinamici LTI

Manuale di MATLAB. (livello base)

Introduzione al MATLAB c

Dimensione di uno Spazio vettoriale

Politecnico di Milano. Fondamenti di Automatica (CL Ing. Gestionale) a.a Prof. Silvia Strada Prima prova intermedia 28 Novembre 2014 SOLUZIONE

RICHIAMI SULLE MATRICI. Una matrice di m righe e n colonne è rappresentata come

Modelli matematici e realtà:

Il sistema operativo UNIX/Linux. Gli script di shell

Autovalori e Autovettori

Control System Toolbox

Транскрипт:

INTRODUZIONE A MATLAB Matrix Laboratory Introduzione Linguaggio di programmazione per applicazioni scientifiche e numeriche Vasto set di funzioni predefininte Interprete di comandi Possibilità di scrivere nuove funzioni Libreria di Toolbox per svariate applicazioni (analisi dei sistemi, analisi e sintesi di controllori, analisi dei segnali, ) L interfaccia utente di Matlab: la Command Window dà accesso diretto all interprete mediante scrittura diretta dei comandi al prompt» Matlab come calcolatrice E la modalità di impiego più semplice (valutare espressioni numeriche) Esempio: per calcolare 4 + sin (0.π) + e è sufficiente digitare al prompt»» 4+sqrt() (sin(0.*pi))^+exp() 1.4578 Il risultato viene scritto nella variabile ans Definizioni di variabili E possibile definire variabili e espressioni non numeriche più complesse Esempio:» a=4; b=;» a*b 8 Per conoscere le variabili definite e le loro dimensioni» whos Name Size Bytes Class A 1x1 8 double array Ans 1x1 8 double array b 1x1 8 double array Grand total is 3 elements using 4 bytes oppure» who Your variables are: a ans b Per cancellare una variabile (es. a)» clear a Per cancellare tutte le variabili» clear all Funzioni predefinite (di uso più comune) Funzioni trigonometriche: sin, cos, tan, acos, asin, atan, Esponenziale e logaritmo: exp, log, log10, sqrt, Numeri complessi: abs (modulo), angle (fase), real (parte reale), imag (parte immaginaria), Esempi: Calcolare il modulo di + 3 i» abs(+3*i) 3.6056 + 3i Calcolare 0log10 4 + 6i» 0*log10(abs((+3*i)/(4+6*i))) 6.006 Una funzione fondamentale! HELP help seguito dal nome di una funzione restituisce una descrizione e la sintassi d uso della medesima. Esempio:

» help exp fornisce una descrizione sull uso del comando exp (esponenziale in base e) help da solo restituisce l elenco di tutte le categorie (insiemi di funzioni) presenti in Matlab. help seguito dal nome di una categoria restituisce l elenco di tutte le funzioni presenti n quella categoria. Esempio:» help elmat restituisce l elenco di tutte le funzioni elementari implementate in Matlab per l algebra delle matrci Definizione di matrici Come si definisce una matrice in Matlab? 1 Esempio: definire la matrice x 3 4» A=[1 ;3 4] 1 3 4 Come si accede agli elementi di una matrice? Indici riga i e colonna j dell elemento di interesse A(i, j)» A(1,) Elementi di una colonna j A(:,j) (: = tutte le righe)» A(:,) 4 Elementi di una riga i A(i,:) (: = tutte le colonne)» A(1,:) 1 Operazioni elementari sulle matrici (» help elmat) Sono definiti gli operatori +,, * e ^ Matrice trasposta» A' 1 3 4 Matrice inversa» inv(a).0000 1.0000 1.5000 0.5000 Matrice identità (» help eye)» eye(size(a)) 1 0 0 1 Matrice nulla (» help zeros)» zeros(size(a)) 0 0 0 0 Determinante» det(a) Autovalori

» eig(a) 0.373 5.373 Autovettori (» help eig)» [V,D]=eig(A) V = 0.846 0.4160 0.5658 0.9094 D = 0.373 0 0 5.373 Alcuni comandi che useremo (» help nome comando ) abs clear close dlsim eig eye figure grid hold length lsim ones plot poly roots size xlabel ylabel zoom Dato il sistema a tempo discreto x(t+1) = A x(t) + b u(t) y(t) = c x(t) + d u(t) dove 0.8 1 1 0.5 0.6 b = 1 c = [ 1 1 1] d = 0 1 0.5 1 determinare l equilibrio corrispondente a ingresso costante pari a (u(t) = t) e studiarne la stabilità. % puliamo e definiamo le matrici e l ingresso» clear all;» A=[ 0.8 1 ; 0.5 0.6 ; 1 0.5]» b=[1 1 1]» c=[1 1 1]» d=0» u= % equilibrio e uscita di equilibrio = y = cx + du % x ( I A) bu» x=inv(eye(size(a)) A)*b*u 0.809 0.7514 1.948» y=c*x+d*u y =.8555 % stabilità: calcolo degli autovalori e del loro modulo» autoval=eig(a) autoval = 0.4755 + 0.3641i 0.4755 0.3641i 0.509» abs(autoval) 0.5989 0.5989 0.509 % (modulo inferiore a 1 stabilità asintotica) % altro metodo (radici del polinomio caratteristico)» policar=poly(a)

policar = 1.0000 0.7000 0.100 0.0900 3 % cioè: A( λ) = λ + 0.7λ + 0.1λ 0. 09 % gli autovalori sono le radici del polinomio caratteristico A( λ)» autov=roots(policar) % Notare che sono uguali al vettore autoval! % simulazione del sistema» T=[0:1:0] ;» U=*ones(size(T));» X0=[0 0 0] ;» [Y,X]=dlsim(A,b,c,d,U,X0); % plot della simulazione: variabili di stato» figure; hold on; grid; zoom; xlabel('tempo t'); ylabel('variabili di stato');» plot(t,x(:,1),'g');» plot(t,x(:,),'r');» plot(t,x(:,3),'b'); % il vettore X tende verso il vettore di equilibrio x (il sistema è asintoticamente stabile) 0.809 0.7514 1.948 % le oscillazioni sono dovute alla presenza di autovalori complessi % plot della simulazione: variabile di uscita» figure; hold on; grid; zoom; xlabel('tempo k'); ylabel('uscita');» plot(t,y); % Y tende verso l uscita di equilibrio y % un altro sistema a tempo discreto 1 1 1 1 0 b = 1 c = [ 0 1 ] d = 0 u(t) = t 1 1 % equilibrio e uscita di equilibrio 8 4 y = 10 6 % stabilità: calcolo degli autovalori e del loro modulo (modulo maggiore di 1 instabilità) 1.1304 1.1304 autoval =.565 + 1.0434i abs (autoval) = 1.8811.565.0434i 1.8811 % simulazione del sistema nell intervallo [0, 0] partendo da una condizione iniziale prossima ma diversa da x % (p.e. X0 = [ 7.9 4.1 5.9] ); % plot della simulazione: variabili di stato e uscita; il vettore X diverge da x (il sistema è instabile) % simulazione del sistema nell intervallo [0, 10] partendo da una condizione X0 iniziale pari a x % il plot della simulazione mostra che variabili di stato e uscita rimangono costanti: % partendo dalla condizione di equilibrio, anche se instabile, vi si rimane! Dato il sistema a tempo continuo x (t) = A x(t) + b u (t) y (t) = c x(t) + d u(t) dove

1 0 10 b = 1 c = [ 1 0 1] d = 0 0 0 1 determinare l equilibrio corrispondente a ingresso costante pari a 1 (u(t) = 1 t) e studiarne la stabilità. % puliamo e definiamo le matrici e l ingresso» A=[ ; 0 10;0 0 ]» b=[1 1 1]» c=[1 0 1]» d=0» u=1 % equilibrio e uscita di equilibrio % A bu y = cx + du» x= inv(a)*b*u 0.7308 0.1154 0.0769» y=c*x+d*u y = 0.6538 % stabilità: calcolo gli autovalori e ne osservo la parte reale» autoval=eig(a) autoval =.0000.0000 +10.0000i.0000 0.0000i % parte reale di tutti gli autovalori strettamente negativa (» real(autoval) ) asintotica stabilità % altro metodo (radici del polinomio caratteristico)» policar=poly(a) policar = 1 5 108 104 3 % cioè: A ( λ) = λ + 5λ + 108λ + 104 % gli autovalori sono le radici del polinomio caratteristico A( λ)» autov=roots(policar) % Notare che sono pari al vettore autoval % simulazione del sistema» T=[0:0.01:5] ;» U=1*ones(size(T));» X0=[0 0 0] ;» [Y,X]=lsim(A,b,c,d,U,T,X0); % plot della simulazione: variabili di stato» figure; hold on; grid; zoom; xlabel('tempo t'); ylabel('variabili di stato');» plot(t,x(:,1),'g');» plot(t,x(:,),'r');» plot(t,x(:,3),'b'); % il vettore X tende verso il vettore di equilibrio x (il sistema è asintoticamente stabile) 0.7308 0.1154 0.0769 % le oscillazioni sono dovute alla presenza di autovalori complessi % plot della simulazione: variabile di uscita» figure; hold on; grid; zoom; xlabel('tempo k'); ylabel('uscita');

» plot(t,y); % Y tende verso l uscita di equilibrio y % un altro sistema a tempo continuo 3 1 b = 4 c = [ 1 0] d = 0 u(t) = 1 t 1 % equilibrio e uscita di equilibrio 0.1538 y = 0.1538 0.3846 % stabilità: calcolo gli autovalori e ne osservo la parte reale + 3.4641i autoval = 3.4641i % parte reale di tutti gli autovalori strettamente negativa (» real(autoval) ) asintotica stabilità % simulazione del sistema nell intervallo [0, 8], partendo da condizione iniziale qualsiasi % plot della simulazione: variabili di stato % il vettore X tende verso il vettore di equilibrio x (il sistema è asintoticamente stabile) % le oscillazioni sono dovute alla presenza di autovalori complessi % plot della simulazione: variabile di uscita % Y tende verso l uscita di equilibrio y % plot nel piano di stato» figure; hold on; xlabel('x_1'); ylabel('x_');» plot(x(:,1),x(:,)); % traiettoria» plot(x(1),x(),'*'); % equilibrio % cambiare la condizione iniziale, ripetere la simulazione e sovrapporre nel piano di stato % la nuova simulazione alla vecchia (data l asinotica stabilità del sistema, si tende verso l equilibrio % da ogni condizione iniziale Studiare la stabilità del sistema a tempo CONTINUO p 0 p 0 p p al variare del parametro p nell intervallo [, 1]. % pulizia % autovalori al variare del parametro p» param=[];» autoval=[];» for p=:0.1:1, A=[ 1 p ; 0 p; 0 p p]; param=[param p]; autoval=[autoval eig(a)]; end;» figure; hold on; grid; zoom; xlabel('parametro p'); ylabel('parte reale degli autovalori');» plot(param,real(autoval)); % per p > 0 tutti gli autovalori hanno parte reale negativa il sistema è asintoticamente stabile % ripeti l esempio a tempo DISCRETO % la frontiera di stabilità è il cerchio di raggio unitario» figure; hold on; grid; zoom; xlabel('parametro p'); ylabel('modulo degli autovalori');» plot(param,abs(autoval)); % esiste sempre un autovalore di modulo maggiore di 1 il sistema è instabile per ogni valore di p