Vai al contenuto

Sonar: Studio basi idrofoniche rettilinee con routine di calcolo in Visual Basic (ad una sola frequenza)


C. Del Turco

Messaggi raccomandati

 dirett0.jpg.ae2669b7894fdc296eab3d0be637f36e.jpg

fig.01

Il dimensionamento delle basi idrofoniche rettilinee, fig. 01, è 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à di una specifica base idrofonica ad una singola frequenza di lavoro F,  in particolare il guadagno  DI , la larghezza Δ (delta) del lobo principale a due livelli diversi d’ampiezza e annesso grafico.

L’algoritmo di riferimento, indicato come caratteristica di direttività C della base,  è sotto riportato:

 

formula.jpg.370628693e8ba34a852b8bd380464813.jpg

 

dove:

landa = F/1530

d = lunghezza della base

 beta =  angolo di puntamento rispetto all’asse della base.

 

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:

 

dirett1.jpg.38ab29b4215de7a7622f59fafd3af988.jpg

 

testodopofig1.jpg.b5d051d97f557431d8a0f05a3a04cf41.jpg

 

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

 

Impostazione del software

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

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

Calcolo della direttività di una base idrofonica lineare e continua della lunghezza di  1 m alla frequenza di 10 kHz:

iserzione nel textbox di sinistra del valore della frequenza di calcolo ( In kHz ) 10

iserzione nel textbox di destra del valore della lunghezza della base ( imetri ) 1 

azione sul pulsante Command1.

Il risultato del calcolo e il grafico della curva di direttività sono mostrati in figura 2:

 

dirett2.jpg.b833eb3878696055c757dd957278d841.jpg 

La routine traccia la curva di direttività normalizzata.

 datichiusura.jpg.b946a3053be21edce52782c12c463900.jpg

Modificato da C. Del Turco
Link al commento
Condividi su altri siti

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Visitatore
Rispondi a questa discussione...

×   Hai incollato il contenuto con la formattazione.   Rimuovi formattazione

  Sono ammessi al massimo solo 75 emoticon.

×   Il tuo link è stato automaticamente aggiunto.   Mostrare solo il link di collegamento?

×   Il tuo precedente contenuto è stato ripristinato.   Pulisci l'editor

×   Non è possibile incollare direttamente le immagini. Caricare o inserire immagini da URL.

Caricamento...
  • Statistiche forum

    • Discussioni Totali
      45k
    • Messaggi Totali
      521,8k
×
×
  • Crea Nuovo...