La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Linguaggio MATLAB: costrutti tipici (IF,WHILE…)

Presentazioni simili


Presentazione sul tema: "Linguaggio MATLAB: costrutti tipici (IF,WHILE…)"— Transcript della presentazione:

1 Linguaggio MATLAB: costrutti tipici (IF,WHILE…)
Schema della lezione Concetti introduttivi Operatori logici Linguaggio MATLAB: costrutti tipici (IF,WHILE…) Comandi di INPUT/OUTPUT Funzioni MATLAB

2 Concetti introduttivi
Definizione di una matrice: >> A=[ 1,5,3 ; 4,3,2; 3,1,9 ] ; A= [ ] Lettura di un singolo elemento della matrice: >> X= A (2,3) X=2

3 TRASPOSTA: >> B=A’ ( oppure B=transpose(A) ) B= [ ] DETERMINANTE: >> X = det (A) X = -140 INVERSA DELLA MATRICE >> B = inv (A)

4 VETTORI: matrici con una dimensione unitaria.
VETTORE RIGA: a = [ 1, 2, 3] VETTORE COLONNA: a = [ 1 ; 2 ; 3 ] Generazione di un vettore di indici: I = Valore_Iniziale : delta : Valore_finale Esempio : >> I = 0 : 1 : 10 I = [ ] Maggiori informazioni: Menu Help-> Help Window matlab\matfun

5 Comandi del Control System Toolbox
Rappresentazione nello spazio degli stati: comando ss >> SYS = ss ( A, B, C, D ) Rappresentazione mediante funzione di trasferimento: comando tf >> SYS = tf ( NUM, DEN) = tf ( [ 1,2,6], [1,1,5,8])

6 Comandi del Control System ToolBox
Rappresentazione ZERI-POLI-GUADAGNO: comando zpk >> SYS = zpk ( [Z1,Z2,..,Zm] , [P1,P2,…,Pn] , K ) ESEMPIO: >> SYS = zpk ([-1] , [2,-3] , 2 )

7 Risposta all’impulso e al gradino del modello :
Comandi STEP e IMPULSE 2 modi di utilizzo: step ( SYS) => i tempi di campionamento vengono scelti automaticamente ; step (SYS, T) => T definisce gli istanti di campionamento T = Tiniziale: step : Tfinale ( vettore colonna ) [ Y, T1 ] = step ( SYS , T) => non viene plottato il risultato, nella matrice ( o vettore) Y si ha l’andamento delle uscite mentre T1 contiene il vettore degli istanti di campionamento. Plot( T1,Y) => visualizzazione dei risultati.

8 Operatori comparativi
Forniscono un risultato di tipo BOOLEAN: VERO o FALSO. Si dispone di 6 operatori: UGUAGLIANZA : eq oppure == DISUGUAGLIANZA : ne oppure ˜= MINORE DI … : lt oppure < MAGGIORE DI : gt oppure > MAGGIORE O UGUALE: ge oppure >= MINORE O UGUALE.. : le oppure <=

9 MODO DI UTILIZZO : >> RIS = A < B oppure RIS = lt ( A,B ) A,B sono 2 matrici della stessa dimensione oppure o A o B scalare. Viene effettuata una comparazione elemento per elemento e viene ritornata la matrice RIS in cui ho 1 se VERO o 0 se FALSO. ESEMPIO: A = [ 2 2 2 2] B = [ 1 1 5 0 ] RIS = lt (A,B) => RIS = [ 0 0 1 0 ]

10 Operatori logici Operatori binari: FORMATO: RIS = operatore ( A , B) AND oppure & => VERO se entrambi diversi da zero OR oppure ! => VERO se almeno un valore diverso da zero XOR=>ritorna FALSO se i valori sono entrambi = 0 o diversi da 0 Operatori monari : FORMATO: RIS = operatore ( A ) NOT => VERO se il valore e’ uguale a 0, FALSE altrimenti. ANY => se A e’ un array ritorna VERO se tutti i valori sono diversi da 0 ALL => se A e un array ritorna VERO se almeno un valore e’ diverso da 0

11 Costrutti per la programmazione MATLAB
Vengono utilizzati per una programmazione evoluta Molto simili ai costrutti del linguaggio C MATLAB fornisce 4 costrutti fondamentali: IF FOR WHILE SWITCH

12 IF (espressione_logica) blocco_istruzioni;
COSTRUTTO IF Viene utilizzato quando l’esecuzione di un certo numero di istruzioni e’ vincolata al soddisfacimento di una certa espressione logica. FORMATO COMPLETO: IF (espressione_logica) blocco_istruzioni; ELSE IF (espressione_logica) ELSE END

13 I blocchi ELSE IF ed ELSE sono opzionali.
L’espressione logica deve ritornare un valore scalare. ESEMPIO: IF (Temperatura>25) ARIA_FREDDA=1; ELSE IF (Temperatura>20) ARIA_FREDDA=0; ARIA_CALDA=0; ELSE ARIA_CALDA=1; END

14 Costrutto FOR Il FOR viene utilizzato quando un gruppo di istruzioni deve essere ripetuto un determinato numero di volte. FORMATO: FOR INDICE = VALORE_IN: STEP: VALORE_FIN Blocco_istruzioni; END STEP = incremento del contatore ad ogni ciclo.

15 ESEMPIO: vogliamo generare un vettore a “RAMPA”
FOR t=0: 0.1 : 5 Y(I) = t ; I=I+1; END Y diviene un vettore composto da 50 valori: Y= [ 0, 0.1 , 0.2 , 0.3 , 0.4 , …., 5]

16 Costrutto WHILE Viene utilizzato quando un gruppo di istruzioni deve essere ripetuto finche’ un’espressione logica risulta vera. Anche in questo caso l’espressione deve fornire un valore scalare. FORMATO: WHILE (espressione_logica) Blocco_istruzioni; END ESEMPIO: WHILE (Temperatura<25) ARIA_CALDA=1; END

17 Costrutto SWITCH SWITCH variabile CASE (caso1) blocco_istruzioni;
Viene utilizzato quando il blocco di istruzioni da eseguire dipende dal valore di una certa variabile. Può essere sostituito da una serie di IF. FORMATO: SWITCH variabile CASE (caso1) blocco_istruzioni; CASE (caso2) ……. OTHERWISE END

18 ESEMPIO: SWITCH (a) CASE (1) % se a=1 allora esegue queste istruzioni Y(1) = a; CASE(2) Y(1)=a-1; OTHERWISE Y(1)=0; END Menu Help->Help Window: matlab\lang

19 Istruzione BREAK Questa istruzione viene utilizzata per terminare un ciclo prima del previsto, si utilizza all’interno di cicli FOR o WHILE. ESEMPIO: for I=0:1000 a=controllo_temperatura(); if (a>2000) break; % esco dal ciclo for end stampa_temperatura(a);

20 ISTRUZIONI DI INPUT-OUTPUT:
FPRINTF INPUT: interazione con l’utente nello spazio di lavoro di MATLAB. Viene utilizzata per leggere valori immessi dall’utente VALORE = INPUT (‘ stringa di testo’ ); FPRINTF: viene utilizzata come in C per visualizzare nello spazio di lavoro il contenuto delle variabili. FPRINT (‘ stringa %x ’ ,valore ) %d = valore intero %f = valore floating

21 FUNZIONI MATLAB E’ possibile aggiungere alle funzioni già esistenti altre costruite da noi in modo da risolvere problemi specifici. Le variabili definite all’interno di una funzione sono LOCALI. FORMATO: FUNCTION [ output ] = nome_function ( input ) blocco_istruzioni; All’interno della function i parametri di output vengono settati e viene ritornato il loro valore al termine della funzione stessa. Non c’è bisogno di utilizzare il return come in C. Si creano come degli script e si salvano nel formato: nome_function.m


Scaricare ppt "Linguaggio MATLAB: costrutti tipici (IF,WHILE…)"

Presentazioni simili


Annunci Google