Kryotransfer Rechner: Wärmeeintrag & Boil-off Rate berechnen


Kryotransfer Rechner: Wärmeeintrag & Boil-off Rate

Berechnen Sie präzise den Wärmeeintrag und den resultierenden Boil-off für Ihre kryogenen Transferprozesse.

Ihr Kryotransfer Rechner

Geben Sie die Parameter Ihrer Kryotransferleitung und des Mediums ein, um den Wärmeeintrag und den Boil-off zu ermitteln.


Temperatur des kryogenen Mediums in Kelvin (z.B. 77.15 K für Flüssigstickstoff).


Temperatur der Umgebung in Kelvin (z.B. 293.15 K für 20°C).


Gesamtlänge der Transferleitung in Metern.


Innendurchmesser der Leitung, durch die das Kryogen fließt, in Metern (z.B. 0.01 m für 10 mm).


Dicke der Isolationsschicht in Metern (z.B. 0.02 m für 20 mm).


Wärmeleitfähigkeit des Isolationsmaterials in W/(m·K) (z.B. 0.00001 für Superisolation).


Geplante Dauer des Transfers in Stunden.


Latente Wärme, die benötigt wird, um 1 kg des Kryogens zu verdampfen, in J/kg (z.B. 199000 J/kg für LN2).


Dichte des kryogenen Mediums in kg/m³ (z.B. 808 kg/m³ für LN2).



Ergebnisse Ihres Kryotransfer Rechners

Geschätztes Volumen Boil-off

0.00 Liter

Wärmeeintrag pro Sekunde: 0.00 Watt
Gesamter Wärmeeintrag über Transferdauer: 0.00 Joule
Masse Boil-off: 0.00 kg
Transferleitungs-Außendurchmesser: 0.00 m

Formel-Erklärung: Der Wärmeeintrag (Q̇) wird basierend auf der zylindrischen Wärmeleitung durch die Isolation berechnet. Dieser Wärmeeintrag über die Transferdauer (Q_total) führt zum Verdampfen eines Teils des Kryogens (Boil-off), dessen Masse durch die spezifische Verdampfungsenthalpie (L_v) bestimmt wird. Das Volumen wird dann über die Dichte (ρ) ermittelt.

Abbildung 1: Boil-off Volumen in Abhängigkeit von der Isolationsdicke für verschiedene Materialien


Tabelle 1: Boil-off Volumen bei variierender Isolationsdicke
Isolationsdicke (mm) Boil-off (Liter) Wärmeeintrag (Watt)

Was ist ein Kryotransfer Rechner?

Ein Kryotransfer Rechner ist ein spezialisiertes Tool, das dazu dient, den Wärmeeintrag und den daraus resultierenden Boil-off (Verdampfungsverlust) von kryogenen Flüssigkeiten während des Transfers durch isolierte Leitungen zu kalkulieren. Kryogene Flüssigkeiten wie Flüssigstickstoff (LN2), Flüssighelium (LHe) oder Flüssigsauerstoff (LOX) werden bei extrem niedrigen Temperaturen gelagert und transportiert. Jeder Wärmeeintrag von der Umgebung in diese Flüssigkeiten führt zu deren Verdampfung, was als Boil-off bezeichnet wird. Dieser Verlust ist nicht nur kostspielig, sondern kann auch die Effizienz und Sicherheit kryogener Systeme beeinträchtigen.

Der Kryotransfer Rechner hilft Ingenieuren, Technikern und Forschern in der Kryotechnik, die Leistung ihrer Transferleitungen zu bewerten und zu optimieren. Er ermöglicht es, verschiedene Parameter wie Isolationsdicke, Materialeigenschaften und Transferdauer zu simulieren, um den Boil-off zu minimieren und die Effizienz des Transfers zu maximieren.

Wer sollte einen Kryotransfer Rechner nutzen?

  • Kryotechnik-Ingenieure: Zur Auslegung und Optimierung von Kryosystemen und Transferleitungen.
  • Forschungslabore: Für Experimente, die den Transfer von Kryogenen erfordern, um Verluste zu planen und zu minimieren.
  • Industrielle Anwender: In Bereichen wie der Halbleiterfertigung, Medizintechnik oder Raumfahrt, wo kryogene Gase in großen Mengen gehandhabt werden.
  • Anlagenbetreiber: Zur Überwachung und Verbesserung der Effizienz bestehender Kryoanlagen.

Häufige Missverständnisse über den Kryotransfer Rechner

Ein häufiges Missverständnis ist, dass der Kryotransfer Rechner alle Aspekte eines Kryotransfers abdeckt. Er konzentriert sich primär auf den Wärmeeintrag durch die Leitungswände. Andere Faktoren wie Druckverluste, Strömungsinstabilitäten oder Wärmeeintrag durch Ventile und Anschlüsse werden in dieser vereinfachten Berechnung nicht direkt berücksichtigt. Es ist auch wichtig zu verstehen, dass die Genauigkeit der Ergebnisse stark von der Qualität der eingegebenen Materialparameter (insbesondere der Wärmeleitfähigkeit der Isolation) abhängt.

Kryotransfer Rechner: Formel und mathematische Erklärung

Die Berechnung des Wärmeeintrags in eine kryogene Transferleitung basiert auf den Prinzipien der Wärmeleitung durch eine zylindrische Wand. Der Boil-off wird dann aus diesem Wärmeeintrag und der spezifischen Verdampfungsenthalpie des Kryogens abgeleitet.

Schritt-für-Schritt-Ableitung:

  1. Berechnung des Außendurchmessers der isolierten Leitung (D_outer):

    D_outer = D_inner + 2 * t_ins

    Hierbei ist D_inner der Innendurchmesser und t_ins die Isolationsdicke.
  2. Berechnung des Wärmeeintrags pro Sekunde (Q̇):

    Die Formel für die Wärmeleitung durch eine zylindrische Wand lautet:

    Q̇ = (2 * π * L * k_ins * (T_ambient - T_cryo)) / ln(D_outer / D_inner)

    Wo:

    • = Wärmeeintrag pro Sekunde (Watt)
    • π = Pi (ca. 3.14159)
    • L = Länge der Transferleitung (Meter)
    • k_ins = Wärmeleitfähigkeit der Isolation (W/(m·K))
    • T_ambient = Umgebungstemperatur (Kelvin)
    • T_cryo = Kryogene Temperatur (Kelvin)
    • ln = Natürlicher Logarithmus
    • D_outer = Außendurchmesser der isolierten Leitung (Meter)
    • D_inner = Innendurchmesser der Leitung (Meter)

    Diese Formel berücksichtigt den Temperaturgradienten über die Isolationsschicht und die zylindrische Geometrie.

  3. Berechnung des gesamten Wärmeeintrags über die Transferdauer (Q_total_joules):

    Q_total_joules = Q̇ * t_duration * 3600

    Hierbei wird der Wärmeeintrag pro Sekunde mit der Transferdauer in Stunden multipliziert und in Sekunden umgerechnet (1 Stunde = 3600 Sekunden), um den gesamten Wärmeeintrag in Joule zu erhalten.
  4. Berechnung der Masse des Boil-off (m_boil_off):

    m_boil_off = Q_total_joules / L_v

    Die Masse des verdampften Kryogens wird durch Division des gesamten Wärmeeintrags durch die spezifische Verdampfungsenthalpie (L_v) des Mediums in J/kg ermittelt.
  5. Berechnung des Volumens des Boil-off (V_boil_off):

    V_boil_off = (m_boil_off / ρ) * 1000

    Das Volumen des Boil-off in Litern wird durch Division der Masse des Boil-off durch die Dichte (ρ) des Kryogens in kg/m³ und Multiplikation mit 1000 (für die Umrechnung von m³ in Liter) berechnet.

Variablen-Tabelle:

Variable Bedeutung Einheit Typischer Bereich
T_cryo Kryogene Temperatur Kelvin (K) 4 K (LHe) bis 90 K (LOX)
T_ambient Umgebungstemperatur Kelvin (K) 273 K bis 310 K
L Transferleitungs-Länge Meter (m) 1 m bis 100 m
D_inner Innendurchmesser der Leitung Meter (m) 0.005 m bis 0.1 m
t_ins Isolations-Dicke Meter (m) 0.001 m bis 0.1 m
k_ins Isolations-Wärmeleitfähigkeit W/(m·K) 10-5 (Vakuum) bis 0.05 (Schaum)
t_duration Transfer-Dauer Stunden (h) 0.1 h bis 24 h
L_v Spezifische Verdampfungsenthalpie J/kg 20000 (LHe) bis 200000 (LN2)
ρ Dichte des Kryogens kg/m³ 125 (LHe) bis 1140 (LOX)

Praktische Beispiele für den Kryotransfer Rechner

Um die Anwendung des Kryotransfer Rechners zu verdeutlichen, betrachten wir zwei Szenarien:

Beispiel 1: Standard-Flüssigstickstoff-Transfer

Ein Forschungslabor möchte 50 Liter Flüssigstickstoff (LN2) über eine 5 Meter lange, vakuumisolierte Leitung transferieren. Die Transferdauer beträgt 1 Stunde.

  • Kryogene Temperatur (T_cryo): 77.15 K (LN2)
  • Umgebungstemperatur (T_ambient): 293.15 K (20°C)
  • Transferleitungs-Länge (L): 5 m
  • Transferleitungs-Innendurchmesser (D_inner): 0.01 m (10 mm)
  • Isolations-Dicke (t_ins): 0.02 m (20 mm)
  • Isolations-Wärmeleitfähigkeit (k_ins): 0.00001 W/(m·K) (Vakuumisolation)
  • Transfer-Dauer (t_duration): 1 h
  • Spezifische Verdampfungsenthalpie (L_v): 199000 J/kg (LN2)
  • Dichte des Kryogens (ρ): 808 kg/m³ (LN2)

Ergebnisse des Kryotransfer Rechners:

  • Wärmeeintrag pro Sekunde: ca. 0.012 Watt
  • Gesamter Wärmeeintrag: ca. 43.2 Joule
  • Masse Boil-off: ca. 0.000217 kg
  • Volumen Boil-off: ca. 0.000269 Liter

Interpretation: Bei einer gut isolierten Leitung ist der Boil-off für einen einstündigen Transfer von LN2 sehr gering. Dies zeigt die Effizienz moderner Vakuumisolationen.

Beispiel 2: Weniger effiziente Isolation bei längerem Transfer

Ein industrieller Prozess erfordert einen längeren Transfer von Flüssigstickstoff über eine Leitung mit einfacherer Schaumisolation.

  • Kryogene Temperatur (T_cryo): 77.15 K
  • Umgebungstemperatur (T_ambient): 293.15 K
  • Transferleitungs-Länge (L): 10 m
  • Transferleitungs-Innendurchmesser (D_inner): 0.02 m (20 mm)
  • Isolations-Dicke (t_ins): 0.03 m (30 mm)
  • Isolations-Wärmeleitfähigkeit (k_ins): 0.02 W/(m·K) (Polyurethanschaum)
  • Transfer-Dauer (t_duration): 4 h
  • Spezifische Verdampfungsenthalpie (L_v): 199000 J/kg
  • Dichte des Kryogens (ρ): 808 kg/m³

Ergebnisse des Kryotransfer Rechners:

  • Wärmeeintrag pro Sekunde: ca. 10.5 Watt
  • Gesamter Wärmeeintrag: ca. 151200 Joule
  • Masse Boil-off: ca. 0.76 kg
  • Volumen Boil-off: ca. 0.94 Liter

Interpretation: Durch die längere Leitung, den größeren Durchmesser, die längere Transferdauer und vor allem die deutlich schlechtere Isolation steigt der Boil-off erheblich an. Fast ein Liter LN2 geht in 4 Stunden verloren. Dies verdeutlicht die Notwendigkeit einer optimalen Isolationswahl und die Bedeutung der Transferdauer für die Minimierung von Verlusten im Kryotransfer.

Wie man diesen Kryotransfer Rechner verwendet

Die Nutzung des Kryotransfer Rechners ist intuitiv und ermöglicht eine schnelle Analyse Ihrer kryogenen Transferprozesse.

  1. Eingabe der Parameter:
    • Kryogene Temperatur (T_cryo): Geben Sie die Siedetemperatur Ihres Kryogens in Kelvin ein (z.B. 77.15 K für LN2).
    • Umgebungstemperatur (T_ambient): Tragen Sie die Temperatur der Umgebung in Kelvin ein (z.B. 293.15 K für 20°C).
    • Transferleitungs-Länge (L): Messen Sie die Länge Ihrer Transferleitung in Metern.
    • Transferleitungs-Innendurchmesser (D_inner): Geben Sie den Innendurchmesser der Leitung in Metern an.
    • Isolations-Dicke (t_ins): Tragen Sie die Dicke der Isolationsschicht in Metern ein.
    • Isolations-Wärmeleitfähigkeit (k_ins): Dies ist ein kritischer Wert. Suchen Sie die Wärmeleitfähigkeit Ihres Isolationsmaterials in W/(m·K) (z.B. 0.00001 für Vakuumisolation, 0.02 für Polyurethanschaum).
    • Transfer-Dauer (t_duration): Schätzen Sie die geplante Dauer des Transfers in Stunden.
    • Spezifische Verdampfungsenthalpie (L_v): Geben Sie den Wert für Ihr Kryogen in J/kg ein (z.B. 199000 J/kg für LN2).
    • Dichte des Kryogens (ρ): Tragen Sie die Dichte Ihres Kryogens in kg/m³ ein (z.B. 808 kg/m³ für LN2).
  2. Berechnung starten:

    Der Rechner aktualisiert die Ergebnisse automatisch bei jeder Eingabe. Sie können auch auf den “Berechnen”-Button klicken, um die Berechnung manuell auszulösen.

  3. Ergebnisse ablesen:
    • Geschätztes Volumen Boil-off: Dies ist Ihr Hauptresultat, angezeigt in Litern. Es zeigt an, wie viel Kryogen während des Transfers verdampfen wird.
    • Wärmeeintrag pro Sekunde: Der konstante Wärmestrom in Watt, der in die Leitung eindringt.
    • Gesamter Wärmeeintrag über Transferdauer: Die Gesamtenergie in Joule, die während des Transfers in das Kryogen gelangt.
    • Masse Boil-off: Die Masse des verdampften Kryogens in Kilogramm.
    • Transferleitungs-Außendurchmesser: Der berechnete Außendurchmesser der isolierten Leitung.
  4. Entscheidungsfindung und Optimierung:

    Nutzen Sie die Ergebnisse, um die Effizienz Ihres Kryotransfers zu bewerten. Wenn der Boil-off zu hoch ist, können Sie Parameter wie die Isolationsdicke oder das Material (und damit k_ins) anpassen, um die Verluste zu reduzieren. Der interaktive Chart und die Tabelle zeigen Ihnen, wie sich Änderungen der Isolationsdicke auf den Boil-off auswirken.

Schlüsselfaktoren, die die Kryotransfer Rechner Ergebnisse beeinflussen

Die Genauigkeit und Relevanz der Ergebnisse des Kryotransfer Rechners hängen von mehreren kritischen Faktoren ab. Ein Verständnis dieser Faktoren ist entscheidend für die Optimierung kryogener Prozesse und die Minimierung von Verlusten.

  1. Isolations-Wärmeleitfähigkeit (k_ins): Dies ist der wohl wichtigste Faktor. Materialien mit extrem niedriger Wärmeleitfähigkeit, wie Vakuumisolation oder Multi-Layer-Isolation (MLI), reduzieren den Wärmeeintrag drastisch. Eine geringfügige Erhöhung von k_ins kann zu einem erheblichen Anstieg des Boil-off führen.
  2. Isolations-Dicke (t_ins): Eine dickere Isolationsschicht erhöht den thermischen Widerstand und reduziert den Wärmeeintrag. Es gibt jedoch einen Punkt, an dem der zusätzliche Nutzen einer weiteren Verdickung abnimmt und die Kosten für Material und Platz überwiegen.
  3. Temperaturdifferenz (T_ambient – T_cryo): Je größer der Temperaturunterschied zwischen Umgebung und Kryogen ist, desto höher ist der Wärmestrom. Dies ist besonders relevant bei extrem kalten Kryogenen wie Flüssighelium (4 K) im Vergleich zu Flüssigstickstoff (77 K).
  4. Transferleitungs-Länge (L): Der Wärmeeintrag ist direkt proportional zur Länge der Leitung. Längere Leitungen bedeuten größere Oberflächen für den Wärmeaustausch und somit höhere Verluste. Daher sind kurze Transferwege in der Kryotechnik oft bevorzugt.
  5. Transfer-Dauer (t_duration): Der gesamte Boil-off ist direkt proportional zur Dauer des Transfers. Längere Transferzeiten führen zu kumulativ höheren Wärmeeinträgen und damit zu mehr verdampftem Kryogen. Effiziente und schnelle Transfermethoden sind daher wünschenswert.
  6. Kryogen-Spezifische Eigenschaften (L_v und ρ): Die spezifische Verdampfungsenthalpie (L_v) und die Dichte (ρ) des verwendeten Kryogens spielen eine große Rolle. Flüssighelium hat eine sehr geringe L_v im Vergleich zu Flüssigstickstoff, was bedeutet, dass selbst ein kleiner Wärmeeintrag zu einem großen Boil-off-Volumen führen kann.
  7. Vakuumqualität (bei Vakuumisolation): Bei vakuumisolierten Leitungen ist die Qualität des Vakuums entscheidend. Ein schlechtes Vakuum (höherer Restdruck) erhöht die effektive Wärmeleitfähigkeit der Isolation erheblich, da Gaskonvektion und -leitung stattfinden können.
  8. Konstruktive Details: Obwohl der Rechner eine vereinfachte zylindrische Geometrie annimmt, beeinflussen reale Konstruktionsdetails wie Flansche, Ventile, Messanschlüsse und Halterungen den Wärmeeintrag durch zusätzliche Wärmeleitpfade (sogenannte “Heat Leaks”). Diese werden vom Rechner nicht direkt erfasst und müssen separat berücksichtigt werden.

Häufig gestellte Fragen (FAQ) zum Kryotransfer Rechner

Was ist der Unterschied zwischen Wärmeeintrag und Boil-off?

Wärmeeintrag ist die Energie (in Joule oder Watt), die von der Umgebung in das kryogene System gelangt. Boil-off ist die Menge an kryogener Flüssigkeit (Masse oder Volumen), die durch diesen Wärmeeintrag verdampft wird. Der Boil-off ist eine direkte Folge des Wärmeeintrags.

Warum ist die Wärmeleitfähigkeit der Isolation so wichtig?

Die Wärmeleitfähigkeit (k_ins) bestimmt, wie gut ein Material Wärme leitet. Bei kryogenen Anwendungen ist es entscheidend, Materialien mit extrem niedriger Wärmeleitfähigkeit zu verwenden, um den Wärmestrom von der warmen Umgebung zur kalten Kryoflüssigkeit zu minimieren und somit den Boil-off zu reduzieren.

Kann der Kryotransfer Rechner auch für Flüssighelium verwendet werden?

Ja, der Kryotransfer Rechner kann für jedes Kryogen verwendet werden, solange Sie die korrekten Werte für die kryogene Temperatur (T_cryo), die spezifische Verdampfungsenthalpie (L_v) und die Dichte (ρ) des jeweiligen Mediums eingeben. Für Flüssighelium sind diese Werte deutlich anders als für Flüssigstickstoff.

Wie genau sind die Ergebnisse des Rechners?

Die Ergebnisse sind eine gute Annäherung für den Wärmeeintrag durch die Leitungswände. Die Genauigkeit hängt stark von der Präzision Ihrer Eingabedaten, insbesondere der Wärmeleitfähigkeit der Isolation, ab. Der Rechner berücksichtigt keine komplexen Effekte wie Konvektion in der Isolation (außer bei schlechtem Vakuum, das in k_ins reflektiert wird), Druckverluste oder zusätzliche Wärmelecks durch Armaturen.

Was kann ich tun, um den Boil-off zu reduzieren?

Um den Boil-off zu reduzieren, können Sie:

  • Eine bessere Isolation mit geringerer Wärmeleitfähigkeit wählen (z.B. Vakuumisolation, MLI).
  • Die Isolationsdicke erhöhen.
  • Die Transferleitungs-Länge minimieren.
  • Die Transferdauer verkürzen.
  • Die Umgebungstemperatur senken, falls möglich.

Warum wird die Temperatur in Kelvin angegeben?

In der Thermodynamik und Kryotechnik werden Temperaturen oft in Kelvin (absolute Temperaturskala) angegeben, da viele physikalische Formeln, insbesondere solche, die mit Wärmeübertragung und Energie zu tun haben, auf absoluten Temperaturen basieren. Dies vermeidet Probleme mit negativen Werten und vereinfacht Berechnungen.

Welche Rolle spielt der Innendurchmesser der Leitung?

Der Innendurchmesser (D_inner) ist wichtig, da er zusammen mit der Isolationsdicke den Außendurchmesser (D_outer) und somit das Verhältnis D_outer/D_inner bestimmt, welches im Logarithmus der Wärmeleitungsformel für zylindrische Geometrien verwendet wird. Ein größerer Innendurchmesser bei gleicher Isolationsdicke führt zu einer größeren Oberfläche und potenziell höherem Wärmeeintrag.

Gibt es eine ideale Isolationsdicke?

Es gibt keine universell “ideale” Isolationsdicke. Die optimale Dicke ist ein Kompromiss zwischen den Kosten der Isolation, dem verfügbaren Platz und den gewünschten Boil-off-Raten. Der Kryotransfer Rechner hilft Ihnen, diesen Kompromiss für Ihre spezifische Anwendung zu finden, indem er die Auswirkungen verschiedener Dicken simuliert.


// As per instructions, no external libraries are allowed, so I'll implement a very basic canvas drawing.

function Chart(ctx, config) {
var self = this;
self.ctx = ctx;
self.config = config;
self.data = config.data;
self.options = config.options;

self.destroy = function() {
self.ctx.clearRect(0, 0, self.ctx.canvas.width, self.ctx.canvas.height);
};

self.draw = function() {
self.ctx.clearRect(0, 0, self.ctx.canvas.width, self.ctx.canvas.height);

var labels = self.data.labels;
var datasets = self.data.datasets;

if (labels.length === 0 || datasets.length === 0) {
self.ctx.fillStyle = '#666';
self.ctx.font = '16px Arial';
self.ctx.textAlign = 'center';
self.ctx.fillText('Keine Daten verfügbar', self.ctx.canvas.width / 2, self.ctx.canvas.height / 2);
return;
}

var padding = 50;
var chartWidth = self.ctx.canvas.width - 2 * padding;
var chartHeight = self.ctx.canvas.height - 2 * padding;

var allDataPoints = [];
for (var i = 0; i < datasets.length; i++) { allDataPoints = allDataPoints.concat(datasets[i].data); } var maxY = Math.max.apply(null, allDataPoints); var minY = Math.min.apply(null, allDataPoints); if (minY < 0) minY = 0; // Ensure y-axis starts at 0 for boil-off volume var rangeY = maxY - minY; if (rangeY === 0) rangeY = maxY > 0 ? maxY : 1; // Avoid division by zero if all data points are same or zero

var stepX = chartWidth / (labels.length - 1);
var stepY = chartHeight / rangeY;

// Draw X and Y axes
self.ctx.beginPath();
self.ctx.strokeStyle = '#ccc';
self.ctx.moveTo(padding, padding);
self.ctx.lineTo(padding, padding + chartHeight);
self.ctx.lineTo(padding + chartWidth, padding + chartHeight);
self.ctx.stroke();

// Draw X-axis labels
self.ctx.fillStyle = '#333';
self.ctx.font = '12px Arial';
self.ctx.textAlign = 'center';
for (var i = 0; i < labels.length; i++) { if (i % Math.ceil(labels.length / 10) === 0 || labels.length < 10) { // Show fewer labels for dense data self.ctx.fillText(labels[i], padding + i * stepX, padding + chartHeight + 20); } } self.ctx.fillText(self.options.scales.x.title.text, padding + chartWidth / 2, padding + chartHeight + 40); // Draw Y-axis labels self.ctx.textAlign = 'right'; var numYLabels = 5; for (var i = 0; i <= numYLabels; i++) { var yVal = minY + (rangeY / numYLabels) * i; var yPos = padding + chartHeight - (yVal - minY) * stepY; self.ctx.fillText(yVal.toFixed(2), padding - 10, yPos); } self.ctx.save(); self.ctx.translate(padding - 40, padding + chartHeight / 2); self.ctx.rotate(-Math.PI / 2); self.ctx.textAlign = 'center'; self.ctx.fillText(self.options.scales.y.title.text, 0, 0); self.ctx.restore(); // Draw datasets for (var d = 0; d < datasets.length; d++) { var dataset = datasets[d]; self.ctx.beginPath(); self.ctx.strokeStyle = dataset.borderColor; self.ctx.lineWidth = 2; for (var i = 0; i < dataset.data.length; i++) { var x = padding + i * stepX; var y = padding + chartHeight - (dataset.data[i] - minY) * stepY; if (i === 0) { self.ctx.moveTo(x, y); } else { self.ctx.lineTo(x, y); } } self.ctx.stroke(); // Draw points self.ctx.fillStyle = dataset.borderColor; for (var i = 0; i < dataset.data.length; i++) { var x = padding + i * stepX; var y = padding + chartHeight - (dataset.data[i] - minY) * stepY; self.ctx.beginPath(); self.ctx.arc(x, y, 3, 0, Math.PI * 2); self.ctx.fill(); } } // Draw legend if (self.options.plugins.legend.display) { var legendX = padding + chartWidth - 200; // Adjust position var legendY = padding + 10; self.ctx.font = '12px Arial'; self.ctx.textAlign = 'left'; for (var d = 0; d < datasets.length; d++) { self.ctx.fillStyle = datasets[d].borderColor; self.ctx.fillRect(legendX, legendY + d * 20, 15, 10); self.ctx.fillStyle = '#333'; self.ctx.fillText(datasets[d].label, legendX + 20, legendY + d * 20 + 9); } } }; self.update = function() { self.draw(); }; self.draw(); // Initial draw } // Initialize calculator and chart on page load window.onload = function() { calculateKryotransfer(); };

Leave a Reply

Your email address will not be published. Required fields are marked *