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
figura 1 - Pannello di controllo per l'esecuzione dei calcoli

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]:

 
figura 2 -Tracciato della direttività calcolata

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

  1. Il calcolo si riferisce a basi idrofoniche continue operanti ad una singola frequenza.
  2. Il listato del programma, data la sua semplicità, non è commentato
  3. Prestare attenzione alle righe di programma che in base alla pagina possono essere scritte in parte a capo
  4. La continuità può essere assimilata ad un insieme d'idrofoni vicini tra loro.
  5. Questo software consente il calcolo per frequenze singole; per computazioni in bande di frequenze si deve ricorrere a routine molto più complicate.
  6. 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