DrPagel-FavIcon
« »

Verfasst am 07.03.2008 03:22:40 Uhr
Der Unterschied zwischen dem Urknall und der Simulation von Titrationskurven mit CurTiPot

Ich bekomme schon langsam fieberkurven-gebogene Schlitzaugen. Ab jetzt kann der erste Button "Berechne den pH-Startwert" ("Calculate Initial pH" (engl.), "Calcular pH inicial" (bras.prt.)) auf dem Datenblatt "Simulation" mit Staroffice bedient werden. Das Umschreiben von VBA-Code auf StarBasic nur für diese Seite hat seit gestern Mittag bis jetzt nonstop 13 Stunden gedauert. Nun ergibt sich nach ca. 45 sek Rechenzeit bei mir ein pH-Anfangswert (oder pH-Initialwert) von 1,80593270948157, der dem Referenz-Wert "initial pH" (engl.) (pH inicial (bras.-prt.)) in allen Ziffern entspricht, als String "1,806" im Tabellenfeld "B20" und "B41" ausgedruckt. Was will man mehr?

Auch bei diesem "Umstricken" gab es die meisten Falschberechnungen durch fehlende Einträge von Variablen in den Übergabelisten der Prozeduren und Funktionen. Da vererbt sich bei StarBasic ausser den Fehlern nichts....

Die Zuordnung der Makros zu diesem ersten Button war auch nicht schwer. Leider hat Starbasic die Zuordnungen der Makros zu den Schaltflächen weggelöscht. Daher werden noch einige Teststunden (und Tage ?) nötig sein, bis dieses Datenblatt voll unter Staroffice funktionstüchtig ist. Ich freue mich jetzt schon darauf, endlich mal das notwendige Programm-Knowhow für eine beliebige Kurvengrafik unter Staroffice zu lernen.

Und die original-freeware "CurTiPot" (Prof.Gutz, SaoPaulo) hat noch mehr Datenblätter. Gute Nacht! (dp) (0,5h)

P.S.: Ja und was ist nun der Unterschied zum Urknall? Der soll in wenigen Bruchteilen von Sekunden die ganze Welt entstehen lassen haben. Alles ist eben relativ.

Nachtrag_1 am 07.3.2008 um 18.15Uhr:
Hier ein Bild von meiner Baustelle:
Testbild
Es ist noch viel zu tun. Zur Zeit grübele ich darüber nach, warum in der Hardcopy zwei Kurven in einem Bild zu sehen sind, obwohl es nur eine Test-Simulation für konstante Volumenänderungen gegeben hat. Zu meiner Motivation habe ich mal die fertig mit StarBasic verknüpften Schaltflächen meiner offline-Version farbig hinterlegt, denn im Original sind sie alle grau und sachlich.

Damit meine offline Version überhaupt noch den Code bewältigen und abspeichern konnte, musste ich das CurTiPot bei mir in seine Bestandteile zerlegen:
  • 1.: Datenblätter: CurTiPot (Titelblatt), pH_calc und Database
  • 2.: Datenblätter: CurTiPot (Titelblatt), Simulation und Database
Mal sehen, wie es weitergeht?

Dass die Grafik schon funktioniert, ist wohl eine eingebaute Fähigkeit von Staroffice. Aber ich erkenne, dass prinzipiell mein Problem, ein Geländeprofil, welches sowohl in x- als auch in y-Koordinaten nichtäquidistante Zuwächsen hat, so einfach aus der Staroffice-Tabelle nicht erzeugt werden kann. Aber da ich nun weiß, wie man Makros benutzen kann, kann man die Rohdaten einer Wanderung durchs Gelände dann evtl. damit für eine mindestens in einer Koordinate äquidistanten Darstellung umwandeln. Dies wird aber noch Monate dauern, bis ich hierfür Zeit finde. (dp) (0,35h)

Nachtrag_2 am 08.3.2008 um 00.35Uhr:
Nun habe ich mir eine Statusfläche eingebaut, die mir anzeigt, ob meine CurTiPot-Testversion gerade rechnet oder wieder fertig damit ist. Inzwischen habe ich entdeckt, wo man den zu plottenden Grafikbereich einstellt. Hierzu klicke man mit der linken Maustaste auf das Grafikelement, dann erneut mit der rechten Maustaste auf dasselbe, worauf sich ein Menü öffnet. Dort wähle man den Menüpunkt "Datenbereich ändern". Im nachfolgenden Popup-Fenster steht im Auswahlmenü "Bereich" dieser der Tabelle zugeordnete Code:
$Simulation.$B$41:$B$201; $Simulation.$D$41:$D$201; $Simulation.$BB$41:$BB$201; $Simulation.$BD$41:$BD$201;$Simulation.$BF$41:$BF$201; $Simulation.$BH$41:$BH$201;$Simulation.$BJ$41:$BJ$201; $Simulation.$BL$41:$BL$201;$Simulation.$BN$41:$BN$201; $Simulation.$BP$41:$BP$201;$Simulation.$BR$41:$BR$201; $Simulation.$BT$41:$BT$201;$Simulation.$BV$41:$BV$201; $Simulation.$BX$41:$BX$201;$Simulation.$BZ$41:$BZ$201; $Simulation.$A$41:$A$201

Es werden für die Referenzeinstellung zum Original-CurTiPot folgende ZellBereiche ausgewählt:
  • 1.: B41 bis B201 (Spalte "pH simulated"),
    wird diese Zuordnung entfernt, sind beide durchgezogene Kurvenlinien verschwunden und es verbleiben nur die Datenpunkte
  • 2.: D41 bis D201,
  • 3.: BB41 bis BB201,
  • 4.: BD41 bis BD201,
  • 5.: BF41 bis BF201,
  • 6.: BH41 bis BH201,
  • 7.: BJ41 bis BJ201,
  • 8.: BL41 bis BL201,
  • 9.: BN41 bis BN201,
  • 10.: BP41 bis BP201,
  • 11.: BR41 bis BR201,
  • 12.: BT41 bis BT201,
  • 13.: BV41 bis BV201,
  • 14.: BX41 bis BX201,
  • 15.: BZ41 bis BZ201
Dabei sind die Kurven (3.) bis (15.) dem Archivbereich zugeordnet, d.h. wenn man die simulierten Kurvendaten (aus Spalte A oder B) über die Schaltfläche "Kurve speichern" (dts.) ("Retain curve" (engl.), "Reter curva" (bras.-prt.)) in diesen Archivbereich sichert, dann werden sie automatisch mitangezeigt, solange man den Datenbereich nicht wie oben beschrieben ändert. Man kann aber manuell diese Daten auch in andere Spalten verschieben, auf die die Grafik keinen Zugriff hat und anschließend diesen Archivbereich mit dem Klicken auf die Schaltfläche "Lösche Gespeichertes" (dts.) ("Delete retained" (engl.), "Apagar retidas" (bras.-prt.)) säubern.

Ob allerdings der höchste Zeilenindex 201 von Staroffice automatisch erzeugt worden ist, weil ich zu Testzwecken den ersten Datensatz zur Berechnung des pH-Startwertes manuell dorthinein kopiert habe, denn er wird vom Programm CurTiFit nicht weggelöscht, ist noch unklar. Der Bereich "pH simulated with error" ist bei mir noch leer. Daher kann die zweite Kurve nicht kommen.

Was mich für die Testtitration einer verdünnten Phosphorsäurelösung in 50 Einzelschritten noch wundert, ist das Fehlen von Daten ungleich Null in meinen "h2"-Spalten "J41 bis J91" und "Q41 bis Q91". (Später erkenne ich, dass ich beim Umschreiben von VBA nach StarBasic wiederum das Feld "hbar" vergessen hatte, als "DIM hbar(11) As Double" zu deklarieren) (dp) (1h)

Nachtrag_3 am 08.3.2008 um 05.45Uhr:
Trotz das die Kurven "schön" aussehen, wie sich das für "Chemie zum Anfassen gehört", bin ich noch nicht davon überzeugt, dass alle simulierten Größen richtig in der zur Grafik gehörenden Werteliste ausgegeben werden. Das ist noch Stoff für's Wochenende. Aber immerhin, nun lassen sich Titrationskurven mit konstantem pH-Zuwachs "dpH" und mit konstantem Volumen-Zuwachs "dV" vergleichen. Wenn man dpH und dV nur klein genug wählt, dürfte kein Unterschied mehr zu sehen sein.
[Testbild]

Die beiden Grafiken sind selbsterklärend. Dann erkläre mir bitte die Grafik, wieso das Programm CurFit zusätzlich die Diagonale ins untere Bild einzeichnet? (dp) (0,5h)

Nachtrag_4 am 08.3.2008 um 23.35Uhr:
Das Bilderrätsel von Nachtrag_3 ist fast gelöst. Vermutlich liegt es daran, dass sich zu einer Kurve, die mit Hilfe einer äquidistanten pH-Änderung simuliert wird, im Kurvenarchiv (ab Spalte BA bis BZ) ein Kurve gesellt, die mit Hilfe einer äquidistanten Volumen-Änderung simuliert wird.

Dass dies eine plausible Erklärung sein kann erkennt man, wenn man die Kurvenarchivdaten mit einer Funktion manipuliert:
[Testbild]
  • Kurve 1 ist die simulierte Messung "Titration" pH = fkt(V)
  • Kurve2: fkt(V) = ((Kurve1)2)/15
  • Kurve3: fkt(V) = ((Kurve1)3)/225
  • Kurve4: fkt(V) = ((Kurve1)4)/3375
Solange die pH-Werte in den zugehörigen Kurvendaten-Archivspalten "BB", "BD", "BF" usw. stehen, werden die (wissenschaftlich unsinnigen aber mathematisch korrekten) Daten richtig wiedergegeben. Für die Grafik wird die Abszisse (hier "Volumen-Achse") immer aus der ersten Datenmenge berechnet. Das heisst aber, dass zwei Kurven, die nach unterschiedlichen Methoden berechnet wurden, nie in einer einzigen Grafik ausgegeben werden dürfen.

Wenn man dennoch vorhat, Kurven aus verschiedenen Methoden zusammen zu publizieren, müsste man die zweite und weitere Kurve im gleichen Ausgabeformat ohne Hintergrund, Rahmung und Beschriftung quasi als Maskenebene mit Hilfe z.B. eines Photoshop-Programmes manuell zusammen bringen und dann auf eine Hintergrundebene reduzieren. Dies stelle ich mir als unsinnige Strafe vor, weil es eine Sisyphusarbeit sein dürfte, die Kurven ohne Begrenzungsrahmen exakt zu positionieren.

Besser ist es, mit Hilfe von Staroffice die Zusatzkurve(n) als weitere Ebene(n) zur ersten Grafikebene automatisch dazu zu zeichnen.
  • Hierzu kopiere man sich die Simulationskurvendaten einer äquidistanten pH-Titrationskurve in eine separate Spalte (z.B. CA, CB) und die einer äquidistanten Vol-Titrationskurve in eine andere separate Spalte (z.B. CC, CD).
  • Dann erzeuge man sich zwei separate Grafiken und verknüpfe sie wie oben beschrieben mit diesen (beiden) Spaltenpaaren.
  • Anschließend erzeuge man durch Kopie dieser beiden Grafikelemente zwei überlappende Grafiken in einem anderen freien Tabellenbereich,
  • ändere die Transparenz nach Wunsch (≠ 0) durch:
    • Klick auf die linke Maustaste,
    • Klick auf die rechte Maustaste,
    • Menüpunkt "Bearbeiten" anklicken,
    • Klick auf die rechte Maustaste,
    • Klick eines der Menüpunkte:
      • Titel
      • Achse
      • Gitter
      • Diagrammwand
      • Diagrammfläche (hier ist die Kurve ansprechbar)
. Zum Vergleich hier zwei Grafiken:
[Testbild]

[Testbild]
Das obere Bild (Hardcopy von Staroffice) beschreibt zwei überlagerte teilweise transparente Grafiken, deren eine Simulation mit 5 äquidistanten dpH-Änderungen und deren andere mit 5 äquidistanten dV-Änderungen erzeugt wurde. Das untere Bild (Hardcopy von Staroffice) beschreibt zwei überlagerte teilweise transparente Grafiken, deren eine Simulation mit 50 äquidistanten dpH-Änderungen und deren andere mit 50 äquidistanten dV-Änderungen erzeugt wurde. Welcher Transparenzwert empfehlenswert ist, ist noch unklar. (dp) (2h)
archiviert (tbid1995.381): (dp) 17.06.2009 (+0,25h (+flagcounter +home.icon +w3c_LiCh +4navi +html-korr.))
Haftungsausschluss
free counters
© drpagel.de Alle Rechte vorbehalten.