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
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
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)
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
Top Related