Basi idrofoniche rettilinee (routine di calcolo)
Il dimensionamento delle basi idrofoniche rettilinee è fondamentale nel progetto del sonar e nella valutazione delle portate di scoperta.
Detta operazione, sviluppata in Visual Basic, consente la determinazione dei parametri della direttività delle basi, in particolare il guadagno e la larghezza del lobo principale con annesso grafico. [1]
Il pannello virtuale di controllo del sistema di elaborazione, vedi figura 1, consente il calcolo veloce delle variabili che caratterizzano le basi riceventi del sonar.
Le aree funzionali sul pannello sono:
- due Textbox (Impostazione dati) per l'inserzione della frequenza di lavoro e della lunghezza della base idrofonica.
- un pulsante ( Command1 ) per l'avvio del calcolo
- tre label ( L3;L9;L10 ) per la risposta numerica del calcolo
- un tracciato cartesiano, che si sviluppa all'avvio del software, per la presentazione delle curve di direttività calcolate
I risultati del calcolo sono:
- guadagno di direttività della base idrofonica in deciBel
- Larghezza del lobo principale, in gradi, al livello di sotto il massimo
- larghezza del lobo principale, in gradi, al livello di sotto il massimo
- grafico della curva di direttività; ascisse in gradi sessagesimali; ordinate normalizzate a
Impostazione del software
[modifica]In ambiente di sviluppo Visual Basic inserimento degli oggetti nel Form come indicato in figura rispettando la numerazione evidenziata in rosso per gli oggetti attivi; i label indicativi sono liberi.[2].
Azione di copia e incolla [3] del programma:
Private Sub Form_Paint() For xi = 0 To 6440 Step 322 For yi = 0 To 4480 Step 28 PSet (500 + xi, 500 + yi) Next yi Next xi For yi = 0 To 4480 Step 224 For xi = 0 To 6440 Step 42 PSet (500 + xi, 500 + yi) Next xi Next yi Line (500, 500 + 2240)-(500 + 6440 + 160, 500 + 2240) Line (500, 500)-(500, 500 + 4480) End Sub
Private Sub text1_KeyPress(KeyAscii As Integer) If InStr("-+.0123456789" + Chr(&H8), Chr(KeyAscii)) _ = 0 Then KeyAscii = 0 End Sub
Private Sub text2_KeyPress(KeyAscii As Integer) If InStr("-+.0123456789" + Chr(&H8), Chr(KeyAscii)) _ = 0 Then KeyAscii = 0 End Sub
Sub dircalc() Cls For xi = 0 To 6440 Step 322 For yi = 0 To 4480 Step 28 PSet (500 + xi, 500 + yi) Next yi Next xi For yi = 0 To 4480 Step 224 For xi = 0 To 6440 Step 42 PSet (500 + xi, 500 + yi) Next xi Next yi Line (500, 500 + 2240)-(500 + 6440 + 160, 500 + 2240) Line (500, 500)-(500, 500 + 4480) d = Val(Text2.Text) F = Val(Text1.Text) For beta = 0.1 To 100 Step 0.1 If F = 0 Then GoTo fine landa = 1.53 / F 'f in KHz If d = 0 Then GoTo fine num = Sin((3.14159 * d / landa) * Sin(beta * (3.14159 / 180))) denom = (3.14159 * d / landa) * Sin(beta * (3.14159 / 180)) Dr = num / denom If Dr < 0.707 And Dr > 0.68 Then beta1 = beta If Dr < 0.5 And Dr > 0.48 Then beta2 = beta PSet (500 + 64.4 * beta, 500 + 2240 - 2240 * Dr), &HFF0000 Next beta Label3.Caption = Format(2 * beta1, "###.0") Label9.Caption = Format(2 * beta2, "###.0") Ndi = (10 * Log(2 * d / (landa)) / Log(10)) Label10.Caption = Format(Ndi, "###.#") fine: End Sub
Private Sub Command1_Click() dircalc End Sub
Esempio di dimensionamento
[modifica]Calcolo della direttività di una base idrofonica lineare e continua [4] della lunghezza di alla frequenza di [5]:
- iserzione nel textbox di sinistra del valore della frequenza di calcolo ( In ) : nell'esempio
- iserzione nel textbox di destra del valore della lunghezza della base ( in etri ) : nell'esempio
- azione sul pulsante Command1.
Il risultato del calcolo e il grafico della curva di direttività sono mostrati in figura 2: [6]:
I valori numerici risultanti dal calcolo sono:
- ampiezza totale del lobo di direttività a : °
- ampiezza totale del lobo di direttività a : °
- guadagno della base:
Collegamenti esterni
[modifica]Un file eseguibile per il dimensionamento di una base idrofonica è scaricabile da:
Direttività base lineare ad una sola frequenza
Note
[modifica]- ↑ Il calcolo si riferisce a basi idrofoniche continue operanti ad una singola frequenza.
- ↑ Il listato del programma, data la sua semplicità, non è commentato
- ↑ Prestare attenzione alle righe di programma che in base alla pagina possono essere scritte in parte a capo
- ↑ La continuità può essere assimilata ad un insieme d'idrofoni vicini tra loro.
- ↑ Questo software consente il calcolo per frequenze singole; per computazioni in bande di frequenze si deve ricorrere a routine molto più complicate.
- ↑ I valori dell'ampiezza del lobo della caratteristica di direttività si riferiscono al lobo completo mentre il grafico ne presenta soltanto la metà
Bibliografia
[modifica]- F. Balena, Visual Basic-il linguaggio-, Mondadori Informatica, 2008
- G.Frantz, Programmare con Visual Basic, Apogeo 1996
- M.Padovani, Visual Basic flash, Apogeo, 1997
- D. Inmann B. Albrecht Programmare in Quik Basic,McGraw-Hill, Marzo 1991
- C. Del Turco, La matematica con il personal computer- Metodi matematici e grafici in QBasic, Editrice MODERNA La Spezia, 1998
- Raytehon, Sonar Performance Calculator Submarine Signal Division, Portsmouth
- G. Pazienza, Fondamenti della localizzazione marina, La Spezia, Studio grafico Restani, 1970