Sei sulla pagina 1di 31

Corso di Matlab_Simulink per Ingegneria 2

I menu del desktop di Matlab

La finestra dei comandi di Matlab 6 ha sei menu:


File, Edit, View, Web, Window e Help.

Ogni opzione di un men pu essere selezionata con il men aperto, facendo clic con il mouse su di essa o digitando la lettera sottolineata dellopzione.

Menu file
New apre una finestra di dialogo che consente di creare un nuovo file di programma, chiamato M-file, utilizzando un editor Editor/Debugger di testi o un nuovo file Figure o Model. Open apre una finestra di dialogo che consente di selezionare i file di programma da modificate. Close command window chiude la finestra dei comandi. Importa Data avvia Import Wizard un utility di Matlab che permette di importare facilmente dei dati. Save Workspace as apre una finestra di dialogo che consente di salvare i nomi e i valori delle variabili in un file di cui stato selezionato il nome. Set path apre una finestra di dialogo il percorso (path) di ricercare dei file

Menu file (continuazione)


Perferences apre una finestra di dialogo che permette di impostare alcuni elementi di Matlab, quali il tipo di caratteri i colori, la spaziatura di tabulazione e cos via.

Print

apre una finestra di dialogo che permette di stampare tutti i testi presenti nella finestra dei comandi. apre una finestra di dialogo che permette di stampare soltanto le parti selezionate nella finestra dei comandi. visualizza lelenco dei file precedentemente utilizzati in ordine cronologico. esce da Matlab

Print Select

File List Exit Matlab

Menu Edit Undo Redo Cut annulla gli effetti dellultima operazione di editing. ripristina lultima operazione annullata. elimina il testo selezionato e lo registra in unarea di memoria (clipboard o Appunti di Window); il testo potr essere successivamente incollato in un altro punto scelto con il mouse. copia in memoria il testo selezionato, senza cancellarlo; il testo potr essere successivamente incollato nella posizione corrente del cursore inserisce nella posizione corrente del cursore il testo contenuto nel clipboard

Copy

Paste

Menu Edit (continuazione) Paste special inserisce il testo selezionato nel clipboard nellarea di lavoro sotto forma di una o pi variabili. seleziona tutti i testi presenti nella finestra dei comandi. cancella la variabile selezionata nella finestra del Workspace browser.

Selct All Delete

Clear command Window cancella tutti i testi dalla finestra dei comandi Clear command history cancela tutti i testi della finestra Command Hystory Clear Workspace cancella i valori di tutte le variabili dellarea di lavoro.

Menu View
Il menu VIEW viene utilizzato per: controllare la configuarazione del desktop di Matlab; accedere alla directory (o cartella corrente); consultare la guida HELP per visualizzare Workspace browser (questa utility permette di esaminare le variabili utilizzate da Matlab; Accedere al sito The MathWorks, che ontiene informzioni sui nuovi prodotti e sugli aggiornamenti del software, fornendo anche un supporto tecnico

Menu Window
Contiene una o pi opzioni a seconda delle operazioni che sono state svolte durante la sessione di lavoro di Matlab. Pu essere usato per spostarsi da una finestra allaltra tra quelle create nella sessione di lavoro (si pu ottenere lo stesso risultato pemendo Alt Tab).

Menu Help
Fornisce un utile ausilio allutente attraverso una ricerca per argomenti o per indice. Lopzione about Matlab consente di visualizzare tutte le specifiche della versione corrente di Matlab.

Barra degli strumenti


La barra degli strumenti posta sotto la barra dei men contiene alcune icone o pulsanti che permettono di accedere ad alcune funzionalit dei menu di uso pi frequente. New M_file, Open File, Cut, Copy, Paste, Undo, Redo, Simulink, Help, Current Directory.

Array
Per creare un vettore riga in Matlab basta digitare gli elementi allinterno di una coppia di parentesi quadre, separandoli con uno spazio o una viergola. Es: a= [ 2 6 4] oppure a= [ 2, 6, 4], oppure a= [ 2, 6, 4] Per creare un vettore colonna basta separare gli elementi con un punto e virgola b= [ 2; 6; 4] oppure fare la trasposta del vettore creato come vettore riga, utilizzando il simbolo di trasposizione() che trasforma un vettore riga in un vettore colonna e viceversa a= [ 2, 6, 4] b=a

Array (continuazione)
Un terzo metodo consiste nel premere invio dopo aver digitato ciascun elemento: b=[2 4 8]

Infine, se gli elementi sono regolarmente intervallati loperatore (:) consente di generare un vettore riga: a=[p:step:u] es: a=[3:.3:9] p primo elemento step incremento (<0 se u<p) u ultimo elemento

es:

a=[8:-2:-12])

Array( continuazione) linspace (x1,x2,n) consente di creare un vettore riga con un numero predefinitto n di elementi linearmente intervallati nellintervallo[x1,x2] es: a= linspace (5,8,31) equivale a=[5:.1:8]

logspace(a,b,n)

crea un array di elementi intervallati logaritmicamente, dove n il numero dei punti fra 10a e 10b es: x=logspace (-1,1,4) se n viene omesso, vengono generati 50 elementi

Array( continuazione)
Per creare una matrice si possono digitare gli elementi uno per volta separando gli elementi di ogni riga con uno spazio (blank) o virgola(,) e le righe con un punto e virgola(;) , il tutto tra parentesi quadre. A=[ 1 2 3;4 5 6 ; 7 8 9] A=[ 1, 2 ,3;4 ,5, 6 ; 7, 8, 9] Una matrice pu essere creata anche accorpando pi matrici che devono avere ugual numero di righe: C=[ A B] o di colonne D=[A;B]

Array( continuazione)
Gli indici di una Array sono i numeri di riga e di colonna che identificano i vari elementi dellarray. A(n,m) identifica lelemento che occupa la riga n e la colonna m Questa notazione consente di correggere uno o pi elementi di una array senza digitare nuovamente tutti gli elementi

Array( continuazione) Loperatore (:) seleziona i singoli elementi, righe, colonne o sottoarray. In particolare con i vettori: v(:) rappresenta tutti gli elementi del vettore; v(n1:n2) rappresenta tutti gli elementi del vettore compresi tra n1-esimo elemento e n2-esimo elemento; e con le matrici: A(:,n) identifica tutti gli elementi della ennesima colonna A A(:,n1:n2) identifica tutti gli elementi della enne1-esima colonna alla enne2-esima di A A(3:5,1:6) identifica tutti gli elementi dalla 3 alla 5 che si trovano tra la 1 e la 6 colonna di A

Array( continuazione) Operazioni con gli array (elemento per elemento) + somma array-scalare A+b - sottrazione array-scalare A-b + somma di array A+B sottrazione di array A-B .* moltiplicazione di array A.*B ./ divisione a destra o diretta di array A./B .\ divisione a sinistra o inversa di array A.\B .^ elevazione a potenza di unarray A.^B
Le operazioni con gli array elemento per elemento, vengono svolte tra gli elementi che occupano posizioni corrispondenti. Verificare che C diverso da D se: C=A*B e D=A.*B e che E diverso da F se: E=A.\B e F=A./B

cat(n,A,B,C,)

Comandi per gli array crea un nuovo array di dimensione n concatenando gli array A,B,C ,..

find(v)

genera un array che contiene gli indici degli elementi non nulli dellarray vettore v

[u,v,w]=find(A) crea gli array u e v che contengono gli indici delle righe e delle colonne degli elementi non nulli della matrice A. Larray w contiene i valori degli elementi non nulli. length(v) size(A) calcola in numero degli elementi del vettore v restituisce un vettore riga [m n] che contiene le dimensioni della matrice m*n

Comandi per gli array (continuazione) min(A) restituisce un vettore riga contenente gli elementi minimi di ogni colonna di A restituisce un vettore riga contenente gli elementi massimi di ogni colonna di A

max(A)

sort(A)

dispone le colonne dellarray A in ordine crescente e restituisce un array della stessa dimensione di A somma gli elementi di ogni colonna dellarray A e restituisce un vettore riga che contiene le somme risultanti.

sum(A)

Comandi per gli array (continuazione)

Autovalori e autovettori
Data la matrice A nxn , esistono due matrici V nxn e D nxn tali che:
AV=VD con V costituita dagli autovettori normalizzati della matrice A e con D matrice diagonale che presenta sulla diagonale gli autovalori della matrice A

D=eig(A)

Comandi per gli array (continuazione) Autovalori e autovettori restituisce il vettore colonna a di dimensioni nx1 costituito dagli autovalori della matrice A nxn

[V,D] =eig(A) restituisce la matrice V nxn costituita dagli autovettori normalizzati della matrice A e la matrice diagonale D nxn che presenta gli autovalori della matrice A [V,D] =eig(A,B) restituisce la matrice V nxn e la matrice diagonale D nxn che rappresentano la soluzione dellequazione matriciale: AV=BVD con A e B matrici quadrate

Comandi per gli array (continuazione) Fattorizzazione triangolare (triangular factorization)

Data la matrice quadrata A di dimensione nxn listruzione:


[L,U]=lu(A)

con : U matrice triangolare nxn superiore di dimensione e L matrice di dimensione nxn otenuta come permutazione di una matrice triangolare inferiore che ha gli elementi sulla diagonanle originale pari a 1. La fattorizzazione tale che A=LU

Comandi per gli array (continuazione) Fattorizzazione triangolare (triangular factorization , LU factorizatio or LR factorization) Data la matrice quadrata A di dimensione nxn listruzione [L,U,P]=lu(A) con : U matrice triangolare nxn superiore di dimensione e L matrice di dimensione nxn otenuta come permutazione di una matrice triangolare inferiore P matrice di permutazione La fattorizzazione tale che PA=LU

Comandi per gli array (continuazione) Singular Value Decomposition Data la matrice quadrata A di dimensione nxm listruzione: [U,S,V]=svd(A) con U matrice nxn ,e V matrice di dimensione mxn ortogonali e S di dimensioni nxm con i valori singolari della matrice A sulla diagonale principale. La decomposizione tale che A=USVT svd(A) restituisce il vettore colonna di dimensioni min(m,n)x1 contenente i valori singolari di A

Matrici speciali
eye(n) eye(size(A)) crea una matrice identit (n*n) crea una matrice identit con la stessa dimensione della matrice A

ones(n)

crea una matrice (n*n) i cui elementi sono pari a 1 ones(m,n) crea una array (m*n) i cui elementi sono pari a 1 ones(size(A)) crea una matrice di elementi pari a 1 avente la stessa dimensione della matrice A

Matrici speciali
zeros(n) crea una matrice identit (n*n)i cui elementi sono pari a 0 crea una array (m*n)i cui elementi sono pari a 0 crea una matrice di elementi pari a 0 avente la stessa dimensione della matrice A

zeros (m,n)

zeros(size(A))

Matrici speciali
rand(n) crea una matrice (n*n) di elementi casuali compresi tra [0,1] crea una matrice (m*n) di elementi casuali compresi tra [0,1] crea una matrice (n*n) di numeri naturali compresi tra [1,n2] con righe, colonne e diagonale che presentano tutte la stessa somma

rand (m,n)

magic(n)

Prodotti speciali
calcola un array (3,n) le cui colonne sono i prodotti vettoriali delle corrispondenti colonne negli array (3*n) A e B. Se A e B sono i vettori di tre elementi, fornisce un vettore i cui elementi rappresentano le tre componenti del prodotto vettoriale. Esempio: il momento M rispetto a un punto di riferimento O dovuto alla forza F dato da M=r x F , dove r il vettore posizione del punto O al punto di applicazione della forza F. Per trovare il momento basta digitare: M=coss(r,F) cross(A,B)

Prodotti speciali

dot(A,B)

calcola un vettore riga di dimensione n, i cui elementi sono i prodotti scalari delle corrispondenti colonne negli array (n*m) A e B.

Esempio: per calcolare la componente della forza F lungo la direzione data del vettore r; Fr basta digitare: Fr=dot(F,r)

Per poter eseguire delle operazioni tra polinomi, occorre che gli array associati abbiano uguali dimensioni.

Quindi per eseguire operazioni con polinomi di grado diverso occorre associare il valore 0 ai coefficienti del polinomio di grado inferiore mancanti

Comandi per i polinomi conv(a,b) calcola il prodotto di due polinomi rappresentati dagli array dei coefficienti a e b. I due polinomi non devono essere dello stesso ordine. Il risultato larray dei coefficienti del polinomio prodotto. [q,r]=deconv(num,den) calcola la divisione fra un polinomio, rappresentato dallarray dei coefficienti num, e un altro polinomio rappresentato dallarray dei coefficienti den; il polinomio quoziente rappresentato dalarray dei coefficienti q; il polinomio resto rappresentato dallarray dei coefficienti r.

Poly (r) calcola i coefficienti del polinomio le cui radici sono specificate dal vettore r. Il risultato un vettore riga che contiene i coefficienti del polinomio ordinati in senso decrescente delle potenze.

Comandi per i polinomi (continuazione)


polyval(a,x) calcola il polinomio per determinati valori della sua variabile indipendente x, che pu essere una matrice o un vettore. I coefficienti del polinomio delle potenze decrescenti vengono registrati nellarray a. Il risultato ha la stessa dimensione di x. calcola le radici di un polinomio rappresentato dallarray dei coefficienti a. Il risultato un vettore colonna che contiene le radici del polinomio.

roots(a)

Sviluppo in fratti semplici


[R,P,K] = RESIDUE(B,A) determina i residui R(i) e i poli P(i) per poter esprimere il rapporto di due polinomi B(s)/A(s) con una espansione ( o sviluppo ) in fratti semplici che ( se non sono presenti poli multipli del tipo:

B(s) R(1) R(2) R(n) ---- = -------- + -------- + ... + -------- + K(s) A(s) s - P(1) s - P(2) s - P(n)
I vettori B and A sono i coefficienti dei polinomi a numeratore e a denominatore in ordine di potenza decrescente.

R il vettore dei residui P il vettore dei poli K il vettore dei coefficienti del polinomio resto

Il numero dei poli n = length(A)-1 = length(R) = length(P). il vettore dei coefficienti del polinomio resto : vuoto se if length(B) < length(A), altrimenti length(K) = length(B)-length(A)+1.