# Configurazione per il simulatore termico 1D attraverso lo spessore. # # Modello fisico: # - La piastra è ridotta a una dimensione: z = direzione dello spessore. # - La sorgente di calore si trova sul lato caldo, z = 0. # - Il sensore si trova sul lato opposto, z = spessore. # - L'induttore si muove lungo x. Poiché il modello è 1D, il movimento è # rappresentato come un flusso termico variabile nel tempo nel punto # allineato con il sensore fisso. # - Il riscaldamento a induzione è approssimato come riscaldamento volumetrico # che decade esponenzialmente con la profondità secondo un parametro skin depth. # # Unità di misura: # - lunghezza: m # - tempo: s # - temperatura: °C # - flusso termico: W/m² # - coefficiente di convezione: W/(m² K) SIMULAZIONE = { # Numero di file CSV da generare. "num_run": 2, # Tempo simulato totale. "durata_s": 30.0, # Frequenza di campionamento CSV. # Esempio: 2 Hz significa una riga ogni 0.5 s. "frequenza_campionamento_hz": 10.0, # Passo di integrazione numerica interna. # Può essere inferiore al periodo di campionamento CSV. "dt_interno_s": 0.0002, # Seed per la riproducibilità. "seed": 42, # Cartella di output. "cartella_output": "dataset", } PIASTRA = { # Spessore della piastra [mm]. "spessore_mm": 0.12, # Numero di celle del volume finito attraverso lo spessore. # Più nodi = maggiore risoluzione spaziale, simulazione più lenta. "n_nodi": 61, # Temperatura iniziale uniforme. "temperatura_iniziale_C": 25.0, # Deve corrispondere a una chiave in materials.py. "materiale": "banda_stagnata", } ARIA = { # Temperatura dell'aria ambiente. "temperatura_ambiente_C": 25.0, # Coefficiente di convezione sul lato caldo (sorgente). "h_caldo_W_m2K": 12.0, # Coefficiente di convezione sul lato freddo (sensore). "h_freddo_W_m2K": 8.0, } SORGENTE = { # Distanza dal sensore, all'inizio della corsa, della sorgente del # gruppo più vicina al sensore (quella che lo raggiunge per prima). "x_inizio_m": 1.0, # Distanza dal sensore, alla fine della corsa, della sorgente del # gruppo più lontana dal sensore (quella che lo supera per ultima). "x_fine_m": 5.0, # Coordinata laterale fissa della proiezione del sensore sul lato caldo. # L'effetto della sorgente è massimo quando x_sorgente == x_sensore e offset_y_m == 0. "x_sensore_m": 0.0, # Offset laterale tra il percorso della sorgente e la linea del sensore. # Se diverso da zero, la sorgente passa a lato del sensore, riducendo il picco. "offset_y_percorso_m": 0.0, # Velocità della sorgente lungo x. "velocita_m_s": 2.0, # Numero di sorgenti equidistanti che si muovono insieme come un gruppo # rigido (stessa velocità, sigma, flusso ed efficienza). "numero_sorgenti": 3, # Distanza lungo x tra sorgenti consecutive del gruppo. "distanza_sorgenti_m": 0.5, # Raggio del punto gaussiano. Valore più alto = impronta termica più larga. "sigma_punto_m": 0.012, # Flusso termico incidente massimo prima della correzione per efficienza. "flusso_termico_picco_W_m2": 5500000.0, # Frazione del flusso incidente che diventa effettivamente calore nella piastra. "efficienza_riscaldamento": 0.35, # Frequenza di induzione usata per stimare la skin depth se skin_depth_fissa_m è None. "frequenza_hz": 20000.0, # Override della skin depth. Usare None per calcolarla dalle proprietà elettriche del materiale. # Esempio: 0.0002 significa 0.2 mm. "skin_depth_fissa_m": None, # Annulla il flusso termico una volta che la sorgente ha superato x_fine_m. "zero_dopo_fine": True, } SENSORE = { # Il sensore si trova sul lato freddo della piastra. "posizione": "lato_freddo", # Inerzia del sensore del primo ordine. # Valore più alto = risposta del sensore più lenta. "costante_tempo_s": 0.05, # Deviazione standard del rumore gaussiano. "rumore_std_C": 0.15, # Risoluzione del sensore: passo di quantizzazione della lettura. # Esempio: 0.25 significa che i valori sono arrotondati a 0.25 °C. # Usare 0.0 per disabilitare. "quantizzazione_C": 0.25, } RANDOMIZZAZIONE = { # Se abilitata, ogni run varia leggermente alcuni parametri. "abilitata": True, # Deviazioni standard relative. "velocita_std_rel": 0.007, "flusso_picco_std_rel": 0.007, "sigma_punto_std_rel": 0.007, # Deviazioni standard assolute. "temperatura_ambiente_std_C": 0.5, "rumore_sensore_std_rel": 0.25, # Offset casuale uniforme del percorso della sorgente in y. # Esempio: +/- 0.012 m significa che l'induttore può passare fino a 12 mm # dalla linea ideale allineata con il sensore. "offset_y_max_assoluto_m": 0.001, }