giovedì 29 ottobre 2009

Calibrare un Autocollimatore

Nel lavoro che sto facendo ultimamente, mi sono imbattuto nell'uso dell'autocollimatore.
Questo oggetto non è altro che un laser, che spara attraverso un collimatore un facio di luce. Uno specchio rimanda indietro la luce nel laser stesso, che tramite un sistema di beam splitter ci aiuta a vedera quando i due spot sono sovrapposti. In questo caso lo specchio è allineato, altrimenti si deve procedere, tramite regolazioni fini, all'allineamento.
Nella versione moderna , che poi è quella che usiamo noi, il telescopio che espande il laser e che riceve il fascio di ritorno è collegato ad un controller che restituisce l'angolo di tilt in arcoradianti o lo spostamento laterale sul piano focale in micron.
Il problema (una volta capito come funziona) è capire se i numeri che quella scatola ti dà sono veramente micron o arcoradianti o qualcosa altro...da qui il problema della calibrazione. Il procedimento è semplice: girare lo specchio o l'autocollimatore di un angolo noto, misurarlo e leggere il risultato sul display. Se il risultato non torna si calcola il coefficiente di conversione. Ora il problema è che l'autocollimatore è sensibile a tilt dell'ordine del microradiante (tanto poco)e che il suo campo di vista è di 4 mrad...in pratica non ci sono tanti modi per generare angoli così piccoli con precisione nota.
La soluzione è descritta nella presentazione.

Il Controllo dei Modi nei Laser a Semiconduttore

Ora trascurando il fatto che stiamo parlando di un scienziato di fama internazionale, di uno dei padri fondatori della scienza del laser (almeno in Italia), il personaggio più sensazionale che ho trovato all'Università da quando la frequento è il Professore Giuseppe Tondello. Per il suo corso ho preparato una tesina sul controllo dei modi nei laser a semiconduttore.
Il lavoro parte dalla definizione teorica dei modi fino alle tecniche generali di controllo dei modi. La seconda parte descrive il meccanismo di funzionamento dei laser a semiconduttore ed infine viene spiegato il controllo dei modi nei laser a semiconduttore.

I danni agli occhi provocati dalla radiazione laser

Per il corso di Ottica Visuale ho preparato una relazione sui danni provocati agli occhi dalla radiazione laser, l'argomento mi è molto caro in quanto negli ultimi mesi ho lavorato parecchio con i laser.
Come regola fondamentale non bisogna mai puntare il laser negli occhi della gente, sembra banale ma è dalle banalità che nascono gli incidenti...
Comunque per chi ci lavora è utile saperne di più. La relazione è solo una introduzione,alla fine si trovano i link per leggersi le normative internazionali più importanti.

Laboratorio di Circuiti Ottici

Il corso di circuiti ottici è stato forse uno dei più interessanti che ho seguito. E' partito dalle fibre ottiche viste dal punto di vista teorico e anche da quello pratico per finire alla descrizione degli elementi costitutivi dei circuiti ottici.
Il corso è culminato in una serie di esperienze di laboratorio di cui allego le relazioni. Le esperienze descritte sono:
  • Caratterizzazione dei dispositivi passivi
  • Misura della dispersione cromatica di una fibra
  • Misura a larga banda delle perdite intrinseche di una fibra ottica
  • Caratterizzazione di un collegamento mediante OTDR
  • Caratterizzazione di un EDFA
  • Giunzione di fibre e caratterizzazione del giunto mediante OTDR

lunedì 20 luglio 2009

I laser e le ceramiche come mezzo attivo

Per l'esame di materiali per l'ottica ho preparato una relazione su un bellissimo articolo che parla di come usando ceramiche trasparenti come mezzo ospite per ioni di Nd, si ottiene un'efficienza maggire nella radiazione laser se confrontata con quella ottenuta dai trdizionali cristallli singoli.
Il trucco sta nel fatto che per come vengono fabbricate le ceramiche riescono ad essere drogate maggiormente. Qeusto permette di ottimizzare l'uso di laser a 3 livelli piuttosto che a 4. Il vantaggio sta nel fatto che eliminando la transizione fononica (non radiativa) dal 4° livello 3° si una minore produzione di calore, ciò permette di andare su con la potenza. Inoltre le ceramiche sono materiali che disperdono maggiormente il calore e sono più compatte e resistenti agli stress meccanici (sempre se paragonate ai cristalli singoli tipo YAG). La controindicazione sta nel fatto che, per quanto la tecnologia abbia fato passi da gigante, le ceramiche non hanno ancora le qualità ottiche sopraffine dei cristalli singoli e quindi lo spot finale del raggio laser non risulta avere la stessa qualità. Quindi, per usi dove serve potenza bruta sono comunque migliori, per usi dove serve una particolare qualità del fascio non sono ancora utilizzabili.
A chi interessa può scaricare la presentazione che ho fatto, chi si vuole leggere l'articolo è qui.

sabato 2 maggio 2009

Esperienze di Laboratorio

Durante il corso di Laboratorio 1 abbiamo eseguito 2 esperienze.
La prima è l' esperienza di Abbe. Questa esperienza serve a rendersi conto di una cosa che rende la luce unica, in pratica un raggio luminoso che trasporta una immagine trasporta anche "le istruzioni per ricomporla". La questione è molto complessa a livello matemeatico e si tratta con una tecnica che si chiama trasformata di Fourier. In questa esperienza abbiamo visualizzato le "istruzioni". Da un altro punto di vista, la figura di diffrazione è il "grafico" della distribuzione spaziale di intensità dopo la fenditura.
La seconda esperienza è la misura dell'indice di rifrazione di un vetro. Abbiamo usato la famosa tecnica interferometrica di Michelson.
Scrivo di seguito le parti introduttive delle 2 esperienze le relazioni complete si trovano in questo sito

L'esperienza di Abbe

La diffrazione rappresenta la deviazione che il fronte d'onda subisce quando lungo il suo cammino ottico incontra un ostacolo. Quando la sorgente ed il piano di osservazione sono posti ad una distanza tale dall'ostacolo (fenditura di forma particolare) che i raggi incidenti possono essere considerati paralleli, si ha la diffrazione di Fraunhofer, o di campo lontano.
La teoria delle immagini di Abbe afferma che, poiché la diffrazione converte la distribuzione di intensitá luminosa incidente su un oggetto in frequenze spaziali, tale fenomeno puó essere considerato matematicamente come la trasformata di Fourier, nello spazio delle frequenze spaziali, dell'intensitá del campo elettrico incidente. Le frange di diffrazione (massimi e minimi di intensitá) possono essere visualizzati nel piano focale (o piano della trasformata) di una lente convergente posta dopo l'oggetto. Oltre il piano focale si forma l'antitrasformata di Fourier che riproduce l'immagine dell'oggetto.

Scopo dell'Esperienza

Allestire un banco ottico, osservare e descrivere le figure di diffrazione di Fraunhofer che vengono a formarsi sul piano della trasformata spaziale di Fourier.
...


Misura dell'indice di rifrazione

La misura dell'indice di rifrazione di un materiale tagliato con una geometria nota si puó ottenere, tramite metodi interferometrici. L'apparato usato nel nostro esperimento é l'interferometro di Michelson. Ponendo il campione di materiale in un braccio dell'interferometro si ottengono una serie di frange di interferenza. Al variare del cammino ottico, provocato spostando il materiale lungo una prefissata direzione, corrisponderá uno spostamento delle frange di interferenza. Misurando tale spostamento ricaveremo la misura dell'indice di rifrazione con precisione alla terza cifra decimale.
...

lunedì 27 aprile 2009

Prove con librerie php-gd

Qualche anno fa mi sono divertito a imparare un po' di php. Ho provato a fare uno scriptino che genera grafici a punti da una o più serie di dati introdotti dall'utente con un file di testo.
Qui sotto descrivo le idee che mi hanno aiutato nella scrittura del programma e potrebbero essere utili a chi si avvicina per la prima volta alle librerie gd.
Lo script si trova in questo sito . E' funzionante anche se poi non ci ho più lavorato...per inciso chi lo volesse provare deve crearsi un file di testo con un editor tipo "notepad" all'interno del quale deve aggiungere 2 o più colonne di numeri. Lo script sceglie la prima colonna come asse delle"x" e le altre colonne come serie per le "y". Ricordarsi di attivare le pop-up per vedere il grafico. Ops chiedo scusa ma le immagini citate ne testo sono andate perdute comunque si capisce lo stesso. Lo sistemerò quando avrò un po' di tempo...


Come prima difficolta' trovo il fatto che la funzione file() di PHP legge i file in righe. E' ovvio che io devo farglieli leggere in colonna...file() crea un vettore dove ogni elemento e' composto da tutti i caratteri della riga...sgradevole.
Uso la funzione explode() e separo ogni carattere dela stringa generando due vettori che contengono i caratteri delle due colonne.
Il codicllo di seguito fa questo lavoro e stampa le due colonne di dati dal file dati.dat
< ?php
$lines = file('dati.dat');
foreach($lines as $line_num => $line) {
$temp = explode(" ", $line);
$col1[$line_num] = $temp[0];
$col2[$line_num] = $temp[1];
}
//stampa gli output
foreach($col2 as $num => $line){
echo $line."\n";
}
foreach($col1 as $num => $line){
echo $line."\n";
}
?>


Il prossimo codice e'il codice fondamentale che prende i dati dalle 2 colonne del file dati.dat e disegna in una immagine 400X400 i punti corrispondenti.

< ?php
$lines = file('dati.dat');
foreach($lines as $line_num => $line) {
$temp = explode(" ", $line);
$colx[$line_num] = $temp[0];
$coly[$line_num] = $temp[1];
}
$dx=400;
$dy=400;
$image = imagecreate($dx, $dy);
$bg = imagecolorallocate($image, 0, 0, 0);
////questo e' il ciclo principale, quello che disegna l'immgine////
foreach($colx as $num => $line){
//cambio le coordinate il vertice di coor(0,0) diventa quello in basso a sx
$X=$line;
$Y=$dy-$coly[$num];
$col_ellipse = imagecolorallocate($image, 255, 255, 255);
imagefilledellipse($image, $X, $Y, 1, 1, $col_ellipse);
}
//////////////////////////////////////////////////////////
header("Content-type: image/png");
imagepng($image);
?>

Risultato dello script
Ilprimo difetto che salta all'occhio e' il fatto che il grafico e' troppo piccolo rispetto le dimensioni dell'immagine...questo e' dovuto chiaramente al fatto che la scala usata e' quella dei pixel ossia
1 punto = 1 pixel.
Il prossimo passo sara' quindi quello di introdurre una scala per rendere guardabile il grafico.
Provo ad introdurre un fattore di scala 20 su entrambi gli assi: in pratica l'immagine prende
1 punto = 20 pixel
il risultato e' che la risoluzione del grafico aumenta di 20 volte ed ora riusciamo a distinguere i punti...
Risultato dello script
Lo script di prima diventa questo:

< ?php
$lines = file('dati.dat');
foreach($lines as $line_num => $line) {
$temp = explode(" ", $line);
$colx[$line_num] = $temp[0];
$coly[$line_num] = $temp[1];
}
$dx=400;
$dy=400;
$image = imagecreate($dx, $dy);
$bg = imagecolorallocate($image, 0, 0, 0);
////introduco i fattori di scala////
$sx=20;
$sy=20;
/////////////questo e' il ciclo principale, quello che disegna l'immgine///////////////
foreach($colx as $num => $line){
//cambio le coordinate il vertice di coor(0,0) diventa quello in basso a sx
$X=($sx*$line);
$Y= $dy-($coly[$num]*$sy);
$col_ellipse = imagecolorallocate($image, 255, 255, 255);
imagefilledellipse($image, $X, $Y, 1, 1, $col_ellipse);
}
//////////////////////////////////////////////////////////////////////////////////////
header("Content-type: image/png");
imagepng($image);
?>


Mi sorge un altro prolema: se io introduco numeri troppo grandi tenendo una scala grande puo' succedere che il grafico vada fuori scala con grande disappunto...forse potrei rendere questo scriptino un po' piu' intelligente ossia fissata una dimensione dell'immagine esempio 400X400 lo script deve scegliere la risoluzione (la scala) adatta affinche' il grafico resti sempre dentro l'immagine...

Oops nel fare questa modifica ho scoperto che il comando file() legge le righe del file dati senza troncare la fine di ogni riga inserendo quindi spazi che mandano in confusione la funzione max(). Conviene inserire nel ciclo di lettura il comando rtrim() che tronca una stringa di tutti gli spazi presenti dopo il testo....fatto!


< ?php
$lines = file('dati.dat');
foreach($lines as $line_num => $line) {
$trimline = rtrim($line);
$temp = explode(" ", $trimline);
$colx[$line_num] = $temp[0];
$coly[$line_num] = $temp[1];
}
$dx=400;
$dy=400;
$image = imagecreate($dx, $dy);
$bg = imagecolorallocate($image, 0, 0, 0);
////introduco i fattori di scala////
$sx = $dx/(max($colx)- min($colx));
$sy = $dy/(max($coly)- min($coly));
//$sx=10;
//$sy=10;
/////////////questo e' il ciclo principale, quello che disegna l'immgine///////////////
foreach($colx as $num => $line){
//cambio le coordinate il vertice di coor(0,0) diventa quello in basso a sx
$X=($sx*$line);
$Y= $dy-($coly[$num]*$sy);
$col_ellipse = imagecolorallocate($image, 255, 255, 255);
imagefilledellipse($image, $X, $Y, 1, 1, $col_ellipse);
}
//////////////////////////////////////////////////////////////////////////////////////
header("Content-type: image/png");
imagepng($image);
?>


Il risultato e' questo:

Risultato dello script

Il metodo che ho usato e' abbastanza banale ma a quanto pare efficace. In pratica controllo il valore massimo e il minimo all'interno di ogni serie di dati e cosi' vedo il range di valori. Alla fine basta chiedersi quante volte ci stanno tutti questi numeri nella dimensione immagine che ho prefissato?? Semplice per esempio se i valori min e max della serie sono 1 e 21 e la dimensine dell' immagine e' 400X400 basta fare questo conto:
400/(21-1)=20
in pratica ingrandisco di venti volte la serie e riesco a riempire cosi' facendo tutta l'immagine senza avere nessun valore fuori immagine...e' piu' facile farlo che spiegarlo. Un fattore da considerare e' quello del bordo per esempio nel caso precedente il numero piu' grande risulta visualizzato sul bordo per evitare questo introduco una costante che riduce la scala in modo prefissato. Un coefficente ragionevole sembra essere 0,2 tornero' su questo argomento in seguito.
Un'altra cosa che mi fa incazzare e' che se metto un "a capo" allafine dell'ultima riga di dati lo script mi va in confusione...penso che sia ancora una volta colpa del comando file()...in realta' basta mettere una condizione is_numeric() sugli elementi dei vettori, cosi' facendo risolvo anche eventuali problemi di sicurezza ed eventuali header prsenti nel file nonche' il nome dei campi.

Il prossimo passo per completare il motore di questo programmino e' di insegnarli a trattare i numeri negativi poiche' in realta', per il momento, sa disegnare solo serie di dati positivi...la cosa sgradevole e' che la libreria gd accettana solo numeri positivi n quanto il sistema di riferimento che usa parte dal vertice in alto a sx di coordinate (0,0). Gia' dai primi script si nota che ho spostato (come e' piu' usato nei sistemi di riferimento caresiani) il vertice nel punto in basso a sx dell'immagine nera. Uso un cambio di coordinate nel quale il vertice e' traslato nel punto di coordinate piu' piccole.
Ovviamente ci sono problemi di "bordo " in quanto il punto di vertice non vinene visualizzato. Risolvero' il problema del bordo piu' avanti...
Il codice diventa questo scrivo solo il ciclo principale

...
foreach($colx as $num => $line){
//cambio le coordinate il vertice di coor(0,0) diventa quello in basso a sx
$vx = min($colx);
$vy = min($coly);
$X=($sx*($line-$vx));
$Y= ($dy)-(($coly[$num]-$vy)*$sy);
$col_ellipse = imagecolorallocate($image, 255, 255, 255);
imagefilledellipse($image, $X, $Y, 1, 1, $col_ellipse);
}
...


Risultato dello script

L'immagine rappresenta 40 numeri casuali compresi tra -10 e 10 generati con la funzione rand().

Il prossimo passo e' quello di aggiungere i gli assi cartesiani possibilmente dotati di scala e numeri...per aggiungere gli asi bisogna prima trovare l'origine relativamente al sistem di riferimento che rappresenta i dati chiaramente il cambio di coordinate da' 0,0 per xc = abs($sx*$vx) e yc = abs(($dy) - abs($vy*$sy)) i valori assoluti sono necessari per evitare coordinate negative che la lib GD non accetta. $sx ed $sy rappresentano i fattori di scala $vx e $vy il cambio di coordinate $dy la dimensione y dell-immagine. Trvato il centro diventa poca cosa tracciare 2 linee con la funzione imageline() .

Il grafico qui sotto traccia la funzione coseno da -2pi a 2pi essendo una funzione perfettamente simetrica gli assi vengo tracciati al centro dell'immagine

Risultato dello script

al contrario con una serie di dati assimmetrica si vede come lo script scelga il sistema di coordinate piu' adatto alla corretta visualizzazione dei dati

Risultato dello script

Ora veniamo al problema del bordo...penso di risolverlo creando una regione interna all'immagine di circa il 90% delle dimensioni dell'immagine entro la quale verra creato il grafico. Cosi' facendo avanzo bordo per un box con la scala e i nomi degli assi...

lunedì 20 aprile 2009

Zemax Telescopio Cassegrain


Un vecchio post del corso di ottica che mi ero dimenticato di pubblicare...
  
Esercizio
Disegnare un telescopio Cassegrain con i seguenti requisiti:
Apertura
10


FoV
30
0,008727
rad
M
4


X CCD
1024
25,6
mm
Y CCD
1024
25,6
mm
Pixel
25
μm

b.f.l.
700
mm

La percentuale di ostruzione deve essere minore del 20%
L’Ensquared Energy all’interno di un pixel deve essere almeno dell’80%
Il testo dava una scelta sull’apertura f/12 o minore, sull’ingrandimento del secondario tra 3 e 4 e la b.f.l. tra 600 e 900 mm. Anche se il testo richiedeva un strumento compatto, la bfl a 600 avrebbe causato un fuoco a pochi millimetri dal primario rendendo difficile il posizionamento del rivelatore.
Ho scelto f/10 per avere uno specchio più grande che raccoglie più luce.
Calcolo f
Il punto di partenza è il campo di vista e la dimensione del rivelatore (lo chiamo CCD). Considero quindi un rilevatore di dimensioni 25,6X25,6 mm. Considero di rappresentare il campo su tutto il CCD ponendo diametro del campo su lato del rilevatore.
Dalla relazione seguente calcolo f applicando l’approssimazione per angoli piccoli e usando la conversione in radianti per semplificare i calcoli.





f =2933,425 mm

Calcolo f1
Applico la formula
f1 = 733,3563 mm di conseguenza il raggio di curvatura dello specchio iperbolico è
R1=2f1= 1466,713 mm
Calcolo f2
f2 = -233,333 mm e quindi R2=2f2= -466,667 mm
Calcolo d
d indica la distanza fra lo specchio primario e il secondario
d= 558,3563 mm
Calcolo b
b è la distanza tra lo specchio primario e il piano immagine. Poiché la b.f.l. è la distanza tra lo specchio secondario e il piano immagine:
b= 141,6437 mm
Aperture
Considero come apertura del sistema il diametro dello specchio primario e quindi
=293,3425 mm
Per quanto riguarda il diametro del secondario la formula
consente di ottenere il più piccolo specchio adatto per il sistema
D2=70
Ostruzione
Calcolo il rapporto delle aree dei due specchi e vedo che in percentuale il secondario ricopre il 6% della superficie del primario, ampiamente nel margine indicato.

Inserimento dati in Zemax
Inserisco i dati in Zemax. Pongo quindi un disco opaco prima del secondo specchio dello steso diametro dello specchio stesso. Creo un foro sul primo specchio di dimensioni tali da contenere il fascio convergente al piano immagine e imposto le lunghezze d’onda (F,d,C) e traccio 3 raggi: il centrale e due a ±0,25° per vedere gli effetti al bordo del rivelatore.
Dall’immagine si vede chiaramente l’oscuramento causato da secondario e si nota che i raggi vanno a fuoco entro l’area del rivelatore indicata. Gli spot evidenziano che gli estremi del campo sono contenuti nel rivelatore per metà questo in genere non è grave in quanto al bordo comunque non si considerano immagini utili e inoltre in caso di CCD i bordi sono utilizzati per scopi diversi dalla rappresentazione del campo (lettura, sima del dark…).
Lo spot in asse ha una dimensione di 301 μm. Ciò considerando la dimensione del pixel a 25 μm permette di dire che l’immagine di una stella (considerata puntiforme) viene campionata in circa 10 pixel che è un valore accettabile.
Il ray fan evidenzia la presenza di aberrazione sferica intuibile anche dalla forma degli spot.
La PSF
Da questa immagine ottenuta sul piano x (siamo in simmetria circolare attorno a z) si vede che il picco della psf è basso e l’immagine di diffrazione è ben visibile. Questo mi porta a cercare una soluzione migliore magari correggendo l’aberrazione sferica.
Ho tentato di correggere la sferica modificando la focale ma questo causa allungamento della focale stessa e quindi perdita nelle dimensioni del campo e l’ho quindi scartata.
Una ottimizzazione variando le costanti coniche migliora notevolmente lo spot centrale ma introduce coma verso i bordi. Questo effetto non è preoccupante per quanto detto sopra.
Inoltre la psf diventa
Ora un oggetto puntiforme prende 2 pixel e quindi sarebbe sottocampionato ma le stelle in atmosfera non sono puntiformi ma definite dal disco di seeing e quindi questa soluzione può andare bene.
I grafico successivo mostra la psf nell’altra sezione elaborata in falsi colori noto che il rapporto di Strehl è >0,8 quindi il mio sistema risulta difraction limited valuto ora l’Ensquared Energy per pixel
Noto che a 12,5 μm l’EE è circa il 80%-90% oltre l’80% richiesto.

Zemax il Doppietto Acromatico

Esercizio

Disegno di un doppietto acromatico

Un doppietto è una lente formata dall’unione di due lenti costituite di due diversi vetri. Il doppietto è in genere cementato, per cui il raggio di curvatura della seconda superficie della prima lente è uguale al raggio di curvatura della prima superficie della seconda lente. Usando due vetri con caratteristiche di dispersione diversa, si riesce a correggere l’aberrazione cromatica al primo ordine. Come si vedrà ciò significa che nel grafico che mostra la posizione focale in funzione della lunghezza d’onda (cromatic focal shift) si passa da una situazione non corretta in cui il grafico è una retta ad una situazione corretta in cui il grafico ha una forma parabolica. È possibile anche vedere che le aberrazioni sono minori di quelle di una lente singola della stessa focale e apertura.

Dati di progetto

Apertura: f/4

Focale: 100

Lunghezza d’onda: F,d,C (0.468 0.588 0.656 micron)

Vetri da utilizzare il BK7 e il SF1

(è possibile vedere il valore e l’andamento dell’indice di rifrazione dei due vetri nel range di lunghezze d’onda selezionato tramite il grafico Dispersion Diagram (vedi menù -> Analysis->Glassand Gradient Index)).

I valori del numero di Abbe per i due vetri sono VBK7= 64.17, VSF1=29.51

La prima lente BK7 è biconvessa (in partenza prendere R2=R1)

La seconda lente in SF1 è un menisco

Il disegno deve essere ottimizzato per una sorgente all’infinito in asse.

  1. A partire da una configurazione ‘plausibile’, ottimizzare il sistema in modo di avere uno spot che per le varie lunghezze d’onda sia dell’ordine di 20-40 micron di diametro massimo.
  2. Verificare il cromatic focal shift e confrontarlo con quello di una lente semplice da 100 mm di focale.
  3. Confrontare tramite il ray fan l’entità delle aberrazioni presenti nei due casi
  4. Verificare l’andamento dello spot fuori fuoco
  5. Sia dal ray fan che dal through focus che tipo di aberrazioni si vedono?
  6. Inserendo alcuni campi di vista fuori asse 2°, 5°, 10°, osservare i ray fan e vedere che aberrazioni sono presenti. Guardare il diagramma field curv/dist

Svolgimento

Lente biconvessa

Prendo la lente biconvessa con apertura aperture stop di 25 mm e raggi 100 e -100 mm.

Pongo la sorgente a infinito e considero i raggi in asse. Considero le lambda (C, d, F). Pongo inizialmente il fuoco a 100 mm. Vedo subito zoommando sul fuoco che il sistema è affetto a aberrazione cromatica longitudinale ossia i raggi vanno a fuoco in punti diversi: i blu più a sx i rossi più a dx i verdi in mezzo.

Cerco allora il fuoco fd per la lunghezza d’onda “verde” utilizzando la formula



dove

è la differenza di lunghezza d’onda tra F e C e Vd è il numero di Abbe per il vetro BK7.

Ottengo fd = 95,73413211.

Apro la merit function, imposto la riga EFFL con target fd e peso 1, lancio l’ottimizzazione del sistema ponendo il fuoco variabile e ottengo uno spot dell’ordine di 500 μm di diametro ed una Chromatic Focal Shift scorretta in quanto assomiglia più ad una retta che a una parabola.






Il doppietto

Ora provo ad aggiungere il menisco sulla faccia negativa della lente biconvessa. Inserisco una nuova superficie ad una distanza di 5 mm dalla precedente e con R = -100. Pongo il fuoco di questa nuova superficie a fd e imposto il vetro sulla superficie di separazione fra le 2 lenti a SF1. Ora aggiungo la variabilità sui 3 raggi di curvatura e sul fuoco, aggiorno la M.F. e lancio l’ottimizzazione.

Il risultato del layout 3d è il disegno qui a fianco.

I 3 raggi di curvatura sono

R1 = 59,394449 mm

R2 = -47,053907 mm

R3 = -116,790628 mm

Il fuoco acromatico del sistema è

f = 91,577374 mm



1.Spot

Lo spot finale ha un diametro di circa 26 μm entro i limiti richiesi 20 – 40.

2.C.F.S.
Il Chromatic Focal Shift ha la forma di una parabola quindi siamo nella situazione corretta rispetto al grafico generato in precedenza che aveva una forma più simile a quella di una retta. Praticamente la curva diventa una parabola perché così facendo gli estremi in lunghezza d’onda arrivano ad avere (quasi) la stessa focale correggendo l’aberrazione cromatica.

3. Ray Fan
A sx sono rappresentate le curve di aberrazione nel caso della lente biconvessa, in centro quello del doppietto. Vedo subito che la scala differisce di un fattore 10 infatti il doppietto ha maximum scale ±40,000 μm la lente biconvessa ±400,000 μm. Chiaramente le scale sono arbitrarie e scelte da me ma con la scala della biconvessa le aberrazioni per il doppietto sarebbero state invisibili ossia simili a rette sull’asse delle ascisse come si vede dal grafico a dx. Posso dire quindi che aberrazioni sono state notevolmente migliorate.


4. Through Focus

Nelle figure è rappresentato l’andamento dei punti fuori fuoco per le 3 lunghezze d’onda prese in considerazione. Ho impostato il delta focus a 100 μm e la scala è la stessa.

Noto che il programma ha scelto come fuoco del sistema il miglior compromesso fra le 3 lunghezze d’onda infatti presi singolarmente gli spot più piccoli sono in posizioni diverse dallo 0.

Noto inoltre che il mio sistema ha spostato il fuoco del “blu” più a dx rispetto a quello degli altri colori. Questo è il risultato che mi aspettavo infatti l’aberrazione cromatica longitudinale nasce dal fatto che l’indice di rifrazione di un mezzo fa convergere prima le λ corte rispetto a quelle lunghe quindi per correggere questa aberrazione devo spostare il fuoco “blu” a dx (vedi anche grafico C.F.S.).

5.Aberrazioni rimaste

Dalla curva di aberrazione posso supporre la presenza di aberrazione sferica diversa per il “blu” rispetto agli altri colori. Infatti mentre nel “verde” e nel “rosso” siamo prossimi al caso c) della figura in fianco (tratta da Introduction to lens Design - Joseph. M. Geary), nel “blu” siamo vicini al caso b) anche se la forma della curva alle estremità non corrisponde.

Per quanto riguarda gli spot invece il “rosso” e il “verde” hanno uno spot simile a quello provocato da aberrazione sferica mentre nel “blu” lo spot assomiglia a quello della aberrazione fuori fuoco.

Posso dire quindi che il sistema è affetto da aberrazione sferica e fuori fuoco in maniera diversa per le varie lunghezze d’onda.

6. Aberrazioni fuori asse
Aggiungo nel doppietto 3 raggi fuori asse a 2°, 5° 10°. Dai grafici Ray Fan e Through Focus noto la presenza di aberrazioni fuori asse apprezzabili per i raggi a 5° e 10°. Il raggio a 2° sembra non essere affetto dalle stesse aberrazioni ma per confrontare le varie inclinazioni ha dovuto aumentare notevolmente la scala: da 100 μm a 2000 μm e quindi perdo eventuali lievi effetti sui raggi a 2° che comunque sembrano conservare l’approssimazione parassiale. Dal grafico Ray Fan noto che le curve di aberrazione nei 2 piani sagittale e tangenziale sono rette di pendenza differente questo indica la presenza di astigmatismo, inoltre nel grafico degli spot si vede la tipica forma allungata che cambia orientazione dopo avere attraversato i fuochi conferma questa ipotesi.

Il grafico Field Curvature conferma la presenza di astigmatismo e indica anche la presenza di distorsione. Le aberrazioni fuori asse presenti nel sistema sono quindi Astigmatismo e Distorsione. In questo caso non faccio considerazioni in merito alla differenza delle aberrazioni per lunghezza d’onda in quanto la scala che sto usando non me lo consente.


Zemax la Lente Biconvessa

Nel corso di Laboratorio di Ottica I mi ha appassionato parecchio l'utilizzo de programma di Ray Tracing Zemax. E questi sono gli esercizi per casa. Il primo è l'analisi delle aberrazioni di una lente biconvessa. Divertente...
(Io lo vedo in 1280X1024 sul mio pc. a risoluzioni più basse le immagini vanno fuori posto...)

La differenza tra il caso ideale e la realtà sono le aberrazioni.Zemax aiuta a capire come toglierle da un sistema ottico. Vediamo di imparare i primi passi. Disegno una lente biconvessa con

f = 100 mm per la legge dei costruttori di lenti ho f = R

f# = 5 = f/D con D = 20 mm

su questa lente incidono dei raggi provenienti da infinito (da sx) che convergeranno nel fuoco di destra. Volgio vedere da che aberrazioni sarà afflitta la mia immagine e cercare di risolverle. Apro il programma e mi trovo questa schermata. Di default Zemax apre il lens data editor con 3 superfici.

OBJ = oggetto

STO = Aperture stop (apertura)

IMG = immagine

Le superfici sono considerati piani. Vedo sopra il lens editor una fila di bottoni. I primi quattro sono per gestire i file (apri salva ecc.), il gruppo successivo sono funzioni che servono a definire i dati generali del mio sistema quali apertura, tipo di lenti, di vetro ecc, il campo di vista e le lunghezze d’onda. Il gruppo successivo contiene gli strumenti di analisi e visualizzazione del sistema. L’ultimo blocco contiene gli strumenti che aiutano a risolvere i problemi come il mitico tasto OPT ossia ottimizzazione del sistema.

Schiaccio subito il tasto GEN vado ad impostare l’apertura:

Aperture Type -> Entrance Pupil Diameter

Aperture Value -> 20 mm (nel sootmenù Units posso cambiare unità di misura)

Ritorno al lens editor, ve che ogni superficie ha tutta una serie di parametri da impostare.

Surf:Type: è il tipo di superficie, per il momento va bene la standard

Comment: serve a scrivere commenti

Rdius: è il raggio di curvatura della superficie se un piano -> Infinity

Thickness: è la distanza dalla superficie successiva

Glass: è il tipo di vetro

Semi-diameter: va lasciato in autmatic

Conic: serve se voglio provare superfici delle lenti non sferiche ma più in generale coniche e va impostato con k che definisce la forma della conica dall’equazione generale

z(x,y) =cr^2/(1+sqrt(1-(k+1)cR^2))

k=0 Cerchio

k=-1 Parabola

k<-1 Iperbole

-1 <0 Elissoide Prolato

k>0 Elossoide Oblato

Ora inserisco le superfici che mi servono: mi metto sopra STO e schiaccio il tasto ins della tastiera, così facendo inserisco una sup. Tra OBJ e STO. Facci lo stesso lavoro per due volte. Considero un raggio dall’infinito, per farlo lascio OBJ con le impostazioni di default e uso la sup 1 impostandola come un “vetro di aria piano” posto a 100 mm dalla lente. Per farlo modifico il parametro Thickness a 100 e lascio invariati gli altri è un truccheto per visualizzare meglio i raggi che arrivano dall’infinto. STO e 3 sono le 2 facce della lente, definisco quindi i raggi a 100 il primo a -100 il secondo (i raggi di curvatura sono positivi se la cocavità guarda a dx negativi se guarda a sx) su STO metto thickness a 5 (lo spessore della lente) e la metto a 100 (il fuoco) su 3 che è dove mi aspetto si formerà l’immagine. Schiaccio il bottone L3D Ottengo quello che rappresentato nella figura.

Ora l’immagine non mi dice un granchè e allora provo ad aumentare i raggi. Per farlo basta aprire il menu settings dalla finestra di Layout e indicare il numero di raggi che si preferisce sul campo Number of Rays io ne metto 6. Poi facci lo zoom sul punto di fuoco (presunto) per farlo basta selezionare col mouse una finestrella sulla figura. Noto che i raggi si incrociano e quindi vanno a fuoco in punti diversi un po’ prima e un po’ dopo il mio f .

Fuori fuoco e Aberrazione Sferica

Ora vedo 3 strumenti di analisi:
SPT

Fa lo spot dell’immagine (o di qualunque piano sull’asse) in pratica funziona come se mettessi un foglio opaco bucherellato davanti al raggio. Questa funzione genera il grafico in figura. In alto a dx vedo la lunghezza d’onda dei raggi considerati, al centro vedo l’immagine sul piano (x,y) perpendicolare all’asse del sistema (z). Con settigs posso cambiare vari parametri come la forma della figura, le unità di misura, la scala, il punto sull’asse deve fare l’immagine, ecc…

Importanti i due valori RMS ossia scarto quadratico medio che in questo caso è altino e il numero a fianco dell’immagine che mi dà l’ordine della dimesione dello spot ossia quanto il nostro punto luce è disperso sul piano di fuoco. In questo caso 2000 micron che significa che il nostro punto occupa uno spot di 2mm sul piano focale con un errore dato da RMS. Il raggio effettivo dello spot è indicato nsotto l’RMS.

Through Focus Spot Diagram Si va sul menu principale-> Analysis->Spot Diagrams->Througt Focus è la versione del comando Spot ripetuta su vari piani paralleli attorno il mio presunto punto di fuoco. Dal menu settings si cambiano le opzioni, ad esempio ho messo Delta Focus a 5000 micron. Questo significa che verranno tracciati 5 spot in un delta di 5 mm prima e dopo al mio fuoco presunto. Vedo già che 100 mm non è la scelta migliore, infatto quello sullo 0 non è lo spot più piccolo. Anzi un buon candidato potrebbe essere a -5000 micron ossi 5 mm verso sx.



RAY

Mi dà una idea di che tipo di aberrazione sto trattando o meglio qual è l’aberrazione domiante sul piano che stiamo considerando. Il grafico rappresenta l’aberrazione in funzione dei raggi sulla pupilla di ingresso (PX, PY). Prendendo come riferimento il Raggio Principale. Se non ho aberrazioni il grafico è una retta coincidente con l’asse delle ascisse. Se sposto il piano focale parallelamente a se tesso sull’asse (z) la curva di aberrazione rimane una retta ruotata attorno il centro degli assi. In questo caso significa che non sono a fuoco o che ho una aberrazione di fuorfuoco. In realtà il grafico non rappresenta proprio una retta quindi significa che sono presenti anche altre aberrazioni ma su questo piano quella dominante è quella di fuori fuoco.


Il diagramma qua in fianco fa proprio vedere quello che ci interessa: noi ci troviamo in questo momento nella situazione d) : le curve di aberrazione coincidono e risulterebbe valida la mia ipotesi di dovere spostare il fuoco verso sx.

Scoperta la aberrazione che affligge il mio sistema provo a toglierla. Ora per il momento il modo più facile sarebbe spostre avanti e indietro il piano immagine sull’asse fino ache non trovo ill fuoco migliore. In pratica devo trovare per la casella Thickness della sup. 3 un valore diverso da 100. Secondo le nostre supposizioni dovrebbe essere attorno a 95. Per farlo clik dx sulla casella appare un menu a tendina cambio il parametro Solve Type da Fixed a Marginal Ray Height, schiaccio ok e il programma mi ha trovato il nuvo fuoco a circ 95,60 mm.Con questo comando trovo quindi il piano di fuocoparassiale usando i Rggi Marginali.Ora se vado a guardare il grafico di spot vedo che la dimensione dell’immagine si è ridotta a 400 micron e comunque la maggior parte del flusso è concentrat nel centro.

L’altro grafico testimonia la la bontà del nostro agire in quanto lo spot in centro sembra essere i migliore (disco di minore confusione)!

Nono ci resta che vedere la curva di aberrazione che non sembra una retta parallela all’asse delle ascisse, anzi sembra una curva polinomiale tipo una cubica. Dal disegno in fianco noto che l’aberrazione potrebbe essere il caso d) ossia una aberrazione sferica a dx del fuoco parassiale. In pratica qusto significa che i raggi fuori asse vanno a fuoco su un piano diverso dal piano focale e il piano focale stesso non è più piano ma è curvo.Per sicurezza vediamo cosa succede aggiungendo un raggio che proviene da un punto fuori asse.


Schiaccio il bottone Fie appare un foglio con varie righe. Ogni riga è un punto con cui posso descrivere oggetto/immagine. Ne posso generare al massimo 12. Spunto 2 righe e scrivo sulla colonna y-field 15° per il raggio 2 e -15° per il raggio 3. In pratica sembra che risolvendo il fuoco parassiale ho introdotto “la stessa aberrazione” per i punti fuori asse ossia questi non vanno a fuoco sul piano ma un po’ prima lungo la direzione (z). Zemax cura questa aberrazione in maniera molto pratica ossia tenta di valutare la distanza sull’asse in cui porre il p.f. tale da minimizzare l’rms (scarto quadratico medio) delle distanze dei punti dello spot del raggio principale sul p.f.. In pratica utilizza la tecnica statistica dei minimi quadrati sui punti dello spot e trova la (z) per cui questi punti sono più vicini (o lo spot è più piccolo). Entra in scena la merit function! Dal menu Editors -> Merit Function . Dalla finestra che si apre clikko Tools->Default Merit Function. Si apre una finestrella e dai menu a tendina e seleziono come abbiamo detto RMS, Spot Radius, Chief Ray Schiaccio OK e ritorno all’editor inserisco una riga Type->effl (effective focal length) , Target->100, Weight->1. In pratica gli ho detto di trovare il fuoco non aberrato attorno a 100 mm, usando come peso 1. Se aumento il per lui cercherà di restare sempre più vicino al fuoco che ho dichiarato.

Ora tolgo i raggi fuori asse dalla finesta field, torno al Lens Data Editor sulla casella del fuoco imposto variable (basta schiacciare ctrl+z). Ora si schiaccia il tasto Opt che fa partire l’ottimizzazione. Alla fine trovo il fuoco a 94.5 mm circa. Guardo lo spot e noto che il cerchio di spot si è ridotto a 200 micron circa con un rms di 34 micron. Questo significa che abbiamo migliorato ancora.

Ora mi pongo la domanda: “ma se modifico i raggi di curvatura della lente posso miglirare ancora il mio sistema ottico?” Ora basta usare la Merit Function mettendo variabili anche i raggi della lente. Devo ricordare di aggiornare la M.F. ogni volta che cambio le variabili. In realtà la M.F. è uno strumento potentissimo praticamente basta mettere come variabili i parametri del sistema che ritengo utili e ottimizzare il sistema su quelle variabili. Nel nostro caso il programma ha pensato di modificare i raggi di curvatura riducendo il raggio di curvatura della superficie positiva e aumentando quello della superficie negativa. Il risultato è che lo spot si è ridotto a 100 micron con un rms di circa 22 micron.

Astigmatismo

Ora tolgo in raggi in asse e aggiungo raggi fuori asse per esempio a 15° e riplotto il sistema. Produco i grafico T.F.S.D. e le curve di aberrazione. La situazione è diversa dalle precedenti. Dal grafico degli spot vedo lo spot sul piano focale parassiale allungato lungo la drezione verticale (tangenziale) e gli spot precedenti allungati lungo la direzione orizzontale (sagittale).

Confronto le curve di aberrazione con il disegno in fianco e vedo che sono esattamente nel caso e). Siamo in presenza di astigmatismo. Questa aberrazione affligge raggi fuori asse poiché il cono incide asimmetricamente sul sistema ottico. Così le porzioni di raggio sono diverse sui due piani, causando una focale diversa per i piani tangenziale e sagittale. Un modo per tenteare di risolvere questa aberrazione è risolvere la M.F. ottimizzandola su un asse per esempio l’asse (x). In questo modo una delle aberrazioni sparisce.

Coma

Ora provo ad invertire i raggi di curvatura della lente. Per farlo seleziono le 2 superfici e clicco su Tools->Moscellaneous->Reverse Elements.

Ora la situazione è cambiata ancora. Lo spot ha la forma allungata di una “cometa” ed è ancora presente astigmatismo almeno sull’asse tengenziale. Confrontando le curve di aberrazione con quelle nella figura a fianco vedo che sono afflito da coma.

La coma è una variazione dell’ingrandimento del sistema ottico conl’apertura. In pratica i raggi fuori asse che passano ai margini della pupilla vengono immaginati ad una altezza diversa di quelli che passano al centro.