Vai al contenuto

Sonar: Calcolo delle direttività delle basi idrofoniche circolari con le funzioni di Bessel (Listato disponibile in Visual Basic )  


C. Del Turco

Messaggi raccomandati

 

Nello studio delle caratteristiche di direttività  di alcune particolari   basi idrofoniche circolari che ricevono il suono nella direzione perpendicolare al piano d’appoggio, vedi figure o e o’ :

 

 fg. obessel0.jpg.a58d16248f39bd1ff963c3bcda0eac8f.jpg

 

 

besselo.jpg.22ba27c0068197fdb801e1ef69afb554.jpg

 

fig. 0'

 

 

si deve ricorre al computo delle funzioni di Bessel, o per via tabellare o con routine di calcolo.

 

bessel1.jpg.8cad61a7690824a3775c4ddae0a8a5bd.jpg 

La valutazione tabellare è per valori discreti, migliore definizione di calcolo si ha con una routine software in Visual Basic il cui listato a seguire:

 

Listato del programma

 

‘Da trasferire in ambiente VB con copia/incolla

 

Dim s1 As Double

Dim i1 As Double

Dim p1 As Double

Dim y1 As Double

Dim x1 As Double

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

Private Sub text3_KeyPress(KeyAscii As Integer)

If InStr("-+.0123456789" + Chr(&H8), Chr(KeyAscii)) = 0 Then KeyAscii = 0

End Sub

 

Private Sub Command1_Click()

 

Label2.Caption = ""

Cls

If Combo1.Text = "n = 0" Then n = 0

If Combo1.Text = "n = 1" Then n = 1

If Combo1.Text = "n = 2" Then n = 2

z = Val(Text1.Text)

s1 = Val(Text2.Text)

If s1 = 0 Then s1 = 0.0001

i1 = 0

a1 = 0

b1 = 3.14159265

For x1 = 0 To b1 Step s1

y1 = (1 / 3.14159265) * Cos(z * Sin(x1) - n * x1)

p1 = y1 * s1

i1 = p1 + i1

PSet (1200 + 610 * x1, 3500), vbRed

Next x1

 

Dim ns As String

Dim i1s As String

Dim zs As String

 

zs = z

ns = n

i1s = Format(i1, "#.#####")

Label2.Caption = "J" + ns + "(" + zs + " ) = " + i1s

Circle (1200 + 610 * 3.14, 3500), 44, vbRed

End Sub

 

‘ Nel combo si devono listare i numeri: 0; 1; 2

 

 

Per l’impiego della routine si realizza un pannello di comando con alcuni oggetti:

un combo, un textbox, un pulsante, un label nascosto sotto il pulsante calcolo, come mostra  la figura 1:

 

 

bessel2.jpg.1978b8fcb17c8a2e2ff31e95ef0561fc.jpg

 

fig. 1

 

L’impiego del calcolatore è semplice:

 

si selezione sul combo l’ordine nj della funzione da computare

si digita nel TextBox l’argomento x della funzione

si pigia il pulsante calcolo:

 

a seguito dell’azione sul pulsante sotto di esso si sviluppa, in crescendo, un segmento rosso che indica che la routine sta girando regolarmente, alla fine della computazione all’estremità  destra del segmento compare un cerchietto e contemporaneamente, sotto di esso il valore Jn(x) .

 

Un esempio

 

In figura 2 il computo di j2 (nj=2)  per x = 0.4563:

 

 j2 =0.94862

 

bessel00.jpg.7530643c833851b22a7b2746789ad878.jpg

fig. 2

 

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

  • C. Del Turco changed the title to Sonar: Calcolo delle direttività delle basi idrofoniche circolari con le funzioni di Bessel (Listato disponibile in Visual Basic )  

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,7k
×
×
  • Crea Nuovo...