Jump to content

Recommended Posts

Posted (edited)

 

Per eventuali sviluppi compresi nel post: link al calcolatore SONARMATH (per la determinazione dei parametri acustci del sonar)

 

L’analisi della propagazione del suono per il sonar mira alla determinazione dei livelli d'attenuazione dei segnali emessi dai semoventi navali, livelli necessari per la valutazione delle   portate di scoperta sonar.

L'analisi, sviluppata in Visual Basic  consente la valutazione delle perdite che le onde acustiche, emesse da semoventi navali, subiscono durante il loro percorso in mare.

Il pannello virtuale di controllo del sistema di analisi è costituito da:

un Textbox per l'inserzione della frequenza di calcolo.

un Textbox per l'inserzione della distanza

un combo per l'impostazione del tipo di propagazione

un pulsante Command1 per l'avvio del calcolo

un label per la risposta numerica del calcolo dell'attenuazione per divergenza

un label per la risposta numerica del calcolo dell'attenuazione per assorbimento.

Tutto come mostrato in figura 1 

 

attenuaz1.jpg.e8f332089b968b381d88c80575f75ff4.jpg

 

In ambiente di sviluppo Visual Basic inserimento degli oggetti nel Form come indicato in figura 1

Azione di copia e incolla del programma:

 

Listato

Private Sub Command1_Click()
calcoloatt
End Sub
Private Sub text1_KeyPress(KeyAscii As Integer)
If InStr("-+.0123456789" + Chr(&H8), Chr(KeyAscii)) = 0 Then 
KeyAscii = 0
End if
End Sub
Private Sub text2_KeyPress(KeyAscii As Integer)
If InStr("-+.0123456789" + Chr(&H8), Chr(KeyAscii)) = 0 Then 
KeyAscii = 0
End if
End Sub
Sub calcoloatt()
R = Val(Text2.Text)
x = Val(Text1.Text)
Rem calcolo dell'attenuazione per propagazione
If Combo1.Text = "Sferica" Then attdb = 60 + 20 * Log(R) / Log(10)
If Combo1.Text = "Sfer/cil" Then attdb = 60 + 10 * Log(R) / Log(10)
Label3.Caption = Format(attdb, "###.0")
Rem calcolo dell'attenuazione per assorbimento
attdbass = R * (((0.1 * (x ^ 2)) / (1 + (x ^ 2))) + ((40 * x ^ 2) / (4100 + (x ^ 2))) + (2.75 * (x ^ 2) / 10000) + 0.003)
Label4.Caption = Format(attdbass, "###.0")
 End Sub
‘fine routine

Valori da inserire nel List del combo:

Sferica

Sfer/cil

Numerazione oggetti nel Form:

text1: ingresso frequenza in kHz

text2: ingresso distanza in km

combo1: selezione del tipo di propagazione = sferica o sferico/cilindrica

Command1:avvio calcolo

Label3: presentazione livello d'attenuazione per divergenza

Label9: presentazione livello d'attenuazione per assorbimento

altri label: liberi

 

Esempio di calcolo

Analisi delle attenuazioni per divergenza sferica e assorbimento per:

frequenza =  10 kHz

distanza della sorgente = 20 km

 

inserzione nel textbox del:

valore della frequenza di calcolo  f = 10 kHz

distanza della sorgente = 20 km

selezione nel combo del tipo di propagazione =  Sferica

azione sul pulsante Command1.

 

L'analisi, come mostra figura 2, determina questi valori:

attenuaz2.jpg.46de6e755d73ae2f139d516793eb9707.jpg

Perdite complessive di propagazione (un solo percorso) = 86 + 21.6 = 107.6 dB

 

 

 

 

Edited by C. Del Turco

Join the conversation

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

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Forum Statistics

    • Total Topics
      45.4k
    • Total Posts
      526.2k
×
×
  • Create New...