C. Del Turco Inviato 5 Aprile Segnala Share Inviato 5 Aprile (modificato) 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: 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: 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: La routine traccia la curva di direttività normalizzata. Modificato 5 Aprile da C. Del Turco Citare Link al commento Condividi su altri siti More sharing options...
Messaggi raccomandati
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.