concetti introduttivi operatori logici linguaggio matlab: costrutti tipici (if,while…)

21
Seminario MATLAB Corso di Controlli Automatici A Concetti introduttivi • Operatori logici • Linguaggio MATLAB: costrutti tipici (IF,WHILE…) • Comandi di INPUT/OUTPUT • Funzioni MATLAB Schema della lezione

Upload: candice-howell

Post on 02-Jan-2016

49 views

Category:

Documents


2 download

DESCRIPTION

Schema della lezione. Concetti introduttivi Operatori logici Linguaggio MATLAB: costrutti tipici (IF,WHILE…) Comandi di INPUT/OUTPUT Funzioni MATLAB. Concetti introduttivi. Definizione di una matrice: >> A=[ 1,5,3 ; 4,3,2; 3,1,9 ] ; A= [ 1 5 3 4 3 2 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Concetti introduttivi  Operatori logici  Linguaggio MATLAB: costrutti tipici (IF,WHILE…)

Seminario MATLAB Corso di Controlli Automatici A

• Concetti introduttivi

• Operatori logici

• Linguaggio MATLAB: costrutti tipici (IF,WHILE…)

• Comandi di INPUT/OUTPUT

• Funzioni MATLAB

Schema della lezione

Page 2: Concetti introduttivi  Operatori logici  Linguaggio MATLAB: costrutti tipici (IF,WHILE…)

Seminario MATLAB Corso di Controlli Automatici A

Definizione di una matrice:

>> A=[ 1,5,3 ; 4,3,2; 3,1,9 ] ;

A= [ 1 5 3

4 3 2

3 1 9 ]

Concetti introduttivi

Lettura di un singolo elemento della matrice:

>> X= A (2,3)

X=2

Page 3: Concetti introduttivi  Operatori logici  Linguaggio MATLAB: costrutti tipici (IF,WHILE…)

Seminario MATLAB Corso di Controlli Automatici A•TRASPOSTA:

>> B=A’ ( oppure B=transpose(A) )

B= [ 1 4 3

5 3 1

3 2 9 ]

•DETERMINANTE:

>> X = det (A)

X = -140

• INVERSA DELLA MATRICE

>> B = inv (A)

Page 4: Concetti introduttivi  Operatori logici  Linguaggio MATLAB: costrutti tipici (IF,WHILE…)

Seminario MATLAB Corso di Controlli Automatici AVETTORI: 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 = [ 0 1 2 3 4 5 6 7 8 9 10 ]

Maggiori informazioni:

Menu Help-> Help Window matlab\matfun

Page 5: Concetti introduttivi  Operatori logici  Linguaggio MATLAB: costrutti tipici (IF,WHILE…)

Seminario MATLAB Corso di Controlli Automatici A

Comandi del Control System Toolbox

• Rappresentazione nello spazio degli stati: comando ss

DuCxy

BuAxx

>> SYS = ss ( A, B, C, D )

• Rappresentazione mediante funzione di trasferimento: comando tf

85

62

)(

)()(

23

2

sss

ss

SDEN

sNUMsG

>> SYS = tf ( NUM, DEN) = tf ( [ 1,2,6], [1,1,5,8])

Page 6: Concetti introduttivi  Operatori logici  Linguaggio MATLAB: costrutti tipici (IF,WHILE…)

Seminario MATLAB Corso di Controlli Automatici A

Comandi del Control System ToolBox

)3)(2(

12)(

ss

ssG

• Rappresentazione ZERI-POLI-GUADAGNO: comando zpk

))...(2)(1(

))...(2)(1()(

PnsPsPs

ZmsZsZsKsG

>> SYS = zpk ( [Z1,Z2,..,Zm] , [P1,P2,…,Pn] , K )

ESEMPIO:

>> SYS = zpk ([-1] , [2,-3] , 2 )

Page 7: Concetti introduttivi  Operatori logici  Linguaggio MATLAB: costrutti tipici (IF,WHILE…)

Seminario MATLAB Corso di Controlli Automatici A

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.

Page 8: Concetti introduttivi  Operatori logici  Linguaggio MATLAB: costrutti tipici (IF,WHILE…)

Seminario MATLAB Corso di Controlli Automatici A

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 <=

Page 9: Concetti introduttivi  Operatori logici  Linguaggio MATLAB: costrutti tipici (IF,WHILE…)

Seminario MATLAB Corso di Controlli Automatici AMODO 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 ]

Page 10: Concetti introduttivi  Operatori logici  Linguaggio MATLAB: costrutti tipici (IF,WHILE…)

Seminario MATLAB Corso di Controlli Automatici A

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

Page 11: Concetti introduttivi  Operatori logici  Linguaggio MATLAB: costrutti tipici (IF,WHILE…)

Seminario MATLAB Corso di Controlli Automatici A

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

Page 12: Concetti introduttivi  Operatori logici  Linguaggio MATLAB: costrutti tipici (IF,WHILE…)

Seminario MATLAB Corso di Controlli Automatici A

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)

blocco_istruzioni;

ELSE

blocco_istruzioni;

END

Page 13: Concetti introduttivi  Operatori logici  Linguaggio MATLAB: costrutti tipici (IF,WHILE…)

Seminario MATLAB Corso di Controlli Automatici AI 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

Page 14: Concetti introduttivi  Operatori logici  Linguaggio MATLAB: costrutti tipici (IF,WHILE…)

Seminario MATLAB Corso di Controlli Automatici A

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.

Page 15: Concetti introduttivi  Operatori logici  Linguaggio MATLAB: costrutti tipici (IF,WHILE…)

Seminario MATLAB Corso di Controlli Automatici A

ESEMPIO: vogliamo generare un vettore a “RAMPA”

I=1;

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]

Page 16: Concetti introduttivi  Operatori logici  Linguaggio MATLAB: costrutti tipici (IF,WHILE…)

Seminario MATLAB Corso di Controlli Automatici A

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

Page 17: Concetti introduttivi  Operatori logici  Linguaggio MATLAB: costrutti tipici (IF,WHILE…)

Seminario MATLAB Corso di Controlli Automatici A

Costrutto SWITCHViene 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)

blocco_istruzioni;

…….

OTHERWISE

blocco_istruzioni;

END

Page 18: Concetti introduttivi  Operatori logici  Linguaggio MATLAB: costrutti tipici (IF,WHILE…)

Seminario MATLAB Corso di Controlli Automatici A

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

Page 19: Concetti introduttivi  Operatori logici  Linguaggio MATLAB: costrutti tipici (IF,WHILE…)

Seminario MATLAB Corso di Controlli Automatici AIstruzione 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);

end

Page 20: Concetti introduttivi  Operatori logici  Linguaggio MATLAB: costrutti tipici (IF,WHILE…)

Seminario MATLAB Corso di Controlli Automatici AISTRUZIONI DI INPUT-OUTPUT:

• INPUT

• FPRINTFINPUT: 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

Page 21: Concetti introduttivi  Operatori logici  Linguaggio MATLAB: costrutti tipici (IF,WHILE…)

Seminario MATLAB Corso di Controlli Automatici A

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