Revision b41766b491dcd49a7acef6a0dcfdd0937482f82c (click the page title to view the current version)

Events/Hackathon/24Decin/index

Hackathon ML/AI 2024 - soutěžní téma na tokamaku GOLEM

Tady je obrázek kombinující tokamak GOLEM s atmosférou hackathonu! Tokamak je centrálním bodem, zatímco kolem něj pracují programátoři a inženýři na svých laptopech. Příjemná kombinace výzkumné laboratoře a moderního pracovního prostoru s hackathonovou energií. (ChatGPT na otázku “Ahoj, udělal bys mi obrázek kombinující tokamak GOLEM a hackathon?”)

Výroba energie

Co takhle jako zdroj tepla “malá hvězda”?

Termonukleární fúze

Zdrojem energie hvězd a samozřejmě i Slunce je Termonukleární fúze.

Schematické znázornění fúze jádra. Credit: Wiki

Vize budoucího fúzního reaktoru

Vize budoucího fúzního reaktoru @ Wiki

Schéma budoucího fúzního reaktoru. Credit: ResearchGate

Tokamaky

Tokamak @ Wiki

Tokamak. Credit: Wikipedia

Tokamak GOLEM

Tokamak GOLEM je malé studijní zařízení na Jaderné fakultě ČVUT.

Elektrické pole \(E_t\) je důležitá komponenta tokamakové technologie GOLEMa

Nějak to musíme diagnostifikovat. \(U_{loop}\) reflektuje Elektrické pole \(E_t\)

Basic diagnostics @ Shot homepage

Hackathon ML/AI 2024 - soutěžní téma na tokamaku GOLEM

Databáze výbojů na tokamaku GOLEM

V historii tokamaku GOLEM od 8.7.2009 do řijna 2024 bylo provedeno více než 46500 výbojů. Standardní cesta k záznamu o nastavení a vysledcích jednotlivého výboje je přes adresu http://golem.fjfi.cvut.cz/shots/ShotNumber. Třeba http://golem.fjfi.cvut.cz/shots/39187 . Uložení dat a cesta k nim se však s vývojem značně měnila, tak pro požadavky Hackathonu jsme sjednotili přístup pro \(U_loop\) csv file přes adresu http://golem.fjfi.cvut.cz/discharges/ShotNumber/Diagnostics/BasicDiagnostics/U_Loop.csv

K dispozici jsou dvě vlny rozumně zpracovatelných výbojů

  • (10600 < ShotNumber < 31150 ), kde by mělo být více než 15000 úspěšných výbojů
  • (36247 < ShotNumber < 45206 ), kde by mělo být více než 5500 úspěšných výbojů

K dispozici máte tyto údaje

Obecně je přístup k csv formátovaným datům (čas [ms], napětí [V]) přes adresu

http://golem.fjfi.cvut.cz/discharges/ShotNumber/Diagnostics/BasicDiagnostics/U_Loop.csv

kde ShotNumber je číslo výboje.

  • Naše vyhodnocení, zda došlo k úspěšnému provedení plazmatického výboje ve formátu https://golem.fjfi.cvut.cz/getData.php?schema=diagnostics&table=plasmadetection&column=b_Plasma&ShotNo=ShotNumber. Třeba pro výboj #39187 . Možné hodnoty 1: šlo o výboj, 0: výboj se nezapálil.
  • Začátek výboje v milisekundách ve formátu https://golem.fjfi.cvut.cz/getData.php?schema=diagnostics&table=plasmadetection&column=t_Plasma__start&ShotNo=ShotNumber. Třeba pro výboj #39187.
  • Konec výboje v milisekundách ve formátu https://golem.fjfi.cvut.cz/getData.php?schema=diagnostics&table=plasmadetection&column=t_Plasma__end&ShotNo=ShotNumber. Třeba pro výboj #39187.
  • Dobu výboje v milisekundách ve formátu https://golem.fjfi.cvut.cz/getData.php?schema=diagnostics&table=plasmadetection&column=t_Plasma__duration&ShotNo=ShotNumber. Třeba pro výboj #39187.
  • Již zmíněná cesta k časovému vývoji \(U_l\): http://golem.fjfi.cvut.cz/discharges/ShotNumber/Diagnostics/BasicDiagnostics/U_Loop.csv**. Třeba pro výboj #39187.

Třeba pro výboj číslo #39187:

Kód v pythonu:

mport numpy as np
import matplotlib.pyplot as plt
import requests

shot_no=39187
data = np.loadtxt("http://golem.fjfi.cvut.cz/discharges/" + str(shot_no) + "/Diagnostics/BasicDiagnostics/U_Loop.csv",delimiter=",")
plasma_start=np.float64(requests.get("https://golem.fjfi.cvut.cz/getData.php?schema=diagnostics&table=plasmadetection&column=t_Plasma__start&ShotNo="+ str(shot_no)).text.strip())
plasma_end=np.float64(requests.get("https://golem.fjfi.cvut.cz/getData.php?schema=diagnostics&table=plasmadetection&column=t_Plasma__end&ShotNo="+ str(shot_no)).text.strip())
plt.plot(data[:,0], data[:,1]) #1. column vs 2. column
plt.title('#'+str(shot_no))
plt.xlabel('Time [ms]');plt.ylabel('$U_{loop}$ [V]');
plt.axvline(x=plasma_start, color='black', linestyle='--');
plt.axvline(x=plasma_end, color='black', linestyle='--');
plt.savefig('U_loop-'+str(shot_no)+'.jpg')
plt.show()

Výsledek:

Různé režimy výboje

V historii tokamaku GOLEM jsme zaznamenali různé režimy. V následující tabulce jsou uvedeny příklady: (prosím pozor, v případě, že nevidíte ikony, zaměňte v adrese https za http)

Režim Číslo výboje Graf Cesta k datům Další příklady
Výboj se vůbec nezapálil (nedošlo k průrazu)
Tento typ výbojů vás vůbec nezajímá.
Tag b_Plasma=0
#39160 \(U_{loop}\)
Standardní (jednoduchý průraz)
Tag b_Plasma=1
#39187 \(U_{loop}\) Standard discharges
Nestandardní (dvojitý průraz)
Tag b_Plasma=1
#44914 \(U_{loop}\) Double breakdown examples + z dávné historie
Nestandardní (trojitý průraz)
Tag b_Plasma=1
#41642 \(U_{loop}\) Tripple breakdown examples + z dávné historie
Nestandardní (několikanásobný průraz)
Tag b_Plasma=1
#44625 \(U_{loop}\) Multiple breakdown examples

python/PureUloop.html

Úkol: připravit otagování dostupných výbojů

  • Sestavit csv tabulku se dvěma sloupci: ShotNumber, Tag . Tag bude nabývat hodnot
    • dbl pro dvojitý průraz
    • trp pro trojitý průraz
    • mlt pro vícenásobný průraz
  • Připravit web stránku s výsledky, která bude obsahovat
    • Popis použité metody
    • Výsledky ve formě znázornění po 20 grafech pro jednotlivé režimy vybraných výbojů podle náhodného generátoru.