Sonar attivo: calcolo della portata di scoperta

Il calcolo della portata di scoperta del sonar attivo [1] è indispensabile nelle fasi di progettazione dei sonar, al fine di indirizzare al meglio le operazioni di scelta delle componenti bagnate e della potenza di trasmissione dell'apparato.

Il calcolo della portata di scoperta[2] di un sonar attivo è fondamentale per comprendere come le variazioni di questa siano funzioni delle innumerevoli variabili che compaiono nel classico sistema trascendente da risolvere in :

Un tempo la valutazione era svolta con il Sonar Performance Calculator Submarine Signal Division, Portsmouth della Raytehon, (in bibliografia) oggi, grazie al computer e al Visual Basic, si possono ottenere risultati più precisi e veloci, sia con processi di calcolo iterativo, sia con grafici esplicativi del fenomeno.


Il pannello di controllo del sistema di valutazione

modifica
 
figura 1 Pannello di comando del sistema


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

  • Lista di otto Textbox, evidenziati con numeri distintivi a sinistra e sigle di funzione a dastra per la routine di programma, per l'inserzione delle variabili caratteristiche:
1-Frequenza di trasmissione  
2-Banda di ricezione  
3-Livello della pressione generata   in  
4-Livello della pressione dovuta al rumore del mare     
5-Guadagno di direttività della base  
7-Durata dell’impulso   
8-Parametro probabilistico   
6-Forza del bersaglio  

La variabile   che figura nella seconda equazione del sistema non viene inserita manualmente nel pannello di controllo, è il software che la computa con le variabili  ,  ,  .

  • un combo per l'impostazione del tipo di propagazione (sferica ; sferico-cilindrica)
  • un pulsante Command1 per l'avvio del calcolo
  • un label per la risposta numerica del dato di portata
  • un reticolo cartesiano per la presentazione delle curve delegate alla soluzione grafica del processo d'esame della portata come mostrato in figura 1:

Impostazione del software

modifica

In ambiente di sviluppo Visual Basic [3] inserimento degli oggetti nel Form come indicato in figura 1 .[4].

Azione di copia e incolla [5] del programma:

Listato

Private Sub Command1_Click()
calcolo
End Sub
Private Sub Form_Paint()
For xi = 0 To 6440 Step 322
For yi = 0 To 4480 Step 28
PSet (500 + xi, yi)
Next yi
Next xi
For yi = 0 To 4480 Step 224
For xi = 0 To 6440 Step 42
PSet (500 + xi, yi)
Next xi
Next yi
Line (500, 0)-(500, 4480)
Line (500, 4480)-(6440 + 500 + 160, 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
Private Sub text3_KeyPress(KeyAscii As Integer)
If InStr("-+.0123456789" + Chr(&H8), Chr(KeyAscii)) = 0  _
Then KeyAscii = 0
End Sub
Private Sub text4_KeyPress(KeyAscii As Integer)
If InStr("-+.0123456789" + Chr(&H8), Chr(KeyAscii)) = 0 _
Then KeyAscii = 0
End Sub
Private Sub text5_KeyPress(KeyAscii As Integer)
If InStr("-+.0123456789" + Chr(&H8), Chr(KeyAscii)) = 0 _
Then KeyAscii = 0
End Sub
Private Sub text6_KeyPress(KeyAscii As Integer)
If InStr("-+.0123456789" + Chr(&H8), Chr(KeyAscii)) = 0 _
Then KeyAscii = 0
End Sub
Private Sub text7_KeyPress(KeyAscii As Integer)
If InStr("-+.0123456789" + Chr(&H8), Chr(KeyAscii)) = 0 _
Then KeyAscii = 0
End Sub
Private Sub text8_KeyPress(KeyAscii As Integer)
If InStr("-+.0123456789" + Chr(&H8), Chr(KeyAscii)) = 0 _
Then KeyAscii = 0
End Sub
Private Sub calcolo()
Cls
For xi = 0 To 6440 Step 322
For yi = 0 To 4480 Step 28
PSet (500 + xi, yi)
Next yi
Next xi
For yi = 0 To 4480 Step 224
For xi = 0 To 6440 Step 42
PSet (500 + xi, yi)
Next xi
Next yi
Line (500, 0)-(500, 4480)
Line (500, 4480)-(6440 + 500 + 160, 4480)
If Combo1.Text = "Sferica" Then hhh = 20
If Combo1.Text = "Sfer.cil." Then hhh = 10
If hhh = 0 Then hhh = 20
k = Val(Text1.Text) 'Ftx
k1 = Val(Text2.Text) 'Banda rx
d = Val(Text8.Text)
tc = Val(Text7.Text) 'durata impulso
SL = Val(Text3.Text) 'livello di Tx
NL = Val(Text4.Text)
DI = Val(Text5.Text)
TS = Val(Text6.Text)
If k = 0 Then GoTo fine
If k1 = 0 Then GoTo fine
If tc = 0 Then GoTo fine
k2 = k / 1000 'frequenza Tx in Khz
a = (0.1 * (k2 ^ 2)) / (1 + (k2 ^ 2)) + (40 * (k2 ^ 2)) / _
(4100 + (k2 ^ 2)) + (2.75 * (k2) ^ 2) / 10000
DT = 5 * Log(d * k1 / (tc)) / Log(10)  'SOGLIA DI RIVELAZIONE 
Bw = 10 * Log(k1) / Log(10) 'incremento rumore dovuto alla banda
TL = (SL + TS - NL + DI - DT)  'MAX ATTENUAZIONE CONSENTITA
For R = 0.1 To 50 Step 0.1
TLP = 120 + 2 * hhh * Log(R) / Log(10) + 2 * a * R 'equazione 
'attenuazione f(R)
PSet (500 + 2 * 64.4 * R, 2 * 2240 - 11.2 * TLP), vbBlue
PSet (500 + 2 * 64.4 * R, 2 * 2240 - 11.2 * TL), vbRed
Next
For R = 0.1 To 50 Step 0.001
TLP = 2 * (60 + hhh * Log(R) / Log(10) + a * R)
If Int(TLP) = Int(TL) Then distanza = R  'rivelazione distanza R
If Int(TLP) = Int(TL) Then perdita = TLP / 2 'rivelazione TLp per 
'distanza R
Next
Label12.Caption = Format(distanza, "###.0")
fine:
Circle (500 + 2 * 64.4 * distanza, 2 * 2240 - 22.4 * perdita) _
, 100, vbRed
End Sub

Lista per il combo

Sferica

Sfer.cil.

Esempio di valutazione

modifica
 
figura 2 Schermata di calcolo e grafica

Calcolo della portata di scoperta di un sonar attivo per le variabili:

Frequenza di emissione  

Banda di ricezione.  

Livello di emissione    

Livello del rumore del mare   )

Guadagno della base Rx/Tx  

Durata impulso d’emissione  

Parametro probabilistico  

Forza del bersaglio  

  • selezione nel combo del modello di propagazione  
  • azione sul pulsante Command1.

Il valore numerico della portata stimata, risultante dal processo di calcolo iterativo, è:  .

Tale valore si deduce anche per via grafica dall'intersezione delle due curve nel grafico di figura 2 [6].

  1. La valutazione è condotta su due linee diverse; la linea grafica, utilizzata fino al 1960, e la linea di calcolo iterativo resa possibile dall'impiego del computer.
  2. La portata di scoperta è una previsione a carattere probabilistica, non è la reale distanza fisica tra il sonar ed il bersaglio
  3. La routine può essere adattata a diversi sistemi di calcolo
  4. Il listato del programma, data la sua semplicità, non è commentato
  5. Prestare attenzione alle righe di programma che in base alla pagina possono essere scritte in parte a capo
  6. In questo caso la misura della distanza ha una precisione inferiore al calcolo iterativo

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