Indice |
Introduzione
Nel secondo articolo [II] è stato creato un dipolo λ/2 per i 100 MHz, lungo 1.425 m, formato da fili di diametro 2 cm = 0.02 m. Il gap era di 1 cm = 0.01 m. Sono state seguite le indicazioni di design del libro [III].
Questo terzo articolo mostra come simulare il dipolo, usare l'optimizer, visualizzare i risultati in 2D e 3D.
Sorgente e impostazioni per la simulazione
Si riporta per comodità la macro eseguita per creare il dipolo, adattata al progetto:
Dim length, diameter, gap As Double Dim translationX, translationY, translationZ As Double Dim angleX, angleY, angleZ As Double Dim dipole_name As String '---------------------------------------------------------- 'USER INTERFACE dipole_name = "dipole_1" length = 1.425 diameter = 0.02 gap = 0.01 'ROTATION: angleX = 90 angleY = 90 angleZ = 0 'TRANSLATION: translationX = 0 translationY = 0 translationZ = 0 'END OF THE USER INTERFACE '---------------------------------------------------------- 'PEC LAYER CREATION With Layer .Reset .Name "Copper" .FrqType "hf" .Type "Pec" .Epsilon "1.0" .Mue "1.0" .Rho "0.0" .Colour "0", "1", "1" .Wireframe "False" .Transparency "0" .Create End With 'VACUUM LAYER CREATION With Layer .Reset .Name "Vacuum" .FrqType "hf" .Type "Normal" .Epsilon "1.0" .Mue "1.0" .Kappa "0.0" .TanD "0.0" .TanDFreq "10" .TanDGiven "True" .TanDModel "ConstTanD" .KappaM "0.0" .KappaM "0.0" .TanDM "0.0" .TanDMFreq "0.0" .TanDMGiven "False" .DispModelEps "None" .DispModelMue "None" .Rho "0.0" .Colour "1", "1", "1" .Wireframe "False" .Transparency "30" .Create End With 'CREATION OF THE STRUCTURE WITHOUT THE GAP With Cylinder .Reset .Name dipole_name .Component "Copper" .Material "Copper" .OuterRadius diameter/2 .InnerRadius "0" .Axis "z" .Zrange -length/2, length/2 .Xcenter 0 .Ycenter 0 .Segments "0" .Create End With 'CREATION OF A VACUUM CYLINDER TO CUT THE GAP With Cylinder .Reset .Name dipole_name+"_gap" .Component "Vacuum" .Material "Vacuum" .OuterRadius diameter/2 .InnerRadius "0" .Axis "z" .Zrange -gap/2, gap/2 .Xcenter 0 .Ycenter 0 .Segments "0" .Create End With 'CUT OF THE GAP Solid.Subtract "Copper:"+dipole_name, "Vacuum:"+dipole_name+"_gap" 'ROTATION ALONG X With Transform .Reset .Name "Copper:"+dipole_name .Origin "Free" .Center "0", "0", "0" .Angle angleX, "0", "0" .MultipleObjects "False" .GroupObjects "False" .Repetitions "1" .MultipleSelection "False" .Transform "Shape", "Rotate" End With 'ROTATION ALONG Y With Transform .Reset .Name "Copper:"+dipole_name .Origin "Free" .Center "0", "0", "0" .Angle "0", angleY, "0" .MultipleObjects "False" .GroupObjects "False" .Repetitions "1" .MultipleSelection "False" .Transform "Shape", "Rotate" End With 'ROTATION ALONG Z With Transform .Reset .Name "Copper:"+dipole_name .Origin "Free" .Center "0", "0", "0" .Angle "0", "0", angleZ .MultipleObjects "False" .GroupObjects "False" .Repetitions "1" .MultipleSelection "False" .Transform "Shape", "Rotate" End With 'TRANSLATION ALONG X With Transform .Reset .Name "Copper:"+dipole_name .Vector translationX, "0", "0" .UsePickedPoints "False" .InvertPickedPoints "False" .MultipleObjects "False" .GroupObjects "False" .Repetitions "1" .MultipleSelection "False" .Transform "Shape", "Translate" End With 'TRANSLATION ALONG Y With Transform .Reset .Name "Copper:"+dipole_name .Vector "0", translationY, "0" .UsePickedPoints "False" .InvertPickedPoints "False" .MultipleObjects "False" .GroupObjects "False" .Repetitions "1" .MultipleSelection "False" .Transform "Shape", "Translate" End With 'TRANSLATION ALONG Z With Transform .Reset .Name "Copper:"+dipole_name .Vector "0", "0", translationZ .UsePickedPoints "False" .InvertPickedPoints "False" .MultipleObjects "False" .GroupObjects "False" .Repetitions "1" .MultipleSelection "False" .Transform "Shape", "Translate" End With 'VARIABLE DESTRUCTION Set length = Nothing Set diameter = Nothing Set translationX = Nothing Set translationY = Nothing Set angleX = Nothing Set angleY = Nothing
Discrete port
La sorgente che ecciterà il dipolo sarà una "discrete port". Andrà specificata l'impedenza d'uscita della porta: inseriremo 73 Ω, avendo progettato il dipolo affinché abbia 73 Ω di impedenza all'ingresso. Tutti i comandi inseriti di seguito appariranno nella history list, e potranno essere implementati facilmente in una macro. Qui si preferisce l'approccio tramite interfaccia grafica per mostrare i passi necessari alla simulazione.
Menù della discrete port. Inseriamo Impedance = 73 Ω, poi clicchiamo due volte sulle "facce" a cui connetteremo la porta, cioè le basi dei due cilindri che formano il dipolo.
Unità di misura
Impostiamo correttamente le unità di misura col tasto Units nel menù Home:
È buona norma controllare spesso che le unità di misura siano corrette, specie nel caso si eseguano molte macro diverse.
Background
Il background è tutto ciò che sta attorno alla nostra geometria: quanto è grande il volume che la racchiude e che cosa contiene.
Per simulare il dipolo facciamo un background largo 1 in tutte le direzioni attorno al dipolo. Siccome abbiamo impostato le unità di misure in metri, "largo 1" significa che si estende in tutte le direzioni per 1 m, a partire dalle estremità della geometria stessa.
Per cambiare il background, usare il pulsante Background dal menù Simulation. Attenzione: inserire come Material type il materiale Normal, dicendo così a CST che il materiale che forma il background è il vuoto. Il Material type predefinito è PEC (che sta per Perfect Electric Conductor, annegando quindi il dipolo in un metallo).
Attenzione: background molto grandi (come 10 metri) aumenteranno spaventosamente il numero delle mesh se non trattati opportunamente.
Impostazione del background. Notare come il background ci venga mostrato con contorni neri: è il parallelepipedo in figura (cliccare per allargare).
Boundaries
Una volta impostato il volume ed il tipo del background dobbiamo dire a CST che cosa confina col background. Sul bordo esterno del background, cosa c'è? Per simulare il dipolo impostiamo delle boundary "aperte" = Open.
Dal menù simulazione, accediamo alla modifica delle boundaries col tasto Boundaries:
Impostare le frequenze ed i field monitor
Per impostare la frequenza iniziale e quella finale, usare il tasto Frequency del menù Simulation:
I field monitor dicono a CST quali risultati della simulazione salvare in memoria, ed eventualmente quali analisi in più potrebbero servirci. Il farfield lo visualizzeremo tramite field monitor.
Apriamo le impostazioni dei field monitor dal menù Simulation, con l'apposito pulsante. Inserire molteplici field monitor è abbastanza scomodo, perché va riaperto il menù ogni volta; converrà in futuro far tutto via macro.
Impostazione dei field monitor: qui sto inserendo il farfield per 100 MHz. Notare come sia possibile inserire più field monitor contemporaneamente con step lineari o logaritmici.
È possibile inserire contemporaneamente tutti i farfield che vogliamo, anche per dati diversi, come il campo elettrico, magnetico, far field, eccetera. Inseriamo farfield, campo elettrico e campo magnetico per la frequenza di 100 MHz.
Impostare il simulatore
CST Microwave Studio ha vari tipi di simulatori diversi; quello di cui abbiamo bisogno al momento è il Time Domain Solver. Per impostarlo, dal menù Home agire sulla linguetta del tasto Setup solver:
Per modificare le impostazioni del simulatore, cliccare direttamente sul pulsante. Inseriamo un'accuratezza di -60 dB:
Cliccando su Specials e poi su General, aumentiamo il numero di punti della simulazione.
Punti aumentati da 1001 a 4004. Non è obbligatorio che il nuovo numero sia un multiplo del precedente, ma è comodo nel caso si programmi tramite macro il salvataggio automatico dei risultati.
Simulazione e risultati
Una volta impostato il simulatore lo si fa partire col tasto Start Simulation dal menù home o col tasto Star dal menù di definizione dei parametri del simulatore. Il mio vecchio quad core Intel impiega pochi secondi a simulare il dipolo; è un Core2 Quad CPU Q8300 a 2.5 GHz (assenti Turbo Boost, Hyper-Threading, core virtuali, cache L3) dotato di 4 MB di cache L2.
I risultati della simulazione appariranno nelle sotto cartelle del Navigation Tree:
Risultati. Notare come vi siano sia risultati 1D, come i (il) parametri S, risultati 2D/3D e Farfield a parte.
S11: Ouch
Rimanendo su una definizione vaga, S11 rappresenta quanta potenza rimbalza indietro nella porta rispetto a quanta ne esce. Quindi in questo caso lo si vuole molto basso alla frequenza di interesse, 100 MHz.
Aver -12 dB a 100 MHz significa che il rapporto vale
Terribile. Bisogna accorciare il dipolo; potremmo procedere per tentativi, ma al momento sono in vacanza e pigro, per cui armiamoci di Optimizer.
L'Optimizer
L'Optimizer può prendere un parametro dalla Parameter List e variarlo, per più iterazioni, finché non raggiunge un obiettivo prefissato. Il nostro parametro sarà la lunghezza del dipolo, l'obiettivo ottenere S11 = -50 dB (scelti arbitrariamente dal sottoscritto) a 100 MHz.
Come mostrato nel secondo articolo [II] creiamo un parametro, "lunghezza", assegniamogli un valore di 1.425 e modifichiamo la macro del dipolo in questo modo:
length = lunghezza
Poi aggiorniamo col pulsante Update della history list la struttura. Apriamo l'optimizer dal menù home e impostiamolo:
Finestra dell'optimizer. Mettere la spunta al parametro della parameter list che si vuole far variare. Notare come si possa impostare l'intervallo di tolleranza; ci basterà il 10%.
Comprarirà questo messaggio di errore. Francamente non so perché, ma ignorandolo funziona tutto; per sicurezza ho testato separatamente i risultati che seguiranno, senza optimizer, riscontrando gli stessi risultati.
Cliccare su Goals (Obiettivi), poi sul tasto Add New Goal...
Impostazione del Goal (obiettivo). Notare come sia possibile specificare il Range; attenzione a inserire un numero negativo nel Target, si vuole star sotto i -50 dB, non sotto i 50 dB.
Una volta impostato l'obiettivo, dare ok e premere il tasto Start. Sul mio PC l'optimizer impiega un paio di minuti, nel mentre sono andato a metter su il caffè. La schermata mostrerà le varie iterazioni, raggiungendo una precisione fin troppo elevata per i nostri scopi.
Il risultato finale sarà molto migliore del precedente:
Per cui la lunghezza ideale del dipolo sarà di 1.33 m circa.
Altri risultati
I risultati dei campi elettrici e magnetici sono visualizzabili in molti modi, sia per piani 2D che in 3D. È possibile animarli, cambiare la scala, eccetera. Di seguito qualche esempio
Campo elettrico su un piano parallelo al dipolo
Il piano taglia a metà il dipolo per lungo:
Campo magnetico in 3D
Farfield
In questi esempi viene mostrata la direttività, ma è anche possibile visualizzare il guadagno (standard IEEE), i campi E ed H eccetera.
Modulo del farfield in 3D, scala logaritmica. È possibile renderlo trasparente, mostrare la struttura (il dipolo), ruotarlo, eccetera.
Si possono osservare modulo e fase per theta, phi o entrambi:
Sono disponibili grafici 2D, lineari e logaritmici:
Conclusioni
Questa breve serie di articoli si proponeva di mostrare alcune delle potenzialità del programma, spiegando al contempo un possibile approccio alla simulazione. La suite CST è rivolta all'utenza professionale, ma per gli studenti è disponibile una "student edition", che è possibile scaricare a questo link: https://www.cst.com/academia/student-edition/download, previa registrazione (circa 1 GB di download).
Segnalazioni di strafalcioni/errori sono molto gradite, così come eventuali suggerimenti o commenti per fare in modo diverso quanto trattato; il mio approccio è molto aperto, cerco di ricavare i dati che mi servono col minimo sforzo.
Le gif sono state realizzate col programma open source ScreentoGif [IV].
Bibliografia
[I] Fedhman, Dipolo con CST - I, Electroyou marzo 2016.
[II] Fedhman, Dipolo con CST - II, Electroyou marzo 2016.
[III] Constantine A. Balanis, 2005, Antenna Theory, 3 ed., U.K., John Wiley & Sons
[IV] ScreenToGif, https://screentogif.codeplex.com/