Dal datasheet al modello SPICE: fitting Koren della 6BX7-GT

di giux Cenni di teoria in elettronica, elettronica, in evidenza 8 min di lettura

Un simulatore SPICE non può lavorare direttamente con un grafico stampato: ha bisogno di una funzione che restituisca la corrente per qualunque coppia di tensioni nel dominio di interesse.

In questo lavoro la famiglia di curve della 6BX7-GT viene descritta da un modello di tipo Koren e un unico set di cinque parametri viene stimato contemporaneamente su tutte le curve.

1. Dal grafico alla funzione

I dati di partenza sono punti \((V_{ak},V_{gk},I_a)\) digitalizzati dalle curve caratteristiche. Il solver cerca un vettore di parametri

\[
\boldsymbol{\theta}=(\mu,K_p,K_{vb},K_{g1},E_x)
\]

tale che la corrente calcolata dal modello sia il più possibile vicina alla corrente digitalizzata per tutti i 439 punti del dataset.

Schema a blocchi dal datasheet alla digitalizzazione, al fitting globale, ai parametri e al modello SPICE.
Datasheet → digitalizzazione → fitting globale → parametri → modello SPICE.

2. L’equazione realmente implementata in triode.koren_v1

Il sorgente triode_koren_v1.m permette ora di descrivere il modello senza ambiguità. La funzione riceve \(V_{ak}\) in volt, \(V_{gk}\) in volt e restituisce direttamente \(I_a\) in milliampere.

Il primo termine calcolato è

\[
d=\sqrt{\max(K_{vb}+V_{ak}^2,\varepsilon)}.
\]

Segue

\[
z=K_p\left(\frac{1}{\mu}+\frac{V_{gk}}{d}\right).
\]

La classica espressione \(\ln(1+e^z)\) viene valutata nella forma numericamente stabile

\[
S(z)=\max(z,0)+\ln\left(1+e^{-|z|}\right),
\]

che è algebraicamente equivalente alla softplus \(\ln(1+e^z)\), ma evita overflow numerici quando \(z\) è grande e positivo.

La grandezza intermedia è quindi

\[
E_1=\max\left[0,\frac{V_{ak}}{K_p}S(z)\right],
\]

e la corrente restituita dal plugin è

\[
I_a[\mathrm{mA}]=\frac{2000}{K_{g1}}E_1^{E_x}.
\]

Questa non è una trascrizione generica del modello Koren: è la forma effettivamente usata dal solver GX-TXT.

3. In cosa differisce dalla scrittura canonica di Koren

Nella formulazione pubblicata da Norman Koren la corrente del triodo è scritta nella forma

\[
I_p=\frac{E_1^X}{K_{g1}}\left[1+\operatorname{sgn}(E_1)\right].
\]

Nella regione fisica positiva il fattore fra parentesi vale 2. Il plugin fa due operazioni equivalenti per l’uso previsto:

  • forza \(E_1\ge0\) con un clamp esplicito;
  • restituisce la corrente in mA, quindi il fattore 2 della formula Koren viene moltiplicato per 1000.

Da qui nasce il fattore 2000 della funzione implementata. Il sorgente imposta inoltre a zero gli eventuali risultati non finiti. Sono dettagli importanti perché distinguono il modello teorico dalla sua implementazione numerica concreta.

4. Significato pratico dei cinque parametri

4.1 μ

\(\mu\) governa il rapporto di controllo fra griglia e anodo. Nel termine \(1/\mu\), aumentando \(\mu\) si riduce il contributo diretto della tensione anodica rispetto all’azione della griglia. Nella famiglia di curve questo parametro influenza soprattutto la loro spaziatura e la posizione relativa.

4.2 Kp

\(K_p\) compare sia nell’argomento della softplus sia nel fattore \(V_{ak}/K_p\). Per questo non è un semplice guadagno: modifica il modo in cui il modello passa dalla zona prossima al cutoff alla regione di conduzione e contribuisce alla forma del ginocchio.

4.3 Kvb

\(K_{vb}\) entra sotto la radice insieme a \(V_{ak}^2\). Il suo effetto è quindi più evidente alle tensioni anodiche basse e intermedie, dove modifica la curvatura e il passaggio verso la regione in cui il termine \(V_{ak}^2\) domina.

4.4 Kg1

\(K_{g1}\) è principalmente un parametro di scala della corrente: a parità degli altri parametri, aumentando \(K_{g1}\) la corrente diminuisce. Non va però interpretato come una resistenza fisica: è un coefficiente del modello fenomenologico.

4.5 Ex

\(E_x\) è l’esponente applicato a \(E_1\). Modifica la curvatura della legge corrente-tensione e quindi il modo in cui la corrente cresce quando il tubo entra più profondamente in conduzione.

Cinque grafici che mostrano l’effetto di variazioni di mu, Kp, Kvb, Kg1 ed Ex sulla curva anodica del modello Koren della 6BX7-GT.
Variazione del ±20% di μ, Kp, Kvb, Kg1 ed Ex attorno ai valori fitted.

Questi effetti non sono indipendenti: più parametri possono compensarsi parzialmente. È uno dei motivi per cui è preferibile eseguire un fit globale e controllare i residui, non limitarsi a osservare una singola curva.

5. Il fitting globale usato nel progetto

Nel runtime del modulo il dataset è curve_family.primary, con associazioni X_V → V_ak, Vg_V → V_gk e Y_mA → I_a. Il solver richiesto è lsqnonlin, con massimo 2000 iterazioni e tolleranza \(10^{-8}\).

Il residuo usato nell’ottimizzazione è semplicemente

\[
r_i=I_{a,\mathrm{modello},i}-I_{a,\mathrm{misurato},i}.
\]

e la funzione obiettivo è la somma dei quadrati dei residui:

\[
\min_{\boldsymbol{\theta}}\sum_{i=1}^N r_i^2.
\]

È quindi un fit globale non pesato sulla corrente assoluta: tutti i punti contribuiscono attraverso il proprio errore in mA. Le curve a corrente elevata possono quindi pesare più, in termini relativi, delle regioni prossime al cutoff.

6. Valori fitted della 6BX7-GT

Con 439 punti il fitting ha prodotto:

ParametroValore
\(\mu\)10.820464
\(K_p\)77.041052
\(K_{vb}\)663.247799
\(K_{g1}\)485.544748
\(E_x\)1.303942

Il valore fitted di \(\mu\), circa 10,82, è vicino al valore tipico 10 riportato nei datasheet della 6BX7-GT. Questa coerenza è utile come controllo di plausibilità, ma non significa che gli altri parametri abbiano un’interpretazione fisica diretta equivalente a una grandezza di datasheet.

7. Dati misurati e curva del modello

Confronto tra i punti digitalizzati della 6BX7-GT e le curve calcolate dal modello triode.koren_v1 fitted globalmente.
Punti digitalizzati e curve fitted con un unico set di cinque parametri Koren.

Visivamente l’accordo è buono sull’intera famiglia. Le metriche globali confermano questa impressione:

  • RMSE = 1,088 mA;
  • MAE = 0,863 mA;
  • \(R^2=0.99647\);
  • somma dei quadrati dei residui = 520,03 mA².

Un \(R^2\) elevato non basta però a dichiarare “perfetto” il modello. Un modello può spiegare quasi tutta la varianza e conservare comunque errori sistematici in alcune zone.

8. Residui: dove il modello sbaglia e in che direzione

Residui del modello Koren della 6BX7-GT in funzione della tensione anodica, separati per famiglia di tensione di griglia.
Residui Ifit – Imis del modello Koren, separati per famiglia di Vgk.

Se il modello riproducesse i dati senza struttura residua, i punti oscillerebbero casualmente attorno allo zero. Qui si osservano invece andamenti coerenti all’interno di alcune famiglie: il modello a cinque parametri cattura molto bene la forma generale, ma non ogni dettaglio delle curve digitalizzate.

Il segno del residuo è particolarmente utile: un residuo positivo indica una corrente prevista troppo alta, uno negativo una corrente prevista troppo bassa.

9. Parity plot

 Parity plot con corrente anodica calcolata dal modello in funzione della corrente digitalizzata della 6BX7-GT.
Parity plot del fitting: la diagonale y = x rappresenta la previsione ideale.

Il parity plot comprime tutte le famiglie in un’unica figura. È ottimo per vedere errori globali, ma nasconde dove essi avvengono. Per questo deve essere letto insieme al grafico dei residui e alle metriche per famiglia.

10. Errore per famiglia di griglia

Grafico a barre dell’RMSE del fitting della 6BX7-GT per ciascun valore di tensione griglia-catodo.
RMSE del fit per ogni famiglia di Vgk: evidenzia le zone in cui il modello è più o meno accurato.

La famiglia con RMSE più basso è \(V_{gk}=-35\) V, circa 0,642 mA. La peggiore è \(V_{gk}=0\) V, circa 2,015 mA. Anche le famiglie a −45 V e −20 V superano 1,4 mA. Questo è più informativo del solo RMSE globale perché mostra dove il modello concentra l’errore.

Metriche complete per famiglia
Vgk [V] n RMSE [mA] MAE [mA]
-50 32 0.824 0.789 0.96669
-45 32 1.407 0.987 0.97402
-40 40 0.850 0.660 0.99542
-35 40 0.642 0.556 0.99815
-30 50 0.844 0.704 0.99747
-25 56 0.879 0.734 0.99713
-20 24 1.428 1.380 0.99442
-15 47 0.867 0.794 0.99804
-10 38 0.816 0.572 0.99834
-5 44 1.118 0.944 0.99715
0 36 2.015 1.760 0.99138

11. Errore assoluto ed errore relativo

Un errore di 1 mA non ha lo stesso peso intuitivo quando la corrente vale 60 mA o quando vale 1 mA. Per questo è utile anche un grafico dell’errore relativo. Nella sessione GX-TXT la soglia minimum_abs_y_for_relative_error è impostata a 1 mA: i punti con corrente misurata in valore assoluto inferiore a 1 mA vengono esclusi da questo diagnostico, evitando percentuali dominate dalla divisione per valori quasi nulli.

Residui relativi percentuali del fitting della 6BX7-GT, calcolati solo per punti con corrente misurata di almeno 1 mA in valore assoluto.
Errore relativo del modello Koren; i punti con |Ia| inferiore a 1 mA sono esclusi dal diagnostico.

Vicino al cutoff le percentuali possono comunque diventare molto grandi anche quando l’errore assoluto resta di pochi milliampere. Il grafico relativo va quindi interpretato insieme ai residui in mA, non al loro posto.

12. Dal fit al subcircuito SPICE

Una volta ottenuti i cinque parametri, l’equazione può essere implementata in SPICE come sorgente di corrente controllata dal valore istantaneo di \(V_{ak}\) e \(V_{gk}\). Il fit qui descritto rappresenta però soltanto il comportamento statico della corrente anodica.

Per un modello SPICE più completo servono eventualmente anche:

  • capacità griglia-catodo, griglia-anodo e anodo-catodo;
  • corrente di griglia quando la griglia entra in conduzione positiva;
  • eventuali resistenze parassite;
  • modelli di leakage, rumore o altri effetti secondari, se realmente necessari all’applicazione.

I datasheet della 6BX7-GT riportano capacità interelettrodiche dell’ordine dei picofarad, ma tali capacità non fanno parte della funzione triode_koren_v1 usata nel fitting statico.

13. Interpolazione ed estrapolazione

Il dominio coperto dal dataset è molto più importante del numero di cifre dei parametri. Il fit è affidabile soprattutto dove esistono dati: le famiglie digitalizzate vanno da \(V_{gk}=0\) a −50 V e coprono la regione di tensione anodica usata nell’estrazione.

Fuori da questo dominio il modello continua matematicamente a restituire un numero, ma quel numero non è automaticamente validato. In particolare è prudente evitare conclusioni forti su griglia positiva, tensioni anodiche molto oltre il grafico digitalizzato e zona di cutoff profondo.

14. Cosa significa “buon fit”

Un buon fit non significa che il modello sia una descrizione microscopica completa della valvola. Significa che, con cinque parametri e una funzione regolare, il modello riproduce con errore contenuto una famiglia di curve scelta come riferimento.

Nel caso corrente l’accordo globale è molto buono, ma i residui mostrano ancora struttura. Questo è esattamente il tipo di informazione utile quando si decide se il modello è già adeguato per una simulazione circuitale o se vale la pena introdurre ulteriori effetti.

15. Cosa deve rimanere da questo articolo

Il punto centrale è distinguere tre livelli: la valvola reale, i punti digitalizzati dal datasheet e la funzione matematica fitted. Il solver non “scopre la fisica” del tubo: trova il set di parametri che minimizza un errore definito. La qualità del risultato si giudica con curve sovrapposte, residui, metriche globali, metriche per famiglia e soprattutto con il rispetto del dominio dei dati.

Fonti tecniche

  • Norman Koren, Improved vacuum tube models for SPICE, Part 1.
  • GX-TXT, sorgente triode_koren_v1.m, modello statico Koren-style.
  • GX-TXT, fit_summary.txt, fit_parameters.csv, fit_predictions.csv e fit_metrics_by_family.csv.
  • General Electric, 6BX7-GT Twin Triode, ET-T804, 2-52.
  • RCA, 6BX7-GT Medium-Mu Twin Triode, tentative data, 6-56.

#6BX7-GT #curve caratteristiche #fitting non lineare #GX-TXT #lsqnonlin #modello di triodo #modello Koren #ngspice #Octave #SPICE #valvole termoioniche

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *