Program CVEQUID wyznaczania stalych i (opcjonalnie) stechiometrii ukladow rownowagowych z pomiarow potencjometrycznych. Teoria ------ Program CVEQUID prowadzi pelna analize konfluentna wynikow pomiarow, umozliwiajac bezposrednie uwzglednienie wszystkich rodzajow bledow pomiarowych (lacznie z bledami charakterystyki elektrody, przygotowywania roztworow do miareczkowania, zanieczyszczen reagentow, itp.). Dziala tylko dla miareczkowan potencjometrycznych. Zaklada sie model rownowag dla roztworow idealnych, jakkolwiek nie ma zadnych ograniczen co do postaci tych rownowag. Teoria jest opisana w podanych ponizej pracach. Praca [1] opisuje ogolny formalizm matematyczny rownowagi chemicznych oraz opracowana ogolna metode obliczania stezen rownowagowych. W pracach [2], [3] oraz [5] opisano opracowana sredniokwadratowa metode wyznaczania parametrow rownowagowych: praca 2 dotyczy tylko wyznaczania stalych rownowag metoda wielowymiarowej regresji nieliniowej, praca [3] uogolnia to na analize konfluentna oraz rozszerza zakres stosowalnosci na wyznaczanie stechiometrii nieznanych rownowag a praca [5] opisuje uogolnienie analizy konfluentnej na uwzglednienie bledow wszystkich wielkosci pomiarowych. 1. J. Kostrowicki, A. Liwo. DECFAM - A new computer-oriented algorithm for the determination of equilibrium constants from potentiometric and/or spectrophotometric measurements - I. Comput. Chem. 1984, 8, 91. 2. J. Kostrowicki, A. Liwo. DECFAM - A new computer-oriented algorithm for the determination of equilibrium constants from potentiometric and/or spectrophotometric measurements - II. Comput. Chem. 1984, 8, 101. 3. J. Kostrowicki, A. Liwo. A general method for the determination of the stoichiometry of unknown species in multicomponent systems from physicochemical measurements. Comput. Chem. 1987, 11, 195. 4. J. Kostrowicki, A. Liwo, K. Sokolowski. A comparative study on some methods for computing of equilibrium concentrations. Comput. Chem. 1988, 12, 293. 5. J. Kostrowicki, A. Liwo. Determination of equilibrium parameters by minimization of an extended sum of squares. Talanta 1990, 37, 645. Mile byloby cytowanie powyzszych artykulow w publikacjach powstalych z pomoca tego programu. Instalacja i uruchamianie pod DOS/Windows: ------------------------------------------ Skompilowac i zlinkowac moduly zrodlowe; modul glowny jest w cvequid.for W celu uruchomienia przygotowac zbior danych (patrz opis) jako plik FOR008. Wyniki pojawia sie w FOR009 (glowny wydruk) oraz FOR010 (krzywe teoretyczne) i FOR011 (krzywe doswiadczalne); sa one gotowe do wyrysowania jakimkolwiek programem graficznym. Dla kompilacji mozna przerobic Makefile podane z wersja UNIXowa oraz skrypt C-shell cvequid (Unix) na dosowy batch. Wtedy plik danych nie bedzie sie zawsze musial nazywac FOR008. Program kompiluje sie i dziala na pewno pod Microsoft Fortranem i NDP Fortranem. Instalacja i uruchamianie pod UNIXem: ------------------------------------- Skompilowac i zlinkowac program przy pomocy polecenia make; plik Makefile znajduje sie w dystrybucji. W razie potrzeby zmienic nazwe kompilatora (obecnie f77) i dodac konieczne opcje. W wyniku tego powstanie modul wykonywalny cvequid.x. Majac plik danych program uruchamia sie wykorzystujac znajdujacy sie w dystrybucji skrypt C-shell cvequid przy pomocy polecenia: cvequid PREFIX_ZBIORU_WEJSC [PREFIX_ZBIORU_WYJSC] [PREFIX_ZBIOROW_PUN] gdzie PREFIX_ZBIORU_WEJSC.dat jest nazwa pliku danych, PREFIX_ZBIORU_WYJSC.out nazwa pliku wynikowego a PREFIX_ZBIOROW_PUN.pu1 i pu2 nazwammi plikow z danymi do wykreslania krzywych. Ogolny opis danych ------------------ Obok poszczegolnych pozycji podany jest fortranowski format czytania danych. W opisie uzywana jest fortranowska konwencja wczytywania tablic; zapis: (A(I),I=1,N) oznacza, ze chodzi o kolenje podawanie elementow tablicy A poczawszy od 1 do N a zapis: (A(I,J),J=1,N),I=1,M) oznacza, ze chcemy wczytac wierszami tablice A o M wierszach i N kolumnach. Poniezej podany jest krotki slowniczek specyfikacji formatu zredagowanego w FORTRANie: In - liczba calkowita o dlugosci n cyfr (uwaga: puste pola sa dopelniane zerami wiec trzeba uwazac zeby liczbe rownac do prawej; Fn.m - liczba rzeczywista staloprzecinkowa o m cufrach po kropce dziesietnej. An - tekst o n znakach; Ln - stala logiczna o n znakach; poniewaz wartosiami sa T (prawda) lub F (falsz) zwykle specyfikuje sie L1; nX - n odstepow. nS (gdzie S jest ktorymkolwiek z podanych powyzej specyfikatorow) - powtorzenie specyfikacji S n razy. W przypadku watpliwosci prosze zajrzec do procedury readin.for 1. Tytul (20A4) 2. N,M,MM,MMM,NREDE,NSTODE,NSPEK,NEXP,EACHIT,IDERIV - format swobodny N - liczba indywiduow chemicznych M - liczba wszystkich reakcji MM - liczba reakcji ktorych stale sa wyznaczane MMM - liczba reakcji dla ktorych stale sa znane z bledem danym jako odchylenie standardowe lub macierz kowariancji. Te stale beda uzmienniane dla poprawy dopasowania ale tylko w granicach zadanych przez odchylenie standardowe/ macierz kowariancji. NREDE - liczba reakcji dla ktorych sa wyznaczane wspolczynniki stechimetryczne (0 jezeli sa wyznaczane tylko stale) NSTODE - liczba wspolczynnikow stechiometrycznych wyznaczanych dla jednej reakcji. NSPEK - zawsze 0 (miala to byc liczba pomiarow spektrofotometrycznych) NEXP - liczba miareczkowan potencjometrycznych EACHIT - poziom wydruku: -1 - tylko dane poczatkowe i wyniki koncowe 0 - oprocz tego "surowe" parametry w kazdej iteracji 1 - sformatowane parametry w kazdej iteracji 2 - oprocz tego rezidua objetosci i EMFow w kazdej iteracji 3 - oprocz tego stezenia rownowagowe w kazdej iteracji IDERIV - drukowanie pochodnych EMF wzgledem objetosci dla wynikow koncowych 1 - pochodne sa drukowane 0 - pochodne nie sa drukowane 3. Nazwy kolejnych indywiduow chemicznych - kazda w oddzielnej linii w formacie A32 4. Jezeli NREDE > 0, czytanie poczatkowych przyblizen wyznaczanych wspolczynnikow stechiometrycznych oraz stalych rownowag nieznanych reakcji. Czyta sie je w postaci faktora P nieznanej czesci macierzy stechiometrycznej (zob. praca [3]). W kolejnych liniach podaje sie najpierw N-M wspolczynnikow dla nieznanej reakcji a potem logarytm dziesietny jej stalej (jedne i drugie sa tylko przyblizeniami poczatkowymi). Te dane podaje sie w formacie swobodnym. 5. Wspolczynniki stechiometryczne i logarytmy stalych rownowag pozostalych reakcji (tj. tych o znanej stechiometrii). Kazdej kolejnej reakcji odpowiada oddzielna linia. Kolejnosc indywiduow chemicznych musi odpowiadac kolejnosci nazw podanych w punkcie 3. Substratom odpowiadaja wspolczynniki ze znakiem "-" a produktom ze znakiem "+". Wspolczynniki podaje sie jako liczby calkowite. Dla kazdej reakcji po wspolczynnikach podaje sie logarytm dziesietny stalej rownowagi (jest to przyblizenie poczatkowe dla stalych wyznaczanych albo wartosc wyznaczona z innych pomiarow dla stalych znanych). Te dane podaje sie w formacie swobodnym. 6. Jezeli MMM > 0 w kolejnej grupie rekordow podaje sie informacje o bledach znanych stalych. 6a. LOG (format L1; zmienna logiczna) T - w nastepnych liniach podaje sie wartosci odchylen standardowych logarytmow dziesitnych stalych wyznaczonych z innych pomiarow, ktore maja byc dopasowywane w granicach tego bledu. F - podaje sie pelna macierz wariancji-kowariancji znanych stalych; wtedy jednostka jest logarytm naturalny stalej. 6b. W kolejnej linii/liniach podaje sie bledy znanych stalych (format swobodny): LOG = T: odchylenia standardowe log. dziesietnych znanych stalych (w liczbie MMM) LOG = F: wczytuje sie dolny trojkat macierzy wariancji-kowariancji logarytmow naturalnych stalych 7. Inofrmacje o sposobie przygotowania roztworow do miareczkowania (titranda i titranta). Przed przygotowaniem tej grupy danych najlepiej narysowac graf (drzewo) historii przygotowywania roztworow do miareczkowan (zob. praca [5]). Dolne wierzcholki grafu odpowiadaja substancjiom podstawowym a gorne roztworom uzywanym do miareczkowan. W srodku mozna umiescic roztwory posrednie (np. otrzymane przez rozpuszczenie nawazki w okreslonej objetosci rozpuszczalnika). Wartosciami wszystkich wierzcholkow oprocz dolnych sa objetosci powstalych roztworow wierzcholki dolne zawieraja liczby moli poszczegolnych reagentow w jednostce danej substancji podstawowej. Wartosciami odpowiadajacym polaczeniom miedzy wierzcholkami sa ilosci (objetosci) substancji/roztworow z nizszych wierzcholkow grafu ktore sluza do sporzadzenia roztworow odpowiadajacych wyzszym wierzcholkom grafu. 7a. NCOMP (format swobodny) - liczba substancji podstawowych uzytych do sporzadzenia roztworow. Moga to byc rzeczywiste substancji podstawowe (np. nawazka zasady, kwasu, soli metalu itp.) albo skladniki koncowwych roztworow jezeli chcemy zaspecyfikowac uproszczona droge sporzadzania roztworow. Szczegoly tej drugiej mozliwosci sa wyjasnione na przykladzie a dokladny opis znajduje sie w pracy [5]. 7b. Dla kazdej substancji podstawowej wczytujemy nastepujace wielkosci (co najmniej w dwoch kolejnych liniach) 7b1. NNZ(I),(WY(I,J),J=1,NNZ(I)) (format 8F10.5) NNZ(I) - liczba indywiduow chemicznych w I-tej substancji podstawowej WY(I,J) - numer J-tego indywiduum chemicznego w I-tej substancji podstawowej (te numery musza odpowiadac numeracji reagentow zaspecyfikowanej w punkcie 2). 7b2. (QCOMP(I,J),COMDEV(J),J=1,NNZ(I)) (format swobodny) QCOMP(I,J) - ilosc moli indywiduum J w substancji podstawowej I COMDEV(J) - odchylenie standardowe powyzszej wielkosci estymowane na podstawie czystosci substancji, dokladnosci odwazania, itp. 7c. Specyfikacja liczby oraz objetosci roztworow posrednich i koncowych. Podajemy tyle linii ile jest wierzcholkow w grafie minus liczba substancji podstawowych. Roztwory beda automatycznie numerowane kolejno. Po linii odpowiadajacej ostatniemu roztworowi dajemy pusta linie: I,J,Y,Z (format 2I2,6X,2F10.5) I: > 0 jezeli linia zawiera specyfikacje objetosci 0 jezeli linia oznacza koniec specyfikacji objetosci (w tym przypadku J,Y,Z nie maja sensu); J: 0 - objetosc nie jest obarczona bledem pomiarowym (nie podaje sie odchylenia standrdowego; > 0 - podaje sie odchylenie standardowe objetosci. Y: objetosc roztworu. Z: (jezeli J > 0): estymowane odchylenie standardowe objetosci. 7d. Specyfikacja ilosci/objetosci substancji podstawowych/roztworow uzywanych do przygotowania roztworow odpowiadajacych kolejnej warstwie wierzcholkow grafu. I,J,K,Y,Z I: 0 jezeli linia konczy specyfikacje tej czesci danych (wtedy J,K,Y,Z nie maja sensu) > 0 - numer substancji/roztworu ktory pobieramy do przygotowania rozwtoru odpowiadajacego wyzszej warstwie grafu J: numer roztworu ktory przygotowujemy m.in. z roztworu/substancji o numerze I. K: 0 - objetosc (patrz nizej) nie jest pbarczona bledem. > 0 - objetosc jest obarczona bledem. Y: objetosc roztworu I wzieta do przygotowania roztworu J. Z (jezeli K>0) - estymowane odchylenie standardowe tej objetosci. 8. (ENRNST(I),I=1,N); format swobodny Specyfikacja wspolczynnikow stechiometrycznych w rownaniu Nernsta charakterystyki elektrody. Zakladamy, ze: N EMF = E0 + ALFA*SUM ENRNST(i)*log10(C(i)) 1 gdzie E0 i ALFA sa odpowiednio interceptem i nachyleniem charakterystyki elektrody a ENRNST(i) jest wspolczynnikiem stechiometrycznym stojacym przed i-tym indywiduum chemicznym (patrz lista w punkcie 2). Jezeli mamy miareczkowanie pH-metryczne to element ENRNST dla protonu wynosi 1 a wszystkie pozostale 0. 9. SIGEMF,SIGMAV (format swobodny) SIGEMF - estymowane odchylenie standardowe (dokladnosc pomiarow) EMF SIGMAV - estymowane odchylenie standardowe (dokladnosc pomiarow) objetosci titranta dla pojedynczego punktu pomiarowego. 10. Specyfikacja ogolnych danych dla poszczegolnych miareczkowan. Podajemy po kolei 2*NPOT linii w/g ponizszej specyfikacji. 9a. NPINT(I),NCM(I),NCT(I) (format swobodny) NPINT(I) - liczba punktow dla I-tego miareczkowania NCM(I), NCT(I) - odpowiednio numer roztworu miareczkowanego i miareczkujacego w tym miareczowaniu (numery musza sie zgadzac z kolejnoscia roztworow podana w punkcie 7). 9b. EST(I),ALFA(I),VM(I),STDEST(I),STDALF(I),STDVM(I) (format swobodny) EST(I),ALFA(I): E0 i ALFA (patrz punkt 8) dla I-tego miareczkowania VM(I): poczatkowa objetosc roztworu miareczkowanego dla I-tego miareczkowania STDEST(I),STDALF(I),STDVM(I) - estymowane odchylenia standardowe tych wielkosci (jezeli zakladamy ze ktoras z nich jest bez bledu to w tym miejscu podajemy 0). 10. Po kolei podajemy dane dla punktow pomiarowych poszczegolnych miareczkowan, kazdy punkt w oddzielnej linii. Nie ma przerw pomiedzy ostatnim punktem danego miareczkowania a pierwszym punktem nastepnego: V,EMF,DEV (format 3F10.5). V - objetosc titranta EMF - sila elektromotoryczna DEV - poczatkowa roznica pomiedzy objetoscia zmierzona a obliczona; zwykle 0. 11. Specyfikacja parametrow nieliniwej metody najmniejszych kwadratow oraz iteracyjnej procedury obliczania stezen rownowagowych. W nawiasach podane sa wartosci domyslne. Specyfikacja ta jest podana w dwoch kolejnych liniach. 11a. MAXIT,MAXMAR,MAXU (format 20I4) MAXIT (40): maksymalna liczba iteracji; lepiej zmienic wartosc domyslna na wieksza MAXMAR (10): maksymalna liczba subiteracji w procedurze Marquardta (lepiej nie zmieniac) MAXU (100): maksymalna liczba iteracji w procedurze obliczania stezen rownowagowych (lepiej nie zmieniac) 11b. RKRYT,RMIND,REL,PARS,RLAMBD,VMARQ,COEXP,FACTST (format 4F20.10) RKRYT (0.001): dokladnosc uzbiezniania parametrow w procedurze Marquardta - domyslna wystarcza i lepiej jej nie srubowac dalej RMIND (1.0E-12): najmniejsza zmiana parametrow przy ktorej warto kontynuowac procedure iteracyjna. REL (0.00001): wspolczynnik przeliczeniowy dokladnosci uzbiezniania parametrow na dokladnosc obliczania stezen (DUMDT): DUMDT = REL*RKRYT**2 Wartosc domyslna jest dobra. PARS (1.0): dopuszczalna gorna granica normy wektora zmiany parametrow w pojedynczej iteracji RLAMBD (0.01): poczatkowa wartosc czynnika lambda dodawanego do diagonalnych elementow hesjanu w metodzie Marquardta VMARQ (10.0): czynnik zwiekszania lambda w kolejnych subiteracjach w metodzie Marquardta COEXP (11.5): inicjalizacja logarytmow naturalnych czesci stezen rownowagowych w procedurze obliczania stezen FACTST (1.0): czynnik skalujacy pochodnych wzgledem wspolczynnikow stechiometrycznych.