LaboratorioAntenne, Blocco1, 3 piano … · Modulo 2 (simulazioni NEC: Numerical Electromagnetic...

29
Corso di Antenne: Esercitazioni interattive al calcolatore Mario Montopoli Contatti: Laboratorio Antenne, Blocco 1, 3 piano [email protected]

Transcript of LaboratorioAntenne, Blocco1, 3 piano … · Modulo 2 (simulazioni NEC: Numerical Electromagnetic...

Corso di Antenne:Esercitazioni interattive al calcolatore

• Mario Montopoli– Contatti:

• Laboratorio Antenne, Blocco 1, 3 piano• [email protected]

Obiettivo delle esercitazioni• Acquisire familiarità con programmi di elaborazione e di visualizzazione dati.

• Consolidare i concetti studiati durante il corso

f≥90 MHz

f=320 MHzP1

Rr=Z0

P2P3

PuntoDi adattamentoDell’impedenza

‐ Calcolo numerico dei parametriDi radiazione di un’ antenna. ‐ Simulazione di antenne a filo. Problemi di adattamento

z

Calcolo numerico del diagrammadi radiazione per le antennead apertura

Programma delle esercitazioniModulo 1 (Calcoli parametri di radiazione d’antenna in Matlab)• E1: Introduzione al Matlab (3h)• E2: Calcolo numerico dei parametri d’antenna (1.5h)

– Generazione sintetica di un diagramma di radiazione.– Sviluppo di un programma SW per il calcolo dei parametri di radiazione: potenza radiata, angolo 

solido di radiazione, angolo a metà potenza, direzione di massima radiazione, Direttività`, Resistenza di radiazione, efficienza del lobo principale.

– Visualizzazioni 2D, 3DModulo 2 (simulazioni NEC: Numerical Electromagnetic Code)• E3: Introduzione al NEC2, Antenne Lineari (3h)

– Dipolo /2 non caricati. Simulazione NEC2 parametri di radiazione• E4: Adattamento dei dipoli ed effetto del suolo (1.5 h)• E5: Progetto di antenne notevoli (auto apprendimento)

– Dipolo ripiegato– Antenna romboidale (propagazione ionosferica)– Antenna BiQuad (WiFi)

• E6: Progetto di allineamenti di antenne a filo (3h+1.5h)– Broad Side– End Fire– Phased Array 

Mdulo 3 (simulazioni Matlab: Antenne ad apertura )• E7: Antenne ad Apertura (rettangolare ) (3h)

– Metodo di Fourier• Illuminazione uniforme• Illuminazione cos^n, rastremazione del lobo proncipale

E1: Introduzione al Matlab

• Obiettivo di questa esercitazione è di acquisire familiarità dell’ ambiente di sviluppo Matlab

• Competenze acquisite alla fine del modulo:– Capacità di autoapprendimento avanzato in Matlab.

– Creazione di semplici script basati sul caclolomatriciale.

– Visualizzazione dei risultati prodotti.

Cos’e Matlab• Matrix Laboratory è un ambiente di calcolo sviluppato per gestire

oggetti di tipo matrice• E' un ambiente di calcolo scientifico con routines altamente

specializzate• E' un linguaggio di programmazione• La struttura di base è la matrice per la quale sono gia ̀ predefinite

numerosi tipi elementari (identita ̀, matrice nulla, matrice unita ̀,..) funzioni algebriche e di manipolazione. 

• Matlab fa largo uso di librerie di calcolo (in particolar modo di algebra lineare) per risolvere problemi numerici al calcolatore. 

• E’ uno dei programmi scientifici di maggior diffusione, usato nellaricerca e per il calcolo tecnico e scientifico

• E’ particolarmente indicato per lo sviluppo di prototipi algoritmici.

Linguaggio Matlab

• Matlab ha n linguaggio proprio di alto livello per programmare. – E’ un linguaggio interpretato e non compilato. Questosignifica che le istruzioni vengono tradotte in linguaggio macchina e subito eseguite una per volta. 

– Il linguaggio di Matlab e’ un linguaggio “case sensitive”, cioe’ che distingue fra lettere minuscole e maiuscole.Il linguaggio di Matlab e’ un linguaggio orientato aglioggetti. L’oggetto fondamentale e’ l’array (matrice).

Riferimenti bibliografici

• Guida per l’utente– (http://www.mathworks.com) 

• File exchange– http://it.mathworks.com/matlabcentral/fileexchange/

• Tutorials e programmi disponibili in rete: – http://people.duke.edu/~hpgavin/matlab.html

Matlab:L’ ambiente di sviluppo• 1: Command Window

– Finestra dove testare o  visualizzare i risultati testuali delle le linee di comando digitate dopo il prompt (>>). 

• 2: Editor– Finestra dove collezionare un insieme di linee di codice per lo sviluppo

di un programma matlab organizzato come (scrip o function)• 3: Work space

– Lista dellevariabiligenerate e visibilinella sessionedi lavoro corrente.

• 4: Comand Historyo Folder list

1

23

4

HELPNEW Editor

Come ottenere aiuto

• Con il comando help (help in linea di comando) >> help sinSIN Sine.SIN(X) is the sine of the elements of X. 

• Dal menu Help 

Gestione dei files 

• >> dir ‐ visualizza il contenuto della directory corrente

• >> what – visualizza i files di tipo Matlab nelladirectory corrente

• >> cd – permette di spostarsi nell’albero delledirectory 

• >> pwd – ritorna la directory corrente• >> type nomefile – visualizza il contenuto• del file

Operazioni e variabiliSomma

Potenza

CalcoloComplesso

CalcoloTrigonometrico

Calcolo logaritmico

Operazioni

Variabili:

Variabili predefinite• ansmost recent answer• pi • i,j unita ̀ immaginaria• NaN “Not‐a‐Number” (l’espressione calcolata non è un 

numero macchina, si ottiene come risultato di operazioniaritmetiche indefinite, ad esempio la divisione 0/0)inf,‐inf si ottengono per overflow, underflow o divisione per zero 

• version Versione di Matlab• eps accuratezza relativa per i numeri in doppia precisione. 

Ritorna la distanza fra 1.0 e il numero (> di 1.0) piu ̀ vicinoad 1.0. Viene usato come tolleranza in molte funzioninumeriche. 

Formati di visualizzazione dellevariabili

• Matlab di deafult visualizza una variabilenumerica con 4 cifre decimali: 

• Per modificare il formato di visualizzazione, Sintassi del comando: – >> format tipoformato

Formati delle variabili

Vettori e MatriciVettori

Matrici

riga colonna

Creazione automatica di vettori

W(ii,jj)ii = indice di rigajj = indice di colonna

Soluzione sistemi lineari

Indicizzazione di array

NB.: Usando un solo indice si fa riferimento alla matrice come array di colonne

Come salvare il prorio lavoro• per conservare il contenuto delle variabili si deve salvare

tutta l'area di memoria (o parte di essa) con il comandosave 

• Ad esempio: • >> x = 1; • >> a = 3; • >> save areawork• >> save xarea x • I file generati (binari) hanno estensione .mat. Per ricaricarli

nello spazio di lavoro si usa il comando load: >> load areawork>> load xarea

I file di programma in matlab• Un programma in matlab e` una collezione di linee di codice  

che possono essere salvate come – Script files

• E’ un tipo di file con estensione “.m” che usualmente rappresenta il “main program”.

• Uno script considera in ingresso le variabili presenti nello spazio di lavoro (variabili globali) dove anche le variabili di uscita sonomomentaneamente salvate.

• Le variabili globali sono visibili ed utilizzabili da altri scrips e comandi.– Funzioni

• Sono dei file con estensione “.m” come gli scrip con l’unica differenza che le variabili di ingresso utilizzate da una funzione sono variabili locali visibili solo all’interno della funzione durante la sua esecuzione. 

• Le funzioni hanno un sintassi precisa e sono spesso utlizzateall’interno di scripts  

Come organizzare un programma in matlab: buone pratiche

– Main.m• Comenti iniziali (sono preceduti dal simbolo “%”)

– Titolo del programma– Breve descrizione delle operazione– Descrizione delle variabili di input e output

• Definizione delle variabili di ingresso• Processamento delle variabili di ingresso

– Utilizzo di funzioni esterne – Utilizzo di linee di codice (commentate)

• Salvataggioisultato di uscita– Stampa su schermo– Salvataggio in un file

• Figure– Stampa su schermo– Salvataggio in un file

Controllo di flusso delle istruzioni

Come creare uno scrip matlabCreare uno script

Eseguire uno script

Graficare i risultati 1D: U=f(x)Funzione: U()=sin2()

Tipi di plot 1D

• Matlab include molte tipologie di plot 1D• Di interesse sono:

– Plot polari :polar (,)– Plot(x,y)– Histogrammi (Hist(x,y))– Grafici a barre (bar(x,y))

Graficare i risultati 2D: U=f(x,y)Funzione: U()=sin2()

Riferimento 2D: meshgrid

Uso di Mesh grid

U()

x

y

z

Tipi di plot 2D

• Matlab include molte tipologie di plot 2D• Di maggiore interesse sono i:

– pcolor(X,Y,Z)– Imagesc(x,y,Z)

Graficare i risultati 3D: U=f(x,y,z)Funzione: U()=sin2()

U()

xy

z

Tipi di plot 3D

• Matlab include molte tipologie di plot 3D• Di maggiore interesse sono i:

– surface(X,Y,Z,C)– plot3(X,Y,Z)

Esercizio:Provare a graficare la Funzione (sin)^2Utilizzando plot3.

Operatori Logici e uso di find% generazione griglia 1Dx=[1, 4, 6, 7, 0, 1, 4];% Trova indice d’interesseindex=find(x>=1 & x<5);Index= 1     2     6     7x(index)=  1     4     1     4

Esempio 1: find 1D

Esempio 2: find 2D% generazione griglia 2Dx=‐10:1:10; % oppure x=‐10:0.1:10;y=‐10:1:10; % oppure y=‐10:0.1:10;[X,Y]=meshgrid(x,y);% generazione funzione 2DR=sqrt(X.^2+Y.^2);% trova gli indici d’interesse[ii,jj]=find(R>3 & R<=6);[index]=find(R(:)>3 & R(:)<=6);% Figuresfigure('name','Range');

pcolor(X,Y,R); hold onfigure('name','indici selezionati');

plot(jj,ii,'+k')figure('name','indici selezionati nel riferimento scelto');

pcolor(X,Y,R); hold onplot(X(index),Y(index),'ok','markerfacecolor','k')

Punti griglia selezionati

Esercizio

• Esercizio:– Trovare in matlab l’intervallo per cui U()=sin2()  e` uguale a max(U)/2 per 0<