Vai al contenuto
Sistemi Radar

Approfondimento: il progetto di un radar di sorveglianza aeroportuale passo per passo, dai requisiti alla potenza

Tutto il corso in un progetto: frequenza, PRF, antenna, impulsi sul bersaglio, SNR esatto per un bersaglio Swerling 1, bilancio delle perdite, energia e potenza con la compressione d'impulso, controlli di orizzonte e clutter, con un unico script Python.

Le lezioni del corso trattano un argomento alla volta: l’equazione radar, la propagazione, la sezione radar, le forme d’onda, la rivelazione, le antenne, il clutter, i trasmettitori. In un progetto vero tutte queste scelte si incastrano, e cambiarne una sposta le altre. Questo approfondimento segue il progetto di massima di un radar di sorveglianza aeroportuale dai requisiti alla potenza del trasmettitore, una decisione alla volta, con un unico script Python che fa tutti i conti. È il modo migliore per ripassare il corso e capire a che cosa serve ogni formula.

I requisiti

Il radar deve:

  • rivelare un aereo di 1 m² (un piccolo aereo da turismo, o un aereo di linea visto in condizioni sfavorevoli) a 100 km;
  • con probabilità di rivelazione 0,9 e probabilità di falso allarme 10^{-6};
  • aggiornare la posizione di ogni aereo almeno ogni 5 secondi;
  • coprire fino a 10 km di quota, con la pioggia, sopra un terreno collinare.

Il bersaglio è descritto come Swerling 1: la sua sezione radar cambia da un giro d’antenna all’altro ma resta costante durante il passaggio del fascio (lezione sulla sezione radar).

Passo 1. La frequenza

Le lezioni sulla propagazione e sul clutter suggeriscono le frequenze basse: la pioggia attenua e riflette come \lambda^{-4} e, a parità di guadagno, l’equazione radar favorisce \lambda^2 grandi. D’altra parte un’antenna con fascio stretto a frequenza bassa è enorme. Il compromesso classico dei radar aeroportuali è la banda S: qui 2,8 GHz, \lambda = 10{,}7 cm.

Passo 2. La PRF

La distanza non ambigua deve superare la portata, con margine per i bersagli grandi oltre i 100 km: PRF = 1100 Hz dà R_{amb} = 136 km. La velocità non ambigua è allora piccola (\lambda\,PRF/4 = 29 m/s, contro aerei che volano a 250 m/s): il radar misura male le velocità, ma per un radar di sorveglianza basta l’MTI per separare gli aerei dal clutter, con PRF scaglionate contro le velocità cieche (esercizio 5).

Passo 3. L’antenna

Per separare due aerei vicini in azimut e localizzarli bene si sceglie un fascio di 1,4° in azimut. Dalla regola \theta \approx 70\lambda/D l’antenna è larga 5,4 m. In elevazione serve invece un fascio largo, a cosecante quadrata, per vedere un aereo a quota costante con la stessa intensità da vicino e da lontano (lezione sulle antenne): il guadagno di picco è tipicamente intorno a 33,5 dB, meno di quanto darebbe un fascio a matita della stessa larghezza in azimut, perché l’energia è distribuita in elevazione.

Passo 4. Quanti impulsi sul bersaglio

Un giro ogni 4,8 secondi (12,5 giri al minuto) soddisfa l’aggiornamento richiesto. Il bersaglio resta nel fascio per 1{,}4/360\cdot 4{,}8 = 18{,}7 ms e riceve

    \[ n = \frac{\theta_B\,PRF\,T_g}{360} = \frac{1{,}4\cdot 1100\cdot 4{,}8}{360} = 20{,}5 \]

impulsi: se ne integrano 20.

Passo 5. Il rapporto segnale/rumore necessario

Con 20 impulsi integrati in modo non coerente (somma delle potenze e soglia sulla somma), il calcolo esatto dà, per P_d = 0{,}9 e P_{fa} = 10^{-6}:

  • bersaglio costante: 3,2 dB per impulso (la formula di Albersheim dà 3,0);
  • Swerling 1: 11,5 dB per impulso.

La perdita da fluttuazione è 8,3 dB: integrare impulsi presi tutti durante lo stesso passaggio non aiuta contro una sezione radar che, in quel passaggio, è capitata piccola. È la voce più pesante di tutto il bilancio. Con l’agilità di frequenza (frequenze diverse in gruppi di impulsi) il bersaglio diventerebbe circa Swerling 2 e la perdita scenderebbe a pochi decibel: un’opzione da valutare se il trasmettitore risultasse troppo potente.

Passo 6. Le perdite

perditadBorigine
guide e duplexer2,0trasmissione e ricezione (lezione su trasmettitori e ricevitori)
radome0,5copertura dell’antenna, andata e ritorno
atmosfera1,2100 km in banda S, andata e ritorno (lezione sulla propagazione)
forma del fascio1,6gli impulsi ai bordi del fascio sono più deboli di quello al centro
elaborazione e CFAR2,5finestre, campionamento non centrato, stima della soglia (lezione sulla rivelazione)
MTI1,0il filtro attenua anche alcuni bersagli
totale8,8

Ogni voce sembra piccola, ma insieme valgono quasi 9 dB, cioè un fattore 7,6 in potenza. Dimenticarle è l’errore più comune nei progetti di massima.

Passo 7. La forma d’onda e la potenza

Con il filtro adattato conta l’energia dell’impulso (lezione sulle forme d’onda). Dall’equazione radar con le perdite L e la cifra di rumore F = 3 dB:

    \[ E = P_t\tau = \frac{SNR\cdot(4\pi)^3kT_0F\,L\,R^4}{G^2\lambda^2\sigma} \]

che dà 2,95 J per impulso. Con un impulso semplice da 1 μs (risoluzione 150 m) servirebbero 2,95 MW di picco: possibile con un klystron, ma costoso. Scegliendo un chirp di 50 μs con 1 MHz di banda (stessa risoluzione dopo la compressione) bastano 59 kW di picco, con un ciclo utile del 5,5 % e 3,2 kW medi: alla portata di un trasmettitore a stato solido, formato da moduli GaN in parallelo. Il prezzo è una zona cieca di 7,5 km, coperta da un secondo impulso corto e meno potente (i bersagli vicini danno eco molto più forti: bastano poche centinaia di watt).

Il bilancio del radar in decibel
Le barre salgono con i termini favorevoli, energia dell’impulso, guadagno al quadrato, lunghezza d’onda al quadrato, e scendono con quelli sfavorevoli, distanza alla quarta, rumore, perdite; alla fine il rapporto segnale/rumore per impulso arriva a 11,5 decibel, quello richiesto per un bersaglio Swerling 1.

Passo 8. I controlli: orizzonte e clutter

Orizzonte. Con l’antenna a 15 m, un aereo a 1000 m di quota è visibile fino a 146 km, ma uno a 300 m solo fino a 87 km: i bersagli bassi non si vedono a 100 km per ragioni geometriche, qualunque sia la potenza (lezione sulla propagazione). Se il requisito li includesse, servirebbe un’antenna più alta o un secondo radar.

Clutter. A 20 km la cella illuminata è di 20\,000\cdot 0{,}0244\cdot 150 = 73\,000 m²; con un terreno da \sigma^0 = -20 dB il clutter è 730 m² e l’aereo di 1 m² sta 28,6 dB sotto. Per rivelarlo servono circa 40 dB di miglioramento: un MTI a tre impulsi o un banco di filtri Doppler (MTD), con mappe di clutter, e un trasmettitore con rumore di fase sotto qualche milliradiante (esercizio 8). Ecco perché anche un radar “a bassa PRF” deve essere coerente.

Che cosa si impara dal progetto

  • Le richieste di portata si traducono in energia, non in potenza di picco: la compressione d’impulso è ciò che rende possibile lo stato solido.
  • La fluttuazione del bersaglio e le perdite pesano insieme circa 17 dB: più di quanto si guadagna integrando 20 impulsi.
  • La frequenza, la PRF, il fascio e il giro d’antenna sono legati dalla missione (copertura, aggiornamento, clutter), non scelti indipendentemente.
  • Alcuni limiti (orizzonte) non si risolvono con la potenza: si risolvono con la geometria.
  • I numeri ottenuti (5,4 m d’antenna, banda S, qualche decina di kW con compressione d’impulso, 12-15 giri al minuto) sono quelli dei radar di avvicinamento reali: il progetto di massima, fatto bene, è già vicino alla realtà.

Il codice

import numpy as np
from scipy import optimize, stats

c, k, T0 = 299792458.0, 1.380649e-23, 290.0
dB = lambda x: 10 ** (x / 10)
L10 = lambda x: 10 * np.log10(x)

# Requisiti: radar di sorveglianza aeroportuale, aereo di 1 m^2 (Swerling 1) a 100 km, Pd 0,9, Pfa 1e-6
R, sigma, Pd, Pfa = 100e3, 1.0, 0.9, 1e-6
f = 2.8e9; lam = c / f                                 # banda S: poca attenuazione da pioggia
giro = 4.8                                             # secondi per giro: aggiornamento richiesto
quota = 10e3                                           # quota massima da coprire

# 1) PRF: distanza non ambigua oltre 100 km (con margine)
PRF = 1100.0
print(f"PRF {PRF:.0f} Hz: distanza non ambigua {c / (2 * PRF) / 1e3:.0f} km")

# 2) antenna: fascio in azimut 1,4 gradi, larga in elevazione (cosecante quadrata)
thaz = 1.4
D = 70 * lam / thaz                                    # larghezza dell'antenna
G = dB(33.5)                                           # guadagno di picco tipico di un'antenna a cosecante quadrata
print(f"antenna larga {D:.1f} m per {thaz} gradi; guadagno {L10(G):.1f} dB")

# 3) impulsi sul bersaglio e integrazione
n = thaz * PRF * giro / 360
print(f"impulsi sul bersaglio: {n:.1f}")

# 4) SNR richiesto per impulso con integrazione non coerente: calcolo esatto (somma delle potenze, soglia sulla somma)
nint = int(np.floor(n))
soglia = stats.gamma.isf(Pfa, nint)                    # somma di nint potenze di rumore (esponenziali di media 1)
def pd_costante(snr):
    return stats.ncx2.sf(2 * soglia, 2 * nint, 2 * nint * snr)
def pd_swerling1(snr):                                 # sezione radar esponenziale, costante durante il passaggio del fascio
    s = np.linspace(0, 30, 3001) * snr
    return np.trapezoid(stats.ncx2.sf(2 * soglia, 2 * nint, 2 * nint * s) * np.exp(-s / snr) / snr, s)
req = {nome: optimize.brentq(lambda d: fn(10 ** (d / 10)) - Pd, -10, 30) for nome, fn in (("costante", pd_costante), ("Swerling 1", pd_swerling1))}
snr_req = req["Swerling 1"]
print(f"SNR per impulso con {nint} impulsi: bersaglio costante {req['costante']:.1f} dB, Swerling 1 {snr_req:.1f} dB "
      f"(perdita da fluttuazione {snr_req - req['costante']:.1f} dB)")

# 5) perdite
perdite = {"guide e duplexer": 2.0, "radome": 0.5, "atmosfera (andata e ritorno)": 1.2, "forma del fascio (scalloping)": 1.6,
           "elaborazione e CFAR": 2.5, "MTI": 1.0}
Ltot = sum(perdite.values())
for kk, v in perdite.items():
    print(f"  {kk:30s} {v:4.1f} dB")
print(f"perdite totali {Ltot:.1f} dB")

# 6) potenza di picco necessaria con impulso compresso: tau = 50 us, B = 1 MHz (risoluzione 150 m)
F, Bw, tau = dB(3.0), 1e6, 50e-6
# con il filtro adattato conta l'energia: SNR = Pt tau G^2 lam^2 sigma / ((4pi)^3 k T0 F L R^4)
E = dB(snr_req) * (4 * np.pi) ** 3 * k * T0 * F * dB(Ltot) * R ** 4 / (G ** 2 * lam ** 2 * sigma)
Pt = E / tau
print(f"energia per impulso {E:.3f} J, potenza di picco {Pt / 1e3:.1f} kW con impulso di {tau * 1e6:.0f} us, "
      f"ciclo utile {tau * PRF * 100:.1f} %, potenza media {Pt * tau * PRF:.0f} W")
print(f"zona cieca dell'impulso lungo: {c * tau / 2 / 1e3:.1f} km (si copre con un impulso corto)")

# 7) controllo: orizzonte radar per un aereo a bassa quota e antenna a 15 m
oriz = lambda h: np.sqrt(2 * 4 / 3 * 6371e3 * h)
for hb in (300.0, 1000.0):
    print(f"aereo a {hb:.0f} m: orizzonte {(oriz(15) + oriz(hb)) / 1e3:.0f} km")

# 8) clutter: cella a 20 km, terreno sigma0 = -20 dB
Ac = 20e3 * np.radians(thaz) * c / (2 * Bw)
scr = L10(sigma / (dB(-20) * Ac))
print(f"cella di clutter a 20 km: {Ac:.0f} m^2, SCR {scr:.1f} dB; miglioramento MTI necessario circa {snr_req - scr:.0f} dB")

L’esecuzione stampa la PRF con 136 km di distanza non ambigua, l’antenna di 5,4 m con 33,5 dB, 20,5 impulsi sul bersaglio, 3,2 e 11,5 dB di SNR richiesto con 8,3 dB di perdita da fluttuazione, le perdite (8,8 dB in tutto), 2,95 J per impulso, 59 kW di picco con 5,5 % di ciclo utile e 3,2 kW medi, la zona cieca di 7,5 km, gli orizzonti di 87 e 146 km, e per il clutter 28,6 dB sotto e circa 40 dB di miglioramento necessario.

Subscribe
Notify of
guest
0 Comments
Oldest
Newest Most Voted
0
Would love your thoughts, please comment.x
()
x