{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "711d5473",
   "metadata": {},
   "source": [
    "# Parametry potřebné pro proudovou stabilizaci na tokamaku GOLEM s využitím soustavy 5 KEPEC zapojených paralelně"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "8876b788",
   "metadata": {},
   "source": [
    "# Výpočet výsledné indukčnosti stabilizační cívky na základě znalosti indukčnosti současného primáru\n",
    "\n",
    "Známe indukčnost současného primáru (zjištěno pomocí RLC výboje), která je:\n",
    "\n",
    "$$\n",
    "L = 10 mF\n",
    "$$\n",
    "\n",
    "A celkový počet závitů primáru s kondenzátorem je:\n",
    "\n",
    "$$\n",
    "N = 48 \\text{závitů}\n",
    "$$\n",
    "\n",
    "Z toho jsme schopni učinit odhad pro indukčnost jednoho závitů na transformárovém jádře tokamaku:\n",
    "\n",
    "$$\n",
    "L_0 = \\frac{L}{N} = \\frac{10 mF}{48} = 0,208 mF\n",
    "$$\n",
    "\n",
    "Transformátorové jádro tokamaku GOLEM má obdélníkový průřez s parametry:\n",
    "\n",
    "$$\n",
    "\\begin{align*}\n",
    "a  &= 33 cm \\\\\n",
    "b  &= 25,5 cm\n",
    "\\end{align*}\n",
    "$$\n",
    "\n",
    "Z toho lze učinit odhad pro délku vodiče pro jednu smyčku na transformátorovém jádru jako obvod tohoto průřezu (za předpokladu, že se nebudou závity přes sebe vrstvit, pak by délka byla větší na jeden závit) dává hodnotu:\n",
    "\n",
    "$$\n",
    "l_0 = 2 \\cdot (a + b) = 2 \\cdot (33 + 25,5) = 117 cm \\approx 1,2m\n",
    "$$\n",
    "\n",
    "Nyní se pokusíme odhadnout maximální hodnotu magnetického indukčního toku pro primární obvod s kondenzátorem a primárním vinutím. Pro zjištění maximální hodnoty indukčního toku využijeme vztahu:\n",
    "\n",
    "$$\n",
    "\\phi_{max} = L \\cdot I_{max}\n",
    "$$\n",
    "\n",
    "Co nám ovšem chybí je kolik je horní odhad pro maximální hodnotu proudu $I_{max}$ ze znalosti nabíjecího napětí na kondenzátoru $U_{C}(0)$, indukčnosti cívky $L$, kapacity kondenzátoru $C$ a případně hodnoty rezistence $R$. Pro zjištění maximální hodnoty proudu je třeba zjistit celkovou impedanci $Z$ pro sériové zapojení daných součástek v obvodu danou vztahem:\n",
    "\n",
    "$$\n",
    "Z = \\sqrt{R^2 + \\frac{1}{(\\omega \\cdot C)^2}},\n",
    "$$\n",
    "\n",
    "kde za $\\omega$ pro odhad dosadíme rezonanční frekvence dané vztahem:\n",
    "\n",
    "$$\n",
    "\\omega = \\frac{1}{\\sqrt{L C}}.\n",
    "$$\n",
    "\n",
    "Po dosazení za $\\omega$ a zanedbání odporu ($R = 45 m \\Omega$), který je příliž nepřispěje k výsledné hodnotě dostáváme výsledný vztah:\n",
    "\n",
    "$$\n",
    "Z = \\sqrt{\\frac{L}{C}}\n",
    "$$\n",
    "\n",
    "Maximální hodnotu proudu lze spočítat pak:\n",
    "\n",
    "$$\n",
    "I_{max} = \\frac{U_{max}}{Z} = U_{max} \\sqrt{\\frac{C}{L}}\n",
    "$$\n",
    "\n",
    "Maximální hodnota proudu vychází pro hodnotu $U_{max} = 500V$ přibližně $I_{max} \\approx 1kA$, což přibližně odpovídá i numerickému modelu a datům v databázi GOLEMa. Následně dosadíme do vztahu pro indukční tok a pak lze dostat vztah:\n",
    "\n",
    "$$\n",
    "\\phi_{max} = U_{max} \\cdot \\sqrt{LC}\n",
    "$$\n",
    "\n",
    "Po dosazení hodnot napětí v rozsahu od 300V do 500V vycházela v obou případech podobně velká hodnota indukčního toku:\n",
    "\n",
    "$$\n",
    "\\phi \\in \\langle 10.90, 10.95 \\rangle Wb\n",
    "$$\n",
    "\n",
    "Odhadněme tuto hodnotu:\n",
    "\n",
    "$$\n",
    "\\phi_{odhad} \\approx 11 Wb \n",
    "$$\n",
    "\n",
    "Pro naše potřeby bychom potřebovali dosáhnout alespoň $30 \\%$ této hodnoty indukčního toku abychom byli schopni měnit výsledný magnetický indukční tok tak abychom byli schopni stabilizovat výsledný proud plazmatem. Taková hodnota by vycházela příbližně:\n",
    "\n",
    "$$\n",
    "\\phi_{stab} = 0,3 \\cdot \\phi_{odhad} = 3,3 Wb\n",
    "$$\n",
    "\n",
    "Dále víme, že můžeme paralelně za sebe zapojit 5 zesilovačů KEPCO o parametrech 20V/20A, kde by výsledná charakteristika dosahovala hodnot 20V/100A. Jak již víme magnetický indukční tok lze spočítat tak, že:\n",
    "\n",
    "$$\n",
    "\\phi = L \\cdot I = L_0 \\cdot N \\cdot I\n",
    "$$\n",
    "\n",
    "Když z výše uvedého vztahu vyjádříme počet závitů $N$ a za $\\phi$ dosadíme $\\phi_{stab}$ a za $I$ dosadíme maximální hodnotu proudu pro soustavu KEPEC, která činí $I = 100A$ dostáváme:\n",
    "\n",
    "$$\n",
    "N_{stab} = \\frac{\\phi_{stab}}{L_0 I} \n",
    "$$\n",
    "\n",
    "Průřez vodiče lze spočítat jako:\n",
    "\n",
    "$$\n",
    "S_{vodic} = \\frac{\\rho \\cdot l_v}{R_{KEPCO}},\n",
    "$$\n",
    "\n",
    "kde hodnotu $R_{KEPCO}$ lze spočítat z Ohmova zákona jako:\n",
    "\n",
    "$$\n",
    "R_{KEPCO} = \\frac{U_{KEPCO}}{I_{KEPCO}}.\n",
    "$$"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 82,
   "id": "b9220409",
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle L_{0} = 0.208 \\text{ [mH] Hodnota indukčnosti na jeden závit}$"
      ],
      "text/plain": [
       "<IPython.core.display.Math object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/latex": [
       "$\\displaystyle l_{0} = 1.17 \\text{ [m] Hodnota délky vodiče na jeden závit}$"
      ],
      "text/plain": [
       "<IPython.core.display.Math object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/latex": [
       "$\\displaystyle I_{max} = 766.8 \\text{ [A] Maximální proud v primárním obvodu}$"
      ],
      "text/plain": [
       "<IPython.core.display.Math object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\Phi_{max} = 7.7 \\text{ [Wb] Maximální indukční tok jádrem}$"
      ],
      "text/plain": [
       "<IPython.core.display.Math object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\Phi_{stab} = 1.155 \\text{ [Wb] Potřebný indukční tok pro stabilizaci}$"
      ],
      "text/plain": [
       "<IPython.core.display.Math object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/latex": [
       "$\\displaystyle N_{stab} = 55.5 \\text{ závitů pro stabilizaci}$"
      ],
      "text/plain": [
       "<IPython.core.display.Math object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/latex": [
       "$\\displaystyle l_{stab} = 64.935 \\text{ [m] Celková délka vodiče pro cívku}$"
      ],
      "text/plain": [
       "<IPython.core.display.Math object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/latex": [
       "$\\displaystyle l_{v} = 87.9 \\text{ [m] Celková délka vodiče pro stabilizaci}$"
      ],
      "text/plain": [
       "<IPython.core.display.Math object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/latex": [
       "$\\displaystyle S_{vodic} = 7.8 \\text{ [mm^2] Požadovaný průřez vodiče}$"
      ],
      "text/plain": [
       "<IPython.core.display.Math object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Při volbě soustavy 5 zesilovačů a celkovém napětí U = 20 [V] a celkovém proudu I = 100 [A] vychází celkový odpor R = 0.2 [omh]. Při volbě materiálu rho = 0.0178 [ohm*mm^2*m^-1] a volbě kapacity kondenzátoru C = 48.0 [mF] a požadavku na dosažení alespoň 15.0 % maximálního indukčního toku generovaného kondenzátory. kalibrované na maximální napětí U_max = 350 [V]. Délka přívodních vodičů do kondenzátorovny od cívky je odhadnuta na  20 [m] a délka rezervy na 3 [m] z důvodu namotávání závitů přes sebe.\n"
     ]
    }
   ],
   "source": [
    "import numpy as np\n",
    "import sympy as sp\n",
    "from IPython.display import display, Math\n",
    "\n",
    "# Volba materiálu podle měrného odporu\n",
    "rho_Cu   = 0.0178  # [ohm*mm^2*m^-1]\n",
    "rho_Al   = 0.0285  # [ohm*mm^2*m^-1]\n",
    "rho_Fe   = 0.098   # [ohm*mm^2*m^-1]\n",
    "rho_Ag   = 0.0163  # [ohm*mm^2*m^-1]\n",
    "rho_W    = 0.055   # [ohm*mm^2*m^-1]\n",
    "rho_Zn   = 0.062   # [ohm*mm^2*m^-1]\n",
    "rho_Au   = 0.023   # [ohm*mm^2*m^-1]\n",
    "rho_Ni   = 0.1     # [ohm*mm^2*m^-1]\n",
    "rho_CuZn = 0.075   # [ohm*mm^2*m^-1]\n",
    "rho_CuSn = 0.17    # [ohm*mm^2*m^-1]\n",
    "# My však budeme volit nejvíce dostupnou variantu v podobě mědi\n",
    "\n",
    "# Dostupné průřezy vodiči (hodnoty s KV elektro)\n",
    "S0 = 2.5           # [mm^2]\n",
    "S1 = 4             # [mm^2]\n",
    "S2 = 6             # [mm^2]\n",
    "S3 = 10            # [mm^2]\n",
    "S4 = 16            # [mm^2]\n",
    "S5 = 20            # [mm^2]\n",
    "S6 = 25            # [mm^2]\n",
    "S7 = 35            # [mm^2]\n",
    "S8 = 50            # [mm^2]\n",
    "\n",
    "# Výběr materiálu\n",
    "rho = rho_Cu       # [ohm*mm^2*m^-1]\n",
    "\n",
    "# Parametry pro primární vinutí s kondenzátorem tokamaku Golem\n",
    "R     = 45  * 1e-3           # [ohm]\n",
    "L     = 10  * 1e-3           # [H]\n",
    "C     = 48  * 1e-3           # [F]\n",
    "N     = 48                   # [závitů]\n",
    "U_max = 350                  # [V]\n",
    "U_min = 300                  # [V]\n",
    "\n",
    "# Hodnota indukčnosti na jeden závit\n",
    "L_0 = round(L / N,6)         # [H]\n",
    "\n",
    "# Hodnota délky vodiče na jeden závit\n",
    "a   = 33                     # [cm]\n",
    "b   = 25.5                   # [cm] \n",
    "l_0 = 2 * (a + b) * 0.01     # [m]\n",
    "\n",
    "# Výpočet maximálního proudu v primárním obvodu s kondenzátorem\n",
    "# I_max = (U_max) / (np.sqrt(R**2 + (L/C))) # [A] Přesný vztah\n",
    "I_max = round(U_max * np.sqrt(C / L),1)    # [A] Aproximovaný vztah\n",
    "\n",
    "# Výpočet maximálního indukčního toku jádrem\n",
    "# Phi_max = L * I_max                       # [Wb] Vztah z definice\n",
    "Phi_max = round(U_max * np.sqrt(L * C),1)  # [Wb] Upravený vztah\n",
    "\n",
    "# Výpočet potřebného indukčního toku pro primární obvod s KEPCEM, \n",
    "# který by měl dosahovat alespoň 20% max. hodnoty mag. ind. toku\n",
    "# generovaného obvodem s kondenzátorem\n",
    "p_10 = 0.1                                # [10%]\n",
    "p_15 = 0.15                               # [15%]\n",
    "p_20 = 0.2                                # [20%]\n",
    "p_25 = 0.25                               # [25%]\n",
    "p_30 = 0.3                                # [30%]\n",
    "p_35 = 0.35                               # [35%]\n",
    "p_40 = 0.4                                # [40%]\n",
    "p_50 = 0.5                                # [50%]\n",
    "p    = p_15                               # [%] výběr požadovaného procenta mag. toku \n",
    "\n",
    "Phi_stab = p * Phi_max                    # [Wb]\n",
    "\n",
    "# Výpočet počtu závitů ze znalosti požadovaného ind. toku,\n",
    "# znalosti indkukčnosti na závit a hodnoty proudu, který\n",
    "# by měl protékat soustavou 5 KEPEC při plné zátěži\n",
    "U_KEPCO = 20                              # [V]\n",
    "I_KEPCO = 20                              # [A]\n",
    "n       = 5                               # [počet KEPEC]\n",
    "\n",
    "# Pro sériové zapojení (maximalizace napětí)\n",
    "# I_v = I_KEPCO                             # [A] výsledná hodnota proudu soustavy KEPEC\n",
    "# U_v = n * U_KEPCO                         # [V] výsledná hodnota napětí soustavy KEPEC\n",
    "\n",
    "# Pro paralelní zapojení (maximalizace proudu)\n",
    "I_v = n * I_KEPCO                         # [A] výsledná hodnota proudu soustavy KEPEC\n",
    "U_v = U_KEPCO                             # [V] výsledná hodnota nepětí soustavy KEPEC\n",
    "\n",
    "# Výpočet počtu závitů v závisloti na volbě použitého stabilizačního systému KEPEC\n",
    "N_stab = round((Phi_stab) / (L_0 * I_v),1)# [závitů]\n",
    "\n",
    "# Výpočet celkové délky vodiče ptřebné pro stabilizaci\n",
    "l_stab = N_stab * l_0                     # [m] délka vodiče potřebného pro cívku  \n",
    "l_rez  = 3                                # [m] rezerva vodiče pro stabilizaci\n",
    "l_ved  = 20                               # [m] délka vodiče potřebného pro vedení od cívky do kondenzátorovny\n",
    "l_v    = round(l_stab + l_rez + l_ved,1)  # [m] celková délka vodiče potřebného pro stabilizaci\n",
    "\n",
    "# Výpočet potřebného průřezu vodiče kalibrovaného na míru soustave KEPEC\n",
    "R_KEPCO = U_v / I_v                       # [omh] požadovaný odpor pro soustavu KEPEC\n",
    "S_vodic = round((rho * l_v) / (R_KEPCO),1)# [mm] požadovaný průřez na vodič\n",
    "\n",
    "# Výpis výsledků\n",
    "sp.init_printing(use_latex=True)\n",
    "\n",
    "# Definujeme výrazy a texty\n",
    "expr_list = [\n",
    "    (sp.Symbol('L_0'), L_0*1000, \"[mH] Hodnota indukčnosti na jeden závit\"),\n",
    "    (sp.Symbol('l_0'), l_0, \"[m] Hodnota délky vodiče na jeden závit\"),\n",
    "    (sp.Symbol('I_max'), I_max, \"[A] Maximální proud v primárním obvodu\"),\n",
    "    (sp.Symbol('Phi_max'), Phi_max, \"[Wb] Maximální indukční tok jádrem\"),\n",
    "    (sp.Symbol('Phi_stab'), Phi_stab, \"[Wb] Potřebný indukční tok pro stabilizaci\"),\n",
    "    (sp.Symbol('N_stab'), N_stab, \"závitů pro stabilizaci\"),\n",
    "    (sp.Symbol('l_stab'), l_stab, \"[m] Celková délka vodiče pro cívku\"),\n",
    "    (sp.Symbol('l_v'), l_v, \"[m] Celková délka vodiče pro stabilizaci\"),\n",
    "    (sp.Symbol('S_vodic'), S_vodic, \"[mm^2] Požadovaný průřez vodiče\")\n",
    "]\n",
    "\n",
    "# Výpis výsledků do požadovaného tvaru\n",
    "for sym, value, description in expr_list:\n",
    "    latex_str = sp.latex(sp.Eq(sym, value, evaluate=False))\n",
    "    display(Math(f\"{latex_str} \\\\text{{ {description}}}\"))\n",
    "    \n",
    "# Další informace o použitém systému stabilizace\n",
    "print(\"Při volbě soustavy\",n,\"zesilovačů a celkovém napětí U =\",U_v,\"[V] a celkovém proudu\"\n",
    "      \" I =\",I_v,\"[A] vychází celkový odpor R =\",R_KEPCO,\"[omh]. Při volbě materiálu\"\n",
    "      \" rho =\",rho,\"[ohm*mm^2*m^-1] a volbě kapacity kondenzátoru C =\",C*1000,\"[mF]\"\n",
    "      \" a požadavku na dosažení alespoň\",p*100,\"% maximálního indukčního toku generovaného kondenzátory.\"\n",
    "      \" kalibrované na maximální napětí U_max =\",U_max,\"[V]. Délka přívodních vodičů do kondenzátorovny od cívky\"\n",
    "      \" je odhadnuta na \",l_ved,\"[m] a délka rezervy na\",l_rez,\"[m] z důvodu namotávání závitů přes sebe.\")"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.8"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
